Basi di Dati. La Progettazione Logica. Sommario. Il Processo di Progetto della BD. Algoritmo di Progettazione Logica

Documenti analoghi
Esempio di database relazionale con l utilizzo del prodotto MySQL

Traduzione dello schema E-R in modello logico relazionale

Basi di Dati: Corso di laboratorio

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Progettazione logica: regole di traduzione

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Riconoscere e formalizzare le dipendenze funzionali

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

ESAME di INFORMATICA e ARCHIVIAZIONE

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Soluzione DDL ed Algebra Relazionale

ESAME di INFORMATICA e ARCHIVIAZIONE

Corso di Basi di Dati A.A. 2014/2015

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

Alessandra Raffaetà. Schemi a oggetti -> Schemi relazionali

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

Università degli studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Magistrale in INFORMATICA

Corso di Informatica (Basi di Dati)

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

Progetto Logos - Documentazione -

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Progettazione di Database

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati e Sistemi Informativi. Structured Query Language

Traduzione da ER a Relazionale

Un DataBase SQL per la Henry Books

11 - Progettazione Logica

Corso di Laboratorio di Basi di Dati

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

User Tools: DataBase Manager

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

SQL PER LA DEFINIZIONE DI BASI DI DATI

Il linguaggio SQL: DDL di base

Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica

SQL: definizione schema

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Laboratorio di Basi di Dati e Web

SQL - Tipi di dato Il linguaggio SQL

Basi di Dati prof. Letizia Tanca

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

Cardinalità. Informatica. Cardinalità. Cardinalità. Cardinalità. Cardinalità. Cardinalità delle associazioni:

Volumi di riferimento

Progettazione Logica. Progettazione Logica

Vincoli di Integrità

CAPITOLO V. DATABASE: Il modello relazionale

Le basi di dati. Base di dati. Modelli, schemi ed istanze DBMS. Architettura ANSI/SPARC: schemi

MAX, SUM, AVG, COUNT)

Dal modello concettuale al modello logico

PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI

Progettazione logica relazionale (1/2)

Alessandra Raffaetà. Basi di Dati

Università degli Studi di Pavia Dipartimento di Psicologia. INFORMATI PER RIUSCIRE Tutor: Alessandra Danieli Alessandra Di Malta

Basi di Dati Relazionali

Linguaggio SQL. Structured Query Language

Il Modello Relazionale

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Corso sul linguaggio SQL

SQL (STRUCTURED QUERY LANGUAGE)

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Materiale didattico. Sommario

Il linguaggio SQL: le basi

Progetto: Database per assicurazione rc auto

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Definizione di domini

La normalizzazione Trasformazione da concettuale a relazionale

PROGETTAZIONE DI UN DATABASE

CAPITOLO 4 ESERCIZI SU SQL

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Diploma di scuola media superiore SCUOLA DI SPECIALIZ- ZAZIONE

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli

PROGRAMMA DI INFORMATICA

Elementi di Informatica e Programmazione

Indicatori statistici

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Università degli Studi di Milano. Esercizi Corso SIT. Basi di dati

Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA. CLASSE 3 LSA SEZ. B e D

Laboratorio di Basi di Dati

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Transcript:

Basi di Dati La Progettazione Logica Progettazione Logica >> Sommario Sommario Introduzione Il Processo di Progetto della BD Algoritmo di Progettazione Logica raduzione delle Classi raduzione delle Gerarchie raduzione delle Associazioni molti a molti raduzione delle Associazioni - e -molti 2

Progettazione Logica >> Introduzione Introduzione Siamo nella fase di progettazione si è conclusa (un iterazione del)la fase di analisi Attività da svolgere definire l architettura dell applicazione definire la struttura e i metodi delle classi definire la struttura della base di dati Fase successiva: sviluppo 3 Progettazione Logica >> Introduzione Il Processo di Progetto della BD Punto di partenza il modello concettuale dei dati Progettazione Logica dallo schema concettuale viene derivato uno schema logico standard e i necessari schemi esterni Progettazione Fisica lo schema logico viene sottoposto a verifica e viene ottimizzato 4 2

Progettazione Logica >> Introduzione Il Processo di Progetto della BD Progettazione logica viene condotta sulla base di un semplice algoritmo sistematico Progettazione fisica attività mista: progettazione e tuning difficilmente sistematizzabile In questa lezione ci concentriamo sulla progettazione logica 5 Algoritmo di Progettazione Logica I passo: trad. iniziale delle classi non coinvolte in gerarchie II passo: trad. iniziale delle gerarchie III passo: trad. degli attributi multivalore IV passo: trad. delle assoc. molti a molti V passo: trad. delle assoc. uno a molti VI passo: trad. delle assoc. uno a uno VII passo: introduzione di eventuali ulteriori vincoli VIII passo: progettazione degli schemi esterni 6 3

