1 / 72

Basi di Dati e Sistemi Informativi

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 :

tova
Télécharger la présentation

Basi di Dati e Sistemi Informativi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Basi di Dati e SistemiInformativi Il ModelloRelazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

  2. 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.

  3. Livelli di astrazione • Proprieta’ (auspicabili) deilivelli in un DBMS: • Indipendenzafisica interagire con ilmodellologicoin modoindipendentedallo schema fisico. • Indipendenzalogica  interagire con illivelloesterno in modoindipendentedallo schema logicodeidati.

  4. Livelli di astrazione • In gran parte dei DBMS moderni, idatisonoarticolatisutrelivellidi astrazione: • Schema Logico descrivel’organizzazionelogicadeidati (dettagli a breve …) • Schema Fisico  descrive come idatisonomemorizzatisumemoriasecondaria. • Schema Esterno  descrive come idatiappaiono per un utente o un gruppo di utenti.

  5. 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

  6. ModelloRelazionale: overview CORSI • Nome dellarelazione: CORSI • Attributi: Corso, Codice del Corso, Nome Docente • Schema dellarelazione: • CORSI(Corso, Codice del Corso, Nome Docente) • Istanzedellarelazione: • <Basi di dati, 0121, M. Di Felice>

  7. ModelloRelazionale: overview CORSI • Ogniattributodispone di undominiochedefiniscel’insieme di valorivalidiper quelll’attributo. • Es. dom(Corso) = string • E’ possibileaveredominiripetutinellastessarelazione!

  8. ModelloRelazionale: overview CORSI • VINCOLIsull’ordinedeidati: • L’ordinamentodellerighe e’ irrilevante • L’ordinamentodellecolonne e’ irrilevante.

  9. ModelloRelazionale: overview (1) CORSI (3) (2) • VINCOLI sui datidellarelazione • Non possonoesistereattributiuguali(1). • Non possonoesistererigheuguali(2). • I datidi unacolonnadevonoessereomogenei (3).

  10. ModelloRelazionale: overview E’ possibileavereuno schema di relazionisenzainstanze(es. in fase di creazione del DB) … CORSI Il viceversa e’ impossibile …

  11. ModelloRelazionale: overview In pratica, unabase di datipuo’ esserecostituita da moltetabelle… CORSI ESAMI STUDENTI

  12. ModelloRelazionale: overview Nelmodellorelazionale, iriferimentitradati in relazionidifferentisonoespressimediantevalori. CORSI ESAMI STUDENTI

  13. ModelloRelazionale: overview Propostonel 1970 da E.F. Codd, ricercatoredell’IBM di San Jose, CA. Primianni ‘70  Definizione del modelloe del linguaggioSQL, prototipi di DBMS relazionali Primianni ‘80  Standardizzazione di SQL Anni ‘90  Evoluzioni del linguaggio SQL (SQL-2edSQL-3), estensioni ad altrimodelli.

  14. ModelloRelazionale: overview • Oltre al modellorelazionale (propostonegliannisettanta), esistonoaltrimodellilogicidi organizzazionedeidati: • Modellogerarchico • Modelloreticolare • Modelload oggetti • ModelloXML-based • … • DBMS basatisumodellorelazionale RDBMS

  15. ModelloRelazionale: overview In moltimodelli (es. gerarchico, reticolare, oggetti), iriferimentitratabellesonodefinitimediantepuntatori. CORSI ESAMI STUDENTI

  16. 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.

  17. ModelloRelazionale: overview Q: Perche’ sichiamamodellorelazionale? A: Unarelazione sui datipuo’ essere vista come unarelazionematematica! (con unaleggeravariazione). Q2:… Com’e’ definitaunarelazionematematica (nellateoriadegliinsiemi)?

  18. 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,

  19. 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)}

  20. ModelloRelazionale: overview Se usassimo la definizioneclassica di relazionematematicanelmodellorelazionaledeidati: CORSI Problema: Ordinamentodelle tuple in unarelazione … In generale:

  21. ModelloRelazionale: overview Dal punto di vista deidati, i due schemisonouguali, ma non lo sono se consideriamo la definizione di relazionematematica! Soluzione: UsarerappresentazioneNON posizionale, mediantegliattributi …

  22. 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)

  23. 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 • Istanza di relazionesuuno schema R(X):insiemer di ennuplesuX.

  24. 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}

  25. 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 instanze di relazioni r = {r1,..., rn} (con rirelazionesullo schema Ri)

  26. ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoliinter-relazionali

  27. ModelloRelazionale: overview In unarelazione, le ennuple di datidevonoessereomogenee (ossiaaveretutte le stessastruttura). PROBLEMA (1):Cheaccade se ilvalore di un attributo per unacertaennuplanon e’ noto? IMPIEGATI

  28. ModelloRelazionale: overview In unarelazione, le ennuple di datidevonoessereomogenee (ossiaaveretutte le stessastruttura). PROBLEMA (2):Cheaccade se ilvalore di un attributo per unacertaennuplae’ inesistente? ESAMI

  29. 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)

  30. 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.

  31. 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.

  32. ModelloRelazionale: overview • Valore di attributonon noto: IMPIEGATI • Valore di attributoinesistente: ESAMI

  33. ModelloRelazionale: overview • E’ fondamentalelimitareilnumero di valori NULL in unarelazione … perche’? STIPENDI

  34. ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoliinter-relazionali

  35. ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI

  36. ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI

  37. ModelloRelazionale: overview Non tutte le istanze di unarelazione (o di una base di dati) possonoconsiderarsilecite! CORSI ESAMI STUDENTI

  38. 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)

  39. ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoli di ennupla • Vincoli di chiave • Vincoliinter-relazionali

  40. ModelloRelazionale: overview I vincoli di ennuplaesprimonocondizionisuciascunaennupla, consideratasingolarmente. Possonoessereespressimedianteespressionialgebriche o espressionibooleane. C1: C2:

  41. ModelloRelazionale: overview I vincoli di ennuplaesprimonocondizionisuciascunaennupla, consideratasingolarmente. C1:

  42. 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!

  43. ModelloRelazionale: overview • Altrecomponenti del modellorelazionale: • Informazioniincomplete • Vincoli di integrita’ • Vincoliintra-relazionali • Vincoli di ennupla • Vincoli di chiave • Vincoliinter-relazionali

  44. 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).

  45. ModelloRelazionale: overview Un sottoinsieme K di attributi di unarelazione e’ unasuperchiave se NON contiene due ennupledistinte t1 e t2 con t1[K]=t2[K]. STUDENTI {Matricola} e’ unasuperchiave {Cognome} NON e’ unasuperchiave {Matricola, Cognome} e’ unasuperchiave {Cognome, Nome} e’ unasuperchiave

  46. ModelloRelazionale: overview Unachiavedi unarelazione r e’ unasuperchiaveminimale di r (ossia non esisteun’altrasuperchiave K’ chesiacontenuta in K). STUDENTI {Matricola} e’ unachiave {Cognome} NON e’ unachiave {Matricola, Cognome} NON e’ unachiave {Cognome, Nome} e’ unachiave

  47. ModelloRelazionale: overview Q1: Esistesemprealmenounasuperchiave per ognirelazione ? SI’(perche’?) Q2: Possonoesisterepiu’ superchiaviper la stessarelazione? SI’ (esempio sotto) STUDENTI {Matricola} {Cognome, Nome} {Matricola,Cognome} {Maricola, Nome, Cognome} ….

  48. ModelloRelazionale: overview Q1: Esistesemprealmenounachiave per ognirelazione ? SI’(perche’?) Q2: Possonoesisterepiu’ chiaviper la stessarelazione? SI’ (esempio sotto) STUDENTI {Matricola} {Cognome, Nome} ….

  49. ModelloRelazionale: overview In fase di progettazione, le chiavidovrebberoesseredefinite a livello di schema, e non di istanza. STUDENTI • {Nome} e’ unachiave in questaistanza, ma e’ un casofortuito …

  50. ModelloRelazionale: overview Come regolagenerale, le chiavidovrebberoesseredefinite a livello di schema, e non di istanza. STUDENTI • Per definireunachiave a livello di schema, servonoinformazioniaggiuntivesuldominiodeidati …

More Related