Data Base Master "Bio Info" Reti e Basi di Dati Lezione 5 Sommario I concetti fondamentali Database e DBMS Tipi di Database Database Relazionale Attributi, Tupla , Vincoli di integrità, Chiavi, Vincolo di integrità referenziale ,Relazioni Query e SQL MySql I Data Base e la Bioinformatica Master "Bio Info" Reti e Basi di Dati Lezione 5 Sezione 1 I concetti fondamentali Master "Bio Info" Reti e Basi di Dati Lezione 5 I Concetti fondamentali Database e DBMS Database insieme di dati correlati tra loro, memorizzati su un supporto di memoria di massa, costituenti un tutt'uno, che possono essere manipolati da più programmi applicativi DBMS insieme di dati tra loro collegati e in aggiunta un sistema software per la gestione, quindi per l'aggiornamento, la manutenzione e la consultazione dei dati contenuti in un supporto di memoria di massa. DBMS = Database+ Programmi per la gestione dei dati Per gestione dei dati si intende: Immissione, cancellazione e modifica di dati già introdotti ricerca di dati attraverso criteri definiti dall'utente ordinamento e classificazione dei dati singolarmente o secondo vari criteri, stampa di rapporti o relazioni Master "Bio Info" Reti e Basi di Dati Lezione 5 I Concetti fondamentali Tipi di Database Database gerarchici Sviluppati negli anni ’60 un database gerarchico è un insieme di archivi composti da record (segmenti) che sono in rapporto gerarchico tra loro attraverso legami di tipo padre-figlio (struttura ad albero) Nel modello gerarchico si individua un segmento principale (padre o radice) dal quale dipendono n segmenti figli, che a loro volta sono padri per altri figli e così via, i figli possono essere raggiunti solo attraverso il padre, non è possibile dal figlio risalire al padre. Master "Bio Info" Reti e Basi di Dati Lezione 5 I Concetti fondamentali Database reticolari Nel modello reticolare sviluppato nei primi anni ’70, contrariamente al DB gerarchici dove un figlio può avere solo un padre, ogni record può avere un numero qualsiasi di record subordinati e di record precedenti, i legami avvengono attraverso record di collegamento (member) ll modello reticolare utilizza due tipi di strutture il record ed il set che permette di correlare i record. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Database relazionali Il modello relazionale, nato negli anno ‘70, si basa su due concetti relazione e tabella. La nozione di relazione proviene dalla teoria degli insiemi, mentre il concetto di tabella è semplice ed intuitivo. Dati due insiemi D1 e D2 si chiama prodotto cartesiano di D1 e D2 (D1xD2), l’insieme delle coppie ordinate (v1, v2), con v1 elemento di D1 e v2 è un elemento di D2. Una relazione sugli insiemi D1 e D2 è un sottoinsieme del prodotto cartesiano di D1xD2. Esempio: Dati gli insiemi A={1, 2 ,4} e B={a, b} A x B= {(1, a), (1, b), (2, a), (2, b), (4, a), (4, b)} una possibile relazione su A e B è R1= {(1, a), (1, b), (4, b)} Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Database relazionali Le relazioni possono esse rappresentate graficamente, in maniera utilmente espressiva, sotto forma tabellare. Esempio: NAPOLI MILAN 2 0 PALERMO INTER 7 0 La relazione precedente è un sottoinsieme del prodotto cartesiano: Stringa x Stringa x Intero x Intero L’ordine con cui compaiono i dati nelle righe è fondamentale (cambiando l’ordine di alcune colonne i risultati vengono stravolti), a ciò si ovvia utilizzando gli attributi come intestazioni per le colonne. Squadra di casa Squadra ospitata Reti casa Reti ospitata NAPOLI MILAN 2 0 PALERMO INTER 7 0 Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Database relazionali Modificando la definizione di relazione con l’introduzione degli attributi, l’ordinamento delle colonne risulta irrilevante. Una tupla su un insieme di attributi X (con x insieme di attributi della relazione) è una funzione t che associa a ciascun attributo A di X un valore del dominio DOM(A) Nell’esempio X= {Squadra di casa,Squadra ospitata,Reti casa,Reti ospitata} A1=Squadra di casa DOM(A1)= (Palermo,Milan,Juventus…) A2=Squadra ospitata DOM(A2)=(Palermo,Milan,Juventus…) A3=Reti casa DOM(A3)=N=(0,1,2, …) A4=Reti ospitata DOM(A4)=N=(0,1,2, …) Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Database relazionali La struttura del modello relazionale è molto semplice e potente e al tempo stesso impone un certo grado di rigidità poiché in ogni relazione possiamo rappresentare solo tuple corrispondenti allo schema della relazione stessa. In moti casi, i dati disponibili possono non corrispondere esattamente al formato previsto. Ad esempio: Persone (Cognome, Nome, Indirizzo, Telefono) Il valore dell’attributo Telefono potrebbe non essere disponibile per tutte le tuple, Per rappresentare la non disponibilità di valori, viene assunto un particolare valore per quel attributo detto valore nullo. In genere quando si definisce una relazione bisogna specificare quali saranno gli attributi in cui è possibile inserire il valore nullo. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Vincoli di integrità In una database si deve evitare di inserire dati privi di senso o sbagliati, per limitare che ciò accada, durante la creazione del database vengono stabiliti dei vincoli. Un vincolo è un predicato assume valore vero se l’istanza soddisfa il vincolo falso viceversa. In generale, ad uno schema di database associamo un insieme di vincoli e consideriamo corrette le istanze che soddisfano tutti i vincoli. Esempi di vincoli di integrità: Non permettere l’inserimento del codice di avviamento postale usando lettere invece di cifre numeriche o non accettare che vengano inseriti più di 5 cifre. Non consentire la cancellazione di un capo vendite senza che i suoi subalterni (venditori) siano gerarchizzati ad altro capo vendita o cancellati precedentemente.. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Le Chiavi Chiave candidata l’attributo o l’insieme di attributi che individuano univocamente la tupla all’interno della relazione. Chiave primaria la chiave con minor numero di attributi Chiave esterna l’attributo, o l’insieme di attributi, che può essere usata come chiave primaria per un'altra relazione. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Auto Targa IDProp Indirizzo RM 1A2396 1 Via Tigli FI 1A2300 1 Via Tigli TV 2F4560 2 Via Migli Proprietati IDProp Nome Cognome 1 Giuseppe Verdi 2 Carlo Felice Si possono considerate chiavi candidate della tabella Auto i tre attributi insieme, o gli attributi Targa e Proprietario insieme. Gli attributi Proprietario e Indirizzo, non possono essere considerati chiave candidata della relazione Auto sia da soli che insieme. È decisamente chiave primaria della tabella Auto l’attributo Targa. L’attributo IDProp comparendo come chiave primaria nella relazione Proprietari è chiave esterna. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Vincolo di integrità referenziale: Si ha un vincolo di integrità referenziale quando uno o più attributi di una relazione R1 compaiano come valori della chiave primaria in un’altra relazione R2. Cani Esempio: Proprietati ID_Cane Nome 56 Fido Setter 134 93 Birillo Meticcio 21 Diana Cocker Razza Proprietario IDProp Nome Cognome 356 134 Giuseppe Verdi 356 356 Carlo Felice Nelle due tabelle abbiamo rispettato il vincolo di integrità in quanto le tutte le tuple sono correlate tra di loro. Tutti i cani hanno un proprietario Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Tipi di relazioni tra tabelle: Un database in genere è composto da diversi tipi di informazione collegati tra loro. Per relazione tra tabelle si indica appunti una corrispondenza tra dati di due tabelle. I tipi di relazioni sono: uno a uno: relazioni tra elementi che hanno una corrispondenza univoca, ad un elemento di una tabella ne corrisponde uno soltanto in un'altra e viceversa; uno a molti: sono relazioni che si stabiliscono tra un record di una tabella e più records di un'altra tabella, ma non il contrario; molti a molti: un record può essere relazionato a più di un record di un'altra tabella e viceversa; questo tipo di relazione è normalmente definita tramite una terza tabella "ponte" tra le due da relazionare. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Tipi di relazioni tra tabelle: Per associazioni tra tabelle si indica una corrispondenza tra dati di due tabelle. I tipi di associazioni (dette anche relazioni) che possiamo avere sono: uno a uno: relazioni tra elementi che hanno una corrispondenza univoca, ad un elemento di una tabella ne corrisponde uno soltanto in un'altra e viceversa; uno a molti: sono relazioni che si stabiliscono tra un record di una tabella e più records di un'altra tabella, ma non il contrario; molti a molti: un record può essere relazionato a più di un record di un'altra tabella e viceversa; questo tipo di relazione è normalmente definita tramite una terza tabella "ponte" tra le due da relazionare. Master "Bio Info" Reti e Basi di Dati Lezione 53 I Concetti fondamentali Esempio di relazione uno a uno Email ID_pers Indirizzo ID Nome Cognome 1 4 [email protected] 4 Giuseppe Verdi 2 8 [email protected] 6 Carlo Felice 3 12 [email protected] 12 Filippo Pace ID_mail Persone Queste due tabelle hanno una relazione uno a uno, infatti per ogni elemento di “Persone“ esiste uno ed un solo elemento di “Email” e viceversa. Nel caso di una relazione uno-a-uno tutto può essere rappresentato con una singola tabella Master "Bio Info" ID Nome Cognome Indirizzo 4 Giuseppe Verdi [email protected] 6 Carlo Felice [email protected] 12 Filippo Pace [email protected] Reti e Basi di Dati Lezione 53 I Concetti fondamentali Esempio di relazione uno a molti Citta Persone ID Nome Cognome citta 4 Giuseppe Verdi Palermo 1 Sicilia Palermo 6 Carlo Felice Roma 2 Sicilia Agrigento 12 Filippo Pace Palermo 3 Lazio Roma ID Reg Citta Queste due tabelle hanno una relazione uno a molti, infatti per ogni elemento di “Citta“ possono esistere più elemento di “EPersone”. Nel caso di una relazione uno a molti nella tabella “molti” si toglie l’attributo in comune e si sostituisce con la chiave primaria della relazione “uno” Master "Bio Info" ID Nome Cognome ID_Citta 4 Giuseppe Verdi 1 6 Carlo Felice 2 12 Filippo Pace 1 Reti e Basi di Dati Lezione 53 I Concetti fondamentali Esempio di relazione molti a molti Autore ID Libri Autore ID Titolo Autore1 Autore2 1 Smith 4 Reti di Calcolatori Smith Carson 2 Carson 6 Mamma ho perso… Lucarelli Fini 3 Lucarelli 12 Il cavaliere Smith 4 Fini Le tabelle hanno una relazione molti a molti, ogni elemento di “Libri“ può avere lo stesso “Autore” che può avere scritto più “Libri”. Nel caso di una relazione molti a molti si deve creare una tabella di lookup che non contiene dati reali, ma solo le coppie in relazione ID Titolo 4 Reti di Calcolatori 6 Mamma ho perso… 12 Il cavaliere Master "Bio Info" ID Autore IDlibro IDAutore 4 1 1 Smith 4 2 2 Carson 6 3 3 Lucarelli 6 4 4 Fini 12 1 Reti e Basi di Dati Lezione 53