Basi di Dati e Sistemi Informativi Il Modello Relazionale Home page del corso:

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
DB - Modello relazionale dei dati
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Normalizzazione Forme Normali.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Basi di dati: il modello relazionale
Una Introduzione alle Basi di Dati
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
La Normalizzazione. 27 January, slide 2 Le nuove tecnologie Software Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci.
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
MODELLO LOGICO DEI DATI
Progettare un database
Dottorato di ricerca Nuove Tecnologie e Informazione Territorio – Ambiente Nozioni fondamentali di Basi di Dati Seminario interno.
Introduzione a Oracle 9i
Corso di Basi di Dati Progettazione di Basi di Dati
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
Sistemi di Elaborazione delle Informazioni Mod.I.
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi
La Normalizzazione. 2 May, slide 2 Le nuove tecnologie Software Normalizzazione Normalizzazione è il processo di semplificazione di un data base.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DATABASE.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Progettazione di una base di dati relazionale Vincoli.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Il modello relazionale
Eprogram informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Basi di Dati e Sistemi Informativi Esempi & Esercizi Il Modello Relazionale Home page del corso:
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Il Modello Relazionale Home page del corso: Corso di Basi di Dati.
Transcript della presentazione:

Basi di Dati e Sistemi Informativi Il Modello Relazionale Home page del corso:

Livelli di astrazione In gran parte dei DBMS moderni, i dati sono articolati su tre livelli di astrazione: Schema Esterno descrive come i dati appaiono per un utente o un gruppo di utenti. Schema Logico descrive lorganizzazione logica dei dati (dettagli a breve …) Schema Fisico descrive come i dati sono memorizzati su memoria secondaria.

Livelli di astrazione Proprieta (auspicabili) dei livelli in un DBMS: Indipendenza fisica interagire con il modello logico in modo indipendente dallo schema fisico. Indipendenza logica interagire con il livello esterno in modo indipendente dallo schema logico dei dati.

Livelli di astrazione In gran parte dei DBMS moderni, i dati sono articolati su tre livelli di astrazione: Schema Esterno descrive come i dati appaiono per un utente o un gruppo di utenti. Schema Logico descrive lorganizzazione logica dei dati (dettagli a breve …) Schema Fisico descrive come i dati sono memorizzati su memoria secondaria.

Modello Logico In cosa consiste in pratica il Modello logico ? Insieme di concetti per strutturare/organizzare i dati relativi ad un certo dominio dinteresse. Insieme di regole per modellare eventuali vincoli e restrizioni sui dati. Regole e Concetti generali Indipendenti dal dominio dinteresse che si sta considerando …

Modello Relazionale: overview Proposto nel 1970 da E.F. Codd, ricercatore dellIBM di San Jose, CA. Attualmente, il piu utilizzato, ma non lunico modello disponibile per le basi di dati. Intuitivo, e basato su nozioni di algebra di base. DBMS basati sul modello relazionale RDBMS (es. Oracle, MySQL, DB2, etc)

Modello Relazionale: overview Modello Relazionale i dati sono organizzati in record di dimensione fissa, e divisi in tabelle ( relazioni ). NomeCodice CorsoNome Docente Basi di dati0121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi Colonne della tabella (Proprieta di interesse) Attributi Intestazione della tabella (i.e. nome tabella + nome attributi) Schema della relazione Righe della tabella Istanze della relazione DEF. informale

Modello Relazionale: overview NomeCodice CorsoNome Docente Basi di dati0121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi Nome della relazione: CORSI Attributi : Nome, Codice del Corso, Nome Docente Schema della relazione : CORSI(Nome, Codice del Corso, Nome Docente) Istanze della relazione : CORSI

Modello Relazionale: overview NomeCodice CorsoNome Docente Basi di dati0121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi Ogni attributo dispone di un dominio che definisce linsieme di valori validi per quelllattributo. Es. dom(Corso) = string E possibile avere domini ripetuti nella stessa relazione! CORSI

