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



Documenti analoghi
Vincoli di integrità

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

Modulo 2 Data Base 2

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

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

MODELLO RELAZIONALE. Introduzione

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

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

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

Il Modello Relazionale

Elena Baralis 2013 Politecnico di Torino 1

Progettazione di Basi di Dati

Il modello relazionale

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

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

Il Modello Relazionale

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

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

Data Base Relazionali

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Basi di dati IL MODELLO RELAZIONALE

I modelli logici dei dati. E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 2)

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

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

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

I modelli logici dei dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, IL MODELLO RELAZIONALE

BASI DI DATI - : I modelli di database

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

Modello Relazionale/1

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

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Database. Si ringrazia Marco Bertini per le slides

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo

Basi di dati 9 febbraio 2010 Compito A

Il modello relazionale

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

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

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

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 5

Il modello relazionale dei dati

Progettaz. e sviluppo Data Base

database: modello entityrelationship

Il Modello Relazionale

IL MODELLO RELAZIONALE

Facoltà di Farmacia - Corso di Informatica

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

I modelli logici dei dati

IL MODELLO RELAZIONALE

Definizione di domini

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

I modelli logici dei dati

Dalla progettazione concettuale alla modellazione di dominio

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Organizzazione degli archivi

Informatica (Basi di Dati)

Progettazione di Database. Un Esempio

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Corso di Informatica (Basi di Dati)

Basi di Dati e Microsoft Access

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

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

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

Il database management system Access

Introduzione alla teoria dei database relazionali. Come progettare un database

MODELLO E/R. Modellazione dei dati

TEORIA sulle BASI DI DATI

Parte II Il modello relazionale

Alessandra Raffaetà. Basi di Dati

Ottimizzazione delle interrogazioni (parte I)

Il modello relazionale. Relazione: tre accezioni. Relazione matematica. Parte II. Il modello relazionale

Corso sul linguaggio SQL

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Model o relazionale 1

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

DBMS (Data Base Management System)

Sistemi Informativi e Basi di Dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

LA NORMALIZZAZIONE. Introduzione

Rappresentazione grafica di entità e attributi

Cardinalità. Informatica. Cardinalità. Cardinalità. Cardinalità. Cardinalità. Cardinalità delle associazioni:

Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo Basi di dati a.a

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Capitolo 2. Esercizio 2.1. Esercizio 2.2

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

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

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

Lezione 2. Il modello entità relazione

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

Base di dati e sistemi informativi

Operazioni sui database

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

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

Basi di dati e Relazioni

Transcript:

Perché studiare il Modello Relazionale? Capitolo 2 Il modello relazionale È il modello più largamente usato Produttori: IBM, Informix, Microsoft, Oracle, Sybase, etc. Sistemi proprietari nei modelli più vecchi ad esempio IMS dell IBM Competitori recenti: modello orientato agli oggetti ObjectStore, Versant, Ontos Una sintesi emergente: il modello relazionale ad oggetti Informix Universal Server, UniSQL, O2 Basi di dati relazionali: definizioni Relazione: tre accezioni Base di dati relazionale: un insieme di relazioni Relazione: consiste di due parti: istanza: una tabella, con righe e colonne. #righe = cardinalità, #campi = grado/arità schema: specifica il nome della relazione, più il nome e il tipo di ciascuna colonna ad esempio: Studenti(sid:string, nome:string, login:string, età:integer, media:real) possiamo pensare a una relazione come a un insieme di righe di tuple (cioè tutte le righe sono distinte) relazione matematica: come nella teoria degli insiemi relazione (dall inglese relationship) che rappresenta una classe di fatti, nel modello Entity-Relationship; tradotto anche con associazione o correlazione relazione secondo il modello relazionale dei dati Relazione matematica D 1,, D n (n insiemi anche non distinti) prodotto cartesiano D 1 D n : l insieme di tutte le n-uple (d 1,, d n ) tali che d 1 D 1,, d n D n relazione matematica su D 1,, D n : un sottoinsieme di D 1 D n. D 1,, D n sono i domini della relazione Relazione matematica, esempio Partite string string int int Juve Lazio Juve Roma Lazio Milan Roma Milan Ciascuno dei domini ha due ruoli diversi, distinguibili attraverso la posizione: La struttura è posizionale 3 2 1 2 1 1

