Il Modello Relazionale

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

DB -Algebra Relazionale
Calcolo Relazionale.
DB - Modello relazionale dei dati
Creazione di archivi tramite Data Base
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Algebra relazionale Presentazione 12.1
1 Sistemi per il recupero delle informazioni PARTE - III COME SI MODELLA.
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
ESEMPI DI ARCHIVI DI DATI
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
1 I SISTEMI INFORMATIVI Luso dei DATABASE in azienda Giovedì, 22 aprile 2004Alessandro Capodaglio.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
DB -Algebra Relazionale
Appunti informatica- prof. Orlando De Pietro
Algoritmo di Query Optimization
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 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.
Paolo Manghi ISTI-CNR MS Access Paolo Manghi ISTI-CNR
Modelli dei dati Modelli e database
SQL: Structured Query Language
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
1)PROGETTAZIONE DI UN DATABASE
MODELLO LOGICO DEI DATI
Progettare un database
Dottorato di ricerca Nuove Tecnologie e Informazione Territorio – Ambiente Nozioni fondamentali di Basi di Dati Seminario interno.
Introduzione a Oracle 9i
Sistemi di Elaborazione delle Informazioni Mod.I.
EIPASS MODULO 5 Access 2007.
DATABASE Introduzione
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Basi di dati Maria Laura Alessandroni
Progettazione di Database
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.
1 Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI.
Progettazione di una base di dati relazionale Terza forma normale.
Mapping Database Atsilo
Eprogram informatica V anno.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
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.
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à.
Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

Il Modello Relazionale Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi grandi quanto sugli elaboratori personali. Definizione: I meccanismi per definire database con il modello relazionale sono l’ennupla (o record) e la relazione (o tabella): una relazione R è definita da un insieme finito di coppie (campi) della forma T = (A1: T1, A2:T2,…, Ak:Tk) dove gli Ai sono detti attributi e i Ti sono tipi elementari lo schema di una base di dati è un insieme di relazione Ri(Ti); un’istanza di una relazione R(T) è un insieme finito di ennuple di tipo T, cioe di oggetti della forma (A1:v1, A:v2, …, Ak:vk) dove i vi sono di tipo Ti

Esempio: relazione Studenti Modello relazionale Esempio: relazione Studenti Schema Relazione Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) attributo Istanza di Studenti ennupla 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome Valore di attributo Per semplicità una relazione si rappresenta come una tabella le cui colonne rappresentano gli attributi della relazione e le righe le ennuple della relazione.

Modello relazionale Chiavi Chiave Un insieme di campi di una tabella è una chiave se per ogni istanza di tale tabella non esistono due record che coincidano su tutti i valori di tali campi. Chiave primaria: una delle chiavi, in genere la più corta Esempio: (Matricola) e (Nome,Indirizzo) sono chiavi in Studenti(Matricola: Int, Nome: String, Indirizzo: String)

Associazioni Associazione tra ennuple Es. Modello relazionale Associazioni Associazione tra ennuple rappresentata attraverso i valori di un insieme di attributi (chiave esterna), che assume come valori quelli della chiave primaria di un’altra relazione. Es. Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1980 Esami Materia Candidato Data Voto BD 171523 12/01/01 29

Associazione: esempio Modello relazionale Associazione: esempio Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Materia: string, Candidato*: string, Data: string, Voto: int) Studenti Nome Matricola Provincia AnnoNascita 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome Studenti Esami Esami 30 13/02/01 179856 FP 18 11/02/01 171523 LMM 25 15/01/01 175649 BD 167459 28 12/01/01 Voto Data Candidato* Materia Materia Data Voto

Schema grafico relazionale Modello relazionale Schema grafico relazionale Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Materia: string, Candidato*: string, Data: string, Voto: int) Nome Materia Candidato* Data Voto Matricola Studenti Esami Provincia AnnoNascita In B c’è una chiave esterna per A Legenda: A B

