SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
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
Generalizzazioni
Ridondanze
Schema ER ristrutturato
Schema logico
3 Implementazione SQL
Creazione tabelle
Interrogazioni
Alan Giacomin Basi di Dati Maggio 2009 2 / 54
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
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
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
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
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
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
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
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
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
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 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
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
Ristrutturazione Generalizzazioni
Generalizzazioni
Alan Giacomin Basi di Dati Maggio 2009 19 / 54
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
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 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
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 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
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 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
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 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
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 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
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
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
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
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
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
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
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
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
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
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
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 INTEGER,
qualita VARCHAR(255),
noleggi INTEGER,
tipo VARCHAR(5),
PRIMARY KEY (codice)
);
Alan Giacomin Basi di Dati Maggio 2009 47 / 54
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Basi dati stampa

  • 1. Basi di Dati Alan Giacomin Maggio 2009 Alan Giacomin Basi di Dati Maggio 2009 1 / 54
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Raccolta e analisi requisiti Schema ER Esempio - Schema ER (5) Alan Giacomin Basi di Dati Maggio 2009 15 / 54
  • 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. 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
  • 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. Ristrutturazione Generalizzazioni Generalizzazioni (Figlie -> Padre) Alan Giacomin Basi di Dati Maggio 2009 21 / 54
  • 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. Ristrutturazione Generalizzazioni Generalizzazioni (Padre -> Figlie) Alan Giacomin Basi di Dati Maggio 2009 23 / 54
  • 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
  • 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
  • 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. Ristrutturazione Generalizzazioni Esempio - Generalizzazione Alan Giacomin Basi di Dati Maggio 2009 29 / 54
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Ristrutturazione Schema ER ristrutturato Schema ER ristrutturato Alan Giacomin Basi di Dati Maggio 2009 43 / 54
  • 38. Ristrutturazione Schema logico Schema logico Alan Giacomin Basi di Dati Maggio 2009 45 / 54
  • 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. 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. 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. 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. 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. 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. 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