SCHEMA E/R DI UNA UNIVERSITA'

Documenti analoghi
Raccolta e analisi dei requisiti

LA PROGETTAZIONE LOGICA

Semplici esercizi relativi agli schemi E/R e prog. logica. Esempio A : Orario delle lezioni dei corsi

Esercitazione 1: DB-MAIN e modello E/R

ESAME di INFORMATICA e ARCHIVIAZIONE

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

Lezione 4. Dallo schema ER al relazionale

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

IL MODELLO ENTITÀ- RELAZIONE. Gli altri costruttori

Il modello Entity-Relationship: pattern di progettazione

Basi di dati I Prova di autovalutazione 30 ottobre 2014

DataBase Management System - DBMS

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Progettazione logica: criteri di ottimizzazione

Il modello Entity-Relationship: elementi avanzati

Quante occorrenze abbiamo nella relazione Insegnamento? 1000 (studenti) x 25 (insegnanti per ciascuno studente) = 25000

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Basi di Dati 1 Esercitazione 5 08/01/2013. Matteo Picozzi

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

Traduzione ER - relazionale

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

Conversione Modello ER in Modello Relazionale. A.Bardine - Conversione Modello ER in Modello Relazionale

Modello Entità-Relazione

Progettazione di Basi di Dati

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Fase di Analisi Class Diagram. Esercizi

ESERCIZI DI MODELLAZIONE E-R

Il modello Entity-Relationship

Basi di dati. Progettazione di basi di dati: Metodologie e modelli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Fase di Analisi Class Diagram. Esercizi

Corso online per l acquisizione di crediti informatici (3 CFU) Corso di laurea in Scienze Geologiche A.A Informatica di base

Gestione NARRATIVA del 900

Il modello Relazionale.

Interrogazioni nidificate

Progettazione logica Fase 2: Traduzione nel modello relazionale. adattato da Atzeni et al., Basi di dati, McGrawHill

Corso di Basi di Dati

Progettazione di basi di dati

Cap. 3 - Il modello ER

Interrogazioni nidificate

GESTIONE ABBONAMENTI RIVISTE

Progettazione di basi di dati D B M G

Corso online per l acquisizione di crediti informatici (3 CFU) per Scienze Biologiche

GESTIONE ASSICURAZIONI AUTO

Il modello Entità/Relazioni (ER)

I modelli logici dei dati

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

RELAZIONI E BASI DI DATI

Informatica Industriale

Esempio di database relazionale con l utilizzo del prodotto MySQL

GESTIONE VOTI SCOLASTICI

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Ciclo di vita di un sistema informativo

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

ESERCIZI SQL. Esercizio 1

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

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:

Esercizi su Modello Relazionale

COGNOME MATRICOLA. STUDENTE(Codice, Nome, Cognome, LuogoNascita) CDL (Codice, Nome, PunteggioMinimo) QUIZ(CodiceCorso, CodiceStudente, Punteggio)

Basi di dati Appello del Soluzione del compito B

Corso di Informatica

Traduzione dal modello E/R al modello relazionale

ESERCIZI DI MODELLAZIONE E-R

OBIETTIVI DELL'ESERCITAZIONE

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket.

Dichiarazione degli schemi in SQL DDL 1

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

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

Esercizio 1 ESERCIZI DI PROGETTAZIONE CONCETTUALE DI BASI DI DATI. La base di dati di una università contiene informazioni

IL MODELLO ENTITA - RELAZIONE

11 - Progettazione Logica

Basi di dati (nuovo ordinamento) 16 giugno 2008 Compito A

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 26 Giugno 07 Nome: Cognome: Matricola: Esercizio 1

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. Progettazione logica. Attenzione

Progettazione logica: regole di traduzione

<Nome Tabella>.<attributo>

Esercizi su Modello Entità-Relazioni

Progettazione logica

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

LA PROGETTAZIONE CONCETTUALE

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

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

