DB -Algebra Relazionale

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Calcolo Relazionale.
DB - Modello relazionale dei dati
Il linguaggio della Matematica: Insiemi e operazioni
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Interrogazione di una base di dati relazionale Algebra relazionale.
Biglietti: schema E/R.
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
1 Algebra Relazionale Eugenio Di Sciascio. 2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo.
Semantica delle Informazioni
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Operazioni Relazionali
ESEMPI DI ARCHIVI DI DATI
Il ragionamento classico
1 Microsoft Access 1. 2 Contenuto Dovete progettare e realizzare, usando Access, una base di dati che riguarda gli esami sostenuti dagli studenti iscritti.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Algoritmo di Query Optimization
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Equivalenza di espressioni
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Basi di dati Claudia Raibulet
Il Modello Relazionale
SQL: Structured Query Language
Logica Matematica Seconda lezione.
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Pierdaniele Giaretta Linguaggio della logica predicativa
Pierdaniele Giaretta Linguaggio della logica predicativa
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Laurea in Conservazione e Restauro dei Beni Culturali
DB- Sistemi Informativi
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
Microsoft Access Query (II), filtri.
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
Microsoft Access Maschere (II).
Algebra di Boole.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Microsoft Access Query (III).
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.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
1 Il modello relazionale. 2 Introduzione Il modello relazionale, sebbene non sia stato il modello usato nei primi DBMS, e' divenuto lentamente il modello.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
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.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Informatica Introduzione alle basi di dati Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
L’Algebra Relazionale
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.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
Esempi di interrogazioni in SQL DB di partenza Base di dati di partenza –STUDENTI (Matricola, Nome, cognome, , PIN) –CORSI (Codice, Nome) –CARRIERE.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Interrogazione di una base di dati relazionale
Interrogazione di una base di dati relazionale
Transcript della presentazione:

DB -Algebra Relazionale

LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da un’espressione algebrica sulle relazioni dello schema Logici: una query è definita da una formula della logica del primo ordine; in particolare se è una collezione di formule di Horn senza funzioni si ha il Datalog DB -Algebra Relazionale

DB -Algebra Relazionale ESEMPIO DI QUERY DB -Algebra Relazionale

OPERATORI DELL’ALGEBRA Gli operatori primitivi dell’Algebra Relazionale sono: Ridenominazione; Unione; Differenza; Proiezione; Restrizione (o Selezione); Prodotto. I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi DB -Algebra Relazionale

DB -Algebra Relazionale Ridenominazione Siano X gli attributi di R, A in X, B not in X . Allora AB(R) è con attributi (X-{A}){B}  AB(R)={t | u R t[B] = u[A]  t[C]=u[C] se C e’ diverso da B}. DB -Algebra Relazionale

ESEMPIO di Ridenominazione Matricola  Codice Studente(Esami) DB -Algebra Relazionale

DB -Algebra Relazionale Unione e Differenza Siano R ed S relazioni dello stesso tipo allora RS = {t | t R  t  S} R-S = {t | t R  tS} DB -Algebra Relazionale

DB -Algebra Relazionale Esempi S R R-S RS DB -Algebra Relazionale

DB -Algebra Relazionale Proiezione Sia R una relazione e siano A1, A2,…, An alcuni suoi attributi allora:  A1, A2,…, An (R) = {t[A1, A2,…, An ] | tR} DB -Algebra Relazionale

DB -Algebra Relazionale Esempio R Proiezione  A,B (R) DB -Algebra Relazionale

Restrizione(Selezione) Sia R una relazione allora   (R) = {t | t R  (t)} dove  e’ una formula proposizionale costruita a partire dagli atomi AB, dove A e B sono attributi di R o costanti e   {=,<, >}, utilizzando i connettivi proposizionali ,,. DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Selezione  A=X (R) DB -Algebra Relazionale

DB -Algebra Relazionale Prodotto Siano R(A1: T1,…, An: Tn) ed S (An+1: Tn+1,…, An+m: Tn+m) con {A1,…, An} {An+1,…, An+m}= . Allora si pone R x S = {tu | tR  u  S} DB -Algebra Relazionale

