IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

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

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

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

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Modello relazionale e algebra relazionale

Fondamenti di Teoria delle Basi di Dati

DataBase Management System - DBMS

Elena baralis 2007 Politecnico di Torino 1

Basi di dati e Relazioni

Elena Baralis 2007 Politecnico di Torino 1

Basi di dati e Relazioni

RELAZIONI E BASI DI DATI

Il modello relazionale

Elena baralis 2007 Politecnico di Torino 1

Modello relazionale. Il modello relazionale: strutture e vincoli

Basi di Dati prof. Letizia Tanca

Basi di dati IL MODELLO RELAZIONALE

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

Scopo. Informatica. Sistema informativo. Sistema informatico

Monday, January 10, Introduzione

IL MODELLO RELAZIONALE

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

Il Modello Relazionale

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

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

Scopo Laboratorio di Informatica

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

Modello Relazionale. Università degli Studi di Salerno

I modelli logici dei dati

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

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

MODELLI LOGICI DEI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 2: Il modello relazionale: strutture e vincoli MODELLI DEI DATI

Ordo et connexio rerum idem est ac ordo et connexio idearum

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

Alessandra Raffaetà. La costruzione di una base di dati

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati

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

Il modello Relazionale.

Basi di dati (database)

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

I modelli logici dei dati

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

Il modello relazionale. Dr. C. d'amat

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

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

Il modello Relazionale.

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Fondamenti di Teoria delle Basi di Dati

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

Contenuti della lezione

I modelli logici dei dati

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

Informatica per Statistica Riassunto della lezione del 06/12/2013

Che cos è l informatica?

Introduzione al Modello Relazionale

Corso di Informatica

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Interrogazioni nidificate

Sistema di Elaborazione delle Informazioni

Il linguaggio SQL. TUTORATO DIFONDAMENTI DIINFORMATICA

Interrogazioni nidificate

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

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

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Fondamenti di Teoria delle Basi di Dati

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Il Modello Relazionale e le operazioni

PIL Percorsi di Inserimento Lavorativo

Sistemi di Elaborazione delle Informazioni

Lezione 2. Modello relazionale: concetti e definizioni

Modello Relazionale. Concetti e definizioni

Basi di dati 8 novembre 2010 Prova parziale Compito A

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

Sommario FONDAMENTI DI INFORMATICA 1. Sistemi informatici e sistemi informativi. Informazioni e dati BASI DI DATI

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

Laboratorio di Basi di Dati

La progettazione concettuale

PRODOTTO CARTESIANO Caso Generale

Il modello relazionale

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

IL MODELLO RELAZIONALE

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

Il modello relazionale

Basi di Dati. La Progettazione Logica. Sommario. Il Processo di Progetto della BD. Algoritmo di Progettazione Logica

Basi di dati. Note Introduttive. Modello entità-relazioni. Basi di dati ESEMPIO. Sistema informativo. Dati

Progettazione Logica. Alice Pavarani

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

A. Ferrari modello relazionale

Informatica per le Scienze Umane. Introduzione al corso: programma

Le basi di dati. Base di dati = dati + DBMS.

Transcript:

IL MODELLO RELAZIONALE Patrizio Dazzi a.a. 2017-2018

COMUNICAZIONE AI MIEI CARI STUDENTI! La mail che mandate per la Mailing List deve avere come Oggetto/Subject [BDD-INFUMA-2017-18] e come contenuto: Nome, Cognome, Matricola, email universitaria. La mail deve essere in formato di testo e NON deve contenere altre informazioni. Esempio corretto: Luke, Skywalker, 56124, luke.skywalker@studenti.unipi.it Esempio NON corretto: Nome:Luke, Cognome: Skywalker, Matricola: 56124, lukino.tantobello@tvttb.com

PICCOLO RIASSUNTO DELLA PUNTATA PRECEDENTE Informazione e Struttura le Basi di Dati strutturano l informazione per migliorarne: organizzazione, interrogazione, inserimento, cancellazione Struttura descritta dal Modello dei dati Sistema informativo e Sistema Informatico definizioni, differenze, quasi coincidenza DBMS Architettura naive di memorizzazione Architettura basata su DBMS Caratteristiche dei DBMS Livelli del DBMS: fisico, logico, esterno

SOMMARIO Introduzione Base di dati, tabella, ennupla, attributo, dominio Valori nulli Vincoli di integrità di chiave di ennupla di riferimento Caratteristiche del modello

