Upload
beppe-cavallaro
View
212
Download
0
Embed Size (px)
Citation preview
1
Progettazione di un database
di Scaraggi Grazia
2
Analisi dei requisitiSi vuole automatizzare la gestione del
prestito libri di una biblioteca
A tale scopo bisognerà memorizzare i dati relativi a:AmiciLibri Prestiti
3
Schema Entità-Relazioni
Amici
Libri
Prestiti
N
N
1 : N
N :
1
4
Progettazione ConcettualeEntità:
Amici
Attributi:IdAmiciNomeTelefono
5
Progettazione ConcettualeEntità:
Libri
Attributi:IdLibriTitoloAutore
6
Progettazione ConcettualeDefinizione delle relazioniDalla relazione N : N deriva una ulteriore entità
(Prestiti) i cui attributi saranno i seguenti:IdPrestitiCampo link alla tabella Amici : definisce il nome(o
soprannome) della persone che ha preso in prestito il libro
Campo link alla tabella Libri : definisce il libro preso in prestito
DataRestituzione
7
Progettazione ConcettualeDefinizione delle relazioniTabella:
Amici
Nome Campo
Tipo Campo
Dimensione
Vincoli Note
IdAmici Numerico Intero lungo
Primary key
Nome Testo 20 Not null
Telefono Numerico 15 Not null
8
Progettazione ConcettualeDefinizione delle relazioniTabella:
Libri
Nome Campo
Tipo Campo
Dimensione
Vincoli Note
IdLibri Numerico Intero lungo
Primary key
Titolo Testo 20 Not null
Autore Testo 15 Not null
9
Progettazione ConcettualeDefinizione delle relazioniTabella:
Prestiti
Nome Campo Tipo Campo
Dimensione
Vincoli Note
IdPrestiti Numerico
Intero lungo
Primary key
FkAmiciPrestiti
Numerico
Intero lungo
Foreign key
Link alla tabella Amici
FkLibriPrestiti Numerico
Intero lungo
Foreign key
Link alla tabella Libri
DataRestituzione
Data/ora Not null
10
Schema logico
11
Esempio di DML : QueryRichiesta:
Si vogliono visualizzare i libri presi in prestito dall’ amica “Grazia”.
12
Esempio di DML : QBE(Query by example)
13
Esempio di DML : Query SqlSELECT Titolo, Autore
FROM Libri, Amici, PrestitiWHERE Nome=“NomeAmico”and IdAmici=FkAmiciPrestitiand IdLibri=FkLibriPrestiti
14
Risultato query
15
16
Esercizio n.2
Reparti
Pazienti
Medici
Ricoveri
1 : NN
: 1
1 : 1
17
Le chiavi primarie potrebbero essere:Cod per l’entità Reparti;Cod per l’entità Pazienti;Paziente e Inizio per l’entità Ricoveri;Matr per l’entità Medici.
Nell’ entità Ricoveri poniamo, come chiave, anche la voce
Inizio, supponendo che ogni paziente non possa essere
ricoverato due volte nello stesso giorno.
18
Le chiavi secondarie potrebbero essere:Reparto per l’entità Ricoveri campo link
all’entità RepartiReparto per l’entità Medici campo link
all’entità RepartiPrimario per l’entità Reparti campo link
all’entità Medici
19
I vincoli di integrità referenziale, invece, sono :tra l’attributo Paziente di Ricoveri e la
relazione Pazienti;tra Reparto di Ricoveri e Reparti;tra Reparto di Medici e Reparti;tra Primari di Reparti e Medici.
20
I valori nulli possono essere inseriti in tutti quei campi diversi dalla chiave primaria, quindi dai seguenti attributi:Nome di Reparti;Cognome, Nome di Pazienti;Fine di Ricoveri;Nome, Cognome di Medici.