Le operazioni relazionali

Slides:



Advertisements
Presentazioni simili
MODELLO RELAZIONALE La relazione su n insiemi A1, A2….,An è un sottoinsieme dell’ insieme di tutte le n-uple a1, a2,….,an che si possono costruire.
Advertisements

Operazioni Relazionali
Operazioni Relazionali
© 2015 Giorgio Porcu - Aggiornamennto 01/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Sistemi.
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
1 Simulazione Numerica dei Fenomeni di Trasporto Necessità di introduzione dei tensori  11  12  13  23  21  22 Vogliamo descrivere in un modo che.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
Progettazione di una base di dati relazionale
Database Accesso Utenti diversi Programmi diversi Modelli di database
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Le operazioni relazionali (continua)
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A. A – 2008 Basi di dati 1 Corso Prof
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Cluster Analysis Definizione di Classificazione: operazione concettuale condotta adottando un solo criterio (detto fondamento della divisione) per individuare.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrità referenziale
La normalizzazione delle relazioni
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Normalizzazione di uno schema relazionale.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Organizzazione fisica
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
FAQ.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Progettazione logica: Il modello relazionale
Gli schemi concettuali
Access.
Basi di dati - Fondamenti
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Partizionamento/accorpamento di concetti
SQL per la modifica di basi di dati
Dalle potenze ai numeri binari
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
I fogli elettronici Microsoft Excel.
Progetto 1 Input Creare una Funzione commentata che prenda come input:
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Il modello relazionale
…la contabilità generale si basa sull’uso del conto.
Selezione e Proiezione
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Le operazioni relazionali

Concetti generali In genere le operazioni relazionali agiscono su una o più relazioni per ottenere una nuova relazione Le operazioni relazionali consentono di effettuare le interrogazioni alla base di dati per ottenere le informazioni desiderate estraendo da una tabella una sottotabella, oppure combinando tra loro due o più tabelle generando così nuove relazioni.

Le principali operazioni Le principali operazioni sono la Selezione: estrae alcune righe da una tabella; la Proiezione: estrae alcune colonne da una tabella; la Congiunzione; La selezione e la proiezione sono operazioni che agiscono su una sola tabella. La congiunzione agisce su due tabelle.

Esempio Contatta Agenti (IDAgente, Nome, Zona) IDAgente (PK) Nome Zona Cliente IDCliente (PK) RagioneSociale PartitaIVA Provincia Contatta n 1 Agenti (IDAgente, Nome, Zona) Clienti(IDCliente, RagioneSociale, PartitaIVA, Provincia) L’associazione 1 a molti è realizzata riportando la chiave IDAgente nella relazione Cliente 

Esempio (continua) IDAgente Nome Zona Bia Bianchi Nord Bru Bruni Centro Ner Neri Ros Rossi Sud Ver Verdi Isole Per distinguere i due campi IDAgente si usa la dot-notation, secondo la quale il nome di un attributo è completamente specificato dal nome della tabella seguito da un punto e dal nome del campo. Agenti.IDAgente e Clienti.IDAgente IDCliente RagioneSociale PartitaIVA Provincia IDAgente Lami Lamiere per auto 01234567890 TO Bia Levi Levigatura Toscana 25874196301 FI Ner Luci Lucidatura metalli 45678912312 RM Meta Metallurgica Emiliana 32154789635 BO Metb Metalli rari 78965412585 NA Ros 

Esempio (continua) Selezione Proiezione IDAgente Nome Zona Bia Bianchi Nord Bru Bruni Centro Ner Neri Ros Rossi Sud Ver Verdi Isole IDAgente Nome Zona Bru Bruni Centro Ner Neri Selezione Le righe di Agenti dove Zona = «Centro» Proiezione Nome Zona Bianchi Nord Bruni Centro Neri Rossi Sud Verdi Isole Le colonne Nome e Zona di Agenti

La selezione La selezione genera una nuova relazione costituita solo dalle n-uple della relazione di partenza che soddisfano una determinata condizione; vengono cioè selezionate le righe con i valori degli attributi corrispondenti alla condizione prefissata Grado: la relazione ottenuta ha le stesse colonne di quella di partenza, quindi ha lo stesso grado; Cardinalità: la nuova relazione ha cardinalità minore o uguale a quella di partenza (è ragionevole pensare che sia minore)

Notazione per la selezione Per indicare la selezione si usa il simbolo  seguito dal nome della tabella T sulla quale viene effettuata la selezione. La proprietà P che caratterizza l’operazione viene scritta come indice La scrittura PT indica un’operazione su T che estrae solo le righe per le quali la proprietà P è vera.

Esempio di selezione Nell’esempio precedente: P Agenti con selezione di Agenti dove Zona = «Centro» Individua la relazione per P Clienti dove IDAgente = «Ner»