ATTENZIONE L obiettivo di questa lezione è descrivere le caratteristiche del modello Non ci occupiamo, per ora di: Linguaggio: delle tecniche per manipolare i dati Metodologia di progetto: dei metodi per costruire la base di dati es. come scegliere le tabelle e valutare la qualità

IL MODELLO RELAZIONALE: ALCUNI BREVI CENNI Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sia sui sistemi di grande quanto quelli di piccola dimensione. Definizione: I meccanismi per definire una base di dati con il modello relazionale sono l ennupla e la relazione: un tipo ennupla T è un insieme finito di coppie (campi) (Attributo: Tipo elementare, es. NumeroTelefonico: INT); dato T un tipo ennupla, R:{T} è lo schema della relazione R; lo schema di una base di dati è un insieme di schemi di relazione R i :{T i }; un istanza di uno schema R:{T} è un insieme finito di ennuple di tipo T.

PIÙ INFORMALMENTE Ennupla insieme di coppie (attributo, valore) analogo nei linguaggi di programmazione: struttura o record Tabella collezione di ennuple Base di dati insieme di tabelle

ESEMPIO: STUDENTI, CORSI, ESAMI Base di dati universitari Studenti nome, cognome, matricola, data di nascita Corsi codice, nome del corso, nome del docente Esami sostenuti corso, studente, voto

ESEMPIO: STUDENTI, CORSI, ESAMI Studenti nome: stringa cognome: stringa matricola: intero data di nascita: data Corsi Esami Sostenuti corso: riferimento ad un corso studente: riferimento ad uno studente voto: intero lode: sì/no codice: stringa nome: stringa nome del docente: stringa

STUDENTI Tabella: relazione (istanza) Ennupla Attributo: proprietà di interesse valore Studenti Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 TABLE Studenti( matricola integer, cognome char(20), nome char(20), datanascita date); Schema Relazione esempio di sintassi Dominio Tipo

ATTRIBUTI Studenti Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 TABLE Studenti( matricola integer, cognome char(20), nome char(20), datanascita date); Ogni attributo dispone di un dominio che definisce l insieme di valori validi per quell attributo. Es. dom(matricola) = integer E possibile avere domini ripetuti nella stessa relazione!

VINCOLI SULL ORDINE DEI DATI Studenti Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 L ordinamento delle righe è irrilevante L ordinamento delle colonne è irrilevante

VINCOLI SUI DATI DELLA RELAZIONE Studenti (1) (2) (3) Matricola Cognome Nome Data di nascita 20/11/1991 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 Non possono esistere aaribub uguali (1) Non possono esistere righe uguali (2) I dati di una colonna devono essere omogenei (3)

CORSI CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli TABLE Corsi ( codice char(3), titolo char(50), docente char(20));

ESAMI Matricola di uno studente ESAMI Studente Voto Lode Corso 276545 28 0 01 276545 27 0 04 937653 25 0 01 200768 30 1 04 codice di un corso TABLE Esami ( studente integer, voto integer, corso char(3), lode bool);

TABELLE STUDENTI Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 ESAMI Studente Voto Lode Corso 276545 28 0 01 276545 27 0 04 937653 25 0 01 CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli 200768 30 1 04

SCHEMA DELLA BASE DI DATI TABLE Studenti( matricola integer, cognome char(20), nome char(20), datanascita date); TABLE Esami( studente integer, voto integer, corso char(3), lode bool); TABLE Corsi( codice char(3), titolo char(50), docente char(20));

VALORI NULLI STUDENTI Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 993354 Gialli Lucia null CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli 05 Basi Dati null Valore nullo

VINCOLI SUI DATI Regole della realtà di interesse Unicità degli identificatori (chiavi) codici di corso e matricole Condizioni sui valori di ciascuna tupla Voti degli studenti Da 18 a 30 lode solo se il voto è 30 Correttezza dei riferimenti

CHIAVI Chiave: insieme minimale di attributi che identifica univocamente le tuple di una relazione STUDENTI Chiave Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 {Cognome,Nome}: causalmente chiave! Una chiave (primaria) non può avere valore null

UNA BASE DI DATI SCORRETTA Unicità della matricola STUDENTI Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 937653 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 riferimento scorretto ESAMI Studente Voto Lode Corso 276545 32 0 01 276545 27 1 04 937653 25 0 01 300300 30 1 04 Voti scorretti

VINCOLI DI INTEGRITÀ Regole imposte sui valori della base di dati Vincoli sulle singole tabelle vincoli di chiave vincoli di ennupla Vincoli tra tabelle diverse vincoli di riferimento o di integrità referenziale