Modello Relazionale: overview NomeCodice CorsoNome Docente Basi di dati0121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi VINCOLI sull ordine dei dati: Lordinamento delle righe e irrilevante Lordinamento delle colonne e irrilevante. CORSI

Modello Relazionale: overview NomeCodice CorsoNome Docente 11/01/ M. Di Felice Programmazione0123C. Laneve Sistemi Operativi1455D. SangiorgiR. Davoli Sistemi Operativi1455D. SangiorgiR. Davoli VINCOLI sui dati della relazione Non possono esistere attributi uguali ( 1 ). Non possono esistere righe uguali ( 2 ). I dati di una colonna devono essere omogenei ( 3 ). CORSI

Modello Relazionale: overview NomeCodice CorsoNome Docente E possibile avere uno schema di relazioni senza instanze (es. in fase di creazione del DB) … CORSI Il viceversa e impossibile … ………… Sistemi Operativi1455D. SangiorgiR. Davoli Sistemi Operativi1451D. SangiorgiR. Davoli

Modello Relazionale: overview MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 In pratica, una base di dati puo essere costituita da molte tabelle … Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L CORSI ESAMI STUDENTI

Modello Relazionale: overview MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 Nel modello relazionale, i riferimenti tra dati in relazioni differenti sono espressi mediante valori. Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L CORSI ESAMI STUDENTI

Modello Relazionale: overview Oltre al modello relazionale (proposto negli anni settanta), esistono altri modelli logici di organizzazione dei dati: Modello gerarchico Modello reticolare Modello ad oggetti Modello XML-based …

Modello Relazionale: overview MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 In molti modelli (es. gerarchico, reticolare, oggetti ), i riferimenti tra tabelle sono definiti mediante puntatori. Nome CorsoCodice Corso Codice Docente Basi di dati00 Programmazione Sistemi Operativi CorsoStudenteVoto L CORSI ESAMI STUDENTI

Modello Relazionale: overview Vantaggi del modello relazionale: - Indipendenza fisica : vengono rappresentati solo i dati, e non le informazioni aggiuntive su dove i dati sono memorizzati (es. puntatori ad aree di memoria). - Portabilita del modello tra piattaforme differenti. -Gestione semplificata di operazioni di modifica. Svantaggi del modello relazionale: - Maggiore complessita nellimplementazione del modello da parte del DBMS.

Modello Relazionale: overview Nella pratica, quando si inizia a progettare una base di dati di un certo dominio dinteresse, le informazioni NON sono gia tradotte in dati del modello relazionale… Es. Realizzazione di un sistema informativo per gestire i dati di una societa immobiliare. Quali dati devono essere gestiti? Quali/quante tabelle usare?

Modello Relazionale: overview Quali dati devono essere gestiti? Quali/quante tabelle usare? PROPRIETARIIMMOBILIACQUIRENTI NomeCognomeCodice FiscaleData NascitaResidenza ACQUIRENTI Es. Realizzazione di un sistema informativo per gestire i dati di una societa immobiliare. } PROGETTISTA

Modello Relazionale: overview Q : Perche si chiama modello relazionale? A : Una relazione sui dati puo essere vista come una relazione matematica ! (con una leggera variazione). Q2 :… Come e definita una relazione matematica (nella teoria degli insiemi) ?

Modello Relazionale: overview DEF. Dati n insiemi D 1, D 2, … D n, una relazione matematica sugli insiemi D 1, D 2, … D n e definita come un sottoinsieme del prodotto cartesiano D 1 x D 2 x … x D n. DEF. Il prodotto cartesiano degli insiemi D 1, D 2, … D n e definito come linsieme delle tuple ordinate ( d 1, d 2, … d n ), con d i D i,

