G. Mecca – – Università della Basilicata Basi di Dati Progettazione Logica versione 2.0 Questo lavoro è concesso in uso secondo i termini.

Slides:



Advertisements
Presentazioni simili
La progettazione concettuale
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Algoritmi e Strutture Dati
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Creazione di archivi tramite Data Base
IL MODELLO ENTITA’ - RELAZIONE I costruttori di base
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
G. Mecca – – Università della Basilicata Basi di Dati Progettazione di Basi di Dati: Introduzione versione 2.0 Questo lavoro è concesso.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web Cascading Style Sheets (CSS): Introduzione versione 2.0 Questo.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per BD Relazionali: Modello Fisico Concetti Fondamentali versione 2.0 Questo.
Modello Concettuale dei Dati: Concetti Fondamentali
Algebra Relazionale Concetti Fondamentali
SQL-92 Concetti Fondamentali
Tecnologie di Sviluppo per il Web
Modello Concettuale Dettagli e Approfondimenti
G. Mecca – – Università della Basilicata Basi di Dati SQL-92 Concetti Avanzati versione 2.0 Questo lavoro è concesso in uso secondo i termini.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
Progettazione e Forme Normali
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per BD Relazionali: Modello Fisico Dettagli e Approfondimenti versione 2.0.
G. Mecca – – Università della Basilicata Basi di Dati Tecnologia di un DBMS: Concorrenza e Affidabilità Concetti Avanzati versione 2.0.
G. Mecca – – Università della Basilicata Basi di Dati SQL-92 Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo.
Algebra Relazionale Dettagli e Approfondimenti
G. Mecca – – Università della Basilicata Basi di Dati Progettazione Fisica e Tuning: Concetti Avanzati versione 2.0 Questo lavoro è concesso.
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
Programmazione Procedurale in Linguaggio C++
1 Microsoft Access 1. 2 Contenuto Dovete progettare e realizzare, usando Access, una base di dati che riguarda gli esami sostenuti dagli studenti iscritti.
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
I MATEMATICI E IL MONDO DEL LAVORO
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
Programmazione 1 9CFU – TANTE ore
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Dettagli e Approfondimenti versione.
Partizionamento/accorpamento di concetti
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.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Riconfigurare il diritto dautore. Lipertesto, una necessità di riconfigurazione. Secondo G. P. Landow, lavvento dellipertesto implica la necessità di.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
-17 Aspettative economiche – Europa Settembre 2013 Indicatore > +20 Indicatore 0 a +20 Indicatore 0 a -20 Indicatore < -20 Unione Europea Totale: +6 Indicatore.
Programmazione Procedurale in Linguaggio C++
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Transcript della presentazione:

G. Mecca – – Università della Basilicata Basi di Dati Progettazione Logica versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

2 G. Mecca - - Basi di Dati Sommario m Introduzione Il Processo di Progetto della BD m Algoritmo di Progettazione Logica Traduzione delle Classi Traduzione delle Gerarchie Traduzione delle Associazioni molti a molti Traduzione delle Associazioni 1-1 e 1-molti Progettazione Logica >> Sommario

3 G. Mecca - - Basi di Dati Introduzione m Siamo nella fase di progettazione si è conclusa (uniterazione del)la fase di analisi m Attività da svolgere definire larchitettura dellapplicazione definire la struttura e i metodi delle classi definire la struttura della base di dati m Fase successiva: sviluppo Progettazione Logica >> Introduzione

4 G. Mecca - - Basi di Dati Il Processo di Progetto della BD m Punto di partenza il modello concettuale dei dati m Progettazione Logica dallo schema concettuale viene derivato uno schema logico standard e i necessari schemi esterni m Progettazione Fisica lo schema logico viene sottoposto a verifica e viene ottimizzato Progettazione Logica >> Introduzione

5 G. Mecca - - Basi di Dati Il Processo di Progetto della BD m Progettazione logica viene condotta sulla base di un semplice algoritmo sistematico m Progettazione fisica attività mista: progettazione e tuning difficilmente sistematizzabile m In questa lezione ci concentriamo sulla progettazione logica Progettazione Logica >> Introduzione

6 G. Mecca - - Basi di Dati Algoritmo di Progettazione Logica m I passo: trad. iniziale delle classi non coinvolte in gerarchie m II passo: trad. iniziale delle gerarchie m III passo: trad. degli attributi multivalore m IV passo: trad. delle assoc. molti a molti m V passo: trad. delle assoc. uno a molti m VI passo: trad. delle assoc. uno a uno m VII passo: introduzione di eventuali ulteriori vincoli m VIII passo: progettazione degli schemi esterni Progettazione Logica >> Algoritmo di Traduzione

