Data Base Relazionali



Documenti analoghi
Vincoli di integrità

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

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

Elena Baralis 2013 Politecnico di Torino 1

MODELLO RELAZIONALE. Introduzione

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

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

Progettazione di Basi di Dati

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

Modulo 2 Data Base 2

Il Modello Relazionale

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Organizzazione degli archivi

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

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

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

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

BASI DI DATI - : I modelli di database

Il modello relazionale

Il Modello Relazionale

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

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

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

Sistemi Informativi e Basi di Dati

Progettazione di Database. Un Esempio

I Sistemi Informativi

Basi di dati. Le funzionalità del sistema non vanno però ignorate

database: modello entityrelationship

Definizione di domini

Informatica (Basi di Dati)

Il Modello Relazionale

Alessandra Raffaetà. Basi di Dati

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Informatica (Basi di Dati)

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

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

Il modello relazionale dei dati

Database. Si ringrazia Marco Bertini per le slides

Corso di Informatica (Basi di Dati)

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Progettaz. e sviluppo Data Base

DBMS (Data Base Management System)

Archivi e Basi di Dati

Dalla progettazione concettuale alla modellazione di dominio

DATABASE RELAZIONALI

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

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

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

I database. Cosa sono e a cosa servono i Database

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Il modello Entity-Relationship: elementi di base

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

TEORIA sulle BASI DI DATI

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Basi di Dati: Corso di laboratorio

Linguaggio SQL. Structured Query Language

MODELLO E/R. Modellazione dei dati

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Basi di Dati e Microsoft Access

Progettazione di un DB....in breve

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

Lezione 2. Il modello entità relazione

Corso sul linguaggio SQL

Operazioni sui database

Facoltà di Farmacia - Corso di Informatica

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

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Progettazione di un Database

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

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

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

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

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

Informatica per le discipline umanistiche 2 lezione 10

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

Rappresentazione grafica di entità e attributi

PROGRAMMA DI CLASSE 5AI

Access. P a r t e p r i m a

Capitolo 2. Esercizio 2.1. Esercizio 2.2

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

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

Basi di Dati. Programmazione e gestione di sistemi telematici

Gestione delle tabelle

Esercizio data base "Biblioteca"

Laboratorio di Basi di Dati e Web

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

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

Unità C1 Modello logico

Transcript:

Data Base Relazionali Modello Relazionale dei dati Basi di Dati Relazionali 1 Progettazione di DB METODOLOGIA DI PROGETTO IN TRE FASI Descrizione formalizzata e completa della realtà di interesse REALTA' DI INTERESSE PROGETTAZIONE CONCETTUALE SCHEMA CONCETTUALE PROGETTAZIONE LOGICA Modello dei dati adottato dal DBMS Specifica dei parametri fisici di memorizzazione e ricerca dei dati SCHEMA LOGICO PROGETTAZIONE FISICA SCHEMA FISICO Basi di Dati Relazionali 2

Progettazione di DB Relazionali Modello del Database (e.g., E/R) Schema Relazionale Supporto fisico di memoria Diagramma (E/R) Tabelle: nome delle colonne: attributi righe: tuple Organizzazione in file e file di indice Basi di Dati Relazionali 3 DB Relazionali: Strumenti MODELLI DI RAPPRESENTAZIONE CONCETTUALE Modello Entità-Relazioni METODOLOGIE DI PROGETTO Top-Down, Bottom-up METODI FORMALI DI OTTIMIZZAZIONE Processi di Normalizzazione (Ristrutturazione Tabelle) LINGUAGGI DEL DBMS RELAZIONALE SQL, Linguaggi Grafici, (definizione schemi relazionali, aggiunta, modifica e cancellazione dati, interrogazioni) Nome Birra FattaDa Indir Produt Nome Basi di Dati Relazionali 4

Relazioni Relazione Binaria A e B sono due insiemi (Domini); un sottoinsieme del prodotto cartesiano R A B notazioni alternative: (a,b) R a R b Esempio A {1,3,5}; B {2,4}; A B {(1,2), (1,4), (3,2), (3,4), (5,2), (5,4)} R {(1,2), (1,4), (5,2)} A {Famiglie}; B {Case}; R Relazione di proprietà Basi di Dati Relazionali 5 Relazioni Generalizzando R D 1 D 2 D 3... D N Grado della relazione: N Domini: D 1,D 2,D 3...D N Esempio Generalità {Nome} {Cognome} {Data nascita} {Città} Basi di Dati Relazionali 6