DB -Algebra Relazionale Esempio R S R x S DB -Algebra Relazionale

DB -Algebra Relazionale Operatori Derivati Sono operatori utili che si possono esprimere in funzioni di quelli primitivi. Intersezione: Siano R ed S dello stesso tipo RS = {t | tR  t  S}. Essa si può esprimere in funzione degli operatori primitivi: R  S = R-(R-S) DB -Algebra Relazionale

Divisione(Quoziente) Divisione: Siano XY gli attributi di R ed Y quelli di S, allora R/S = {w | {w} x S  R}. Per far vedere che / e’ derivato basta osservare che R/S =  X (R) - T dove T =  X (( X (R) x S) - R). DB -Algebra Relazionale

DB -Algebra Relazionale Uso della divisione La divisione serve a rispondere a query del tipo: trova tutte le n-uple di R associate a tutte le n-uple di S. Ad esempio {‘DBI’,’Progr’}=  Corso Corso=‘DBI’  Corso=‘Progr’ (Esami) ( Matricola,Corso Esami)/ {‘DBI’,’Progr’} = matricole di studenti che hanno superato DBI e Progr. DB -Algebra Relazionale

DB -Algebra Relazionale Giunzione(Equijoin) Siano R(A1: T1,…, An: Tn) ed S (An+1: Tn+1,…, An+m: Tn+m) con {A1,…, An}  {An+1,…, An+m}= . Allora si pone R 1 Ai = Ak S = {tu | tR, u  S , t.Ai =u.Ak} i=1…. n, k= n+1…. n+m. La giunzione e’ derivata perche’ R 1 Ai = Ak S =  Ai = Ak (R x S) DB -Algebra Relazionale

Studenti 1 Codice= MatricolaEsami NOME CODICE MATRICOLA INDIRIZZO TELEFONO CORSO VOTO Mario Rossi 123456 Via Etnea 1 222222 Architetture 30 Ugo Bianchi 234567 Via Roma 2 333333 Programmazione 18 DB -Algebra Relazionale

Giunzione Naturale(Natural join) Siano R con attributi XY ed S con attributi YZ R 1 S e’ una relazione di attributi XYZ costituita da tutte le n-uple t tali che: t[XY] R , t[YZ]  S. R 1 S = {t | t[XY]  R  t[YZ]  S} La giunzione e’ derivata perché Si rinominano gli attributi Y in S come Y’ e si ottiene S’. Si opera la giunzione (equijoin) rispetto ad Y ed Y’. Si proietta rispetto a XYZ R 1 S=  XYZ (R 1 Y=Y’ S’) DB -Algebra Relazionale

DB -Algebra Relazionale Studenti 1 Esami NOME MATRICOLA INDIRIZZO TELEFONO CORSO VOTO Mario Rossi 123456 Via Etnea 1 222222 Architetture 30 Ugo Bianchi 234567 Via Roma 2 333333 Programmazione 18 27 DB -Algebra Relazionale

Semi-giunzione(Semi-join) Siano R con attributi XY ed S con attributi YZ R  S e’ una relazione di attributi XY costituita da tutte le n-uple di R che partecipano a R 1 S. La semi-giunzione e’ derivata perché R  S=  XY (R 1 S) DB -Algebra Relazionale

DB -Algebra Relazionale Studenti  Esami NOME MATRICOLA INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 DB -Algebra Relazionale

