13.07.2015 Views

Modello Relazionale Architettura a tre livelli di un DBMS - DBGroup

Modello Relazionale Architettura a tre livelli di un DBMS - DBGroup

Modello Relazionale Architettura a tre livelli di un DBMS - DBGroup

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Modello</strong> <strong>Relazionale</strong><strong>Modello</strong> logico dei dati utilizzato nell’ambito delle basi<strong>di</strong> dati, introdotto da Codd nel 1970.Ð modello dei datiinsieme <strong>di</strong> strutture dati e regolelogico µ strutture <strong>di</strong>sponibili su <strong>un</strong> <strong>DBMS</strong><strong>Modello</strong> relazionale : relazionePERCORSOPARTENZA ARRIVO ORAPARTENZAMilano Modena 1310Milano Roma 1550Roma Napoli 0400Ð schemarappresentazione <strong>di</strong> <strong>un</strong>o specifico dominioÐ istanzainformazioni effettivamente memorizzate<strong>Architettura</strong> a <strong>tre</strong> <strong>livelli</strong> <strong>di</strong> <strong>un</strong> <strong>DBMS</strong>Livello fisico (interno) :organizzazione dei dati nelle memorie permanentistrutture dati ausiliarie per accedere ai datiLivello logico (interno) :struttura dei dati e relazioni fra essiness<strong>un</strong> riferimento alla organizzazione fisicaLivello esterno (delle viste) :struttura vista da <strong>un</strong> utente/applicazioneÐ In<strong>di</strong>pendenza dei dati¯ in<strong>di</strong>pendenza fisica¯ in<strong>di</strong>pendenza logicaÐ Altri modelli logici<strong>Modello</strong> Gerarchico (strutture ad albero)<strong>Modello</strong> Reticolare (strutture a grafi)12


<strong>Modello</strong> <strong>Relazionale</strong>: Formalizzazione<strong>Modello</strong> <strong>Relazionale</strong>: CaratteristicheDominio : insieme <strong>di</strong> valori Ú½Ú¾Ú Ð Il concetto <strong>di</strong> relazione¯ consente <strong>un</strong>a descrizione astratta dei datiµ in<strong>di</strong>pendenza dei dati¯ consente <strong>un</strong>a formalizzazione semplice e precisaµ Teoria relazionale dei dati¯ èriconducibile al concetto semplice <strong>di</strong> tabellaµ facilmente comprensibile dall’utente finaleÐ linguaggio <strong>di</strong> interrogazione (SQL) <strong>di</strong>chiarativoTupla : Dati Ò domini ½¾ Ò , <strong>un</strong>a ennupla (tupla)or<strong>di</strong>nata Ø su ½¾ Ò èdefinita comeØ ´Ú½Ú¾Ú Ò µÚ ¾ ½ ÒProdotto Cartesiano :Ilprodotto cartesiano <strong>di</strong> Ò domini½¾ Ò , in<strong>di</strong>cato con ½ ¢ ¾ ¢ ¢ Ò , èl’insieme <strong>di</strong> tutte le tuple Ø su ½¾ Ò .Relazione : Una relazione Ö su Ò domini ½¾ Ò ,è<strong>un</strong>sottoinsieme <strong>di</strong> ½ ¢ ¾ ¢ ¢ Ò :Ö ½ ¢ ¾ ¢ ¢ Ò¯ Il valore <strong>di</strong> Ò èilGrado della relazione¯ Il numero <strong>di</strong> tuple èlaCar<strong>di</strong>nalità della relazione34


