Correttezza. Esempi di TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC



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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Esempi. Supervisione Impiegato Capo /10/2017 Atzeni-Ceri-Fraternali-Paraboschi-Torlone Basi di dati, Capitolo 3

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

Basi di dati: esercitazione. Paolo Atzeni 10/05/2006

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Linguaggi per basi di dati

Introduzione all Algebra Relazionale

Linguaggio SQL. Structured Query Language

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Corso sul linguaggio SQL

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

Lezione V. Aula Multimediale - sabato 29/03/2008

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

DBMS (Data Base Management System)

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL: query innestate

Il Modello Relazionale

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

Organizzazione degli archivi

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Il linguaggio SQL: viste e tabelle derivate

L architettura di un DBMS

Algebra con valori nulli

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Il Modello Relazionale

Il linguaggio SQL: DDL di base

Corso di Informatica (Basi di Dati)

Normalizzazione. Relazionali

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Definizione di domini

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari

User Tools: DataBase Manager

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Fondamenti di Teoria delle Basi di Dati

Data Base. Prof. Filippo TROTTA

Basi di dati 9 febbraio 2010 Compito A

Laboratorio di Basi di Dati e Web

ALGEBRA RELAZIONALE Esercizi con RelaX. 21/10/2017 Atzeni - Algebra relazionale - RelaX 1

Archivi e Basi di Dati

Corso di Informatica (Basi di Dati)

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Linguaggio SQL: fondamenti. Basi di dati. Elena Baralis Pag. 1. Linguaggio SQL: fondamenti. Sistemi informativi. Introduzione

ALGEBRA RELAZIONALE RIEPILOGO

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

Facoltà di Farmacia - Corso di Informatica

TEORIA sulle BASI DI DATI

Structured Query Language parte 1

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

database: modello entityrelationship

Basi di dati e Sistemi informativi aziendali

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Vincoli di integrità

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Lezione 8. La macchina universale

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

La Metodologia adottata nel Corso

Corso sul linguaggio SQL

Organizzazione delle informazioni: Database

DATABASE RELAZIONALI

Access. P a r t e p r i m a

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

Elementi di Algebra Relazionale

Operazioni sui database

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

(anno accademico )

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

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

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Il linguaggio SQL: le basi

Introduzione al corso

Progettazione di Basi di Dati

Basi di Dati: Corso di laboratorio

Informatica per le discipline umanistiche 2 lezione 10

Secondo Compitino di Basi di Dati

LINGUAGGI DI PROGRAMMAZIONE

Informatica (Basi di Dati)

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Gestione delle tabelle

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Transcript:

Esempi di TRC Matricole degli studenti che hanno sostenuto matematica ma non basi di dati { t t1 ESAME, t2 CORSO ( t[matr]=t1[matr] t1[codcorso]=t2[codcorso] t2[titolo]= matematica ) ( t3 ESAME, t4 CORSO (t[matr]=t3[matr] t3[codcorso]=t4[codcorso] Correttezza Si devono evitare formule unsafe: { t t R } dà un risultato infinito Si considerano corrette solo formule indipendenti dal dominio la soluzione non dipende dal dominio degli attributi, ma solo dall istanza del DB t4[titolo]= basi di dati ))) } 99 100 E sufficiente mostrare che si possono realizzare i cinque operatori fondamentali: Selezione, σ A=1 R: { t t R (t[a]=1) } Proiezione, Π AC R: { t t1 R (t[a,c]=t1[a,c]) } Prodotto cartesiano, R(A,B,C) S(D,E,F): (t[a,b,c]=t1[a,b,c] t[d,e,f]=t2[d,e,f] ) } Esempio di join, R(A,C) >< A=B S(B,D): (t[a,c] = t1[a,c] t[b,d] = t2[b,d] t[a] = t[b] ) } 101 102 Anche TRC è esprimibile tramite AR Unione, R S: ( t = t1 t = t2 ) } Differenza, R S: { t t R ( t S) } La prova è più complicata Si devono escludere espressioni unsafe e dipendenti dal dominio Sotto queste ipotesi TRC e AR hanno lo stesso potere espressivo 103 104

In che modo si differenziano i linguaggi formali? L algebra è un linguaggio PROCEDURALE: si dice esattamente in che modo valutare le interrogazioni (e si può ottimizzare) TRC è un linguaggio DICHIARATIVO: si dice cosa si vuole ottenere ma non come ottenerlo. Perchè vi abbiamo raccontato tutto ciò? SQL assomiglia al calcolo relazionale L algebra assomiglia a quanto viene effettivamente valutato da un DBMS 126 127 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema ) Relazioni derivate: relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni) Relazioni di base: contenuto autonomo Le relazioni derivate possono essere definite su altre derivate, ma Architettura standard (ANSI/SPARC) a tre livelli per DBMS logico interno BD 128 129 Viste virtuali e materializzate Due tipi di relazioni derivate: viste materializzate relazioni virtuali (o viste) Viste materializzate relazioni derivate memorizzate nella base di dati vantaggi: immediatamente disponibili per le interrogazioni svantaggi: ridondanti appesantiscono gli aggiornamenti sono raramente supportate dai DBMS 130 131

