Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Ricorsione in SQL-99.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Calcolo Relazionale.
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Algebra e calcolo relazionale (parte 2)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.
SQL Dati i seguenti schemi relazionali:
SQL Structured Query Language
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.
Luglio 2004Memorie Tradizionali1 MEMORIE TRADIZIONALI Luglio 2004.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Istruzione SELECT (versione base)
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 Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
Esercitazione.
Equivalenza di espressioni
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Prof. Cerulli – Dott.ssa Gentili
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Corso di Basi di Dati Il Linguaggio SQL
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
SQL.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Esercitazione 7.
SQL (IV) Data Definition Language/ Data Manipulation Language.
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.
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?
Interrogazioni (parte 2)
Ordinamenti nelle query di ricerca. verso crescente e decrescente.
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.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
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 =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
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.
Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
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.
SQL Linguaggio per l’interrogazione di una base dati.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare tutti i capi di Rossi Query NOMECAPO Verdi DeSio Lazio Questa interrogazione è riconducibile ad un caso di chiusura transitiva di una relazione binaria WITH CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT CAPO.NOME, IMPIEGATO.NOMECAPO FROM CAPO, IMPIEGATO WHERE CAPO.NOMECAPO = IMPIEGATO.NOME ) SELECT NOMECAPO FROM CAPO WHERE NOME = 'Rossi' AND NOMECAPO IS NOT NULL; In SQL-3 (SQL-1999) si possono esprimere interrogazioni ricorsive In DB2 Access non accetta interrogazioni ricorsive

Interrogazioni Ricorsive in SQL In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio – Impiegato(Nome,NomeCapo) – non è possibile esprimere linterrogazione che ritrova tutti i capi di un impiegato, con un numero arbitrario di livelli intermedi per risolvere queste interrogazioni con SQL2, è necessario utilizzare SQL da programma (o stored procedure) in SQL-99 cè la possibilità di esprimere interrogazioni ricorsive base teorica: basi di dati deduttive – Capo(Nome,NomeCapo) Capo(Nome,NomeCapo) – Capo(Nome,NomeCapo) Impiegato(Nome,impiegato1), Capo(impiegato1,NomeCapo) – Capo è una vista ricorsiva: nella sua definizione usa se stessa

SQL-99 - comando WITH il comando WITH consente di definire delle tabelle temporanee che non diventano parte dello schema ma rappresentano solo dichiarazioni di relazioni da utilizzare nel contesto dellinterrogazione associata a WITH WITH R 1 AS,... R n AS, ogni definizione può essere ricorsiva e mutuamente ricorsiva ogni relazione coinvolta in una ricorsione deve essere preceduta dalla parola chiave RECURSIVE la definizione per la relazione R i consiste in – parola chiave opzionale RECURSIVE – il nome della relazione che si sta definendo (seguita da AS) – interrogazione che definisce R i e può fare riferimento a R 1,…, R i-1 linterrogazione finale che può far riferimento a tutte le relazioni definire in precedenza la ricorsione deve essere lineare – nella definizione di una relazione R, R può comparire una sola volta

Esempi Esempio di ricorsione lineare (nota RECURSIVE rispetto a DB2) WITH RECURSIVE CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT CAPO.NOME, IMPIEGATO.NOMECAPO FROM CAPO, IMPIEGATO WHERE CAPO.NOMECAPO = IMPIEGATO.NOME ) SELECT * FROM CAPO; Esempio di ricorsione non lineare : non accettata dallo standard WITH RECURSIVE CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT R1.NOME, R2.NOMECAPO FROM CAPO R1, CAPO R2 WHERE R1.NOMECAPO = R2.NOME ) SELECT * FROM CAPO; La forma della query deriva dalla semantica, ovvero dal modo con la quale CAPO viene calcolata

SQL-99 - semantica della ricorsione La semantica delle interrogazioni ricorsive è definita mediante la nozione di punto fisso (più precisamente minimo punto fisso) Se R è Binaria (es. R(A,B)) si parla anche di chiusura transitiva R + : è la più piccola (rispetto alla inclusione) relazione tale che 1. Contiene R 2. Se (x,y) e (y,z) sono in R + allora anche (x,z) è in R + R + è il minimo punto fisso della funzione: – F(R) = R 0 R.A= R0.B (R R.B= R0.A R 0 ) e si calcola come segue: – R 0 = R – Ri = F(Ri-1) – quando, per un certo i, si ha che R i = R i-1 ci si ferma e tale relazione è il minimo punto fisso della funzione F e costituisce R + Esempio: CAPO è la chiusura transitiva di IMPIEGATO Chiusura transitiva e riflessiva R * : contiene anche tutte le coppie (x,x) con X in R

Esempio Determinare i cammini di un grafo dati gli archi WITH RECURSIVE Cammino(da,a) AS (SELECT da,a FROM Arco) UNION (SELECT R1.da, R2.a FROM Arco AS R1, Cammino AS R2 WHERE R1.a = R2.da); SELECT * FROM Cammino;

Esempio (continua) Arco Cammino 0 = ; Cammino 1 =

Esempio - semantica Cammino 2 = Cammino 1 Cammino 3 = Cammino 2 Cammino 4 = Cammino 3 punto fisso e risultato