Modello Relazionale: overview Esempi di relazione ( n =2): A ={a,b,c,d,e}, B ={1,2,3} Prod. Cartesiano ={(a,1),(a,2),(a,3),(b,1),(b,2),(b,3), (c,1), (c,2), (c,3), (d,1), (d,2), (d,3), (e,1), (e,2), (e,3)} Relazione = {(a,1),(a,2),(a,3)} Relazione = {(a,2),(b,1),(d,3),(e,3)} Relazione = {(d,2)}

Modello Relazionale: overview Se usassimo la definizione classica di relazione matematica nel modello relazionale dei dati: NomeCodice CorsoNome Docente Basi di dati2121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi CORSI Problema : Ordinamento delle tuple in una relazione … In generale:

Modello Relazionale: overview Dal punto di vista dei dati, i due schemi sono uguali, ma non lo sono se consideriamo la definizione di relazione matematica! NomeCodiceDocente Basi di dati2121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi Soluzione: Usare rappresentazione NON posizionale, mediante gli attributi … CodiceDocenteNome 2121M. Di FeliceBasi di dati 1213C. LaneveProgrammazione 1455D. SangiorgiSistemi Operativi

Modello Relazionale: overview Volendo fornire una definizione rigorosa di relazione nel modello relazionale … Schema di relazione : un nome R con un insieme di attributi A 1,..., A n : R (A 1,..., A n ) CorsoCodiceDocente Basi di dati2121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi CORSI ( Corso, Codice, Docente ) Schema di relazione:

Modello Relazionale: overview Volendo fornire una definizione rigorosa di relazione nel modello relazionale … Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A. t[A] denota il valore della ennupla t sull'attributo A. Istanza di relazione su uno schema R(X): insieme r di ennuple su X.

Modello Relazionale: overview Volendo fornire una definizione rigorosa di relazione nel modello relazionale … CorsoCodiceDocente Basi di dati2121M. Di Felice Programmazione1213C. Laneve Sistemi Operativi1455D. Sangiorgi t1t1 t2t2 t3t3 t1[Corso] = Basi di dati t1[Codice]=2121 t3[Docente]=D. Sangiorgi Istanza di CORSI ( Corso, Codice, Docente )= {t 1,t 2,t 3 }

Modello Relazionale: overview Generalizzando nel caso di basi di dati composte da piu relazioni: Schema di base di dati : insieme di schemi di relazione: R = {R 1 (X 1 ),..., R k (X k )} Istanza di base di dati su uno schema R = {R 1 (X 1 ),..., R k (X k )}: insieme di istanze di relazioni r = {r 1,..., r n } (con r i relazione sullo schema R i )

Modello Relazionale: overview Una relazione si dice in Prima Forma Normale (PFN) se tutti gli attributi sono definiti su domini atomici e non su domini complessi. NomeCodice CorsoInfo Docente Basi di dati2121M. Di Felice, Ricercatore, Codice: Programmazione1213C. Laneve, Professore, Codice:6575 Sistemi Operativi1455D. Sangiorgi, Professore, Codice: CORSI Relazione NON in Prima Forma Normale!

Modello Relazionale: overview Una relazione si dice in Prima Forma Normale (PFN) se tutti gli attributi sono definiti su domini atomici e non su domini complessi. NomeCodice Corso DocenteRuoloCodice Basi di dati 2121M. Di FeliceRicercatore13435 Program mazione 1213C. LaneveProfessore6575 Sistemi Operativi 1455D. SangiorgiProfessore43242 CORSI Relazione Normalizzata ( PFN ) Relazione valida … … ma non ben progettata !

Modello Relazionale: overview Altre componenti del modello relazionale: Informazioni incomplete Vincoli di integrita Vincoli intra-relazionali Vincoli inter-relazionali

Modello Relazionale: overview In una relazione, le ennuple di dati devono essere omogenee (ossia avere tutte le stessa struttura). PROBLEMA ( 1 ): Che accade se il valore di un attributo per una certa ennupla non e noto ? CodiceNomeCognomeData di Nascita 21MarioRossi12/4/ VittorioBianchi ???? IMPIEGATI

