Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Preparazione Esame orale, Appunti di Elementi di Informatica

Concetti presenti nelle slide per l'esame orale dopo aver passato la parte scritta

Tipologia: Appunti

2022/2023

Caricato il 09/03/2024

elisa-beretta-6
elisa-beretta-6 🇮🇹

1 documento

Anteprima parziale del testo

Scarica Preparazione Esame orale e più Appunti in PDF di Elementi di Informatica solo su Docsity! Base di dati Insieme di archivi integrati che possono costituire una base di lavoro per utenti diversi con applicazioni diverse Operazioni sul database • Creazione • Manipolazione - inserimento - variazione - cancellazione • interrogazione (query) Modellazione dei dati: livelli di analisi Realtà -> Modello Concettuale -> Modello logico -> Livello fisico -> Database Modello concettuale: Entità/associazione L’entità è un oggetto (concreto o astratto) che ha un significato anche quando viene considerato in modo isolato L’associazione è un legame che stabilisce un interazione tra le entità Attenzione a non confondere le parole relationship e relazione Es: tra facoltà e studente sussiste l’associazione ESSERE SCELTA Una persona può possedere un’automobile o più Un automobile deve essere posseduta da una persona Si rappresenta un solo verso nell’ associazione Regole di lettura Associazione tra due entità: classificazione • Associazione 1:1 (uno a uno) o biunivoca • Associazione 1:n (uno a molti) o semplice • Associazione n:n (molti a molti) o complessa Modello E/R: attributi Le proprietà delle entità e delle associazioni vengono descritte attraverso gli attributi. Il valore degli attributi determinano le istanze di un entità. Es Attributi di studente: Matricola, Nome, Cognome, indirizzo Istanze di studente: 23456, Giacomo, Rossi, Via Roma 18 Bergamo Caratteristiche degli attributi Il dominio è l’insieme di valori che può assumere l’attribuzione Il formato di un attributo indica il tipo di valori che assume. I formati base sono: carattere, numerico, data/ora. La dimensione indica la quantità massima di caratteri o cifre inseribili. L’opzionalità Il valore nullo: null 🔑 Chiave e chiave primaria L’insieme minimale di uno o più attributi che consentono di distinguere tra un’istanza dall’altra. Esempi di chiavi sono il codice di un prodotto o la matricola di uno studente I - insato - N &GN NOME ⑪ 0 * I------- AssoczloNE inpiùE E Es fornitore -Fornire I prodotto Ogni fornitore può fornire uno o piùprodotti Ogni prodotto deve essere fornito da un solo fornitore Modello logico: la struttura adatta per organizzare i dati Modello relazionale come concetto matematico Dati n insiemi S1, S2, S3… Sn (non necessariamente distinti) si dice relazione R su questi insiemi l’insieme delle n-uple. Gli insiemi si chiamano domini della relazione Si dice che la relazione è di grado n Il numero delle n-uple ordinate o tuple si chiama cardinalità della relazione Modello relazionale come tabella 1. Ogni riga rappresenta una tupla 2. L’ordine delle righe non è importante 3. Tutte le righe sono diverse tra loro 4. L’ordine delle colonne è significativo e corrisponde all’ordine dei domini sui quali la relazione R è definita 5. Ogni colonna è rappresentata con un titolo che è il nome del dominio corrispondente Modello relazionale vs Modello concettuale Relazione Entità Tupla Istanza Colonne Attributi Dominio Insieme dei valori di un attributo Regola di derivazione per le associazioni L’associazione uno a uno diventa un’unica tabella che contiene gli attributi della prima e della seconda entità. L’identificatore univoco dell’entità di partenza nell’associazione uno a molti diventa chiave esterna dell’entità di arrivo associata. L’associazione molti a molti diventa una nuova tabella (in aggiunta alle tabelle derivate dalle entità) composta dagli identificato di univoci delle due entità e dagli eventuali attributi associazione. Es Associazione uno a molti Facoltà (CodFac, Descrizione, Città), Studenti (Matricola, Cognome, Nome, Indirizzo, CodFac) Associazione molti a molti Studenti (Matricola, Cognome, Nome, Indirizzo), Corsi (CodCorso, Descrizione, Anno) Esami (Matricola, CodCorso, data, voto) L’algebra relazionale Gli operatori relazionali agiscono su una o più relazioni per ottenere una nuova relazione (interrogazioni) • Sezione • Proiezione • Congiunzione Grado e cardinalità della relazione Grado: numero delle colonne della tabella Cardinalità: numero delle righe della tabella SELECT La selezione genera una nuova relazione costituita solo dalle tuple della relazione di partenza che soddisfano una determinata condizione, vengono cioè selezionate le righe con i valori degli attributi corrispondenti alla condizione prefissata. Il grado resta uguale La cardinalità è uguale o minore a quella di partenza (di solito minore). PROJECT La proiezione genera una nuova relazione estraendo dalla tabella iniziale una o più colonne corrispondenti agli attributi prefissati. Il grado risulta minore o uguale La cardinalità minore o uguale a quella di partenza (righe uguali ridotte a una) Acquisto ->entità DR Num_fatture an attributo Fornitore CodProd o Reporto Istanza Quantità 61 Protezione di studente su Cognome e Matricola Matricola 2345 alonazione a scenaarrannoafoe nirne ere2456 5678 3341 2 ae 3341 verell Query di creazione SELCT tabella.* INTO Newtable FROM tabella WHERE tabella.colonna= “parola” OR tabella.colonna= “parola2” Query di eliminazione DELETE studenti.* FROM Studenti WHERE Indirizzo = “parola” Query di accodamento INSERT INTO tabella SELCET tabella2.* FROM tabella 2 WHERE tabella2.colonna = “parola” Query di aggiornamento UPDATE tabella SET tabella.colonna = “nuova parola” WHERE condizione Query a campi incrociati TRANSFORM funzione di aggregazione (conteggio, somma, media) GROUP BY intestazione di riga PIVOT intestazione di colonna Normalizzazione La normalizzazione è un processo con il quale le tabelle vengono trasformate Ogni tabella corrisponde ad un singolo oggetto della realtà Le regole di normalizzazione sono definite per evitare inconsistenze e anomalie a seguito di operazioni di aggiornamento dei dati. Nella costruzione delle tabelle vanno evitare la ripetizione dei dati e la ridondanza delle informazioni. • ridondanza: lo stipendio di ciascun impiegato vine ripetuto in tutte le tuple, il budget viene ripetuto • anomalie di aggiornamento: se lo stipendio variasse occorrerebbe modificare il valore in tutte le tuple corrispondenti • anomalie di cancellazione: se l’impiegato decidesse di interrompere la partecipazione a tutti i progetti senza lasciare l’impresa, non è possibile conservare traccia del cognome e dello stipendio. • anomalie di inserimento: non è possibile inserire un nuovo impiegato fintantoché questo non viene assegnato ad un progetto Inconvenienti Questi problemi sono dovuti all’uso di un’unica relazione per rappresentare informazioni eterogenee. Normalizzazione delle relazioni (tabelle) La relazione iniziale viene scomposta in più relazioni. Complessivamente forniscono le stesse informazioni di partenza. Mantengono le dipendenze tra gli attributi • in ciascuna tabella, ogni attributo dipende direttamente dalla chiave Vengono evitati problemi di ridondanza e di incostanza dei dati. Non co deve essere perdita complessiva delle informazioni. Forme normali Prima forma normale (1FN): relazione com i requisiti fondamentali del modello relazionale Tutte le righe della tabella contengono lo stesso numero di colonne Gli attributi rappresentano informazioni elementari I valori che compaiono in una colonna appartengono allo stesso dominio Ogni riga è diversa da tutte le altre L’ordine com il quale le righe compaiono nella tabella è irrilevante Es: partendo da una sola tabella dove le colonne sono Matricola, Cognome e Nome, Data di nascita, Assunzione è stipendio, Figlio1 e Figlio2 Creare più colonne in modo che ogni colonna contenga una sola informazione (in modo che una colonna contenga solo Cognome, un altra solo Nome) Dipendenze • dipendenza funzionale tra attributi: il valore di um attributo A1 determina un singolo valore dell’attributo A2 (A1 -> A2) • dipendenza transitiva: un attributo A2 dipende da A1 e l’attributo A3 dipende da A2, allora A3 dipende transitivamente da A1 (A1->A2, A2->A3, A1->A3) Seconda forma normale (2FN) Elimina la dipendenza parziale degli attributi della chiave. • relazioni in prima forma normale • tutti gli attributi non-chiave dipendono dall’intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. Es: Tabella con due chiavi CodProdotto e CodMagazzino, per risolvere il problema devo creare due tabelle ognuna con una chiave primaria Terza forma normale (3FN) Elimina la dipendenza transitiva degli attributi dalla chiave • relazioni in seconda forma normale • tutti gli attributi non chiave dipendono direttamente dalla chiave, cioè non possiede attributi non chiave che dipendono da altri attributi non chiave Es: in una tabella con il nome dell’impiegato, il nome del reparto e il cellulare del reparto, non ci possono essere attributi che non dipendono dalla chiave nome dell’impiegato. Per fare ciò si costruiscono due tabelle che ricostruiscano la dinamica delle dipendenze facendo in modo che ogni attributo non chiave dipenda da un attributo chiave. Nella tabella originaria il telefono del reparto dipende dal nome del reparto che dipende dal nome dell’impiegato. Domini primitivi In SQL sono disponibili alcune famiglie di domini elementari attraverso le quali è possibile definire i domini di appartenenza dei campi. CHARACTER [VARYING] [(NumeroCaratteri)] [CHARACTER SET NomeFamigliaCaratteri] VARYING indica una lunghezza variabile in cui può essere specificato il NumeroCaratteri massimo. BIT [(NumeroCifre)] in SQL-2, BOOLEAN in SQL-3 BIT viene usato anche come flag per una proprietà. SMALLINT INTEGER per rappresentare i valori compresi tra -2n-1 e 2n-1-1 (con n bit assegnati a INT). NUMERIC [(CifreMantissa [,CifreDecimali])] Esempio: NUMERIC(4,1) per rappresentare i valori compresi tra -999,9 e 999,9 DECIMAL [(CifreMantissa [,CifreDecimali])] Se non vengono specificati i parametri il sistema usa dei valori predefiniti REAL con precisione fissa. DOUBLE PRECISION doppia rispetto a REAL. FLOAT [(CifreMantissa)] DATE con i campi YEAR, MONTH, DAY. TIME [(CifreDecimaliSecondi)] [WITH TIME ZONE] con i campi HOUR, MINUTE, SECOND. Default 0s. TIMESTAMP [(CifreDecimaliSecondi)] [WITH TIME ZONE] INTERVAL UnitàDiTempo(Cifre) [TO UnitàDiTempo[(CifreDecimali)]] Esempi: INTERVAL YEAR(2) TO MONTH per rappresentare gli intervalli fino a 99 anni e 11 mesi INTERVAL DAY(2) TO SECOND(1) per rappresentare gli intervalli fino a 99 giorni, 23 ore, 59 minuti e 59,9secondi. CREATE DOMAIN NomeDominio AS DominioPrimitivo [DEFAULT <Funzione | USER | NULL>] {[CONSTRAINT NomeVincolo] CHECK(Formula)}; NULL è l’impostazione predefinita. USER è l’identificativo dell’utente. Esempio: CREATE DOMAIN NumeriPari AS INTEGER DEFAULT 0 CONSTRAINT Positivo CHECK(VALUE>=0) CONSTRAINT Pari CHECK(VALUE%2=0); CREATE DOMAIN Voto AS NUMERIC(2) CHECK(VALUE>17 AND VALUE<31); CREATE TABLE NomeTabella CREATE TABLE Studenti( Matricola INT PRIMARY KEY, not null e unique Cognome VARCHAR(60) NOT NULL, obbligatorio Nome VARCHAR(30) NOT NULL, DataDiNascita DATE); CodiceFiscale CHAR(16) NOT NULL UNIQUE superchiave UNIQUE(Cognome,Nome) unique FOREIGN KEY(Cognome,Nome) REFERENCES Abbinamento(Cognome,Nome) deve essere unique {ON <DELETE | UPDATE> <CASCADE | SET NULL | SET DEFAULT | NO ACTION>}); ALTER TABLE NomeTabella {<ADD COLUMN |DROP COLUMN| ADD CONSTRAINT Vincoli devono essere soddisfatti dai valori presenti | DROP CONSTRAINT NomeVincolo | ALTER COLUMN Campo<SET DEFAULT NuovoValore|DROP DEFAULT>>}; Esempio: ALTER TABLE Studenti ADD COLUMN Residenza VARCHAR(255) DEFAULT ‘non nota’ DROP CONSTRAINT UNIQUE(Cognome,Nome) DROP TABLE NomeTabella [RESTRICT | CASCADE] RESTRICT non può essere eliminata una tabella non vuota. CASCADE elimina la tabella. Esempio: DROP TABLE Esami CASCADE INSERT INTO NomeTabella [(Campo1 {,CampoN})] <VALUES(Valore1 {,ValoreN}) | ComandoSelect >; Esempi: INSERT INTO Studenti VALUES (1010121,’Rossi’,’Paolo’,’1990-03-05’); INSERT INTO Studenti(Cognome,Matricola,Nome) VALUES (’Rossi’,1010121,’Paolo’); INSERT INTO StudentiRossi VALUES (SELECT * FROM Studenti WHERE Cognome=’Rossi’); UPDATE NomeTabella SET Campo= < Funzione | NULL | DEFAULT | ComandoSelect > {,Campo=<Funzione|NULL|DEFAULT|ComandoSelect>} [WHERE Formula] default WHERE TRUE Esempi: UPDATE Dipendenti SET Stipendio=Stipendio*1.01 WHERE Stipendio>30000; UPDATE Dipendenti SET Stipendio=Stipendio*1.03 WHERE Stipendio<=30000; DELETE FROM NomeTabella [WHERE Formula] Esempi: DELETE FROM Studenti; elimina le righe ma non la tabella
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved