DB -Algebra Relazionale

Slides:



Advertisements
Presentazioni simili
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Advertisements

Algebra Relazionale 3 Università degli Studi del Sannio
Calcolo Relazionale.
DB - Modello relazionale dei dati
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Interrogazione di una base di dati relazionale Algebra relazionale.
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.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Operazioni Relazionali
ESEMPI DI ARCHIVI DI DATI
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
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.
Equivalenza di espressioni
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.
Modello E-R Generalizzazioni
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Basi di dati Claudia Raibulet
Il Modello Relazionale
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
L’Algebra Relazionale
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
DB- Sistemi Informativi
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.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
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.
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 di Boole.
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.
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?
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Interrogazioni (parte 2)
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.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
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.
1 Sistemi per il recupero delle informazioni PARTE - V MODELLO RELAZIONALE DEI DATI.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
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.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
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.
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:
Approfondimenti SQL.
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.
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:
Selezione e Proiezione
Transcript della presentazione:

DB -Algebra Relazionale

LINGUAGGI PER MODELLI RELAZIONALI Algebrici: una query è definita da un’espressione algebrica sulle relazioni dello schema Logici: una query è definita da una formula della logica del primo ordine DB -Algebra Relazionale

DB -Algebra Relazionale ESEMPIO DI QUERY DB -Algebra Relazionale

DB -Algebra Relazionale Un set di operatori che Sono definiti sulle relazioni Producono come risultato una relazione Gli operatori possono essere combinati per formare espressioni complesse Esecuzione procedurale DB -Algebra Relazionale

Operatori dell’algebra relazionale Gli operatori primitivi dell’Algebra Relazionale sono: Ridenominazione; Unione; Differenza; Proiezione; Restrizione (o Selezione); Prodotto. I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi DB -Algebra Relazionale

DB -Algebra Relazionale Ridenominazione Operatore unario Modifica il nome di un attributo senza cambiarne il valore Definizione: Siano X gli attributi di R, A in X, B not in X . Allora AB(R) è con attributi (X-{A}){B}  AB(R)={t | u R t[B] = u[A]  t[C]=u[C] se C e’ diverso da B}. DB -Algebra Relazionale

Esempio Ridenominazione Matricola  Codice Studente(Esami) DB -Algebra Relazionale

Unione, Differenza e Intersezione Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi Il risultato dev’essere un set omogeneo di n-uple Quindi, applichiamo gli operatori sui set solo fra relazioni con gli stessi attributi Siano R ed S relazioni dello stesso tipo allora RS = {t | t R  t  S} R-S = {t | t R  tS} RS = {t | t R  t  S} DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Unione DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Intersezione DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Differenza DB -Algebra Relazionale

Un esempio utile ma non fattibile “Father” e “Mother” sono attributi con nomi diversi ma entrambi sono “Genitori” Soluzione: ridenominare gli attributi DB -Algebra Relazionale

Ridenominazione e Unione FatherParent(Paternity)  MotherParent(Maternity) DB -Algebra Relazionale

DB -Algebra Relazionale Proiezione Produce risultati: Su un sottoinsieme degli attributi dell’operando Con valori da tutte le n-uple della relazione Definizione Sia R una relazione e siano A1, A2,…, An alcuni suoi attributi allora:  A1, A2,…, An (R) = {t[A1, A2,…, An ] | tR} La cardinalita’ di  A1, A2,…, An (R) puo’ essere minore di R nel caso di duplicati DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Proiezione Proiezione DB -Algebra Relazionale

Un’altro esempio di proiezione Si riduce la cardinalita’ del risultato rispetto all’operando DB -Algebra Relazionale

Selezione (Restrizione) Produce risultati: Con lo stesso schema dell’operando Con un sottoinsieme delle n-uple dell’operando Quelle che soddisfano la condizione Definizione Sia R una relazione allora   (R) = {t | t R  (t)} dove  e’ una formula proposizionale costruita a partire dagli atomi A  B e utilizzando i connettivi proposizionali ,, A e B sono attributi di R o costanti   {=,<, >, ≠, ≤, ≥} DB -Algebra Relazionale

DB -Algebra Relazionale Esempio Selezione Selezione DB -Algebra Relazionale

Un altro esempio di Selezione DB -Algebra Relazionale

Prodotto (Cartesiano) Siano R(A1: T1,…, An: Tn) ed S (An+1: Tn+1,…, An+m: Tn+m) con {A1,…, An} {An+1,…, An+m}= . Allora si pone R x S = {tu | tR  u  S} DB -Algebra Relazionale

Esempio prodotto cartesiano DB -Algebra Relazionale