<strong>Modello</strong> <strong>Relazionale</strong> : Esempi½ ¾ ½ ¾ ¿½¢¾ ´ ½µ ´ ¾µ ´ ¿µ ´ ½µ ´ ¾µ ´ ¿µRelazione su ½¢¾: Ö ´ ½µ ´ ¾µ ´ ½µ ´ ¾µRelazioni con attributiÐ La relazione è<strong>un</strong>insieme, quin<strong>di</strong>¯ le tuple sono <strong>di</strong>stinte l’<strong>un</strong>a dall’altraµ <strong>di</strong>fferenza con la tabella (multiset)¯ non èdefinito alc<strong>un</strong> or<strong>di</strong>namento tra le tupleÐ Rappresentazione tabellare :Ð Un esempio concreto : Orario <strong>di</strong> partenza dei <strong>tre</strong>niStringa ¢ Stringa ¢ InteroÖMilano Modena 1310Milano Roma 1550Roma Napoli 0400Ö½¾½¾Ð Ciasc<strong>un</strong>a tupla è, al proprio interno, or<strong>di</strong>nata.Attributo : Nome dato ad <strong>un</strong> dominio in <strong>un</strong>a relazione¯ in<strong>di</strong>pendenza dall’or<strong>di</strong>namento dei domini¯ significato ai valori del dominioÐ Un esempio concreto : Orario <strong>di</strong> partenza dei <strong>tre</strong>niÖStringa ¢ Stringa ¢ InteroÐ Ð ÐPARTENZA ARRIVO ORAPARTENZAMilano Modena 1310Milano Roma 1550Roma Napoli 040056


Schema ed IstanzaSchema <strong>di</strong> relazione : Ê´µÊ :nome della relazione ´½¾ Ò µ : insieme <strong>di</strong> nomi <strong>di</strong> attributiIstanza <strong>di</strong> relazione :<strong>di</strong><strong>un</strong>o schema Ê´½¾ Ò µè <strong>un</strong>a relazione Ö su ´½¾ Ò µ.EsempioSchema <strong>di</strong> base <strong>di</strong> dati : DB UNIVERSITÀ = STUDENTE(MATR,NOME,CITTÀ,ACORSO)CORSO(CODCOR,NOME,CODDOC)DOCENTE(CODDOC,CF,CITTÀ) Istanza <strong>di</strong> base <strong>di</strong> dati :Schema <strong>di</strong> base <strong>di</strong> dati relazionale :R ʽ´½µÊ¾´¾µ Ê Ò´ Ò µIstanza <strong>di</strong> base <strong>di</strong> dati relazionale :Dato R ʽ´½µÊ¾´¾µÊ Ò´ Ò µ,<strong>un</strong>a istanza su R è<strong>un</strong>insieme <strong>di</strong> relazionir Ö½Ö¾Ö Ò con Ö Notazione :relazione su Ê ½ ÒSia Ê´µ <strong>un</strong>o schema e Ø tupla su Ê´µSiano e ¾ ¯ l’insieme èdenotato anche con ʯ l’insieme èdenotato con ¯ l’insieme è denotato con denota ,¯ Ø℄, oppure Ø, denota il valore <strong>di</strong> Ø su ¯ Ø ℄ denota la sottotupla <strong>di</strong> Ø ottenuta considerandoivalori degli attributi in STUDENTECORSODOCENTEMATR NOME CITTÀ ACORSOM1 Marco Quaranta SA 1M2 Giacomo Tedesco PA 2M3 Maria Mei BO 1M4 Ugo Rossi MO 2M6 Agata Ver<strong>di</strong> MI 1CODCOR NOME CODDOCC1 Fisica 1 D1C2 Analisi Matematica 1 D2C3 Fisica 2 D1C4 Analisi Matematica 2 D2CODDOC CF CITTÀD1 CF1 MOD2 CF2 BOD3 CF3 MOD4 CF4 FI78


