Progettazione logica: Il modello relazionale

Slides:



Advertisements
Presentazioni simili
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Advertisements

STUDENTE: Arianna Carucci matricola
Database: Personal Library 2°Compito Abilità Informatiche Av. Docente: Prof. A.Marengo Studente: Leonardo Ciriello Matr Università Degli Studi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
La progettazione concettuale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Progettazione di una base di dati relazionale
Database Accesso Utenti diversi Programmi diversi Modelli di database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le operazioni relazionali
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le Basi di dati: progettazione concettuale.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
ODMG.
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
PROGETTAZIONE CONCETTUALE
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Microsoft Office Access
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Progettazione di una base di dati relazionale
Basi di Dati: Introduzione
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrità referenziale
La normalizzazione delle relazioni
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Progettazione Concettuale: Il modello Entità-Relazioni
Gli schemi concettuali
OBJECT ORIENTED DATABASE
Basi di dati - Fondamenti
Progettazione concettuale
Partizionamento/accorpamento di concetti
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL per la modifica di basi di dati
Le basi di dati: progettazione concettuale.
OGGETTO E TIPO DI OGGETTO
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Dipendenze funzionali
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Il modello relazionale
Progettazione di una base di dati
Selezione e Proiezione
Il questionario: progettazione e redazione II Modulo
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Progettazione logica: Il modello relazionale Eugenio Di Sciascio

Introduzione Basato sul lavoro di Codd (~1970) E’ attualmente il modello più utilizzato nel mondo dei database (Oracle, Informix, IBM, Microsoft, etc.) E’ basato su una struttura dati semplice ed uniforme, la relazione. Ha solide basi teoriche.

Concetti base del modello Una base di dati è rappresentata come una collezione di relazioni. Possiamo informalmente considerare una relazione come una tabella. Ciascuna riga rappresenta una collezione di valori di dati tra loro collegati Il nome della relazione e quelli delle colonne consentono di comprendere il significato dei valori delle righe. Tutti i valori di una colonna sono del medesimo tipo, appartengono cioè ad un medesimo dominio. Nome Cognome Mario Rossi Piero Bianchi Matr. 119310 514222 Studente

Concetti base del modello (2) Dominio: un insieme di valori atomici, cioè indivisibili. Es.: voti_università: valori tra 0 e 30. nomi_propri: l’insieme dei nomi di persona. A ciascun dominio si associa un tipo di dato o formato. Es: voti_università: interi tra 0 e 30 nomi_propri: stringhe di caratteri rappresentanti nomi propri.

Concetti base del modello (3) Schema o intensione di una relazione R: è specificato come un nome R e una lista di attributi (A1, A2,..,An). Ciascun attributo Ai corrisponde ad un dominio D(Ai) nello schema relazionale. Es.: Studente(nome, cognome, matricola, data_nascita,data_immatr) Grado della relazione: numero di attributi. Istanza o estensione di R: r(R), è un insieme di tuple r=(t1, t2,..,tm). Ciascuna tupla t è una lista ordinata di valori t=<v1, v2, .., vn); ciascun valore vi  dom(Ai)null (dove null rappresenta uno speciale valore, sconosciuto, inapplicabile). Cardinalità: il numero di tuple nella estensione r(R).

Note sulla definizione Le tuple sono definite come insieme. Ciò implica l’assenza di un particolare ordinamento sulle tuple stesse. I valori all’interno di una tupla sono stati definiti come “lista ordinata”, quindi esiste un ordinamento. N.B. Le relazioni sono definite a livello logico, quindi ha senso non avere ordinamento predefinito sulle tuple; è inoltre possibile, fornendo una diversa definizione di tupla, prescindere anche dall’ordinamento all’interno della tupla stessa. Intuitivamente è sufficiente considerare ogni valore all’interno della generica tupla direttamente associato al nome di attributo corrispondente. Nome Cognome Mario Rossi Piero Bianchi Matr. 119310 514222 Studente Studente Nome Cognome Piero Bianchi Mario Rossi Matr. 514222 119310

