Basi di Dati prof. A. Longheu

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Algebra Relazionale 3 Università degli Studi del Sannio
DB - Modello relazionale dei dati
Il linguaggio della Matematica: Insiemi e operazioni
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Basi di dati: il modello relazionale
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Semantica delle Informazioni
Basi di Dati prof. A. Longheu
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
ESEMPI DI ARCHIVI DI DATI
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Access: Query semplici
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
Modello E-R Generalizzazioni
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione a Oracle 9i
Sistemi di Elaborazione delle Informazioni Mod.I.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Microsoft Access Query (II), filtri.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Progettazione di una base di dati relazionale Vincoli.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Il modello relazionale
Eprogram informatica V anno.
Cloud informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Transcript della presentazione:

Basi di Dati prof. A. Longheu 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 “Basi di dati” Atzeni – Ceri – Paraboschi - Torlone

Modello Relazionale Esso fu proposto nel 1970 da E.F. Codd Primi sistemi relazionali appaiono sul mercato nel 1981 Il modello logico si basa su due concetti: relazione: teoria matematica derivata dalla teoria degli insiemi tabella: intuitivo ma informale l’uso delle tabelle rende semplice da usare il modello, mentre la formalizzazione matematica ne consolida la potenza (ad esempio, verifica della correttezza o completezza di un db) Le relazioni possono essere efficacemente e semplicemente rappresentate tramite tabelle.

Relazione Dati due insiemi D1 e D2, si considera anzitutto il loro prodotto cartesiano, ossia l’insieme di tutte le possibili coppie che si possono formare prendendo un elemento di D1 ed uno di D2. Una relazione (in senso matematico) è un sottoinsieme del prodotto cartesiano, ossia è un insieme che contiene alcune di tutte le possibili coppie (al limite, anche tutte, ma non necessariamente) Esempio D1 = { 1, 3, 5 } D2 = { a, b } Una possibile relazione R = { (1,a), (3,b), (5,b) } che può essere rappresentata con una tabella Il prodotto cartesiano e le relazioni si possono estendere a N insiemi D1 X D2 = { (1,a), (1,b), (3,a), (3,b), (5,a), (5,b) } 1 a 3 b 5 b

Caratteristiche delle relazioni Ogni riga della tabella viene chiamata n-upla o t-upla Non è definito alcun ordinamento fra le n-uple, quindi due tabelle con le stesse righe, anche in ordine diverso, rappresentano la stessa relazione Le n-uple di una relazione devono essere distinte l’una dall’altra, quindi una tabella rappresenta una relazione solo se le sue righe sono tutte fra loro diverse Per definire il significato e il ruolo di ogni colonna essa viene etichettata mediante un attributo. In tal modo, l’ordine delle colonne risulta irrilevante. Attributi SqCasa SqOspite Casa Ospite Juventus Roma 0 1 Lazio Milan 2 0 Torino Sampdoria 1 1 T-upla

Database Relazionali - Generalità Una base di dati relazionale è costituita da più relazioni (una di solito non è sufficiente). Alcuni attributi contengono valori comuni (ripetuti cioè in relazioni differenti) necessari per definire collegamenti fra le relazioni Corsi Codice Docente A04 Sergi A10 Palazzo A23 La Corte A45 Ingrassia Studenti Matricola Cognome Nome Nascita 276545 Rossi Maria 21/10/1971 565211 Bruni Aldo 12/03/1973 446212 Lorenzi Silvio 06/06/1970 656422 Vulturi Paolo 22/08/1974 Esami Studente Voto Corso 276545 28 A04 565211 26 A10 446212 25 A23 656422 30 A45

Database Relazionali - Definizioni Uno schema di relazione è costituito : da un simbolo R, detto nome della relazione da un insieme di nomi di attributi X = {A1, A2, ... , An} Informalmente, uno schema di relazione è l’insieme del nome di una tabella e dei nomi dei suoi attributi (senza valori). Matricola Cognome Nome Nascita Studenti R = Studenti X = { Matricola, Cognome, Nome, Nascita } L’insieme di R ed X si indica con R (X)

Database Relazionali - Definizioni Uno schema di base di dati è un insieme di schemi di relazione con nomi diversi DB = { R1(X1) , R2(X2) , ... , Rn(Xn) } Informalmente, uno schema di base di dati è l’insieme dei nomi di tutte le tabelle e dei nomi tutti i loro attributi (senza valori), o, in altre parole, il database vuoto, senza dati (solo lo “scheletro”). Matricola Cognome Nome Nascita Studenti Codice Docente Corsi Studente Voto Corso Esami Schemi di relazione R1 = Studenti X1 = { Matricola, ... } R2 = Corsi X2 = { Codice, Docente } R3 = Esami X3 = { Studente, Voto, Corso } Schema di base di dati R= { Studenti (Matricola, ...), Esami (Studente, Voto, Corso), Corsi (Codice, Docente) }

