Per lavorare sulle tabelle è utile separare la loro struttura (fissa) dal contenuto (che varierà nel tempo) , nome_attr 2. Schema di relazione

Documenti analoghi
Risultato sotto forma di insieme

Basi di dati (continua)

Modello relazionale e algebra relazionale

D B M G. Sistemi informativi. Modello relazionale e algebra relazionale. Modello relazionale. Algebra relazionale

Modello relazionale e algebra relazionale

Elena baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Elena baralis 2007 Politecnico di Torino 1

Alessandra Raffaetà. La costruzione di una base di dati

Elena baralis 2007 Politecnico di Torino 1

Il modello relazionale

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Basi di dati e Relazioni

Basi di dati e Relazioni

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

DataBase Management System - DBMS

Le relazioni hanno una naturale rappresentazione per mezzo di. D. Gubiani Il Modello Relazionale 3

Fondamenti di Informatica e Programmazione

Il Modello Relazionale

Corso di. Basi di Dati I. 3. Vincoli di integrità

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Informatica di Base 1 Linea 1

Model o relazionale 1

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

Corso di. Basi di Dati I. 2. Il modello relazionale

RELAZIONI E BASI DI DATI

Indicare quale o quali delle seguenti affermazioni sono vere?

Corso di Basi di Dati

Informatica di Base 1 Linea 1

Modello Relazionale/1

I modelli logici dei dati

Modulo 2 Data Base - Modello Relazionale

Il modello Relazionale.

Fondamenti di Informatica A. A / 1 9

Informatica II Basi di Dati (07/08) Parte Il modello relazionale. Il modello relazionale. Il modello relazionale

PIL Percorsi di Inserimento Lavorativo

Informatica per le Scienze Umane. Introduzione al corso: programma

Scopo. Informatica. Sistema informativo. Sistema informatico

Basi di Dati. Sistemi per Basi di Dati Relazionali: Modello Logico. Concetti Fondamentali. Concetti Fondamentali

Fondamenti di Teoria delle Basi di Dati

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Mirco Nanni ISTI CNR, Pisa. CdL in Lettere A.A. 2007/2008

Progettazione di Database

I database. Introduzione alla teoria delle basi di dati

Il Modello Relazionale e le operazioni

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

Modello Relazionale. Università degli Studi di Salerno

SQL QUERY: Le interrogazioni del database

CAPITOLO V. DATABASE: Il modello relazionale

Modello relazionale. Il modello relazionale: strutture e vincoli

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO Regole di derivazione

Il Modello Relazionale

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Basi di dati. IL MODELLO RELAZIONALE Figure ed esempi. 09/10/2017 Atzeni - Basi di dati - Modello relazionale, figure ed esempi

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

Corso di Informatica

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Progettazione Logica. Alice Pavarani

Basi di dati IL MODELLO RELAZIONALE

Basi di dati Prova di autovalutazione 17 gennaio 2011

Il modello relazionale

Basi di dati (Sistemi Informativi)

Basi di dati 8 novembre 2010 Prova parziale Compito A

Introduzione al Modello Relazionale

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Dati una relazione r(x) e un sottoinsieme Y di X, la proiezione di r su Y si indica con

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Prima di iniziare. Diamo qualche definizione :

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Esercitazioni Basi di dati e web Dario Facchinetti

Prova Scritta di Basi di Dati

Normalizzazione. Definizione

Ordo et connexio rerum idem est ac ordo et connexio idearum

Monday, January 10, Introduzione

Vincoli di Integrità Referenziale

Corso di Informatica

Basi di Dati e Sistemi Informativi

Lezione 5. Il Modello dei Dati Relazionale Vincoli sui Database Relazionali

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo

Fondamenti di Teoria delle Basi di Dati

LA NORMALIZZAZIONE. Prima parte

Le basi di dati. Lez. 3: Il Modello Relazionale

Scopo Laboratorio di Informatica

Modulo 2 Data Base 3

Il modello Relazionale.

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Il modello relazionale dei dati. modello relazionale 1

Progettazione concettuale usando il modello Entità-Relazione (ER)

Pag Politecnico di Torino 1

Modello Relazionale. Insiemi. Relazione. Prodotto cartesiano. Terminologia e signifcato. Terminologia e signifcato

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

DBMS architettura client/server

Transcript:

Schemi di relazione Per lavorare sulle tabelle è utile separare la loro struttura (fissa) dal contenuto (che varierà nel tempo) Nome_tabella = {nome_attr 1, nome_attr 2,, nome_attr C } Schema di relazione Molto utili sia in fase di progettazione sia per indicare al sistema quali informazioni intendiamo estrarre dalla banca dati

Relazioni fra tabelle Fin qui abbiamo definito le tabelle come relazioni, mostrando come esse siano dei sottoinsiemi del prodotto cartesiano dei domini dei loro attributi Supponiamo ora di avere due tabelle: Nome nato_nel_mese città provincia T1 Anna Lisa Luca Elena settembre agosto dicembre aprile T2 Pinerolo Trino Bra Lu TO VC CN AL Possiamo fare il prodotto cartesiano T1 x T2 delle due tabelle? Certamente!

Attenzione In questo caso ogni record è costituito da più colonne T1 = { <Anna, settembre>, <Lisa, agosto>, <Luca, dicembre>, <Elena, Aprile>} T2 = {<Pinerolo,TO>,<Trino,VC>,<Bra,CN>,<Lu,AL>} Nel fare il prod.cart. i record non vanno spezzati!! T1 x T2 = { <r1, r2> : r1? T1 e r2? T2} <Anna,settembre> <Pinerolo,TO> (esempio)

Risultato sotto forma di insieme T1 x T2 = { < < Anna, settembre >, < Pinerolo,TO > >, < < Anna, settembre >, < Trino,VC > >, < < Anna, settembre >, < Bra,CN > >, < < Anna, settembre >, < Lu,AL > >, } In pratica si giustappone ad ogni record di T1 ogni record di T2

Risultato in forma tabellare Nome nato_nel_mese città provincia Anna settembre Pinerolo TO Anna settembre Trino VC Anna settembre Bra CN Anna settembre Lu AL Lisa agosto Trino VC Lisa agosto Pinerolo TO Lisa agosto Bra CN Lisa agosto Lu AL Luca dicembre Bra CN Luca dicembre Pinerolo TO Luca dicembre Trino VC Luca dicembre Lu AL Elena aprile Lu AL Elena aprile Pinerolo TO Elena aprile Trino VC Elena aprile Bra CN Nota: il numero di record della tabella risultato è il prodotto del num. record di T1 per il numr di T2 mentre il num. colonne della tabella risultato è il num. delle colonne di T1 più il numero di colonne di T2

Relazioni fra tabelle Il prodotto cartesiano fra tabelle è la base di tutte le operazioni di estrazione di informazioni da una banca dati in forma tabellare anche se di per sé, associando ogni record di una tabella con ogni record di un altra, non porta molta informazione Ci mostra però come sia possibile definire delle relazioni fra le tabelle e quindi come i dati contenuti in una possano essere combinati con dati contenuti nelle altre Più avanti vedremo come sia possibile combinare tali dati estraendo informazioni significative

Perché relazionale? Il concetto di relazione è un concetto chiave in questo modello 1. I dati sono contenuti in tabelle 2. Le tabelle sono delle relazioni in senso matematico 3. È possibile definire nuove relazioni che combinano i dati contenuti in più tabelle 4. Esiste un supporto matematico formale che consente di realizzare sistemi per l elaborazione dei dati rappresentati secondo il modello relazionale

DB: osservazione 1 i dati non sono scorrelati studenti Nome matricola corso ind? corsi Materia corso docenti Docente materia libro

DB: osservazione 2 i dati devono essere coerenti Nome Anna Rossi Anna Rossi Cod_Fisc ANNRSS00001 ANNRSS99901 Es. 1 Non dovrebbe essere possibile associare due codici fiscali diversi alla stessa persona

DB: osservazione 2 i dati devono essere coerenti Se la studentessa Anna Rossi abbandona l Università e viene quindi cancellata dall elenco degli iscritti, non devono rimanere riferimenti ad Anna Rossi nelle altre tabelle della banca dati Nome altre info Nome corso Anna Rossi.. Anna Rossi economia Es. 2

Vincoli Molti di questi controlli e/o aggiornamenti possono essere eseguiti in modo automatico dal sistema, a patto che i progettisti della base di dati esprimano delle regole (dette vincoli) che indicano quali controlli il sistema deve effettuare

