Databases relazionali e architetture dei RDBMS



Documenti analoghi
Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Elena Baralis 2013 Politecnico di Torino 1

Progettazione di Basi di Dati

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

MODELLO RELAZIONALE. Introduzione

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati)

Sistemi Informativi e Basi di Dati

Il database management system Access

Le Basi di Dati. Le Basi di Dati

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Progettaz. e sviluppo Data Base

Facoltà di Farmacia - Corso di Informatica

Organizzazione degli archivi

1. BASI DI DATI: GENERALITÀ

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

BASI DI DATI - : I modelli di database

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Lezione V. Aula Multimediale - sabato 29/03/2008

Database. Si ringrazia Marco Bertini per le slides

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Lezione 1. Introduzione e Modellazione Concettuale

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

I database relazionali (Access)

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

DBMS (Data Base Management System)

IL SISTEMA INFORMATIVO

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

BASE DI DATI: sicurezza. Informatica febbraio ASA

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Informatica Documentale

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Base di dati e sistemi informativi

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Organizzazione delle informazioni: Database

I database. Cosa sono e a cosa servono i Database

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

TEORIA sulle BASI DI DATI

Data Base. Prof. Filippo TROTTA

Access. P a r t e p r i m a

Introduzione al data base

Progettaz. e sviluppo Data Base

Introduzione alle basi di dati (prima parte)

Informatica (Basi di Dati)

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

database: modello entityrelationship

Introduzione ai database relazionali

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

I Sistemi Informativi

Alessandra Raffaetà. Basi di Dati

Progettazione di Database. Un Esempio

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

DATABASE RELAZIONALI

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Progettazione di un Database


Introduzione ai Sistemi di Gestione di Basi di Dati XML

Archivi e Basi di Dati

Base Dati Introduzione

Il Modello Relazionale

Capitolo 13. Interrogare una base di dati

MODULO 5 Appunti ACCESS - Basi di dati

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Basi di Dati e Microsoft Access

Archivi e database. Lezione n. 7

DATABASE. A cura di Massimiliano Buschi

DATABASE.

Ottimizzazione delle interrogazioni (parte I)

Il Modello Relazionale

EXPLOit Content Management Data Base per documenti SGML/XML

Basi di dati 9 febbraio 2010 Compito A

BANCHE DATI. Informatica e tutela giuridica

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Raggruppamenti Conti Movimenti

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Volumi di riferimento

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Programma del Corso per Segretaria d Azienda:

Modulo 2 Data Base 2

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

La base di dati (database)

Strumenti di modellazione. Gabriella Trucco

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Gestionalino-Base è un Software che gestisce altri Software Specifici progettati per

Il sistema C.R.M. / E.R.M.

MANUALE UTENTE Fiscali Free

Corso di Basi di Dati e Conoscenza

Transcript:

A01 87

Salvatore Sessa Ferdinando Di Martino Michele Giordano Databases relazionali e architetture dei RDBMS Introduzione ai databases relazionali e all uso di Access

Copyright MMVI ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133 A/B 00173 Roma (06) 93781065 ISBN 978 88 548 0583 5 I diritti di traduzione, di memorizzazione elettronica, di riproduzione e di adattamento anche parziale, con qualsiasi mezzo, sono riservati per tutti i Paesi. Non sono assolutamente consentite le fotocopie senza il permesso scritto dell Editore. I edizione: maggio 2006

