Dal modello concettuale al modello logico



Documenti analoghi
Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

DBMS (Data Base Management System)

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

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

Operazioni sui database

Definizione di domini

Basi di Dati: Corso di laboratorio

Progettazione Logica. Progettazione Logica

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Istruzioni DML di SQL

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Gli operatori relazionali

Lezione V. Aula Multimediale - sabato 29/03/2008

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

11 - Progettazione Logica

SQL (STRUCTURED QUERY LANGUAGE)

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Archivi e Basi di Dati

MODELLO RELAZIONALE. Introduzione

BASI DI DATI - : I modelli di database

Il Modello Relazionale

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Corso sul linguaggio SQL

Capitolo 8. Esercizio 8.1

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

PROGRAMMA DI CLASSE 5AI

Vincoli di Integrità

Progettazione concettuale

Corso di Laboratorio di Basi di Dati

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

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

Rappresentazione grafica di entità e attributi

Capitolo 13. Interrogare una base di dati

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

Basi di Dati e Sistemi Informativi. Algebra Relazionale

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

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Organizzazione degli archivi

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

Linguaggio SQL. Structured Query Language

Introduzione a MySQL

Traduzione da ER a Relazionale

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Volumi di riferimento

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Progettazione di Database. Un Esempio

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Elena Baralis 2013 Politecnico di Torino 1

Il Modello Relazionale

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Prova Scritta di Basi di Dati

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Progettazione logica relazionale (1/2)

Informatica per le discipline umanistiche 2 lezione 10

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

TEORIA sulle BASI DI DATI

Alessandra Raffaetà. Basi di Dati

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Le Basi di Dati. Le Basi di Dati

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

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

SQL. Alcune note sulla definizione dei dati

Progettazione di Database

Progettazione di Basi di Dati

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

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

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Esercizio data base "Biblioteca"

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

I Sistemi Informativi

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

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Informatica (Basi di Dati)

ESAME di INFORMATICA e ARCHIVIAZIONE

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Lezione 5: Progettazione di Software e Database. Ingegneria del Software. Il Software 19/11/2011. Dr. Luca Abeti

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

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità

Dispensa di database Access

SQL Sintassi Dei Comandi

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Il modello Entity-Relationship per il progetto delle basi di dati

Corso di Informatica (Basi di Dati)

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

DATABASE RELAZIONALI

MODELLO E/R. Modellazione dei dati

database: modello entityrelationship

Basi di dati 9 febbraio 2010 Compito A

Transcript:

Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello concettuale (modello Entita -Associazione) Modello logica (modello Relazionale) Inserimento, aggiornamento, Interrogazione dati multimediale 2 1

La progettazione logica Obiettivo: Costruire uno schema logico in grado di descrivere le informazioni contenute nello schema Entità-Associazione prodotto nella fase di progettazione concettuale A partire da entita, associazioni e attributi: quali tabelle e necessario creare? Per ogni tabella quali attributi compongono la tabella? quale e la chiave primaria della tabella? vincoli di tupla? Quali sono le relazioni tra le tabelle? Quali sono i vincoli tra le tabelle (vincoli di integrita referenziale)? multimediale 3 Ristrutturazione di uno schema Entita - Associazione Prima di passare allo schema logico, lo schema Entità-Associazione va ristrutturato Eliminazione dallo schema EA di tutti i costrutti non direttamente rappresentabili nel modello relazionale: Attributi composti Attributi multi-valore Gerarchie di generalizzazione (non trattato in questo corso) Vedremo la ristrutturazione di uno schema EA nelle slide finali di questa presentazione Per il momento si ipotizza di non avere attributi composti o multivalore multimediale 4 2