Esempio: altre soluzioni 1/2 Modello relazionale Esempio: altre soluzioni 1/2 Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int, Esame*:int) Esami(Codice :int, Materia: string, Data: string, Voto: int) Nome Materia Codice Data Voto Matricola Esame* Studenti Esami Provincia AnnoNascita

Esempio: altre soluzioni 2/2 Modello relazionale Esempio: altre soluzioni 2/2 Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) Esami(Codice :int, Materia: string, Data: string, Voto: int) StudentiEsami(Esame*: int, Candidato*: string) Nome Materia Codice Data Voto Matricola Studenti Esami Provincia AnnoNascita StudentiEsami Candidato* Esame*

Trasf. di schemi ER in relazionali Conversione ER-relazionale Trasf. di schemi ER in relazionali Il modello relazionale non si presta alla modellazione concettuale per la sua povertà espressiva Attributi con tipi elementari Associazioni con chiavi esterne, (1:1) o (0:n)? Quindi: Si modella con diagrammi ER Regole di trasformazione da ER a formalismo grafico relazionale

Passi di trasformazione Conversione ER-relazionale Passi di trasformazione Passi di trasformazione: Trasf. associazioni 1:1 e 0:n Trasf. associazioni n:n Trasf. Gerarchie di inclusione Identificazione chiavi primarie Trasf. attributi multivalore Appiattimento attributi composti Scopo: Rappresentare le stesse informazioni Minimizzare la ridondanza Schema comprensibile Evitare sprechi di memoria

Conversione ER-relazionale Associazioni 0:n Nome Materia Data Voto Matricola Esami Studenti Provincia AnnoNascita Materia Candidato* Data Voto Nome Matricola Esami Studenti Provincia AnnoNascita Regola Chiave esterna aggiunta alla tabella con associazione univoca

Conversione ER-relazionale Associazioni 1:1 DirettaDa DirettoreDi Nome idFacolta Indirizzo Facolta Professori Nome Nome idFacolta Direttore* Indirizzo idProfessore Professori Facolta Provincia AnnoNascita Regola Chiave esterna aggiunta a una qualsiasi delle due tabelle coinvolte (precedenza al vincolo di totalità)

Conversione ER-relazionale Associazioni unarie Nome idPersona compagnoDi Persone Provincia AnnoNascita Nome idPersona Compagno* Persone Provincia AnnoNascita Regola Si aggiunge una chiave esterna alla tabella stessa

Conversione ER-relazionale Associazioni n:n Nome idPersona idConto Persone CCorrenti Saldo idPersona* idConto* Nome idPersona idConto Persone Persone-CC CCorrenti Saldo Regola Si aggiunge una terza tabella che contiene le chiavi esterne relative alle due tabelle coinvolte.

Associazione con proprietà Conversione ER-relazionale Associazione con proprietà Data Titolo idLibro Nome Libri Utenti idUtente Autore prestatoA libriInPrestito Titolo Utente* Nome Autore Libri Utenti idUtente Data idLibro Libro* Data Utente* Titolo Nome Autore Libri Prestiti Utenti idUtente idLibro Regola Attributi aggiunti alla tabella con chiave esterna, oppure ad una terza tabella con due chiavi esterne

Esempio di conversione Conversione ER-relazionale Esempio di conversione Editori Autori Utenti Libri Prestiti Editori Libri Prestiti Autori-Libri Autori Utenti

Attributi multivalore Conversione ER-relazionale Attributi multivalore Persone LingueParlate Lingua Persone LingueParlate Lingua Persone LingueParlate Persone LingueParlate Lingue

Conversione ER-relazionale Le sottoclassi Persone [ nome: string età: int codice: int ] Diventa: Persone ( Nome: string età: int codice: int ) Studenti [ corsoDiLaurea: string matricola: int ] Studenti ( codice*: int corsoDiLaurea: string matricola: int ) Oppure: Oppure: ( Nome: string età: int codice: int ) ( nome: string età: int codice: int corsoDiLaurea: optional string matricola: optional int ) Persone Persone ( codice: int Nome: string età: int corsoDiLaurea: string matricola: int ) Studenti

