Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf ·...

51
Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini

Transcript of Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf ·...

Page 1: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Basi di Dati. Programmazione e gestione di sistemitelematici

Coordinatore: Prof. Paolo NesiDocenti: Prof. Paolo Nesi

Dr.sa Michela Paolucci

Dr. Emanuele Bellini

Page 2: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Cosa e’ l’informatica?

� Scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione (Accad. di Francia)

Page 3: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistema azienda

Sistema azienda

Sistema organizzativo

Sistema informativo

Sistema informatico

Page 4: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistema Organizzativo� E' un Insieme di risorse e di regole per lo

svolgimento coordinato delle attività(processi) per perseguire gli scopi prefissi

Page 5: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistema Informativo � E un sottosistema di una organizzazione

che gestisce le informazioni di interesse

� sistema informativo è costituito dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali, dalle modalità in cui esse sono gestite e dalle risorse, sia umane, sia tecnologiche, coinvolte.(wikipedia)

Page 6: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Risorse� le risorse di una azienda (o ente,

amministrazione): - persone - denaro - materiali - informazioni - …

Page 7: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Concetto di Sistema Informatico� Si tratta della parte di tutto il sistema informativo

che comprende automatismi: ovvero le informazioni che il sistema gestisce con la tecnologia informatica

� opera per supportare le altre componenti dell’organizzazione

� un Sistema Informativo è indipendente dalla sua computerizzazione

� Esempi di Sistema Informativo …

Page 8: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistema Informativo vs automazione� Un sistema informativo è indipendente da

ogni tipo di automatizzazione� Esistono organismi che hanno come

principale scopo quello di gestire informazioni (si tratta ad esempio di banche dati o servizi che gestiscono dati sensibili, etc)

Page 9: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Concetto di Sistema Informatico� Si tratta della parte di tutto il sistema

informativo che comprende automatismi: ovvero le informazioni che il sistema gestisce con la tecnologia informatica

Page 10: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Elementi di un Sistema informativo� Base di dati (BD)� Software di gestione della Base di Dati� Software applicativo� Hardware del computer (es. dispositivi di

memorizzazione)� Personale che sviluppa, gestisce o usa il

sistema�Prodedure stabilite di inserimento dati

� Quando, Chi, Come

Page 11: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Informazione strutturata� La struttura dell’informazione dipende dal suo

utilizzo e può essere modificata nel tempo� Esempio: per memorizzare dati su una

persona, nel corso del tempo:�Nome e cognome (fino a qualche secolo fa

non era ovvio neppure questo)�Nome, cognome, data di nascita e luogo di

nascita

�Codice Fiscale

Page 12: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Dati vs Informazione� Nei sistemi informatici le informazioni sono

rappresentate sotto forma di dati� Dati: fatti grezzi che devono essere interpretati e

correlati per fornire informazione

� Esempio:� Esempio: “Maria” e AA499SS sono una

stringa e un numero, ovvero due dati�Se vengono restituiti in risposta alla domanda

“Chi è l'autista e qual è il numero di targa della sua auto” allora costituiscono informazione

Page 13: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Le basi di dati� Gli archivi costituiscono una memoria di lavoro

indispensabile per gestire grandi quantità di informazioni, per ordinarle, metterle in relazione e recuperarle.

� Prima dell’introduzione delle tecnologie informatiche, gli archivi erano gestiti in forma cartacea, tramite schedari e registri, che permettevano di catalogare e ordinare i dati secondo un unico criterio di ricerca e rendevano disagevole il recupero e l’analisi dell’informazione: tutte le operazioni erano manuali.

� L’informatica ha consentito la conservazione ed il recupero delle informazioni, secondo i più svariati criteri, in maniera automatica, tramite un unico programma

Page 14: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Le basi di datiUn DB si può definire come:

“una collezione di dati usati per rappresentare

le informazioni che risultano di interesse per

un sistema informativo”.

Page 15: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Le basi di dati� Le basi di dati, o Data Base, sono sistemi che permettono la

manipolazione di grandi quantità di informazioni.� Consentono infatti:

� Raccolta e acquisizione dei dati� L’ archiviazione e la conservazione� La loro elaborazione e trasformazione� La distribuzione, comunicazione e scambio dell’informazione

� Il Data Base è l’insieme dei dati che organizzati costituiscono l’informazione.

� Il data base, però, non è costituito solo da un insieme di dati� tabelle (contenitori di dati)� query (strumenti di interrogazione, recupero dati), � maschere (strumenti per l’inserimento su computer)� report (ouput dei dati).

Page 16: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Prima dei database� Ogni applicazione aveva il suo file privato

