1 Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI.

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Calcolo Relazionale.
DB - Modello relazionale dei dati
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Progettazione concettuale
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
1 Sistemi per il recupero delle informazioni PARTE - III COME SI MODELLA.
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
L’uso dei database in azienda
ENTITÀ - RELAZIONE MODELLO ENTITÀ E ATTRIBUTI DOMINI RELAZIONI
Corso di Informatica (Basi di Dati)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Access: Query semplici
Basi di dati Università Degli Studi Parthenope di Napoli
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
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.
Partizionamento/accorpamento di concetti
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Basi di dati Claudia Raibulet
Il Modello Relazionale
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
Sistemi di Elaborazione delle Informazioni Mod.I.
DB- Sistemi Informativi
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.
IV D Mercurio DB Lezione 2
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Microsoft Access Chiavi, struttura delle tabelle.
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.
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
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.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Eprogram informatica V anno.
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.
Operazioni Relazionali
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.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
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.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
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:

1 Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI

2 PROGETTAZIONE Ricordiamo le fasi della progettazione di una Base di Dati Ci occuperemo adesso della progettazione logica

3 PROGETTAZIONE LOGICA La descrizione del modello da realizzare è fatta in funzione delle caratteristiche del SGBD che sarà utilizzato (il modello dei dati, il linguaggio per sviluppare le applicazioni). Il modello dei dati, detto modello logico, è “più vicino” alla rappresentazione informatica dei dati. Vedremo l’uso del Modello dei Dati Relazionale. Lo schema risultante è detto schema relazionale, ed è rappresentato con un formalismo testuale.  è un modello dei dati “compreso” dal SGBD  si ottiene con una traduzione dello schema E-R

4 ESEMPIO

5 VIENE TRADOTTO NELLO SCHEMA MUSEI (NomeM, Città, Indirizzo, Direttore) ARTISTI (NomeA, Nazionalità, DataN, DataM) OPERE (Codice, Anno, Titolo, NomeM*, NomeA*) PERSONAGGI (Personaggio, Codice*) DIPINTI (Codice*, Tipo, Larghezza, Altezza) SCULTURE (Codice*, Materiale, Altezza, Peso)

6 INTRODUZIONE Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi centrali quanto sugli elaboratori personali. I meccanismi per definire una base di dati con il modello relazionale sono solo due: l’ennupla la relazione.

7 Ennupla. È un insieme finito di coppie (Attributo, valore atomico) Relazione. È un insieme finito (eventualmente vuoto) di ennuple con la stessa struttura. I campi di un’ennupla sono atomici (numeri, stringhe o il valore NULL). Si tenga presente che non si possono rappresentare proprietà strutturate, o multivalore e vedremo più avanti come risolvere questi problemi di rappresentazione. Un’ennupla si usa per rappresentare entità e la relazione si usa per rappresentare classi di entità. ENNUPLA E RELAZIONE

8 TERMINOLOGIA - I  attributo: corrisponde (non sempre) ad un attributo del modello E-R. Diversamente dal modello E-R, gli attributi sono sempre univoci (ad un sol valore) ed atomici (non composti)  dominio (di un attributo): è l’insieme dei valori che può assumere un attributo.  chiave primaria di una relazione: un attributo che identifica univocamente le ennuple della relazione  gli attributi della chiave primaria vengono sottolineati  L’ordine degli attributi non è significativo

9 TERMINOLOGIA - II  Una relazione si definisce dandole un nome ed elencando fra parentesi tonde il tipo delle sue ennuple. La definizione di una relazione è detta schema della relazione R(A1:T1, A2:T2,..., An:Tn)  R è il nome della relazione  A1, A2,... sono gli attributi della relazione  T1, T2,... sono i tipi degli attributi (interi, reali, booleani, stringhe)  Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è R(A1, A2,...,An)  Lo schema relazionale è la descrizione della struttura di una base di dati  insieme di schemi di relazione  insieme di vincoli

10 RAPPRESENTAZIONE GRAFICA - I PERSONE(CodFiscale,Nome,Telefono) o più accuratamente PERSONE(CodFiscale:string(16),Nome:string(30), Telefono: optional integer) L’attributo sottolineato è la chiave primaria