Conversione ER-relazionale Le sottoclassi (cont.) Persone AttrP con chiave ChP AttrM Maschi Femmine AttrF AttrM optional Persone AttrP con chiave ChP AttrF optional AttrM con chiave esterna ChP AttrP con chiave ChP e AttrM Maschi Maschi AttrP con chiave ChP Persone AttrP con chiave ChP e AttrF Femmine AttrF con chiave esterna ChP Femmine

Conversione ER-relazionale Criteri di scelta Numero di attributi delle sottoclassi Tipo di operazioni Riguardano tutte le informazioni di elementi di una sottoclasse? Riguardano la visita di tutti gli elementi della superclasse?

Linguaggi relazionali Per il modello relazionale sono stati definiti due principali linguaggi che sono stati poi usati per definire e implementare il linguaggio SQL dei DBMS. Algebra relazionale insieme di operatori su relazioni che danno come risultato relazioni. Non si usa come linguaggio di interrogazione dei DBMS ma come rappresentazione interna delle interrogazioni. Calcolo relazionale linguaggio dichiarativo di tipo logico dal quale è stato derivato l'SQL.

Linguaggi relazionali Algebra relazionale Notazione R e S relazioni t, s ennuple A,B,C attributi X,Y,Z insiemi di attributi Operatori di base Proiezione Restrizione Ridenominazione Prodotto Giunzione

Linguaggi relazionali Proiezione Proiezione (): elimina gli attributi che non sono nella lista di proiezione  A1...An (R) Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato?

Linguaggi relazionali Esempi di proiezione Studenti 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome  Nome, Matricola (Studenti)  Nome (Studenti) Nome Matricola Isaia 171523 Rossi 167459 Bianchi 179856 Bonini 175649 Nome Isaia Rossi Bianchi Bonini

Linguaggi relazionali Restrizione Restrizione (selezione) (): seleziona le ennuple della relazione che soddisfano la condizione. Condizione (R) Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato?

Esempio di restrizione Linguaggi relazionali Esempio di restrizione Studenti 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome s AnnoNascita<1979 (Studenti) 1078 LI 179856 Bianchi 1975 LU 167459 Rossi AnnoNascita Provincia Matricola Nome

Es. di composizione di operatori Linguaggi relazionali Es. di composizione di operatori Studenti 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome Il numero di matricola degli studenti nati prima del 1979  Matricola(s AnnoNascita<1979 (Studenti) ) 179856 167459 Matricola

Prodotto e ridenominazione Linguaggi relazionali Prodotto e ridenominazione Prodotto (´): l'operatore ha due argomenti R e S con attributi distinti e il risultato è una relazione con elementi ottenuti concatenando ogni ennupla di R con tutte quelle di S. a A b B a1 A1 b1 B1 a1 A1 b2 B2 a1 A1 b3 B3 a2 A2 b1 B1 a2 A2 b2 B2 a2 A2 b3 B3 b B b1 B1 b2 B2 b3 B3 a A a1 A1 a2 A2 Ridenominazione (): cambia il nome di un attributo di una relazione A  B (R)

Linguaggi relazionali Giunzione Giunzione naturale ( ) R(ZX) e S(YX) R S = { t | t[XY]R e t[ZX]S } A B a A B a A a1 A1 a2 A2 A1 B1 a1 A1 B1 a1 A1 B3 a2 A2 B3 A3 B2 A1 B3 A2 B3 Giunzione esplicita R S R.A = S.B

