PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema concettuale. Il modello concettuale più importante, è lo schema E/R, ovvero lo schema entità/relazioni, che ha l obiettivo di rappresentare in modo grafico i dati e le loro relazioni all'interno di una certa realtà di interesse. Per la costruzione di uno schema E/R, si parte dal semplice concetto che la realtà da rappresentare è composta da entità, ognuna delle quali è caratterizzata da specifiche proprietà, dette anche attributi. Entità: sono gli oggetti concreti o astratti riguardanti la realtà che si intende analizzare Tipo di entità: descrive la struttura di tutte le entità di una certa natura. Se ad esempio abbiamo le entità I Promessi Sposi e Zibaldone, sappiamo che i tipi di entità sono i libri. Istanza: è ogni singolo elemento che appartiene a un tipo di entità. Ad esempio, il libro I Promessi Sposi è un'istanza del tipo di entità Libri. Proprietà o attributi: sono le principali caratteristiche che descrivono una certa entità. Se ad esempio abbiamo le entità I Promessi Sposi e Zibaldone, possiamo definire come principali attributi il titolo, il numero di pagine o la casa editrice. In generale, ogni attributo, è specificato da: - Un nome - Un formato, il quale indica il tipo di valore che può assumere - Una dimensione che indica la quantità massima di caratteri o cifre inseribili - Un valore: l'insieme dei possibili valori assunti da un attributo si chiama dominio dell'attributo. Se ad esempio consideriamo l'entità persona, possiamo dire che il dominio dell'attributo età è rappresentato dall'insieme di valori che vanno da 1 a 120, infatti una persona non può avere un'età pari a 0. - Un opzionalità che indica se un attributo è obbligatorio, ovvero se deve avere per forza un valore, o facoltativo, ovvero se può avere anche valori nulli. Attributo semplice: è un attributo che possiede un tipo semplice, come ad esempio il nome o l'età Attributo composto o aggregato: è un attributo che è composto da più informazioni, come ad esempio l'indirizzo che è composto da via, numero civico e città. Attributo multiplo: è un attributo che è costituito da più valori, come ad esempio l'hobby o l'autore Chiave primaria: è la chiave che possiede il numero minimo di attributi necessari per identificare una riga di una tabella. Se ad esempio consideriamo l'entità persona, possiamo identificare l'attributo codice fiscale come chiave primaria. Chiave candidata o superchiave: è l'insieme degli attributi che identificano univocamente una riga di una tabella. Se ad esempio consideriamo l'entità persona, possiamo identificare gli attributi nome, cognome e data di nascita come chiave candidata o superchiave. Rappresentazione grafica di entità e attributi
ASSOCIAZIONI Associazione: è un legame logico tra due o più entità e si differenzia da quest'ultima perché, invece di essere una classe di oggetti del mondo reale, è semplicemente una classe di fatti. Istanza di un associazione: è una combinazione di istanze delle entità che prendono parte all associazione. Rappresentazione di un associazione: il rombo posto a metà della linea che unisce le due entità rappresenta la loro associazione Esempio di associazione e di istanza di un associazione Grado di un associazione (associazioni binarie e multiple): è il numero di entità che partecipano all associazione. In questo caso, un'associazione si dice binaria se è di grado 2, ovvero se il numero di entità che partecipano all'associazione sono solamente 2. Un associazione, invece, si dice multipla se il grado è superiore a 2 e quindi se il numero di entità che partecipano all associazione sono più di due. Esempio di associazione multipla Associazioni ricorsive o associazioni sulla stessa entità: si dice che un'associazione è ricorsiva se vengono messe in relazione tra di loro due entità identiche. Associazione ricorsiva
Attributi di entità e attributi di associazione: molto spesso è possibile descrivere una specifica realtà di interesse con diversi schemi del modello E/R. Infatti, se consideriamo la realtà di una classe di alunni in cui si vogliono rappresentare sia le interrogazioni che le assenze, è possibile avere un'unica associazione composta dalle due informazioni che si vogliono analizzare. Inoltre, a questa associazione creata, è necessario aggiungere degli attributi, come ad esempio l'attributo tipo che indicherà se si tratta di un assenza o di un'interrogazione, l'attributo voto che rimarrebbe non valorizzato nel caso lo studente sia stato assente, e l attributo motivo che rimarrebbe non valorizzato nel caso lo studente sia stato interrogato. Attributi di entità e attributi di associazione Attributo che passa dall'associazione all'entità: per fare in modo che un attributo passi da un'associazione ad un'entità, bisogna semplicemente trasformare l'associazione in un entità e spostare quindi tutti gli attributi dell'associazione precedente nell entità appena creata. Attributo che passa dall'associazione all'entità Attributo che diventa un entità: per fare in modo che un attributo diventi entità, bisogna semplicemente trasformare l'attributo in un entità. Se ad esempio consideriamo l'attributo ragione sociale riguardante l'entità persona e vogliamo conoscere altre informazioni relative a quella ditta, dobbiamo trasformare l'attributo ragione sociale in un entità. Attributo che diventa un entità
Associazione diretta: data un'associazione A tra le entità X e Y, se si attribuisce un verso da X a Y, si dice che l'associazione è diretta da X a Y. Associazione inversa: data un'associazione A tra le entità X e Y, se si attribuisce un verso da X a Y, si dice che l'associazione è inversa da Y a X. Associazione totale: Proprietà delle associazioni: - Partecipazione di un associazione - Molteplicità di un associazione Partecipazione di un associazione: Un associazione diretta si dice totale quando il legame tra le entità deve essere sempre presente, ovvero quando ad ogni elemento di X deve corrispondere almeno un elemento di Y, altrimenti si dice parziale. Un associazione inversa, invece, si dice totale quando il legame tra le entità deve essere sempre presente, ovvero quando ad ogni elemento di Y deve corrispondere almeno un elemento di X, altrimenti si dice parziale. In generale, un associazione totale, indica obbligatorietà, o meglio che la partecipazione è obbligatoria, e nello schema E/R, viene rappresentata con una linea continua, mentre un'associazione parziale, indica facoltatività, o meglio che la partecipazione è facoltativa, e nello schema E/R, viene rappresentata con una linea discontinua (tratteggiata). Molteplicità di un associazione: La molteplicità di un associazione diretta o inversa rappresenta il numero massimo di entità che partecipano all associazione. In particolar modo, un associazione diretta o inversa viene detta univoca se la partecipazione all associazione si ha con al massimo un istanza di ognuna delle due entità. Un associazione diretta o inversa, invece, viene detta multivalore, o multipla, se non vi sono vincoli di numero nella partecipazione all associazione da parte di una delle due entità. Cardinalità di un associazione: La cardinalità di un'associazione, descrive la molteplicità dell'associazione diretta e quella della sua inversa. In generale, la cardinalità, può essere o a uno o a molti. Associazione uno a uno: si dice che un'associazione è biunivoca o uno a uno, quando ad un'istanza di X corrisponde una e una sola istanza di Y e viceversa. Associazione uno a uno Associazione diretta totale: Una capitale appartiene ad un solo stato Associazione inversa totale: Uno stato ha una sola capitale Cardinalità 1:1 Associazione uno a molti: si dice che un'associazione è semplice o uno a molti, quando ad un'istanza di X possono corrispondere una o più istanze di Y e a ogni istanza di Y deve corrispondere una e una sola istanza di X. Associazione uno molti Associazione diretta totale: Un docente deve disporre di uno o più cassetti Associazione inversa parziale: Un cassetto può non essere assegnato ad alcun docente Cardinalità 1:N
Associazione molti a molti: si dice che un'associazione è complessa o molti a molti, quando ad ogni istanza di X possono corrispondere una o più istanze di Y e viceversa. Associazione molti a molti Associazione diretta totale: Un docente deve insegnare in almeno una classe Associazione inversa totale: Una classe deve aver almeno un docente Cardinalità N:N VINCOLI DI INTEGRITÀ I vincoli di integrità, sono quelle proprietà che devono essere soddisfatte dalle istanze della base di dati. Se ad esempio consideriamo l entità studente e gli attributi matricola, cognome e età, possiamo notare che non ci possono essere due studenti con lo stesso numero di matricola ma soprattutto l'età deve essere superiore a 0 e inferiore a 120, in quanto una persona non può vivere più di 120 anni. Per questo, è importante notare quali attributi necessitano di particolari vincoli e successivamente imporre i cosiddetti vincoli di integrità, ovvero quei vincoli che la base di dati deve soddisfare per non compromettere l'integrità dei dati. In generale, ogni vincolo, può essere considerato come un asserzione o una funzione booleana, che associa ad ogni istanza il valore vero o falso. Se l'asserzione assume il valore vero, allora, si dice che il vincolo è soddisfatto dall istanza, altrimenti si dice che i dati violano il vincolo. I vincoli di integrità, si dividono in vincoli di integrità impliciti e in vincoli di integrità espliciti. Vincoli di integrità impliciti: sono quelli imposti dalla stessa struttura dei dati e si dividono in: - Vincoli di chiave primaria, il quale impongono che le istanze di una categoria debbano essere tutte diverse tra di loro. Nello schema E/R, questi vincoli, vengono rappresentati sottolineando i relativi attributi. - Vincoli referenziali, il quale, date due entità A e B e un'associazione tra loro, impongono che non si possa inserire un elemento in A se questo non è associato ad un elemento in B. Nello schema E/R, questi vincoli, riguardano la partecipazione di un'associazione e vengono rappresentati con linee continue delle associazioni tra le entità. Vincoli di integrità espliciti: sono quelli che impongono delle restrizioni sul modo in cui i dati possono cambiare. Un esempio di vincolo esplicito è quello in cui il valore dell'attributo età non può essere né negativo né maggiore di 120. Nello schema E/R, questi vincoli, non possono essere rappresentati, ma al contrario, si ricorre alla sintassi V NumProgres sivo : Espression e, dove NumProgres sivo indica il numero progressivo del vincolo, mentre Espression e indica una qualsiasi espressione che serve per specificare il vincolo. Ad esempio, per esprimere il V1: 0 Persona.Et à 120. vincolo sull'età, bisogna scrivere COLLEZIONI DI ENTITÀ E GERARCHIE In fase di progettazione concettuale, può accadere che alcune entità abbiano istanze in comune e quindi è utile organizzare le entità in gerarchie ovvero in strutture ad albero. In questo caso, la radice, rappresenta l entità che contiene le caratteristiche comuni, chiamata anche entità padre, mentre i vari nodi rappresentano le entità che contengono caratteristiche specifiche, chiamate anche entità figlie. In generale, per creare una gerarchia, si attua un processo di specializzazione che consiste nel creare entità figlie sempre più specifiche. Al contrario, invece, percorrendo la gerarchia dal basso verso l'alto, si attua un processo di generalizzazione, in quanto si risale l'albero passando dalle entità più specifiche a quelle più generiche. Ad esempio, l entità PersonaleScuola può essere
pensata come una generalizzazione delle entità Docente e NonDocente. La caratteristica più importante, è che le entità figlie ereditano sempre le proprietà dell entità padre. Specializzazione e generalizzazione Nella gerarchia, è possibile distinguere diversi tipi di entità figlie, tra cui: - Le entità sottoinsieme: sono specializzazioni della stessa entità padre e non sono disgiunte tra loro. Infatti, nell esempio successivo, un istanza dell entità padre PersonaleScuola, può essere contemporaneamente sia un istanza dell entità figlia Docente, sia un istanza dell entità figlia PersonaleMaschile. - Le entità sottoinsieme disgiunte: sono specializzazioni della stessa entità padre e sono caratterizzate dall avere istanze disgiunte. Infatti, nell esempio successivo, le entità figlie Docente e NonDocente sono sottoinsiemi disgiunti dell entità padre PersonaleScuola. - Le entità copertura: non sono tra di loro disgiunte ma l unione delle loro istanze coincide con quelle dell entità padre. Infatti, nell esempio successivo, le entità figlie MenoDi20Anni e PiùDi20Anni (uguale o più di 20 anni), sono entità copertura dell entità padre Persona. - Le entità partizione: sono tra di loro disgiunte ma l unione delle loro istanze coincide con quelle dell entità padre. Infatti, nell esempio successivo, le entità figlie Maschio e Femmina, sono entità partizione dell entità padre Persona. Entità sottoinsieme Entità sottoinsieme disgiunte Entità copertura Entità partizione