SlideShare a Scribd company logo
Basi di Dati
Argomenti Modellazione concettuale (modello ER) Traduzione in un modello logico (modello relazionale) Interrogazione di una base dati (SQL SELECT)
Modellazione concettuale (modello ER)
Modello Entity Relationship (ER) Modello concettuale Fornisce una serie di  costrutti  per descrivere la realtà di interesse di facile comprensione, indipendente dal modo in cui la basi di dati viene descritta e gestita entro un DBMS Usato per descrivere  schema concettuale  di una base di dati
Costrutti principali del modello Entità : classi di oggetti che hanno proprietà comuni ed esistenza autonoma Relazione : legame logico che coinvolge due o più entità Attributo : proprietà informativa elementare di un’entità (o anche di una relazione)
Altri costrutti del modello Vincoli di integrità : limitazioni o specifiche espresse sui precedenti costrutti del modello:  - cardinalità delle Relazioni - cardinalità degli Attributi - identificatori delle Entità (chiavi) Ulteriori elementi (gerarchie di generalizzazione, attributi compositi) che non affrontiamo
Modello ER: rappresentazione grafica EntitàA Relaz.C EntitàB Attrib.D Attrib.E (1,n) (0,n) Attrib.G Attrib.F
Descrizione dominio “ Si vuole realizzare un archivio per la gestione di una libreria. I principali requisiti espressi dall’utente sono la possibilità di memorizzare i dati relativi ai  libri  ( titolo ,  autore ,  casa editrice ,  anno ,  argomento ,  copie disponibili ). Si devono poter cercare i libri a partire dal titolo, dall’autore, dall’argomento e dall’ editore . [...]”
Individuazione entità in gioco Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento
Perchè tutte queste entità ? Integrità dei dati un autore dovrebbe avere lo stesso nome per ogni suo libro; eventuali modifiche non dovrebbero essere apportate manualmente ad ogni libro Occupazione di memoria ripetere nome, cognome ed eventualmente altri dati per ogni libro scritto da un autore è sconveniente Problemi in inserimento Inserire ogni volta i dati completi di un autore rende molto probabile un errore
Individuazione relazioni fra entità Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento
Cardinalità delle relazioni Un Libro deve avere almeno un Autore Un Libro deve avere una Casa Editrice Un Autore può aver scritto più Libri Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n)
Cardinalità delle relazioni Tre tipologie in base alla cardinalità massima delle occorrenze di Entità nella relazione: 1 a 1:  ad un’occorrenza di un’Entità corrisponde esattamente un’occorrenza di Entità  (Persona e Dipartimento nella relazione Direttore) 1 a molti:  ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità ma non viceversa (Libro e CasaEditrice nella relazione Editoda) molti a molti:  ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità e viceversa (Libro e Argomento nella relazione conArgomento)
Individuazione attributi Titolo è una stringa (una sequenza di caratteri) Anno è un numero intero (si potrebbero specificare dei vincoli) Copie è un numero intero  ≥ 0 Tutti i suddetti non possono essere vuoti Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Tel Numero albo Cognome Nome
Cardinalità attributi Nella maggior parte dei casi è (1,1), quindi omessa Card minima = 0  opzionale , = 1  obbligatorio Card massima = N  multivalore Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Valore minimo e massimo di valori associati ad ogni occorrenza di entità o relazione Tel Cognome Nome (1,n) (0,1) Numero albo
Determinazione delle chiavi (1) Non possono esistere più libri aventi lo stesso titolo Non possono esistere più autori con stesso cognome e nome Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
Non possono esistere più libri aventi lo stesso titolo, autore ed anno di pubblicazione Determinazione delle chiavi (2) Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
Determinazione delle chiavi (3) Non possono esistere più libri aventi lo stesso titolo, autore, casa editrice ed anno di pubblicazione Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
Riassunto: costrutti modello ER Entità Relazioni Attributi  Cardinalità delle Relazioni/degli Attributi Identificatori di Entità
Ulteriori esempi ER Società Fornisce Prodotto (1,n) (0,n) IdSoc Cliente (0,n) IdProd IdCli Dipartimento Direttore Persona (0,1) (1,1) IdDip IdPers DataIncarico
Traduzione in un modello logico (modello relazionale)
Modello Relazionale Modello logico Fornisce una serie di  costrutti  per descrivere la realtà di interesse Molto meno ricco del modello ER, più vicino alla reale rappresentazione dei dati interna all’elaboratore Alla base di un’altissima percentuale dei database presenti in commercio (Access, ...) Esistono definizioni formali, oltre ad una teoria rigorosa a riguardo
Costrutti del modello elemento fondamentale è la  relazione , informalmente una  tabella   ogni colonna ha associato un nome ( attributo ) ed un  dominio  (insieme di valori che può assumere l’attributo) Ogni riga di questa tabella viene detta  tupla
Costrutti del modello LIBRO LIBRO( Titolo , Anno, Casa Editrice) Sellerio 1996 I delitti di via Medina Sidonia Longanesi 2003 Il sogno di Scipione Sellerio 2003 Il giro di boa Casa Editrice Anno Titolo
Traduzione da modello ER a modello Relazionale
Entità ed Attributi Ad un’ Entità  corrisponde una  relazione (tabella) Agli  Attributi  dell’Entità corrispondono gli attributi nella  relazione Gli Attributi  chiave  dell’Entità corrispondono agli attributi  chiave  nella  relazione
Entità ed Attributi LIBRO( Titolo , Anno, Copie) Titolo Libro Anno Copie
Le Relazioni Diversi elementi del modello ER non hanno un corrispettivo in quello relazionale ed in particolare le  Relazioni Una  Relazione  può essere realizzata nel modello relazionale tramite il meccanismo di  chiave esterna Un attributo (o un gruppo di attributi) chiave di una tabella, se trasportato in un’altra viene detto chiave esterna e permette di realizzare una relazione fra le due tabelle Praticamente una relazione viene individuata per via dell’uguaglianza dei valori di alcuni attributi
Le Relazioni Libro EditoDa CasaEditrice (0,n) (1,1) Titolo Nome Anno IdCasaEditrice
Uguaglianza di valori 1 1996 I delitti di via Medina Sidonia 2 2003 Il sogno di Scipione 1 2003 Il giro di boa Casa Editrice Anno Titolo Longanesi 2 Sellerio 1 Nome IdCasaEditrice
Relazioni 1 a 1 Questo genere di relazione viene tradotta inserendo la chiave di una delle entità coinvolte nell’insieme degli attributi dell’altra C’è un grado di libertà, ma la scelta ha delle conseguenze ‘non funzionali’ Offerta Ordine BuonoOrdine (1,1) (0,1) IdOfferta IdOrdine Offerta( IdOfferta ) BuonoOrdine( IdOrdine , IdOfferta) 3 2 1 1 IdOfferta IdOrdine 3 1 IdOfferta
Relazioni 1 ad n Questo genere di relazione viene tradotta inserendo la chiave dell’entità del lato n, nell’insieme degli attributi dell’altra In questo caso la traduzione è rigida, non ci sono gradi di libertà Libro EditoDa CasaEditrice (0,n) (1,1) Titolo Nome Libro( Titolo , NomeEditore) CasaEditrice( Nome ) aa yy aa xx NomeEditore Titolo bb aa Nome
Relazioni n ad m Questo genere di relazione viene tradotta introducendo un’ulteriore relazione di supporto, avente come chiave l’insieme degli attributi componenti le chiavi delle altre entità coinvolte Questa nuova relazione non ha un significato concettuale, ma è necessaria per poter utilizzare il meccanismo di chiave esterna   Titolo Libro AutoreDi Autore (0,n) (1,n) Anno Copie Cognome Nome
Relazioni n ad m Titolo Libro AutoreDi Autore (0,n) (1,n) Anno Copie Cognome Nome Libro( Titolo , Anno, Copie) Autore( Cognome ,  Nome ) Autore-Libro( Cognome,Nome, Titolo ) 2002 2003 Anno 2 yy 1 xx Copie Titolo Dd Cc Cognome bb aa Nome xx bb Dd aa aa Nome yy Cc xx Cc Titolo Cognome
Riassunto: modello relazionale e traduzione Entità    relazioni (tabelle) Attributi di entità    attributi delle relazioni (colonne delle tabelle) Relazioni 1 ad 1    inserimento della chiave di una delle relazioni nell’altra Relazioni 1 ad n    inserimento della chiave del lato n nella relazione corrispondente a Entità del lato 1 Relazioni n ad m    creazione di una nuova relazione avente come chiave l’insieme delle chiavi delle Entità coinvolte nella Relazione originale
Esempi (1) Società ( IdSoc ) Prodotto ( IdProd ) Cliente ( IdCli ) Fornitura( IdSoc ,  IdProd ,  IdCli ) (IdSoc chiave esterna verso Società, IdProd chiave esterna verso Prodotto, IdCli chiave esterna verso Cliente) Società Fornisce Prodotto (1,n) (0,n) IdSoc Cliente (0,n) IdProd IdCli
Esempi (2) Persona ( IdPers ) Dipartimento ( IdDip , IdDiret, DataIncarico) (IdDiret chiave esterna verso Persona) Dipartimento Direttore Persona (0,1) (1,1) IdDip IdPers DataIncarico
Interrogazione di una base dati (SQL SELECT)
SQL SELECT: elementi di base Structured Query Language    linguaggio dichiarativo per utilizzo di basi dati relazionali Data Description Language (definizione schema) Data Manipulation Language (manipolazione dati) Query Langage  (interrogazione della base dati)    Comando SELECT
Cosa si cerca “ Cosa” intende i nomi degli attributi che si intendono ottenere dalla ricerca In caso di ambiguità, cioè lo stesso nome di attributo è presente in più tabelle, bisogna chiarire a quale ci si riferisce usando la forma Tabella.attributo Per selezionare tutti gli attributi di una tabella di può usare la forma Tabella.* SELECT “ Cosa ” FROM “Dove lo trovo” WHERE “A queste condizioni”
Da dove si cerca “ Dove lo trovo” intende l’insieme delle tabelle che contengono gli attributi specificati nella clausola “cosa” o utilizzati in quella che specifica le condizioni SELECT “Cosa” FROM “ Dove lo trovo ” WHERE “A queste condizioni”
Criteri di selezione Le condizioni possono essere divise in semantiche (correlate al significato della ricerca) di join (correlate alla necessità di chiarire le relazioni fra le tabelle) Si possono (devono) combinare con operatori booleani (es. le condizioni di join devono essere in AND fra di loro) SELECT “Cosa” FROM “Dove lo trovo” WHERE “ A queste condizioni ”
Tenere conto delle relazioni Istruttore  ( IdIstr , Nome, Cognome, Indirizzo, N-tel) Scheda  ( IdScheda , Difficoltà, Istr) (Istr chiave esterna verso Istruttore) Esercizi-schede  ( IdScheda ,  IdEserc , Ripetizioni) Esercizio  ( IdEserc , Nome, Descr)  Qualora la query coinvolga informazioni provenienti da tutte le tabelle, la clausola WHERE dovrà indicare chiaramente che: Istr in Scheda dev’essere uguale a IdIstr in Istruttore IdScheda in Esercizi-schede dev’essere uguale a quello in Scheda IdEserc in Esercizio dev’essere uguale a quello in  Esercizi-schede
Esempio di Query Selezionare gli istruttori che abbiano assegnato l’esercizio ‘addominali’ SELECT Istruttore.* FROM Istruttore i, Scheda s, Esercizi-schede es, Esercizio e WHERE e.Nome=‘addominali’ AND e.IdEserc=esIdEserc AND es.IdScheda=s.IdScheda AND s.Istr=i.IdIstr;
Riassunto: SQL SELECT SELECT “ WHAT”: Cosa si cerca Clausola FROM: “Dove”, da quali tabelle Clausola WHERE: “A che condizioni”, semantiche e di join