Linguaggi relazionali Esempi di giunzione 1/4 Trovare i nomi degli studenti che hanno passato un esame con voto inferiore a 28 Studenti 1980 PI 175649 Bonini 1978 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome Esami 30 13/02/01 179856 FP 18 11/02/01 171523 LMM 25 15/01/01 175649 BD 167459 28 12/01/01 Voto Data Candidato* Materia

Linguaggi relazionali Esempi di giunzione 2/4 25 15/01/01 175649 BD 1980 PI Bonini 30 13/02/01 179856 FP 1978 LI Bianchi 167459 1975 LU Rossi 18 11/02/01 171523 LMM Isaia 28 12/01/01 Voto Data Candidato Materia AnnoNascita Provincia Matricola Nome  Nome(s Voto<28 (Studenti Esami)) Matricola = Candidato

Linguaggi relazionali Esempi di giunzione 3/4  Nome(s Voto<28 (Studenti Esami)) Matricola = Candidato Nome Matricola Provincia AnnoNascita Materia Candidato Data Voto Isaia 171523 PI 1980 LMM 171523 11/02/01 18 Bonini 175649 PI 1980 BD 175649 15/01/01 25

Linguaggi relazionali Esempi di giunzione 4/4  Nome(s Voto<28 (Studenti Esami)) Matricola = Candidato Bonini Isaia Nome

Trasformazioni algebriche Linguaggi relazionali Trasformazioni algebriche Basate su regole di equivalenza fra espressione algebriche Consentono di scegliere diversi ordini di join e di anticipare proiezioni e restrizioni. Consideriamo la relazione R(A, B, C, D):  A (  A B (  ( R ) ) )   A ( R ) A B C  C 1 (  C 2 (  C 3 ( R )   C 1  2 3 ( R )  C 1  2 ( E 1  E 2 )   C 1 ( E 1 )   C 2 ( E 2 ) R (S  T)  (R  S)  T (R  S)  (S  R) Ottimizzazione algebrica: anticipazione delle proiezioni e delle restrizioni rispetto al prodotto per ridurre la dimensione dei risultati intermedi

Alberi logici e trasformazioni algebriche Linguaggi relazionali Alberi logici e trasformazioni algebriche Consideriamo le relazioni R(A, B, C, D) e S(E, F, G) e l'espressione: A,F(A=100 and F > 5 and A = E (R x S)) A,F A,F A = E A=100 F > 5 A = E   A E, F R S A=100 F > 5 R S

Extra su Algebra Relazionale

Algebra relazionale: (cont.) Linguaggi relazionali Algebra relazionale: (cont.) Unione (): l'operatore ha due argomenti R e S dello stesso tipo e il risultato è una relazione ottenuta facendo l'unione delle ennuple di R con quelle di S. R  S Differenza (-): l'operatore ha due argomenti R e S dello stesso tipo e il risultato è una relazione contenente le ennuple di R non presenti in S. R - S = { t | tR e tS } Qual è il tipo del risultato? Se R e S hanno n elementi quanti ne ha il risultato? Se t1 è un'ennupla non in R , allora R = (R  {t1}) - {t1})

Algebra relazionale: (cont.) Linguaggi relazionali Algebra relazionale: (cont.) Semi-giunzione ( ) R(ZX) e S(YX) R S = { t R | t[X] X(S) } A B a A A B A1 B1 a1 A1 A1 B1 A3 B2 a2 A2 A1 B3 A1 B3 A2 B3 a2 A4 A2 B3

Algebra relazionale: (cont.) Linguaggi relazionali Algebra relazionale: (cont.) Operatori derivati Intersezione () R  S = { t | t R e t S } Divisione ( \ ) R \ S = { t | {t}  S  R} vale che (R  S)\S = R a A b B a1 A1 b1 B1 a1 A1 b2 B2 a1 A1 b3 B3 a2 A2 b1 B1 a2 A2 b2 B2 a2 A2 b3 B3 b B b1 B1 b2 B2 b3 B3 a A a1 A1 a2 A2