Basi di Dati
Alan Giacomin
Maggio 2009
Alan Giacomin Basi di Dati Maggio 2009 1 / 54
Basi di dati
1 Raccolta e analisi requisiti
Raccolta requisiti
Requisiti strutturati
Schema ER
2 Ristrutturazione
Generali...
Raccolta e analisi requisiti Raccolta requisiti
Raccolta requisiti
Mini-mondo
Colloqui
Questionari
Dati raccolti a livello...
Raccolta e analisi requisiti Raccolta requisiti
Esempio - Raccolta requisiti
Una società vuole gestire l’attività
di video...
Raccolta e analisi requisiti Requisiti strutturati
Requisiti strutturati
Suddivisione per concetti
Raggruppamento per fras...
Raccolta e analisi requisiti Requisiti strutturati
Esempio - Requisiti strutturati
Per video rappresentiamo
un codice iden...
Raccolta e analisi requisiti Schema ER
Schema ER
Spiegazione generale
Dai concetti alle entità
Buon punto di inizio
Prime ...
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (1)
Per video rappresentiamo un codice identificatore, titolo, d...
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (2)
Per utente rappresentiamo cf, cognome, nome. Ogni utente ha...
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (3)
Per noleggio rappresentiamo un codice, il video, l’utente, ...
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (4)
Non è specificato ma si suppone che nel tempo lo stesso vide...
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (5)
Alan Giacomin Basi di Dati Maggio 2009 15 / 54
Raccolta e analisi requisiti Schema ER
Esempio - Schema ER (6)
Regole di vincolo
Un video non deve essere noleggiato se un...
Ristrutturazione Generalizzazioni
Generalizzazioni
Ristrutturazione necessaria in quanto non sono traducibili a livello
lo...
Ristrutturazione Generalizzazioni
Generalizzazioni
Alan Giacomin Basi di Dati Maggio 2009 19 / 54
Ristrutturazione Generalizzazioni
Generalizzazioni (Figlie -> Padre)
Si sceglie quando l’applicazione accede maggiormente ...
Ristrutturazione Generalizzazioni
Generalizzazioni (Figlie -> Padre)
Alan Giacomin Basi di Dati Maggio 2009 21 / 54
Ristrutturazione Generalizzazioni
Generalizzazioni (Padre -> Figlie)
Si sceglie quando si accede spesso ad un dettaglio ri...
Ristrutturazione Generalizzazioni
Generalizzazioni (Padre -> Figlie)
Alan Giacomin Basi di Dati Maggio 2009 23 / 54
Ristrutturazione Generalizzazioni
Generalizzazioni (Associazioni)
Si sceglie quando l’applicazione accede equamente al pad...
Ristrutturazione Generalizzazioni
Generalizzazioni (Associazioni)
Alan Giacomin Basi di Dati Maggio 2009 25 / 54
Ristrutturazione Generalizzazioni
Generalizzazioni (Composizione)
Si sceglie per combinare pro e contro di tecniche differ...
Ristrutturazione Generalizzazioni
Generalizzazioni (Composizione)
Alan Giacomin Basi di Dati Maggio 2009 27 / 54
Ristrutturazione Generalizzazioni
Esempio - Generalizzazione
Nel nostro esempio abbiamo una generalizzazione di Video che ...
Ristrutturazione Generalizzazioni
Esempio - Generalizzazione
Alan Giacomin Basi di Dati Maggio 2009 29 / 54
Ristrutturazione Ridondanze
Ridondanze
Sono utili perchè in fase di visualizzazione un dato è facilmente
accessibile senza...
Ristrutturazione Ridondanze
Tavole volumi
Stima grandezza base di dati
Aiutano l’analisi
Entità Volume
AAA 10
BBB 20
CCC 1...
Ristrutturazione Ridondanze
Esempio - Tavole volumi
Supponiamo di avere 500 video disponibili e 200 utenti. Ogni utente
no...
Ristrutturazione Ridondanze
Tavole delle operazioni
Evidenzia le operazioni più frequenti
Permette di trovare le operazion...
Ristrutturazione Ridondanze
Esempio - Tavole delle operazioni
Nel nostro esempio possiamo ipotizzare le seguenti operazion...
Ristrutturazione Ridondanze
Tavola degli accessi
Utili nelle analisi delle ridondanze nelle singole operazioni
Vengono uti...
Ristrutturazione Ridondanze
Tavola degli accessi
Ipotizziamo un inserimento in AAA con un codice preso in BBB (20
elementi...
Ristrutturazione Ridondanze
Esempio - Tavole degli accessi
Tra le nostre operazioni solo due agisono sulla ridondanza pres...
Ristrutturazione Ridondanze
Esempio - Tavole degli accessi
OP3 con ridondanza OP3 senza ridondanza
Concetto Tipo Accessi
V...
Ristrutturazione Ridondanze
Esempio - Tavole degli accessi
OP4 con ridondanza OP4 senza ridondanza
Concetto Tipo Accessi
V...
Ristrutturazione Ridondanze
Esempio - Tavole degli accessi
Riassumendo...
Con ridondanza Senza ridondanza
OP3 6570
OP4 600...
Ristrutturazione Schema ER ristrutturato
Schema ER ristrutturato
Alan Giacomin Basi di Dati Maggio 2009 43 / 54
Ristrutturazione Schema logico
Schema logico
Alan Giacomin Basi di Dati Maggio 2009 45 / 54
Implementazione SQL Creazione tabelle
Tabella Video
CREATE TABLE video (
codice INTEGER,
titolo VARCHAR(255),
durata INTEG...
Implementazione SQL Creazione tabelle
Tabella Tessera
CREATE TABLE tessera (
codice INTEGER,
importo FLOAT,
PRIMARY KEY (c...
Implementazione SQL Creazione tabelle
Tabella Utente
CREATE TABLE utente (
cf CHAR(15),
cognome VARCHAR(255),
nome VARCHAR...
Implementazione SQL Creazione tabelle
Tabella Noleggio
CREATE TABLE noleggio (
codice INTEGER,
ritiro DATE,
consegna DATE,...
Implementazione SQL Interrogazioni
Interrogazioni
Visualizzazione informazioni video
SELECT v.codice, titolo, COUNT(*) AS ...
Implementazione SQL Interrogazioni
Interrogazioni
Visualizzazione noleggi di Bianchi Silvio
SELECT DISTINCT titolo
FROM vi...
Implementazione SQL Interrogazioni
FINE
Autore
Alan Giacomin
Contatti
email: alan.giacomin@gmail.com
web: http://easyprog....
Upcoming SlideShare
Loading in …5
×

Basi dati stampa

372 views

Published on

Breve introduzione alla creazione di una base di dati

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
372
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Basi dati stampa

  1. 1. Basi di Dati Alan Giacomin Maggio 2009 Alan Giacomin Basi di Dati Maggio 2009 1 / 54
  2. 2. Basi di dati 1 Raccolta e analisi requisiti Raccolta requisiti Requisiti strutturati Schema ER 2 Ristrutturazione Generalizzazioni Ridondanze Schema ER ristrutturato Schema logico 3 Implementazione SQL Creazione tabelle Interrogazioni Alan Giacomin Basi di Dati Maggio 2009 2 / 54
  3. 3. Raccolta e analisi requisiti Raccolta requisiti Raccolta requisiti Mini-mondo Colloqui Questionari Dati raccolti a livello informale Sinonimi Concetti non chiari Alan Giacomin Basi di Dati Maggio 2009 4 / 54
  4. 4. Raccolta e analisi requisiti Raccolta requisiti Esempio - Raccolta requisiti Una società vuole gestire l’attività di videonoleggio. I video noleg- giabili possono essere cd o dvd e sono identificabili attraverso un codice, oltre ad avere un proprio titolo e dati relativi alla durata e qualità. Possono noleggiare film solamente i possessori di tessera ricaricabile dalla quale alla con- segna viene scalato un importo in base al tempo passato dal ritiro. Le tessere sono personali dell’u- tente che ne richiede una. Dei clienti si desidera tenere traccia dei suoi dati anagrafici (cf, cogno- me, nome). Di ciascun video no- leggiato memorizziamo un codi- ce, l’utente noleggiante e l’impor- to pagato. Per tutti i video si vuo- le conoscere il numero di noleg- gi effettuati. Un video non può essere noleggiato da più utenti contemporaneamente. Alan Giacomin Basi di Dati Maggio 2009 5 / 54
  5. 5. Raccolta e analisi requisiti Requisiti strutturati Requisiti strutturati Suddivisione per concetti Raggruppamento per frasi Struttura frasi standard “Per <concetto> rappresentiamo ...” Alan Giacomin Basi di Dati Maggio 2009 7 / 54
  6. 6. Raccolta e analisi requisiti Requisiti strutturati Esempio - Requisiti strutturati Per video rappresentiamo un codice identificatore, titolo, durata e qualità. Si vuole conoscere anche il numero di volte che è stato noleggiato. Possono essere cd o dvd. Più utenti non possono noleggiare lo stesso video assieme. Per utente rappresentiamo cf, cognome, nome. Ogni utente ha una tessera. Per noleggio rappresentiamo un codice, il video, l’utente, data e ora del ritiro e consegna. Per tessera rappresentiamo un codice identificativo, l’utente possessore ed il credito residuo. Alan Giacomin Basi di Dati Maggio 2009 8 / 54
  7. 7. Raccolta e analisi requisiti Schema ER Schema ER Spiegazione generale Dai concetti alle entità Buon punto di inizio Prime associazioni Immediate Cardinalità ricavate dai requisiti Analizzare bene i requisiti strutturati e terminare lo schema Documentare quanto non rappresentabile Vincoli Derivazioni/ridondanze Documentare scelte per punti non espressi nei requisiti Attenersi a quel che viene richiesto, non si aggiunge niente (ad esempio gestione ricariche) Alan Giacomin Basi di Dati Maggio 2009 10 / 54
  8. 8. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (1) Per video rappresentiamo un codice identificatore, titolo, durata e qualità. Si vuole conoscere anche il numero di volte che è stato noleggiato. Possono essere cd o dvd. Alan Giacomin Basi di Dati Maggio 2009 11 / 54
  9. 9. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (2) Per utente rappresentiamo cf, cognome, nome. Ogni utente ha una tessera. Per tessera rappresentiamo un codice identificativo, l’utente possessore ed il credito residuo. Alan Giacomin Basi di Dati Maggio 2009 12 / 54
  10. 10. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (3) Per noleggio rappresentiamo un codice, il video, l’utente, data e ora del ritiro e consegna. Alan Giacomin Basi di Dati Maggio 2009 13 / 54
  11. 11. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (4) Non è specificato ma si suppone che nel tempo lo stesso video viene noleggiato più volte. Analogamente si suppone che un utente effettui più noleggi. Alan Giacomin Basi di Dati Maggio 2009 14 / 54
  12. 12. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (5) Alan Giacomin Basi di Dati Maggio 2009 15 / 54
  13. 13. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (6) Regole di vincolo Un video non deve essere noleggiato se un utente lo ha già noleggiato ed ancora non consegnato Regole di derivazione Il numero di noleggi per un video si ottiene contando il numero di occorrenze di Noleggio a cui Video partecipa. Alan Giacomin Basi di Dati Maggio 2009 16 / 54
  14. 14. Ristrutturazione Generalizzazioni Generalizzazioni Ristrutturazione necessaria in quanto non sono traducibili a livello logico Si possono rimuovere adottando più tecniche Accorpamento entità figlie nel padre Accorpamento entità padre nelle figlie Sostituzione generalizzazione con associazioni Composizione delle precedenti Alan Giacomin Basi di Dati Maggio 2009 18 / 54
  15. 15. Ristrutturazione Generalizzazioni Generalizzazioni Alan Giacomin Basi di Dati Maggio 2009 19 / 54
  16. 16. Ristrutturazione Generalizzazioni Generalizzazioni (Figlie -> Padre) Si sceglie quando l’applicazione accede maggiormente al concetto generale anzichè ai singoli sottotipi + minor numero di accessi - presenza di valori nulli - aggiunta attributo (tipo) - aggiunta regola di vincolo Alan Giacomin Basi di Dati Maggio 2009 20 / 54
  17. 17. Ristrutturazione Generalizzazioni Generalizzazioni (Figlie -> Padre) Alan Giacomin Basi di Dati Maggio 2009 21 / 54
  18. 18. Ristrutturazione Generalizzazioni Generalizzazioni (Padre -> Figlie) Si sceglie quando si accede spesso ad un dettaglio rispetto all’intero concetto Porre attenzione se la generalizzazione non è totale + assenza valori nulli + minor numero di accessi - duplicazione associazioni legate al padre Alan Giacomin Basi di Dati Maggio 2009 22 / 54
  19. 19. Ristrutturazione Generalizzazioni Generalizzazioni (Padre -> Figlie) Alan Giacomin Basi di Dati Maggio 2009 23 / 54
  20. 20. Ristrutturazione Generalizzazioni Generalizzazioni (Associazioni) Si sceglie quando l’applicazione accede equamente al padre ed alle figlie + assenza valori nulli - maggior numero di accessi - aggiunta attributo (tipo) - aggiunta regola di vincolo Alan Giacomin Basi di Dati Maggio 2009 24 / 54
  21. 21. Ristrutturazione Generalizzazioni Generalizzazioni (Associazioni) Alan Giacomin Basi di Dati Maggio 2009 25 / 54
  22. 22. Ristrutturazione Generalizzazioni Generalizzazioni (Composizione) Si sceglie per combinare pro e contro di tecniche differenti Ad esempio accorpare una figlia nel padre e creare un’associazione tra la seconda figlia ed il padre Alan Giacomin Basi di Dati Maggio 2009 26 / 54
  23. 23. Ristrutturazione Generalizzazioni Generalizzazioni (Composizione) Alan Giacomin Basi di Dati Maggio 2009 27 / 54
  24. 24. Ristrutturazione Generalizzazioni Esempio - Generalizzazione Nel nostro esempio abbiamo una generalizzazione di Video che si suddivide in cd e dvd Le entità figlie non sono particolarmente interessate dall’applicazione Le entità figlie non hanno attributi propri Si sceglie quindi di accorpare le figlie nel padre Alan Giacomin Basi di Dati Maggio 2009 28 / 54
  25. 25. Ristrutturazione Generalizzazioni Esempio - Generalizzazione Alan Giacomin Basi di Dati Maggio 2009 29 / 54
  26. 26. Ristrutturazione Ridondanze Ridondanze Sono utili perchè in fase di visualizzazione un dato è facilmente accessibile senza tanti conti In fase di inserimento dati è necessario ricordare di aggiornare tali valori Tenere o lasciare le ridondanze? Alan Giacomin Basi di Dati Maggio 2009 31 / 54
  27. 27. Ristrutturazione Ridondanze Tavole volumi Stima grandezza base di dati Aiutano l’analisi Entità Volume AAA 10 BBB 20 CCC 15 Alan Giacomin Basi di Dati Maggio 2009 32 / 54
  28. 28. Ristrutturazione Ridondanze Esempio - Tavole volumi Supponiamo di avere 500 video disponibili e 200 utenti. Ogni utente noleggia una media di 5 video. Entità Volume Utente 200 Video 500 Tessera 200 Noleggio 1000 Alan Giacomin Basi di Dati Maggio 2009 33 / 54
  29. 29. Ristrutturazione Ridondanze Tavole delle operazioni Evidenzia le operazioni più frequenti Permette di trovare le operazioni che incidono sulle ridondanze Descrizione Frequenza OP1 Memorizzare un dato in AAA 1/giorno OP2 Visualizzare tutti i dati di BBB 1/mese Alan Giacomin Basi di Dati Maggio 2009 34 / 54
  30. 30. Ristrutturazione Ridondanze Esempio - Tavole delle operazioni Nel nostro esempio possiamo ipotizzare le seguenti operazioni. Descrizione Frequenza OP1 Inserire nuovo utente 1/giorno OP2 Inserire nuovo video 1/mese OP3 Noleggiare un video 3/giorno OP4 Visualizzare info video 1/mese Alan Giacomin Basi di Dati Maggio 2009 35 / 54
  31. 31. Ristrutturazione Ridondanze Tavola degli accessi Utili nelle analisi delle ridondanze nelle singole operazioni Vengono utilizzate per ricavare il numero totale di accessi Gli accessi in scrittura vengono contati doppi Alan Giacomin Basi di Dati Maggio 2009 36 / 54
  32. 32. Ristrutturazione Ridondanze Tavola degli accessi Ipotizziamo un inserimento in AAA con un codice preso in BBB (20 elementi, 3/giorno) Concetto Tipo Accessi BBB L 1 AAA S 20 Operazione: 41 Totale: 123/giorno Alan Giacomin Basi di Dati Maggio 2009 37 / 54
  33. 33. Ristrutturazione Ridondanze Esempio - Tavole degli accessi Tra le nostre operazioni solo due agisono sulla ridondanza presente Descrizione Frequenza OP3 Noleggiare un video 3/giorno OP4 Visualizzare info video 1/mese Alan Giacomin Basi di Dati Maggio 2009 38 / 54
  34. 34. Ristrutturazione Ridondanze Esempio - Tavole degli accessi OP3 con ridondanza OP3 senza ridondanza Concetto Tipo Accessi Video L 1 Utente L 1 Noleggio S 1 Video S 1 Operazione: 6 Totale: 6570/anno Concetto Tipo Accessi Video L 1 Utente L 1 Noleggio S 1 Operazione: 4 Totale: 4380/anno Alan Giacomin Basi di Dati Maggio 2009 39 / 54
  35. 35. Ristrutturazione Ridondanze Esempio - Tavole degli accessi OP4 con ridondanza OP4 senza ridondanza Concetto Tipo Accessi Video L 500 Operazione: 500 Totale: 6000/anno Concetto Tipo Accessi Video L 500 Noleggio L 1000 Operazione: 1500 Totale: 18000/anno Alan Giacomin Basi di Dati Maggio 2009 40 / 54
  36. 36. Ristrutturazione Ridondanze Esempio - Tavole degli accessi Riassumendo... Con ridondanza Senza ridondanza OP3 6570 OP4 6000 Totale 12570 OP3 4380 OP4 18000 Totale 22380 Decisione: Teniamo la ridondanza Alan Giacomin Basi di Dati Maggio 2009 41 / 54
  37. 37. Ristrutturazione Schema ER ristrutturato Schema ER ristrutturato Alan Giacomin Basi di Dati Maggio 2009 43 / 54
  38. 38. Ristrutturazione Schema logico Schema logico Alan Giacomin Basi di Dati Maggio 2009 45 / 54
  39. 39. Implementazione SQL Creazione tabelle Tabella Video CREATE TABLE video ( codice INTEGER, titolo VARCHAR(255), durata INTEGER, qualita VARCHAR(255), noleggi INTEGER, tipo VARCHAR(5), PRIMARY KEY (codice) ); Alan Giacomin Basi di Dati Maggio 2009 47 / 54
  40. 40. Implementazione SQL Creazione tabelle Tabella Tessera CREATE TABLE tessera ( codice INTEGER, importo FLOAT, PRIMARY KEY (codice) ); Alan Giacomin Basi di Dati Maggio 2009 48 / 54
  41. 41. Implementazione SQL Creazione tabelle Tabella Utente CREATE TABLE utente ( cf CHAR(15), cognome VARCHAR(255), nome VARCHAR(255), PRIMARY KEY (cf), FOREIGN KEY (tessera) REFERENCES tessera (codice) ); Alan Giacomin Basi di Dati Maggio 2009 49 / 54
  42. 42. Implementazione SQL Creazione tabelle Tabella Noleggio CREATE TABLE noleggio ( codice INTEGER, ritiro DATE, consegna DATE, utente CHAR(15), video INTEGER, PRIMARY KEY (codice), FOREIGN KEY (utente) REFERENCES utente (cf), FOREIGN KEY (video) REFERENCES video (codice) ); Alan Giacomin Basi di Dati Maggio 2009 50 / 54
  43. 43. Implementazione SQL Interrogazioni Interrogazioni Visualizzazione informazioni video SELECT v.codice, titolo, COUNT(*) AS noleggi FROM video AS v JOIN noleggio AS n ON n.video=v.codice GROUP BY v.codice, titolo ORDER BY titolo; Alan Giacomin Basi di Dati Maggio 2009 52 / 54
  44. 44. Implementazione SQL Interrogazioni Interrogazioni Visualizzazione noleggi di Bianchi Silvio SELECT DISTINCT titolo FROM video AS v JOIN noleggio AS n ON n.video=v.codice JOIN utente AS u ON u.cf=n.utente WHERE u.cognome=’Bianchi’ AND u.nome=’Silvio’ ORDER BY titolo; Alan Giacomin Basi di Dati Maggio 2009 53 / 54
  45. 45. Implementazione SQL Interrogazioni FINE Autore Alan Giacomin Contatti email: alan.giacomin@gmail.com web: http://easyprog.altervista.org Chat msn: alan.giacomin@gmail.com skype: alan.giacomin Alan Giacomin Basi di Dati Maggio 2009 54 / 54

×