� file: organizzazione sequenziale� applicazione: scritta in un linguaggio orientato alla gestione di

file (Cobol,PL/1)� gestione dei dati: file system

� Svantaggi:� ridondanza: se due applicazioni usano gli stessi dati, questi

sono replicati� inconsistenza: l’aggiornamento di un dato può riguardare

una sola copia del dato� dipendenza dei dati: ogni applicazione organizza i dati

tenendo conto dell’uso che deve farne

Page 17: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistemi di gestione di basi dati� Un sistema di gestione di basi di dati (DataBase

Management System, DBMS) è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise, e persistenti, assicurando la loro affidabilità e privatezza. Un DBMS deve essere efficiente ed efficace.

� In seconda approssimazione, si può definire una base di dati come una

� “collezione di dati gestita da un DBMS”.

Page 18: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sistemi di gestione di basi dati� Le basi di dati possono essere grandi:

� IBM certifica basi di dati di oltre 64 Gb! � basi di dati gestite da DBMS che devono prevedere

gestione di dati in memoria di massa.

� Le basi di dati sono condivise: � applicazioni e utenti diversi devono poter accedere,

secondo opportune modalità, a dati comuni � riduzione di ridondanze e di inconsistenze. � Per garantire l’accesso condiviso ai dati, ogni

DBMS dispone di un meccanismo di controllo di

concorrenza.

Page 19: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Condivisione� Le basi di dati possono essere grandi:

� IBM certifica basi di dati di oltre 64 Gb! � basi di dati gestite da DBMS che devono prevedere

gestione di dati in memoria di massa.

� Le basi di dati sono condivise: � applicazioni e utenti diversi devono poter accedere,

secondo opportune modalità, a dati comuni � riduzione di ridondanze e di inconsistenze. � Per garantire l’accesso condiviso ai dati, ogni

DBMS dispone di un meccanismo di controllo di

concorrenza.

Page 20: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Condivisione� Ogni componente di un' organizzazione è

coinvolta in una porzione del Sistema Informativo� Tali porzioni possono essere sovrapposte

� Un DB è una risorsa condivisa e integrata tra le differenti componenti dell'organizzazione

� La possibilità di condividere e integrare le informazioni permette di ridurre ridondanze (dati replicati in modo totale o parziale) e conseguenti Inconsistenze

Page 21: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Condivisione� Le informazioni non vengono mai

condivise completamente: sono sempre necessari opportuni meccanismi per il controllo della privacy e per regolamentare gli accessi ai contenuti stessi

� Al fine di condividere le informazioni ènecessario gestire accessi contemporanei ai dati stessi (concetto di 'controllo della concorrenza')

Page 22: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

DBMS� i DB sono persistenti, hanno infatti un ciclo di vita non è

limitato alle sole esecuzioni dei programmi che ne fanno uso

� I dati permangono al termine dei programmi che li elaborano

� I DBMS garantiscono affidabilità, ovvero la capacità di preservare il contenuto del DB nel caso in cui si verifichino malfunzionamenti software e/o hardware.

� E’ possibile effettuare backup e recovery dei dati� I DBMS garantiscono la possibilità di gestire i dati in

modo privato:� ciascun utente autenticato, in base ai permessi che gli sono

consentiti, può svolgere solo alcune azioni sui dati.

Page 23: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Memorizzazione� I Data Base usano spesso file in formati

proprietari per la memorizzazione dei dati� In tal caso offrono comunque agli utenti

una visualizzazione astratta dei dati: la gestione di memorizzazione e manipolazione dei dati avviene in modo del tutto trasparente rispetto all'utente stesso

Page 24: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

DBMS� Per efficienza di un DBMS si intende

� la sua capacità di svolgere le operazioni usando un insieme di risorse che siano accettabili per gli utenti.

�tempo e spazio

� Per efficacia di un DBMS si intende � la capacità di rendere produttive le attività

dei suoi utenti.

Page 25: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

3 livelli di astrazione di un DB� Schema esterno

� è la descrizione, in un modello logico, di una parte del DB attraverso “viste” parziali, o derivate, che prevedono anche strutture dati diverse rispetto a quelle usate invece nello schema logico. Tali strutture riflettono privilegi di accesso e necessità legate a particolari tipologie di utenti. Uno schema logico può avere ad esso associati più schemi esterni

� Schema logico� è la descrizione de DB nel modello logico “principale”

del DBMS (ad esempio la descrizione della struttura delle tabelle)

� Schema fisico� È’ larappresentazione dello schema logico attraverso l'uso

strutture

Page 26: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Indipendenza tra dati e accesso� Gli accessi al DB avvengono solo grazie