Struttura non posizionale A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo" Casa Juve Lazio Juve Roma Fuori RetiCasa RetiFuori Lazio Milan Roma Milan 3 2 1 2 1 Tabelle e relazioni Una tabella rappresenta una relazione se i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro In una tabella che rappresenta una relazione l ordinamento tra le righe è irrilevante l ordinamento tra le colonne è irrilevante Il modello è basato su valori i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple studenti Cognome Nome Data di nascita 6554 5/12/1978 8765 Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Maria 1/2/1978 esami Studente Voto Corso 3456 3 4 3456 24 2 9283 28 1 6554 26 1 corsi Codice Titolo Docente 1 Analisi 2 Chimica Bruni 4 Chimica Verdi studenti Cognome Nome Data di nascita 6554 5/12/1978 8765 Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Maria 1/2/1978 esami corsi Studente Voto Corso 3 24 28 26 Codice Titolo Docente 1 Analisi 2 Chimica Bruni 4 Chimica Verdi Struttura basata su valori: vantaggi indipendenza dalle strutture fisiche (si potrebbe avere anche con puntatori di alto livello) che possono cambiare dinamicamente si rappresenta solo ciò che è rilevante dal punto di vista dell applicazione l utente finale vede gli stessi dati dei programmatori i dati sono portabili più facilmente da un sistema ad un altro i puntatori sono direzionali 2

Definizioni Schema di relazione: un nome R con un insieme di attributi A 1,..., A n : R(A 1,..., A n ) Schema di base di dati: insieme di schemi di relazione: R = {R 1 (X 1 ),..., R k (X k )} Definizioni, 2 Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A t[a] denota il valore della ennupla t sull'attributo A Definizioni, 3 (Istanza di) relazione su uno schema R(X): insieme r di ennuple su X (Istanza di) base di dati su uno schema R= {R 1 (X 1 ),..., R n (X n )}: insieme di relazioni r = {r 1,..., r n } (con r i relazione su R i ) Relazioni su singoli attributi studenti Cognome Nome Data di nascita 6554 5/12/1978 8765 Paolo 3/11/1976 9283 Verdi Luisa 12/11/1979 3456 Maria 1/2/1978 studenti lavoratori 6554 3456 Informazione incompleta Informazione incompleta: motivazioni ll modello relazionale impone ai dati una struttura rigida: le informazioni sono rappresentate per mezzo di ennuple solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione I dati disponibili possono non corrispondere al formato previsto Nome Franklin Winston Charles Josip SecondoNome Delano Cognome Roosevelt Churchill De Gaulle Stalin 3

Informazione incompleta: soluzioni? non conviene (anche se spesso si fa) usare valori del dominio (, stringa nulla, 99,...): potrebbero non esistere valori non utilizzati valori non utilizzati potrebbero diventare significativi in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del significato di questi valori Informazione incompleta nel modello relazionale Tecnica rudimentale ma efficace: valore nullo: denota l assenza di un valore del dominio (e non è un valore del dominio) t[a], per ogni attributo A, è un valore del dominio dom(a) oppure il valore nullo Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli Troppi valori nulli studenti Cognome Nome Data di nascita 6554 5/12/1978 9283 Verdi Luisa 12/11/1979 Maria 1/2/1978 esami corsi Studente Voto Corso 3 24 2 9283 28 1 Codice Titolo Docente 1 Analisi 2 4 Chimica Verdi Tipi di valore nullo (almeno) tre casi differenti valore sconosciuto valore inesistente valore senza informazione I DBMS non distinguono i tipi di valore nullo Vincoli di integrità Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l applicazione di interesse Una base di dati "scorretta" Esami Studente Voto Lode Corso 276545 32 1 276545 3 e lode 2 787643 27 e lode 3 73943 24 4 Studenti 276545 787643 787643 Cognome Bianchi Nome Luca 4