La proiezione La proiezione genera una nuova relazione estraendo dalla tabella iniziale solo alcune colonne Grado: nella nuova relazione il grado è minore o uguale a quello della relazione di partenza; Cardinalità: la nuova relazione ha cardinalità minore o uguale a quella di partenza. Può essere minore solo se nella proiezione non è compresa della chiave.

Notazione per la proiezione Per indicare la selezione si usa il simbolo  seguito dal nome della tabella T sulla quale viene effettuata la proiezione. La lista L che elenca le colonne da estrarre da T, viene riportata come pedice di . La scrittura LT indica un’operazione su T che estrae solo le colonne elencate in L.

Esempio di proiezione Nell’esempio: IDAgente Nome Zona Bia Bianchi Nord Bru Bruni Centro Ner Neri Ros Rossi Sud Ver Verdi Isole Nell’esempio: LAgenti proiezione di Agenti su Nome, Zona Cosa produce LAgenti su Zona? Proiezione Nome Zona Bianchi Nord Bruni Centro Neri Rossi Sud Verdi Isole

La congiunzione La congiunzione (join) tra due tabelle R e S, di schema: R(A1,A2,…,Am) e S(B1,B2,…,Bn) combina due relazioni generando una nuova relazione le cui righe contengono tutti gli attributi di R e quelli di S abbinando le sole righe di R e di S che soddisfano una data proprietà P. Se la proprietà P è di uguaglianza, si parla di equi-join. 

La congiunzione (continua) La relazione risultante è caratterizzata da: Grado: se R ha grado m e S ha grado n, la relazione risultante ha grado m+n; Cardinalità: non prevedibile a priori eccetto casi specifici che coinvolgono chiavi primarie e corrispondenti chiavi esterne.

Esempio di equi-join IDAgente Nome Zona Bia Bianchi Nord Bru Bruni Centro Ner Neri Ros Rossi Sud Ver Verdi Isole Riprendiamo l’esempio di prima e eseguiamo un equi-join tra Agenti e Clienti per valori uguali tra Clienti.IDAgente e Agenti.IDAgente IDCliente RagioneSociale PartitaIVA Provincia IDAgente Lami Lamiere per auto 01234567890 TO Bia Levi Levigatura Toscana 25874196301 FI Ner Luci Lucidatura metalli 45678912312 RM Meta Metallurgica Emiliana 32154789635 BO Metb Metalli rari 78965412585 NA Ros 

Esempio di equi-join (continua) Si ottiene la tabella IDCliente Ragione Sociale PartitaIVA Provincia Clienti. IDAgente Agenti. Nome Zona Lami Lamiere per auto 01234567890 TO Bia Bianchi Nord Levi Levigatura Toscana 25874196301 FI Ner Neri Centro Luci Lucidatura metalli 45678912312 RM Meta Metallurgica Emiliana 32154789635 BO Metb Metalli rari 78965412585 NA Ros Rossi Sud Notare che le due colonne utilizzate per la ricerca hanno gli stessi valori e appaiono duplicate.

Il join naturale Si vuole realizzare una congiunzione per evitare la ridondanza dell’esempio precedente: Questo tipo di congiunzione prende il nome di join naturale. Il join naturale è caratterizzato da: Grado: se R ha grado m e S ha grado n e le due tabelle hanno k attributi comuni, la relazione risultante ha grado m+n-k; Cardinalità: non prevedibile a priori eccetto casi specifici che coinvolgono chiavi primarie e corrispondenti chiavi esterne.

Notazione per il join naturale Per indicare il join naturale si usa il simbolo ⋈ posto tra le relazioni R e S che sono combinate. L’attributo A, comune alle due tabelle, è riportato come indice dei nomi delle tabelle. La scrittura RA⋈SA indica una congiunzione su R e S che hanno l’attributo A in comune.

Esempio 1 join naturale ClientiA⋈AgentiA congiunzione di Clienti e Agenti su IDAgente IDCliente Ragione Sociale PartitaIVA Provincia IDAgente Nome Zona Lami Lamiere per auto 01234567890 TO Bia Bianchi Nord Levi Levigatura Toscana 25874196301 FI Ner Neri Centro Luci Lucidatura metalli 45678912312 RM Meta Metallurgica Emiliana 32154789635 BO Metb Metalli rari 78965412585 NA Ros Rossi Sud

Esempio 2 join naturale Notiamo in questo schema che la chiave primaria e la chiave esterna hanno un nome differente PK=IDAgente e FK=AgenteDiZona Agenti(IDAgente, Nome, Zona) Clienti(IDCliente, RagioneSociale, PartitaIVA, Provincia, AgenteDiZona) ClientiA⋈AgentiB congiunzione di Clienti su AgenteDiZona e di Agenti su IDAgente

Altre operazioni Altre operazioni possibili solo su tabelle R e S con lo stesso schema sono: l’unione R∪S. Restituisce la relazione formata dalle righe di R oppure di S; l‘intersezione R∩S. Restituisce la relazione formata dalle righe comuni di R e di S; la differenza R−S. Restituisce la relazione formata dalle righe di R non presenti in S.