More Related Content

PPT
Progettazione concettuale per le basi di dati - Introduzione e il modello ER
PDF
1.5 Factoring Polynomials
PDF
Le tre ere_della_storia_umana_de_kerckhove_
PDF
Algoritma greedy
PPTX
PDF
Fungsi Pembangkit
PDF
2.2 Linear Equations in One Variable
PPT
Database - progettazione
Progettazione concettuale per le basi di dati - Introduzione e il modello ER
1.5 Factoring Polynomials
Le tre ere_della_storia_umana_de_kerckhove_
Algoritma greedy
Fungsi Pembangkit
2.2 Linear Equations in One Variable
Database - progettazione

Viewers also liked (20)

PPTX
Database introduzione
PPT
MODELLO ER
PDF
Introduzione al SQL e ai database
PPT
Applicazioni native in java
PPT
Multithreading Presentation
PPSX
Il linguaggio SQL
PPT
Damiani - La valorizzazione dell risorse umane - 29/09/2014
PPT
Progettazione Concettuale Database Ospedale
PDF
Linguaggio Java
PDF
Basi di Dati - A1 - Introduzione alle basi di dati
PPT
Basi di dati e gis n
PPTX
DATABASE (Basi di dati)
PDF
Soluzione generalizzazioni in diagrammi ER
PPTX
Essentials of Multithreaded System Programming in C++
PPTX
Vectors in Java
PDF
Alfabeto di Arduino - lezione 1
PPT
Java multi threading
PPT
TCP/IP Basics
PPT
TCP/IP Network ppt
PDF
TEDx Manchester: AI & The Future of Work
Database introduzione
MODELLO ER
Introduzione al SQL e ai database
Applicazioni native in java
Multithreading Presentation
Il linguaggio SQL
Damiani - La valorizzazione dell risorse umane - 29/09/2014
Progettazione Concettuale Database Ospedale
Linguaggio Java
Basi di Dati - A1 - Introduzione alle basi di dati
Basi di dati e gis n
DATABASE (Basi di dati)
Soluzione generalizzazioni in diagrammi ER
Essentials of Multithreaded System Programming in C++
Vectors in Java
Alfabeto di Arduino - lezione 1
Java multi threading
TCP/IP Basics
TCP/IP Network ppt
TEDx Manchester: AI & The Future of Work
Ad