IL MODELLO ENTITY RELATIONSHIP. il modello ER 1

Esercitazione: Dalle Specifiche alla Modellazione ER. Roberto Basili a.a. 2011/2012

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

GESTIONE MAGAZZINO 1

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

SQL - Structured Query Language

È IMPORTANTE LEGGERE ATTENTAMENTE LA PAGINA DEL SITO INDICATA.

Un esempio di progettazione concettuale

Modello Entità-Relazione (E-R)

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Seconda Università degli Studi di Napoli

Transcript:

UNIVERSITÀ: SCHEMA E/R & PROGETTO LOGICO Lo schema descrive i professori, gli studenti e i corsi di una università. I professori afferiscono ad un dipartimento e tengono dei corsi; gli studenti hanno nel programma del piano di studio e seguono dei corsi. Sia per i professori che per gli studenti è riportato il luogo di nascita; in aggiunta, per gli studenti si riporta anche il luogo di residenza. Per gli studenti laureandi è rappresentato il relatore. Per i corsi sono rappresentati le aule e gli orari. Generalizzazioni: I professori e gli studenti sono raggruppati in una gerarchia con entità generica PERSONA. I laureandi sono un sottoinsieme di studenti. STATO CITTA' RESIDENZA PERSONA (t,e) PROFESSORE TELEFONO DIPARTIMENTO AFFERISCE RELATORE Associazioni: AFFERISCE: ogni professore afferisce ad uno e un solo dipartimento LAUREANDO card(professore,afferisce)= ad un dipartimento afferisce almeno un professore card(dipartimento,afferisce)= SEGUE PIANO_DI STUDIO TENUTO_DA: ogni professore tiene da uno a due corsi card(professore,tenuto_da)=(1,2) ogni corso è tenuto da uno o più professori ANNO_ACC ANNO_ACC TENUTO_DA (1,2) card(,tenuto_da)= (3,5) SEGUE: SI_TIENE: ogni studente può seguire più corsi card(,segue)= ogni corso è seguito da uno o più studenti card(,segue)= ogni corso si tiene da tre a cinque volte la settimana card(,si_tiene)=(3,5) in un aula si tiene, durante la settimana, almeno un corso card(aula,si_tiene)= in un certo orario settimanale si tiene almeno un corso card(orario,si_tiene)= SI_TIENE ORARIO AULA GIORNO ORA SCHEMA E/R DI UNA UNIVERSITA' NUMERO_AULA FACOLTA' SISTEMI INFORMATIVI A.A. 2003/2004 1 2