titolarità <<id>> codice titolo numelefono [] relatore > 0.. < relativo a relatore solo se al 3 anno <<id>> matricola anno Esame voto lode data ha sostenuto > irocinio sede datainizio durata ha svolto > 0.. Interno Supplente facolta Laurea Laurea Schema Concettuale riennale Specialistica tutor > 0.. 7 Notazione Grafica per le abelle Stereotipo di UML tabella e attributi chiave primaria chiave esterna Esempio: matricola INEGER CHAR(20) CHAR(20) anno INEGER CHAR(20) relatore CHAR(4) FK CREAE ABLE ( matricola integer PRIMARY KEY, char(20), char(20), codice CHAR(4) anno integer, char(20), relatore char(4) REFERENCES (codice)); 8 4

I Passo: raduzione delle Classi Idea ogni classe diventa una tabella inizialmente gli stessi attributi monovalore successivamente possono essere aggiunti altri attributi E necessario individuare il tipo degli attributi individuare la chiave primaria individuare eventuali chiavi esterne 9 I Passo: raduzione delle Classi Chiave primaria deve essere semplice da usare e compatta identificatore interno esplicito (es: matricola per, codice per ) un identificatore esterno può diventare una chiave primaria esterna (es: matricola dello studente per irocinio) purchè sia compatto altrimenti si aggiunge un identificatore sintetico 0 5

I Passo: raduzione delle Classi <<id>> codice codice CHAR(3) identificatore esplicito titolo titolo CHAR(20) CHAR(20) Esame voto lode Esame codice CHAR(5) voto INEGER identificatore sintetico data lode BOOL data DAE irocinio luogo datainizio irocinio matricola INEGER sede CHAR(20), FK identificatore esterno durata datainizio DAE durata INEGER I Passo: raduzione delle Classi <<id>> codice titolo codice CHAR(3) titolo CHAR(20) CHAR(20) {ADS Algoritmi e Strutt. Dati laurea tr.} {PR, Programm. I laurea tr.} {INF, Inf. eorica laurea sp.} codice PR ASD INF titolo Programmazione I Algoritmi e Str. Dati Informatica eorica laurea tr. laurea tr. laurea sp. 2 6

I Passo: raduzione delle Classi irocinio luogo datainizio durata irocinio matricola INEGER sede CHAR(20) datainizio DAE durata INEGER, FK {Microsoft, 25/06/2002, 3 mesi} {SOGEI /7/2002, 4 mesi} {Microsoft, 25/06/2002, 3 mesi} studente 444 77777 88888 sede Microsoft Microsoft Basica datainizio 2002-05-5 2002-05-5 2002-09-0 durata 3 3 3 3 II Passo: raduzione delle Gerarchie E l unico passo di una certa complessità non esiste la generalizzazione nel modello relazionale re possibili strade tradurre solo il padre della gerarchia tradurre solo i figli della gerarchia tradurre il padre e i figli collegandoli con chiavi esterne 4 7

II Passo: raduzione delle Gerarchie I Soluzione: Solo il padre un unica tabella con il 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 nell appl. genera valori nulli 5 II Passo: raduzione delle Gerarchie I Soluzione: Solo il padre per ora l attributo multivalore viene trascurato codice CHAR(4) CHAR(20) CHAR(20) numelefono [] facolta CHAR(0) CHAR(5) tipo CHAR(0) Interno facolta Supplente tipo può valere: -interno oppure -supplente 6 8

II Passo: raduzione delle Gerarchie 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 l applicazione richiede spesso di accedere singolarmente ai figli costringe ad effettuare molte unioni 7 II Passo: raduzione delle Gerarchie II Soluzione: Solo i figli numelefono [] Interno codice CHAR(4) CHAR(20) CHAR(20) facolta CHAR(0) CHAR(5) Interno facolta Supplente Supplente codice CHAR(4) CHAR(20) CHAR(20) CHAR(5) 8 9

II Passo: raduzione delle Gerarchie 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 9 II Passo: raduzione delle Gerarchie III Soluzione: Sia il padre che i figli numelefono [] codice CHAR(4) CHAR(20) CHAR(20) CHAR(5) Interno Supplente codice CHAR(4),FK codice CHAR(4), FK Interno Supplente facolta CHAR(0) indirizzo CHAR(20) facolta indirizzo 20 0

II Passo: raduzione delle Gerarchie III Soluzione: Sia il padre che i figli codice F otti Francesco ordinario CV Vieri Christian associato ADP Del Piero Alessandro null Interno Supplente codice F facolta Ingegneria codice ADP Indirizzo Stadio delle Alpi, orino CV Scienze 2 II Passo: raduzione delle Gerarchie Nel nostro esempio soluzione n. per i docenti un unica tabella soluzione n. per gli studenti un unica tabella matricola INEGER CHAR(20) CHAR(20) anno INEGER CHAR(5) 22