11 RAPPRESENTAZIONE GRAFICA - II Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la seguente: E’ d’uso visualizzare una relazione come una tabella bidimensionale, con le colonne identificate dagli attributi e le righe contenenti i valori dei campi, nell’ordine indicato dall’intestazione delle colonne. La proprietà di essere chiave è riferita allo schema piuttosto che ad una particolare tabella: una chiave è tale (identifica le righe) in una qualunque istanza di un determinato schema.

12 Impiegati(Matricola :string, Cognome :string, AnnoNascita :integer, Provincia :string) Studenti( Cognome :string, Matricola :string, Provincia :string, AnnoNascita :integer) Docenti( Cognome :string, Matricola :integer, Provincia :string, AnnoNascita :integer) stesso tipo Docenti ha tipo diverso perché Matricola è di tipo intero e non stringa. tipo diverso TIPI Due relazioni hanno lo stesso tipo se hanno uguali il numero degli attributi, gli attributi e il tipo degli attributi con lo stesso nome.

13 CHIAVI ESTERNE Le associazioni tra i dati sono rappresentate attraverso i valori di opportuni campi, chiamati chiavi esterne, che assumono come valori quelli della chiave primaria di un’altra relazione. In altre parole una chiave esterna è un attributo (od un insieme di attributi) di una relazione R che assume i valori della chiave primaria di un’altra relazione S. Serve a rappresentare un’associazione tra R ed S

14 ESEMPIO - I Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di Studi). STUDENTI(Nome:string, Matricola: string, Provincia: string, AnnoNascita:int, SiglaCDS*: string) CDS(SiglaCDS: string, NomeCDS: string, Tipo: string) Il fatto che un corso di studi è associato ad uno studente si modella prevedendo nello schema della relazione STUDENTI un campo che assume come valori la chiave primaria di CDS, cioè SiglaCDS. SiglaCdS* è chiave esterna nella relazione STUDENTI, e serve a rappresentare un’associazione univoca da STUDENTI a CdS

15 ESEMPIO - II

16 ESEMPIO - III Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di SiglaCDS nella relazione CDS Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”, deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “XYZ”. Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso di Studi “XYZ” Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere sempre soddisfatto da una chiave esterna:

17 DA MODELLO A OGGETTI A MODELLO RELAZIONALE - I Data una descrizione di una base di dati con i meccanismi di astrazione del modello a oggetti, la sua trasformazione con il modello relazionale è alquanto laboriosa perché bisogna trattare la descrizione delle associazioni la descrizione delle gerarchie di classi le eventuali proprietà strutturate e multivalore e passare ad una loro descrizione con attributi atomici. Inoltre, essendo il modello relazionale meno espressivo del modello a oggetti, in generale si può procedere in più modi nella trasformazione e la scelta fra possibili alternative va fatta cercando di ottimizzare lo spazio di memoria occupata dalla base di dati e le prestazioni delle applicazioni.

18 DA MODELLO A OGGETTI A MODELLO RELAZIONALE - II Nella conversione di uno schema espresso con il modello a oggetti gli obiettivi da perseguire sono: 1. rappresentare le stesse informazioni; 2. minimizzare la ridondanza; 3. agevolare il recupero dei dati in relazione. In generale nella conversione occorre duplicare delle informazioni e non si possono sempre rappresentare direttamente tutti i vincoli imposti dai meccanismi del modello a oggetti. Per garantire la coerenza dei dati duplicati, e il rispetto dei vincoli non esprimibili nel modello relazionale, occorre quindi definire opportunamente le operazioni che modificano la base di dati.

19 DA MODELLO A OGGETTI A MODELLO RELAZIONALE - III La trasformazione di uno schema a oggetti in uno schema relazionale avviene eseguendo i seguenti passi: 1.rappresentazione delle classi 2.rappresentazione delle associazioni uno a uno e uno a molti; 3.rappresentazione delle associazioni molti a molti o non binarie; 4.rappresentazione delle gerarchie di inclusione; 5.rappresentazione degli attributi multivalore; 6. appiattimento gli attributi composti