Vincoli II 1. Vincoli di dominio 2. Vincoli di chiave 3. Vincoli di integrità referenziale Vincoli di Dominio Riguardano gli attibuti: i valori che i record assumono in corripondenza dei vari attributi devono appartenere al dominio dei medesimi Nota: per il sistema lunedi e Marta sono due stringhe, quindi potrebbero entrambe essere contenute nella colonna giorno_della_settimana!!

Superchiavi di una relazione Per vari motivi che diverranno chiari nel corso delle prossime lezioni è spesso utile identificare i record di una relazione in modo inequivocabile L identificazione viene fatta in base al contenuto dei record medesimi, innanzi tutto identificando un insieme di attributi tali che la combinazione di valori che essi assumono è diversa per ogni record (Vincolo di Chiave) Un tale insieme è detto superchiave Una tabella può avere molte superchiavi: ogni insieme di attributi che contiene una superchiave è a sua volta superchiave!

Esempio Nome cognome cod_fis residenza stato_civile Andrea Rossi 11111. Celibe Andrea Bianchi 22222. Sposato Andrea Rossi 33333. Sposato Luigi Bianchi 44444. Celibe Giorgia Verdi 55555. Nubile Elena Valli 66666. Nubile Giorgia Verdi 77777. Nubile Ada Rossi 88888. Sposata {Nome, cognome, cod_fis} {cognome, cod_fis} Possibili Superchiavi {Nome, cognome, cod_fis, residenza, stato_civile}

Chiavi di una relazione Nota: nell esempio precedente è sufficiente un solo attributo (cod_fis) per identificare ogni record, infatti il codice fiscale identifica -per sua definizione- una persona Superchiave minima = {cod_fis} Una superchiave minima è detta Chiave

Altro esempio Una chiave può essere costituita da più attributi prestiti Titolo Autore data-prestito cod_utente Poesie Rossi 10/7/00 111 Storia Verdi 10/7/00 222 Poesie Rossi 8/8/01 111 In questo caso la chiave è costituita dalla coppia <Titolo, data-prestito>

Valori nulli Nome cognome cod_fis telefono stato_civile Andrea Rossi 11111 01123432 Celibe Andrea NULL 22222 34723128 Sposato Andrea Rossi 33333 NULL NULL Luigi Bianchi 44444 01312456 Celibe NULL Verdi 55555 01651289 Nubile Elena Valli 66666 NULL NULL Giorgia Verdi 77777 NULL Nubile Ada Rossi 88888 NULL Sposata

Chiave primaria di una relazione La chiave primaria di una relazione è una chiave i cui attributi non possono assumere il valore NULL

Chiavi esterne prestiti Titolo Autore data-prestito cod_utente chiave esterna chiave primaria Poesie Rossi 10/7/00 111 Storia Verdi 10/7/00 222 Poesie Rossi 8/8/01 111 utenti È necessario che in cod_utente compaiano dei codici veri ovvero corrispondenti a reali utenti della biblioteca!! codice nome indirizzo telefono 111 Rossi via Matera 21 011-3333 222 Verdi via Matera 21 011-3333 333 Rossi via Pavesi 6 011-5555

Chiavi esterne Una chiave esterna è un attributo o un insieme di attributi di una relazione, i cui valori devono corrispondere ai valori di una chiave primaria di un altra (o la stessa) relazione Si dice che una chiave esterna fa riferimento alla sua chiave primaria Le chiavi esterne sono un meccanismo che consente di mantenere l integrità dei dati

Esempio completo libri Codice Titolo Autore prestiti Cod-libro Cod-utente data utenti utente nome ind telefono La connessione fra una chiave esterna e la sua chiave primaria è data da un vincolo di integrità referenziale

Cosa significa? 1. Non posso dare in prestito libri che non compaiono nel catalogo della biblioteca 2. Non posso prestare libri a utenti privi di tessera o con un codice di tessera non valido 3. Se elimino un libro dal catalogo, elimino anche le informazioni ad esso correlate in modo automatico 4. Se modifico i codici dei libri secondo un nuovo criterio di assegnazione, la tabella dei prestiti verrà aggiornata automaticamente Mantenimento della coerenza dei dati contenuti nel DB