La progettazione del database I contenuti dei database rappresentano i dati della realtà da modellare. Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata, individuandone gli elementi caratterizzati e i legami intercorrenti tra loro. La progettazione di un database avviene su 3 livelli: 1) Livello concettuale, rappresenta la realtà dei dati attraverso un modello chiamato Il modello concettuale: E’ definito attraverso uno schema dei dati; questa rappresentazione grafica è indipendente da: o I valori che saranno assegnati ai dati; o Le applicazioni degli utenti del database; o (Le visioni parziali dei dati da parte di particolari utenti.) Questo metodo consente al database di evolvere nel tempo insieme alla realtà per la quale è stato progettato e creato. Il modello concettuale rappresenta un patrimonio importante per le aziende, poiché descrive i tutti dati esistenti in azienda. 2) Livello logico, descrive la composizione ed il formato dei dati nel loro aspetto di struttura logica di dati attraverso il Il modello logico: Nel passaggio dal modello concettuale al modello logico l’insieme dei dati è dotato di una struttura che deve facilitarne: o La manipolazione dei dati; o L’interrogazione, la possibilità di ritrovare i dati. in pratica programmatori e/o utenti finali utilizzano (creano, vedono, modificano) i dati secondo il modello logico. Esistono 3 tipi di modelli logici: Gerarchico Reticolare Relazionale 3) Livello fisico, è l’effettiva installazione degli archivi elettronici, cioè è l’implementazione del livello logico. Le strutture del modello logico sono implementate selle memorie di massa realizzando in pratica il modello fisico della base di dati (di cui il programmatore e l’utente finale possono totalmente disinteressarsi). L’attività di progettazione consente prima di tutto di costruire una rappresentazione della realtà in modo indipendente dalla struttura dei dati. Riassumendo: 1) (Livello CONCETTUALE) Prima di tutto sono individuati i dati che sono significativi, ed è definito lo schema concettuale rappresentativo della realtà (Modello E/R). 2) (Livello LOGICO) Vengono poi definite le strutture logiche di dati che saranno utilizzare da utenti e programmi (tabelle e associazioni) 3) (Livello FISICO)infine tali strutture sono implementate (automaticamente dal DBMS) memorizzandole su un supporto fisico di registrazione e si ottiene, quindi, il database. 1 LIVELLO CONCETTUALE: Il modello entità/associazioni Il modello entità/associazioni (entity/relationship) è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono, per costruire un modello concettuale dei dati. Risultato di questo lavoro di analisi è la rappresentazione grafica detta schema E/R, che mette in evidenza gli aspetti fondamentali del modello concettuale con i dati caratterizzanti e le associazioni tra essi. Gli elementi di un modello E/R sono: - Entità - Attributi - Associazioni L’entità è un oggetto che ha un significato anche quando è considerato in modo isolato ed è di interesse per la realtà che si vuole modellare; Le entità si classificano definendone il tipo di entità attraverso un nome. Le istanze sono i singoli elementi che appartengono ad un'unica entità. Per esempio: gli studenti di una scuola sono racchiusi tutti nell’entità Studenti. La rappresentazione grafica dell’entità è identificata da un rettangolo. L’associazione è un legame che stabilisce un’interazione tra 2 entità. Ogni associazione ha 2 versi con specifici significati diversi. La rappresentazione grafica dell’associazione è identificata da una linea. Gli attributi rappresentano le proprietà delle entità e talvolta delle associazioni. Le caratteristiche di ogni attributi sono: - Il formato, il tipo di valore che assume; - l’opzionalità, la possibilità di non essere inserito. Il valore nullo rappresenta un’informazione mancante. L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo. Prende il nome di chiave primaria l’insieme di uno o più attributi, che consentono di distinguere un’istanza dall’altra per la stessa entità (identificano in maniera univoca l’istanza) . La rappresentazione grafica delle chiavi primarie è costituita dal post-fisso “PK” per tutti gli attributi o dalla sottolineatura dell’ (degli) attributo (i). Le associazioni tra entità Un’associazione può essere obbligatoria (deve essere sempre presente), oppure opzionale (può non essere presente). La rappresentazione grafica dell’associazione obbligatoria è una linea continua, invece, per quella opzionale la linea è tratteggiata. Il grado di un verso dell’associazione è la caratteristica che indica quante istanze dell’entità di arrivo si associano all’istanza dell’entità di partenza. Il grado può essere possono essere di 3 tipi: 1) Associazione 1:N (uno a molti) o semplice; ad un elemento di E1 corrispondono più elementi di E2, mentre, ad ogni elemento di E2 corrisponde un e un solo elemento dell’insieme . 2) Associazione 1:1 (uno a uno) o biunivoca; ad ogni elemento dell’insieme E1 corrisponde uno e un solo elemento dell’insieme E2 3) Associazione N:N (molti a molti) o complessa; 2 ad ogni elemento dell’insieme E1 possono corrispondere più elementi dell’insieme E2 e viceversa. Rappresentazione grafica Schema Concettuale Tipo (cardinalità) associazione Nome Entità 1 Attributo 1: tipo1 Attributo 2 :tipo2 Attributo 3 .tipo3 1 Nome Associazione Attributo 1: tipo1 Attributo 2 :tipo2 Nome Entità 2 Attributo 1: tipo1 Attributo 2 :tipo2 Eventuali attributi associazione 3