Il Modello Relazionale



Похожие документы
Il Modello Relazionale

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

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

Progettazione di Basi di Dati

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

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

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

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

MODELLO RELAZIONALE. Introduzione

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

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

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

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

Organizzazione degli archivi

Elena Baralis 2013 Politecnico di Torino 1

Il Modello Relazionale

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

Basi di dati 9 febbraio 2010 Compito A

SQL - Funzioni di gruppo

Modulo 2 Data Base 2

Il modello relazionale

Dati relazionali e XML

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

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Vincoli di integrità

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

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

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

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

Definizione di domini

Informatica (Basi di Dati)

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Progettazione di Database. Un Esempio

BASE DI DATI: sicurezza. Informatica febbraio ASA

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

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

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

BASI DI DATI - : I modelli di database

LE FUNZIONI A DUE VARIABILI

Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari

DBMS (Data Base Management System)

Database. Si ringrazia Marco Bertini per le slides

Dalla progettazione concettuale alla modellazione di dominio

Operazioni sui database

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

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

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

Strumenti di modellazione. Gabriella Trucco

database: modello entityrelationship

Archivi e Basi di Dati

(anno accademico )

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Introduzione all Algebra Relazionale

Basi di Dati e Microsoft Access

DATABASE RELAZIONALI

Introduzione alla teoria dei database relazionali. Come progettare un database

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

ALGEBRA DELLE PROPOSIZIONI

SQL/OLAP. Estensioni OLAP in SQL

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Progettaz. e sviluppo Data Base

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Lezione 8. La macchina universale

Unità C1 Modello logico

LA NORMALIZZAZIONE. Introduzione

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Data Base Relazionali

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

Strutturazione logica dei dati: i file

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE

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

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. Le funzionalità del sistema non vanno però ignorate

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

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

Gli operatori relazionali

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Il database management system Access

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

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

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

Organizzazione delle informazioni: Database

Corso sul linguaggio SQL

Secondo Compitino di Basi di Dati

Identificatori delle entità

TEORIA sulle BASI DI DATI

Lezione 4. Modello EER

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

Introduzione ai database relazionali

Corso di Informatica (Basi di Dati)

Corso di. Dott.ssa Donatella Cocca

Транскрипт:

Il Modello Relazionale 1 Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981 Si basa sul concetto matematico di relazione, questo fornisce al modello una base teorica che permette di dimostrare formalmente proprietà di dati e operazioni Le relazioni hanno una rappresentazione naturale per mezzo di tabelle 2 1

, sebbene non sia stato il modello usato nei primi DBMS, è divenuto lentamente il modello più importante al punto che è oggi comunemente usato in quasi tutti i DBMS disponibili a livello commerciale La ragione principale della popolarità di questo modello è che fornisce linguaggi semplici e di tipo dichiarativo, ma al tempo stesso potenti, con cui esprimere le operazioni per l'accesso e la manipolazione dei dati 3 Relazione D 1, D 2,, D n (n insiemi anche non distinti) Il prodotto cartesiano D 1 D 2 D n, è l insieme di tutte le tuple ordinate (d 1, d 2,, d n ) tali che d 1 D 1, d 2 D 2,, d n D n Una relazione su D 1, D 2,, D n è un sottoinsieme del prodotto cartesiano D 1 D 2 D n D 1, D 2,, D n sono i domini della relazione Una relazione su n domini ha grado n Il numero di tuple è la cardinalità della relazione nelle applicazioni reali, la cardinalità è sempre finita 4 2

Dominio Un dominio è un insieme (anche infinito) di valori Esempi: l'insieme dei numeri interi l'insieme delle stringhe di caratteri di lunghezza l'insieme {0,1} 5 Esempio D 1 ={a,b} D 2 ={x,y,z} prodotto cartesiano D 1 D 2 a a a b x y z x b y b z a x a z una relazione r D 1 D 2 b y 6 b z 3