ChiaviChiavi can<strong>di</strong>date, primaria, alternativeÐ Informalmente, per chiave <strong>di</strong> <strong>un</strong>a relazione si intende<strong>un</strong> sottoinsieme dei suoi attributi che identifica <strong>un</strong>ivocamenteogni tupla della relazione stessa.Ð Dato Ê´µ, à èdetto chiave <strong>di</strong> Ê´µ se e solose per ogni relazione Ö su Ê´µ valgono le proprietà:1. (Univocità) Ø ½ Ø ¾ ¾ ÖØ ½ Ã℄Ø ¾ Ã℄ µ Ø ½ Ø ¾2. (Minimalità) ¾ à à non verifica 1.Ð Ê´µ può averepiù chiavi dette can<strong>di</strong>dateTralechiavi can<strong>di</strong>date <strong>un</strong>a a scelta è detta primariaLe rimanenti chiavi vengono dette alternativeÐ Notazionechiave primaria : Ê´Ã ½ à ¾ Ã Ñ ¾ Ò µchiave alternativa : Ê´µÐ Dato Ê´µ ed <strong>un</strong>a chiave à <strong>di</strong> Ê´µ, tale che à èdetto superchiave <strong>di</strong> Ê´µ.Esempio :AK: à ½ à ÑÐ Per ogni Ê´µ, Xè <strong>un</strong>a superchiave.Quin<strong>di</strong>, ogni Ê´µ ha almeno <strong>un</strong>a chiave.DOCENTE (CODDOC, CF, CITTÀ)AK: CF910


Valori nulliVincoli <strong>di</strong> IntegritàInformazione incompleta :tupla il cui valore <strong>di</strong> <strong>un</strong>o opiù attributi non è <strong>di</strong>sponibile.I vincoli <strong>di</strong> integrità stabiliscono con<strong>di</strong>zioni <strong>di</strong> correttezzadelle informazioni nella base <strong>di</strong> dati.Ð Ad esempio, in DOCENTE(CODDOC,CF,NOME,CITTÀ)¯ la CITTÀ del docente è sconosciuta¯ il CF non èprevisto per docenti <strong>di</strong> determinati paesi¯ al docente non èancora stato assegnato <strong>un</strong> CODICE¯ ...Ð Ogni dominio <strong>di</strong> relazione viene esteso con <strong>un</strong> particolarevalore, detto valore nullo e denotato con null,che rappresenta assenza <strong>di</strong> informazione.Ð Nei sistemi relazionaliµ è possibile specificare se <strong>un</strong> attributo può omenoassumere il valore null.µ Logica a <strong>tre</strong> valori in SQLVincolo intrarelazionale :coinvolge singole relazioni della base <strong>di</strong> datiÐ Vincolo <strong>di</strong> chiaveUna chiave à è<strong>un</strong>vincolo <strong>di</strong> integrità: essa stabiliscel’<strong>un</strong>ivocità dei valori ass<strong>un</strong>ti dagli attributi <strong>di</strong> Ã.vincolo <strong>di</strong> tuplacoinvolge <strong>un</strong>a singola tupla <strong>di</strong> <strong>un</strong>a relazioneVincolo interrelazionale :coinvolge più relazioni della base <strong>di</strong> datiÐ Vincolo <strong>di</strong> Integrità Referenziale1112


Vincolo <strong>di</strong> Entity IntegrityVincolo <strong>di</strong> Integrità ReferenzialeÐ In presenza <strong>di</strong> valori nulli, non sarebbe quin<strong>di</strong> possibilecontrollare l’<strong>un</strong>ivocità dei valori ass<strong>un</strong>ti dagli attributi<strong>di</strong> <strong>un</strong>a chiave. Per questo motivo viene impostoil seguente vincolo.Ð Iriferimenti tra le tuple delle relazioni vengono stabilititramite i valori ass<strong>un</strong>ti dagli attributi nelle tuple.L’integrità referenziale assicura che quando in <strong>un</strong>a tuplasi utilizza il valore <strong>di</strong> <strong>un</strong> attributo per riferirsi ad<strong>un</strong>’altra tupla, quest’ultima sia <strong>un</strong>a tupla esistente.Tale vincolo stabilisce che gli attributi che costituisconola chiave primaria <strong>di</strong> <strong>un</strong>a relazione non possono assumerevalore nullo.Ð Formalmente, <strong>un</strong>’istanza Ö <strong>di</strong> <strong>un</strong>o schema <strong>di</strong> relazioneRconchiave primaria à ½ à ¾ Ã Ñ , sod<strong>di</strong>sfa ilvincolo <strong>di</strong> Entity integrity se e solo seØ ¾ ÖØà ℄ null ½ ÑCORSODOCENTECODCOR NOME CODDOCC1 Fisica 1 D1C2 Analisi Matematica 1 D2C3 Fisica 2 D1C4 Analisi Matematica 2 D2C5 Meccanica Razionale nullCODDOC CF CITTÀD1 CF1 MOD2 CF2 BOD3 CF3 MOD4 CF4 FI1314