allo schema esterno, che può anche coincidere del tutto con lo schema logico.

� Indipendenza fisicai livelli logico ed esterno non dipendono dal livello fisico� una relazione viene usata allo stesso modo, ovvero

non dipende dalla sua realizzazione fisica (organizzazione dei file e relativa allocazione fisica)

� la realizzazione fisica può mutare senza necessariamente modificare i programmi

� mezzo di strutture fisiche di memorizzazione, cioè i file

Page 27: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Linguaggi per un DB� Data Definition Language (DDL),

linguaggio usato per definire schemi (logici, esterni, fisici) e anche altre operazioni generali

� Data Manipulation Language (DML), linguaggio necessario per interrogare/modificare/aggiornare le (istanze di) basi di dati

� Nei DBMS Standard SQL integra entrambe le funzionalità

Page 28: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Concetto di Modello di dati� Si tratta di un insieme di definizioni usate

per organizzare e gestire i dati di interesse per descriverne la struttura in modo che risulti comprensibile da un elaboratore elettronico

Page 29: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello di dati: tipologie� DB logici: ovvero indipendenti dalle strutture

fisiche ma disponibili nei DBMS: gerarchico, reticolare (network), relazionale, ad oggetti

� DB concettuali: sono indipendenti dalle modalitàdi realizzazione e sono usati per rappresentare entità reali e le relative relazioni nelle prime fasi della progettazione (si parla di entità-relazioni)

Page 30: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello relazionale� Il modello relazionale dei dati permette di

definire nuovi “concetti” grazie al meccanismo di strutturazione (costruttore) noto come “relazione” che consente di organizzare i dati in insiemi di aggregazioni (record) a struttura fissa.

� Una relazione viene descritta attraverso una tabella in cui le righe rappresentano specifici record

Page 31: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello Relazionale� Oggetto = Record

� Campi = Informazioni di interesse

� Oggetto = “Membro dello Staff”� Informazioni di interesse = Codice, Cognome,

Nome, Ruolo, Anno di assunzione

Analista 2007GinoRossixxx1CODICE COGNOME NOME RUOLO ASSUNZIONE

Page 32: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello Relazionale

�Esempio:�posso organizzare i dati relativi ai docenti e ai relativi corsi universitari per mezzo della relazione “docenza”rappresentabile dalla seguente tabella

DOCENZA

Page 33: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello relazionale

01/12/1980MavisBrown937653

10/10/1980LucySmith587614

12/02/1981PaoloVerdi200768

23/04/1981AnnaBlack485745

25/11/1980MarySmith276545

DataNasciNomeCognomeMatric

STUDENTISTUDENTI

ClarkChemistry04

BealeChemistry03

GrantPhysics01

TutorTitoloCodice

CORSICORSI

04B200768

01B937653

04B276545

01C276545

CorsoVotoStud

ESAMIESAMI

Page 34: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Modello relazionale

01/12/1980MavisBrown937653

10/10/1980LucySmith587614

12/02/1981PaoloVerdi200768

23/04/1981AnnaBlack485745

25/11/1980MarySmith276545

DataNasciNomeCognomeMatric

STUDENTISTUDENTI

ClarkChemistry04

BealeChemistry03

GrantPhysics01

TutorTitoloCodice

CORSICORSI

04B200768

01B937653

04B276545

01C276545

CorsoVotoStud

ESAMI = relazione tra studenti e corsiESAMI = relazione tra studenti e corsi

Page 35: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Schemi e istanze di relazionalePer schema di una relazione si intende la

sua intestazione cioè il nome della relazione seguito dai nomi dei suoi attributi; esempio:

DOCENZA(Corso, Nome_docente).L’istanza di una relazione è costituita

dall’insieme delle sue righe. Lo schema di relazione è stabile nel tempo, a

differenza della sua istanza.[1]

Page 36: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Schemi e istanze di relazionale

Schema

della relazione

Istanza

della relazioneRecord

Docenza

Page 37: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Relazioni e base datiUna base di dati è generalmente costituita da

più relazioni, i cui record contengono valori comuni, ove necessario per stabilire corrispondenze (associazioni).

Page 38: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Relazioni e base datiMatricola Cognome Nome Data_nascita

389726 Rossi Maria 25/07/1981421695 Bianchi Antonio 11/03/1978379723 Verdi Luca 03/09/1980

Studente Voto Corso

389726 28 01389726 21 04379723 25 04421695 26 03

STUDENTI

ESAMI

CORSI

Codice Titolo Docente

01 Informatica Pinco02 Matematica Pallino03 Storia Bello04 Statistica Alto

Page 39: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Relazionali e base datiL’esempio precedente mostra una delle