Indice 1 Lebasididati... 1 1.1 Lebasididati... 1 1.2 Lebasididatirelazionali... 3 1.2.1 Algebrarelazionale... 6 1.2.2 Unione... 6 1.2.3 Intersezione... 8 1.2.4 Differenza.................. 9 1.2.5 Prodotto... 9 1.2.6 Selezione... 10 1.2.7 Proiezione... 11 1.2.8 Joinnaturale... 11 1.2.9 Viste... 12 1.2.10 Indici... 12 2 Relational Database Management System (RDBMS)... 15 2.1 RDBMS... 15 2.1.1 Architettura................ 15 2.1.2 LefunzionalitàdelDBA... 15 2.1.3 Architetture client/server.... 17 2.1.4 FunzionidiDataWarehouse... 21 3 Modelli concettuali e logici. Riduzioni in forma normale... 23 3.1 Modelli concettuali e logici......... 23 3.2 IldiagrammaEntità/Relazioni... 24 3.3 Organizzazionedeidati... 30 3.4 Leformenormali... 31 3.4.1 PrimaFormanormale... 32 3.4.2 SecondaFormanormale... 33 3.4.3 Terzaformanormale... 35 3.4.4 Quartaformanormale... 37 3.5 Laprogettazionelogicadeidati... 40

VI Indice 4 Il linguaggio SQL... 43 4.1 IllinguaggioSQL... 43 4.2 DDL(DataDefinitionLanguage)... 44 4.2.1 CREATETABLE... 44 4.2.2 ALTERTABLE... 45 4.2.3 DROPTABLE... 46 4.2.4 AltricomandiDDL... 46 4.3 DML(DataManipulationLanguage)... 47 4.3.1 Il comando SELECT......... 47 4.3.2 IlcomandoINSERT... 57 4.3.3 IlcomandoUPDATE... 58 4.3.4 Il comando DELETE......... 59 5 Uso del RDBMS ACCESS... 61 5.1 IltoolMICROSOFTACCESS... 61 5.2 Letabelle... 62 5.2.1 Lacreazioneditabelle... 62 5.3 Leformenormali... 68 5.4 Relazionitratabelle... 74 5.4.1 Le relazioni tra tabelle in MICROSOFT ACCESS...... 74 5.5 La gestione dei records in MICROSOFT ACCESS............ 80 5.6 UsodelleQueryinMICROFOSTACCESS... 85 6 CreareQueryconQBE... 91 6.1 LeQueryinMICROSOFTACCESS... 91 6.2 Esempid usodigriglieqbe... 91 6.2.1 Querydiselezione... 91 6.2.2 Queryacampiincrociati... 97 6.2.3 Querydiaggiornamento... 99 6.2.4 Query di accodamento...... 99 6.2.5 Querydieliminazione... 100 7 Maschere... 105 7.1 Creazioneemodificadellemaschere... 106 7.1.1 Autocomposizione creazione maschere............. 106 7.1.2 Creare una maschera in visualizzazione struttura.... 109 7.1.3 Icontrollidellemaschere... 110 7.1.4 Intestazioni, sezioni dei dettagli, piè di pagina....... 112 7.1.5 Altritipidimaschere... 113 7.2 Impostazionidelleproprietà... 116 7.2.1 Proprietàdellaformattazione... 116 7.2.2 Proprietàbarrediscorrimento... 117 7.2.3 Proprietàabilitazioneebloccodeicontrolli... 117 7.3 Ricercaedordinamentodeidati... 118 7.3.1 Ordinamento rapido nel campo di una maschera.... 118

Indice VII 7.3.2 Utilizzodeifiltriinbaseamaschera... 118 7.4 Stampadellemaschere... 120 8 Report... 121 8.1 Impieghideireport... 121 8.1.1 Nuovo report utilizzando Autocomposizione........ 121 8.1.2 Nuovo report in Visualizzazione Struttura........... 124 9 Criteri di protezione del database... 127 9.1 Protezionidiaccesso... 127 9.2 Utentiegruppi... 128 Riferimenti bibliografici... 137

Introduzione Questo libro deve essere visto come una introduzione ai RDBMS (Relational Data Base Management System) che è un tool software corredato da funzionalità che permettono la gestione corretta e completa di database relazionali. Il libro è organizzato in nove capitoli. I primi quattro Capitoli sono dedicati, nell ordine, ai concetti matematici fondamentali di basi di dati, alle architetture dei RDBMS, alla progettazione logica dei dati ed al linguaggio SQL. I secondi cinque Capitoli sono dedicati ad una introduzione all uso di MICROSOFT ACCESS e trattano, nell ordine, delle tabelle e loro relazioni, della creazione di diversi tipi di query, delle maschere, dei report e dei criteri di protezione. Napoli, aprile 2006 Gli Autori Salvatore Sessa Ferdinando Di Martino Michele Giordano

1 Le basi di dati 1.1 Le basi di dati Per sistema informativo si intende quel sistema che permette la disponibilità e la gestione delle informazioni. L esistenza di un sistema informativo è indipendente dalla sua automazione; lo dimostra il fatto che archivi e servizi anagrafici esistono da vari secoli. Le informazioni possono essere scambiate in varie forme e modalità. Per gestire un complesso corposo e integrato di informazioni, è nata l esigenza di individuare opportune codifiche per la memorizzazione dei dati. Nei sistemi informativi le informazioni vengono rappresentate per mezzo di dati che hanno bisogno di essere interpretate. Una base di dati consiste genericamente in una collezione di dati utilizzati per rappresentare le informazioni di interesse per un sistema informativo. Ogni struttura (ad esempio una banca, una compagnia d assicurazioni, un azienda) possiede una propria base di dati che aggiorna con una certa frequenza. Inoltre, quando viene introdotta una nuova procedura occorre anzitutto ereditare (= importare) i dati dalla vecchia procedura con le necessarie trasformazioni. Questa caratteristica di stabilità porta ad affermare che i dati costituiscono una risorsa per l organizzazione che li gestisce, un patrimonio significativo da sfruttare e proteggere. Le normative attuali in fatto di privacy e tutela delle basi di dati lo dimostrano. Sebbene la gestione dei dati abbia catalizzato, fin dalla nascita dell informatica, l attenzione delle applicazioni, solo negli anni settanta nascono linguaggi specificatamente dedicati alla gestione dei dati. L approccio convenzionale alla gestione dei dati consiste nello sfruttare la presenza di archivi o file da memorizzare in modo persistente sulla memoria di massa. Tale approccio presenta due seri problemi: la ricerca dei dati e la loro condivisione. Infatti con una simile metodologia di lavoro, ogni utente lavora con la propria copia locale dei dati e quindi con i relativi problemi di ridondanza e di incoerenza. Le basi di dati sono state concepite per ovviare ad inconvenienti di questo tipo.

2 1 Le basi di dati Un sistema di gestione di basi di dati, detto DBMS (Data Base Management System) è un sistema software in grado di: gestire grandi quantità di dati, permetterne la condivisione e assicurarne la persistenza; assicurare la loro affidabilità e privatezza. Una base di dati è una collezione di dati gestita da un DBMS. Quindi, un DBMS si occupa di gestire basi di dati: di grandi dimensioni: un DBMS deve essere in grado di gestire memorie secondarie; condivise: un DBMS deve permettere a più utenti di accedere contemporaneamente ai dati comuni. Per controllare l accesso condiviso di più utenti il DBMS dispone di un meccanismo apposito, detto controllo di concorrenza; affidabili: un DBMS deve garantire l integrità dei dati anche in caso di malfunzionamento hardware e software, prevedendo almeno procedure di recupero dei dati. I DBMS forniscono, per tali scopi, procedure di salvataggio e ripristino della base di dati (backup e recovery); con criteri di privatezza: i DBMS gestiscono un sistema di autorizzazioni che definisce i diritti di ciascun utente ( amministratore, lettura, scrittura su archivi, ecc.). Un modello di dati è un approccio formale utilizzato per organizzare i dati e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore. Ogni modello di dati fornisce meccanismi di strutturazione, analoghi ai costruttori di tipo dei linguaggi di programmazione, che permettono di definire nuovi tipi sulla base di tipi elementari predefiniti. Il modello relazionale dei dati permette di definire tipi per mezzo del costruttore di relazione, che consente di organizzare i dati in insiemi di record a struttura fissa o righe. Una relazione viene spesso rappresentata mediante una tabella in cui le righe rappresentano specifici record e le colonne corrispondono ai campi dei record. Esistono, oltre al modello relazionale, altri modelli di database quali: il modello gerarchico in cui i dati sono strutturati su base gerarchica; il modello reticolare in cui i dati sono strutturati in forma reticolare; il modello ad oggetti che utilizza i principi del paradigma object oriented. Tutti i modelli di basi di dati sono costituiti da una parte che rimane invariata nel tempo, detta schema, e da una parte, costituita dai valori effettivi, detta istanza. Esiste una proposta di struttura standardizzata per i DBMS articolata su tre livelli, detti esterno, logico e interno; per ciascun livello esiste uno schema:

1.2 Le basi di dati relazionali 3 lo schema logico (o concettuale), che costituisce la descrizione dell intera base di dati secondo il modello logico adottato (relazionale o gerarchico o reticolare od a oggetti); lo schema interno (o fisico), che costituisce la rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione; lo schema esterno, che costituisce la descrizione di una porzione della base di dati di interesse utilizzando viste (views), in base alle esigenze di visualizzazione dell utente. L architettura, così definita, garantisce l indipendenza della progettazione logica dei dati da quella fisica ed esterna. In particolare: l indipendenza fisica consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati. In base a questa proprietà, è possibile modificare le strutture fisiche senza influire sulle descrizioni dei dati ad alto livello e quindi sui programmi che utilizzano i dati stessi; l indipendenza logica consente di interagire con il livello esterno della base di dati in modo indipendente dal livello logico, in modo che l utente possa non avere conoscenza dello schema logico del database. 1.2 Le basi di dati relazionali Il modello relazionale pone i suoi fondamenti nell algebra relazionale. Il modello relazionale risponde al requisito dell indipendenza del modello logico da quello fisico. Gli utenti di database relazionale interagiscono solo col livello logico e quindi non è necessario che essi conoscano le strutture fisiche della base di dati. Questo requisito è responsabile del successo del modello relazionale rispetto ai DBMS reticolare e gerarchico che obbligavano gli utilizzatori a conoscerne, almeno a grandi linee, la struttura realizzativa. In insiemistica una relazione è legata al concetto di prodotto cartesiano tra due insiemi. Il prodotto cartesiano D 1 D 2 di due insiemi D 1 e D 2 è l insieme delle coppie ordinate (v 1,v 2 ) tale che v 1 èunelementodid 1 e v 2 èunelementodid 2.Unarelazionebinaria è un sottoinsieme del prodotto cartesiano di due insiemi, detti domini della relazione. Estendendo il concetto di prodotto cartesiano D 1 D 2... D n di n insiemi, una relazione è costituita da un sottoinsieme di D 1 D 2... D n. Ad esempio, dati due insiemi A, B dove A = {1, 2, 3} e B = {h, k}, il prodotto cartesiano è uguale all insieme A B = {(1,h), (2,h), (3,h), (1,k), (2,k), (3,k)} mentre una relazione possibile è {(1,h), (1,k), (3,h)}.