Vincoli di integrità (VI) VI: condizione che deve essere vera per qualunque istanza della base di dati; ad esempio vincoli di dominio I VI sono specificati quando si definisce lo schema I VI sono controllati quando si modificano le relazioni Una istanza legale di una relazione è una istanza che soddisfa tutti i VI specificati I DBMS non dovrebbero permettere istanze illegali Se il DBMS controlla i VI, i dati memorizzati sono più fedeli al significato nel mondo reale Si evitano anche gli errori di inserimento! Vincoli di integrità, perché? descrizione più accurata della realtà contributo alla qualità dei dati utili nella progettazione usati dai DBMS nella esecuzione delle interrogazioni Attenzione: non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli formulabili in modo esplicito Tipi di vincoli vincoli intrarelazionali vincoli su valori (o di dominio) vincoli di ennupla vincoli interrelazionali Esami Studente Voto Lode Corso 276545 32 1 276545 3 e lode 2 787643 27 e lode 3 73943 24 4 Studenti 276545 787643 787643 Cognome Bianchi Nome Luca Vincoli di ennupla Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple Spesso: espressione booleana sui valori di attributo o espressioni aritmetiche su di essi (Voto = 3) OR NOT (Lode = "e lode") Caso particolare: Vincoli di dominio: coinvolgono un solo attributo (Voto 18) AND (Voto 3) Identificazione delle ennuple 27655 67653 Cognome Nome Corso non ci sono due ennuple con lo stesso valore sull attributo Nascita 1/7/79 non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita 5

Chiave insieme di attributi che identificano le ennuple di una relazione Formalmente: un insieme K di attributi è superchiave per r se r non contiene due ennuple distinte t 1 e t 2 con t 1 [K] = t 2 [K] K è chiave per r se è una superchiave minimale per r (cioè non contiene un altra superchiave) Una chiave 27655 67653 è una chiave: è superchiave Cognome Nome Corso Nascita 1/7/79 contiene un solo attributo e quindi è minimale Un'altra chiave 27655 67653 Cognome, Nome, Nascita è un altra chiave: è superchiave minimale Cognome Nome Corso Nascita 1/7/79 27655 67653 Cognome Nome Non ci sono ennuple uguali su Cognome e Corso: Cognome e Corso formano una chiave Ma è sempre vero? Un'altra chiave?? Corso Ing Civile Nascita 1/7/79 Vincoli, schemi e istanze i vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati interessano a livello di schema (con riferimento cioè a tutte le istanze) ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli Una particolare istanza può soddisfare altri vincoli ( per caso ) Studenti Cognome Nome Corso Nascita chiavi: Cognome, Nome, Nascita 6

27655 67653 Cognome Nome È corretta: soddisfa i vincoli Ne soddisfa anche altri ("per caso"): Cognome, Corso è chiave Corso Nascita Ing Civile 1/7/79 Esistenza delle chiavi Una relazione non può contenere ennuple distinte ma uguali Ogni relazione ha come superchiave l insieme degli attributi su cui è definita e quindi ha (almeno) una chiave Chiavi primarie e candidate Importanza delle chiavi Sono possibili molte chiavi candidate, una delle quali viene scelta come chiave primaria Per un dato studente e un dato corso, c è una singola classe verso Gli studenti possono seguire solo un corso, e ricevere un singolo voto per quel corso; inoltre, nessuna coppia di studenti in un corso riceve lo stesso voto Usato a sproposito, un VI può impedire la memorizzazione di istanze della base di dati che si presentano nella pratica! l esistenza delle chiavi garantisce l accessibilità a ciascun dato della base di dati le chiavi permettono di correlare i dati in relazioni diverse: il modello relazionale è basato su valori Chiavi e valori nulli In presenza di valori nulli, i valori della chiave non permettono di identificare le ennuple di realizzare facilmente i riferimenti da altre relazioni Cognome Nome Corso Nascita Ing Civile 1/7/79 La presenza di valori nulli nelle chiavi deve essere limitata 7