Traduzione verso il modello relazionale: le entita Studente matricola nome cognome data_nascita Le entità vengono tradotte con una relazione che comprende gli attributi e la cui chiave primaria corrisponde all identificatore dell entità Studente(matricola,nome,cognome,data_nascita) multimediale 5 Verso il modello relazionale: associazione molti a molti Cognome Stipendio Matricola Impiegato (0,N) Partecipazione Data inizio (0,N) Progetto Nome Budget Codice Traduciamo l associazione in una tabella che comprende: i) le chiavi primarie delle entità coinvolte ii) gli attributi propri dell associazione Schema relazionale corrispondente: Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) Due vincoli di integrità: tra Partecipazione e Impiegato (Matricola) e tra Partecipazione e Progetto (Codice) multimediale 6 3

Verso il modello relazionale: associazione molti a molti Per rendere più comprensibile lo schema è conveniente effettuare ridenominazioni Per esempio: in Partecipazione, Matricola Impiegato, Codice Progetto Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Impiegato, Progetto, DataInizio) multimediale 7 Verso il modello relazionale: associazione molti a molti Nome ditta Fornitore (0,N) Fornitura Quantità Prodotto (1,N) Genere Partita IVA (1,N) Codice Nome Dipartimento Telefono Fornitore(PartitaIVA, NomeDitta) Prodotto(Codice, Genere) Dipartimento(Nome, Telefono) Fornitura(Fornitore, Prodotto, Dipartimento, Quantità) multimediale 8 4

Verso il modello relazionale: associazione uno a molti Cognome Data nascita Giocatore Contratto (1,1) (0,N) Squadra Città Colori Ruolo Ingaggio Nome Potremmo procedere come nel caso precedente: Giocatore(Cognome, DataNascita, Ruolo) Squadra(Nome, Città, Colori) Contratto(Giocatore, DataNascitaGiocatore, NomeSquadra, Ingaggio) multimediale 9 Verso il modello relazionale: associazione uno a molti Cognome Data nascita Ruolo Giocatore TRADUZIONE MIGLIORE Contratto (1,1) (0,N) Ingaggio Squadra Dato che l associazione è uno a molti, possiamo dare una traduzione più compatta traducendo l associazione mediante attributi nella relazione Giocatore, che ha cardinalità (1,1): Città Colori Nome Giocatore(Cognome, DataNascita, Ruolo, NomeSquadra, Ingaggio) Squadra(Nome, Città, Colori) Un vincolo di integrità referenziale: tra NomeSquadra della relazione Giocatore e Nome della relazione Squadra multimediale - 10 5

Verso il modello relazionale: associazione uno a uno Telefono Cognome Stipendio Direttore Direzione (1,1) (1,1) Dipartimento Sede Codice Data inizio Due possibilità simmetriche e ugualmente valide: Nome Direttore(Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) Dipartimento(Nome, Telefono, Sede) Direttore(Codice, Cognome, Stipendio) NB: devo inoltre imporre che i valori del campo DipartimentoDiretto della tabella Direttore siano tutti diversi tra loro! Altrimenti creo una relazione 1-N Dipartimento(Nome, Telefono, Sede, Direttore, InizioDirezione) NB: devo inoltre imporre che i valori del campo Direttore della tabella Dipartimento siano tutti diversi tra loro! Altrimenti creo una relazione 1-N multimediale - 11 Verso il modello relazionale: associazione uno a uno Telefono Cognome Stipendio Codice Impiegato Direzione (0,1) (1,1) Data inizio Dipartimento Partecipazione opzionale di una delle due entita Traduciamo l associazione mediante attributi della relazione Dipartimento, che partecipa all associazione con cardinalità (1,1): Impiegato(Codice, Cognome, Stipendio) Sede Nome Dipartimento(Nome, Telefono, Sede, Direttore, InizioDirezione) Vincolo di integrità referenziale: tra Direttore della relazione Dipartimento e Codice della relazione Impiegato NB: devo inoltre imporre che i valori del campo Direttore della tabella Dipartimento siano tutti diversi multimediale tra loro! Altrimenti creo una relazione 1-N 12 6