Vincolo <strong>di</strong> Integrità ReferenzialeÐ Dichiarazione vincolo <strong>di</strong> integrità referenziale in R:Foreign Key o Chiave Esterna : insieme <strong>di</strong> attributi à à ½ à ¾ Ã Ò <strong>di</strong> <strong>un</strong>o schema Ê ½ ¾ RChiave della Relazione riferita : schema <strong>di</strong> relazioneÊ ¾ ¾ R, nonnecessariamente <strong>di</strong>stinto da Ê ½ ,con<strong>un</strong>a chiave à à ½ à ¾ Ã Ñ ,conÑ Ò.Ð Un’istanza r Ö ½ Ö ¾ su R sod<strong>di</strong>sfa il vincolo seesoloseivalorisuà <strong>di</strong> ciasc<strong>un</strong>a tupla <strong>di</strong> Ö ½ sonovalori su à <strong>di</strong> <strong>un</strong>a Ö ¾ ,osono valori nulli:½ Ò Ø ½ ¾ Ö ½´Ø ¾ ¾ Ö ¾ Ø ½ à ℄Ø ¾ à ℄µ´Ø ½ à ℄nullµIstanza Legale <strong>di</strong> Base <strong>di</strong> DatiÐ Dato <strong>un</strong>o schema <strong>di</strong> basi <strong>di</strong> datiR ʽ´½µÊ¾´¾µÊ Ò´ Ò µ, <strong>un</strong>’istanza r Ö½Ö¾Ö Ò su R tale che¯ ciasc<strong>un</strong>a relazione Ö sod<strong>di</strong>sfa il vincolo <strong>di</strong> entityintegrity¯ r sod<strong>di</strong>sfa tutti i vincoli <strong>di</strong> integrià referenziale impostisu Rverrà detta istanza legale della base <strong>di</strong> dati R.Notazione :Ê ½´µFK: à ½ Ã Ò REFERENCES Ê ¾´Ã ½ Ã Ò µEsempio :CORSO (CODCOR,NOME,CODDOC)FK: CODDOC REFERENCES DOCENTE1516


Il linguaggio SQLProgettazione <strong>di</strong> <strong>un</strong>a base <strong>di</strong> datiÐ Il linguaggio SQL (Structured Query Language) èillinguaggio standard per la definizione e manipolazionedelle basi <strong>di</strong> dati relazionali.Requisiti della base <strong>di</strong> dati·Progettazione ConcettualeBasi <strong>di</strong> dati relazionaliSchema :Corso(CC,CNome,CD)Docente(CD,Cognome,Città)SCHEMA CONCETTUALEIstanza :CorsoCC CNome CDC1 Fisica1 D1C2 Analisi1 D2C3 Fisica2 D1C4 Analisi2 D3DocenteCD Cognome CittàD1 Rossi MOD2 Pastore BOD3 Carboni FIProgettazione LogicaSCHEMA LOGICOProgettazione Fisicalinguaggio <strong>di</strong> manipolazione dei dati - DMLinterrogazione e aggiornamento dell’istanzaSCHEMA FISICOlinguaggio <strong>di</strong> definizione dei dati - DDLdefinizione schema, autorizzazioni per l’accesso, . . .·Prodotti della progettazione1718


<strong>Modello</strong> <strong>Relazionale</strong>: Cronologia1970 “A Relational Model of Data for LargeShared Data Banks”, <strong>di</strong> E.F. Codd1974 prima versione del linguaggio SQL1975-79 sviluppo del prototipo System R1980 versione commerciale <strong>di</strong> SystemR, e Oracle1982 IBM Database2 (DB2)1986-89 standar<strong>di</strong>zzazione ISO-ANSI SQL-891992 ISO-ANSI SQL21999 ISO-ANSI SQL319

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!