DB -Algebra Relazionale Giunzione Esterna La giunzione esterna è la giunzione naturale estesa con tutte le n-uple che non appartengono alla giunzione naturale, completate con valori null per gli attributi mancanti. Siano R[XY],S[YZ] R S = (R 1 S)  ((R-  XY (R 1 S)){Z=null}  {X=null}  ((S-  YZ (R 1 S)))  DB -Algebra Relazionale

DB -Algebra Relazionale Ordini 1/ Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA 3 345678 A3 444444 NULL 555555 ROMA DB -Algebra Relazionale

Altre Giunzioni Esterne Nelle giunzioni esterne sinistre e destre si aggiungono solo le parti sinistre e destre. Siano R[XY],S[YZ] (giunzione esterna sinistra) R 1  S = (R 1 S)  ((R-  XY (R 1 S){Z=null} (giunzione esterna destra) R 1  S = (R 1 S)  {X=null}  ((S-  YZ (R 1 S))) DB -Algebra Relazionale

DB -Algebra Relazionale Ordini 1  Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA 3 345678 A3 444444 NULL DB -Algebra Relazionale

DB -Algebra Relazionale Ordini 1  Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA NULL 555555 ROMA DB -Algebra Relazionale

DB -Algebra Relazionale Unione Esterna Siano R[XY], S[YZ] due relazioni allora L’unione esterna R [  S si ottiene estendendo le due tabelle con le colonne dell’altro con valori nulli e si fa l’unione. DB -Algebra Relazionale

Esempio di Unione Esterna R U  S DB -Algebra Relazionale

Algoritmo di Query Optimization DB -Algebra Relazionale

Espressione Algebrica di Query L’Algebra Relazionale può essere utilizzata come linguaggio per interrogare una base di dati. Infatti consideriamo l’esempio del database degli studenti costituito dalle tre tabelle Studenti, Esami, Corsi. DB -Algebra Relazionale

DB -Algebra Relazionale Esempio di Query Supponiamo che vogliamo trovare tutti i professori che hanno dato a Mario Rossi piu’ di 27. (1 e’ natural join) ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti 1 Esami 1 Corsi) DB -Algebra Relazionale

DB -Algebra Relazionale Query Optimization La stessa query PNome=‘Mario Rossi’& Voto>27 (Studenti 1 Esami 1 Corsi) può essere espressa come P (Nome=‘Mario Rossi’Studenti 1 ( Voto>27 Esami 1 Corsi)) Che risulta essere molto più efficiente! DB -Algebra Relazionale

Regole per la query optimization Anticipare l’applicazione delle proiezioni e delle restrizioni rispetto al prodotto (e quindi alle giunzioni), in modo da ridurre la dimensione delle tabelle a cui applicare il prodotto (e le giunzioni). Le seguenti regole possono essere utilmente utilizzate per l’ottimizzazione di espressioni: DB -Algebra Relazionale

Regole sulla restrizione Raggruppamento di restrizioni C(X) (C(Y)(E))=C(X)&C(Y)(E) Commutativita’ di  e  C(X)(Y(E))=Y(C(X)(E)) ,se XY; Y(C(X)(XY(E)))=Y(C(X)(E))se X  Y. DB -Algebra Relazionale

Restrizione e Prodotto Anticipazione di  rispetto a . C(X)(E  F)= C(X)(E)  F, se X attr(E). C(X)&C(Y)(E  F)= C(X)(E)  C(Y)(F), se X attr(E), Y attr(F). C(X)&C(Y)&C(Z)(E  F)= C(Z)( C(X)(E)  C(Y)(F)), se X attr(E), Y attr(F), Z attr(E) , Z attr(F) DB -Algebra Relazionale

Regole per la proiezione Raggruppamento di proiezioni. X(Y(E))= X(E) , se XY. Eliminazione di proiezioni superflue. X(E)=E , se X = attr.(E). Anticipazione della  rispetto a . XY(E  F)= X(E)  Y(F) , se Xattr(E), Yattr.(F). DB -Algebra Relazionale

DB -Algebra Relazionale L’ALGORITMO Si applicano le seguenti tre regole (per anticipare la selezione) finché è possibile Si anticipa  rispetto a  usando la 2.a. Si raggruppano le restrizioni usando la 1. Si anticipa l’esecuzione di  su  usando la 3. DB -Algebra Relazionale

Anticipazione delle proiezioni Si eliminano le proiezioni superflue usando la 5. Si raggruppano le proiezioni mediante la regola 4. Si anticipa l’esecuzione delle proiezioni rispetto al prodotto usando ripetutamente la 2 (quando E è un prodotto, da destra verso sinistra) e la 6. DB -Algebra Relazionale

DB -Algebra Relazionale Esercitazioni? DB -Algebra Relazionale