7 G. Mecca - - Basi di Dati Progettazione Logica >> Algoritmo di Traduzione Studente > matricola cognome nome anno Docente cognome nome qualifica numTelefono [0..*] DocenteInterno facolta SupplenteStudente Laurea Triennale Studente Laurea Specialistica 0..*0..1 tutor > relatore > 0..*0..1 Corso > codice titolo ciclo titolarità 0..* Esame voto lode data ha sostenuto > 1 0..* < relativo a 0..*1 Schema Concettuale Tirocinio sede dataInizio durata ha svolto > relatore solo se al 3 anno

8 G. Mecca - - Basi di Dati Notazione Grafica per le Tabelle m Stereotipo di UML tabella e attributi chiave primaria chiave esterna m Esempio: Progettazione Logica >> Algoritmo di Traduzione FKrelatore CHAR(4) ciclo CHAR(20) anno INTEGER nome CHAR(20) cognome CHAR(20) matricola INTEGER Studente PK T … codice CHAR(4) Docente PK T CREATE TABLE Studente ( matricola integer PRIMARY KEY, cognome char(20), nome char(20), anno integer, ciclo char(20), relatore char(4) REFERENCES Docente(codice));

9 G. Mecca - - Basi di Dati I Passo: Traduzione delle Classi m Idea ogni classe diventa una tabella inizialmente gli stessi attributi monovalore successivamente possono essere aggiunti altri attributi m E necessario individuare il tipo degli attributi individuare la chiave primaria individuare eventuali chiavi esterne Progettazione Logica >> Algoritmo di Traduzione

10 G. Mecca - - Basi di Dati I Passo: Traduzione delle Classi m Chiave primaria deve essere semplice da usare e compatta identificatore interno esplicito (es: matricola per Studente, codice per Corso) un identificatore esterno può diventare una chiave primaria esterna (es: matricola dello studente per Tirocinio) purchè sia compatto altrimenti si aggiunge un identificatore sintetico Progettazione Logica >> Algoritmo di Traduzione

11 G. Mecca - - Basi di Dati I Passo: Traduzione delle Classi Progettazione Logica >> Algoritmo di Traduzione Corso > codice titolo ciclo Esame voto lode data Tirocinio luogo dataInizio durata ciclo CHAR(20) titolo CHAR(20) codice CHAR(3) Corso PK T TirocinioT matricola INTEGERPK, FK sede CHAR(20) dataInizio DATE durata INTEGER EsameT codice CHAR(5)PK voto INTEGER lode BOOL data DATE identificatore sintetico identificatore esplicito identificatore esterno

12 G. Mecca - - Basi di Dati I Passo: Traduzione delle Classi Progettazione Logica >> Algoritmo di Traduzione Corso > codice titolo ciclo ciclo CHAR(20) titolo CHAR(20) codice CHAR(3) Corso PK T {PR1, Programm. I laurea tr.} {ADS Algoritmi e Strutt. Dati laurea tr.} {INFT, Inf. Teorica laurea sp.} codicetitolociclo… PR1Programmazione Ilaurea tr.… ASDAlgoritmi e Str. Datilaurea tr.… INFTInformatica Teoricalaurea sp.…

13 G. Mecca - - Basi di Dati I Passo: Traduzione delle Classi Progettazione Logica >> Algoritmo di Traduzione { Microsoft, 25/06/2002, 3 mesi } { SOGEI 1/7/2002, 4 mesi } { Microsoft, 25/06/2002, 3 mesi } Tirocinio luogo dataInizio durata TirocinioT matricola INTEGERPK, FK sede CHAR(20) dataInizio DATE durata INTEGER studentesededataIniziodurata… 444Microsoft … 77777Microsoft … 88888Basica …

14 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m E lunico passo di una certa complessità non esiste la generalizzazione nel modello relazionale m Tre possibili strade tradurre solo il padre della gerarchia tradurre solo i figli della gerarchia tradurre il padre e i figli collegandoli con chiavi esterne Progettazione Logica >> Algoritmo di Traduzione

15 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m I Soluzione: Solo il padre ununica tabella con il nome del padre la tabella deve avere tutti gli attributi di padre e figli serve un ulteriore attributo (es: tipo) per distinguere le istanze dei figli conveniente se le operazioni sui figli non sono particolarmente rilevanti nellappl. genera valori nulli Progettazione Logica >> Algoritmo di Traduzione