20 1. Rappresentazione delle classi Una classe C è rappresentata da una relazione R i cui attributi sono quelli di C si traduce in Studenti(Matricola, Nome, AnnoImmatric)

21 2. Rappresentazione delle associazioni uno a uno e uno a molti Come abbiamo già visto nell’esempio degli studenti e dei corsi di studi, le associazioni uno a molti si rappresentano aggiungendo agli attributi della relazione rispetto a cui l’associazione è univoca una chiave esterna che riferisce l’altra relazione. ESEMPIO: la relazione tra corsi di studi e studenti, essendo univoca rispetto ai corsi di studi, si rappresenta aggiungendo agli studenti una chiave esterna SiglaCDS. Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad una qualunque delle due relazioni, preferendo quella rispetto a cui l’associazione è totale. Se l’associazione ha degli attributi, questi vanno aggiunti alla relazione a cui si aggiunge la chiave esterna.

22 ESEMPIO - I Studenti(Matricola, Nome, AnnoImmatric, Codice*) CorsidiLa(Codice, Nome, Tipo) la chiave esterna Codice* rappresenta l’associazione è_iscritto N.B. È un grave errore fare il contrario. Lo schema: Studenti(Matricola, Nome, AnnoImmatric) CorsidiLa(Codice, Nome, Tipo, Matricola*) rappresenta Corsi di Laurea ai quali può essere iscritto un solo studente!

23 ESEMPIO - II Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette entrambe le soluzioni. Dipartimenti(Nome, Facoltà, Cod*) Docenti(Cod, Settore) o Dipartimenti(Nome, Facoltà) Docenti(Cod, Settore, Nome*) La prima soluzione è migliore, ma entrambe sono corrette

24 3. Rappresentazione delle associazioni molti a molti o non binarie Un’associazione molti a molti tra due classi si rappresenta aggiungendo allo schema una nuova relazione che contiene due chiavi esterne che riferiscono le due relazioni coinvolte. precisamente: se A è un’associazione multivalore da R ad S e da S ad R, A è rappresentata con uno schema di relazione in cui gli attributi sono le chiavi primarie pkR di R e pkS di S. A (pkR*, pkS*) Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova relazione, e non vanno a far parte della chiave della nuova relazione.

25 ESEMPIO - I Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di oggetti in associazione. CorsidiLa(Codice,Nome,Facoltà,Tipo) Docenti(CodDoc, Settore) Insegna(Codice*, CodDoc*) Il docente identificato dal CodDoc 1592 insegna ai corsi di laurea identificati dai codici Inf, SBC e Mat, il docente identificato dal CodDoc 3014 insegna al corso di laurea identificato dai codici Inf, ecc...

26 ESEMPIO - II CorsidiLa(Codice,Nome,Facoltà,Tipo) Docenti(CodDoc, Settore) Insegna(Codice*, CodDoc*, NumIns)

27 4. Rappresentazione delle gerarchie fra classi Sia data una classe A con due sottoclassi B e C, tali che i tipi associati alle tre classi abbiano, rispettivamente, attributi (XA), (XA XB) e (XA XC), e sia KA la chiave primaria di A. Nel modello relazionale vi sono almeno tre modi diversi di rappresentare questa situazione: 1. Relazione unica 2. Partizionamento verticale 3. Partizionamento

28 4. Rappresentazione delle gerarchie fra classi Relazione unica Si definisce un’unica relazione con attributi (XA XB XC D) che raccoglie tutti gli elementi delle tre classi; gli attributi XB e XC possono assumere il valore nullo, e l’attributo D serve a indicare la classe a cui appartiene l’elemento. ESEMPIO: Consideriamo la classe Persone con attributi CF, Nome e Tel e due sottoclassi: Studenti, con attributi Matricola e Facoltà, e Lavoratori, con attributi Attività e Reddito Secondo la relazione unica definiremo un’unica relazione Persone con tutti gli attributi Persone( CF, Nome, Tel, Matricola, Facoltà, Attività e Reddito )

29 ESEMPIO Un solo schema di relazione, che contiene tutti gli attributi Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi

30 4. Rappresentazione delle gerarchie fra classi Partizionamento verticale Si definiscono tre relazioni RA(XA), RB(KA*, XB), RC(KA*, XC), dove RA contiene tutti gli elementi della classe A, anche se stanno in qualche sottoclasse, mentre RB ed RC contengono solo quegli attributi, degli elementi di B e di C, che non sono in XA (attributi propri delle sottoclassi), ed una chiave esterna KA* che permette di ritrovare in RA il valore degli altri attributi. ESEMPIO si definiscono le relazioni Persone, con attributi CodFisc, Nome e Tel, Studenti con attributi CodFisc, Matricola e Facoltà e la relazione Lavoratoricon attributi CodFisc, Attività e Reddito. La relazione Persone contiene il codice fiscale il nome ed il telefono di tutte le persone, mentre le altre due relazioni contengono gli attributi propri delle sottoclassi, nonché il codice fiscale, che permette di risalire al nome; Persone(CodFisc, Nome, Telefono) Lavoratori(CodFisc*, Attività, Reddito) Studenti(CodFisc*, Matricola, Facoltà)

31 ESEMPIO Persone(CodFisc, Nome, Telefono) Lavoratori(CodFisc*, Attività, Reddito) Studenti(CodFisc*, Matricola, Facoltà)

32 4. Rappresentazione delle gerarchie fra classi Partizionamento orizzontale Si definiscono tre relazioni RA(XA), RB(XA,XB), RC(XA, XC), dove RA contiene solo gli elementi della classe A che non stanno in nessuna delle sottoclassi, mentre RB ed RC contengono tutti gli elementi di B e di C NOTA: se le sottoclassi costituiscono una copertura, la relazione RA(XA) non viene definita perché sarebbe sempre vuota. ESEMPIO: trattandosi di sottoclassi che non soddisfano il vincolo di copertura si definiscono le relazioni Persone con attributi CodFisc, Nome, Telefono, Studenti con attributi CodFisc, Nome, Telefono, Matricola e Facoltà e la relazione Lavoratori con attributi CodFisc, Nome, Telefono, Attività e Reddito. La relazione Persone contiene le informazioni delle persone che non sono né studenti né lavoratori, la relazione Studenti contiene le informazioni degli studenti e la relazione Lavoratori contiene le informazioni dei lavoratori. Persone(CodFisc, Nome, Telefono) Lavoratori(CodFisc*, Attività, Reddito) Studenti(CodFisc*, Matricola, Facoltà)

33 ESEMPIO Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli attributi di ciascuna classe Anche con questa soluzione viene ignorata la gerarchia: si perde la superclasse Si osservi che con nessuna delle tre soluzioni è in generale possibile esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di disgiunzione e di totalità

34 5. Rappresentazione delle proprietà multivalore Una proprietà multivalore di una classe C si rappresenta eliminando il corrispondente attributo da C e creando una relazione con due attributi: una chiave esterna che fa riferimento alla chiave primaria di C ed un attributo che corrisponde all’attributo multivalore da trasformare. Un oggetto con chiave primaria K ed in cui l’attributo assume valore A 1,..., A n si rappresenta poi inserendo nella nuova relazione n coppie (K, A 1 ),..., (K,A n ). ESEMPIO: si immagini che un utente abbia attributi Codice, Cognome e Telefoni, con Telefoni multivalore. Applicando la trasformazione, si ottengono le due seguenti relazioni: Utenti(Codice, Cognome) TelefoniUtenti(Codice*, Telefono)

35 ESEMPIO Film(CodFilm,Titolo,Regista,Anno) Attori(CodFilm*, Attore)

36 6. Appiattimento degli attributi composti Se un attributo A di uno schema di relazione è di tipo strutturato con campi Ai, si sostituisce A con gli attributi A i. Se A faceva parte della chiave primaria dello schema di relazione, si sostituisce A con gli attributi Ai nella chiave, e poi si verifica che non esista un sottoinsieme degli attributi della nuova chiave primaria che è esso stesso una chiave. Sullo schema relazionale ottenuto si ripetono questa trasformazione e la precedente finché esistono schemi di relazioni con proprietà composte e proprietà multivalore. ESEMPIO: se gli Utenti hanno un attributo strutturato Indirizzo con attributi Via, CAP e Città, applicando la trasformazione alla relazione Utenti(Codice, Cognome, Indirizzo) si ottiene lo schema di relazione Utenti(Codice, Cognome, Via, CAP, Città)

