Lezione 6
• Ricordiamo le fasi della progettazione di una
Base di Dati
Modello relazionale
Modello logico
•
Un tipo di modello logico che deriva da
concetti matematici.
•
Ha un proprio significato
•
Ha delle regole di derivazione facili
Associazione 1 a 1
•
L’associazione Uno a uno viene tradotta in una
unica relazione che contiene tutti gli attributi
della prima e della seconda
•
Diventa la chiave primaria una delle due chiavi
della relazione.
•
Gli attributi dell’associazione diventano
attributi della relazione
Esempio
Tabelle dei dati
Relazione
Persona
Persona(CF,Nome,cognome,datan,targa,modello,casa,data)
O Auto(CF,....,targa,....,data) (SE l’auto è facoltativa)
O Persona(CF,....., Targa,data) Auto(Targa, …...) (auto facol)
Persona(CF,.....,) Auto(Targa, …...,CF,data) (persona facol)
Attributo
Chiave Formato
Dimensione
CF
Pk
Alfanumerico
15
Opzioni
Cognome
Alfanumerico
30
Not Null
Nome
Alfanumerico
25
Not null
DataN
Data/ora
8
Luogo
Alfanumerico
20
Targa
Alfanumerico
9
Modello
Alfanumerico
10
Casa
Alfanumerico
10
Data
Data/ora
8
Not null
Not null
Tipi di dato
Cosa mettere nelle opzioni
Tipo
Descrizione
Varchar(n)
Parole di lunghezza fino a N
Char(N)
Parole di lunghezza N fissa
Char
carattere
Bit
Tipo booleano
Integer o int
Intero
Integer (n) o int (n)
Intero con massino N cifre
Real
Reale
Decimal (P,D)
Decimale con p parte intero d parte decimale
Date
Date (AA/mm/gg)
Time
Ora 10:34:25:42
Ora, minuti, secondi, millisecondi
Definito dall’utente
L’utente da il valore che può assumere il campo
•
•
•
–
–
–
–
•
•
•
Se sono all’interno di un intervallo
Se devono assumere valori particolari
Se devono avere valori unici
Se esistono vincoli particolari
Esempio
Associazione 1 a N
•
Default : un valore che il campo deve avere
nel caso non venga inserito.
Not null : quando il campo deve avere un
valore
Vincoli di integrità sui dati (vincoli interni)
L’associazione Uno a N viene tradotta in due
relazioni
La prima relazione deriva dall’entità che sta nella
associazione a 1
La seconda relazione deriva dall’entità che sta
nella associazione ad N con l’aggiunta come
attributo di un campo (chiave esterna) che
rappresenta la chiave primaria dell’entità che sta
ad 1 . Vanno aggiunti come cmapi tutti gli
attributi dell’associazione
La chiave esterna deve essere definita“non null”
se nell’associazione l’entità a 1 è obbligatoria.
Persona(CF,Nome,cognome,datan)
Auto(Targa,modello,casa,data,CF)
Tabelle dei dati
Relazione
Persona
Relazione
Auto
Attributo
Chiave Formato
Dimensione
CF
Pk
Alfanumerico
15
Cognome
Alfanumerico
30
Not Null
Nome
Alfanumerico
25
Not null
DataN
Data/ora
8
•
Chiave Formato
Dimensione
Opzioni
Targa
Pk
Alfanumerico
9
Not null
Modello
Alfanumerico
10
Casa
Alfanumerico
10
Data
Data/ora
8
Not null
Alfanumerico
9
Not null (?)
FK
•
•
•
Attributo
Cf
Associazione N a N
Opzioni
L’associazione N a N viene tradotta in Tre relazioni
La prima relazione deriva dalla prima
La seconda relazione deriva dalla seconda
La terza ha
– come nome il nome dell’associazione
– come attributi le chiavi primarie delle relazioni
precedenti e tutti gli attributi dell’associazione
– La chiave di solito è:
•
L’insieme delle chiavi delle altre associazioni
•
Alle volte serve aggiungere altri campi
Tabelle dei dati
Esempio
Relazione
Persona
Relazione
Auto
Persona(CF,Nome,cognome,datan)
Auto(Targa,modello,casa)
Acquista(Targa,CF, data)
Relazione
Acquista
Attributo
Chiave Formato
Dimensione
CF
Pk
Alfanumerico
15
Cognome
Alfanumerico
30
Not Null
Nome
Alfanumerico
25
Not null
DataN
Data/ora
8
Attributo
Chiave Formato
Dimensione
Targa
Pk
Alfanumerico
9
Modello
Alfanumerico
10
Casa
Alfanumerico
10
Attributo
Chiave Formato
Dimensione
Targa
Pk/Fk
Alfanumerico
9
CF
Pk/FK
Alfanumerico
10
Data/ora
10
Data
Opzioni
Opzioni
Opzioni
CASO N:N
ASSOCIAZIONE RICORSIVA
CASO 1:N
Si risolve come una normale associazione 1:n solo che avremo una sola
tabella avendo una sola entità
Dipendenti(Matricola, nome,cognome,datanascita,supervisore)
Esempio di associazione N:N:N
PRODOTTI (Codice, Nome, Costo)
COMPOSIZIONI (Composto, Componente, Quantità)
Composto e componente sono codici di prodotti
La teoria
•
La teoria si basa sul concetto di relazione tra insiemi.
•
Una relazione R su una sequenza di insiemi
D1, D2, D3 … DN (non necessariamente distinti)
è un sottoinsieme finito del prodotto cartesiano
D1 x D2 x D3 … x DN
che è possibile esprimere con:
R ⊆ D1 x D2 x D3 … x DN
•
N (N ≥ 1) è detto grado della relazione.
•
Gli insiemi D sono detti domini della relazione e
ciascuno di essi può essere un insieme composto da
dati di tipo elementare (per esempio: carattere,
booleano, numerico).
•
A ogni dominio è associato un attributo, che lo
identifica univocamente all’interno della relazione
Codice
Nome
Libretto
Materia
D ocente
Nome
N
Insegna
M
Studente
K
Codice
Descrizione
Aula
Docente(Codice,nome,materia)
Studente(libretto,nome)
Aula(Codice, descrizione)
Insegna(Codice,libretto,aula)
COMPONENTE
COMPOSTO
SUPERVISORE
COLLABORATORE
Consideriamo 2 insiemi
•
Modello={Panda,Idea,C2,C3}
•
Costruttore={Citroen,Fiat}
Il prodotto cartesiano ModelloxCostruttore è
l’insieme delle coppie (x,y) dove x appartiene al
primo insieme e y al secondo.
Otterremo quindi:
Modello x Costruttore=
{(Panda, citroen), (Panda, Fiat), (Idea, Citroen),
(Idea, Fiat), (C2,Citroen), (C2, Fiat), (C3, Citroen) ,
(C3, Fiat) }
Nomi
colonne
A
B
…………………
C
cardinalità
righe
Grado
•
•
•
•
•
L’insieme dei valori che possono essere presenti in
una colonna è detta dominio.
Il numero delle colonne è detto grado.
Il numero delle righe è detto cardinalità.
La relazione Prodottoda è una relazione di grado2 e
cardinalità 4.
La relazione rappresenta un’entità ogni t-pla
rappresenta un’istanza dell’entità , le colonne
contengono i valori assunti dagli attributi.
ESEMPIO
La relazione può essere rappresentata mediante una
tabella che ha tante righe quanti sono gli elementi
della relazione e tante colonne quanti sono gli
insiemi coinvolti.
Prodottoda
MODELLO
COSTRUTTORE
C2
Citroen
C3
Citroen
Panda
Fiat
Idea
Fiat
Oppure possiamo scrivere:
Prodottoda(Modello,Costruttore) indicando la
struttura della tabella.
Nel modello relazionale un database è una collezione
di tabelle.
Scarica

M8U4 - relazionale