Relazione matematica, proprietà In base alle definizione, una relazione matematica è un insieme di tuple ordinate: (d 1, d 2,, d n ) tali che d 1 D 1, d 2 D 2,, d n D n Una relazione è un insieme, quindi: non è definito alcun ordinamento fra le tuple le tuple di una relazione sono distinte l una dall altra Una tupla è al proprio interno ordinata: l i-esimo valore di ciascuna proviene dall i -esimo dominio è cioè definito un ordinamento fra i domini 7 Notazioni Sia r una relazione di grado k: sia t una tupla di r sia i un intero appartenente all'insieme {1,...,k} t[i] denota la i-esima componente di t Esempio: sia r={(0,a), (0,c),(1,b)} sia t=(0,a) una tupla di r t[2] = a t[1] = 0 8 4

Modello relazionale 9 Una relazione può essere vista, alternativamente, come una tabella, in cui ogni riga è una tupla ed ogni colonna corrisponde ad una componente Alle colonne sono associati dei nomi, detti nomi di attributo La coppia (nome di attributo, dominio) è detta attributo L insieme degli attributi di una relazione ne costituisce lo schema Modello relazionale Se una relazione ha nome R ed attributi di nomi rispettivamente A 1, A 2,...,A k, lo schema è spesso indicato con R(A 1, A 2,...,A k ) Inoltre U R = {A 1, A 2,...,A k } viene usato per denotare l'insieme di tutti i nomi di attributo della relazione R 5

Esempio Info_Città Schema: Info_Città(Città,Regione,Popolazione) 11 Città Roma Milano Genova Pisa Regione Lazio Lombardia Liguria Toscana Popolazione 00000 1500000 800000 150000 Modello relazionale In questa definizione del modello relazionale, le componenti delle tuple sono denotate tramite i nomi di attributi (notazione per nome in contrasto con la notazione per posizione) Dato uno schema di relazione R(A 1, A 2,...,A k ), una tupla t su tale schema può essere rappresentata tramite la notazione [A 1 :v 1, A 2 :v 2,...,A k :v k ] dove v i (i=1,..,k) è un valore appartenente al dominio di A i (indicato con dom(a i )) Inoltre t[a i ] denota il valore dell'attributo A i della tupla t 12 6

Esempio t=[città: Roma, Regione: Lazio, Popolazione: 00000] È una tupla definita sullo schema Info_Città t[città] = Roma Il valore dell attributo Città per la tupla t è Roma 13 Valori nulli Non sempre sono disponibili informazioni sulle entità del dominio applicativo rappresentato nella base di dati: alcune tuple possono non avere un valore per un qualche attributo Si introduce un valore speciale (valore nullo) che denota la mancanza di valore (spesso denotato con ) 14 7

Il concetto di chiave 15 Data una relazione, la chiave della relazione è un insieme di attributi che distingue tra loro le tuple della relazione Più precisamente, un insieme X di attributi di una relazione R, è chiave di R se verifica entrambe le seguenti proprietà: 1. qualsiasi sia lo stato di R, non esistono due tuple distinte di R che abbiano lo stesso valore per tutti gli attributi in X 2. nessun sottoinsieme proprio di X verifica la proprietà (1) Esempio Nell'esempio precedente: chiave(info_città) = (Città) se non esistono città con lo stesso nome in regioni diverse chiave(info_città) = (Città,Regione) se esistono città con lo stesso nome in regioni diverse 16 8

Il concetto di chiave Una chiave non può avere valori nulli Una relazione può avere più di un insieme X che verifica le proprietà viste In alcuni casi, può essere necessario scegliere una chiave se il sistema usato non supporta più chiavi In tal caso, il termine chiavi candidate viene usato per indicare le possibili chiavi Il termine chiave primaria viene usato per indicare la chiave selezionata 17 Chiavi candidate Un criterio nella scelta della chiave primaria consiste nello scegliere tra le chiavi candidate quella più frequentemente usata nelle interrogazioni Un altro criterio è scegliere la chiave che contiene il minor numero di attributi 18 9