4 1 Le basi di dati Come ulteriore esempio,consideriamo tre insiemi A, B, C dove A = {1, 2, 3}, B = {h, k}, C = {SI,NO} una relazione possibile è: {(1,h,SI), (1,k,NO), (2,k,NO), (3,h,SI)} che costituisce un sottoinsieme del prodotto cartesiano A B C, formato da tre elementi o 3-ple ordinate. Il numero n degli insiemi che compongono il prodotto cartesiano è detto grado del prodotto cartesiano e della relazione. Il numero delle n-ple della relazione è detta cardinalità della relazione. Una relazione è un insieme di n-ple ordinate in quanto l i-esimo valore di ogni n-pla appartiene all esimo insieme (o dominio) del prodotto cartesiano. Adesso si consideri la relazione LAUREATI relativa agli studenti di un corso di laurea che hanno superato l esame di laurea. LAUREATI= (Rossi, Giulio, 1033, 10/10/1970, 11/04/1995), (Bianchi, Laura, 1034, 30/12/1970,23/11/1995), (Verdi, Ernesto, 1037, 04/08/1970,18/05/1994) con LAUREATI COGNOME NOME MATRICOLA DATA DATA. Il dominio data compare due volte nel prodotto cartesiano indicando la data di nascita e la data di laurea. Per facilitare il riferimento ai domini della relazione, è necessario definire un applicazione dom: A D tra la qualifica del dominio o attributo e il dominio stesso. Considerando l esempio precedente, si ha: dom(cognome) = Cognome dom(nome) = Nome dom(numero di Matricola) = Matricola dom(data Nascita) = Data dom(data Laurea) = Data Mediante tale funzione, è possibile associare a ogni occorrenza del dominio della relazione un attributo univoco che qualifica il ruolo del dominio. Una n-pla può allora essere definita come un insieme di n-ple di coppie (attributo, valore) e non più come una lista ordinata di valori. Ad esempio, la prima n-pla della relazione LAUREATI può essere definita come: (Cognome,Rossi), (Nome,Giulio),(Matricola, 1033), (Data Nascita, 10/10/1970), (Data Laurea, 11/04/1995). Le relazioni possono, quindi, essere identificate da n-ple, in cui l elemento è individuato tramite posizione oppure tramite i suoi attributi. Le tabelle nascono dall esigenza di rappresentare visivamente le relazioni presentandole in una forma più facilmente comprensibile. Le righe della tabella rappresentano le n-ple mentre le colonne ne rappresentano gli attributi o i campi. É importante chiarire che in una relazione

1.2 Le basi di dati relazionali 5 non vi è alcun ordinamento fra le n-ple che la compongono; nelle tabelle che la rappresentano, l ordine c è per necessità, ma è occasionale in quanto due tabelle con le stesse righe, ma in ordine diverso, rappresentano la stessa relazione. Inoltre le n-ple di una relazione sono distinte l una dall altra, in quanto tra gli elementi di un insieme non possono essere presenti due elementi uguali; da cui si deduce che una tabella può rappresentare una relazione solo se le righe che la formano sono diverse l una dall altra. Un importante caratteristica dei sistemi relazionali è la gestione dei valori nulli o ignoti; è possibile assegnare un valore nullo ad un attributo di una riga di una tabella. Tale valore è detto null. Ad esempio, si prenda la Tabella 1.1 (STUDENTI), i cui campi rappresentano, oltre al numero di matricola, i voti ottenuti relativamente ai singoli esami. Matricola Inglese Francese Spagnolo 0015 NULL 28 NULL 0016 30 30 28 0017 25 NULL NULL 0018 24 22 27 Le quattro istanze della relazione sono rappresentate come quattro record della tabella STUDENTI. I valori NULL, presenti in alcuni campi, stanno a significare o che lo studente non ha ancora effettuato l esame oppure che lo studente ha terminato i corsi senza superare l esame. In ogni caso, un dato NULL indica un valore non noto oppure inesistente. In un sistema relazionale è anche necessario prevedere se un attributo di una tabella può assumere un valore nullo oppure sapere che tale valore debba essere certo. Una ulteriore caratteristica dei database relazionali sono i vincoli di integrità, che permettono di rispettare rigidamente le regole di integrità logica del database. I vincoli di integrità si dividono in: vincoli intra relazionali, che impongono vincoli interni alle relazioni (ad esempio, il sesso di un impiegato può assumere solo i valori M ed F, il cognome non può assumere valore nullo, ecc.) vincoli extra relazionali, che impongono vincoli tra le relazioni (ad e- sempio, il valore del campo dipartimento della tabella IMPIEGATI deve essere compreso nell insieme dei valori del campo dipartimento della tabella DIPARTIMENTI). Un vincolo intra relazionale, al contrario di quello extra relazionale, trova il suo soddisfacimento rispetto alle singole relazioni del DBMS; esso può essere suddiviso in: vincolo di n-pla: esso impone condizioni sui valori della singola n-pla indipendentemente da quelli assunti dalle altre n-ple (ad esempio, il campo lode della tabella ESAME può essere pari a SI solo se il campo voto è pari a 30).