Dominio Un dominio è un insieme di valori scalari ed un nome che lo identifica: il nome di un dominio è univoco all interno di un database. Un dominio non è altro che un tipo di dati Un dominio rappresenta la più piccola unità di dati rappresentabile. I dati di un dominio sono scalari, sono atomici, non ulteriormente scomponibili Basi di Dati Relazionali 7 Domini e Attributi Dominio Tipo Troppo generico per la definizione semantica di una relazione Esempio Paternità {Nome} {Cognome} {Nome} Paternità {Char-String} {Char-String} {Char-String} Attributo Paternità {Nome-Padre} {Cognome} {Nome-Figlio} Basi di Dati Relazionali 8

Intestazione e corpo di una relazione Una Relazione R, su una collezione di domini D1,D2,, Dn consiste di due parti: intestazione» un insieme fisso di n attributi, o meglio di coppie <nome-attributo:nome-dominio>: {<A1:D1>, <A2:D2>,, <An:Dn>} corpo» Il corpo (body) consiste di un insieme di m tuple, dove ciascuna tupla è un insieme di coppie <nome-attributo:valore-attributo>: {<A1:vi1>, <A2:vi2>,, <An:vin>}, (i=1,2,, m) Basi di Dati Relazionali 9 Grado e Cardinalità di una relazione Il termine n èdetto grado della relazione Gli attributi A1,A2,, An di una relazione R sono tutti distinti! I domini non è detto... Il termine m èdetto cardinalità della relazione In ciascuna tupla c è una coppia <Aj:vij> per ciascun attributo Aj dell intestazione. Per ciascuna coppia <Aj:vij> vij è un valore dal dominio Dj che è associato all attributo Aj. Basi di Dati Relazionali 10

Tuple Una tupla è un mapping dai nomi degli attributi ai valori: Es: Prodotto {Nome} {Prezzo} {Categoria} {Produttore} Nome gizmo Prezzo $19.99 Categoria gadgets Produttore GizmoWorks Talora ci si riferisce ad una tupla come (attenzione all ordine degli attributi): (gizmo, $19.99, gadgets, GizmoWorks) o Prodotto (gizmo, $19.99, gadgets, GizmoWorks). Basi di Dati Relazionali 11 Relazioni e Tabelle Nome degli attributi Nome Prezzo Categoria Produttore gizmo $19.99 gadgets GizmoWorks Ferro da Stiro $29.99 elettrodomes Philips Autofocus $149.99 fotografia Canon Tuple Cinepresa $203.99 fotografia Hitachi Basi di Dati Relazionali 12

Ancora Terminologia Schema Relazionale: nome della relazione + nomi attributi + tipi degli attributi Istanza di una relazione: un insieme di tuple. Le tuple sono tutte diverse! Schema del Database: un insieme di schemi relazionali. Istanza di un Database: una istanza di relazione per ciascuna relazione nello schema. Basi di Dati Relazionali 13 Informazione incompleta e valori nulli In molti casi, i dati disponibili possono non corrispondere esattamente al formato previsto: ad esempio, in una relazione PERSONA(Cognome, Nome, Indirizzo, Telefono) il valore dell attributo telefono potrebbe non essere disponibile per tutte le tuple Non corretto rappresentare l assenza di informazione con un valore del dominio Soluzione: un valore speciale, detto NULL Basi di Dati Relazionali 14

Vincoli di Integrità In molti casi, non è vero che un qualsiasi insieme di tuple sullo schema rappresenti informazioni corrette ESAMI Studente Voto Lode Corso 200768 36 05 937653 28 lode 01 937653 30 lode 04 276545 25 01 Basi di Dati Relazionali 15 Vincoli di Integrità STUDENTI Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971 ESAMI Studente Voto Lode Corso 200768 36 05 937653 28 lode 01 937653 30 lode 04 276545 25 01 Basi di Dati Relazionali 16

