SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso.

Slides:



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

Structured Query Language
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Nana Mbinkeu Rodrigue Carlos 1 DB unimo OTTIMIZZAZIONE DI QUERY IN MOMIS Università degli studi di Modena e Reggio Emilia Relatore: Prof. Sonia.
Query OQL e XQUERY a confronto
Progetto e realizzazione di un wrapper XML Schema per il sistema MOMIS
Università degli studi di Modena e Reggio Emilia
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Analisi.
Re-engineering del wrapper XML Schema per il sistema MOMIS
Serializzazione di oggetti in formato XML nellambito del sistema MOMIS Davide Lenzi Chiar.mo Prof. Sonia Bergamaschi Chiar.mo Prof. Michele.
Università degli studi di Modena e Reggio Emilia
Analisi e Contromisure di tecniche di Sql Injection
Biglietti e Ritardi: schema E/R
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
DML – Data Manipulation Language
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
G. Mecca – – Università della Basilicata Basi di Dati SQL-92 Concetti Avanzati versione 2.0 Questo lavoro è concesso in uso secondo i termini.
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
SQL.
SQL Dati i seguenti schemi relazionali:
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.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Basi di Dati II Sara Romano
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
INFORMATICA UMANISTICA B STRUTTURE DATI BASI DI DATI RAPPRESENTAZIONE DELLA CONOSCENZA ONTOLOGIE.
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
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.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
L’algebra relazionale
sql: esempi di linguaggio sql nell'implementazione mysql
Basi di Dati e Sistemi Informativi
SQL.
DATABASE Introduzione
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
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.
1 Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre.
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
Interrogazione di una base di dati relazionale
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)
MySQL Database Management System
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.
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.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
EVENTI Gli eventi sono delle azioni che possono essere identificate da javascript. 1 - onMouseOver, che viene messo in atto quando l'utente fa scorrere.
1 Lixto tools evaluations for HTML data Integration in Momis Lixto tools evaluations for HTML data Integration in Momis Università degli Studi di Modena.
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:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Interrogazione di una base di dati relazionale
Transcript della presentazione:

SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso di Laurea in Ingegneria Informatica Relatore:Tesi di Laurea di: Prof. Sonia BergamaschiCristina Iotti

SQL92 e XQuery1.0 a confronto2 Contenuti: SQL92 e il modello dati relazionale XQuery1.0, XML e il modello dati semi- strutturato Confronto sintassi di query semplici Confronto di alcune parole chiave di SQL92 e XQuery1.0 Conclusioni

SQL92 e XQuery1.0 a confronto3 SQL92 e il Modello Relazionale SQL92 compie interrogazioni su dati di tipo relazionale Il modello relazionale fu introdotto da E.F.Codd nel 1970 La struttura base del modello relazionale è la relazione La relazione viene rappresentata con una tabella bidimensionale PERSONE NOMEETÀ Mario Paola Michele Piero

SQL92 e XQuery1.0 a confronto4 XQuery1.0 e il Modello Semistrutturato - XML XQuery nasce per interrogare dati di tipo semi-strutturato, sempre più diffusi grazie allaffermazione di XML (Extensible Markup Language) più completo di HTML nella gestione di informazioni Web Punti di forza di XML: –Estensibilità (tag personalizzabili) –Possibilità di uso di tag significativi –Focalizzazione sul contenuto informativo di una sorgente piuttosto che sulla sua rappresentazione grafica Esempio di documento XML: Mario Rossi 25 Paola Bianchi 32 via Roma22 Michele Neri 25 via Appia 823

SQL92 e XQuery1.0 a confronto5 Modello Semistrutturato e Modello Relazionale Persone nome età Mario Rossi 25 Persona nome età indirizzo nome età indirizzo Paola Bianchi 32 via Roma 22 via Appia Michele Neri NOMEETÀ Mario Paola Michele Piero PERSONE

SQL92 e XQuery1.0 a confronto6 Analisi Sintattica: Struttura Base di Query In SQL92 : SELECT nome FROM Persona WHERE età = 25 In XQuery1.0: for $p in document(Persone.xml)//persona where $p/età = 25 return $p/nome query specification ::= SELECT set quantifier? select list table expression table expression ::=from clause where clause? group by clause? having clause? FLWR Expr ::= (ForClause | LetClause)+ WhereClause? "return" ExprSingle : In SQL92: In XQuery1.0: Esempio: selezionare le persone di 25 anni:

SQL92 e XQuery1.0 a confronto7 Quadro Sinottico del Confronto SQL 92XQuery 1.0 SELECTreturn FROMin + for -let WHEREwhere =, <>, >, =,, >, =, <=, and, not, or BETWEEN…AND- LIKEcontains IS NULLempty EXISTSexists -some | every … in … satisfies - > ORDER BY (ASC | DESC)order by (ascending | descending) DISTINCTdistinct-values UNIONunion IN | NOT INintersect | except GROUP BYlet + order by HAVING- FIRST- -if...then...else AVG(), SUM(), COUNT()avg(), sum(), count() CURRENT()current() Alcune parole chiave sono comuni ai due linguaggi (where) Altre hano nomi diversi, ma uguale significato (IN e intersect) Altre ancora non hanno corrispondente (let)

SQL92 e XQuery1.0 a confronto8 Order By in SQL92 e in XQuery1.0 In SQL92 e in XQuery1.0 la parola chiave order by svolge la stessa funzione: ordina il risultato – ASC o DESC (SQL92) – ascending o descending (XQuery1.0) Esempio: Selezionare codice, prezzo, numero e nome di articoli presenti in magazzino, in ordine decrescente di codice. In SQL92: SELECT codice, prezzo, pno, nome FROM Magazzino ORDER BY codice DESC In XQuery 1.0: for $a in document(Mag.xml)//articolo order by $a/codice descending return {$a/codice} {$a/prezzo} {$a/pno} {$a/nome}

SQL92 e XQuery1.0 a confronto9 Raggruppamenti Sia in XQuery1.0 che in SQL92 può capitare di dover compiere operazioni su gruppi di elementi (es. funzioni sum(), avg()) Per questo scopo in SQL92 si utilizza GROUP BY, mentre in XQuery1.0 si ricorre a let + order by Esempio: mostrare i numeri e il prezzo medio degli articoli che hanno come minimo tre fornitori. In SQL92: SELECT num, avg(price) FROM Catalogs GROUP BY num HAVING count(*) >=3 In XQuery1.0: for $n in distinct-values(document("catal.xml")//num) let $i := document("catalog.xml")//item[num = $n] where count($i) >= 3 order by $n return {$n} {avg($i/price)}

SQL92 e XQuery1.0 a confronto10 Join Per effettuare query su più di una tabella (o documento) si utilizza il costrutto di join Esistono diversi tipi di join Esempio di inner-join: selezionare gli articoli (da tabella e documento Articoli) e il loro numero di stock (da tabella e documento Stock) In SQL92: SELECT code, name, number FROM Articoli A, Stock S WHERE A.code = S.code In XQuery1.0: for $a in document(Articoli.xml")/Articolo, $s in document("Stock.xml")/Stock, where $a/code = $s/code return {$a/code} {$a/name} {$s/number}

SQL92 e XQuery1.0 a confronto11 Funzioni SQL92 prevede funzioni predefinite (fra cui SUM(), AVG(), COUNT(), CURRENT(), MAX(), MIN()) XQuery1.0 prevede oltre a funzioni predefinite anche la possibilità per lutente di definire proprie funzioni Esempio: funzione che permette di testare (restituendo true o false) se un nodo preceda un altro nodo in un documento (senza essere un suo nodo genitore) declare function local:precedes($a as node(), $b as node()) as boolean { $a << $b and empty($a//node() intersect $b) };

SQL92 e XQuery1.0 a confronto12 Confronto fra SQL92 e XQuery1.0 SQL92 VANTAGGI: Sintetico Alta velocità di interrogazione Basato su un modello con solide basi teoriche Utile per associare e correlare molti record per produrre risultati sintetici SVANTAGGI: Poco flessibile XQUERY1.0 VANTAGGI: Maggiore flessibilità (funzioni definibili dallutente) Il risultato della query è un documento (con propria gerarchia interna) SVANTAGGI: Più prolisso Meno efficiente

SQL92 e XQuery1.0 a confronto13 Conclusioni Numerose somiglianze fra parole chiave dei linguaggi SQL92 e XQuery1.0 (es. where, exists,order by) Il successo di XQuery1.0 dipende dalla diffusione di XML Molte case distributrici di software (Microsoft, IBM e Oracle) stanno pensando di fornire supporti per XQuery1.0 assieme a SQL.