37 Riassumendo Le regole di traduzione Entità: diventano tabelle ed i loro identificatori chiavi primarie Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il lato in cui includere gli attributi e la chiave esterna; se una opzionale si includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe opzionali si costruisce una tabella autonoma come per il caso N-N. Associazioni1-N:gli attributi dell’associazione e la chiave primaria della tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa all’entità dal lato“1”. Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte

38 Confronto tra modello E-R e modello Relazionale Nonostante una evidente analogia tra Classe e Relazione Oggetto e Ennupla Attributo(E-R) e Attributo(Rel) sussiste in realtà una significativa differenza tra i concetti nei due modelli Non sempre una relazione rappresenta una classe: può rappresentare una associazione o un attributo multivalore Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una coppia di oggetti in associazione o un possibile valore di un attributo multivalore Non sempre un attributo Rel rappresenta un attributo E-R: può rappresentare un oggetto di un’altra classe (chiave esterna)

39 La Conoscenza Astratta nel modello Relazionale Nel modello relazionale si possono esprimere i seguenti vincoli:  Vincolo di chiave  Vincolo di chiave esterna  Tipo di un attributo  Attributo obbligatorio  Vincoli strutturali delle associazioni (non completamente)

40 La Conoscenza Astratta nel modello Relazionale Rispetto al modello E-R, non è possibile rappresentare i vincoli delle gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali delle associazioni Questo schema E-R si traduce nello schema relazionale S(h, a, k*) T(k, b) che rappresenta l’univocità e la totalità di R da S a T, ma non consente di esprimere la sua totalità da T ad S.

41 Sistemi per il recupero delle informazioni PARTE - VI ALGEBRA RELAZIONALE: operazioni

42 BASE DI DATI Una base di dati può essere utilizzata con due modalità:  interattivamente: l’utente interagisce direttamente con la base di dati. I calcolatori personali hanno fatto grandi progressi in questa direzione, e l’impiego di terminali grafici ha liberato gli utenti dalla dipendenza dal linguaggio di programmazione per generare resoconti e statistiche, a partire dai dati memorizzati  mediante programmi: accesso ai dati da programmi scritti in un linguaggio di programmazione.

43 Come esempio di linguaggi per l’uso interattivo di basi di dati, relazionali, vediamo  l’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.  il linguaggio SQL (Structured Query Language), che offre una sintassi per l’algebra relazionale. Il termine algebra è dovuto al fatto che sono previsti operatori (query) che agiscono su relazioni e producono altre relazioni come risultato. Gli operatori possono essere combinati per formare espressioni complesse. LINGUAGGI RELAZIONALI

44 ESEMPI DI QUERY

45 Gli operatori fondamentali dell’algebra relazionale sono:  Ridenominazione;  Unione;  Intersezione;  Differenza;  Proiezione;  Restrizione (o Selezione);  Prodotto. I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi OPERATORI FONDAMENTALI

46 RIDENOMINAZIONE Operatore unario Modifica il nome di un attributo senza cambiarne il valore: restituisce la relazione ottenuta sostituendo in R gli attributi A, B,… con gli attributi A’, B’,… DEFINIZIONE OPERATORIALE:  A  A’ (R) ESAMI  Matricola  Codice Studente (Esami) ESEMPIO

47 OPERATORI INSIEMISTICI Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi I risultati debbono essere relazioni E’ possibile applicare unione, intersezione, differenza solo a relazioni definite sugli stessi attributi

48 Siano R ed S relazioni dello stesso tipo allora  L’unione di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno in R in S, o in entrambe.  L’intersezione di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno contemporaneamente sia in R sia in S.  La differenza di R con S restituisce una relazione dello stesso tipo con le ennuple che stanno in R ma non in S. DEFINIZIONE OPERATORIALE  R  S  R  S  R - S UNIONE, INTERSEZIONE, DIFFERENZA