III Passo: rad. degli Attributi Multiv. Ogni attributo multivalore genera una nuova tabella chiave esterna per fare riferimento alla tabella che traduce la classe originale codice CHAR(4) Numeri numelefono [] CHAR(20) CHAR(20) facolta CHAR(0) CHAR(5) numero CHAR(5) docente CHAR(4) FK tipo CHAR(0) 23 IV Passo: rad. delle Associazioni m-m Ogni associazione molti a molti genera una tabella riferimenti (chiavi esterne) alle tabelle che traducono le classi coinvolte eventuali attributi dell associazione la chiave della tabella deve includere le chiavi esterne 24 2

IV Passo: rad. delle Associazioni m-m..* codice CHAR(3) <<id>> codice titolo titolo CHAR(20) CHAR(20) itolarità titolarità corso CHAR(3), FK docente CHAR(4), FK primoannoit INEGER primoannoit numelefono [] codice CHAR(4) CHAR(20) CHAR(20) attributo dell associazione (nel seguito omesso) 25 IV Passo: rad. delle Associazioni m-m codice PR titolo Programmazione I laurea tr...* <<id>> codice titolo ASD INF Algoritmi e Str. Dati Informatica eorica laurea tr. laurea sp. titolarità docente F corso PR primoannoit 200 CV ASD 2002 F ASD 999 numelefono [] codice F otti Francesco primoannoit CV ADP Vieri Del Piero Christian Alessandro 26 3

V Passo: rad. delle Associazioni -m Potrebbero essere tradotte con nuove tabelle sarebbe inefficiente costringerebbe a più join del normale Generano chiavi esterne ciascuna istanza dell associazione è identificata dall oggetto dal lato chiave esterna della tabella dal lato nella tabella corrispondente alla classe dal lato m 27 V Passo: rad. delle Associazioni -m <<id>> codice titolo < relativo a Esame voto lode data Esame codice CHAR(3) titolo CHAR(20) CHAR(20) codice CHAR(5) voto INEGER lode BOOL P K data DAE corso CHAR(3) FK 28 4

V Passo: rad. delle Associazioni -m numelefono [] relatore > 0.. <<id>> matricola anno codice CHAR(4) CHAR(20) matricola INEGER CHAR(20) CHAR(20) CHAR(20) facolta CHAR(0) anno INEGER CHAR(5) CHAR(5) tipo CHAR(0) relatore CHAR(4) FK 29 V Passo: rad. delle Associazioni -m numelefono [] relatore > 0.. <<id>> matricola anno matricola relatore codice Rossi Mario null F otti Francesco 222 Neri Paolo null CV Vieri Christian 333 Rossi Maria null ADP Del Piero Alessandro 444 Pinco Palla F 77777 Bruno Pasquale F 88888 Pinco Pietro CV 30 5

V Passo: rad. delle Associazioni -m Attenzione: nel caso degli studenti, l associazione del tutorato produrrebbe un vincolo di riferimento ricorsivo (scomodo) Laurea riennale Laurea Specialistica 0.. tutor > nonostante non sia scorretta, non adotteremo questa soluzione matricola INEGER CHAR(20) CHAR(20) anno INEGER relatore CHAR(4) tutor INEGER FK FK 3 V Passo: rad. delle Associazioni -m Laurea Laurea riennale Specialistica tutor > 0.. utorato matricola INEGER studente INEGER tutor INEGER, FK, FK CHAR(20) CHAR(20) anno INEGER relatore CHAR(4) FK 32 6

VI Passo: rad. delle Associazioni - Discorso simile a quelle a molti posso scegliere dove mettere la chiave est. si preferisce un lato in cui la card. min. è irocinio matricola INEGER <<id>> matricola 0.. ha svolto sede datainizio durata irocinio anno matricola INEGER sede CHAR(20), FK datainizio DAE durata INEGER 33 itolarità corso CHAR(3), FK codice CHAR(3) Esame docente CHAR(4), FK titolo CHAR(20) CHAR(20) codice CHAR(5) voto INEGER irocinio studente INEGER sede CHAR(20) datainizio DAE durata INEGER, FK codice CHAR(4) CHAR(20) CHAR(20) facolta CHAR(0) lode BOOL data DAE corso CHAR(3) stud INEGER Numeri FK FK CHAR(5) numero CHAR(5) tipo CHAR(0) docente CHAR(4) FK matricola INEGER CHAR(20) CHAR(20) utorato CHAR(5) anno INEGER studente INEGER tutor INEGER, FK, FK relatore CHAR(4) FK 34 7

