DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose...
-
Upload
santuzza-drago -
Category
Documents
-
view
218 -
download
2
Transcript of DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose...
DATABASE
Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose quantità di informazioni di un’ organizzazione, in modo:
-Semplice;
-Efficiente, nell’ uso del processore e della memoria;
-Efficace;
-Sicuro;
-Solido;
-Condiviso.
Un Sistema Informativo comprende strumenti automatici, risorse umane emateriali, procedure manuali, norme organizzative orientate alla gestione delle informazioni di un’ organizzazione.
Un Sistema Informatico (SI), anche chiamato EDP, è un sottoinsieme del Sist.Informativo e si dedica alla gestione automatica delle informazioni, rappresentate da dati digitali.
Componenti software: Archivio e Applicazione informatica.
1
DATABASE
Possibili accessi multipli
La definizione dei dati e i dati stessi sono salvati all’interno dello stesso DB.
L’ applicazione e i suoi dati sono diventati indipendenti l’uno dall’altro.(Esempio)
Utente
DB
Definizione dati
Applicazione
Applicazione 1 Applicazione 2
Dati applicazione 1
Dati applicazione 2
2
DBMS (DataBase Management System)
La teoria dei DB introduce una nuova metodologia di gestione degli archivi, con l’obiettivo di superare i limiti della metodologia precedente. Presenta caratteristiche di indipendenza logica ed indipendenza della struttura fisica dei dati.
E’ il sistema di gestione del database nel suo complesso. Funzioni:1.Gestire grandi quantità di dati con l’obiettivo dell’efficienza;2.Condivisione= necessità di coordinare gli accessi;3.Persistenza= assicurare l’affidabilità dei dati nel tempo.
3
DBMS (DataBase Management System)
Progettare un DB consta di 5 passi:1.Analisi del problema;2.Progettazione concettuale, utilizzando il modello Entità-Relazione;3.Progettazione logica, utilizzando vari modelli: gerarchico, reticolare, relazionale, a oggetti, XML;4.Progettazione fisica e implementazione;5.Realizzazione applicazioni/ procedure, utilizzando linguaggi di programmazione e di interrogazione.
Modellazione dei dati comprende 1,2 e 3; consiste nella progettazione delle tabelle del DB.Modellazione funzionale comprende 4 e 5; consiste nell’ implementazione delle tabelle e nella creazione delle funzioni che accedono ai dati.
Modello E-R risponde a : ‘COSA deve essere rappresentato?’Modello logico risponde a : ‘COME sono organizzati i dati?’
4
MODELLI LOGICI PER LE BASI DI DATI
Modello Gerarchico
I dati sono organizzati secondo strutture ad albero che rappresentano la gerarchia degli elementi dell’archivio.
La radice è il record principale da cui partono uno o più sottoalberi; ogni elemento è denominato segmento e il tipo di relazione realizzata tra segmenti padri e figli è 1:N (1 a molti).
«ogni padre può avere più figli, ma ogni figlio può avere solo un padre»
Dipendenti
Bianchi
Vittori
Zaccarian
Figli
Claudia
LuigiGiancarlo
MarioSimona
Dipendenti
Bianchi
Vittori
Zaccarian
Figli
ClaudiaClaudia
LuigiGiancarloGiancarlo
MarioSimona
5
MODELLI LOGICI PER LE BASI DI DATI
Modello Reticolare
La base del modello è la struttura a grafo, dove mediante puntatori è possibile accedere ai dati più facilmente rispetto al modello gerarchico.
E’ rappresentato con un insieme di vertici (o nodi) e un insieme di coppie di vertici (o connessioni). È possibile stabilire connessioni N:N realizzate attraverso record connettori.
Paziente
Angelo
Giulio
Antonio
Esame clinico
Radiografia
Ecografia
TAC
6
6
5 6
5
4
MODELLI LOGICI PER LE BASI DI DATI
Modello RelazionaleUsa come struttura dati la relazione (o tabella), che è composta da:-Le colonne sono i Campi (o proprietà);-Ogni riga corrisponde a un Record.L’informazione è contenuta nei campi e non in strutture fisiche come i puntatori. Realizza l’indipendenza dei dati; la rappresentazione logica dei dati non fa alcun riferimento a quella fisica.
ScontrinoNumero Data Importo
1 15/10/2012 5,002 16/10/2012 6,503 17/10/2012 12,00
EntitàCampi
Tracciato record
Record
7
MODELLI LOGICI PER LE BASI DI DATI
Modello a oggetti di database (object-oriented)
Si fondano sugli stessi principi della programmazione ad oggetti, nella quale ogni oggetto può essere caratterizzato da proprietà e da metodi. Quindi memorizzano nel DB non solo i dati ma anche le operazioni che possono essere eseguiti su di essi.
Modello XMLXML è simile al HTML, da cui eredita i tag, che in questo linguaggio non sono preimpostati, sono molteplici e descrivono quanto racchiuso tra le parentesi <>, come definito dal programmatore. Ha una struttura di tipo gerarchico.
<?xml version="1.0" encoding="utf-8" ?><system.serviceModel> <services> <service name="MvcApplication1.RecuperaService"> <host> <baseAddresses> <add baseAddress="http://localhost:8732//RecuperaService/" /> </baseAddresses> </host> </service> </services></system.serviceModel>
8
MODELLO ENTITA’ - RELAZIONE
Entità : oggetto principale di interesse per la realtà che vogliamo modellare. Può essere classificata definendo il tipo di entità attraverso un nome. Viene rappresentata graficamente con un rettangolo, nel quale l’intestazione è il nome dell’entità, mentre le relazioni sono linee che collegano i rettangoli.
Entità forte: non ha bisogno di altre entità per essere identificata.Entità debole: richiede altre entità per essere identificata.Esempio. Paziente --> e. forte; Esame clinico --> e. debole.
Entità associativa: è usata per associare 2 o più entità allo scopo di risolvere un’associazione multipla (es. una relazione N:N).Esempio. Paziente ed Esame clinico; Referto è e.associativa.
Istanza : riferita ad un’entità, consiste in un singolo oggetto descritto dall’entità.E’ l’analogo di un singolo record all’interno di un file.
Attributi : descrivono le entità con le quali sono associati. Una particolare istanza di un attributo è detta valore.
9
MODELLO ENTITA’ - RELAZIONE
Dominio di un attributo : collezione di tutti i possibili valori, omogenei tra loro, che un attributo può avere. I diversi valori assunti dagli attributi determinano le diverse istanze dell’entità. Per ogni attributo è necessario individuare:
1.Il formato;
2.La dimensione;
3.L’ opzionalità a. obbligatorio : esempio è nome di Persona;
a. facoltativo : è ammesso il valore nullo (es. titolo universitario);
Gli attributi sono classificati in :
•Identificatori: sono detti chiavi e permettono di distinguere fra loro le istanze di una stessa entità;
•Descrittori: descrivono una caratteristica non unica di un’istanza di un’entità.
Scontrino
Numero {PK} Data Importo
Entità
Identificatorechiave
Descrittori10
MODELLO ENTITA’ - RELAZIONE
Relazione: rappresenta un’ associazione tra una o più entità. Ha 2 versi con specifici significati. Ogni verso ha un’entità di partenza, una di arrivo e una descrizione dell’ associazione.
Studente Cellulare(E’ posseduto)
Possiede
Le relazioni sono classificate in termini di grado, cardinalità, direzione, esistenza.
Grado: n° di entità associate nella relazione; si ottengono rel. binarie, ternarie, n-arie. Esempio binaria ricorsiva:
Giocatori Capitano
Cardinalità:
1:1
1:N (N grande)
N:N (o M)
Donna Figlio
Atleta Gara
Nazione Capitale
11
MODELLO ENTITA’ - RELAZIONE
Direzione: indica l’entità ‘padre’ da cui trae origine la relazione con l’entità ‘figlio’.
Esistenza: obbligatoria: se un’istanza di un’entità deve necessariamente esserci affinché sia inclusa nella relazione.
opzionale: se l’istanza di un’entità non è richiesta.
Persona Automobile
facoltativa
obbligatoria
I nomi degli attributi devono essere scritti al singolare, così come il nome dell’entità !
Studente Scuola
PadreFiglio
Ospitare
12
CHIAVI PRIMARIE E CHIAVI ARTIFICIALI
13
Una chiave primaria è un attributo o un insieme di attributi che identifica univocamente una specifica istanza di un’entità.
Per identificarla, un attributo deve avere le seguenti caratteristiche:
•Deve essere specificato il suo valore per ogni istanza dell’entità;
•Il valore deve essere unico per ogni istanza dell’entità;
•Il valore non deve cambiare o diventare nullo nel corso del tempo utile.
Le chiave candidate diventano, con la scelta, chiave primaria e chiavi alternative.
Chiave primaria si indica con (pk) a fianco della chiave.
Esempio. (schema relazionale)
Impiegati (CodFiscale(pk), Nome, Telefono)
Impiegati (CodFiscale, Nome, Telefono)
Impiegati (CodFiscale, Nome, Telefono)
Una chiave artificiale è formata da un attributo privo di un significato proprio che viene aggiunto agli altri per ottenere un codice univoco per ogni istanza.Esempio: attributo di tipo contatore.È ammessa quando nessun attributo ha tutte le proprietà di una chiave primaria e quando quest’ultima è grande e complessa.
MIGRAZIONE DI CHIAVI, CHIAVI ESTERNE E COMPOSTE
14
• Migrazione di chiave primaria
Le entità deboli ereditano l’ intera chiave primaria dall’ entità padre.
Scrittura nello schema relazionale: Esami (ID_Esame(pk), ID_Paziente(pk))
Paziente
ID_Paziente(pk)
Esame
ID_Esame(pk)ID_Paziente(pk)
Entità forte Entità debole
Una chiave esterna è un attributo che completa una relazione attraverso l’identificazione dell’ entità padre. Fornisce un metodo per mantenere l’integrità referenziale dei dati e per navigare tra le diverse istanze di un’ entità. Utilizza la notazione (fk) iniziali di «foreign key». Ogni relazione «1 a molti» nel modello deve essere supportata da una chiave esterna.
Una chiave composta è una chiave primaria formata da due o più attributi.
MODELLO ENTITA’ - RELAZIONE
Persona
Cod. Fiscale (pk)NomeCognomeData_NascitaIndirizzo
Automobile
Modello (pk)ProduttoreCilindrataPrezzo_Listino
Acquistare
Data_AcquistoPrezzo_Acquisto
Nome_associazione
attributi_associazione
15
MODELLO ENTITA’ - RELAZIONE
16
L’ entità Acquisto eredita le chiavi primarie di Persona e Automobile ed assume significato solo in abbinamento alle altre due entità. Per evitare di avere entità deboli si aggiunge un attributo, in genere un numero progressivo assegnato automaticamente (es.: Contatore).
Persona
Cod. Fiscale(pk)NomeCognomeData_NascitaIndirizzo
Automobile
Modello(pk) ProduttoreCilindrataPrezzo_Listino
Acquisto
Cod.Fiscale(pk)Modello(pk)Data_AcquistoPrezzo_Acquisto
Entità debole
Entità forte Entità forte
CHIAVI ESTERNE
17
Nel caso di chiavi primarie artificiali si scrive: ID + <nome entità>.Nel caso di chiavi esterne artificiali si scrive: id + <nome entità>.
Nel caso di p.k. definita con «codice», la f.k. si scrive: cod + <nome entità>.Nel caso di p.k. definita con un generico codice, la f.k.si scrive: cod + <p.k.>.Esempio: p.k. = alunno; f.k. = codAlunno.
Città
ID_Città(pk)id_Nazione(fk)id_Continente(fk)
Continente
ID_Continente(pk)
appartiene
Nazione
ID_Nazione(pk)id_Continente(fk)appartiene forma
Il tipo di dato, la lunghezza e il formato della chiave esterna devono essere uguali a quelli della corrispondente chiave primaria.
NOMI DELLE CHIAVI
18
Impiegato
ID_Impiegato(pk)
Solo con chiave primaria
Impiegato
ID_Impiegato(pk)id_Reparto(fk)
Con chiave primaria e c. esterna
Entità con chiavi artificiali
Entità con chiavi non artificiali
Impiegato
CodFiscale(pk)
Entità con chiave primaria
Impiegato
CodFiscale(pk)Nazionalità(fk)
Entità con chiave primaria e c. esterna
Schema relazionale Impiegati [ID_Impiegato(pk),……, id_Reparto(fk)]
Schema relazionale Impiegati [CodFiscale(pk),……., Nazionalità(fk)]
Schema relazionale Impiegati [ID_Impiegato,……, id_Reparto*]
Schema relazionale Impiegati [CodFiscale,……, Nazionalità*]
ATTRIBUTI CHE DESCRIVONO RELAZIONI
19
Utente
Utente(pk)
Libro
Libro(pk)
Prende in prestito
Utente
Utente(pk)
Libro
Libro(pk)
Prestito
CodLibro(pk)CodUtente(pk)Data_InizioData_Fine
Eseguire Trattare
Esercizi.1)Descrivere graficamente l’associazione Coordinare tra le entità Docente e Classe, il grado, la cardinalità, la direzione e l’esistenza delle relazioni ed inserendo gli attributi alle entità.2)Descrivere graficamente l’associazione Effettuare tra le entità ContoCorrente e Movimento, il grado, la cardinalità, la direzione e l’esistenza delle relazioni ed inserendo gli attributi alle entità.3)Proporre e descrivere graficamente associazioni valide tra le entità Artista, Città, Museo e Opera, inserendo gli attributi, una chiave primaria per ogni entità, inoltre il grado, la cardinalità, la direzione e l’esistenza delle relazioni.
20
REGOLE PRATICHE PER PROGETTARE UN DATABASE
21
Un’ entità è considerata un qualunque oggetto per il quale è necessario salvare alcuni attributi oppure che deve essere rappresentato in un DB.I nomi delle entità da rappresentare devono:1)essere unici;2)avere un significato per l’ utente finale;3)contenere un numero minimo di parole per la descrizione.
Gli attributi sono oggetti che descrivono un’ entità. Devono essere atomici, ovvero presentare un singolo fatto o una singola informazione.
MATRICI TRA ENTITA’ E ATTRIBUTI•Matrice entità – entità: indica le relazioni occorrenti tra le entità selezionate. •Matrice entità – attributo: indica l’assegnazione degli attributi alle entità. E’ possibile individuare il tracciato record.
A partire dalla matrice e-e si devono individuare le relazioni tra entità e classificarle in termini di: cardinalità, opzionalità, direzione, dipendenza (grado).
LE REGOLE DI LETTURA
OGNI +
<nome dell’entità di partenza> + { deve ; può } +
<nome dell’associazione> + { un solo ; uno o più } +
<nome dell’entità di arrivo>.
Esempio.
Persona AutomobileAcquistare
Ogni persona può acquistare una o più automobili.
Ogni automobile deve essere acquistata da una sola persona.
EntitàOpzionalitàCardinalità
22
AFFINARE LO SCHEMA DI BASE
23
1) Le entità devono partecipare alle relazioni
2) Unificare le relazioni uno a uno: esempio Cittadino – Tessera Sanitaria
3) Semplificare le relazioni molti a molti: sostituirle con un’entità associativa;
esempio Utente – Libro.
4) Eliminare le relazioni ridondanti: esempio Città – Nazione – Continente.
5) Trasformare relazioni complesse in relazioni binarie: sostituirle con un’entità
associativa, le entità originali vengono relazionate a questa nuova entità.
Conoscenza Progettonecessita
Impiegato
possiede impegna
Conoscenza ProgettoImpiegato
Conos/Impieg/Prog