La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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)

Presentazioni simili


Presentazione sul tema: "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)"— Transcript della presentazione:

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

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

3 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 Inglobamento di una selezione in un prodotto cartesiano a formare un join: F (E 1 E 2 ) E 1 F E 2

4 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.

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

6 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

7 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

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

9 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

10 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.

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

12 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.

13 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 da hour, minute, second timestamp tutti i campi da year a second I campi sono divisi da : 20:03:04+1:00

14 Definizione di schemi E possibile definire uno schema di base di dati come collezione di oggetti. create schema[ NomeSchema ] [[authorization] Autorizzazione ]] { DefElementoSchema } Autorizzazione rappresenta il nome dellutente proprietario dello schema

15 Definizione tabelle Una tabella SQL è costituita da una collezione ordinata di attributi e da un insieme di vincoli create table NomeTabella ( NomeAttributo Dominio [ ValDefault ] [ Vincoli ] {, NomeAttributo Dominio [ ValDefault ] [ Vincoli ] } AltriVincoli ) Una tabella è inizialmente vuota e chi la crea possiede tutti i diritti su di essa

16 Definizione Tabelle Es. create table Dipartimento ( Nomechar(20) primary key, Indirizzochar(50), Cittàchar(20) )

17 Definizione Domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain NomeDominio as TipodiDato [ ValDefault ] [ Vincolo ] Non si possono creare array o strutture poiché il modello relazionale richiede che gli attributi siano definiti su un dominio elementare. E però possibile associare dei vincoli ad un dominio definito dallutente. Se si modifica la definizione di un dominio, la modifica si propaga a tutte le tabelle.

18 CREATE DOMAIN Voto AS SMALLINT DEFAULT NULL CHECK ( value >=18 AND value <= 30 ) CREATE DOMAIN, esempio

19 Valori di default Si possono specificare valori di default che vengono assunti da un attributo quando, al momento della creazione di una nuova tupla, in un campo non viene inserito alcun valore. default GenericoValore rappresenta un valore compatibile col dominio user rappresenta il nome dellutente che aggiorna la tabella null corrisponde al valore di default di base Un nuovo default (es. nella definizione di un tipo a partire da un altro) sostituisce il precedente Es. NumeroFigli smallint default 0 impone il valore 0 quando non viene specificato il valore dellattributo.

20 Vincoli intrarelazionali I più semplici vincoli intrarelazionali predefiniti sono not null indica che il valore nullo non è ammesso su uno specifico attributo. Quindi richiede che sia inserito un valore, salvo che non sia già definito un valore di default. SQL non distingue i diversi tipi di valore nullo. Se è necessario farlo vanno definiti opportuni domini. unique ( Attributo {, Attributo} ) indica che linsieme di attributi deve essere una superchiave per la tabella. primary key ( Attributo {, Attributo} ) definisce la chiave primaria. Può essere una sola. Tutti gli attributi sono not null.

21 Vincoli intrarelazionali Es. Nome character(20) not null, Cognome character(20) not null, unique (Nome, Cognome) impone che non ci sia una riga con sia nome che cognome uguali Nome character(20) not null unique, Cognome character(20) not null unique impone che sia nome che cognome siano diversi in tutte le righe


Scaricare ppt "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)"

Presentazioni simili


Annunci Google