Note sulla definizione (2) E’ possibile interpretare uno schema di relazione come una dichiarazione o asserzione: ciascuna tupla può essere pertanto vista come un esempio di asserzione. E’ anche possibile interpretare uno schema di relazione come un predicato: i valori di ciascuna tupla soddisfano il predicato.

Vincoli del modello Vincolo di dominio: i valori di ciascun attributo sono valori atomici appartenenti al corrispondente dominio. Vincolo di chiave: per ogni relazione R esiste un sottoinsieme di attributi sk tale che t1sk]t2[sk]. Il sottoinsieme sk dicesi superchiave. Dicesi chiave un sottoinsieme di attributi che goda della ulteriore proprietà di essere minimo, cioè privo di attributi ridondanti. Es.: studente(nome, cognome, matricola, data_nascita) Il sottoinsieme nome, cognome, matricola è superchiave, come pure cognome, matricola. Matricola è chiave (non ridondante) In genere possono esserci più sottoinsiemi di attributi che verificano le due proprietà: chiavi candidate La chiave designata è detta chiave primaria.

Vincoli del modello (2) Integrità di entità: nessuna chiave primaria può assumere valore null. Integrità referenziale: una tupla in una relazione R1 che si riferisca ad un’altra relazione R2 deve riferirsi ad una tupla esistente in R2. Il precedente vincolo è normalmente espresso mediante il concetto di chiave esterna (foreign key). Un sottoinsieme di attributi FK di una relazione R1 è una chiave esterna se: Gli attributi di FK hanno lo stesso dominio degli attributi della chiave primaria PK di un’altra relazione R2 Un valore di FK in una tupla t1 di R1 o è presente identicamente come valore di PK di qualche tupla t2 in R2 o è nullo. Nel primo caso si avrà t1[FK]=t2[PK] e si dice che t1 referenzia t2.

Esempio Impiegato Dipartimento Sedi_dip Progetto Lavora_su Famigliare Nome Cognome Superio_id Id_dip Data_n indirizzo CF Stip_annuo Impiegato Dipartimento DipNome Id_dip Dir_dip Data_inizio Sedi_dip Id_dip Indirizzo Progetto Nome_prog N_prog Sede Id_dip Lavora_su CF N_prog Ore_lav Famigliare CFI Nome sesso Data_n

Mapping E-R relazionale Creare una relazione per ogni entità con gli attributi semplici della stessa entità, scegliendo come chiave primaria una delle chiavi dell’entità. Per le entità deboli, creare una relazione con gli attributi dell’entità e includere, inoltre, come chiave esterna, la chiave primaria dell’entità “proprietaria”. La chiave primaria della nuova relazione sarà la combinazione della chiave esterna più la chiave parziale.

Mapping E-R relazionale (2) Per ogni associazione binaria 1:1, identificare le entità partecipanti S e D. Scegliere una entità S con partecipazione totale ed includere in essa, come chiave esterna, la PK di D. Includere in S anche eventuali attributi dell’associazione. Per ogni associazione binaria 1:N, identificare le entità partecipanti. Scegliere l’ entità S dal lato N ed includere in essa, come chiave esterna, la PK dell’altra. Includere in S anche eventuali attributi dell’associazione.

Mapping E-R relazionale (3) Per ogni associazione R di tipo M:N creare una nuova relazione R. Includere le chiavi esterne delle entità partecipanti; la loro combinazione formerà la PK di R; includere eventuali attributi di R. Per ogni attributo multivalore A, creare una nuova relazione che include A e la chiave primaria della entità di partenza come chiave esterna. La PK sarà la combinazione della chiave esterna e di A.

Mapping E-R relazionale (4) Per ogni associazione con grado > 2 creare una nuova relazione. Includere come chiavi esterne le PK delle entità partecipanti nonché eventuali attributi dell’associazione. La PK sarà la combinazione delle chiavi esterne.