16 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m I Soluzione: Solo il padre Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] DocenteInterno facolta Supplente DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) facolta CHAR(10) qualifica CHAR(15) tipo CHAR(10) tipo può valere: - -interno oppure - -supplente per ora lattributo multivalore viene trascurato

17 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m II Soluzione: Solo i figli una tabella per ciascun figlio ciascun figlio eredita le associazioni e gli attributi del padre possibile solo se la gerarchia è completa conveniente se lapplicazione richiede spesso di accedere singolarmente ai figli costringe ad effettuare molte unioni Progettazione Logica >> Algoritmo di Traduzione

18 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m II Soluzione: Solo i figli Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] DocenteInterno facolta Supplente DocenteInternoT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) facolta CHAR(10) qualifica CHAR(15) SupplenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) qualifica CHAR(15)

19 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m III Soluzione: Sia il padre che i figli una tabella per il padre e una per ciascun figlio (per ogni istanza del figlio: parte degli attributi nella tabella specifica, parte nella tabella generale) riferimento da ciascun figlio al padre conveniente se bisogna spesso accedere tanto al padre che singolarmente ai figli costringe ad effettuare molti join Progettazione Logica >> Algoritmo di Traduzione

20 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m III Soluzione: Sia il padre che i figli Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] DocenteInterno facolta Supplente indirizzo DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) qualifica CHAR(15) DocenteInternoT codice CHAR(4)PK,FK facolta CHAR(10) SupplenteT codice CHAR(4) PK, FK indirizzo CHAR(20)

21 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m III Soluzione: Sia il padre che i figli Progettazione Logica >> Algoritmo di Traduzione codicecognomenomequalifica FTTottiFrancescoordinario CVVieriChristianassociato ADPDel PieroAlessandronull Docente codicefacolta FTIngegneria CVScienze codiceIndirizzo ADPStadio delle Alpi, Torino DocenteInternoSupplente

22 G. Mecca - - Basi di Dati II Passo: Traduzione delle Gerarchie m Nel nostro esempio soluzione n.1 per i docenti ununica tabella Docente soluzione n.1 per gli studenti ununica tabella Studente Progettazione Logica >> Algoritmo di Traduzione StudenteT matricola INTEGERPK cognome CHAR(20) nome CHAR(20) anno INTEGER ciclo CHAR(15)

23 G. Mecca - - Basi di Dati III Passo: Trad. degli Attributi Multiv. m Ogni attributo multivalore genera una nuova tabella chiave esterna per fare riferimento alla tabella che traduce la classe originale Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) facolta CHAR(10) qualifica CHAR(15) tipo CHAR(10) NumeriT numero CHAR(15)PK docente CHAR(4)FK

24 G. Mecca - - Basi di Dati IV Passo: Trad. delle Associazioni m-m m Ogni associazione molti a molti genera una tabella riferimenti (chiavi esterne) alle tabelle che traducono le classi coinvolte eventuali attributi dellassociazione la chiave della tabella deve includere le chiavi esterne Progettazione Logica >> Algoritmo di Traduzione

25 G. Mecca - - Basi di Dati IV Passo: Trad. delle Associazioni m-m Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] Corso > codice titolo ciclo titolarità 0..* 1..* DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) …… TitolaritàT corso CHAR(3)PK, FK docente CHAR(4)PK, FK primoAnnoTit INTEGER CorsoT codice CHAR(3)PK titolo CHAR(20) ciclo CHAR(20) attributo dell associazione (nel seguito omesso) primoAnnoTit

26 G. Mecca - - Basi di Dati IV Passo: Trad. delle Associazioni m-m Progettazione Logica >> Algoritmo di Traduzione Docente cognome nome qualifica numTelefono [0..*] Corso > codice titolo ciclo titolarità 0..* 1..* primoAnnoTit codicecognomenome… FTTottiFrancesco… CVVieriChristian… ADPDel PieroAlessandro… codicetitolociclo PR1Programmazione Ilaurea tr. ASDAlgoritmi e Str. Datilaurea tr. INFTInformatica Teoricalaurea sp. docentecorsoprimoAnnoTit FTPR12001 CVASD2002 FTASD1999 ……

27 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m m Potrebbero essere tradotte con nuove tabelle sarebbe inefficiente costringerebbe a più join del normale m Generano chiavi esterne ciascuna istanza dellassociazione è identificata dalloggetto dal lato 1 chiave esterna della tabella dal lato 1 nella tabella corrispondente alla classe dal lato m Progettazione Logica >> Algoritmo di Traduzione