Verso il modello relazionale: associazione uno a uno Telefono Cognome Stipendio Codice Impiegato Direzione (0,1) (1,1) Data inizio Dipartimento Sede Nome L alternativa in cui l associazione Direzione viene rappresentata nella relazione Impiegato è peggiore: Impiegato(Codice, Cognome, Stipendio, Dipartimento, InizioDirezione) Dipartimento(Nome, Telefono, Sede) Dato che l associazione tra Impiegato e Direzione ha cardinalità (0,1), nella relazione Impiegato per il nome del dipartimento diretto sono possibili valori nulli NB: devo inoltre Informatica imporre che applicata i valori alla del comunicazione campo Dipartimento della tabella Impiegato siano tutti diversi multimediale tra loro! Altrimenti creo una relazione 1-N 13 Verso il modello relazionale: associazione uno a uno Telefono Cognome Stipendio Impiegato Direzione (0,1) (0,1) Dipartimento Sede Codice Data inizio Tre opzioni: Combinare l entità Impiegato e l associazione Direzione in una relazione, traducendo l entità Dipartimento in una relazione distinta Valori nulli nella tabella Impiegato Combinare l entità Dipartimento e l associazione Direzione in una relazione, traducendo l entità Impiegato in una relazione distinta Valori nulli nella tabella Dipartimento Creare una nuova tabella che rappresenta la relazione direzione (come nel caso di una associazione molti a molti) Vantaggio: non ci sono valori nulli multimediale - Nome 14 7

Ristrutturazione di uno schema Entita - Associazione Prima di passare allo schema logico, lo schema Entità-Associazione va ristrutturato Eliminazione dallo schema EA di tutti i costrutti non direttamente rappresentabili nel modello relazionale: Attributi composti Attributi multi-valore multimediale - 15 Eliminare gli attributi composti Eliminazione di un attributo composto A da un'entita` E Soluzione 1: eliminazione dei sotto-attributi di A attributo composto diventa attributo semplice e` compito dell'applicazione garantire che il nuovo attributo contenga valori coerenti con la semantica dell'attributo composto ristrutturato Soluzione 2: considerare tutti i sotto-attributi di A come attributi di E ridefinizione del dominio dell'attributo Se le componenti dell'attributo composto sono a loro volta attributi composti, si ri-applica la procedura multimediale - 16 8

Eliminare gli attributi composti Soluzione 1 Soluzione 2 multimediale - 17 Eliminare gli attributi multivalore Definizione di una nuova entita collegata all'entita di partenza L'attributo multi-valore e rappresentato con un attributo mono-valore Vincoli di cardinalita : per l'entita che conteneva prima della ristrutturazione l'attributo multi-valore, coincide con il vincolo di cardinalita dell'attributo multi-valore (1:n) per la nuova entità = 1:1 multimediale - 18 9

Eliminare gli attributi multivalore Cliente codice nome Cliente codice nome Telefono (1,n) (1,n) Risponde a (1,1) telefono numero multimediale - 19 Riepilogo Da Schema E-R a Modello relazionale multimediale - 20 10

E-R ENTITA Attributo Attributo identificativo Attributo composto Attributo multiplo Relazionale TABELLA Attributo Chiave primaria Appiattito Tabella VINCOLI 1:n ATTRIBUTI: Chiave entità Attributo a valori multipli E-R ASSOCIAZIONE Cardinalita 1:1 Cardinalità 1:n Cardinalità m:n Relazionale TABELLA ATTRIBUTI: Chiave primaria delle due entità VINCOLI 1:1 1:1 1:n 1:1 1:n 1:n 11

Algebra relazionale Algebra relazionale Il modello logico Relazionale si fonda sull algebra relazionale Permette di definire formalmente le proprietà delle basi di dati relazionali Permette di calcolare il risultato delle interrogazioni 12

