Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFabrizia Ferrari Modificato 11 anni fa
1
G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
2
2 G. Mecca - mecca@unibas.it - Basi di Dati Dettagli e Approfondimenti m Confronto con il Modello Relazionale m Notazione m Dettagli sui vincoli Classificazione e Sintassi Chiavi Primarie Gestione dei vincoli di riferimento m Dettagli sullo schema Viste Catalogo DBMS Relazionali – Modello Logico >> Sommario
3
3 G. Mecca - mecca@unibas.it - Basi di Dati Modello Logico dei DBMS Relazionali m Base di Dati insieme di tabelle m Tabella collezione di ennuple m Ennupla insieme di coppie (attributo, valore) m Valore Nullo assenza di informazione DBMS Relazionali – Modello Logico >> Dettagli
4
4 G. Mecca - mecca@unibas.it - Basi di Dati Modello Logico dei DBMS Relazionali m Schema di Base di Dati insieme di schemi di tabella con nomi diversi m Schema di Tabella nome della tabella collezione di attributi, uno o più, con nomi diversi e per ciascuno un dominio insieme di vincoli di integrità m Dominio tipo atomico (numeri, stringhe, date, ecc.) DBMS Relazionali – Modello Logico >> Dettagli
5
5 G. Mecca - mecca@unibas.it - Basi di Dati Confronto con il Modello Relazionale m Nel modello originale di Codd base di dati: insieme di relazioni relazione: insieme di ennuple schema di relazione: insieme di attributi m Lordinamento è irrilevante nessun ordinamento tra le ennuple nessun ordinamento tra gli attributi m Non sono ammesse ennuple duplicate DBMS Relazionali – Modello Logico >> Dettagli >> Modello Relazionale
6
6 G. Mecca - mecca@unibas.it - Basi di Dati Ordinamento DBMS Relazionali – Modello Logico >> Dettagli >> Modello Relazionale Nei sistemi reali spesso non è così (>>) codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero titolodocentecodice Programmazione IF. TottiPR1 Algoritmi e Str. DatiC. VieriASD Informatica TeoricaA. Del PieroINFT = codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero codicetitolodocente INFTInformatica TeoricaA. Del Piero PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri =
7
7 G. Mecca - mecca@unibas.it - Basi di Dati Duplicati DBMS Relazionali – Modello Logico >> Dettagli >> Modello Relazionale m Nei sistemi relazionali in alcuni, linserimento di duplicati non è consentito (es: Access) in altri è consentito (MySQL, PgSQL) matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 333JohnSmith15/06/1980 Studenti
8
8 G. Mecca - mecca@unibas.it - Basi di Dati Ordinamento e Duplicati m La spiegazione di Don Chamberlin Lordinamento spesso è utile Leliminazione dei duplicati è unoperazione costosa m Fidarsi degli utenti Consentire di scegliere Il linguaggio SQL consente di scegliere come trattare ordinamento e duplicati DBMS Relazionali – Modello Logico >> Dettagli >> Modello Relazionale
9
9 G. Mecca - mecca@unibas.it - Basi di Dati Notazione m Attributo A della tabella R R.A es: Studenti.matricola, Esami.matricola A se non cè rischio di ambiguità es: voto m Notazione posizionale: attributi ordinati es: [3456, Rossi, Maria, 02/01/1978] DBMS Relazionali – Modello Logico >> Dettagli >> Notazione
10
10 G. Mecca - mecca@unibas.it - Basi di Dati Notazione m Restrizione di una ennupla t.X : valore di t sullinsieme di attributi X es: se X= t=[3456, Rossi, Maria, 02/01/1978] t.X=[3456, Rossi] m Cardinalità di una tabella R |R| = numero di ennuple di R m Dominio di un attributo tipo(A); es: A=matricola, tipo(A)=integer DBMS Relazionali – Modello Logico >> Dettagli >> Notazione
11
11 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Integrità m Vincolo di Integrità: regola sui dati discendono dalle regole della realtà rappresentata nella base di dati m Vincolo di chiave unicità del valore di un attributo o di un insieme di attributi in una tabella es: non esistono due studenti con la stessa matricola es: non esistono due corsi con lo stesso codice DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli
12
12 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Integrità m Vincolo di Ennupla condizione sui valori delle ennuple di una tabella es: il voto deve essere compreso tra 18 e 30 m Vincolo di Riferimento correttezza dei riferimenti ad altre tabelle es: la matricola dello studente che ha sostenuto lesame deve essere corretta DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli
13
13 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli Schema con vincoli di integrità TABLE corsi (codice char(3), titolo char(50), docente char(20), UNIQUE(codice)); TABLE studenti(matricola integer, cognome char(20), nome char(20), dataNas date, UNIQUE(matricola)); TABLE esami (matricola integer, corso char(3), voto integer, lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), FOREIGN KEY(matricola) REFERENCES studenti(matricola), FOREIGN KEY(corso) REFERENCES corsi(codice), UNIQUE (matricola, corso));
14
14 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Integrità m Nel seguito alcuni dettagli sulla sintassi per specificare i vincoli approfondimenti sui vincoli di chiave e concetto di chiave primaria approfondimenti sui vincoli di riferimento e concetto di aggiornamento in cascata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli
15
15 G. Mecca - mecca@unibas.it - Basi di Dati Sintassi m Nomi dei vincoli tutti i vincoli di integrità hanno un nome (come gli attributi) normalmente il DBMS assegna ai vincoli un nome di sistema è possibile specificare esplicitamente il nome sintassi: CONSTRAINT DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Sintassi
16
16 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli TABLE corsi (codice char(3), titolo char(50), docente char(20), CONSTRAINT chiaveCorso UNIQUE(codice)); TABLE studenti(matricola integer, cognome char(20), nome char(20), dataNas date, CONTRAINT chiaveSt UNIQUE(matricola)); TABLE esami (matricola integer, corso char(3), voto integer, lode bool, CONSTRAINT valoreVoto CHECK (voto>=18 and voto<=30), CONSTRAINT valoreLode CHECK (not lode or voto=30), CONSTRAINT rifStudente FOREIGN KEY(matricola) REFERENCES studenti(matricola), CONSTRAINT rifCorso FOREIGN KEY(corso) REFERENCES corsi(codice), CONSTRAINT chiaveEs UNIQUE (matricola, corso));
17
17 G. Mecca - mecca@unibas.it - Basi di Dati Sintassi m Due categorie di vincoli vincoli di colonna: riguardano i valori di un solo attributo vincoli di tabella: riguardano i valori di più di un attributo m Vincoli di colonna sintassi alternativa si possono specificare in corrispondenza della definizione dellattributo DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Sintassi
18
18 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli TABLE corsi (codice char(3) UNIQUE, titolo char(50), docente char(20)); TABLE studenti(matricola integer UNIQUE, cognome char(20), nome char(20), dataNas date); TABLE esami (matricola integer REFERENCES studenti(matricola), corso char(3) REFERENCES corsi(codice), voto integer CHECK (voto>=18 and voto<=30), lode bool, CHECK (not lode or voto=30), UNIQUE (matricola, corso));
19
19 G. Mecca - mecca@unibas.it - Basi di Dati Sintassi m In sintesi tre varianti della sintassi per i vincoli m Tutti i vincoli in fondo senza nome m Tutti i vincoli in fondo con un nome CONSTRAINT m I vincoli di colonna in corrispondenza delle colonne DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Sintassi
20
20 G. Mecca - mecca@unibas.it - Basi di Dati Chiavi m Vincoli di chiave attributi che consentono di identificare univocamente le ennuple di una tabella se cè una chiave non possono esserci ennuple duplicate nella tabella m Nota una tabella può avere più chiavi una chiave può essere fatta di uno o più attributi DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi
21
21 G. Mecca - mecca@unibas.it - Basi di Dati Chiavi m Esempio: studente supponiamo che la tabella studente contenga chiave fatta dallunico attributo chiave fatta da DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi
22
22 G. Mecca - mecca@unibas.it - Basi di Dati Chiavi m Esempio: studente DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi TABLE Studenti(matricola integer UNIQUE, cognome char(20), nome char(20), dataNas date, luogoNas char(50), codiceFiscale char(16) UNIQUE, UNIQUE (cognome, nome, dataNas, luogoNas));
23
23 G. Mecca - mecca@unibas.it - Basi di Dati Chiave Primaria m E opportuno scegliere una tra le chiavi modalità primaria per fare riferimento alle ennuple della tabella m Chiave Primaria una delle chiavi, scelta come identificatore primario (PRIMARY KEY) è importante che sia compatta convenzione grafica: chiave primaria sottolineata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi
24
24 G. Mecca - mecca@unibas.it - Basi di Dati Chiave Primaria m Esempio: studente DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi TABLE Studenti(matricola integer PRIMARY KEY, cognome char(20), nome char(20), dataNas date, luogoNas char(50), codiceFiscale char(16) UNIQUE, UNIQUE (cognome, nome, dataNas, luogoNas));
25
25 G. Mecca - mecca@unibas.it - Basi di Dati Chiave Primaria m Chiavi e Valori Nulli DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi matricolacognomenomedataNascita NULL Pietro01/10/1984 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietroNULL PincoPietro01/10/1984 Studenti Ennuple non identificabili correttamente
26
26 G. Mecca - mecca@unibas.it - Basi di Dati Chiave Primaria m Per comodità, si richiede che la chiave primaria non contenga valori nulli m Ulteriore vincolo: assenza di valori nulli sintassi NOT NULL DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi TABLE Studenti(matricola integer NOT NULL PRIMARY KEY, cognome char(20) NOT NULL, nome char(20) NOT NULL, dataNas date, luogoNas char(50), codiceFiscale char(16) UNIQUE, UNIQUE (cognome, nome, dataNas, luogoNas));
27
27 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m Riferimenti ad ennuple di altre tabelle m Regola del modello è possibile fare riferimento solo ad attributi che rappresentano una chiave chiavi esterne (FOREIGN KEY) m Nota: è necessario fare riferimento alla chiave nel suo complesso non basta una parte degli attributi DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti
28
28 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m Esempio: Studenti supponiamo che la chiave primaria di sia DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti TABLE Studenti(matricola integer UNIQUE, cognome char(20) NOT NULL, nome char(20) NOT NULL, dataNas date NOT NULL, luogoNas char(50) NOT NULL, codiceFiscale char(16) UNIQUE, PRIMARY KEY (cognome, nome, dataNas, luogoNas));
29
29 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m Esempio: Esami nella tabella esami Esami, devo avere DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti TABLE esami (cognS char(20), nomeS char(20), dataNS date, luogoN char(50), corso char(3) REFERENCES corsi(codice), voto integer CHECK (voto>=18 and voto<=30), lode bool, CHECK (not lode or voto=30), FOREIGN KEY (cognS, nomeS, dataNS, luogoNS) REFERENCES Studenti(cognome,nome,dataNas,luogoNas));
30
30 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m Nota gli attributi corrispondenti devono avere lo stesso tipo per ogni ennupla t 2 di Esami, deve esistere una ennupla t 1 di Studenti tale che: t 1.cognome = t 2.cognS, t 1.nome = t 2.nomeS, t 1.dataNas = t 2.dataNS, t 1.luogoNas = t 2.luogoNS DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti
31
31 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m In concreto è opportuno che le chiavi primarie siano compatte per vari motivi riferimenti compatti nelle altre tabelle minore possibilità di commettere errori ma devono essere anche naturali es: in unapplicazione universitaria, la matricola è preferibile al codice fiscale DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti
32
32 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti e Vincoli m Aggiornamenti inserimenti; es: inserisci un nuovo esame cancellazioni; es: cancella uno studente modifiche; es: cambia una matricola m Che succede rispetto ai vincoli ? m Inserimenti scorretti non consentiti es: esame di uno studente inesistente DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti
33
33 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti e Vincoli m Cancellazioni es: eliminazione di uno studente opzione 1: rifiutare la cancellazione opzione 2: effettuare eliminazioni in cascata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti
34
34 G. Mecca - mecca@unibas.it - Basi di Dati Eliminazioni in Cascata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami
35
35 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti e Vincoli m Modifiche es: cambiamento di matricola di uno studente opzione 1: rifiutare la modifica opzione 2: effettuare le modifiche in cascata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti 1212
36
36 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche in Cascata DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti 1212 matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami 1212
37
37 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti e Vincoli m E possibile specificare il comportamento in caso di aggiornamenti comportamento standard: opzione 1 (il DBMS impedisce gli aggiornamenti) aggiornamenti in cascata: opzione 2 CASCADE (in questo caso il DBMS effettua gli aggiornamenti su entrambe le tabelle) DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti
38
38 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti a Cascata TABLE Esami (matricola integer REFERENCES Studenti(matricola) ON DELETE CASCADE ON UPDATE CASCADE, voto integer, corso char(3) REFERENCES Corsi(codice), lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), PRIMARY KEY (matricola, corso)); DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti
39
39 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti e Vincoli m Aggiornamenti in cascata alternativa a CASCADE: SET NULL m In questo caso nella tabella in cui viene specificato il vincolo vengono fatti comunque aggiornamenti in cascata introducendo valori nulli per evitare di violare il vincolo DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti
40
40 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti a Cascata TABLE Esami (matricola integer REFERENCES Studenti(matricola) ON DELETE CASCADE ON UPDATE CASCADE, voto integer, corso char(3) REFERENCES Corsi(codice), ON DELETE SET NULL ON UPDATE SET NULL, lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), PRIMARY KEY (matricola, corso)); DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti
41
41 G. Mecca - mecca@unibas.it - Basi di Dati Schema della Base di Dati m Schema di Base di Dati Tabelle Attributi Domini Vincoli m Altro elemento importante: Viste Strutture di Accesso DBMS Relazionali – Modello Logico >> Dettagli >> Schema
42
42 G. Mecca - mecca@unibas.it - Basi di Dati Viste m Viste=tabelle virtuali m Le viste fanno parte dello schema m Compongono gli schemi esterni (>>) m Es: esamiSV, una vista sulla tabella Esami DBMS Relazionali – Modello Logico >> Dettagli >> Schema VIEW EsamiSV (matricola integer, corso char(3)); matricolacorso 333PR1 77777PR1 77777ASD 88888PR1 88888INFT EsamiSV
43
43 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Indici strutture ausiliarie per laccesso al disco componente fondamentale per le prestazioni m Attenzione non fanno parte del modello logico ma del modello fisico sono fondamentali per le prestazioni (>>) quindi è importante che siano noti sono documentati nello schema DBMS Relazionali – Modello Logico >> Dettagli >> Schema
44
44 G. Mecca - mecca@unibas.it - Basi di Dati Catalogo di Sistema m Tabelle di sistema m Descrivono tutti i dati gestiti dal sistema le basi di dati lo schema di ciascuna base di dati (tabelle, attributi, domini, vincoli, viste, indici …) altri oggetti di sistema (in particolare utenti e autorizzazioni) DBMS Relazionali – Modello Logico >> Dettagli >> Schema
45
45 G. Mecca - mecca@unibas.it - Basi di Dati Autorizzazioni m Autenticazione del DBMS nomeUtente, password m DBA: DataBase Administrator amministratore del DBMS m Autorizzazioni sulle risorse basi di dati, tabelle e viste: CREATE tabelle: INSERT, DELETE, UPDATE, SELECT DBMS Relazionali – Modello Logico >> Dettagli >> Schema
46
46 G. Mecca - mecca@unibas.it - Basi di Dati Catalogo di Sistema m Metadati tabelle che descrivono altre tabelle dizionario dei dati m Possono essere acceduti dalle applicazioni come tabelle ordinarie descrizione della base di dati m Il formato non è standard DBMS Relazionali – Modello Logico >> Dettagli >> Schema
47
47 G. Mecca - mecca@unibas.it - Basi di Dati Catalogo di Sistema m In alcuni casi è completamente visibile (agli utenti autorizzati) es: PgSQL, DB2 m In altri casi è del tutto invisibile es: Access m o visibile solo parzialmente es: MySQL DBMS Relazionali – Modello Logico >> Dettagli >> Schema
48
48 G. Mecca - mecca@unibas.it - Basi di Dati Il Catalogo di PostgreSQL m Alcune tabelle (in totale più di 10) m pg_database tabella che descrive le basi di dati esistenti m pg_shadow tabella che descrive gli utenti m pg_tables tabella che descrive per ogni bd le tabelle della base di dati (incluse le tabelle di sistema) m pg_attribute tabella che descrive gli attributi di tutte le tabelle DBMS Relazionali – Modello Logico >> Dettagli >> Schema
49
49 G. Mecca - mecca@unibas.it - Basi di Dati Il Catalogo di PostgreSQL pg_shadow usename | usesysid | usecreatedb | passwd | valuntil ----------+----------+-------------+--------+---------- postgres | 26 | t | | mecca | 27 | t | | pguser | 28 | t | xxxxxx | (3 rows) DBMS Relazionali – Modello Logico >> Dettagli >> Schema
50
50 G. Mecca - mecca@unibas.it - Basi di Dati Il Catalogo di PostgreSQL pg_tables tablename | tableowner | hasindexes | hasrules | hastrig ----------------+------------+------------+----------+--------- pg_type | postgres | t | f | f pg_attribute | postgres | t | f | f pg_class | postgres | t | f | f pg_group | postgres | t | f | f pg_database | postgres | f | f | f... pg_shadow | postgres | f | f | t... studenti | mecca | t | f | t esami | mecca | t | f | t corsi | mecca | t | f | t (37 rows) DBMS Relazionali – Modello Logico >> Dettagli >> Schema
51
51 G. Mecca - mecca@unibas.it - Basi di Dati Il Catalogo di PostgreSQL pg_attribute attrelid | attname... ----------+----------------- 1247 | typname...... |...... 18889 | tableoid... 18902 | matricola... 18905 | codice... 18905 | nome... 18905 | docente...... |...... 19011 | studente... 19011 | corso... (720 rows) DBMS Relazionali – Modello Logico >> Dettagli >> Schema
52
52 G. Mecca - mecca@unibas.it - Basi di Dati Linguaggi per BD Relazionali m SQL m Creare utenti e autorizzazioni m Creare lo schema della base di dati Inizializzare la bd (tabelle di sistema) Creare lo schema delle tabelle m Creare listanza della base di dati Inserire, cancellare, modificare le ennuple DBMS Relazionali – Modello Logico >> Dettagli >> Schema
53
53 G. Mecca - mecca@unibas.it - Basi di Dati Linguaggi per BD Relazionali m Estrarre dati dalle tabelle: Interrogazioni m Esempi: tutti gli studenti (ev. in ordine di nascita) nome dello studente la cui matricola è 1234 nomi degli studenti che hanno sostenuto lesame di analisi nomi degli studenti che hanno avuto 30 dal prof. Pinco DBMS Relazionali – Modello Logico >> Dettagli >> Schema
54
54 G. Mecca - mecca@unibas.it - Basi di Dati Dettagli e Approfondimenti m Confronto con il Modello Relazionale m Notazione m Dettagli sui vincoli Classificazione e Sintassi Chiavi primarie Gestione dei vincoli di riferimento m Dettagli sullo schema Viste Catalogo DBMS Relazionali – Modello Logico >> Sommario
55
55 G. Mecca - mecca@unibas.it - Basi di Dati Superchiavi e Chiavi Primarie m Superchiave per R insieme di attributi X tale che non possono esistere in R due ennuple diverse t 1 e t 2 tali che t 1.X=t 2.X es: matricola e nome per Studente, matricola, nome e dataNascita m Chiave per R superchiave minimale di R DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Chiavi
56
56 G. Mecca - mecca@unibas.it - Basi di Dati Vincoli di Riferimento m Formalizzando tabella R 1, X 1 = PRIMARY KEY tabella R 2, FOREIGN KEY X 2 = REFERENCES R 1 (X 1 ) per ogni valore di i da 1 a k, A i e B i sono dello stesso tipo: tipo(A i ) = tipo(B i ) per ogni ennupla t 2 di R 2, esiste una ennupla t 1 di R 1 tale che t 1.X 1 = t 2.X 2 (per ogni valore i da 1 a k : t 1.A i = t 2.B i ) DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Riferimenti
57
57 G. Mecca - mecca@unibas.it - Basi di Dati Aggiornamenti a Cascata m E un esempio di regola attiva m Regola attiva (o trigger) evento iniziale (es: aggiornamento di una matricola di stud.) condizione (es: lo studente ha sostenuto degli esami) azioni successive (es: cascata di aggiornamenti delle ennuple degli esami) DBMS Relazionali – Modello Logico >> Dettagli >> Vincoli >> Aggiornamenti
58
58 G. Mecca - mecca@unibas.it - Basi di Dati DBMS Relazionali – Modello Logico >> Dettagli matricolacognomenomedataNascita 333JohnSmith15/06/1980 444PincoPalla01/10/1984 77777BrunoPasquale05/07/1983 88888PincoPietro01/10/1984 Studenti codicetitolodocente PR1Programmazione IF. Totti ASDAlgoritmi e Str. DatiC. Vieri INFTInformatica TeoricaA. Del Piero Corsi matricolacorsovotolode 333PR127false 77777PR121false 77777ASD20false 88888PR130false 88888INFT30true Esami Base di Dati
59
59 G. Mecca - mecca@unibas.it - Basi di Dati Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. http://creativecommons.org/licenses/by-sa/1.0/ m Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. http://creativecommons.org/licenses/by-sa/1.0/
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.