6 1 Le basi di dati vincolo su valori, ovincolo di dominio: esso impone che il valore di un campo della tabella deve rientrare in determinate caratteristiche (ad esempio, il voto di un esame universitario deve obbligatoriamente rientrare tra il 18 ed il 30). Il vincolo di dominio fondamentale è rappresentato dall univocità della chiave. Una chiave è un insieme di uno o più attributi che identificano in maniera univoca le n-ple di una relazione. Il vincolo di univocità della chiave vieta la presenza di due o più n-ple aventi la stessa chiave (Figura 1.1). Figura 1.1. Il campo chiave 1.2.1 Algebra relazionale L algebra relazionale definisce una serie di operatori che consentono di calcolare relazioni in una base di dati relazionale. Gli operatori dell algebra relazionale si suddividono in: Operatori classici su insiemi (unione, intersezione, complemento, ecc.) Operatori specifici sulle relazioni (proiezione, selezione, ecc.) Nel seguito sono considerati singolarmente i principali operatori dell algebra relazionale, mostrando come operano sulle relazioni. 1.2.2 Unione Siano R 1 ed R 2 due relazioni definite sullo stesso dominio D = D 1 D 2... D n. Si definisce Unione tra le due relazioni R 1 ed R 2, e si indica con il simbolo R 1 R 2, la relazione sullo stesso dominio D contenente le n-ple appartenenti ad R 1 oppure ad R 2. L operatore di unione agisce come operatore di unione della teoria degli insiemi, considerando come insiemi le

1.2 Le basi di dati relazionali 7 relazioni e come elementi di un insieme le n-ple. Consideriamo il seguente esempio illustrato nelle tabelle sottostanti: Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1034 Bianchi Laura 30/12/1970 23/11/1995 1037 Verdi Ernesto 04/08/1970 18/05/1994 1039 Neri Paola 15/01/1970 02/01/1996 Tabella 1.1. Relazione R 1 Matricola Cognome Nome Data nascita Data Laurea 1168 Ariete Giovanni 12/04/1972 28/08/1997 1170 Toro Lucio 05/06/1972 20/01/1997 1179 Leone Maria 17/10/1972 09/09/1997 1183 Bilancia Vittorio 22/05/1972 15/07/1997 Tabella 1.2. Relazione R 2 Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1034 Bianchi Laura 30/12/1970 23/11/1995 1037 Verdi Ernesto 04/08/1970 18/05/1994 1039 Neri Paola 15/01/1970 02/01/1996 1168 Ariete Giovanni 12/04/1972 28/08/1997 1170 Toro Lucio 05/06/1972 20/01/1997 1179 Leone Maria 17/10/1972 09/09/1997 1183 Bilancia Vittorio 22/05/1972 15/07/1997 Tabella 1.3. Relazione R 1 R 2