Algebra relazionale Due operazioni fondamentali: Selezione: estrarre un sottoinsieme delle ennuple (righe) di una relazione (tabella) [simbolo: σ] (taglio in orizzontale) Proiezione: estrarre dalla tabella un insieme di colonne (taglio in verticale) [simbolo: π] Operazioni insiemistiche Vedendo ogni tabella come un insieme è facile definire le seguenti operazioni Unione Intersezione Differenza Prodotto cartesiano 13

Compatibilità all unione Stesso tipo di ennuple: Stesso grado Ogni coppia di attributi corrispondenti ha lo stesso dominio Necessaria per unione, intersezione e differenza Compatibilità: esempio LIBRI BIBLIOTECA TITOLO ISBN AUTORE COLLOCAZ. sringa stringa stringa intero LIBRI PRESTITO TITOLO_LIBRO #ISBN AUTORE #COLL. stringa stringa stringa intero 14

Unione R U S Tutte le ennuple della prima relazione e tutte le ennuple della seconda Le duplicazioni sono eliminate aaa bbbb cccc ddd bbbb eee xxx yyy zzz ddd bbbb eee www yyy zzz aaa bbbb cccc ddd bbbb eee xxx yyy zzz xxx yyy zzz Intersezione R S Solo le ennuple che sono sia nella prima relazione che nella seconda aaa bbbb cccc ddd bbbb eee xxx yyy zzz ddd bbbb eee www yyy zzz ddd bbbb eee 15

Differenza R -- S Solo le ennuple della prima relazione che non sono anche nella seconda relazione aaa bbbb cccc ddd bbbb eee www yyy zzz xxx bbbb fff www yyy zzz aaa bbbb cccc ddd bbbb eee Prodotto cartesiano R X S Prodotto cartesiano delle ennuple di due relazioni Non serve compatibilità all unione! aaa bbbb cccc ddd bbbb eee ddd www bbbb yyy aaa bbbb cccc ddd bbbb ddd bbbb eee www yyy aaa bbbb cccc www yyy ddd bbbb eee ddd bbbb 16

Join R >< S tutte le coppie di ennuple di R e S per cui vale una certa relazione tra un certo attributo di R e un certo attributo di S L operazione di join si fonda sull esistenza delle relazioni tra le tabelle Esempio: Join R >< S B = E A B C aaa bbbb cccc eee xxxx qqq ddd www eee D ddd rrrr E bbbb xxxx A B C D E aaa bbbb cccc ddd bbbb eee xxxx eee rrrr xxxx 17

Tipi di Join Equijoin: la relazione è una relazione di uguaglianza (come esempio) Join naturale: si elimina la ridondanza eliminando uno dei due attributi (quello di S) A B C D E aaa bbbb cccc ddd bbbb eee xxxx eee rrrr xxxx Join e selezione L operazione di Join può essere vista come una sequenza di due operazioni semplici: 1. Prodotto cartesiano 2. Selezione delle ennuple per cui vale la condizione di join 18

A B C aaa bbbb cccc eee xxxx qqq ddd gggg eee D ddd rrrr E bbbb xxxx prodotto cartesian o A B C D E aaa bbbb cccc ddd bbbb eee xxxx qqq ddd bbbb ddd gggg eee ddd bbbb aaa bbbb cccc rrrr xxxx eee xxxx qqq rrrr xxxx ddd gggg eee rrrr xxxx select A B C D E aaa bbbb cccc ddd bbbb eee xxxx eee rrrr xxxx SQL Interrogare una base di dati con SQL 19

Tipi di operazioni: definire schema e inserire dati Tabelle Create Drop Alter Ennuple Insert Delete Update Definire tabelle creazione cancellazione modifica Manipolare i dati Inserire Cancellare Modificare Esempio: definire una tabella CREATE TABLE libri ( isbn varchar(15) NOT NULL, titolo varchar(50), autore varchar(50) NOT NULL, pubblicato_da varchar(50) NOT NULL, anno year(4) NOT NULL default '0000', PRIMARY KEY (isbn) ) 20

