09 Le Basi di Dati x1 - salvemini.altervista.org · Fondamenti di Informatica - Le Basi di Dati...
Transcript of 09 Le Basi di Dati x1 - salvemini.altervista.org · Fondamenti di Informatica - Le Basi di Dati...
1/42
Le Basi di DatiLe Basi di Dati
Corso di Laurea in Ingegneria Civile
Politecnico di Bari – Sede di Foggia
Fondamenti di InformaticaAnno Accademico 2010/2011
docente:prof. ing. Michele Salvemini
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 2/42
Sommario
� Sistema Informativo
� Sistema Informatico
� Dati e Informazione
� Basidi Dati e DBMS
� Compiti di un DBMS
� Progettazione di un DB
� Modello dei Dati
� Modello Concettuale
� Modello Logico
� Gerarchico� Reticolare
� Modellazione Concettuale
� Modello Entità Relazioni
� Attributi, Valori nulli, Chiavi e Relazioni
� Progettazione Logica
� Il Modello Relazionale
� Relazioni e Tabelle� Concetti base
� Note
� Esempi
� Chiavi
� Vincoli di Integrità� Algebra Relazionale
� Selezione, Proiezione, Unione, Intersezione, Differenza
� Cenni di SQL
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 3/42
Sistema Informativo
� Organizza e gestisce le informazioni necessarie a perseguire gli scopi di una determinata organizzazione
� Sia a livello individuale che in organizzazioni di grandi dimensioni
� È necessario:
� Disponibilità di informazioni
� Capacità di gestirle in modo efficace
� Esiste indipendentemente dalla sua automatizzazione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 4/42
Sistema Informatico
� Rappresenta la parte automatizzata di un sistema informativo
� Consente la raccolta, organizzazione e conservazione dei dati
� Garantisce:
� la conservazione dei dati in modo permanente su dispositivi per la memorizzazione
� l’aggiornamento rapido che rifletta le variazioni
� l’accessibilità
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 5/42
Dati e Informazione
� Dato
� unita` elementare (grezza) di informazione
� Informazione
� è l’elaborazione dei dati per rispondere a esigenze specifiche
� Un dato è ciò che è immediatamente presente alla conoscenza. Una sua elaborazione può portare alla conoscenza di una informazione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 6/42
Basi di Dati e DBMS
� Sistema di gestione di basi di dati DBMS:
� è un sistema software in grado di gestire collezioni di dati che siano
� grandi
� condivise
� persistenti
� assicurando la loro affidabilità e privatezza
� Base di dati DB:
� è una collezione di dati gestita da un DBMS
Accesso ad un archivio tramite DBMS
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 7/42
Compiti di un DBMS
� possono essere riassunti come segue:
� Mantenere l’informazione indefinitamente.
� Permettere un recupero dei dati nella maniera più efficiente possibile.
� Gestire la sicurezza dei dati (ovvero distinguere varie tipologie di utenti per negare o consentire l’accesso a determinate porzioni dei dati).
� Garantire (entro certi limiti) il recovery della base dati in caso di guasti del sistema.
� Controllare l’accesso contemporaneo da parte di più utenti agli stessi dati, garantendo la coerenza e l’integrità del database stesso.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 8/42
Progettazione di un DB
� Consiste nel definire la struttura, le caratteristiche ed il contenuto.
� Si basa sull’uso di opportune metodologie
� La metodologia di riferimento consiste di tre fasi fondamentali:
� Modellazione concettuale
� Progettazione logica� Progettazione fisica
� In ciascuna fase viene definito un modello dei dati
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 9/42
Progettazione di un DB -Modello dei Dati
� Un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che sia comprensibile ad un elaboratore
� Il modello dei dati può essere definito a livello:
� Concettuale
� Logico
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 10/42
Progettazione di un DB -Modello dei Dati – Modello Concettuale (1/2)
� Rappresenta le specifiche informali della realtà di interesse in termini di una descrizione formale e completa indipendentemente dai criteri di rappresentazione utilizzati nei sistemi di gestione
� Caratteristiche
� È indipendente dalla scelta del modello logico
� Descrive concetti del mondo reale piuttosto che i dati utili per rappresentarli
� Utilizzato nella fase preliminare del processo di progettazione della base di dati
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 11/42
Progettazione di un DB -Modello dei Dati – Modello Concettuale (2/2)
� Modello Entità Relazioni
� Modello per la rappresentazione concettuale dei dati
� Costrutti del modello
� Entità: rappresentano classi di oggetti, fatti, persone che hanno proprietà comuni ed esistenza “ autonoma”
� Relazioni: rappresentano legami logici, significativi per l’applicazione tra due o più entità
� Attributi: Ogni entità è caratterizzata da attributi che la specificano.
� uno studente ha delle proprietà� Cognome, nome, numero di matricola indirizzo
� un esame ha delle proprietà� Data, voto
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 12/42
Modellazione Concettuale -Modello Entità-Relazioni
� Entità: Una classe di oggetti (astratti o tangibili) della realtà di interesse (dominio) distinguibili dagli altri
� Attributi: le particolari proprietà che caratterizzano ciascuna entità nel contesto di interesse
� Occorrenza di una entità
� è un esemplare (istanza) della classe
� è caratterizzata da valori assunti dagli attributi
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 13/42
Modellazione Concettuale -Modello Entità-Relazioni - Attributi
� Dominio di un attributo
� L’insieme dei valori che possono essere assegnati ad un attributo di una entità.
� Es. età: 16-65, nome: insieme delle stringhe di caratteri
� Attributo derivato
� Attributo che è possibile o conveniente determinare a partire da altri attributi immagazzinati.
� Es.: Età è derivabile da data di nascita (è anche conveniente?).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 14/42
Modellazione Concettuale -Modello Entità-Relazioni – Valori Nulli
� Quando per un attributo in un esemplare di una entità non sia possibile determinare un valore
� viene creato il valore Null.
� Il suo significato può essere duplice:
� Ignoto
� Non applicabile
� Es.:
� Voto_di_maturità = null (non è noto il valore, ma la maturità è stata conseguita).
� Civico = null (non esiste una numerazione poiché l’urbanizzazione non è completa).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 15/42
Modellazione Concettuale -Modello Entità-Relazioni – Chiave di una Entità (1/4)
� Attributi chiave: per distinguere tra occorrenze di una stessa entità si assume l’esistenza di un vincolo di unicità sugli attributi.
� Chiave: è un sottoinsieme di attributi (che può ridursi ad uno) di una entità la cui combinazione di valori è distinta per ciascuna occorrenza di una entità.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 16/42
Modellazione Concettuale -Modello Entità-Relazioni – Chiave di una Entità (2/4)
� Note sul vincolo di chiave
� La proprietà di unicità è un vincolo sullo schema dell’entità, non su un particolare insieme di occorrenze di entità. Essa pertanto vale sempre.
� La chiave va determinata quindi sulla base delle proprietà del mini mondo che la base di dati rappresenta.
� Una entità può avere più di un insieme di attributi che verificano il vincolo di chiave.
� Es.: Numero di telaio e numero di targa per l’entità “autovettura”.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 17/42
Modellazione Concettuale -Modello Entità-Relazioni – Chiave di una Entità (3/4)
� Esempio
� Utilizzando una rappresentazione tabellare:
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 18/42
Modellazione Concettuale -Modello Entità-Relazioni – Chiave di una Entità (4/4)
� Esempio
� La proprietà di un attributo di essere chiave dipende dal contesto
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 19/42
Modellazione Concettuale -Modello Entità-Relazioni – Le Relazioni (1/4)
� Relazione: Associazione o legame logico esistente tra due o più entità
� Vincoli strutturali
� Le relazioni possono avere vincoli che limitano le combinazioni delle entità partecipanti.
� I vincoli dipendono dal contesto
� Cardinalità e Partecipazione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 20/42
Modellazione Concettuale -Modello Entità-Relazioni – Le Relazioni (2/4)
� Cardinalità
� 1:1(uno a uno)
� 1:N(uno a molti)
� M:N(molti a molti)
� Partecipazione
� Totale: dipendenza esistenziale. Ogni occorrenza di entità partecipa alla relazione
� Es.: I requisiti dichiarano che un progetto (una occorrenza della entità Progetto) deve essere gestito da un dipartimento, altrimenti non ha senso che esista.
� Graficamente espressa con una “linea di relazione” marcata
� Parziale: Una occorrenza di entità può partecipare alla relazione.
� Es.: Un impiegato può essere direttore di un dipartimento, ma non necessariamente
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 21/42
Modellazione Concettuale -Modello Entità-Relazioni – Le Relazioni (3/4)
� Esempio
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 22/42
Modellazione Concettuale -Modello Entità-Relazioni – Le Relazioni (4/4)
� Considerazioni finali sul modello E-R
� Va costruito dopo una adeguata attività di raccolta di requisiti.
� Consente una descrizione ad alto livello dei dati.
� Aiuta a chiarire ulteriormente i requisiti
� Consente di esplicitare numerosi vincoli
� E’ soggettivo: numerose scelte sono possibili e vanno adeguatamente ponderate.
� Se costruito in modo adeguato consente la mappatura immediata nel modello logico relazionale.
� E’ comunque necessario procedere a raffinamenti e verifiche (normalizzazione).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 23/42
Progettazione di un DB -Modello dei Dati – Modello Logico
� Definisce la strutturazione dei dati
� Utilizza strutture di dati astratte (modello concettuale) che riflettono una particolare organizzazione
� è possibile realizzare diversi tipi di database a partire da uno stesso modello concettuale.
� Nel corso degli anni si sono sviluppati vari tipi di modelli logici
� Gerarchici
� Reticolari
� relazionali.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 24/42
Progettazione Logica -Il Modello Relazionale
� E’ attualmente il modello più utilizzato nel mondo dei database (Oracle, Informix, IBM, Microsoft, etc.)
� Permette di definire tipi per mezzo del costruttore relazione che consente di organizzare dati in insiemi di record a struttura fissa
� Ha solide basi teoriche.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 25/42
Progettazione Logica -Il Modello Relazionale – Relazioni e Tabelle
� Una relazione matematica R è un sottoinsieme del prodotto cartesiano
� Ricordiamo che, dati due insiemi D1 e D2, il prodotto cartesiano è l’insieme delle possibili coppie ordinate (v1,v2) tale v1 appartiene a D1 e v2 appartiene a D2.
� Esempio
� A={1,2,4} B={a,b}
� A x B = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}
� R = {(1,b),(4,a),(4,b)}
� R è un insieme:
� non ci possono essere elementi duplicati,
� Non è definito un ordinamento fra gli elementi della relazione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 26/42
Progettazione Logica -Il Modello Relazionale – Concetti base del modello (1/3)
� Una base di dati è rappresentata come una collezione di relazioni.
� Possiamo informalmente considerare una relazione come una tabella.
� Ciascuna riga rappresenta una collezione di valori di dati tra loro collegati
� Il nome della relazione e quelli delle colonne consentono di comprendere il significato dei valori delle righe.
� Tutti i valori di una colonna sono del medesimo tipo, appartengono cioè ad un medesimo dominio.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 27/42
Progettazione Logica -Il Modello Relazionale – Concetti base del modello (2/3)
� Dominio
� un insieme di valori atomici, cioè indivisibili.
� voti_università: valori tra 0 e 30.
� nomi_propri: l’insieme dei nomi di persona.
� A ciascun dominio si associa un tipo di dato o formato.
� Es: voti_università: interi
� nomi_propri: stringhe di caratteri
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 28/42
Progettazione Logica -Il Modello Relazionale – Concetti base del modello (3/3)
� Schema di una relazione R:
� specificato come un nome R e una lista di attributi (A1, A2,..,An).
� Ciascun attributo Ai corrisponde ad un dominio D(Ai)
� Es.: Studente (nome, cognome, matricola, data_nascita, data_immatr)
� Grado della relazione: numero di attributi.
� Istanza di una relazione R r(R):
� è un insieme di tuple r=(t1,t2,..,tm).
� Ciascuna tupla t è una lista ordinata di valori t=(v1, v2,.., vn);
� Ciascun valore vi è un elemento di D(Ai) oppure è un valore null.
� Cardinalità: il numero di tuple nella estensione r(R).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 29/42
Progettazione Logica -Il Modello Relazionale – Note
� Note sulla definizione
� Le tuple sono definite come insieme. Ciò implica l’assenza di un particolare ordinamento sulle tuple stesse.
� I valori all’interno di una tupla sono stati definiti come “lista ordinata”, quindi esiste un ordinamento
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 30/42
Progettazione Logica -Il Modello Relazionale – Esempi
� STUDENTI(Matricola,Cognome,Nome,DataNascita),
� ESAMI(Studente,Voto,Corso),
� CORSI(Codice,Titolo,Docente)
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 31/42
Progettazione Logica -Il Modello Relazionale – Chiavi e Identificatori
� La chiave di una relazione è un insieme di attributi della relazione che identifica univocamente ogni tupla in ogni istanza della relazione
� C è una chiave per una relazione se valgono le seguenti proprietà:
� univocità: non possono esistere due tuple di R con lo stesso valore di C
� minimalità: eliminando un attributo da C la proprietà precedente decade
� Chiavi candidate e chiavi primarie
� Una chiave esiste sempre (l’insieme di tutti gli attributi)
� nessuna chiave primaria può assumere valore null.
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 32/42
Progettazione Logica -Il Modello Relazionale – Vincolo di Integrità (1/2)
� proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione
� Vincolo intrarelazionale:
� di tupla: (NOT (Lode = “lode”) OR (Voto = 30))
� di dominio: (Voto > 18) AND (Voto < 30)
� di chiave
� Vincolo interrelazionale:
� vincolo di integrità referenziale (foreign key) fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R1 compaiono come valori della chiave (primaria) dell’istanza di R2
� Es.: fra Corso nella relazione Esami e la relazione Corsi (vedi slide seguente)
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 33/42
Progettazione Logica -Il Modello Relazionale – Vincolo di Integrità (2/2)
� Esempio
� I valori evidenziati in rosso non rispettano i vincoli di integrità
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 34/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale
� L’Algebra relazionale fornisce un set di operatori:
� definiti sulle relazioni
� Producono come risultato una relazione
� Possono essere combinati per formare espressioni complesse
� Esecuzione procedurale
� Gli operatori primitivi dell’Algebra Relazionale sono:
� Ridenominazione;
� Unione;
� Differenza;
� Proiezione;
� Restrizione (o Selezione);
� Prodotto
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 35/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale – La Selezione
� Selezione (o restrizione) �
� Produce risultati:
� Con lo stesso schema dell’operando
� Con un sottoinsieme delle n-uple dell’operando (Quelle che soddisfano la condizione)
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 36/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale – La Proiezione
� Proiezione
� Produce risultati:
� Su un sottoinsieme degli attributi dell’operando
� Con valori da tutte le n-uple della relazione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 37/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale – Unione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 38/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale – Intersezione
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 39/42
Progettazione Logica -Il Modello Relazionale – L'Algebra Relazionale – Differenza
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 40/42
Cenni di SQL (1/3)
� L’SQL (Structured Query Language), sviluppato da IBM negli anni ’70, nasce come linguaggio testuale finalizzato al trattamento dei database di tipo relazionale.
� Nel corso degli anni l’SQL ha subito diverse modifiche giungendo alla definizione di diversi standard.
� scopi
� Definizione dei Dati (DDL : Data Definition Language)
� Manipolazione dei Dati (DML : Data Manipulation Language).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 41/42
Cenni di SQL (2/3)
� Concetto di Query
� L’interrogazione del database è detta Query:
� una richiesta al DBMS di visualizzare quei record che soddisfano determinati criteri.
� Il risultato di una query viene denominato dynaset (insieme dinamico) poichè costituito da un’insieme di campi prelevati dalle tabelle e composti a formare i record di una tabella virtuale.
� Questa non è concretamente memorizzata sul supporto fisico: i suoi valori provengono da altre tabelle e vengono aggiornati dinamicamente.
� Linguaggi come l’SQL hanno come finalità primaria proprio la descrizione dei criteri di selezione dei record (ovvero la formulazione delle query).
Fondamenti di Informatica - Le Basi di Dati Politecnico di Bari sede di Foggia - 29 Gen 2011 42/42
Cenni di SQL (3/3)
� Alcune istruzioni DDL
� CREATE TABLE
� DROP TABLE
� Alcune istruzioni DML
� SELECT (attributi) FROM (relazioni) WHERE (condizioni)
� INSERT INTO (relazione): <tupla1>, <tupla2>, …
� DELETE FROM (relazione) WHERE (condizioni)
� UPDATE (relazione) SET (attributo = espressione) WHERE (condizioni)