Database Relazionali - Definizioni Una istanza di relazione (o anche semplicemente relazione) su uno schema di relazione R(X) è un insieme di t t-uple su X. Informalmente, una istanza di relazione è l’insieme di righe dei suoi dati. (Studenti) 276545 Rossi Maria 21/10/1971 565211 Bruni Aldo 12/03/1973 446212 Lorenzi Silvio 06/06/1970 656422 Vulturi Paolo 22/08/1974 Una istanza di base di dati su uno schema di base di dati DB è un insieme di relazioni t = { t1, ..., tn } dove ogni elemento ti è una relazione sullo schema di relazione Ri(Xi) Informalmente, una istanza di base di dati è l’insieme di tutti i dati di tutte le tabelle del database Un database è l’insieme del suo schema (tabelle vuote) e della sua istanza (dati che popoleranno le tabelle)

Valori Nulli In alcuni casi è necessario assegnare ad un attributo un valore non significativo perché: non se ne conosce il valore non è significativo per gli altri attributi deve essere inserito in un secondo momento Non sempre esiste un valore al quale sia possibile assegnare il significato di “nullo”, per cui viene introdotto un valore “speciale” NULL. Non tutte le colonne possono essere nulle (ad esempio, un numero di matricola nella tabella STUDENTI). Occorre un controllo per evitare che la presenza multipla di più NULL in righe diverse generi ambiguità o faccia perdere di significato la tupla considerata. inutilizzabile Esami Studente Voto Corso NULL 28 NULL NULL 26 A10 656422 30 A45 ambiguo

Vincoli di integrità Studenti Esami Matricola Cognome Nome Nascita è una proprietà che deve essere soddisfatta dalle istanze per potere esse rappresentare informazioni corrette. I vincoli sono di due categorie: vincoli intrarelazionali (all’interno di una relazione) vincolo su valori (ad esempio, VOTO compreso fra 18 e 30) vincolo di t-upla (ad esempio, LODE non può esserci se il VOTO è inferiore a 30) vincoli interrelazionali (su più relazioni), ad esempio una tupla in ESAMI per essere valida deve contenere un numero di matricola che esista anche in STUDENTI Studenti Esami Matricola Cognome Nome Nascita 276545 Rossi Maria 21/10/1971 565211 Bruni Aldo 12/03/1973 446212 Lorenzi Silvio 06/06/1970 446212 Vulturi Paolo 22/08/1974 Studente Voto Lode Corso 276545 36 - A04 565211 28 X A10 446212 25 - A23 999100 30 X A45

Chiave - 1 Studenti insieme di attributi utilizzato per identificare univocamente le t-uple di una relazione superchiave: un insieme K di attributi è superchiave di R se non contiene due t-uple distinte, ad esempio come chiave si può prendere l’insieme di tutti gli attributi della relazione . chiave: un insieme K è chiave se è una superchiave minimale (cioè non contiene al suo interno altre superchiavi) Studenti Cognome Nome Nascita Corso Rossi Maria 21/10/1971 Ing. Meccan. Bruni Aldo 12/03/1973 Ing. Civile Lorenzi Silvio 06/06/1970 Ing. Inform. Vulturi Paolo 22/08/1974 Ing. Inform. { Cognome, Nome, Nascita, Corso } è superchiave, e contiene la superchiave minimale (ossia, la chiave) {Cognome, Nome, Nascita } nell’ipotesi che siano sufficienti a distinguere le singole persone.

Chiave - 2 Matricola Cognome Nome Nascita Corso Per trovare una chiave, si cerca una superchiave e si scartano quanti più attributi possibili, fino a restare con quelli indispensabili, che rappresenteranno una chiave. In una relazione possono esistere più chiavi, tutte egualmente valide. Nei casi reali, è quasi impossibile trovare attributi che siano sempre identificanti e disponibili (noti). Per ovviare a questo problema, si introduce un attributo avente il compito specifico di fare da chiave, motivo della nascita di matricole, numeri di targa, codici fiscali eccetera. La presenza indiscriminata di valori nulli negli attributi può rendere impossibile o inutile l’uso di una chiave. Matricola Cognome Nome Nascita Corso NULL Rossi Maria NULL Ing. Meccan. 565211 Bruni Aldo 12/03/1973 Ing. Civile NULL Lorenzi Silvio 06/06/1970 Ing. Inform. 446212 Lorenzi Silvio NULL Ing. Inform. impossibile inutile Chiavi : { Cognome, Nome, Nascita } e { Matricola } Se esiste almeno un valore nullo su tutte le chiavi, la tupla non è più identificabile Se esiste almeno un valore nullo su almeno una chiave, potrebbe sorgere ambiguità Per evitare problemi, si definisce una delle chiavi come primaria, e si impone per essa l’assenza di valori nulli.