Viste virtuali relazioni virtuali (o viste): sono supportate dai DBMS (tutti) una interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) Viste, esempio Afferenza Impiegato Reparto Direzione Rossi A Reparto Capo Neri B A Mori Bianchi B B Bianchi B B una vista: Supervisione = Π Impiegato, Capo (Afferenza >< Direzione) 132 133 Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: σ Capo='Leoni' (Supervisione) viene eseguita come σ Capo='Leoni' ( Π Impiegato, Capo (Afferenza >< Direzione)) Viste, motivazioni : ogni 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 134 135 Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: Π Impiegato (Afferenza >< Direzione) >< ρ ImpR,RepR Impiegato,Reparto ( σ Impiegato='Rossi' (Afferenza >< Direzione)) Con la vista: Π Impiegato (Supervisione) >< ρ ImpR Impiegato ( σ Impiegato='Rossi' (Supervisione)) Viste e aggiornamenti, attenzione Afferenza Direzione Impiegato Reparto Reparto Capo Rossi A A Mori Neri B B Verdi A BC Supervisione Impiegato Rossi Neri Verdi Capo Mori Mori Vogliamo inserire, nella vista, il fatto che Lupi ha come capo ; oppure che Belli ha come capo Falchi; come facciamo? 136 137

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 Una convenzione e notazione alternativa per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente condizioni su attributi con nomi uguali) Per "riconoscere" attributi con lo stesso nome gli premettiamo il nome della relazione Usiamo "assegnazioni" (viste) per ridenominare le relazioni (e gli attributi solo quando serve per l'unione) 138 139 Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo Π Matr,Nome,Stip,MatrC,NomeC,StipC (σ Stip>StipC ( ρ MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Impiegati) >< MatrC=Capo (Supervisione >< Impiegato=Matr Impiegati))) Π Matr,Nome,Stip,MatrC,NomeC,StipC (σ Stip>StipC ( ρ MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Imp) >< MatrC=Capo (Sup >< Imp=Matr Imp))) Capi := ρ MatrC,NomeC,StipC,EtàC Matr,Nome,Stip,Età (Imp) Π Imp.Matr, Imp.Nome, Imp.Stip,Capi.Matr,Capi.Nome, Capi.Stip (σ Imp.Stip>Capi.Stip ( Capi >< Capi.Matr=Capo (Sup >< Imp=Imp.Matr Imp))) 140 141 Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati SQL Il nome stava per Structured Query Language Più che un semplice linguaggio di query: si compone di una parte DDL e di una DML DDL: definizione di domini, tabelle, indici, autorizzazioni, viste, vincoli, procedure, trigger DML: linguaggio di query, linguaggio di modifica, comandi transazionali Storia: Prima proposta: SEQUEL (IBM Research, 1974) Prima implementazione commerciale in SQL/DS (IBM, 1981) 143

Standardizzazione di SQL La standardizzazione è stata cruciale per la diffusione di SQL (nell ambito di ANSI e ISO) Dal 1983, standard de facto Prima versione ufficiale nel 1986 (SQL-1), rivista nel 1989 (SQL-89) Seconda versione nel 1992 (SQL-2 o SQL-92) Terza versione nel 1999 (SQL-3 o SQL:1999) In SQL-92 si distinguono tre livelli: Entry SQL (più o meno equivalente a SQL-89) Intermediate SQL Full SQL La maggior parte dei sistemi è conforme al livello Entry e Potere espressivo di standard e sistemi commerciali un tipico sistema commerciale SQL-89 SQL-2 offre delle estensioni proprietarie per le funzioni avanzate 144 145 SQL-1 SQL-3 Domini I domini specificano i valori ammissibili per gli attributi Simili ai meccanismi di definizione dei tipi dei linguaggi di programmazione Due categorie Elementari (predefiniti dallo standard, elementary o built-in) SQL-2 prevede 6 famiglie Definiti dall (user-defined) 146 Domini elementari, 1 Caratteri Caratteri singoli o stringhe Le stringhe possono avere lunghezza variabile Possono usare una famiglia di caratteri (character set) diversa da quella di default (es., Latin, Greek, Cyrillic, etc.) Sintassi: character [ varying ] [ (Lunghezza) ] [ character set FamigliaCaratteri ] Si possono usare le alternative più compatte char e varchar, rispettivamente per character e character varying Esempi: char(6) 147