Settimana 3 PDF

Title Settimana 3
Course Gestione e condivisione di basi di dati e conoscenza
Institution Università degli Studi di Torino
Pages 8
File Size 540.8 KB
File Type PDF
Total Downloads 73
Total Views 125

Summary

Settimana di lezione ...


Description

Settimana 3 Gerarchia è sinonimo di generalizzazione.  Rappresentano legami logici tra un’entità chiamata genitore e una o più entità chiamate figli.  Dal generale al più particolare.  Il genitore è più generale rispetto ai figli, nel senso che li comprende come caso particolare.  Si dice che il genitore è generalizzazione dei figli e che i figli sono specializzazioni del genitore. Per esempio: l’entità Persona è una generalizzazione dell’entità Uomo e Donna: Professionista è una generalizzazione dell’entità Ingegnere, Medico, Avvocato. Viceversa, uomo e donna sono specializzazioni dell’entità Persona, Ingegnere, Medico e Avvocato sono specializzazioni dell’entità Professionista. Graficamente vengono rappresentate con una freccia verso l’altro.

Ogni occorrenza di un’entità figlia è anche un’occorrenza dell’entità genitrice: -

Un’occorrenza dell’entità Avvocato è anche un’occorrenza dell’entità Professionista.

In altre parole, gli insiemi delle occorrenze dei figli sono sottoinsiemi delle occorrenze dei genitori. Per le entità figlie, le proprietà ereditate non vanno rappresentate esplicitamente, vogliamo quindi evitare ridondanze e può essere utile aggiungere qualcosa di specifico che distingua una sottoclasse dall’altra e la sottoclasse dalla sovra classe.

Due classificazioni per le generalizzazioni:  Una generalizzazione è totale se ogni occorrenza del genitore è una occorrenza di almeno una delle entità figlie, altrimenti è parziale. La generalizzazione totale si indica con la lettera t, la generalizzazione parziale con la lettera p. - Es. la generalizzazione tra l’entità veicolo e le entità automobile e bicicletta è parziale perché può esistere un veicolo che non può essere né bicicletta né automobile.  Una generalizzazione è esclusiva (e) quando l’intersezione dei sottoinsiemi dei figli è vuota; invece è soprapposta (s) quando l’intersezione dei sottoinsiemi dei figli non è vuota.

-

La generalizzazione tra l’entità persona e le entità studente e lavoratore è sovrapposta perché possono esistere studenti lavoratori.

Sono possibili tutte e quattro le combinazioni tra totale/parziale ed esclusiva/sovrapposta. Per totale e parziale bisogna valutare dall’alto verso il basso quindi dall’impiegato al laureato. Per quanto riguarda l’esclusivo e il sovrapposto dobbiamo pensare ai sottoinsiemi figli e vedere se sono staccati o sovrapposti.

(T, E) IMPIEGATO E LAUREATO/NON LAUREATO (P, E) PERSONALE E MEDICO/PARAMEDICO (T, S)  UNIVERSITARIO E STUDENTE/LAVORATORE (P, S)  CITTADINO E STUDENTE/LAVORATORE

Progettazione logica. Il modello relazionale, introdotto nel 1970, affermatosi negli anni 80 è il DB più diffuso. Modello logico dei dati basato sui concetti di relazione e tabella  Relazione nozione matematica.  Tabella rappresentazione grafica di una relazione (concetto intuitivo). La definizione corretta di relazione è: rappresentazione di un’entità attraverso i suoi attributi. Graficamente una relazione può essere rappresentata da una tabella  Colonna  attributi (oppure campo).  Riga valore degli attributi di un individuo (occorrenza) appartenente all’entità. Il numero delle colonne è fisso, il numero delle righe diventa variabile man mano che si inseriscono i dati.

All’interno di ciascuna riga, ci sono i valori degli attributi, diversi per ciascun individuo.

Possiamo definire na relazione come un insieme di tuple (ricghe) diverse in campi (colonne). Insieme collezione di elementi  L’ordine degli elementi non è importante.  Un insieme non contiene duplicati. Le tuple della relazione devono essere distinte (no righe ripetute in tabella). Le tuple non sono tra loro ordinate (tabelle con stesse righe ordinate in modo diverso rappresentano la stessa relazione). Relazione/tabella/insieme sono tutti sinonimi. Un DB è solitamente costituito da più relazioni le cui tuple contengono valori. I valori all’interno delle tuple devono essere:  Atomici (un solo valore per record).  Omogenei (dello stesso tipo).

Slide estremamente importante:

Cerchiamo di rappresentare le stesse informazioni senza ripetizione di valori, perché l’obbiettivo del DB è occupare il meno spazio possibile. Quando si parla di schema di relazione: R(X)  Costituita da nome della relazione R + l’insieme dei nomi di attributi X= (a1, a2, aN) Per esempio  Esami (studente, voto, corso). Si ha quindi l’elenco di tutte le tuple ovvero le tabelle con tra parentesi tutti gli attributi di esse. Istanza di relazione è l’elenco delle sue tuple. Ricapitolando:  Schema di una base di dati insieme degli schemi delle relazioni (struttura) non cambia.  Istanza (o stato) di una base di dati valori dei dati nelle tabelle (record) cambia spesso.

In una tupla di una tabella un attributo può non avere un valore,oppure il valore di un attributo potrebbe esistere ma essere sconosciuto a chi inserisce i dati nel DB. In questo caso si usa NULL perché indicata una assenza di informazione diversa da zero. Non tutti gli attributi di una relazione devono potere assumere valore nullo.  Nella definizione di relazione si può specificare quali attributi non devono mai essere nulli nelle tuple (di solito è l’attributo identificativo). Non tutte le tuple rappresentano informazione corretta per l’applicazione:  Valori nulli.  Valori fuori del dominio di un attributo.  Tuple incoerenti (valori di attributi non simultaneamente assegnabili).