Vincoli di Integrità Ogni vincolo può essere visto come un predicato, una funzione che associa ad ogni istanza il valore vero o falso se il predicato assume valore vero diciamo che l istanza soddisfa il vincolo in generale ad uno schema di base di dati vengono associati un insieme di vincoli e si considerano corrette (o lecite, o ammissibili) le istanze che soddisfano tutti i vincoli E possibile classificare i vincoli a seconda degli elementi della base dati che ne sono coinvolti Basi di Dati Relazionali 17 Vincoli Intrarelazionali e Interrelazionali Un vincolo è intra-relazionale se il suo soddisfacimento è definito rispetto a singole relazioni della base dati un vincolo di tupla è un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre» come caso particolare, un vincolo definito con riferimento a singoli valori viene detto vincolo su valori o vincolo di dominio Un vincolo è inter-relazionale se coinvolge più relazioni Basi di Dati Relazionali 18

Vincoli di tupla: esempi (VOTO >= 18) AND (VOTO <= 30) (VOTO = 30) OR (LODE IS NULL) PAGAMENTI(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute Basi di Dati Relazionali 19 Operatori di confronto A uguale a B A = B A diverso da B A <> B A maggiore di B A > B A minore di B A < B A maggiore o uguale a B A >= B A minore o uguale a B A <= B Basi di Dati Relazionali 20

Chiavi delle relazioni Un sottoinsieme S degli attributi dello schema di una relazione R è detto chiave di R se: Univocità: Nessuna istanza di R può possedere due tuple che abbiano gli stessi valori in tutti gli attributi di S Minimalità (o irriducibilità): Non esiste un sottoinsieme degli attributi di S che goda della proprietà precedente N.B. Un sottonsieme di attributi S che gode della proprietà di univocità ma non di quella di minimalità, viene detto superchiave di R Basi di Dati Relazionali 21 Chiavi candidate e chiavi primarie Una relazione può avere più chiavi: Chiave candidata: ogni possibile sottoinsieme di attributi che soddisfa le proprietà di univocità e minimalità Chiave primaria: la chiave adottata nell accesso a tuple della relazione (le altre chiavi vengono dette chiavi alternative) Un attributo si dice primo se fa parte di almeno una chiave Basi di Dati Relazionali 22

Chiavi: esempio STUDENTI Matricola Cognome Nome Data di Nascita Corso 4328 Rossi Luigi 29/04/59 Informatica 6328 Rossi Dario 29/04/59 Informatica 4766 Rossi Luca 01/05/61 Civile 4856 Neri Luca 01/05/61 Meccanica 5536 Neri Luca 05/03/58 Meccanica Matricola: è una chiave primaria (Cognome, Nome, Data di Nascita): èuna chiave (Matricola, Corso): è una superchiave (Nome, Corso): non è una superchiave Basi di Dati Relazionali 23 Chiavi: esempio STUDENTI Matricola Cognome Nome Data di Nascita Corso 6328 Rossi Dario 29/04/59 Informatica 4766 Rossi Luca 01/05/61 Civile 4856 Neri Luca 01/05/61 Meccanica 5536 Neri Luca 05/03/58 Civile NB: (Cognome, Corso): non è una chiave Le due proprietà di univocità e minimalità devono valere per tutte le possibili istanze di una relazione Basi di Dati Relazionali 24

Chiavi: esempio in una casa editrice AUTORI(NOME, DATA_NASCITA, INDIRIZZO, COD_FISC) LIBRI(CODICE, TITOLO, COSTO, GENERE, CONTRATTO) AUTORI-LIBRI(CF_AUTORE, COD_LIBRO) GENERE(GENERE, COLLOCAZIONE, RESPONSABILE) le chiavi AUTORI LIBRI AUTORI-LIBRI GENERE COD_FISC CODICE (CF_AUTORE, COD_LIBRO) GENERE Basi di Dati Relazionali 25 Chiavi e valori nulli Poiché in una relazione non vi possono essere due tuple uguali, ogni relazione ha almeno una chiave che consiste dell insieme di tutti i suoi attributi Poiché una chiave primaria è usata per accedere alle tuple della relazione i suoi attributi non possono assumere valori non specificati (valore NULL) Basi di Dati Relazionali 26

Creazione tabelle in ACCESS (DDL) chiave primaria Attributo Tipo e dimensione Vincolo di dominio Not Null Basi di Dati Relazionali 27 Vincoli di Tupla e Vincoli di Dominio Vincolo di tupla Vincolo di dominio Basi di Dati Relazionali 28

Vincoli di integrità referenziale (Chiavi esterne) Un vincolo di integrità referenziale tra un insieme di attributi X di una relazione R1 e un altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell istanza di R1 compaiono come valori della chiave (primaria) di un istanza di R2 L insieme di attributi X di R1 viene detto foreign key Se la chiave in questione ha più attributi allora la corrispondenza tra valori deve essere attributo per attributo Basi di Dati Relazionali 29 Chiavi esterne: esempio STUDENTI CORSI Matricola Cognome Nome Data di Nascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 937676 Bruni Mario 01/12/1971 Codice Titolo Docente 01 Ana lis i G ia ni 03 Chim ic a Me lli 04 Chim ic a Me lli ESAMI Studente Voto Lode Corso 200768 26 03 937653 28 01 937653 30 lode 04 Foreign keys Basi di Dati Relazionali 30

Foreign key: esempio AGENTI AUTO INFRAZIONI Matricola CF Cognome Nome 567 RSSM Rossi Mario 456 NRE L Ne ri Luigi 638 NREP Neri Piero Prov Numero P roprie ta rio Indiriz z o RM 2F7643 Verdi Pietro Via Tigli RM 1A2396 Verdi Piero Via Tigli RM 4E 5432 Bini Luc a Via Ac e ri MI 2F7643 Luci Gino Via Aceri Codice Data Agente Art Prov Numero 143256 25/10/92 567 44 RM 4E5432 987554 26/10/92 456 34 RM 4E5432 987555 26/10/92 456 34 RM 2F7643 630876 15/10/92 456 53 MI 2F7643 539856 12/10/92 567 44 MI 2F7643 Basi di Dati Relazionali 31 Chiavi esterne e Relazioni tra Tabelle Se gli attributi X di una tabella TB costituiscono una una chiave esterna per una tabella TA, allora esiste una relazione tra le due tabelle relazione uno a uno: ogni valore della chiave di TA compare al più una volta in TB. relazione uno a molti: ogni valore della chiave di TA può comparire più volte in TB. Basi di Dati Relazionali 32

Chiavi esterne: esempio STUDENTI MATRICOLA NOME COGNOME DATA DI NASCITA CORSI CODICE TITOLO DOCENTE 1 1 m m ESAMI STUDENTE VOTO LODE CORSO Basi di Dati Relazionali 33 Aggiornamenti Il database mantiene uno stato corrente, memorizzato su un qualche supporto informatico: dischi, cd, nastri,... Le operazioni elementari di aggiornamento dei dati sono: 1) aggiungere una tupla 2) cancellare una tupla 3) modificare un attributo in una tupla Questi sono gli aggiornamenti normali, frequenti. Aggiornare lo schema è raro e piuttosto doloroso. Basi di Dati Relazionali 34

Foglio Dati Basi di Dati Relazionali 35 Maschere Basi di Dati Relazionali 36

Integrità referenziale: Problemi Un valore di foreign key rappresenta un riferimento ad una tupla, detta target Bisogna assicurare che un database non include alcun valore di foreign key invalido (problema di integrità referenziale) Il vincolo che i valori di una data foreign key devono corrispondere a valori della chiave di una tupla è noto come vincolo di integrità referenziale Cosa succede se eliminiamo una tupla la cui chiave costitusce una foreign key per una tupla di un altra relazione? Basi di Dati Relazionali 37 Integrità referenziale: Regole Cosa dovrebbe succedere al tentativo di eliminare la tupla target referenziata da una foreign key? RESTRICTED: l operazione di eliminazione è ristretta alle situazioni in cui non c è una tale corrispondenza (è impedita negli altri casi) CASCADE: l operazione di eliminazione elimina in cascata le tuple che referenziano con chiavi esterne le tuple eliminate Le stesse regole si applicano ai tentativi di aggiornare il target (valori della chiave) referenziato da una foreign key Basi di Dati Relazionali 38

Integrità referenziale Aggiornamento, Eliminazione: Cascade /Restricted Basi di Dati Relazionali 39