Interrogazione di una base di dati relazionale Algebra relazionale.

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Algebra Relazionale 3 Università degli Studi del Sannio
Calcolo Relazionale.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
1 Algebra Relazionale Eugenio Di Sciascio. 2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo.
Semantica delle Informazioni
Unità didattica 2: Basi di dati MODULO DIDATTICO: I DATABASE
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
SQL Dati i seguenti schemi relazionali:
Operazioni Relazionali
ESEMPI DI ARCHIVI DI DATI
LE FUNZIONI Definizione Campo di esistenza e codominio
PROGETTO LAUREE SCIENTIFICHE
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.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
DB -Algebra Relazionale
Algoritmo di Query Optimization
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
Il Linguaggio C.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Il Modello Relazionale
INFORMATICA Corso Base Modulo G: I DataBase  Access.
MODELLO LOGICO DEI DATI
Riferimenti di cella.
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Riepilogo Foglio elettronico Excel - Base
SQL.
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
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Interrogazione di una base di dati relazionale
Progettazione di una base di dati Progettazione logica (modello relazionale)
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.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
ALGEBRA E CALCOLO 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.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
1 Il modello relazionale. 2 Introduzione Il modello relazionale, sebbene non sia stato il modello usato nei primi DBMS, e' divenuto lentamente il modello.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Progettazione di una base di dati relazionale Vincoli.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Eprogram informatica V anno.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Informatica Introduzione alle basi di dati Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
L’Algebra Relazionale
Operazioni Relazionali
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.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
SQL Linguaggio per l’interrogazione di una base dati.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Interrogazione di una base di dati relazionale
Interrogazione di una base di dati relazionale
Transcript della presentazione:

Interrogazione di una base di dati relazionale Algebra relazionale

Linguaggio formale per interrogare una base di dati relazionale: consiste di un insieme di operatori che possono essere applicati a una (operatori unari) o due (operatori binari) istanze di relazione e forniscono unistanza di relazione Linguaggio procedurale: linterrogazione consiste in unespressione in cui compaiono operatori dellalgebra e istanze di relazioni della base di dati

Proiezione Consente di effettuare un taglio verticale su una relazione, cioè di selezionare solo alcune colonne (attributi) Si denota con il simbolo : A1,A2,…,Ak (r) seleziona le colonne di r che corrispondono agli attributi A1,A2,…,Ak

Proiezione ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma Rossi Bianchi Verdi Query: Nomi dei clienti Nome (Cliente)

Proiezione ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma Query: Nomi e codici dei clienti Nome,CodC (Cliente) RossiC1 RossiC2 BianchiC3 VerdiC4

Selezione Consente di effettuare un taglio orizzontale su una relazione, cioè di selezionare solo le righe (tuple) che soddisfano una data condizione Si denota con il simbolo : C (r) seleziona le tuple di r che soddisfano la condizione C

Selezione La condizione di selezione è unespressione booleana (operatori, e ) in cui i termini semplici sono del Tipo: A B oppure A a dove: è un operatore di confronto (,,,, ) A e B sono due attributi con lo stesso dominio (dom(A)=dom(B)) a è un elemento di dom(A) (a dom(A))

Selezione ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma Query: Dati dei clienti che risiedono a Roma Comune=Roma (Cliente) RossiC1Roma BianchiC3Roma VerdiC4Roma

Selezione ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma Query: Dati dei clienti che si chiamano Rossi e risiedono a Roma Comune=Roma Nome=Rossi (Cliente) RossiC1Roma

Prodotto cartesiano Consente di costruire una relazione contenente tutte le tuple che si ottengono concatenando una tupla del primo operando con una tupla del secondo operando Si denota con il simbolo x r1xr2r1xr2

Unione Consente di costruire una relazione contenente tutte le tuple che appartengono ad almeno uno dei due operandi Si denota con il simbolo r 1 r 2 r1r1 r2r2

Differenza Consente di costruire una relazione contenente tutte le tuple che appartengono al primo operando e non appartengono al secondo operando Si denota con il simbolo r 1 r 2 r1r1 r2r2

Intersezione Consente di costruire una relazione contenente tutte le tuple che appartengono ad entrambi gli operandi Si denota con il simbolo r 1 r 2 = (r 1 (r 1 r 2 ))

-join Consente di selezionare le tuple del prodotto cartesiano dei due operandi che soddisfano una condizione del Tipo A B dove è un operatore di confronto (,,,, ), A è un attributo dello schema del primo operando, B è un attributo dello schema del secondo operando e dom(A)=dom(B) r 1 r 2 = A B (r 1 x r 2 ) A B