28 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m Progettazione Logica >> Algoritmo di Traduzione Corso > codice titolo ciclo Esame voto lode data < relativo a 0..*1 EsameT codice CHAR(5)PK voto INTEGER lode BOOL data DATE corso CHAR(3)FK CorsoT codice CHAR(3)PK titolo CHAR(20) ciclo CHAR(20)

29 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m Progettazione Logica >> Algoritmo di Traduzione StudenteT matricola INTEGERPK cognome CHAR(20) nome CHAR(20) anno INTEGER ciclo CHAR(15) relatore CHAR(4)FK Studente > matricola cognome nome anno Docente cognome nome qualifica numTelefono [0..*] relatore > 0..*0..1 DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) facolta CHAR(10) qualifica CHAR(15) tipo CHAR(10)

30 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m Progettazione Logica >> Algoritmo di Traduzione Studente > matricola cognome nome anno Docente cognome nome qualifica numTelefono [0..*] relatore > 0..*0..1 codicecognomenome… FTTottiFrancesco… CVVieriChristian… ADPDel PieroAlessandro… matricolacognomenome…relatore 111RossiMario…null 222NeriPaolo…null 333RossiMaria…null 444PincoPalla…FT 77777BrunoPasquale…FT 88888PincoPietro…CV

31 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m m Attenzione: nel caso degli studenti, lassociazione del tutorato produrrebbe un vincolo di riferimento ricorsivo (scomodo) Progettazione Logica >> Algoritmo di Traduzione Studente Laurea Triennale Studente Laurea Specialistica 0..*0..1 tutor > StudenteT matricola INTEGERPK cognome CHAR(20) nome CHAR(20) anno INTEGER relatore CHAR(4)FK tutor INTEGERFK nonostante non sia scorretta, non adotteremo questa soluzione

32 G. Mecca - - Basi di Dati V Passo: Trad. delle Associazioni 1-m Progettazione Logica >> Algoritmo di Traduzione TutoratoT studente INTEGERPK, FK tutor INTEGERPK, FK Studente Laurea Triennale Studente Laurea Specialistica 0..*0..1 tutor > StudenteT matricola INTEGERPK cognome CHAR(20) nome CHAR(20) anno INTEGER relatore CHAR(4)FK

33 G. Mecca - - Basi di Dati VI Passo: Trad. delle Associazioni 1-1 m Discorso simile a quelle 1 a molti posso scegliere dove mettere la chiave est. si preferisce utilizzare come chiave esterna la chiave primaria della classe la cui card. min. è 1 Progettazione Logica >> Algoritmo di Traduzione StudenteT matricola INTEGERPK …… TirocinioT matricola INTEGERPK, FK sede CHAR(20) dataInizio DATE durata INTEGER > matricola anno nome cognome Studente durata dataInizio sede Tirocinio ha svolto

34 G. Mecca - - Basi di Dati Progettazione Logica >> Algoritmo di Traduzione TirocinioT studente INTEGERPK, FK sede CHAR(20) dataInizio DATE durata INTEGER TutoratoT studente INTEGERPK, FK tutor INTEGERPK, FK StudenteT matricola INTEGERPK cognome CHAR(20) nome CHAR(20) ciclo CHAR(15) anno INTEGER relatore CHAR(4)FK DocenteT codice CHAR(4)PK cognome CHAR(20) nome CHAR(20) facolta CHAR(10) qualifica CHAR(15) tipo CHAR(10) EsameT codice CHAR(5)PK voto INTEGER lode BOOL data DATE corso CHAR(3)FK stud INTEGERFK CorsoT codice CHAR(3)PK titolo CHAR(20) ciclo CHAR(20) TitolaritàT corso CHAR(3)PK, FK docente CHAR(4)PK, FK NumeriT numero CHAR(15)PK docente CHAR(4)FK

35 G. Mecca - - Basi di Dati VII Passo: Aggiunta di Vincoli Ulteriori m A questo punto sono definite le tabelle gli attributi le chiavi primarie i vincoli di riferimento m Per ottenere lo schema conclusivo è possibile aggiungere altri vincoli (NOT NULL, DEFAULT, CASCADE, CHECK ecc.) Progettazione Logica >> Algoritmo di Traduzione

36 G. Mecca - - Basi di Dati VII Passo: Aggiunta di Vincoli Ulteriori m In particolare le cardinalità minime danno origine a vincoli NOT NULL Esempio: Progettazione Logica >> Algoritmo di Traduzione ciclo > codice titolo Corso data lode voto Esame < relativo a 0..* 1 CREATE TABLE Esame ( codice char(5) PRIMARY KEY, corso char(3) NOT NULL REFERENCES Corso(codice),... );

