Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Algebra Relazionale 3 Università degli Studi del Sannio
Calcolo Relazionale.
DB - Modello relazionale dei dati
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.
DOCUMENTAZIONE DI SCHEMI E/R
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
1 Algebra Relazionale Eugenio Di Sciascio. 2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo.
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.
Il modello relazionale: strutture e vincoli
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
TEORIA RAPPRESENTAZIONALE DELLA MISURA
Corso di Informatica (Programmazione)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
DB -Algebra Relazionale
Algoritmo di Query Optimization
Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJCapo (SELStipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Equivalenza di espressioni
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.
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.
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Basi di dati Claudia Raibulet
Il Modello Relazionale
INFORMATICA Corso Base Modulo G: I DataBase  Access.
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Sistemi di Elaborazione delle Informazioni Mod.I.
SQL.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
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.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
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.
Algebra di Boole.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
ALGEBRA E CALCOLO RELAZIONALE
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
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.
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.
1 Il modello relazionale. 2 Introduzione Il modello relazionale, sebbene non sia stato il modello usato nei primi DBMS, e' divenuto lentamente il modello.
Rappresentazione dell'informazione
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.
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.
Progettazione di una base di dati relazionale Vincoli.
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.
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
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.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Eprogram informatica V anno.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Informatica Introduzione alle basi di dati Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Approfondimenti SQL.
L’Algebra Relazionale
Operazioni Relazionali
Operazioni Insiemistiche
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Basi di dati - 09Marco Maggini1 Forme normali forme normali  Le forme normali verificano la qualità di uno schema di una base di dati relazionale  Presenza.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
Selezione e Proiezione
Transcript della presentazione:

Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di linguaggi reali (SQL)  si presta a ottimizzazioni

Query languages per Basi di Dati Relazionali  Calcolo Relazionale:  basato sulla logica del 1^ ordine  dichiarativo  usato per definire la sintassi di linguaggi reali (SQL)  si può tradurre in algebra relazionale

Algebra Relazionale  Insieme di operatori  Basati su concetti algebrici\insiemistici  Operatori che trasformano (una o più) relazioni in altre relazioni  Manipolano ISTANZE di DB relazionali  Costituiscono un query-language

Algebra Relazionale  L’algebra relazionale è un linguaggio PROCEDURALE  Concetto di base: gli operatori su insiemi sono ammissibili sulle relazioni

 Sono ammissibili su relazioni  Ma solo su relazioni con lo stesso schema!  Operatori dell’algebra relazionale permettono:  di uniformare gli schemi, per poi applicare gli operatori su insiemi  di selezionare sottoparti di tabelle  di mettere in corrispondenza più tabelle Osservazioni Gli operatori insiemistici

Ridenominazione  Operatore per cambiare nome agli attributi  R 1 (A 1 A 2 …A k ) R 2 (B 1 B 2 …B k )  B  …Bk  A1…Ak (R 1 ) L’operatore  Ridenominazione trasforma una istanza di R 1 in una istanza di R 2  R 1 ed R 2 devono essere definite  Sugli stessi domini, ordinati nello stesso modo  Con nomi diversi   cambia i nomi   può cambiare anche solo alcuni dei nomi

SELEZIONE  Produce un sottoinsieme delle tuple  Che mantengono tutti gli attributi  Sintassi  c (r) = r ’    selezione  c condizione di selezione  La soluzione è una nuova relazione tratta dalla relazione data  contenente tutte e sole le tuple che soddisfano c

Condizione di selezione  C formula proposizionale  Definita su attributi X di r  C si costruisce su: (oltre a X)  Operatori di confronto =  > <    Costanti  Operatori logici Λ V ¬  C vale vero/ falso

Valori Nulli  In algebra relazionale  media > 25 (Studente)   media ≤ 25 (Studente) = ? Studente  L’uguaglianza vale solo se Studente non contiene tuple con media = null

Valori Nulli  Qualunque operatore di confronto restituisce falso se applicato a null null  25? Falso null > 25? Falso  Soluzione:predicati IS NULL IS NOT NULL  media > 25 V media IS NULL (Studente)   media  25 (Studente) = Studente

Proiezione  Data R su X  Dato Y  X  Y (r)={ t[Y], t  r}  proiezione Y = attributi da conservare   elimina gli attributi di X - Y   Y (r) contiene tutte le tuple di r? solo se Y è superchiave per r

Join Naturale  Definizione: Date R 1 (X 1 ) ed R 2 (X 2 ) r 1 join r 2 = {t su X 1 X 2 :  t 1  r 1, t 2  r 2 tali che t [X 1 ]  r 1 e t[X 2 ]  r 2 } dove X 1 X 2  X 1  X 2  Se X 1  X 2  X 1  X 2    X 1  X 2 = Y allora join naturale combina tuple di r 1 ed r 2 con uguali valori su Y

Join Naturale  Ossrvazioni: Se X 1  X 2 =  allora join naturale = prodotto cartesiano  Se X 1  X 2 = X 1  X 2 (ossia X 1 = X 2 ) join naturale = Intersezione fra r 1 ed r 2

Join  Operatore binario r 1 Join r 2  Commutativo r 1 join r 2 = r 2 join r 1  Associativo r 1 join (r 2 join r 3 ) = (r 1 join r 2 ) join r 3  Quindi applicabile in sequenza r 1 join r 2 join…join r n join n i=1 r i  Coinvolge nelle query un numero arbitrario di relazioni

Join Naturale  Fra r 1 ed r 2 con X 1  X 2 e X 1  X 2 =Y combina r 1 ed r 2 rispetto alle tuple con uguali valori su y  Join vuoto non  coppie t 1  r 1,t 2  r 2 tali che t 1 [y]=t 2 [y]  Join completo  tupla t 1  r 1  t 2  r 2 : t 1 [y] = t 2 [y] e viceversa  Join non completo: tuple dangling escluse dal risultato

Join Naturale  Cardinalità del Join: max  r1 ,  r2   r1 join r2  r1  r2   Se Y contiene una chiave per R 2, allora  r 1 join r 2  r 1   Se vincolo di integrità referenziale fra Z  Y e chiave K di R 2,  r 1 join r 2  =  r 1   Join non completo: tuple dangling escluse dal risultato

Theta Join  r 1 join F r 2   F (r 1 join r 2 ) nei linguaggi di query reali non è previsto il join naturale, ma è obbligatorio porre una condizione su attributi comuni  r 1 join U r 2 EQUI-JOIN con U  (A 1 = A 1 1 )  (A 2 = A 2 1 )  …  (A n = A n 1 )  Il join naturale è simulato r 1 join r 2  r 1 join A=A’  A’  A (r 2 ) se X 1  X 2 =A

Equivalenza di espressioni  Vi sono diversi modi per ottenere lo stesso risultato perché talune espressioni diverse sono equivalenti  Equivalenza relativa allo schema: per ogni istanza r di schema R E 1 (r) = E 2 (r) notazione: E 1  R E 2  Equivalenza assoluta per ogni R, E 1  R E 2 notazione: E 1  E 2

Trasformazione di equivalenza  Atomizzazione delle selezioni  F1  F2 (E)   F1 (  F2 (E))se  E  =n  Anziché verificare n volte sia F1 che F2  Verifica n volte F2 ed F1 per  F2 (E)  E   Idempotenza delle proiezione  X (E)  X (  XY (E)) lascia al sistema la possibilità di effettuare le proiezioni in “passate” successive.

Trasformazione di equivalenza  Inglobamento della selezione nel join  F (E 1 join c E 2 )  E 1 join F  C E 2  Distributività selezione su unione  F (E 1  E 2 )   F (E 1 )   F (E 2 )  Distributività selezione su differenza  F (E 1 - E 2 )   F (E 1 ) -  F (E 2 )  Proprietà analoghe per proiezioni? si  X (E 1  E 2 )   X (E 1 )   X (E 2 ) no  X (E 1 - E 2 )   X (E 1 ) -  X (E 2 )  Altre proprietà della selezione  F1V F2 (R) =  F1 (R)   F2 (R)  F1V F2 (R) =  F1 (R) join  F2 (R)  F1V  F2 (R) =  F1 (R) -  F2 (R)

Equivalenza assoluta  Permette di migliorare l’efficienza delle query  Come: riducendo le dimensioni dei risultati intermedi  Trasformazioni di equivalenza: equivalenza assoluta efficaci in pratica riducono le dimensioni o preparono una riduzione