Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))

Documenti analoghi
SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Viste come strumenti di programmazione

Viste (relazioni derivate)

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

Algebra con valori nulli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Corso di Basi di Dati

SQL. Lezione 1. Docente: Alberto Belussi

Laboratorio di Basi di Dati

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.1 Data Description Language - 1

Stringhe di caratteri

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

SQL. Dott.ssa Elisa Quintarelli

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Principi di Progettazione del Software a.a Il linguaggio SQL. Linguaggi per DBMS

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Laboratorio di Basi di Dati Per Bioinformatica

Laboratorio di Basi di Dati e Multimedia

SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

Appunti dalle lezioni. Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale.

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Basi di Dati e Sistemi Informativi. Structured Query Language

Laboratorio di Basi di Dati

Linguaggio SQL: fondamenti D B M G

D B M G. Linguaggio SQL: fondamenti. Gestione delle tabelle

Dichiarazione degli schemi in SQL DDL 1

Laboratorio di Basi di Dati e Web

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Basi di dati - Laboratorio

Corso di Informatica (Basi di Dati)

Elena Baralis 2007 Politecnico di Torino 1

Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati

Elena Baralis 2007 Politecnico di Torino 1

Introduzione Basi di Dati. Orazio Battaglia

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Definizione di domini

Il linguaggio SQL: DDL di base

Elena Baralis 2007 Politecnico di Torino D B M G M BG. Gestione delle tabelle. Linguaggio SQL: fondamenti. Creazione di una tabella (1/3)

Interrogazioni (Query) Esempi. Esempi. Esempi

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Structured Query Language

SQL: "storia" 31/05/2006 2

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni

Il linguaggio SQL. Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL

Basi di Dati prof. Letizia Tanca

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Sistemi di Elaborazione delle Informazioni

Il linguaggio SQL Introduzione e costrutti di interrogazione.

Modello Relazionale. Concetti e definizioni

Laboratorio di Basi di Dati

Gestione delle tabelle

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.

SQL. SQL (Structured Query Language) è un linguaggio di interrogazione per basi di dati relazionali

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Equivalenza di Espressioni Algebriche

Caratteristiche dei linguaggi per Database

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

SQL. Storia e standard

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato

Scopo. Informatica. Sistema informativo. Sistema informatico

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

Linguaggio SQL. Structured Query Language

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Laboratorio di Basi di Dati e Multimedia

SQL Sintassi Dei Comandi

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Basi di Dati. Concetti Fondamentali SQL-92 25/02/2004. Concetti Fondamentali. Introduzione. Interrogazioni. Creazione ed eliminazione di bd

SQL: Concetti Base -Prima Parte-

Scopo Laboratorio di Informatica

Basi di Dati SQL-92. Concetti Fondamentali

Fondamenti di Informatica A. A / 1 9

Proiezione. Proiezione. Join. Operatore monadico Produce un risultato che

Basi di Dati Relazionali

Lezione 2. Modello relazionale: concetti e definizioni

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati e SQL

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

SQL (STRUCTURED QUERY LANGUAGE)

PRODOTTO CARTESIANO Caso Generale

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Modulo 10: Basi di dati e loro gestione

Corso di Informatica Medica

BASI di DATI. SQL: concetti fondamentali

SQL aspetti essenziali

Fondamenti di Informatica e Programmazione

Transcript:

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 E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza assoluta L equivalenza è importante in quanto consente di scegliere, a parità di risultato, l operazione meno costosa. Atomizzazione delle selezioni σ F1 F2 (E σ F1 (σ F2 (E Idempotenza delle proiezioni Π X (E Π X (Π XY (E Anticipazione della selezione rispetto al join E 2 E 1 (σ F (E 2 Anticipazione della proiezione rispetto al join: Π X1Y2 (E 1 E 2 E 1 Π Y2 (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 (Π Y1 (E 1 F Π Y2 (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: E 2 E 1 F E 2 1

Distributività della selezione rispetto all unione: E 2 σ F (E 2 Distributività della selezione rispetto alla differenza: - E 2 - σ F (E 2 Distributività della proiezione rispetto all unione: Π 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. Corrispondenze fra operatori insiemistici e selezioni complesse σ F1 F2 (R σ F1 (R σ F2 (R σ F1 F2 (R σ F1 (R σ F2 (R σ F1 (R σ F2 (R σ F1 F2 (R σ F1 (R - σ F2 (R Proprietà distributiva del join rispetto all unione: E (E 1 E 2 (E E 1 (E E 2 SQL SQL (pronunciato anche come l inglese sequel è l acronimo 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 2

SQL 1986 Prima standardizzazione 1989 SQL-89 1992 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 Definizione dei dati Esistono 6 domini elementari: Character Bit Tipi numerici esatti Tipi numerici approssimati Data e ora Intervalli temporali 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 3

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 l intervallo [0,10000 giorni e secondi con precisione al milionesimo di s. 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 -9999 a 9999 numeric(6,3 numeri da -999.999 a 999.999 La precisione degli interi dipende dall implementazione Tipi numerici approssimati rappresentano valori reali approssimati float [(Precisione] double precision real Precisione specifica il numero di cifre dedicato alla mantissa (la precisione dell esponente dipende dall implementazione real e double precision hanno precisione prestabilita, una doppia rispetto all altra. 4

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 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 dell utente proprietario dello schema Definizione tabelle Una tabella SQL è costituita da una collezione ordinata di attributi e da un insieme di vincoli create table NomeTabella ( NomeAttributo o [ValDefault] [Vincoli] {,NomeAttributo o [ValDefault] [Vincoli] } AltriVincoli Una tabella è inizialmente vuota e chi la crea possiede tutti i diritti su di essa 5

Definizione Tabelle Es. create table Dipartimento ( Nome char(20 primary key, Indirizzo char(50, Città char(20 Definizione 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 Nomeo 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 dall utente. Se si modifica la definizione di un dominio, la modifica si propaga a tutte le tabelle. CREATE DOMAIN, esempio CREATE DOMAIN Voto AS SMALLINT DEFAULT NULL CHECK ( value >=18 AND value <= 30 6

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 user null > GenericoValore rappresenta un valore compatibile col dominio user rappresenta il nome dell utente 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 dell attributo. 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 l insieme 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. 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 Cognome character(20 not null unique, character(20 not null unique impone che sia nome che cognome siano diversi in tutte le righe 7