Modello Relazionale: overview In una relazione, le ennuple di dati devono essere omogenee (ossia avere tutte le stessa struttura). PROBLEMA ( 2 ): Che accade se il valore di un attributo per una certa ennupla e inesistente ? ESAMI CodiceAnno di StudiCorsoCodice Docente 213Basi di dati Idoneita inglese ????

Modello Relazionale: overview In una relazione, le ennuple di dati devono essere omogenee (ossia avere tutte le stessa struttura). PROBLEMA ( 3 ): Che accade se il valore di un attributo per una certa ennupla e senza informazione ? Il valore dellattributo non esiste. (CASO2) Esiste ma non e noto al momento della creazione della ennupla. (CASO1)

Modello Relazionale: overview Una possibile soluzione per tutti e tre i casi potrebbe essere quella di colmare le informazioni mancanti usando valori speciali. Si richiedono valori speciali per ogni attributo. Si richiede di conoscere la semantica dei valori speciali da parte delle applicazioni. CodiceAnno di StudiCorsoCodice Docente 213Basi di dati Idoneita inglese 0000

Modello Relazionale: overview In alternativa: le informazioni mancanti sono etichettate con il valore NULL. t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore NULL. Tramite valori NULL, e possibile gestire i 3 casi visti in precedenza (valori non noti, inesistenti o senza informazione), senza necessita di operare distinzione tra gli stessi.

Modello Relazionale: overview Valore di attributo non noto : CodiceNomeCognomeData di Nascita 21MarioRossi12/4/ VittorioBianchi NULL IMPIEGATI Valore di attributo inesistente : ESAMI CodiceAnno di StudiCorsoCodice Docente 213Basi di dati Idoneita inglese NULL

Modello Relazionale: overview E fondamentale limitare il numero di valori NULL in una relazione … perche? STIPENDI CodiceNomeCognomeQualificaStipendio 21MarcoRossiA Marco NULL NULL C MicheleVerdiDNULL MarcoRossiA24000

Modello Relazionale: overview Per definizione, NULL <> NULL STIPENDI CodiceNomeCognomeQualificaStipendio 21MarcoRossiA Marco NULL C Marco NULL C14000 NULL MicheleVerdiD24000 NULL MicheleVerdiD24000 Righe distinte, no duplicati !

Modello Relazionale: overview Altre componenti del modello relazionale: Informazioni incomplete Vincoli di integrita Vincoli intra-relazionali Vincoli inter-relazionali

Modello Relazionale: overview Non tutte le istanze di una relazione (o di una base di dati) possono considerarsi lecite! MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L L CORSI ESAMI STUDENTI

Modello Relazionale: overview Non tutte le istanze di una relazione (o di una base di dati) possono considerarsi lecite! MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L L CORSI ESAMI STUDENTI

Modello Relazionale: overview Non tutte le istanze di una relazione (o di una base di dati) possono considerarsi lecite! MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L CORSI ESAMI STUDENTI

Modello Relazionale: overview Un vincolo e una funzione booleana, che associa ad una istanza r di una base di dati definita su uno schema R = {R 1 (X 1 ),..., R k (X k )} un valore di verita ( true / false ). Istanza lecita Instanza che soddisfa tutti i vincoli. Vincoli intra-relazionali (su ciascuna relazione) Vincoli di ennupla Vincoli di chiave Vincoli inter-relazionali (tra relazioni diverse)

Modello Relazionale: overview Altre componenti del modello relazionale: Informazioni incomplete Vincoli di integrita Vincoli intra-relazionali Vincoli di ennupla Vincoli di chiave Vincoli inter-relazionali

Modello Relazionale: overview I vincoli di ennupla esprimono condizioni su ciascuna ennupla, considerata singolarmente. Possono essere espressi mediante espressioni algebriche o espressioni booleane. CorsoStudenteVotoLode NO SI C1: C2:

Modello Relazionale: overview I vincoli di ennupla esprimono condizioni su ciascuna ennupla, considerata singolarmente. DataEntrateUsciteSaldo 10/02/ /02/ /02/ /02/ /02/ /02/ C1:

Modello Relazionale: overview I vincoli di ennupla esprimono condizioni su ciascuna ennupla, considerata singolarmente. Come esprimere la condizione che il saldo di un giorno sia dipendente dal saldo del giorno precedente … Non posso farlo con i vincoli di ennupla visti fin qui!

Modello Relazionale: overview Altre componenti del modello relazionale: Informazioni incomplete Vincoli di integrita Vincoli intra-relazionali Vincoli di ennupla Vincoli di chiave Vincoli inter-relazionali

Modello Relazionale: overview (Def. Informale) Una chiave e un insieme di attributi che consente di identificare in maniera univoca le ennuple di una relazione. MatricolaCognomeNomeData Nascita RossiGiorgio12/12/ BianchiMichele04/12/ VerdiMarco11/04/1988 STUDENTI Non esistono due studenti con la stessa matricola. Data la matricola di uno studente, e possibile risalire a tutti i suoi dati (cognome/nome/data di nascita).

Modello Relazionale: overview Un sottoinsieme K di attributi di una relazione e una superchiave se NON contiene due ennuple distinte t1 e t2 con t1[K]=t2[K]. MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/1988 STUDENTI 1.{Matricola} e una superchiave 2.{Cognome} NON e una superchiave 3.{Matricola, Cognome} e una superchiave 4.{Cognome, Nome} e una superchiave

Modello Relazionale: overview Una chiave di una relazione r e una superchiave minimale di r (ossia non esiste unaltra superchiave K che sia contenuta in K). MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/1988 STUDENTI 1.{Matricola} e una chiave 2.{Cognome} NON e una chiave 3.{Matricola, Cognome} NON e una chiave 4.{Cognome, Nome} e una chiave

Modello Relazionale: overview Q1: Esiste sempre almeno una superchiave per ogni relazione ? SI (perche?) Q2: Possono esistere piu superchiavi per la stessa relazione? SI (esempio sotto) MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/ VerdiGiovanni12/5/ VerdiMatteo12/07/1990 STUDENTI {Matricola} {Cognome, Nome} {Matricola,Cognome} {Maricola, Nome, Cognome} ….

Modello Relazionale: overview Q1: Esiste sempre almeno una chiave per ogni relazione ? SI (perche?) Q2: Possono esistere piu chiavi per la stessa relazione? SI (esempio sotto) MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/ VerdiGiovanni12/5/ VerdiMatteo12/07/1990 STUDENTI {Matricola} {Cognome, Nome} ….

Modello Relazionale: overview In fase di progettazione, le chiavi dovrebbero essere definite a livello di schema, e non di istanza. MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/ VerdiGiovanni12/5/ VerdiMatteo12/07/1990 STUDENTI {Nome} e una chiave in questa istanza, ma e un caso fortuito …

Modello Relazionale: overview Come regola generale, le chiavi dovrebbero essere definite a livello di schema, e non di istanza. MatricolaCognomeNomeData Nascita RossiGiorgio04/12/ BianchiMichele04/12/ BianchiMarco11/04/ VerdiGiovanni12/5/ VerdiMatteo12/07/1990 STUDENTI Per definire una chiave a livello di schema, servono informazioni aggiuntive sul dominio dei dati …

Modello Relazionale: overview A che servono le chiavi? Per accedere a ciascuna ennupla della base di dati, in maniera univoca. Per correlare dati tra relazioni differenti. Nome CorsoCodice Corso Codice Docente Basi di dati Programmazione Sistemi Operativi CorsoStudenteVoto L CORSI ESAMI