8 1 Le basi di dati 1.2.3 Intersezione Siano R 1 ed R 2 due relazioni definite sullo stesso dominio D = D 1 D 2... D n. Si definisce intersezione tra le due relazioni R 1 ed R 2, e si indica con il simbolo R 1 R 2, la relazione sullo stesso dominio D contenente le n-ple appartenenti ad R 1 eadr 2. L operatore di Intersezione agisce come operatore di intersezione della teoria degli insiemi, considerando come insiemi le relazioni e come elementi di un insieme le n-ple. Consideriamo il seguente esempio illustrato nelle tabelle sottostanti: Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1034 Bianchi Laura 30/12/1970 23/11/1995 1037 Verdi Ernesto 04/08/1970 18/05/1994 1179 Leone Maria 17/10/1972 09/09/1997 Tabella 1.4. Relazione R 1 Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1170 Toro Lucio 05/06/1972 20/01/1997 1179 Leone Maria 17/10/1972 09/09/1997 1183 Bilancia Vittorio 22/05/1972 15/07/1997 Tabella 1.5. Relazione R 2 Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1179 Leone Maria 17/10/1972 09/09/1997 Tabella 1.6. Relazione R 1 R 2

1.2 Le basi di dati relazionali 9 1.2.4 Differenza Siano R 1 ed R 2 due relazioni definite sullo stesso dominio D = D 1 D2... D n. Si definisce differenza tra le due relazioni R 1 ed R 2,esi indica con il simbolo R 1 R 2, la relazione sullo stesso dominio D contenente le n-ple appartenenti a R 1 che non appartengono a R 2. L operatore di differenza agisce, quindi, come operatore complemento della teoria degli insiemi, considerando come insiemi le relazioni e come elementi di un insieme le n-ple. Considerando le relazioni R 1 ed R 2 di Tabella 1.4 ed 1.5, rispettivamente, si ha, ad esempio: Matricola Cognome Nome Data nascita Data Laurea 1034 Bianchi Laura 30/12/1972 23/11/1995 1037 Verdi Ernesto 04/08/1970 18/05/1994 Tabella 1.7. Relazione R 1 R 2 1.2.5 Prodotto Siano R 1 e R 2 due relazioni definite sui domini D 1 e D 2, di grado n e m, rispettivamente. Si definisce prodotto tra le due relazioni R 1 e R 2,esi indica con il simbolo R 1 R 2, la relazione sul dominio D 1 D 2 composta dagli attributi A 1,...,A n,b 1,...,B m e di grado n + m costituita dalla (n m) ple ottenute concatenando ogni n upla di R 1 con ogni m-upla di R 2. L operatore prodotto agisce, quindi, come operatore prodotto della teoria degli insiemi considerando come insiemi le relazioni e come elementi di un insieme le n ple. Consideriamo il seguente esempio illustrato nelle tabelle sottostanti: Tipo Camicia Giacca Colore Bianco Azzurro Tabella 1.8. Relazione R 1

10 1 Le basi di dati Motivo Spessore Rigato 0,2 A quadri 0,4 Tabella 1.9. Relazione R 2 Tipo Colore Motivo Spessore Camicia Bianco Rigato 0,2 Giacca Azzurro A quadri 0,4 Camicia Bianco A quadri 0,4 Giacca Azzurro Rigato 0,2 Tabella 1.10. Relazione R 1 R 2 1.2.6 Selezione L operatore di selezione permette di creare una relazione sottoinsieme della relazione d origine, in quanto contiene solo le n ple della relazione d origine selezionate. L operatore di selezione introduce il concetto di condizione, che permette di definire la condizione per operare la scelta delle n ple. Consideriamo il seguente esempio: sia R 1 la relazione di Tabella 1.4 esia Condizione: Data Nascita 31/12/1971 Matricola Cognome Nome Data nascita Data Laurea 1033 Rossi Giulio 10/10/1970 11/04/1995 1034 Bianchi Laura 30/12/1970 23/11/1995 1037 Verdi Ernesto 04/08/1970 18/05/1994 Tabella 1.11. Relazione ottenuta per selezione