caratteristiche fondamentali del modello relazionale: i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori. Per tale motivo spesso si afferma che: “il modello relazionale è basato sui valori “

Page 40: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Integrita’� I dati devono soddisfare dei “vincoli” che

esistono nella realtà di interesse, ad esempio:

� uno studente ha la residenza in una sola città (si parla di dipendenze funzionali)

� ad ogni studente universitario viene associato un identificativo univo, ovvero il numero di matricola (chiave)

� uno studente può ricevere un voto per ogni esame che deve essere: un intero positivo compreso tra 18 e 30 (dominio)

� il guadagno dovuto al lavoro straordinario di una persona viene calcolato come prodotto del numero di ore per la paga all'ora (vincoli dinamici)

Page 41: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Informazione incompleta e valorinulliA volte può accadere che non si dispongano di tutti i dati di

una tupla (record) di una relazione. Esempio: per uno studente potrei non disporre del numero di matricola o della data di nascita. Come fare?

Per rappresentare in modo semplice la non disponibilità di valori, il concetto di relazione viene esteso prevedendo che un record possa assumere su ogni suo campo, un valore speciale (detto valore nullo) che denota l’assenza di informazione.

Page 42: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Informazione incompleta e valorinulli Nota bene:

È opportuno controllare la presenza di valori nulli nelle relazioni perchésolo alcune configurazioni possono essere ammesse

Matricola Cognome Nome Data_nascita

389726 Rossi Maria NULLNULL Bianchi Antonio 11/03/1978

… … … …

STUDENTI

Page 43: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Vincoli di integrita’

� In alcuni casi può accadere che, a seguito di errori umani nell’introduzione di dati, alcuni record delle tabelle rappresentino informazioni non corrette

Page 44: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Vincoli di integrita’In una base di dati èopportuno evitare situazioni come questa. A tale scopo è stato introdotto il concetto di vincolo di integrità come proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette.

Matricola Cognome Nome Data_nascita

200768 Verdi Fabio 12/02/1799942761 Rossi Luca 10/10/1979942761 Bianchi Mario 14/07/1983

Studente Voto Lode Corso

942761 22 Si 01942761 36 No 03379796 30 No 01

STUDENTI

ESAMI

Page 45: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Chiavi

I più importanti vincoli intrarelazionali sono i vincoli di chiave: senza di essi il modello relazionale perderebbe la sua utilitàe quindi il suo senso! Una chiave è un insieme di attributi utilizzati per identificare univocamente i record di una relazione. (esempi)

Inoltre, il vincolo di chiave permette di stabilire efficacemente le corrispondenze fra dati contenuti in relazioni diverse che caratterizzano il modello razionale come “modello basato sui valori”.

Page 46: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Chiavi

NOTA BENE: Bisogna limitare il più possibile la presenza

di valori nulli nelle chiavi. Su una delle chiavi minimali detta chiave primaria èassolutamente vietata la presenza di valori nulli.

Page 47: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Chiave primaria

Insieme minimale di attributi di una relazione che consente di identificare univocamente i record di una tabella; non può ammettere valori nulli.

Page 48: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Chiave primaria

In quasi tutti i casi è possibile trovare delle chiavi minimali e quindi scegliere una chiave primaria. Nei rari casi in cui ciò non accada è necessario introdurre un attributo aggiuntivo (Un codice. Probabilmente non significativo al fine interpretativo dei dati) i cui valori vengano generati automaticamente e associati a ciascuna tupla della relazione.

Page 49: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Vincoli integrita’ referenziale

Targa Cognome Nome

BK749L Rossi MinoCM294P Bianchi TinoRL296K Verdi PinoWR692Y Celesti Lino

Codice Data Articolo Codice_targa

743792 26/10/2004 34 BK749L927450 10/10/2004 53 RL296K992001 04/10/2004 15 WR692Y999223 10/09/2004 27 BK749L

AUTO

INFRAZIONI

Page 50: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Vincoli integrita’ referenziale

Un vincolo di integrità referenziale (detto anche chiave esterna) tra un insieme X di attributi di una relazione R1 e un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R2 compaiono come valori della chiave primaria dell’istanza di R1.

Page 51: Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf · Sistema azienda Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico.

Sicurezza

� I dati devono essere protetti da accessi non autorizzati; il DBA deve considerare i seguenti fattori:� valore attuale dell’informazione per l’organizzazione� valore attuale dell’informazione per chi vuole violare la privatezza� persone che possono accedere ai dati in base a quali permessi e

modalità

In base ai precedenti fattori, si decide:� un regolamento di accesso ai dati� eventuali effetti in seguito ad una violazione