Vincoli SQL permette di porre vincoli sullo schema di una base di dati: CREATE TABLE nome_tabella ( PRIMARY KEY (nome_att_chiave), FOREIGN KEY (nome_att) REFERENCES nome_tabella_target (nome_att) ON DELETE ) Si può specificare comportamento che preserva integrità Inserimento dei dati Per inserire righe [ennuple] in una tabella [relazione] si usa il comando INSERT: INSERT INTO nome_tabella (att 1,, att n ) VALUES ( xxx,, yyy ) Attenzione nell inserimento: non è detto che il DSMS faccia rispettare i vincoli di integrità 21

Esempio INSERT INTO `libri` ( `isbn`, `titolo`, `autore`, `pubblicato_da`, `anno` ) VALUES ('ISBN 88-7192-22', 'Sistemi di basi di dati', 'R.E. Elmasri, S. B. Navathe', 'Pearson', '1999 ); Modificare dati Per modificare una riga (ennupla) di una tabella (relazione) si usa il comando UPDATE: UPDATE nome_tabella SET attr 1 = xxx,, att n = yyy WHERE condizione UPDATE libri SET autore = 'R.E. Elmasri e S. B. Navathe' WHERE isbn = 'ISBN 88-7192-22' 22

Operazioni di selezione Qui entra in gioco l algebra relazionale Struttura della selezione in 3 clausole: SELECT FROM WHERE attributi da includere tabella da cui prenderli condizione SELECT e algebra relazionale Il comando SELECT effettua una selezione delle righe di una certa tabella (FROM) in base a una condizione (WHERE) proietta il risultato in base agli attributi indicati in SELECT Il risultato è una tabella, ma può avere righe duplicate! 23

In pratica: FROM In pratica: selezione WHERE Righe che soddisfano la condizione 24

In pratica: proiezione SELECT Attributi da includere Righe che soddisfano la condizione Il comando SELECT Per porre la condizione in base alla quale si selezionano gli operatori si usano operatori di confronto SELECT titolo, autore FROM libro WHERE titolo = I promessi sposi 25

Operatori di confronto Qui il confronto avviene con un numero, non con una stringa SELECT titolo, autore FROM libro WHERE numero_pagine > 300 Seleziona i libri con più di 300 pagine Sfruttare le relazioni tra tabelle E possibile recuperare dati da più tabelle contemporaneamente basandosi sulle relazioni tra di esse (operazione JOIN) SELECT Autore, Titolo, Nome_Editore FROM Libri, Case_Editrici WHERE Editore = Nome_Editore Confronta le due tabella sulla base della relazione tra la colonna Editore di Libri e Nome_Editore di Case_Editrici 26

Condizione di Join Attraverso la clausola WHERE si può porre una condizione di join SELECT Autore, Titolo, Nome_Editore FROM Libri, Case_Editrici WHERE Editore = Nome_Editore AND Luogo = Roma Estrae solo i libri pubblicati a Roma Tabella.attributo Cosa succede se in tabelle diverse ci sono campi con lo stesso nome? SELECT Autore, Titolo, Editore FROM Libri, Case_Editrici WHERE Libri.Editore = Case_Editrici.Editore AND Luogo = Roma 27

Attento con quel prodotto cartesiano L operazione di prodotto cartesiano è rischiosa: Determina come risultato tabelle molto grandi (esplosione combinatoria) Si ha involontariamente in presenza di un join la cui condizione vale sempre Order by La clausola ORDER BY, aggiunta a una SELECT, permette di ordinare il risultato in base a un attributo SELECT Autore, Titolo, Nome_Editore, Data FROM Libri, Case_Editrici WHERE Editore = Nome_Editore ORDER BY Data Ordina il risultato in base alla data 28