1 / 45

Basi di Dati

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

tanaya
Download Presentation

Basi di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Basi di Dati

  2. Argomenti • Modellazione concettuale (modello ER) • Traduzione in un modello logico (modello relazionale) • Interrogazione di una base dati (SQL SELECT)

  3. Modellazione concettuale (modello ER)

  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 Relaz.C (1,n) (0,n) EntitàB EntitàA Attrib.E Attrib.F Attrib.G Attrib.D

  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. Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento Libro Titolo Anno Copie disponibili Autore Casa editrice Argomento Individuazione entità in gioco

  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à AutoreDi Libro Autore ConArgom. EditoDa Casa Editrice Argomento

  12. Cardinalità delle relazioni AutoreDi • Un Libro deve avere almeno un Autore • Un Libro deve avere una Casa Editrice • Un Autore può aver scritto più Libri (1,1) (0,n) Libro Autore (1,n) (1,1) ConArgom. EditoDa (0,n) Casa Editrice (0,n) Argomento

  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 Anno Copie Cognome Nome AutoreDi • 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 (1,1) (0,n) Libro Autore (1,n) Titolo (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Argomento

  15. Cardinalità attributi Anno Copie Cognome Nome AutoreDi • Nella maggior parte dei casi è (1,1), quindi omessa • Card minima = 0 opzionale, = 1 obbligatorio • Card massima = N multivalore (1,1) (0,n) Libro Autore (1,n) (0,1) (1,n) Titolo (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice Valore minimo e massimo di valori associati ad ogni occorrenza di entità o relazione (0,n) Argomento

  16. Determinazione delle chiavi (1) Anno Copie Cognome Nome AutoreDi • Non possono esistere più libri aventi lo stesso titolo • Non possono esistere più autori con stesso cognome e nome (1,1) (0,n) Libro Autore (1,n) (0,1) (1,n) Titolo (1,1) Tel Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Argomento

  17. Determinazione delle chiavi (2) Anno Copie Cognome Nome AutoreDi • Non possono esistere più libri aventi lo stesso titolo, autore ed anno di pubblicazione (1,1) (0,n) Libro Autore (1,n) (0,1) (1,n) (1,1) Tel Titolo Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Argomento

  18. Determinazione delle chiavi (3) Anno Copie Cognome Nome AutoreDi • Non possono esistere più libri aventi lo stesso titolo, autore, casa editrice ed anno di pubblicazione (1,1) (0,n) Libro Autore (1,n) (0,1) (1,n) (1,1) Tel Titolo Numero albo ConArgom. EditoDa (0,n) Casa Editrice (0,n) Argomento

  19. Riassunto modello ER Costrutti • Entità • Relazioni • Attributi Vincoli di integrità • Cardinalità delle Relazioni/degli Attributi • Identificatori di Entità (chiavi)

  20. Ulteriori esempi ER IdSoc IdProd Fornisce (0,n) (1,n) Società Prodotto IdCli (0,n) Cliente DataIncarico IdDip IdPers Direttore (1,1) (0,1) Dipartimento Persona

  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)

  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 Anno Copie LIBRO(Titolo, Anno, Copie) Libro Titolo

  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 IdCasaEditrice Titolo Nome Anno EditoDa (1,1) (0,n) Libro CasaEditrice

  30. Uguaglianza di valori Libro CasaEditrice

  31. Relazioni 1 a 1 IdOfferta IdOrdine Ordine • 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’ (0,1) (1,1) Offerta BuonoOrdine Offerta(IdOfferta) BuonoOrdine(IdOrdine, IdOfferta)

  32. Relazioni 1 ad n Titolo Nome EditoDa • 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à (1,1) (0,n) Libro CasaEditrice Libro(Titolo, NomeEditore) CasaEditrice(Nome)

  33. Relazioni n ad m Anno Copie Cognome Nome AutoreDi (1,n) (0,n) Libro Autore • 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

  34. Relazioni n ad m Anno Copie Cognome Nome AutoreDi (1,n) (0,n) Libro Autore Titolo Libro(Titolo, Anno, Copie) Autore(Cognome, Nome) Autore-Libro(Cognome,Nome, Titolo)

  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) IdSoc IdProd Fornisce • 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) (0,n) (1,n) Società Prodotto IdCli (0,n) Cliente

  37. Esempi (2) DataIncarico IdDip IdPers • Persona (IdPers) • Dipartimento (IdDip, IdDiret, DataIncarico) (IdDiret chiave esterna verso Persona) Direttore (1,1) (0,1) Dipartimento Persona

  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 SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” • “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.*

  41. Da dove si cerca SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” • “Dove lo trovo” intende l’insieme delle tabelle che contengono gli attributi specificati nella clausola “cosa” o utilizzati in quella che specifica le condizioni

  42. Criteri di selezione SELECT “Cosa” FROM “Dove lo trovo” WHERE “A queste condizioni” • 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)

  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

More Related