Modello Relazionale: overview Che accade se una chiave ha valori NULL? In questo caso, potrebbero NON essere garantiti lindirizzamento univoco delle ennuple, e le correlazioni tra tabelle diverse… MatricolaCognomeNomeData Nascita RossiGiorgio04/12/1987 NULLBianchiMarco04/12/ BianchiMarcoNULL VerdiGiovanni12/5/1990 NULLVerdiMatteo12/07/1990 STUDENTI

Modello Relazionale: overview Chiave primaria chiave di un relazione su cui NON sono ammessi valori NULL. Gli attributi di una chiave primaria sono in genere indicati con una sottolineatura. Matricola CognomeNomeDataNascita RossiGiorgio04/12/1987 NULLBianchiMarco04/12/ BianchiMarcoNULL VerdiGiovanni12/5/ VerdiMatteo12/07/1990 STUDENTI

Modello Relazionale: overview Chiave primaria chiave di un relazione su cui NON sono ammessi valori NULL. Gli attributi di una chiave primaria sono in genere indicati con una sottolineatura. Matricola CognomeNomeDataNascita RossiGiorgio04/12/1987 STUDENTI STUDENTI (Matricola, Cognome, Nome, DataNascita)

Modello Relazionale: overview Ogni relazione deve disporre di una chiave primaria. Come fare nel caso tutte le chiavi presentino dei valori NULL? Aggiungere codici o identificativi progressivi … CodiceNomeCognomeRepartoData ricovero Data dimissione 1NULL RianimazioneNULL10/02/2012 2BianchiMarcoDermatologiaNULL10/04/2012 3BianchiMarcoOrtopedia08/01/201110/02/2012 4VerdiGiovanniOrtopedia08/01/2011NULL 5VerdiMatteoOrtopedia23/01/2011NULL RICOVERI

Modello Relazionale: overview Una chiave puo essere composta da piu attributi. Squadra1Squadra2DataPunti1Punti2 Pol. RossiPol. Bianchi10/04/ Pol. VerdiPol. Rossi10/06/ VirtusPalestra Grigi10/09/ PARTITA PARTITA (Squadra1,Squadra2, Dati, Punti1, Punti2)

Modello Relazionale: overview Una chiave puo essere composta da piu attributi. Squadra1Squadra2DataPunti1Punti2 Pol. RossiPol. Bianchi10/04/ Pol. RossiPol. Bianchi NULL VirtusPalestra Grigi10/09/ PARTITA Squadra1Squadra2DataPunti1Punti2 Pol. RossiPol. Bianchi10/04/ Pol. RossiPol. Bianchi10/06/ VirtusPalestra Grigi10/09/ PARTITA

Modello Relazionale: overview Altre componenti del modello relazionale: Informazioni incomplete Vincoli di integrita Vincoli intra-relazionali Vincoli di ennupla Vincoli di chiave Vincoli inter-relazionali

Modello Relazionale: overview MatricolaNomeCognome 12345MicheleRossi 67890LucaBianchi 12123NicolaGialli 1233LucaGialli 12567MicheleRosi Provinci a NumeroProprietario BO3F7634Pietro Verdi RM4G2121Luca Verdi FI23G234Tony Ricci VIGILI AUTO CodiceDataAgenteProvinciaNumero C12305/02/ BO3F7634 C34507/09/ RM4G2121 C46609/09/ FI23G234 INFRAZIONI