1.2 Le basi di dati relazionali 11 1.2.7 Proiezione L operatore di proiezione permette di creare una relazione che contiene tutte le n-ple della relazione d origine, ma avente solo alcuni dei campi della relazione d origine. In pratica, se A è un insieme contenente K attributi, sottoinsieme dell insieme A 0 degli n attributi della relazione originale, l operatore di proiezione produrrà una relazione di grado K contenente i soli attributi facenti parte dell insieme A. Consideriamo il seguente esempio: sia R 1 la relazione di Tabella 1.4 e sia A = {Matricola, Cognome, Nome, Data nascita} Matricola Cognome Nome Data nascita 1033 Rossi Giulio 10/10/1970 1034 Bianchi Laura 30/12/1970 1037 Verdi Ernesto 04/08/1970 1179 Leone Maria 17/10/1972 Tabella 1.12. Relazione ottenuta per proiezione 1.2.8 Join naturale Siano R 1 ed R 2 due relazioni definite sui domini D 1 e D 2, di grado n ed m, rispettivamente, aventi un insieme A di attributi in comune. L operatore di Join naturale applicato alle relazioni R 1 ed R 2 produce una relazione (R 1,R 2 ) in cui ogni n-pla è formata dalla combinazione di una n-pla di R 1 e di una m-upla di R 2 aventi gli stessi valori degli attributi definiti in A. Il Join naturale è detto Internal Join in SQL. Esso si distingue dai Join esterni, che sono comprensivi anche delle righe delle due tabelle che non hanno corrispondenza tra loro. Consideriamo il seguente esempio: sia R 1 la relazione di Tabella 1.4 e sia la relazione R 2 data dalla Tabella 1.13 Matricola Sesso Coniugato 1033 M SI 1034 F SI 1037 M NO 1179 F NO Tabella 1.13. Relazione R 2

12 1 Le basi di dati Matricola Cognome Nome Data nascita Data Laurea Sesso Coiungato 1033 Rossi Giulio 10/10/1970 11/04/1995 M SI 1034 Bianchi Laura 30/12/1970 23/11/1995 F SI 1037 Verdi Ernesto 04/08/1970 18/05/1994 M NO 1179 Leone Maria 17/10/1972 09/09/1997 F NO Tabella 1.14. Relazione di join naturale (R 1, R 2 1.2.9 Viste Oltre alle relazioni classiche è possibile definire delle relazioni derivate, ovvero relazioni il cui contenuto è legato al contenuto di altre relazioni. La vista è una relazione derivata. Essa, dal punto di vista implementativo, può essere creata in due modi: come vista materializzata, ovvero memorizzata in base dati; come vista virtuale, ovvero non memorizzata in base dati, ma utilizzabile nelle interrogazioni esterne come se lo fosse. Nel caso in cui l utente del database necessiti a più riprese effettuare staticamente visualizzazioni dei dati estratti in un dato momento con una selezione, conviene memorizzare fisicamente questi dati mediante una vista materializzata. Nel caso in cui l utente effettui molte volte, in tempi diversi, una specifica selezione per estrarre un insieme di dati, conviene creare una vista virtuale. 1.2.10 Indici Un indice è costituito da una combinazione di uno o più attributi di una tabella che permette, se definito, al RDBMS di effettuare selezioni e ordinamenti velocizzati in base alla combinazione che costituisce l indice. Gli indici permettono un accesso ai dati più veloce, ma hanno lo svantaggio di rallentare tutte le operazioni di modifica di dati. La scelta di adoperare o no un indice è legata all utilizzo della tabella da parte del sistema. Se vi sono molte richieste di selezione dei dati, con la condizione imposta in base alla combinazione degli attributi che compongono l indice, ma poche modifiche dei dati, allora è buona cosa creare l indice per ottimizzare le prestazioni del sistema. Altrimenti, la creazione dell indice rallenterebbe tutte le operazioni che effettuano modifiche ai dati. In genere si preferisce creare indici che hanno un quoziente di selettività QS alto, dove: QS = 100 *(numero totale di righe identificate in modo univoco dall indice)/numero totale di righe della tabella. Se QS è alto,