Index

Related


Proiezione

Definizione

La Proiezione consente di effettuare un “taglio verticale” su una relazione, cioè di selezionare solo alcune colonne (attributi).

Dove:

  • è una relazione
  • sono gli attributi della relazione che vogliamo selezionare.

Selezione

Definizione

LA Selezione consente di effettuare un “taglio orizzontale” su una relazione, cioè di selezionare solo le righe (tuple) che soddisfano una data condizione.

Dove:

  • è una condizione (ovvero un espressione booleana composta da operatori booleani e attributi con stesso dominio)
  • una relazione
  • = le tuple di che soddisfano la condizione

Unione

Definizione

L’unione costruisce una relazione che contiene tutte le ennuple appartengono ad almeno uno dei due operandi.

Union Compatible

L’ operazione di unione può essere utilizzata soltanto su operandi union compatible cioè tali che:

  • hanno lo stesso numero di attributi.

  • gli attributi (nell’ordine) sono definiti sullo stesso dominio.

oss: non è necessario che gli attributi abbiano lo stesso nome, ma ovviamente il risultato ha senso se hanno un significato omogeneo.


Differenza

Definizione

La differenza costruire una relazione contenente tutte le tuple che appartengono al primo operando e NON appartengono al secondo operando.

Union Compatible

Anche la gli operandi della differenza devono essere union compatible.


Intersezione

Definizione

L’intersezione costruisce una relazione contenente tutte le tuple che appartengono ad entrambi gli operandi.

Union Compatible

Anche la gli operandi dell’intersezione devono essere union compatible.

Correlazione con Differenza


Prodotto Cartesiano

Definizione

Il prodotto cartesiano costruisce una relazione che contiene tutte le possibili combinazioni di tuple dai due operandi.

Esempio Base

Column

RelazioneA

ColoreDimensione
RossoGrande
BluPiccolo

RelazioneB

FormaMateriale
QuadratoLegno
CerchioMetallo

Prodotto Cartesiano

ColoreDimensioneFormaMateriale
RossoGrandeQuadratoLegno
RossoGrandeCerchioMetallo
BluPiccoloQuadratoLegno
BluPiccoloCerchioMetallo

Esempio Con Complicazioni

Abbiamo due Relazioni una che rappresenta i clienti l’altra che rappresenta gli ordini fatti dai clienti.

In particolare ogni cliente ha un codice univoco C# che presente anche nell’ordine (sotto forma di CC#) per risalire al cliente che ha fatto l’ordine.

Query: Creare una tabella che mette in relazione i dati dei clienti e i dati degli ordini.

Column

Clienti

NomeC#Città
RossiC1Roma
RossiC2Milano
BianchiC3Roma
VerdiC4Roma

Ordini

O#CC#A#N-pezzi
O1C1A1100
O2C2A2200
O3C3A2150
O4C4A3200
O1C1A2200
O1C1A3100

Prodotto Cartesiano

NomeC#CittàO#CC#A#N-pezzi
RossiC1RomaO1C1A1100
RossiC1RomaO2C2A2200
RossiC1RomaO3C3A2150
RossiC1RomaO4C4A3200
RossiC1RomaO1C1A2200
RossiC2MilanoO1C1A1100
BianchiC3RomaO3C1A1100
VerdiC4RomaO4A3200

ERRORE #C) non combacia sempre con il codice cliente del ordine (#CC) per queste casistiche non è ottimale utilizzare il prodotto cartesiano, ma conviene utilizzar Join-Naturale o il Theta-Join.

Come è possibile notare il codice cliente (