Il concetto di chiave esterna 19 Date due relazioni R ed R tali che: R abbia un insieme di attributi X R'abbia come chiave un insieme Y di attributi Y è chiave esterna di R su R se Y è un sottoinsieme di X In altre parole, se una relazione R ha tra i suoi attributi un insieme di attributi che costituisce la chiave di una relazione R, allora tale insieme di attributi è una chiave esterna di R su R R è detta relazione riferita Il concetto di chiave esterna Le chiavi esterne permettono di collegare tra loro tuple di relazioni diverse e costituiscono un meccanismo, detto per valore, per modellare le associazioni tra entità Una tupla che deve riferire un'altra tupla include tra i suoi attributi uno o più attributi il cui valore è il valore della chiave della seconda tupla

Esempio Definiamo due relazioni che contengono informazioni riguardanti i dipendenti di un'azienda ed i dipartimenti in cui l'azienda è organizzata come segue: Impiegati(Imp#,Nome,Mansione,DataA,Stipendio,PremioP,Dip#) chiave(impiegati) = Imp# chiave_esterna(impiegati) = Dip# (relazione riferita: Dipartimenti) Dipartimenti(Dip#,NomeDip,Ufficio#,Divisione#,Dirigente) chiave(dipartimenti) = Dip# 21 Impiegati Imp# Nome Mansione DataA Stipendio PremioP Dip# 7369 Rossi Ingegnere 17/12/80 1600.00 500.00 7499 Andrei Tecnico /02/81 800.00 7521 Bianchi Tecnico /02/81 800.00 0.00 7566 Rosi Dirigente 02/04/81 2975.00 7654 Martini Segretaria 28/09/81 800.00 7698 Blacchi Dirigente 01/05/81 2850.00 7782 Neri Ingegnere 01/06/81 2450.00 0.00 7788 Scotti Segretaria 09/11/81 800.00 7839 Dare Ingegnere 17/11/81 2600.00 0.00 7844 Turni Tecnico 08/09/81 1500.00 7876 Adami Ingegnere 23/09/81 10.00 500.00 7900 Gianni Ingegnere 03/12/81 1950.00 7902 Fordi Segretaria 03/12/81 00.00 7934 Milli Ingegnere 23/01/82.00 150.00 22 7977 Verdi Dirigente /12/80 00.00 11

Dipartimenti Dip# NomeDip Ufficio Divisione Dirigente Edilizia Civile 10 D1 7977 Ricerche 20 D1 7566 Edilizia Stradale 50 D2 7698 23 Integrità referenziale L'integrità referenziale rappresenta un importante vincolo di integrità semantica Se una tupla t riferisce come valori di una chiave esterna i valori v 1,,v n allora deve esistere nella relazione riferita una tupla t con valori di chiave v 1,,v n Le relazioni Impiegati e Dipartimenti verificano l'integrità referenziale 24 12

Integrità referenziale Si consideri la seguente tupla e si assuma che sia inserita nella relazione Impiegati: [Imp#: 7899, Nome: Smith, Mansione: tecnico, DataA:03-Dic-81, Stipendio:00, PremioP: 0, Dip#: 50] Tale tupla viola l'integrità referenziale in quanto non esiste un dipartimento (nella relazione Dipartimenti) che abbia numero 50 Dip# NomeDip Ufficio Divisione Dirigente Edilizia Civile 10 D1 7977 Ricerche 20 D1 7566 25 Edilizia Stradale 50 D2 7698 Integrità referenziale I linguaggi per basi di dati (SQL) permettono all'utente di specificare per quali relazioni e quali attributi è necessario mantenere l'integrità referenziale (e le azioni da eseguire in caso di violazione) 26 13