VII Passo: Aggiunta di Vincoli Ulteriori A questo punto sono definite le tabelle gli attributi le chiavi primarie i vincoli di riferimento Per ottenere lo schema conclusivo è possibile aggiungere altri vincoli (NO NULL, DEFAUL, CASCADE, CHECK ecc.) 35 VII Passo: Aggiunta di Vincoli Ulteriori In particolare le cardinalità minime danno origine a vincoli NO NULL Esempio: <<id>> codice titolo < relativo a Esame voto lode data CREAE ABLE Esame ( codice char(5) PRIMARY KEY, corso char(3) NO NULL REFERENCES (codice),... ); 36 8

Progettazione Logica >> Lo Schema Finale Lo Schema Finale CREAE ABLE ( codice char(4) PRIMARY KEY, varchar(20) NO NULL, varchar(20) NO NULL, char(5), facolta char(0), tipo char(0) NO NULL ); CREAE ABLE ( matricola integer PRIMARY KEY, varchar(20) NO NULL, varchar(20) NO NULL, char(20), anno integer, relatore char(4) REFERENCES (codice), CHECK(relatore is NULL or anno=3 or = Laurea sp. ) ); 37 Progettazione Logica >> Lo Schema Finale CREAE ABLE ( codice char(3) PRIMARY KEY, titolo varchar(20) NO NULL, char(20) ); CREAE ABLE Esame ( codice char(5) PRIMARY KEY, studente integer NO NULL REFERENCES (matricola) ON DELEE cascade ON UPDAE cascade, corso char(3) NO NULL REFERENCES Corsi(codice), voto integer, lode bool, data date, CHECK (voto>=8 and voto<=30), CHECK (not lode or voto=30), UNIQUE (studente, corso) ); CREAE ABLE utorato ( studente integer REFERENCES (matricola), tutor integer REFERENCES (matricola), PRIMARY KEY (studente, tutor) ); 38 9

Progettazione Logica >> Lo Schema Finale CREAE ABLE Numeri ( numero char(9) PRIMARY KEY, docente char(4) REFERENCES (codice) ); CREAE ABLE irocinio ( studente integer PRIMARY KEY REFERENCES (matricola), sede char(20) NO NULL, datainizio date, durata integer ); CREAE ABLE itolarita ( docente char(4) REFERENCES (codice), corso char(3) REFERENCES (codice), PRIMARY KEY (docente, corso) ); 39 Progettazione Logica >> Lo Schema Finale Una Possibile Istanza codice F otti Francesco ordinario facolta Ingegneria tipo interno CV Vieri Christian associato Scienze interno ADP Del Piero Alessandro null null supplente matricola Rossi Mario laurea tr. anno relatore null 222 Neri Paolo laurea tr. 2 null 333 Rossi Maria laurea tr. null 444 Pinco Palla laurea tr. 3 F 77777 Bruno Pasquale laurea sp. F 88888 Pinco Pietro laurea sp. CV 40 20

Progettazione Logica >> Lo Schema Finale utorato codice PR titolo Programmazione I laurea tr. studente tutor 77777 ASD Algoritmi e Str. Dati laurea tr. 222 77777 INF Informatica eorica laurea sp. 333 88888 444 88888 Esame codice studente corso voto lode data pr0 PR 27 false 2002-06-2 asd0 222 ASD 30 true 200-2-03 inft INF 24 false 200-09-30 pr02 77777 PR 2 false 2002-06-2 asd02 77777 ASD 20 false 200-2-03 asd03 88888 ASD 28 false 2002-06-3 pr03 88888 PR 30 false 2002-07-0 inft2 88888 INF 30 true 200-09-30 4 Progettazione Logica >> Lo Schema Finale irocinio studente 444 sede Microsoft datainizio 2002-05-5 durata 3 77777 Microsoft 2002-05-5 3 88888 SOGEI 2002-09-0 3 Numeri numero 09720545 docente F itolarita docente F corso PR 34723456 F CV ASD 097205227 VC ADP INF 097205363 ADP ADP PR 33823456 ADP F ASD 42 2

VIII Passo: Schemi Esterni Dallo schema logico è necessario derivare gli schemi esterni eventuali viste autorizzazioni agli utenti su tabelle e viste Esempio: due categorie di utenti segreteria: accesso a tutti i dati docenti: accesso a dati ristretti sugli esami (es: una vista EsameSenzaVoto ) 43 Progettazione Logica >> Sommario Sommario Introduzione Il Processo di Progetto della BD Algoritmo di Progettazione Logica raduzione delle Classi raduzione delle Gerarchie raduzione delle Associazioni molti a molti raduzione delle Associazioni - e -molti 44 22

Progettazione Logica >> Modello Concettuale titolarità <<id>> codice titolo numelefono [] relatore > 0.. < relativo a relatore solo se al 3 anno <<id>> matricola annodi Esame voto lode data ha sostenuto > irocinio sede datainizio durata ha svolto > 0.. Interno Supplente facolta Laurea Laurea Schema Concettuale riennale Specialistica tutor > 0.. 45 23