Join naturale Consente di selezionare le tuple del prodotto cartesiano dei due operandi che soddisfano la condizione: R 1.A 1 = R 2.A 1 R 1.A 2 = R 2.A 2 … R 1.A k = R 2.A k (dove R 1 ed R 2 sono i nomi delle relazioni operando e A 1,, A 2,…, A k sono gli attributi comuni delle relazioni operando) eliminando le ripetizioni degli attributi r 1 r 2 = XY ( C (r 1 x r 2 )) dove: C: R 1.A 1 = R 2.A 1 … R 1.A k = R 2.A k X è linsieme di attributi di r 1 Y è linsieme di attributi di r 2 che non sono attributi di r 1

Join naturale ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma OrdineCodCCodAN-pezzi C1A1100 C2A2200 C3A2150 C4A3200 C1A2200 C1A3100 Query: Dati dei clienti e dei loro ordini Cliente Ordine

NomeCodCComuneCodAN-pezzi RossiC1RomaA1100 RossiC1RomaA2200 RossiC1RomaA3100 RossiC2MilanoA2200 BianchiC3RomaA2150 VerdiC4RomaA3200

Esempio 1 ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma OrdineCodCCodAN-pezzi C1A1100 C2A2200 C3A2150 C4A3200 C1A2200 C1A3100 Query : Nomi dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo Nome N-pezzi>100 Cliente Ordine

Esempio 1 Cliente Ordine NomeCodCComuneCodAN-pezzi RossiC1RomaA1100 RossiC1RomaA2200 RossiC1RomaA3100 RossiC2MilanoA2200 BianchiC3RomaA2150 VerdiC4RomaA3200

Esempio 1 N-pezzi>100 Cliente Ordine NomeCodCComuneCodAN-pezzi RossiC1RomaA2200 RossiC2MilanoA2200 BianchiC3RomaA2150 VerdiC4RomaA3200

Esempio 1 Nome N-pezzi>100 Cliente Ordine Nome Rossi Bianchi Verdi

Esempio 2 ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma OrdineCodCCodAN-pezzi C1A1100 C2A2200 C3A2150 C4A3200 C1A2200 C1A3100 ArticoloCodATipoPrezzo A1Piatto3 A2Bicchiere2 A3Tazza4 Nome e Comune dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo con prezzo superiore a 2 Nome,Comune N-pezzi>100 Prezzo>2 (Cliente Ordine Articolo)

Esempio 2 (Cliente Ordine Articolo NomeCodCComuneCodAN-pezziTipoPrezzo RossiC1RomaA1100Piatto3 RossiC1RomaA2200Bicchiere2 RossiC1RomaA3100Tazza4 RossiC2MilanoA2200Bicchiere2 BianchiC3RomaA2150Bicchiere2 VerdiC4RomaA3200Tazza4

Esempio 2 NomeCodCComuneCodAN-pezziTipoPrezzo VerdiC4RomaA3200Tazza4 N-pezzi>100 Prezzo>2 (Cliente Ordine Articolo)

Esempio 2 NomeComune VerdiRoma Nome,Comune N-pezzi>100 Prezzo>2 (Cliente Ordine Articolo)

Esempio 2 ClienteNomeCodCComune RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma OrdineCodCCodAN-pezzi C1A1100 C2A2200 C3A2150 C4A3200 C1A2200 C1A3100 ArticoloCodATipoPrezzo A1Piatto3 A2Bicchiere2 A3Tazza4 Nome e Comune dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo con prezzo superiore a 2 Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))

Esempio 2 CodCCodAN-pezzi C2A2200 C3A2150 C4A3200 C1A2200 N-pezzi>100 (Ordine) Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))

Esempio 2 Cliente N-pezzi>100 (Ordine) NomeCodCComuneCodAN-pezzi RossiC1RomaA2200 RossiC2MilanoA2200 BianchiC3RomaA2150 VerdiC4RomaA3200 Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))

Esempio 2 CodAPrezzo A13 A22 A34 CodA,Prezzo (Articolo) Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))

Esempio 2 CodAPrezzo A13 A34 Prezzo>2 ( CodA,Prezzo (Articolo)) Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))

Esempio 2 NomeCodCComuneCodAN-pezziPrezzo VerdiC4RomaA32004 Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo))) (Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo))

Esempio 2 NomeComune VerdiRoma Nome,Comune ((Cliente N-pezzi>100 (Ordine)) Prezzo>2 ( CodA,Prezzo (Articolo)))