Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

DB -Algebra Relazionale
Calcolo Relazionale.
Impiegati NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Supervisione ImpiegatoCapo 5998.
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
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.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati: esercitazione Paolo Atzeni 15/05/2008.
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Basi di dati Università Degli Studi Parthenope di Napoli
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.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 3: ALGEBRA E CALCOLO RELAZIONALE 10/10/2002.
Basi di dati Claudia Raibulet
MODELLO LOGICO DEI DATI
Valutazione costi di una QUERY. A.1-Nome di tutti i fornitori che forniscono il prodotto P2 forpro fornitori CP=P2 Nome fornitori (CF, Nome, Citta) prodotti(CP,
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
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 (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Una convenzione e notazione alternativa per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente.
Basi di dati Esercizi su ALGEBRA RELAZIONALE 17/10/2013 Paolo Atzeni 1.
Microsoft Access Query (II), filtri.
Esercizi su ALGEBRA RELAZIONALE
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.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
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.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
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.
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.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
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.
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 Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
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.
Vincoli interrelazionali
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 =
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
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
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.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Transcript della presentazione:

Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto NeriB BianchiB RepartoCapo BMori

Proiezioni e join: problemi NeriBMori ImpiegatoRepartoCapo BianchiBBruni VerdiABini NeriB ImpiegatoReparto BianchiB VerdiA BMori RepartoCapo BBruni ABini VerdiABini NeriBMori ImpiegatoRepartoCapo BianchiBBruni NeriBBruni BianchiBMori

Join e proiezioni R 1 (X 1 ), R 2 (X 2 ) PROJ X 1 (R 1 JOIN R 2 ) R 1 R(X), X = X 1 X 2 (PROJ X 1 (R)) JOIN (PROJ X 2 (R)) R

Join naturale ed equi-join ImpiegatoReparto Impiegati RepartoCapo Reparti Impiegati JOIN Reparti PROJ Impiegato,Reparto,Capo ( ) REN Codice Reparto (Reparti)Impiegati JOIN SEL Reparto=Codice ( ) ImpiegatoReparto Impiegati CodiceCapo Reparti

Interrogazioni (Query) Uninterrogazione è una funzione E(r) che applicata ad istanze di una base di dati r produce una relazione su un dato insieme di attributi X. Le interrogazioni su uno schema di base di dati R in algebra relazionale sono espressioni i cui atomi (le variabili) sono relazioni in R.

Esempi Impiegati NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Supervisione ImpiegatoCapo

Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 milioni SEL Stipendio>40 (Impiegati) NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Bianchi Neri Rossi Bruni Mori Lupi Rossi Bruni Mori Lupi

Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 milioni PROJ Matricola, Nome, Età ( SEL Stipendio>40 (Impiegati)) NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Bianchi Neri Rossi Bruni Mori Lupi Rossi Bruni Mori Lupi

Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJ Capo (Supervisione JOIN Impiegato=Matricola ( SEL Stipendio>40 (Impiegati)))

Esercizi Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 40 milioni Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo Trovare le matricole dei capi i cui impiegati guadagnano tutti più di 40 milioni

Equivalenza di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r) = E 2 (r) per ogni istanza r di R (equivalenza dipendente dallo schema) Lequivalenza è importante in quanto consente di scegliere, a parità di risultato, loperazione meno costosa. E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza assoluta)

Equivalenze Atomizzazione delle selezioni F 1 F 2 (E) F 1 ( F 2 (E)) Idempotenza delle proiezioni X (E) X ( XY (E)) Anticipazione della selezione rispetto al join F (E 1 E 2 ) E 1 ( F (E 2 ) )

Equivalenze Anticipazione della proiezione rispetto al join: X 1 Y 2 (E 1 E 2 ) E 1 Y 2 (E 2 ) (se gli attributi in X 2 - Y 2 non sono coinvolti nel join) Allora: Y (E 1 F E 2 ) Y ( Y 1 (E 1 ) F Y 2 (E 2 ) ) dove Y 1 e Y 2 sono gli attributi di X 1 e X 2 compresi in Y o coinvolti nel join. Inglobamento di una selezione in un prodotto cartesiano a formare un join: F (E 1 E 2 ) E 1 F E 2

Equivalenze Distributività della selezione rispetto allunione: F (E 1 E 2 ) F (E 1 ) F (E 2 ) Distributività della selezione rispetto alla differenza: F (E 1 - E 2 ) F (E 1 ) - F (E 2 ) Distributività della proiezione rispetto allunione: X (E 1 E 2 ) X (E 1 ) X (E 2 ) NB La proiezione NON è distributiva rispetto alla differenza Tutti gli operatori binari eccetto la differenza godono delle proprietà associativa e commutativa.

Equivalenze Corrispondenze fra operatori insiemistici e selezioni complesse F 1 F 2 (R) F 1 (R) F 2 (R) F 1 F 2 (R) F 1 (R) F 2 (R) F 1 (R) F 2 (R) F 1 ¬F 2 (R) F 1 (R) - F 2 (R) Proprietà distributiva del join rispetto allunione: E (E 1 E 2 ) (E E 1 ) (E E 2 )

Algebra con valori nulli Estensione degli operatori logici ad una logica a 3 valori (VERO, FALSO, SCONOSCIUTO (U))

Algebra con valori nulli A IS NULL è vero su una tupla t se il valore di t su A è nullo; falso se è specificato. A IS NOT NULL è vero su una tupla t se il valore di t su A è specificato; falso se è nullo. Età>30 (Persone) restituisce le persone la cui età è nota e > 30 anni Età>30 Età IS NULL (Persone) restituisce le persone che potrebbero avere più di 30 anni

Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno) Relazioni di base: contenuto autonomo Relazioni derivate: –relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni)

Viste Relazioni Virtuali (Viste) Relazioni definite mediante funzioni o espressioni del linguaggio di interrogazione, non memorizzate ma utilizzabili come se lo fossero. Devono essere ricalcolate tutte le volte. Viste materializzate Relazioni virtuali effettivamente memorizzate nella base di dati. Immediatamente disponibili ma critiche per il mantenimento dellallineamento con le relazioni da cui derivano. Non sono supportate dai DBMS.

Viste Vantaggi Permettono di mostrare a un utente le sole componenti della base di dati che interessano Espressioni molto complesse possono essere definite come viste Sicurezza: è possibile definire dei diritti di accesso relativi ad una vista (e quindi ad una particolare porzione della base di dati) In caso di ristrutturazione della base di dati, le vecchie relazioni possono essere di nuovo ricavate mediante viste, consentendo luso di applicazioni che fanno riferimento al vecchio schema

Viste, esempio una vista: Supervisione = PROJ Impiegato, Capo (Afferenza JOIN Direzione) AMori BBruni RepartoCapoRossiA NeriB BianchiB ImpiegatoReparto BianchiBBBruni AfferenzaDirezione

Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: SEL Capo='Leoni' (Supervisione) viene eseguita come SEL Capo='Leoni' ( PROJ Impiegato, Capo (Afferenza JOIN Direzione))

Viste, motivazioni Schema esterno: ogni utente vede solo –ciò che gli interessa e nel modo in cui gli interessa, senza essere distratto dal resto –ciò che e' autorizzato a vedere (autorizzazioni) Strumento di programmazione: –si può semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetute Utilizzo di programmi esistenti su schemi ristrutturati Invece: L'utilizzo di viste non influisce sull'efficienza delle interrogazioni

Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato (Afferenza JOIN Direzione) JOIN REN ImpR,RepR Imp,Reparto ( SEL Impiegato='Rossi' (Afferenza JOIN Direzione)) Con la vista: PROJ Impiegato (Supervisione) JOIN REN ImpR,RepR Imp,Reparto ( SEL Impiegato='Rossi' (Supervisione))

Viste e aggiornamenti, attenzione Vogliamo inserire, nella vista, il fatto che Lupi ha come capo Bruni; oppure che Belli ha come capo Falchi; come facciamo? AfferenzaDirezione AMori BBruni RepartoCapo RossiA NeriB ImpiegatoReparto NeriB B BBruniB B B VerdiA BBruniB B B C Rossi Neri Impiegato Rossi Neri Rossi Neri Verdi Supervisione Mori Bruni Capo Mori Bruni Mori Bruni Mori

Viste e aggiornamenti "Aggiornare una vista": –modificare le relazioni di base in modo che la vista, "ricalcolata" rispecchi l'aggiornamento L'aggiornamento sulle relazioni di base corrispondente a quello specificato sulla vista deve essere univoco In generale però non è univoco! Ben pochi aggionamenti sono ammissibili sulle viste