Vincoli di Integrità Referenziale Un Vincolo di Integrità Referenziale (foreign key) fra un insieme di attributi X di una relazione R1 ed un’altra relazione R2 è soddisfatto se i valori su X per ogni tupla di R2 figurano come chiave primaria su R2. Codice Articolo Prov. Numero Agente 1123 567 RM 2F8534 55-89 1256 125 RM 6D9909 12-88 1433 322 FI D45668 82-33 2300 219 NA F81642 23-43 Prov. Numero Proprietario RM 6H5567 Rossi Mario RM 6D9909 Broni Aldo SA 2F8534 Sineri Luigi BA 998342 Russo Paolo Agente Nome 40-10 Mico Sergio 12-88 Luni Piero 82-33 Ronchi Aldo 23-43 Busi Nemo

Basi di Dati Relazionali Rispetto agli altri modelli (reticolare, gerarchico), il modello relazionale è basato su valori, quindi: richiede di rappresentare solo ciò che è rilevante da parte dell’utente (altri modelli richiedono di tenere conto di altri campi, necessari alla gestione interna). Questo implica che: è semplice spostare l’informazione da un contesto ad un altro (ad esempio, da un calcolatore ad un altro). la rappresentazione logica non fa riferimento a quella fisica.

Cenni di Algebra Relazionale - 1 L’algebra relazionale è un linguaggio procedurale, ossia un linguaggio in cui le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione. L’algebra relazionale fornisce dei procedimenti formali per effettuare operazioni di uso comune sulle relazioni (tabelle), come estrazione di particolari dati, aggiornamenti eccetera. La formalizzazione consente di verificare la correttezza delle operazioni che vengono fatte, nonche’ di (se possibile) ottimizzarle. L’algebra relazionale è costituita da un insieme di operatori che in ingresso accettano delle relazioni e che in uscita ne producono altre, ottenute elaborando quelle di ingresso. Le tabelle ottenute in uscita prendono il nome di viste, in quanto il calcolo di cui rappresentano il risultato è un filtro logico che serve ad ottenere le sole informazioni che interessano (la “vista” che si vuole in quel momento avere dell’intero db).

Cenni di Algebra Relazionale - 2 Unione l’unione di due relazioni è una relazione che contiene le t-uple che appartengono alla prima o alla seconda o ad entrambe. LAUREATI STUDENTI LAUREATI  STUDENTI

Cenni di Algebra Relazionale - 3 Differenza la differenza di due relazioni è una relazione che contiene le tuple che appartengono alla prima e non appartengono alla seconda. LAUREATI STUDENTI LAUREATI - STUDENTI

Cenni di Algebra Relazionale - 4 Intersezione l’intersezione di due relazioni è una relazione che contiene le tuple che appartengono alla prima e alla seconda. LAUREATI STUDENTI LAUREATI  STUDENTI

Cenni di Algebra Relazionale - 5 Prodotto Cartesiano Il prodotto cartesiano di due relazioni è una relazione che contiene tutte le possibili combinazioni di tuple prese da entrambe le relazioni. STUDENTI FACOLTA STUDENTI x FACOLTA

Cenni di Algebra Relazionale - 6 Selezione  la selezione produce un sottoinsieme delle t-uple su tutti gli attributi (seleziona alcune righe sulla base di un dato criterio). STUDENTI x FACOLTA  (STUDENTI x FACOLTA) mat=stud

Cenni di Algebra Relazionale - 7 Proiezione  la proiezione genera un risultato cui contribuiscono tutte le tuple, ma su un sottoinsieme degli attributi (sostanzialmente, si prendono alcune colonne della relazione, eliminando quelle eventualmente ripetute)  (STUDENTI x FACOLTA) cognome, facoltà STUDENTI x FACOLTA

Cenni di Algebra Relazionale - 8 Join Naturale il Join naturale unisce due relazioni aventi entrambe un certo numero di colonne comuni, generando una terza relazione che contiene tutte le colonne delle due relazioni, e tutte le righe delle due relazioni che hanno valori uguali nelle colonne (attributi) comuni. Se si escludono le colonne non comuni della seconda relazione, si parla di semi-join.  R S R S

Cenni di Algebra Relazionale - 9 Il join esclude le righe della prima e seconda relazione quando esse non hanno attributi comuni uguali. Se si vogliono includere le righe della prima, seconda, o entrambe, si usano i join sinistro, destro, o totale. Quando sono coinvolte a qualunque titolo le righe con valori non coincidenti negli attributi comuni si parla di outer join (join esterno), altrimenti si parla di inner join (join interno)  R S left  R S right R S  R S full

Cenni di Algebra Relazionale - 10 L’equi-join si ha quando non esistono attributi comuni, ma si decide comunque di voler unire le due relazioni, specificando quali attributi (colonne) debbano essere uguali. Se l’espressione, anziché una semplice uguaglianza fra due attributi di due relazioni, è più complessa, il join prende il nome di theta-join  R progetto=codice S R S