Database/Banche Dati/Sistemi Informativi



Похожие документы
Progettazione di Database

Elena Baralis 2013 Politecnico di Torino 1

Vincoli di integrità

Progettazione di Basi di Dati

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

MODELLO RELAZIONALE. Introduzione

BASE DI DATI: sicurezza. Informatica febbraio ASA

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

BASI DI DATI - : I modelli di database

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

IL SISTEMA INFORMATIVO

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati)

Le Basi di Dati. Le Basi di Dati

Alessandra Raffaetà. Basi di Dati

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Facoltà di Farmacia - Corso di Informatica

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Il modello relazionale

Organizzazione degli archivi

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Modulo 2 Data Base 2

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Il Modello Relazionale

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Data Base Relazionali

DBMS (Data Base Management System)

Informatica (Basi di Dati)

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Basi di Dati e Microsoft Access

Lezione V. Aula Multimediale - sabato 29/03/2008

Capitolo 2. Esercizio 2.1. Esercizio 2.2

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Rappresentazione grafica di entità e attributi

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Progettazione di Database. Un Esempio

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Sistemi Informativi e Basi di Dati

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

DATABASE RELAZIONALI

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Il database management system Access

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

PROGETTAZIONE CONCETTUALE

database: modello entityrelationship

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

LA NORMALIZZAZIONE. Introduzione

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

Segreteria da campo. Database Relazionali

I database. Cosa sono e a cosa servono i Database

Introduzione al data base

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

I Sistemi Informativi

Gestione Voti Scolastici

BASI DATI BIOINGEGNERIA ED INFORMATICA MEDICA. Lezione II - BioIngInfMed

Il Modello Relazionale

Il Modello Relazionale

Basi di dati. Esercitazione ER. Paolo Papotti. Esercizio giugno 2005

DATABASE. A cura di Massimiliano Buschi

Il modello relazionale dei dati

MODELLO E/R. Modellazione dei dati

I database relazionali (Access)

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base

Unità C1 Modello logico

Operazioni sui database

Modello E-R. Modello relazionale

Le Basi di dati: generalità. Unità di Apprendimento A1 1

TEORIA sulle BASI DI DATI

Basi di dati. Basi di dati = database. Basi di dati

ALGEBRA RELAZIONALE RIEPILOGO

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