37 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale CREATE TABLE Studente ( matricola integer PRIMARY KEY, cognome varchar(20) NOT NULL, nome varchar(20) NOT NULL, ciclo char(20), anno integer, relatore char(4) REFERENCES Docente(codice), CHECK(relatore is NULL or anno=3 or ciclo=Laurea sp.) ); CREATE TABLE Docente ( codice char(4) PRIMARY KEY, cognome varchar(20) NOT NULL, nome varchar(20) NOT NULL, qualifica char(15), facolta char(10), tipo char(10) NOT NULL ); Lo Schema Finale

38 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale CREATE TABLE Esame ( codice char(5) PRIMARY KEY, studente integer NOT NULL REFERENCES Studente(matricola) ON DELETE cascade ON UPDATE cascade, corso char(3) NOT NULL REFERENCES Corsi(codice), voto integer, lode bool, data date, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), UNIQUE (studente, corso) ); CREATE TABLE Corso ( codice char(3) PRIMARY KEY, titolo varchar(20) NOT NULL, ciclo char(20) ); CREATE TABLE Tutorato ( studente integer REFERENCES Studente(matricola), tutor integer REFERENCES Studente(matricola), PRIMARY KEY (studente, tutor) );

39 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale CREATE TABLE Numeri ( numero char(9) PRIMARY KEY, docente char(4) REFERENCES Docente(codice) ); CREATE TABLE Tirocinio ( studente integer PRIMARY KEY REFERENCES Studente(matricola), sede char(20) NOT NULL, dataInizio date, durata integer ); CREATE TABLE Titolarita ( docente char(4) REFERENCES Docente(codice), corso char(3) REFERENCES Corso(codice), PRIMARY KEY (docente, corso) );

40 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale Una Possibile Istanza codicecognomenomequalificafacoltatipo FTTottiFrancescoordinarioIngegneriainterno CVVieriChristianassociatoScienzeinterno ADPDel PieroAlessandronull supplente matricolacognomenomecicloannorelatore 111RossiMariolaurea tr.1null 222NeriPaololaurea tr.2null 333RossiMarialaurea tr.1null 444PincoPallalaurea tr.3FT 77777BrunoPasqualelaurea sp.1FT 88888PincoPietrolaurea sp.1CV Docente Studente

41 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale codicetitolociclo PR1Programmazione Ilaurea tr. ASDAlgoritmi e Str. Datilaurea tr. INFTInformatica Teoricalaurea sp. Corso studentetutor Tutorato codicestudentecorsovotolodedata pr101111PR127false asd01222ASD30true inft1111INFT24false pr PR121false asd ASD20false asd ASD28false pr PR130false inft288888INFT30true Esame

42 G. Mecca - - Basi di Dati Progettazione Logica >> Lo Schema Finale numerodocente FT FT VC ADP ADP Numeri docentecorso FTPR1 CVASD ADPINFT ADPPR1 FTASD TitolaritastudentesededataIniziodurata 444Microsoft Microsoft SOGEI Tirocinio

43 G. Mecca - - Basi di Dati VIII Passo: Schemi Esterni m Dallo schema logico è necessario derivare gli schemi esterni eventuali viste autorizzazioni agli utenti su tabelle e viste m Esempio: due categorie di utenti segreteria: accesso a tutti i dati docenti: accesso a dati ristretti sugli esami (es: una vista EsameSenzaVoto) Progettazione Logica >> Algoritmo di Traduzione

44 G. Mecca - - Basi di Dati Sommario m Introduzione Il Processo di Progetto della BD m Algoritmo di Progettazione Logica Traduzione delle Classi Traduzione delle Gerarchie Traduzione delle Associazioni molti a molti Traduzione delle Associazioni 1-1 e 1-molti Progettazione Logica >> Sommario

45 G. Mecca - - Basi di Dati Progettazione Logica >> Modello Concettuale Studente > matricola cognome nome annoDiCorso Docente cognome nome qualifica numTelefono [0..*] DocenteInterno facolta SupplenteStudente Laurea Triennale Studente Laurea Specialistica 0..*0..1 tutor > relatore > 0..*0..1 Corso > codice titolo ciclo titolarità 0..* Esame voto lode data ha sostenuto > 1 0..* < relativo a 0..*1 Schema Concettuale Tirocinio sede dataInizio durata ha svolto > relatore solo se al 3 anno

46 G. Mecca - - 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 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. m 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 oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.