840 likes | 960 Views
Basi di Dati e Sistemi Informativi. Il Modello Relazionale Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. Livelli di astrazione. In gran parte dei DBMS moderni , i dati sono articolati su tre livelli di astrazione :
E N D
Basi di Dati e SistemiInformativi Il ModelloRelazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
Livelli di astrazione • In gran parte dei DBMS moderni, idatisonoarticolatisutrelivellidi astrazione: • Schema Esterno descrive come idatiappaiono per un utente o un gruppo di utenti. • Schema Logico descrivel’organizzazionelogicadeidati (dettagli a breve …) • Schema Fisico descrive come idatisonomemorizzatisumemoriasecondaria.
Livelli di astrazione • Proprieta’ (auspicabili) deilivelli in un DBMS: • Indipendenzafisica interagire con ilmodellologicoin modoindipendentedallo schema fisico. • Indipendenzalogica interagire con illivelloesterno in modoindipendentedallo schema logicodeidati.
Livelli di astrazione • In gran parte dei DBMS moderni, idatisonoarticolatisutrelivellidi astrazione: • Schema Esterno descrive come idatiappaiono per un utente o un gruppo di utenti. • Schema Logico descrivel’organizzazionelogicadeidati (dettagli a breve …) • Schema Fisico descrive come idatisonomemorizzatisumemoriasecondaria.
ModelloLogico • In cosaconsiste in praticailModellologico? • Insieme di concetti per strutturare/organizzareidatirelativi ad un certodominiod’interesse. • Insieme di regole per modellareeventualivincolie restrizioni sui dati. • Regole e Concettigenerali Indipendenti dal dominiod’interessechesistaconsiderando …
ModelloRelazionale: overview • Propostonel 1970 da E.F. Codd, ricercatoredell’IBM di San Jose, CA. • Attualmente, ilpiu’ utilizzato, ma non l’unicomodellodisponibileper le basi di dati. • Intuitivo, e basatosunozioni di algebra di base. • DBMS basatisulmodellorelazionale RDBMS (es. Oracle, MySQL, DB2, etc)
ModelloRelazionale: overview DEF. informale ModelloRelazionale idatisonoorganizzati in record di dimensionefissa, e divisi in tabelle (relazioni). • Colonnedellatabella(Proprieta’ di interesse) Attributi • Intestazionedellatabella (i.e. nometabella + nomeattributi) Schemadellarelazione • Righedellatabella Istanzedellarelazione
ModelloRelazionale: overview CORSI • Nome dellarelazione: CORSI • Attributi: Nome, Codice del Corso, Nome Docente • Schema dellarelazione: • CORSI(Nome, Codice del Corso, Nome Docente) • Istanzedellarelazione: • <Basi di dati, 0121, M. Di Felice>
ModelloRelazionale: overview CORSI • Ogniattributodispone di undominiochedefiniscel’insieme di valorivalidiper quelll’attributo. • Es. dom(Corso) = string • E’ possibileaveredominiripetutinellastessarelazione!
ModelloRelazionale: overview CORSI • VINCOLIsull’ordinedeidati: • L’ordinamentodellerighe e’ irrilevante • L’ordinamentodellecolonne e’ irrilevante.
ModelloRelazionale: overview (1) CORSI (3) (2) • VINCOLI sui datidellarelazione • Non possonoesistereattributiuguali(1). • Non possonoesistererigheuguali(2). • I datidi unacolonnadevonoessereomogenei (3).
ModelloRelazionale: overview E’ possibileavereuno schema di relazionisenzainstanze(es. in fase di creazione del DB) … CORSI Il viceversa e’ impossibile …
ModelloRelazionale: overview In pratica, unabase di datipuo’ esserecostituita da moltetabelle… CORSI ESAMI STUDENTI
ModelloRelazionale: overview Nelmodellorelazionale, iriferimentitradati in relazionidifferentisonoespressimediantevalori. CORSI ESAMI STUDENTI
ModelloRelazionale: overview • Oltre al modellorelazionale (propostonegliannisettanta), esistonoaltrimodellilogicidi organizzazionedeidati: • Modellogerarchico • Modelloreticolare • Modelload oggetti • ModelloXML-based • …
ModelloRelazionale: overview In moltimodelli (es. gerarchico, reticolare, oggetti), iriferimentitratabellesonodefinitimediantepuntatori. CORSI ESAMI STUDENTI
ModelloRelazionale: overview • Vantaggi del modellorelazionale: • Indipendenzafisica: vengonorappresentati solo idati, e non le informazioniaggiuntivesudove idatisonomemorizzati (es. puntatori ad aree di memoria). • Portabilita’ del modellotrapiattaformedifferenti. • Gestionesemplificata di operazioni di modifica. • Svantaggi del modellorelazionale: • - Maggiore complessita’ nell’implementazionedel modello da parte del DBMS.
ModelloRelazionale: overview • Nellapratica,quandosiinizia a progettareuna base di dati di un certodominiod’interesse, le informazioni NON sonogia’ tradotte in dati del modellorelazionale… • Es. Realizzazione di un sistemainformativo per gestireidati di unasocieta’ immobiliare. • Qualidatidevonoesseregestiti? • Quali/quantetabelleusare?
ModelloRelazionale: overview Es. Realizzazione di un sistemainformativo per gestireidati di unasocieta’ immobiliare. } • Qualidatidevonoesseregestiti? • Quali/quantetabelleusare? ACQUIRENTI PROPRIETARI IMMOBILI PROGETTISTA ACQUIRENTI
ModelloRelazionale: overview Q: Perche’ sichiamamodellorelazionale? A: Unarelazione sui datipuo’ essere vista come unarelazionematematica! (con unaleggeravariazione). Q2:… Come e’ definitaunarelazionematematica (nellateoriadegliinsiemi)?
ModelloRelazionale: overview DEF. DatininsiemiD1, D2, … Dn, unarelazionematematicasugliinsiemiD1, D2, … Dne’ definita come un sottoinsieme del prodottocartesiano D1x D2x … x Dn. DEF.Il prodottocartesianodegliinsiemiD1, D2, … Dne’ definito come l’insiemedelle tuple ordinate (d1, d2, … dn), con diDi,
ModelloRelazionale: 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)}
ModelloRelazionale: overview Se usassimo la definizioneclassica di relazionematematicanelmodellorelazionaledeidati: CORSI Problema: Ordinamentodelle tuple in unarelazione … In generale:
ModelloRelazionale: overview Dal punto di vista deidati, i due schemisonouguali, ma non lo sono se consideriamo la definizione di relazionematematica! Soluzione: UsarerappresentazioneNON posizionale, mediantegliattributi …
ModelloRelazionale: overview Volendofornireunadefinizionerigorosadi relazionenelmodellorelazionale… • Schema di relazione: un nomeR con un insieme di attributiA1, ..., An: • R (A1,..., An) Schema di relazione: CORSI(Corso, Codice, Docente)
ModelloRelazionale: overview Volendofornireunadefinizionerigorosadi relazionenelmodellorelazionale… • Unaennuplasu un insieme di attributi X èunafunzionecheassocia a ciascunattributo A in X un valore del dominio di A. • t[A]denotailvaloredellaennupla t sull'attributo A. • Istanza di relazionesuuno schema R(X):insiemer di ennuplesuX.
ModelloRelazionale: overview Volendofornireunadefinizionerigorosadi relazionenelmodellorelazionale… t1 t2 t3 t1[Corso] = “Basi di dati” t1[Codice]=“2121” t3[Docente]=“D. Sangiorgi” Istanza di CORSI(Corso, Codice, Docente)= {t1,t2,t3}
ModelloRelazionale: overview Generalizzandonelcaso di basi di daticomposte da piu’ relazioni: • Schema di base di dati: • insiemedi schemi di relazione: R = {R1(X1), ..., Rk(Xk)} • Istanza di base di datisuuno schema R = {R1(X1), ..., Rk(Xk)}: insieme di istanze di relazioni r = {r1,..., rn} (con rirelazionesullo schema Ri)
ModelloRelazionale: overview Unarelazionesi dice in Prima Forma Normale (PFN) se tuttigliattributisonodefinitisudominiatomici e non sudominicomplessi. CORSI Relazione NON in Prima Forma Normale!
ModelloRelazionale: overview Unarelazionesi dice in Prima Forma Normale (PFN) se tuttigliattributisonodefinitisudominiatomici e non sudominicomplessi. RelazioneNormalizzata (PFN) CORSI Relazionevalida … … ma non ben progettata!
ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoliinter-relazionali
ModelloRelazionale: overview In unarelazione, le ennuple di datidevonoessereomogenee (ossiaaveretutte le stessastruttura). PROBLEMA (1):Cheaccade se ilvalore di un attributo per unacertaennuplanon e’ noto? IMPIEGATI
ModelloRelazionale: overview In unarelazione, le ennuple di datidevonoessereomogenee (ossiaaveretutte le stessastruttura). PROBLEMA (2):Cheaccade se ilvalore di un attributo per unacertaennuplae’ inesistente? ESAMI
ModelloRelazionale: overview In unarelazione, le ennuple di datidevonoessereomogenee (ossiaaveretutte le stessastruttura). PROBLEMA (3):Cheaccade se ilvalore di un attributo per unacertaennuplae’ senzainformazione? • Il valoredell’attributonon esiste. (CASO2) • Esiste ma non e’ notoal momentodellacreazionedellaennupla. (CASO1)
ModelloRelazionale: overview Unapossibilesoluzione per tutti e treicasipotrebbeesserequella di colmare le informazionimancantiusando “valorispeciali”. • Si richiedonovalorispeciali per ogniattributo. • Si richiede di conoscere la semanticadeivalori “speciali” da parte delleapplicazioni.
ModelloRelazionale: overview • In alternativa: le informazionimancantisonoetichettate con ilvalore NULL. • t[A], per ogniattributo A, èunvalore del dominiodom(A)oppureilvaloreNULL. • Tramitevalori NULL, e’ possibilegestirei 3 casivisti in precedenza(valori non noti, inesistenti o senzainformazione), senzanecessita’ di operaredistinzionetraglistessi.
ModelloRelazionale: overview • Valore di attributonon noto: IMPIEGATI • Valore di attributoinesistente: ESAMI
ModelloRelazionale: overview • E’ fondamentalelimitareilnumero di valori NULL in unarelazione … perche’? STIPENDI
ModelloRelazionale: overview • Per definizione, NULL <> NULL Righedistinte, no duplicati! STIPENDI Righedistinte, no duplicati!
ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoliinter-relazionali
ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI
ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI
ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI
ModelloRelazionale: overview • Un vincolo e’ unafunzionebooleana, cheassocia ad unaistanzar di una base di datidefinitasuuno schema R = {R1(X1), ..., Rk(Xk)} un valore di verita’ (true/false). • Istanzalecita Instanzachesoddisfatuttiivincoli. • Vincoliintra-relazionali(suciascunarelazione) • Vincoli di ennupla • Vincoli di chiave • Vincoliinter-relazionali(trarelazioni diverse)
ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoli di ennupla • Vincoli di chiave • Vincoliinter-relazionali
ModelloRelazionale: overview I vincoli di ennuplaesprimonocondizionisuciascunaennupla, consideratasingolarmente. Possonoessereespressimedianteespressionialgebriche o espressionibooleane. C1: C2:
ModelloRelazionale: overview I vincoli di ennuplaesprimonocondizionisuciascunaennupla, consideratasingolarmente. C1:
ModelloRelazionale: overview I vincoli di ennuplaesprimonocondizionisuciascunaennupla, consideratasingolarmente. • Come esprimere la condizionecheilsaldo di • un giornosiadipendente dal saldo del giornoprecedente … Non possofarlo con ivincoli di ennuplavisti fin qui!
ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoli di ennupla • Vincoli di chiave • Vincoliinter-relazionali
ModelloRelazionale: overview (Def. Informale) Unachiave e’ un insieme di attributicheconsente di identificare in manieraunivocale ennuple di unarelazione. STUDENTI • Non esistono due studenti con la stessamatricola. • Data la matricola di unostudente, e’ possibilerisalire a tuttiisuoidati (cognome/nome/data di nascita).