Esempi: -

Tuple con valori uguali per attributi identificativi es. tuple con la stessa matricola nella tabella studenti. Valori inesistenti in attributi usati per corrispondenze tra relazioni es. studente nella tabella Esami non presente nella tabella studenti.

Soluzione alle istanze incoerenti creare dei vincoli di integrità (correttezza). Sono proprietà che devono essere soddisfatte dalle istanze corrette per un’applicazione: -

Il progettista della base di dati specifica i vincoli che le istanze devono rispettare. Il DBMS assicura che il DB non potrà mai contenere istanze che non soddisfano tutti i vincoli specificati.

Sono predicati che associano a ogni istanza il valore vero o falso:  Vero Istanza corretta (ammissibile, lecita).  Falso Istanza incoerente.

Vincoli intra-relazionali Vincoli interni alla relazione:  

Vincoli di tupla. Vincolo di dominio. Vincoli su assegnamento di valori ad attributi diversi di una tupla. Vincoli di chiave.

Vincoli inter-relazionali Vincoli tra relazioni diversi:  Vincolo di integrità referenziale. Esprimibili mediante espressioni booleane (AND, OR, NOT) i cui termini contengono: -

Uguaglianze =. Disuguaglianze . Di valore di attributo. Espressione aritmetiche su valori di attributo.

AND  INTERSEZIONE OR  UNIONE NOT  NEGAZIONE Es. vincolo di dominio: voto > = 18 AND voto < = 30. Es. vincoli su più attributi: NOT (Lode = “si” AND Voto 30).

Vincoli di chiave Chiave insieme di attributi usati per identificare univocamente le tuple di una relazione (attributi identificatori). -

Piu formalmente, un insieme di attributi K è detto chiave di una relazione R se R non può contenere due tuple che hanno valori uguali di K.

Si può definire una serie di attributi come chiavi, ma è meglio evitare. La chiave è decisa dal progettistadefinisce le chiavi della relazione di una base di dati. Una chiave primaria di R è una particolare chiave scelta dal progettista del DB come modo preferito per identificare univocamente le tuple di R. Ogni relazione ha una chiave primaria. Importante!  Uno stesso insieme di attributi(o un attributo) potrebbe essere chiave di una relazione, ma non esserlo di un’altra.

Ogni relazione ha almeno una chiave. Questo garantisce:  Identificabilità univoca dei dati.  Possibilità di definire corrispondenza tra dati contenuti in relazioni diverse. La chiave primaria non può avere valori nulli:  Identificata mediante sottolineatura.  Usata per stabilire corrispondenza tra relazione.  Se nessun attributo della relazione può assumere il ruolo di chiave primaria, se ne definisce uno aggiuntivo a tale scopo.

I vincoli interrelazioni sono i vincoli che coinvolgono più relazioni della base di dati. -

Per verificare che siano rispettati, occorre considerare istanze di più relazioni.

Vincoli di integrità referenziale (foreign keys- chiavi esterne).  Servono a garantire che i riferimenti tra tabelle siano possibili.  Un vincolo di integrità referenziale fra insieme di attributi X di una relazione R1 compaiono come valori della chiave di R2. - I valori di X di ciascuna tupla di R1 compaiono come valori della chiave di R2. - In altre parole: R1 non può contenere valori per X che non esistono in R2.

Dal modello concettuale al modello logico. Obbiettivo Costruire uno schema logico in grado di descrivere informazioni contenute nello schema entitàassociazione prodotto nella fase di progettazione concettuale. Prima di passare allo schema logico, lo schema Entità associazione va ristrutturato. Eliminare dallo schema EA di tutti i costrutti non direttamente rappresentabili nel modello relazionale -

Attributi composti. Attributi multi-valore. Gerarchie di generalizzazione.

Vedremo la ristrutturazione di uno schema EA.

-

Traduzione di ogni entità in una tabella. Traduzione.

Si aggiunge un vincolo di integrità referenziale tra l’attributo chiave che ho aggiunto all’entità identificata esternamente e lo stesso attributo presente nell’entità di origine non può esistere uno studente iscritto ad una università che non esiste! Le entità vengono tradotte con una relazione che comprende gli attributi e la cui chiave primaria corrisponde all’identificatore dell’entità. Traduzione delle relazioni. Associazione molti a moltiNon dipende dalla cardinalità minima. Associazione 1: M (partecipazione totale) Es. GIOCATORE  contratto  SQUADRA Dato che l’associazione è uno a molti, possiamo dare una traduzione compatta traducendo l’associazione mediante attributi nella relazione giocatore che ha cardinalità (1,1) Dobbiamo evitare le ridondanze Un vincolo di integrità referenziale: Tra NomeSquadra della relazione Giocatore e Nome della relazione Squadra NO TABELLA DI RACCORDO PER L’ASSOCIAZIONE 1 a Molti.

Associazione 1:1  Se entrambe le entità hanno partecipazione totale nella relazione (1,1) posso mettere la chiave di una tabella nell’altra o viceversa. - Due rappresentazioni simmetriche e altrettanto valide. Cardinalità delle associazioni. Per cardinalità si intende il numero di volte che una data istanza di entità deve o può partecipare alla associazione    

(1,1): obbligatoria, una sola volta (1,n) : obbligatoria, almeno una volta (0,1): opzionale, una sola volta (0,n) : opzionale, n volte...


Similar Free PDFs