DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose...

Post on 01-May-2015

218 views 2 download

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