VINCOLI DI INTEGRITÀ Vincoli di chiave chiave: identificatore per le ennuple es: matricola è una chiave per Studenti Vincoli di ennupla predicati sui valori delle ennuple es: (voto>=18 and voto<=30) Vincoli di Riferimento assenza di riferimenti inesistenti es: esistono esami solo per gli studenti della bd

VINCOLI DI CHIAVE Studenti Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 TABLE Studenti( matricola integer, cognome char(20), nome char(20), datanascita date, UNIQUE(matricola) );

VINCOLI DI ENNUPLA ESAMI Studente Voto Lode Corso 276545 28 0 01 276545 27 0 04 937653 25 0 01 200768 30 1 04 TABLE Esami ( studente integer, voto integer, corso char(3), lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30));

VINCOLI DI RIFERIMENTO ESAMI Studente Voto Lode Corso 276545 28 0 01 276545 27 0 04 937653 25 0 01 200768 30 1 04 TABLE Esami ( studente integer, voto integer, corso char(3), lode bool, CHECK (voto>=18 and voto<=30), CHECK (not lode or voto=30), FOREIGN KEY(studente) REFERENCES Studenti(matricola), FOREIGN KEY(corso) REFERENCES Corsi(codice));

SCHEMA CON VINCOLI DI INTEGRITÀ TABLE Studenti( matricola integer, cognome char(20), nome char(20), datanascita date, UNIQUE(matricola)); TABLE Esami( studente integer, voto integer, corso char(3), lode bool, UNIQUE(studente, corso), FOREIGN KEY(studente) REFERENCES Studenti(matricola), FOREIGN KEY(corso) REFERENCES Corsi(codice) ); TABLE Corsi( codice char(3), titolo char(50), docente char(20), UNIQUE(codice));

CARATTERISTICHE DEL MODELLO Legami tra i dati basati sui valori assenza di puntatori I valori devono essere semplici valori atomici : numeri, caratteri, stringhe, booleani, date ecc. non sono consentite nidificazioni (base di dati in I forma normale ) differenza con altri modelli (es: strutture)

PUNTATORI In molti modelli (es. gerarchico, reticolare, oggetti), i riferimenti tra tabelle sono definiti mediante puntatori STUDENTI Matricola Cognome Nome Data di nascita 276545 Rossi Maria 25/11/1991 485745 Neri Anna 23/04/1992 200768 Verdi Fabio 12/02/1992 587614 Rossi Luca 10/10/1991 937653 Bruni Mario 01/12/1991 ESAMI CORSI Studente Voto Lode Corso Codice Titolo Docente 276545 28 0 01 01 Analisi Giani 276545 27 0 04 03 Chimica Melli 25 0 01 04 Chimica Belli 200768 30 1

UN ESEMPIO DI INFORMAZIONE NIDIFICATA

UNA POSSIBILE RAPPRESENTAZIONE

MODELLO RELAZIONALE: RELAZIONE Q 1 : Perchè si chiama modello relazionale? A 1 : Una relazione sui dati può essere vista come una relazione matematica! (con una leggera variazione). Q 2 : Com è definita una relazione matematica nella teoria degli insiemi?

PRODOTTO CARTESIANO VS RELAZIONE DEF. Dati n insiemi D 1, D 2, D n (domini), una relazione matematica sugli insiemi D 1, D 2, D n è definita come un sottoinsieme del prodotto cartesiano D 1 x D 2 x x D n. DEF. Il prodotto cartesiano degli insiemi D 1, D 2, D n è definito come l insieme delle tuple ordinate (d 1, d 2, d n ), con d i D i, A B i =1, 2,...,n Insiemi: A={1,2,4}, B={a,b} 1 a 1 b 2 a 2 b 4 a 4 b Prodotto Cartesiano 1 a 1 b 4 b Relazione r 1 r 1 A B 1 a 2 b Relazione r 2 r 2 A B

RELAZIONE VS RELAZIONE MATEMATICA Se usassimo la definizione classica di relazione matematica nel modello relazionale dei dati: CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli CORSI int string string Problema: Ordinamento in una relazione In generale: A B B A

RAPPRESENTAZIONE MEDIANTE ATTRIBUTI Dal punto di vista dei dati, i due schemi sono uguali, ma non lo sono se consideriamo la definizione di relazione matematica! CORSI Titolo Codice Docente Analisi 01 Giani Chimica 03 Melli Chimica 04 Belli CORSI string int string CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli CORSI int string string Soluzione: Usare rappresentazione NON posizionale, mediante gli attributi

FINE DELLA LEZIONE