49 ESEMPIO DI UNIONE

50 ESEMPIO DI INTERSEZIONE

51 ESEMPIO DI DIFFERENZA

52 “Paternita’” e “Maternità” sono attributi con nomi diversi ma entrambi sono “Genitori” Soluzione: ridenominare gli attributi ESEMPIO: UNIONE? Maternità Madre ???

53 ESEMPIO: RIDENOMINAZIONE E UNIONE

54 Produce risultati:  su un sottoinsieme degli attributi dell’operando  con valori da tutte le n-uple della relazione Data la relazione R su insieme di attributi X={A 1,A 2,…A n } e un sottoinsieme Y di X, la proiezione di R su Y è la relazione ottenuta da R considerando solo i valori sugli attributi di Y DEFINIZIONE OPERATORIALE:  Y (R) La cardinalità di  Y (R), cioè il numero degli elementi che lo compongono, puo’ essere minore di R nel caso di duplicati PROIEZIONE

55 Si riduce la cardinalita’ del risultato rispetto all’operando ESEMPIO PROIEZIONE per tutti gli impiegati: matricola e cognome

56 Produce risultati:  con lo stesso schema dell’operando  con un sottoinsieme delle ennuple dell’operando: quelle che soddisfano la condizione Data la relazione R la restrizione di R alla condizione C restituisce una relazione dello stesso tipo di R avente per valori gli elementi di R che soddisfano la condizione C. La condizione di selezione è formata da  operatori booleani (AND, OR, NOT)  condizione atomiche: termini che possono contenere  confronti fra attributi (per esempio, Stipendio>Tasse, dove Stipendio e Tasse sono attributi)  confronti fra attributi e costanti (per esempio, Età  60, dove Età è un attributo) DEFINIZIONE OPERATORIALE:  Condizione (R) RESTRIZIONE (O SELEZIONE)

57 ESEMPIO RESTRIZIONE Impiegati che guadagnano più di 50 guadagnano più di 50 e lavorano a Milano hanno lo stesso nome della filiale presso cui lavorano

58 Date le relazioni R ed S con attributi diversi, il prodotto di R con S restituisce una relazione con attributi quelli di R e di S ed elementi la copia delle ennuple del prodotto cartesiano di R e S, ovvero ogni ennupla di R è concatenata con tutte le ennuple di S. DEFINIZIONE OPERATORIALE: R x S Se R ha n elementi ed S ne ha m il prodotto ne ha m*n PRODOTTO

59 ESEMPIO DI PRODOTTO

60 JOIN NATURALE operatore binario (generalizzabile) produce un risultato  sull'unione degli attributi degli operandi  con ennuple costruite ciascuna a partire da una ennupla di ognuno degli operandi Permette di combinare ennuple da relazioni diverse basandosi sui valori degli attributi Sia R con attributi XY ed S con attributi YZ. Il join naturale produce una relazione di attributi XYZ; ennuple del risultato sono ottenute combinando le ennuple di R e S che hanno gli stessi valori negli attributi con lo stesso nome

61 ESEMPIO - I join completo: ogni ennupla contribuisce al risultato

62 ESEMPIO - II Join non completo: alcuni valori tra gli attributi comuni non coincidono, quindi, alcune ennuple non partecipano al JOIN

63 ESEMPIO - III Join vuoto: caso limite  potrebbe anche succedere che nessuna ennupla trovi il corrispettivo

64 ESEMPIO - IV L’altro caso estremo del JOIN  ogni ennupla di R 1 si combina con ogni ennupla di R 2  la cardinalita’ del risultato e’ il prodotto delle cardinalita’

65 Prodotto cartesiano a partire dal JOIN Il JOIN e’ definito anche se non ci sono attributi comuni fra le relazioni In questo caso, non essendoci vincoli sulle ennuple da selezionare, vengono selezionate tutte le ennuple dalle relazioni del JOIN  Prodotto cartesiano

66 Query (interrogazioni) L’algebra relazionale puo’ quindi essere usata per interrogare una base di dati Una query e’ una funzione da una istanza di un database (insieme di relazioni) ad una relazione