Chiave primaria Chiave su cui non sono ammessi nulli Notazione: sottolineatura Cognome Nome 43289 Corso Ing Civile Nascita 86765 1/7/79 Integrità referenziale informazioni in relazioni diverse sono correlate attraverso valori comuni in particolare, valori delle chiavi (primarie) le correlazioni debbono essere "coerenti" Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548K 53524 64521 73321 4/3/95 5/4/96 5/2/98 3295 3295 9345 TO E39548 839548 839548 Vigili Cognome Nome 3987 3295 9345 Luca 7543 Mori Gino Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548K 53524 4/3/95 3295 TO E39548 64521 5/4/96 3295 839548 73321 5/2/98 9345 839548 Auto Prov Numero Cognome Nome MI TO 39548K E39548 839548 Luca Vincolo di integrità referenziale Un vincolo di integrità referenziale ( foreign key ) fra gli attributi X di una relazione R 1 e un altra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2 Potete indicare un modello di dati senza integrità referenziale? Le pagine HTML del Web! vincoli di integrità referenziale fra: l attributo Vigile della relazione INFRAZIONI e la relazione VIGILI gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO 8

Violazione di vincolo di integrità referenziale Infrazioni Codice Data 34321 1/2/95 53524 4/3/95 64521 5/4/96 73321 5/2/98 Auto Prov Numero MI TO E39548 F34268 839548 Vigile 3987 3295 3295 9345 Prov Numero MI 39548K TO E39548 839548 839548 Cognome Nome Luca Vincoli di integrità referenziale: commenti Giocano un ruolo fondamentale nel concetto di modello basato su valori In presenza di valori nulli i vincoli possono essere resi meno restrittivi Sono possibili meccanismi per il supporto alla loro gestione ("azioni" compensative a seguito di violazioni) Attenzione ai vincoli su più attributi Integrità referenziale e valori nulli Impiegati Progetti Cognome Progetto 34321 53524 64521 Verdi XYZ 7332 Bianchi Codice XYZ BOH Inizio 1/2 7/21 9/21 Durata 36 24 24 Costo 2 12 15 Azioni compensative Esempio: Viene eliminata una ennupla causando una violazione Comportamento standard : Rifiuto dell'operazione Azioni compensative: Eliminazione in cascata Introduzione di valori nulli Eliminazione in cascata Impiegati Cognome Progetto 34321 53524 XYZ 64521 Verdi 7332 Bianchi Progetti Codice XYZ Inizio 1/2 7/21 Durata 36 24 Costo 2 12 BOH 9/21 24 15 Introduzione di valori nulli Impiegati Cognome Progetto 34321 53524 64521 Verdi XYZ 7332 Bianchi Progetti Codice XYZ Inizio 1/2 7/21 Durata 36 24 Costo 2 12 BOH 9/21 24 15 9

Linguaggi di Interrogazione Relazionali Uno dei punti di forza del modello relazionale: supporta un semplice ma potente linguaggio di interrogazione dei dati. Le interrogazioni possono essere scritte in maniera intuitiva, e il DBMS è responsabile di una valutazione efficiente Fattore chiave: semantica precisa per le interrogazioni relazionali. Permette all ottimizzatore di riordinare estensivamente le operazioni, garantendo che la risposta non cambi Modello relazionale: sommario Una rappresentazione tabellare dei dati Semplice e intuitivo, attualmente il più usato Il DBA può specificare vincoli di integrità basati sulla semantica dell applicazione. Il DBMS controlla eventuali violazioni Due VI importanti: chiavi primarie e chiavi esterne Inoltre abbiamo sempre vincoli di dominio Esistono linguaggi di interrogazione potenti e naturali 1