Modello Relazionale: overview Un vincolo di integrità referenziale ( foreign key ) fra gli attributi X di una relazione R 1 e unaltra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2. In pratica: consente di collegare le informazioni tra tabelle diverse attraverso valori comuni …

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATLFCOAlitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATLFCOAlitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATLFCOAlitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATL MPX Alitalia124 AF11/02/2012BOQFKTAir France 126 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataCittaPartenzaArrivoCompagniaPilota LH2110/02/2012RomaBOQLufthansa123 AZ2110/02/2012Bologna MPX Alitalia124 AF11/02/2012AtlantaFKTAir France 126 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 CMPRoma5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataCittaPartenzaArrivoCompagniaPilota LH2110/02/2012RomaBOQLufthansa123 AZ2110/02/2012Bologna MPX Alitalia124 AF11/02/2012AtlantaFKTAir France 126 VOLI PRENOTAZIONE NrTicketCodiceVoloDataVoloNomeCognome 123LH2110/02/2012MarioRossi 124LH2110/02/2012MarioBianchi

Modello Relazionale: overview Il vincolo di integrita referenziale e definito tra gli attributi di una tabella (interna) ed il nome della tabella referenziata. Es. Attributo Arrivo della relazione VOLI e la relazione AEROPORTI Nel modello relazionale (teorico) non e necessario definire lattributo della relazione AEROPORTI, in quanto si suppone che la chiave primaria esista e sia unica.

Modello Relazionale: overview In pratica: alcuni DBMS consentono di definire delle relazioni senza una chiave primaria associata! Per definire il vincolo di integrita referenziale, occorre esplicitare i nomi degli attributi (su cui si applica il vincolo) di entrambe le tabelle: VOLI.Arrivi AEROPORTO.IdAeroporto Notazione: SCHEMA.NomeAttributo

Modello Relazionale: overview Puo accadere che unoperazione di aggiornamento su una relazione causi violazioni di vincoli di integrita su altre relazioni. Come reagire: Non consentire loperazione. Eliminazione a cascata. Inserimento di valori NULL.

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATLFCOAlitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012FCOBOQLufthansa123 AZ2110/02/2012ATLFCOAlitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview CodiceDataPartenzaArrivoCompagniaPilota LH2110/02/2012 NULL BOQLufthansa123 AZ2110/02/2012ATL NULL Alitalia124 AF11/02/2012BOQFKTAir France123 VOLI PILOTI IdPilotaNomeCognome 123MarioRossi 124MicheleBianchi AEROPORTI IdAeroportoCitta#Piste FCORoma10 BOQBologna5 ATLAtlanta40 FKFFrancoforte30

Modello Relazionale: overview Modello intuitivo Basato su proprieta algebrico/logiche Garantisce indipendenza dallo schema fisico Riflessivita meta-informazioni di una relazione sono gestite a loro volta attraverso relazioni. Poca flessibilita Tutte le istanza di una relazione devono possedere la stessa struttura … Ridondanza dei dati causata dai vincoli inter-r.. PRO CONS

Altri Modelli Logici I dati sono rappresentati come record. Le associazioni tra i dati sono rappresentate con puntatori in una struttura ad albero. MODELLO GERARCHICO CLIENTI CONTI CORRENTI MOVIMENTI

I dati sono rappresentati come record. Le associazioni tra i dati sono rappresentate con puntatori in una struttura a grafo complesso. MODELLO RETICOLARE PROFESSORI CORSI STUDENTI Altri Modelli Logici

Una base di dati e una collezione di oggetti. Ogni oggetto ha un indentificatore univoco (OID) gestito dal sistema (a differenza delle chiavi). Ogni oggetto ha uno stato, definito come una struttura complessa a partire da dati semplici. Ogni oggetto ha dei metodi che consentono di manipolare lo stato. Gli oggetti possono essere incapsulati in altri oggetti, estesi (mediante ereditarieta ), etc MODELLO AD OGGETTI Altri Modelli Logici

XML linguaggio di markup (come HTML), con possibilita da parte dellutente di creare documenti strutturati attraverso tag specifici. Un documento XML ha una struttura gerarchica, rappresentabile attraverso un albero. La base di dati e costituita da un documentoXML oppure da un insieme di documenti XML. Linguaggi di interrogazione: Xquery, XQL, Xpath MODELLO BASATO su XML Altri Modelli Logici