La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJ Capo (SEL Stipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))"— Transcript della presentazione:

1 Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJ Capo (SEL Stipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati)) Procedimento logico: Creo una singola tabella in cui ogni tupla contiene gli attributi Capo, Impiegato e Stipendio Seleziono le tuple con stipendio > 40 Proietto il risultato sullattributo Capo (lordine delle ultime due operazioni può essere invertito)

2 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

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

4 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno) Relazioni di base: contenuto autonomo; fisicamente e originariamente contenute nella base di dati Relazioni derivate: relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni)

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

6 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 diritti di accesso anche relativamente 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

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

8 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))

9 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 Impiegato,Reparto ( SEL Impiegato='Rossi' (Afferenza JOIN Direzione)) Con la vista: PROJ Impiegato (Supervisione) JOIN REN ImpR,RepR Imp,Reparto ( SEL Impiegato='Rossi' (Supervisione))

10 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

11 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 aggiornamenti sono ammissibili sulle viste

12 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) E1 E2 se E1 R E2 per ogni schema R (equivalenza assoluta) Lequivalenza è importante in quanto consente di scegliere, a parità di risultato, loperazione meno costosa.

13 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 ) )

14 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 (combinando con idempotenza delle proiezioni): 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. In pratica è possibile ignorare in ciascuna relazione gli attributi non compresi in Y e non coinvolti nel join

15 Equivalenze Inglobamento di una selezione in un prodotto cartesiano a formare un join: F (E 1 E 2 ) E 1 F E 2 Tutti gli operatori binari eccetto la differenza godono delle proprietà associativa e commutativa.

16 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

17 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 )

18 SQL SQL (pronunciato anche come linglese sequel) è lacronimo di Structured Query Language (linguaggio di interrogazione strutturato) E un linguaggio completo che presenta anche le proprietà di: DDL (Data Definition Language) DML (Data Manipulation Language) Con SQL è quindi possibile: definire schemi di basi di dati eseguire query modificare il contenuto della base di dati

19 SQL 1986 Prima standardizzazione 1989 SQL SQL-2 (SQL-92): versione attualmente diffusa (e tuttora non completamente implementata) 1998 SQL-3 (SQL-99): nuovo standard proposto con funzionalità avanzate (DB a oggetti, operazioni ricorsive ecc.) 3 implementazioni disponibili: Entry SQL Intermediate SQL Full SQL

20 Definizione dei dati Esistono 6 domini elementari: Character Bit Tipi numerici esatti Tipi numerici approssimati Data e ora Intervalli temporali

21 Domini Character rappresenta singoli caratteri o stringhe character [varying] [( Lunghezza) ] [character set NomeFamigliaCaratteri] character(20) stringa di lunghezza 20 character varying(100) stringa di lunghezza max. 100 character(20) character set Greek stringa di lunghezza 20 in caratteri greci

22 Domini Bit rappresenta attributi o vettori di attributi che possono assumere solo valori 0 o 1. Utilizzato per implementare flag. bit [varying] [( Lunghezza )] Intervalli Temporali interval UnitàDiTempo1 [( Precisione )] [to UnitàDiTempo2 [( Precisione )]] UnitàDiTempo1 e UnitàDiTempo2 specificano le unità di misura da usare dalla più lunga alla meno lunga NB La definizione è valida nei 2 sottointervalli [year,month] e [day,second]. interval day(4) to second(6) rappresenta lintervallo [0,10000) giorni e secondi con precisione al milionesimo di s.

23 Domini Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata numeric [( Precisione [,Scala ])] decimal [( Precisione [,Scala ])] integer smallint Precisione specifica il numero di cifre significative Scala quante cifre si rappresentano dopo la virgola decimal(4) numeri da a 9999 numeric(6,3) numeri da a La precisione degli interi dipende dallimplementazione

24 Domini Tipi numerici approssimati rappresentano valori reali approssimati float [ ( Precisione ) ] double precision real Precisione specifica il numero di cifre dedicato alla mantissa (la precisione dellesponente dipende dallimplementazione) real e double precision hanno precisione prestabilita, una doppia rispetto allaltra.

25 Domini Data e ora tipi utilizzati per rappresentare istanti di tempo date time [( Precisione )][with time zone] timestamp [( Precisione )][with time zone] Ciascun tipo è divisibile in campi. date ammette come campi year, month e day time i campi hour, minute, second timestamp tutti i campi da year a second I campi sono divisi da : 20:03:04+1:00


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

Presentazioni simili


Annunci Google