SCHEMA DI UNA UNIVERSITÀ : Progetto logico CHECK: C-NASC,S-NASC NOT NULL STATO CITTA' RESIDENZA PERSONA (t,e) PROFESSORE MIN-CARD(,_) = 1 CHECK: S-RESID,C-RESID NOT NULL MIN-CARD(,RESIDENZA) = 1 Anche da un punto di vista implementativo conviene tenere le due clausole separate; ad esempio, possiamo modificare la cardinalità COLLASSO VERSO IL BASSO MIN-CARD(,RESIDENZA) = 0 eliminando (tramite il comando ALTER TABLE di SQL) la clausola CHECK: S-RESID,C-RESID NOT NULL CITTA' RESIDENZA PROFESSORE PROFESSORE(,,C-NASC,S-NASC, FK: C-NASC,S-NASC REFERENCES CITTA CHECK: C-NASC,S-NASC NOT NULL La relazione AFFERISCE è riportata in PROFESSORE DIPARTIMENTO(,TELEFONO) CITTA( CITTA,STATOCITTA) (,,C-NASC,S-NASC,C-RESID,S-RESID FK: C-NASC,S-NASC REFERENCES CITTA FK: S-RESID,C-RESID REFERENCES CITTA CHECK: C-NASC,S-NASC NOT NULL CHECK: S-RESID,C-RESID NOT NULL PROFESSORE(,,C-NASC,S-NASC,N-DIPARTIMENTO) FK: C-NASC,S-NASC REFERENCES CITTA FK: N-DIPARTIMENTO REFERENCES DIPARTIMENTO CHECK: C-NASC,S-NASC NOT NULL CHECK: N-DIPARTIMENTO NOT NULL Nota: si potrebbe usare un unica clausola di NOT NULL per tutti gli attributi CHECK: S-RESID,C-RESID,C-NASC,S-NASC NOT NULL Comunque, è meglio tenere due clausole separate, ovvero mettere una clausola di not null per ogni foreign key; infatti queste due clausole di not null si riferiscono a due differenti vincoli di cardinalità : SISTEMI INFORMATIVI A.A. 2003/2004 3 4

LAUREANDO Si mantengono entrambe le entità (0,1) LAUREANDO (3,5) SI_TIENE AULA NUMERO_AULA FACOLTA' + Vincoli: 1) Non sovrapposizione 2) Non sdoppiamento ORARIO GIORNO ORA LAUREANDO(, FK: REFERENCES La relazione RELATORE è riportata in LAUREANDO LAUREANDO(,-RELATORE) FK: REFERENCES FK: -RELATORE REFERENCES PROFESSORE Nota: CHECK: -RELATORE NOT NULL Per semplicità di notazione, nel seguito il vincolo di not null relativo ad una foreign key verrà anche indicato semplicemente tramite [NOT NULL] nel vincolo di foreign key, cioè scriveremo indifferentemente LAUREANDO(,-RELATORE) FK: REFERENCES FK: -RELATORE REFERENCES PROFESSORE ( ) AULA( NUMERO,FACOLTA ) ORARIO( GIORNO,ORA) SI-TIENE(,GIORNO,ORA,NUMEROAULA,FACOLTA ) AK:GIORNO,ORA,NUMEROAULA,FACOLTA FK: REFERENCES FK:GIORNO,ORA REFERENCES ORARIO FK:NUMEROAULA,FACOLTA REFERENCES AULA [NOT NULL] Si noti che nella traduzione di una associazione tramite relazione (nel nostro caso, dell associazione ternaria SI-TIENE) tutte le foreign key devono essere not null; è stato indicato [NOT NULL] solo per la FK:NUMEROAULA,FACOLTA in quanto gli altri attributi fanno parte della primary key e quindi sono già not null. GIORNO ORA CHECK: -RELATORE NOT NULL Oppure, più semplicemente LAUREANDO(,-RELATORE) FK: REFERENCES FK: -RELATORE REFERENCES PROFESSORE [NOT NULL] AULA ( ) A SITIENE B (3,5) AULA( NUMERO,FACOLTA ) SISTEMI INFORMATIVI A.A. 2003/2004 5 ORARIO(,GIORNO,ORA,NUMEROAULA,FACOLTA ) AK:GIORNO,ORA,NUMEROAULA,FACOLTA FK: REFERENCES FK:NUMEROAULA,FACOLTA REFERENCES AULA [NOT NULL] 6

Schema relazionale finale: (,,C-NASC,S-NASC,C-RESID,S-RESID) FK: C-NASC,S-NASC REFERENCES CITTA [NOT NULL] FK: S-NASC,C-RESID REFERENCES CITTA [NOT NULL] PROFESSORE(,,C-NASC,S-NASC,N-DIPARTIMENTO) FK: C-NASC,S-NASC REFERENCES CITTA [NOT NULL] FK: N-DIPARTIMENTO REFERENCES DIPARTIMENTO [NOT NULL] LAUREANDO(,-RELATORE) FK: REFERENCES FK: -RELATORE REFERENCES PROFESSORE [NOT NULL] CITTA (,STATO) Nota Il vincolo che i corsi seguiti siano corsi inseriti nel piano di studio, non espresso nello schema ER, si può aggiungere facilmente nello schema relazionale tramite un vincolo di integrità referenziale sulla relazione SEGUE: SEGUE (,,ANNO-ACCADEMICO) FK:, REFERENCES PIANODISTUDIO Il vincolo che i corsi seguiti siano corsi inseriti nel piano di studio può essere espresso in ER nel seguente modo: DIPARTIMENTO(,TELEFONO) ( ) AULA( NUMERO,FACOLTA ) ORARIO(,GIORNO,ORA,NUMEROAULA,FACOLTA ) AK:GIORNO,ORA,NUMEROAULA,FACOLTA FK: REFERENCES FK:NUMEROAULA,FACOLTA REFERENCES AULA [NOT NULL] TENUTO-DA(,PROFESSORE) FK: REFERENCES FK:PROFESSORE REFERENCES PROFESSORE PIANODISTUDIO (,,ANNO-) FK: REFERENCES FK: REFERENCES SEGUE (,,ANNO-ACCADEMICO) FK: REFERENCES FK: REFERENCES PIANO_DI A B STUDIO ANNO ANNO SEGUE Traducendo questo schema in relazionale (per il subset si mantengono entrambe le entità) si ottiene ancora : PIANODISTUDIO (,,ANNO-) FK: REFERENCES FK: REFERENCES SEGUE (,,ANNO-ACCADEMICO) FK:, REFERENCES PIANODISTUDIO SISTEMI INFORMATIVI A.A. 2003/2004 7 8

Si vogliono memorizzare gli esami che gli studenti sostengono per i vari corsi, riportandone la data e il voto. Uno studente può sostenere fino ad un massimo di 29 esami. Nessuna limitazione per il numero di esami registrabili per un corso. 2. Per un dato studente e un dato corso possono essere registrati più esami, ciascuno con il relativo voto e la relativa data. 1. Per un dato studente e un dato corso può essere registrato un unico esame, con il relativo voto e la relativa data. (0,29) REG. (0,29) (MATRICOLA, ) (, ) (MATRICOLA,,,) FK : MATRICOLA REFERENCES FK : REFERENCES Si noti che lo stesso schema relazionale si ottiene dalla reificazione dell associazione : Caso a) : un valore (ovvero una coppia <voto,data>) può comparire una sola volta nella ripetizione (MATRICOLA,) FK : MATRICOLA REFERENCES FK : REFERENCES REG(MATRICOLA,,,) FK : MATRICOLA, REFERENCES A B (0,29) Caso b) : un valore (ovvero una coppia <voto,data>) può comparire più volte nella ripetizione : si introduce un numero-ordine (MATRICOLA,) FK : MATRICOLA REFERENCES FK : REFERENCES REG(MATRICOLA,,N-ORDINE,,) FK : MATRICOLA, REFERENCES SISTEMI INFORMATIVI A.A. 2003/2004 9 10

3. Per un dato studente e un dato corso possono essere registrati più esami, ma in date differenti, per un dato studente, un dato corso e una certa data, può essere registrato un unico esame, con il relativo voto (0,29) FK : MATRICOLA REFERENCES FK : REFERENCES 4. Uno studente non può registrare due o più esami nella stessa data, cioè per una certa data e per un certo studente si può registrare un unico esame (relativo ad un preciso corso) A B (0,29) () (MATRICOLA,,,) FK : MATRICOLA REFERENCES FK : REFERENCES FK : REFERENCES Si noti che lo stesso schema relazionale si ottiene dalla reificazione dell associazione : (MATRICOLA,,,) FK : MATRICOLA REFERENCES FK : REFERENCES [NOT NULL] 5. Vincolo 4 + Vincolo 1 C A B (0,29) A B (0,29) Invece la traduzione del seguente schema ER (MATRICOLA,,,) AK : MATRICOLA, FK : MATRICOLA REFERENCES FK : REFERENCES [NOT NULL] (0,29) A B Non richiede più l introduzione della relazione : (MATRICOLA,,,) SISTEMI INFORMATIVI A.A. 2003/2004 11 12