Schemi Entita`-Associazione: linguaggio

Organizzazione delle informazioni: Database

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

Esercizio data base "Biblioteca"

Introduzione alla teoria dei database relazionali. Come progettare un database

Archivi e Basi di Dati

Транскрипт:

Database/Banche Dati/Sistemi Informativi Insieme di programmi in grado di: acquisire, elaborare, archiviare informazioni in genere ad uso di un organizzazione (azienda o istituzione).

Dato Informazione I dati sono registrazioni di una qualsiasi caratteristica della realtà, su un supporto che ne garantisca la conservazione, la comprensibilità e la reperibilità. Informazione = Dati + Contesto interpretativo L'informazione è fatta dai dati inseriti in un contesto che ne fissa l'interpretazione Esempio: "7" o "Mario Rossi" sono dati non informazioni, mentre: "La temperatura a Torino il 15/11 è 7 gradi" "Il presidente della Comunità Montana è Mario Rossi" sono informazioni

DBMS (Database Management System) Obiettivo: gestione strutturata di dati, organizzati in modo omogeneo. Base di dati: Collezione di dati organizzati in modo coerente (un insieme casuale di dati non è una base di dati!) Modella alcuni aspetti del mondo reale Costruito con funzionalità ben precise, note fin dall inizio della progettazione.

Esempi di basi dati: Rubrica telefonica personale anagrafe segreteria studenti dell università banca dati centrale del ministero delle finanze archivio di una biblioteca, di un laboratorio d analisi mediche, di un museo banca dati di una carta di credito banca dati delle prenotazioni dei voli di una compagnia aerea

Basi di dati: operazioni Progetto: definizione della base di dati quali informazioni rappresentare quali relazioni tra le informazioni Interazione: inserimento di dati cancellazione di dati aggiornamento (update) interrogazione Gestione di operazioni da parte di utenti multipli Protezione e sicurezza dei dati

Livelli di rappresentazione Livello fisico: come i dati sono memorizzati e organizzati su uno o più supporti di memoria secondaria Livello logico: come i dati sono organizzati secondo il modello logico adottato (relazionale, gerarchico, ad oggetti etc.) Livello concettuale: come i dati sono organizzati secondo uno schema concettuale Livello esterno (Viste): come i dati appaiono o vengono presentati all utente (possono essere anche programmi)

Livelli di rappresentazione Vista 1 Vista 2 Vista n Livello concettuale Livello logico Livello fisico

DB designer: Figure professionali (1) schema concettuale (astratto) della base di dati Traduzione dello schema concettuale in un modello dei dati: gerarchico relazionale object oriented...

DB programmer Figure professionali (2) (realizzazione della base di dati) DB administrator (gestione della base dati) Users utenti esperti (usano un linguaggio di interrogazione) utenti naifs (interazioni predeterminate, forms) programmi

Esempio: Database di un Museo come rappresentare/strutturare queste informazioni? Il museo contiene tre tipi di oggetti: reperti archeologici, materiale etnografico e opere d arte (quadri, sculture) Conseguentemente, il museo ha tre sezioni: Archeologica, Etnografica, Collezione (di opere) d arte Di tutti i pezzi del museo si vogliono mantenere le informazioni: numero di inventario, provenienza datazione, descrizione, misure, se ha subito restauri o no, sala ed eventualmente collocazione (scaffale, etc ) Se un oggetto ha subito restauri, si vuole mantenere l informazione riguardo presso quale centro è stato restaurato e quando

Le opere d arte hanno associata l informazione sugli autori Per i reperti archeologici si vuole mantenere l informazione sulla data del ritrovamento Gli oggetti della sezione etnografica sono divisi in tre tipologie: costumi, mobili, suppellettili Ogni sezione comprende alcune sale. Le sale possono essere condivise da sezioni diverse e l attribuzione di una sala ad una sezione puo cambiare nel tempo. Le sezioni hanno un impiegato responsabile

Database dei comuni (alpini?) Il database contiene per ogni comune, le seguenti informazioni: la sua collocazione geografica mappe territoriali l'elenco delle frazioni in cui è suddiviso dati sulla popolazione (residenti divisi in varie fasce) i riferimenti degli organi ammistrativi (sindaco, segretario comunale etc.) Dati e riferimenti sui servizi comunali (scuole, guardia medica ecc.) Dati sulle attività produttive (elenco delle imprese divise in varie categorie: commerciali, artigianali e agricole)

Modello relazionale I dati sono organizzati in relazioni le relazioni possono essere interpretate/visualizzate come tabelle un database è un insieme di relazioni

N.Inv Rappresentazione tabellare dei dati: esempio Libro Autore Titolo Anno_ed. Casa ed. Colloc.

Esempio rubrica COGNOME NOME TEL. Tanzi Rosario 095 89... Federici Susanna 011 55... De Bernardi Silvio 06 44...

Modello relazionale Relazione su due insiemi A e B è un sottoinsieme del prodotto cartesiano A x B Esempio sposato_con Persone x Persone figlio_di Persone x Persone vive_a Persone x Città Analogamente si possono considerare relazioni tra molti insiemi: A1 x.xan

Esempio di relazione Persone= {Paolo, Luca,Mario} Città={Torino,Roma} Persone x Città = {(Paolo, Torino), (Paolo, Roma), (Luca, Torino), (Luca, Roma), (Mario, Torino), (Mario, Roma)} Vive_a, ad esempio, è la seguente relazione: Vive_a = {(Paolo, Torino), (Luca, Torino), (Mario, Roma)}

Esempio di relazione (tabelle) Persone= {Paolo, Luca,Mario} Città={Torino,Roma} Persone x Città Vive_a Persone Città Persone Città Paolo Paolo Luca Luca Torino Roma Torino Roma Paolo Luca Mario Torino Torino Roma Mario Torino Mario Roma

Figlio di (Persone x Persone) Sono relazioni diverse! Persone Paolo Carla Mario Persone Anna Luca Flavio Persone Anna Luca Flavio Persone Paolo Carla Mario

Relazioni e Attributi Attributi: nomi che specificano un ruolo in una relazione, esempi: sposato_con(marito, Moglie) figlio_di(figlio, Genitore) vive_a(nome,citta,provincia) libro(n.inv, Autore, Titolo, Anno_edizione, Casa_editrice, Collocazione) Gli attributi devono avere nomi differenti

ESEMPIO DATABASE ESAMI Prima idea: un unica tabella: ESAME(Nome,Cognome,DataNascita, Matricola,Titolo, Docente,Voto,Lode) me Cognome D.Nasc Matricola Titolo Docente Voto Lode iorgio Rossi 12/12/1978 st1234507 Informatica Olivetti 28 NO na Bianchi 23/4/1979 st3234508 Storia Ferrero 24 NO dell'arte berto Verdi 24/2/1978 st5534507 Informatica Olivetti 30 SI na Bianchi 23/4/1979 st3234508 Biologia I Monti 25 NO iovanni Neri 13/11/1980 st2534599 Storia dell'arte Ferrero 30 SI

Organizzazione Inefficiente! Il database contiene informazione ridondante: per ogni esame sostenuto si ripetono tutti i dati dello studente per ogni corso si ripetono titolo e docente

Organizzazione migliore: STUDENTE(Nome,Cognome,Matricola,Data di Nascita) CORSI(Titolo,Docente,Codice Corso) ESAMI(Codice Corso,Voto,Lode,Data, Matricola)

Nome Cognome Matricola Data Nascita Giorgio Rossi st1234507 12/12/1978 Anna Bianchi st3234508 23/4/1979 Alberto Verdi st5534507 24/2/1978 Giovanni Neri st2534599 13/11/1980 Studenti Titolo Docente Codice Corso Informatica Olivetti 07081 Storia dell'arte Ferrero 07032 Biologia I Monti 04051 Corsi Codice Corso Voto Lode Matricola 07081 28 NO st1234507 07032 24 NO st3234508 07081 30 SI st5534507 04051 25 NO st3234508 07032 30 SI st2534599 Esami

Terminologia DOMINIO: insieme di valori degli attributi es. Nomi di persona, Nomi di città, Numeri interi, stringhe di al più 80 caratteri FORMATO: rappresentazione degli elementi di un dominio es. tre cifre decimali per i reali

SCHEMA DI RELAZIONE R(A1,, A_n) R relazione Ai attributi ISTANZA DI RELAZIONE (o semplicemente relazione) insieme di tuple t t=<v1, v2,, vn > : n-tupla I singoli valori vi appartengono al dominio dell attributo Ai

Istanza di relazione = insieme di tuple Non ci possono essere tuple ripetute l ordine delle tuple non conta Database = insieme di istanze di relazioni Terminologia alternativa: tuple: records attributi: campi (fields)

schema La tabella rubrica Rubrica(Cognome,Nome,Tel) nomi degli attributi COGNOME NOME TEL. Tanzi Rosario 095 89... Federici Susanna 011 55... De Bernardi Silvio 06 44... tuple

Informazione incompleta: Valori Nulli Il valore speciale null aggiunto a tutti i domini, per indicare assenza di valore indica: valore mancante, oppure valore sconosciuto Esempio PERSONE(Cognome,Nome,Indirizzo,Telefono) Il valore di Telefono potrebbe essere null.

Vincoli sulle Relazioni I valori contenuti nelle tabelle possono essere soggetti a vari tipi di vincoli che dipendono dalla realtà che si vuole rappresantare: vincoli di dominio: valori dei singoli attributi vincoli di tupla: valori di attributi correlati in una tupla vincoli di integrità valori di attributi in tuple diverse (anche in relazioni diverse)

Vincoli di dominio vincoli sui valori dei singoli attributi (vincoli di dominio), es: dato ESAMI(Studente,Voto, Lode,Corso) deve essere Voto >=18 AND Voto <=30 Vincoli sul valore di un attributo data

Vincoli di tupla vincoli sui valori di attributi correlati, es: Data la relazione ESAMI come prima deve essere not (Lode = Yes) OR Voto = 30 equivalente a Lode= No OR Voto = 30

Connettivi booleani: tavole di verità Negazione Congiunzione Disgiunzione A Vero Falso Not A Falso Vero A B A And B Vero Vero Vero Vero Falso Falso Falso Vero Falso Falso Falso Falso A B A Or B Vero Vero Vero Vero Falso Vero Falso Vero Vero Falso Falso Falso

Relazioni boolene not (A and B) = not (A) or not(b) not (A or B) = not (A) and not(b) La funzione imp (if) - implica A imp B =def not(a) or B La funzione sse (iff) A sse B =def (A imp B) and (B imp A) La funzione XOR -OR esclusivo A xor B =def (A or B) and not(a and B)

Implicazione Sono logicamente equivalenti: Se A allora B A solo se B A implica B Esempio: Se Mario viene alla festa allora Anna viene alla festa Mario viene alla festa solo se Anna viene alla festa Mario viene alla festa implica che Anna viene alla festa Tutte vengono rappresentate con not(a) or B o equivalentemente con A imp B

Altri esempi Lode = SI implica voto=30 Se lode= SI allora voto=30 Lode=SI solo se voto=30

Esempio Vincolo (complesso) Supponiamo che STUDENTE contenga anche gli attributi Borsa di Studio: valori {Yes, No} Reddito (della famiglia): euro Residente (nella città sede univ.): {Yes, No} Criterio per una borsa di Studio: ha una media >= 27 e un reddito <= 20000, oppure non è residente e ha una media >= 25 e un reddito <=25000

Codifica del Vincolo sia C il vincolo qui sotto: (media >= 27 AND reddito <= 20000) OR (residente = NO AND media >= 25 AND reddito <=25000) Condizione necessaria: BorsaDiStudio = YES implica C, tradotto in BorsaDiStudio = NO or C Condizione sufficiente: C implica BorsaDiStudio = YES tradotto in Not (C) or BorsaDiStudio= YES

Vincoli di chiave superchiave: sottoinsieme SK di attributi di una relazione per cui se i j allora ti[sk] tj[sk] Una superchiave identifica un entità in modo univoco in una relazione CHIAVE PRIMARIA = superchiave minimale non ci possono essere tuple diverse con la stessa chiave primaria (Indichiamo in modo sottolineato gli attributi che formano la chiave primaria)

Chiave Primaria STUDENTE(Nome,Cognome,Matricola,Data di Nascita) CORSI(Titolo,Docente,Codice_Corso) ESAMI(Codice Corso,Voto,Lode,Matricola) La chiave primaria di STUDENTE è l'attributo Matricola La chiave primaria di CORSI è l'attributo Codice_Corso La chiave primaria di ESAMI è la coppia di attributi Codice_Corso, Matricola

VINCOLI DI INTEGRITA sull entità: chiave primaria null integrità referenziale: consistenza tra tuple di due relazioni integrità semantica: vincoli che dipendono dalla realtà rappresentata (es. numero di libri in prestito a ciascun utente < 5, in una relazione in cui ogni prestito compaia come una tupla separata)

Vincoli di Integrità referenziali In un database relazionale le tabelle sono collegate tra loro tramite i valori di attributi correlati (o comuni) Esempio Il collegamento tra la relazione ESAMI e STUDENTI puo essere espresso dall attributo comune Matricola Il collegamento tra la relazione CORSI e ESAMI puo essere espresso dall attributo comune Codice Corso

Un vincolo di integrità referenziale tra un attributo A di una relazione R1 e una relazione R2 è soddisfatto se: il valore di ciascuna tupla di R1 per l attributo A esiste come valore della chiave primaria di una tupla di R2 In questo caso si dice anche che A è una chiave esterna (foreign key) di R1 La definizione si generalizza al caso di un insieme di attributi X anziche un singolo attributo A

ESEMPIO: Vincoli di Integrità referenziale STUDENTE(Nome,Cognome,Matricola,Data di Nascita) CORSI(Titolo,Docente,Codice Corso) ESAMI(Codice Corso,Voto,Lode,Matricola) Vincolo referenziale: tra Matricola di ESAMI e STUDENTE: i valori di Matricola di Esami devono esistere come valori della chiave primaria (Matricola di STUDENTE)

Altro Esempio (i vincoli referenziali riguardano attributi con nomi diversi) Auto(Targa, Marca, Modello, Proprietario) Proprietario(Nome,CodiceFiscale,Indirizzo) Incidente(NumSinistro,Veicolo1,Veicolo2, Data,Luogo) Vincoli di Integrita Referenziale: Tra Proprietario e CodiceFiscale Tra Veicolo1 e AUTO (sulla chiave primaria Targa) Tra Veicolo2 e Targa e AUTO (sulla chiave primaria Targa)

Funzionalità del DBMS relazionale Funzioni per definizione della base di dati inserimento / rimozione /aggiornamento di informazioni deve soddisfare i vincoli! Interrogazione Access DBMS relazionale in ambiente Office