Similar to Database, concetti di base (6)

PPTX
LEZ_10_IntroDB.pptx
PDF
Base dati capitolo_5
PDF
02 Modello, Algebra E Calcolo Relazionale
PDF
Wsmo Restricted
PDF
WSMO Restricted
PPT
Modello ER
LEZ_10_IntroDB.pptx
Base dati capitolo_5
02 Modello, Algebra E Calcolo Relazionale
Wsmo Restricted
WSMO Restricted
Modello ER
Ad

Database, concetti di base

  • 2. Argomenti Modellazione concettuale (modello ER) Traduzione in un modello logico (modello relazionale) Interrogazione di una base dati (SQL SELECT)
  • 4. Modello Entity Relationship (ER) Modello concettuale Fornisce una serie di costrutti per descrivere la realtà di interesse di facile comprensione, indipendente dal modo in cui la basi di dati viene descritta e gestita entro un DBMS Usato per descrivere schema concettuale di una base di dati
  • 5. Costrutti principali del modello Entità : classi di oggetti che hanno proprietà comuni ed esistenza autonoma Relazione : legame logico che coinvolge due o più entità Attributo : proprietà informativa elementare di un’entità (o anche di una relazione)
  • 6. Altri costrutti del modello Vincoli di integrità : limitazioni o specifiche espresse sui precedenti costrutti del modello: - cardinalità delle Relazioni - cardinalità degli Attributi - identificatori delle Entità (chiavi) Ulteriori elementi (gerarchie di generalizzazione, attributi compositi) che non affrontiamo
  • 7. Modello ER: rappresentazione grafica EntitàA Relaz.C EntitàB Attrib.D Attrib.E (1,n) (0,n) Attrib.G Attrib.F
  • 8. Descrizione dominio “ Si vuole realizzare un archivio per la gestione di una libreria. I principali requisiti espressi dall’utente sono la possibilità di memorizzare i dati relativi ai libri ( titolo , autore , casa editrice , anno , argomento , copie disponibili ). Si devono poter cercare i libri a partire dal titolo, dall’autore, dall’argomento e dall’ editore . [...]”
  • 9. Individuazione entità in gioco Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento
  • 10. Perchè tutte queste entità ? Integrità dei dati un autore dovrebbe avere lo stesso nome per ogni suo libro; eventuali modifiche non dovrebbero essere apportate manualmente ad ogni libro Occupazione di memoria ripetere nome, cognome ed eventualmente altri dati per ogni libro scritto da un autore è sconveniente Problemi in inserimento Inserire ogni volta i dati completi di un autore rende molto probabile un errore
  • 11. Individuazione relazioni fra entità Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento
  • 12. Cardinalità delle relazioni Un Libro deve avere almeno un Autore Un Libro deve avere una Casa Editrice Un Autore può aver scritto più Libri Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n)
  • 13. Cardinalità delle relazioni Tre tipologie in base alla cardinalità massima delle occorrenze di Entità nella relazione: 1 a 1: ad un’occorrenza di un’Entità corrisponde esattamente un’occorrenza di Entità (Persona e Dipartimento nella relazione Direttore) 1 a molti: ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità ma non viceversa (Libro e CasaEditrice nella relazione Editoda) molti a molti: ad un’occorrenza di un’Entità possono corrispondere più occorrenze di Entità e viceversa (Libro e Argomento nella relazione conArgomento)
  • 14. Individuazione attributi Titolo è una stringa (una sequenza di caratteri) Anno è un numero intero (si potrebbero specificare dei vincoli) Copie è un numero intero ≥ 0 Tutti i suddetti non possono essere vuoti Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Tel Numero albo Cognome Nome
  • 15. Cardinalità attributi Nella maggior parte dei casi è (1,1), quindi omessa Card minima = 0 opzionale , = 1 obbligatorio Card massima = N multivalore Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Valore minimo e massimo di valori associati ad ogni occorrenza di entità o relazione Tel Cognome Nome (1,n) (0,1) Numero albo
  • 16. Determinazione delle chiavi (1) Non possono esistere più libri aventi lo stesso titolo Non possono esistere più autori con stesso cognome e nome Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
  • 17. Non possono esistere più libri aventi lo stesso titolo, autore ed anno di pubblicazione Determinazione delle chiavi (2) Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
  • 18. Determinazione delle chiavi (3) Non possono esistere più libri aventi lo stesso titolo, autore, casa editrice ed anno di pubblicazione Titolo Libro AutoreDi Autore EditoDa Casa Editrice ConArgom. Argomento (0,n) (1,1) (0,n) (1,1) (1,n) (0,n) Anno Copie Cognome Nome Tel (1,n) (0,1) Numero albo
  • 19. Riassunto: costrutti modello ER Entità Relazioni Attributi Cardinalità delle Relazioni/degli Attributi Identificatori di Entità
  • 20. Ulteriori esempi ER Società Fornisce Prodotto (1,n) (0,n) IdSoc Cliente (0,n) IdProd IdCli Dipartimento Direttore Persona (0,1) (1,1) IdDip IdPers DataIncarico
  • 21. Traduzione in un modello logico (modello relazionale)
  • 22. Modello Relazionale Modello logico Fornisce una serie di costrutti per descrivere la realtà di interesse Molto meno ricco del modello ER, più vicino alla reale rappresentazione dei dati interna all’elaboratore Alla base di un’altissima percentuale dei database presenti in commercio (Access, ...) Esistono definizioni formali, oltre ad una teoria rigorosa a riguardo
  • 23. Costrutti del modello elemento fondamentale è la relazione , informalmente una tabella ogni colonna ha associato un nome ( attributo ) ed un dominio (insieme di valori che può assumere l’attributo) Ogni riga di questa tabella viene detta tupla
  • 24. Costrutti del modello LIBRO LIBRO( Titolo , Anno, Casa Editrice) Sellerio 1996 I delitti di via Medina Sidonia Longanesi 2003 Il sogno di Scipione Sellerio 2003 Il giro di boa Casa Editrice Anno Titolo
  • 25. Traduzione da modello ER a modello Relazionale
  • 26. Entità ed Attributi Ad un’ Entità corrisponde una relazione (tabella) Agli Attributi dell’Entità corrispondono gli attributi nella relazione Gli Attributi chiave dell’Entità corrispondono agli attributi chiave nella relazione
  • 27. Entità ed Attributi LIBRO( Titolo , Anno, Copie) Titolo Libro Anno Copie
  • 28. Le Relazioni Diversi elementi del modello ER non hanno un corrispettivo in quello relazionale ed in particolare le Relazioni Una Relazione può essere realizzata nel modello relazionale tramite il meccanismo di chiave esterna Un attributo (o un gruppo di attributi) chiave di una tabella, se trasportato in un’altra viene detto chiave esterna e permette di realizzare una relazione fra le due tabelle Praticamente una relazione viene individuata per via dell’uguaglianza dei valori di alcuni attributi
  • 29. Le Relazioni Libro EditoDa CasaEditrice (0,n) (1,1) Titolo Nome Anno IdCasaEditrice
  • 30. Uguaglianza di valori 1 1996 I delitti di via Medina Sidonia 2 2003 Il sogno di Scipione 1 2003 Il giro di boa Casa Editrice Anno Titolo Longanesi 2 Sellerio 1 Nome IdCasaEditrice
  • 31. Relazioni 1 a 1 Questo genere di relazione viene tradotta inserendo la chiave di una delle entità coinvolte nell’insieme degli attributi dell’altra C’è un grado di libertà, ma la scelta ha delle conseguenze ‘non funzionali’ Offerta Ordine BuonoOrdine (1,1) (0,1) IdOfferta IdOrdine Offerta( IdOfferta ) BuonoOrdine( IdOrdine , IdOfferta) 3 2 1 1 IdOfferta IdOrdine 3 1 IdOfferta
  • 32. Relazioni 1 ad n Questo genere di relazione viene tradotta inserendo la chiave dell’entità del lato n, nell’insieme degli attributi dell’altra In questo caso la traduzione è rigida, non ci sono gradi di libertà Libro EditoDa CasaEditrice (0,n) (1,1) Titolo Nome Libro( Titolo , NomeEditore) CasaEditrice( Nome ) aa yy aa xx NomeEditore Titolo bb aa Nome
  • 33. Relazioni n ad m Questo genere di relazione viene tradotta introducendo un’ulteriore relazione di supporto, avente come chiave l’insieme degli attributi componenti le chiavi delle altre entità coinvolte Questa nuova relazione non ha un significato concettuale, ma è necessaria per poter utilizzare il meccanismo di chiave esterna Titolo Libro AutoreDi Autore (0,n) (1,n) Anno Copie Cognome Nome
  • 34. Relazioni n ad m Titolo Libro AutoreDi Autore (0,n) (1,n) Anno Copie Cognome Nome Libro( Titolo , Anno, Copie) Autore( Cognome , Nome ) Autore-Libro( Cognome,Nome, Titolo ) 2002 2003 Anno 2 yy 1 xx Copie Titolo Dd Cc Cognome bb aa Nome xx bb Dd aa aa Nome yy Cc xx Cc Titolo Cognome
  • 35. Riassunto: modello relazionale e traduzione Entità  relazioni (tabelle) Attributi di entità  attributi delle relazioni (colonne delle tabelle) Relazioni 1 ad 1  inserimento della chiave di una delle relazioni nell’altra Relazioni 1 ad n  inserimento della chiave del lato n nella relazione corrispondente a Entità del lato 1 Relazioni n ad m  creazione di una nuova relazione avente come chiave l’insieme delle chiavi delle Entità coinvolte nella Relazione originale
  • 36. Esempi (1) Società ( IdSoc ) Prodotto ( IdProd ) Cliente ( IdCli ) Fornitura( IdSoc , IdProd , IdCli ) (IdSoc chiave esterna verso Società, IdProd chiave esterna verso Prodotto, IdCli chiave esterna verso Cliente) Società Fornisce Prodotto (1,n) (0,n) IdSoc Cliente (0,n) IdProd IdCli
  • 37. Esempi (2) Persona ( IdPers ) Dipartimento ( IdDip , IdDiret, DataIncarico) (IdDiret chiave esterna verso Persona) Dipartimento Direttore Persona (0,1) (1,1) IdDip IdPers DataIncarico
  • 38. Interrogazione di una base dati (SQL SELECT)
  • 39. SQL SELECT: elementi di base Structured Query Language  linguaggio dichiarativo per utilizzo di basi dati relazionali Data Description Language (definizione schema) Data Manipulation Language (manipolazione dati) Query Langage (interrogazione della base dati)  Comando SELECT
  • 40. Cosa si cerca “ Cosa” intende i nomi degli attributi che si intendono ottenere dalla ricerca In caso di ambiguità, cioè lo stesso nome di attributo è presente in più tabelle, bisogna chiarire a quale ci si riferisce usando la forma Tabella.attributo Per selezionare tutti gli attributi di una tabella di può usare la forma Tabella.* SELECT “ Cosa ” FROM “Dove lo trovo” WHERE “A queste condizioni”
  • 41. Da dove si cerca “ Dove lo trovo” intende l’insieme delle tabelle che contengono gli attributi specificati nella clausola “cosa” o utilizzati in quella che specifica le condizioni SELECT “Cosa” FROM “ Dove lo trovo ” WHERE “A queste condizioni”
  • 42. Criteri di selezione Le condizioni possono essere divise in semantiche (correlate al significato della ricerca) di join (correlate alla necessità di chiarire le relazioni fra le tabelle) Si possono (devono) combinare con operatori booleani (es. le condizioni di join devono essere in AND fra di loro) SELECT “Cosa” FROM “Dove lo trovo” WHERE “ A queste condizioni ”
  • 43. Tenere conto delle relazioni Istruttore ( IdIstr , Nome, Cognome, Indirizzo, N-tel) Scheda ( IdScheda , Difficoltà, Istr) (Istr chiave esterna verso Istruttore) Esercizi-schede ( IdScheda , IdEserc , Ripetizioni) Esercizio ( IdEserc , Nome, Descr) Qualora la query coinvolga informazioni provenienti da tutte le tabelle, la clausola WHERE dovrà indicare chiaramente che: Istr in Scheda dev’essere uguale a IdIstr in Istruttore IdScheda in Esercizi-schede dev’essere uguale a quello in Scheda IdEserc in Esercizio dev’essere uguale a quello in Esercizi-schede
  • 44. Esempio di Query Selezionare gli istruttori che abbiano assegnato l’esercizio ‘addominali’ SELECT Istruttore.* FROM Istruttore i, Scheda s, Esercizi-schede es, Esercizio e WHERE e.Nome=‘addominali’ AND e.IdEserc=esIdEserc AND es.IdScheda=s.IdScheda AND s.Istr=i.IdIstr;
  • 45. Riassunto: SQL SELECT SELECT “ WHAT”: Cosa si cerca Clausola FROM: “Dove”, da quali tabelle Clausola WHERE: “A che condizioni”, semantiche e di join