DB -Algebra Relazionale Operatori Derivati Sono operatori utili che si possono esprimere in funzioni di quelli primitivi. Intersezione: Siano R ed S dello stesso tipo RS = {t | tR  t  S}. Essa si può esprimere in funzione degli operatori primitivi: R  S = R-(R-S) DB -Algebra Relazionale

DB -Algebra Relazionale JOIN (Giunzione) L’operatore piu’ importante dell’algebra relazionale Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi Fondamentalmente due tipi (piu’ qualche variante): Natural JOIN Theta JOIN DB -Algebra Relazionale

DB -Algebra Relazionale Natural JOIN DB -Algebra Relazionale

Definizione del Natural JOIN Sia R con attributi XY ed S con attributi YZ R 1 S e’ una relazione di attributi XYZ costituita da tutte le n-uple t tali che: t[XY]  R , t[YZ]  S. Quindi: R 1 S = {t | t[XY]  R  t[YZ]  S} Cioe’: le n-uple del risultato sono ottenute combinando le n-uple di R e S che hanno gli stessi valori negli attributi con lo stesso nome DB -Algebra Relazionale

Un altro esempio di Natural JOIN DB -Algebra Relazionale

Ancora un altro esempio di Natural Join DB -Algebra Relazionale

DB -Algebra Relazionale JOIN incompleti Nel caso in cui alcuni valori tra gli attributi comuni non coincidono Quindi, alcune n-uple non partecipano al JOIN (dangling n-uple) DB -Algebra Relazionale

JOIN vuoti, un caso estremo Potrebbe anche succedere che nessuna n-upla trovi il corrispettivo DB -Algebra Relazionale

L’altro caso estremo del JOIN Ogni n-upla di R1 si combina con ogni n-upla di R2 Cardinalita’ del risultato e’ il prodotto delle cardinalita’ DB -Algebra Relazionale

OUTER JOIN (Giunzione esterna) Una variante del JOIN per mantenere nel risultato le n-uple che non partecipano al JOIN Gli attributi delle dangling n-uple vengono riempiti con NULL Tre varianti: Left: solo dangling n-uple del primo operando Right: solo dangling n-uple del secondo operando Full: n-uple da entrambi gli operandi DB -Algebra Relazionale

Esempio di NATURAL OUTER JOIN DB -Algebra Relazionale

DB -Algebra Relazionale Proprieta’ del JOIN Il JOIN e’ Commutativo: R 1 S = S 1 R Associativo: (R 1 S) 1 T = R 1 (S 1 T) Quindi possiamo avere sequenze di JOIN senza rischio di ambiguita’: R 1 S 1 T … DB -Algebra Relazionale

Esempio di JOIN multipli DB -Algebra Relazionale

Prodotto cartesiano a partire dal JOIN Il JOIN e’ definito anche se non ci sono attributi comuni fra le relazioni In questo caso, non essendoci vincoli sulle tuple da selezionare, vengono selezionate tutte le tuple dalle relazioni del JOIN  Prodotto cartesiano DB -Algebra Relazionale

Esempio di prodotto cartesiano generato dal JOIN DB -Algebra Relazionale

Theta-JOIN e Equi-JOIN Estensione del NATURAL JOIN Viene specificato un predicato per la selezione delle n-uple E’ un operatore derivato: R 1 F S =  F (R x S) Se F e’ una congiunzione di uguaglianze si parla di equi-JOIN DB -Algebra Relazionale

DB -Algebra Relazionale Esempio di equi-JOIN DB -Algebra Relazionale

Query (interrogazioni) L’algebra relazionale puo’ quindi essere usata per interrogare una base di dati Una query e’ una funzione da una istanza di un database (insieme di relazioni) ad una relazione DB -Algebra Relazionale

Database di esercitazione DB -Algebra Relazionale

DB -Algebra Relazionale Esercizio 1 Trovare numero, nome ed eta’ di tutti gli impiegati che guadagnano piu’ di 40 mila euro DB -Algebra Relazionale

DB -Algebra Relazionale Esercizio 2 Trovare il numero dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro DB -Algebra Relazionale

DB -Algebra Relazionale Esercizio 3 Trovare nome e salario dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro. DB -Algebra Relazionale

DB -Algebra Relazionale Esercizio 4 Trovare gli impiegati che guadagnano piu’ dei loro responsabili e visualizzare numero, nome e salario sia dell’impiegato che del responsabile DB -Algebra Relazionale

DB -Algebra Relazionale Esercizio 5 Trovare numero e nome dei responsabili i cui impiegati guadagnano TUTTI piu’ di 40 mila euro DB -Algebra Relazionale