Modello relazionale. ing. Alfredo Cozzi 1



Похожие документы
BASI DI DATI - : I modelli di database

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

Progettazione di Basi di Dati

Database. Organizzazione di archivi mediante basi di dati. ing. Alfredo Cozzi 1

Organizzazione degli archivi

DATABASE. A cura di Massimiliano Buschi

Progettazione di un Database

MODELLO E/R. Modellazione dei dati

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

TEORIA sulle BASI DI DATI

MODELLO RELAZIONALE. Introduzione

Le Basi di Dati. Le Basi di Dati

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

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

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

DBMS (Data Base Management System)

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Elena Baralis 2013 Politecnico di Torino 1

LA NORMALIZZAZIONE. Introduzione

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

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

Linguaggio SQL: costrutti avanzati

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

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

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

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

Database 3 affitto veicoli. Testo del quesito

Il database management system Access

Vincoli di integrità

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Database. Si ringrazia Marco Bertini per le slides

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione ai database relazionali

Operazioni sui database

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

I Sistemi Informativi

DATABASE RELAZIONALI

Secondo Compitino di Basi di Dati

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Modulo 2 Data Base 2

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

Soluzione dell esercizio del 2 Febbraio 2004

PROGETTAZIONE CONCETTUALE

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Progettaz. e sviluppo Data Base

disponibili nel pacchetto software.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Rappresentazione grafica di entità e attributi

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

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

Archivi e Basi di Dati

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Informatica per le discipline umanistiche 2 lezione 10

Soluzione dell esercizio del 12 Febbraio 2004

Tecnologia di un Database Server (centralizzato) Introduzione generale

Il Modello Relazionale

Progettazione concettuale

Facoltà di Farmacia - Corso di Informatica

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

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

Sistemi Informativi e Basi di Dati

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

A.S. 2010/2011 M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Corso di Informatica (Basi di Dati)

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

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Gestione dei servizi all utenza. 3. Autorizzazioni

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

Basi di dati 9 febbraio 2010 Compito A

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

Basi di Dati e Microsoft Access

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

I database relazionali (Access)

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

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Al giorno d oggi, i sistemi per la gestione di database

database: modello entityrelationship

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

2. Simulazione discreta: approcci alla simulazione

I database. Cosa sono e a cosa servono i Database

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

Base Dati Introduzione

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Informatica (Basi di Dati)

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Транскрипт:

Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire prendendo nell ordine un elemento a1 dal primo insieme A1, a2 dal secondo insieme A2, e così via. Una relazione con n-colonne si indica come una relazione di grado n, il nome con il quale si identifica una colonna si chiama attributo, l insieme dei valori che possono essere assunti da un attributo definiscono il dominio di quell attributo, e il numero che compongono la tabella (indicate con il termine di tuple) si chiama cardinalità della relazione. ing. Alfredo Cozzi 1

Relazione a1 a2 an Grado C a r d i n a l i t à I nomi dei domini sono i nomi delle colonne, i valori che compaiono in una colonna sono omogenei tra loro, cioè appartengono allo stesso dominio. La relazione è quindi una collezione di n-ple, ciascuna delle quali contiene i valori di un numero prefissato di colonne. La relazione rappresenta un entità, ogni n-upla rappresenta un istanza dell entità, le colonne contengono i valori assunti dagli attributi dell entità. 2

La chiave della relazione è un attributo o una combinazione minimale di attributi che identificano univocamente le n.ple all interno della relazione, cioè ogni riga della tabella possiede valori diversi per l attributo (o gli attributi) chiave. Si rappresenta una tabella mediante il suo schema, secondo una scrittura del tipo: Automobili (Modello, Costruttore, Segmento, Porte, Posti) Indicando tra parentesi, dopo il nome della relazione, i nomi degli attributi e sottolineando l attributo chiave. Si usano spesso i termini record e campo al posto di tupla e attributo. Il termine tabella viene usato come sinonimo di relazione. 3

I requisiti fondamentali che caratterizzano il modello relazionale sono: tutte le righe della tabella contengono lo stesso numero di colonne, corrispondenti agli attributi gli attributi rappresentano informazioni elementari (o atomiche), non scomponibili ulteriormente, cioè non ci sono campi di gruppo che contengono per ogni riga un insieme di valori anziché un solo valore. i valori assunti da un campo appartengono al dominio dei valori possibili per quel campo, e quindi sono valori omogenei tra loro, cioè sono dello stesso tipo. in una relazione, ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori dei campi: questo significa che esiste un attributo o una combinazione di attributi che identificano univocamente la n-pla, e che assumono perciò la funzione di chiave primaria della relazione. le n-ple compaiono nella tabella secondo un ordine non prefissato, cioè non è rilevante il criterio con il quale le righe sono sistemate nella tabella. Il modello relazionale fissa una regola di integrità secondo la quale la chiave primaria non può avere valore nullo 4

La derivazione delle relazioni dal modello E/R Dal modello concettuale dei dati è possibile ottenere il modello logico dei dati: in altre parole si può definire la struttura degli archivi adatti per organizzare i dati. Nel caso del modello relazionale le tabelle, che costituiscono il modello logico dei dati, vengono ricavate dal modello E/R mediante alcune semplici regole di derivazione: ogni entità diventa una relazione ogni attributo di un entità diventa un attributo della relazione, cioè il nome di una colonna della tabella ogni attributo della relazione eredita le caratteristiche dell attributo dell entità da cui deriva l identificatore univoco di un entità diventa la chiave primaria della relazione derivata l associazione uno a uno diventa un unica relazione che contiene gli attributi della prima e della seconda entità l associazione uno a molti viene rappresentata aggiungendo, agli attributi dell entità che svolge il ruolo a molti, l identificatore univoco dell entità che svolge il ruolo a uno nell associazione. Questo identificatore, che prende il nome di chiave esterna dell entità associata, è costituito dall insieme di attributi che compongono la chiave della entità a uno dell associazione l associazione molti a molti diventa una nuova relazione composta dagli identificatori univoci delle due entità e degli eventuali attributi dell associazione. La chiave della nuova relazione è formata dall insieme di attributi che compongono le chiavi delle due entità, oltre agli attributi dell associazione necessari a garantire l unicità delle tuple nella relazione ottenuta. 5

Relazioni e chiavi Una chiave primaria è una colonna, o un insieme di colonne, che identificano univocamente una riga nella tabella. Una chiave esterna è una colonna, o un insieme di colonne, i cui valori sono gli stessi della chiave primaria di un altra tabella. 6

Manipolazione dei dati relazionali Le tabelle relazionali possono essere considerate come insiemi, i cui elementi sono costituiti dalle righe delle tabelle stesse. Su di esse possono quindi essere eseguiute le operazioni eseguibili sugli insiemi: 7

Intersezione prodotto 8

Proiezione Selezione 9

Congiunzione (join) 10

join 11

join 12

join 13

join 14

La normalizzazione delle relazioni La normalizzazione consente di creare tabelle ben definite, che facilitano le operazioni di aggiunta, modifica e cancellazione delle informazioni, e che rendono possibili i cambiamenti nella struttura del modello con l evolvere delle esigenze aziendali e degli utenti del database. Nel seguito della trattazione verranno utilizzate le seguenti definizioni: - la chiave o chiave primaria, è l insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella) - la chiave candidata è ogni insieme minimale di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere molte chiavi candidate, ma una sola chiave candidata) - l attributo non-chiave è un campo che non fa parte della chiave primaria. 15

Prima forma normale Una relazione è in prima forma normale quando rispetta i requisiti fondamentali del modello relazionale che sono: - tutte le righe della tabella contengono lo stesso numero di colonne - gli attributi rappresentano informazioni elementari - i valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio - ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne - l ordine con il quale le righe compaiono nella tabella è irrilevante Gli attributi devono essere informazioni non ulteriormente scomponibili (cioè non devono avere sottoattributi) 16

Prima forma normale Per es. nella relazione: Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico) L attributo FamiliariACarico non è elementare, in quanto non è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari). La relazione non è in prima forma normale. La relazione può essere convertita in due tabelle: Dipendenti (Matricola, Nome, Indirizzo) Familiari (CodiceFam, NomeFam, MatricolaDip) Risulta più facile aggiungere eventuali nuovi attributi (es. età, sesso..) 17

Seconda forma normale Una relazione è in seconda forma normale quando è in prima forma normale e tutti i suoi attributi non chiave dipendono dall intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte (formate da più attributi). La relazione Inventario: Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino) non è in seconda forma normale; infatti l attributo IndirizzoMagazzino dipende funzionalmente dall attributo Magazzino, che rappresenta una porzione di chiave. La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria. R1 (Magazzino, IndirizzoMagazzino) R2 (Prodotto, Magazzino, Quantità) 18

Terza forma normale Una relazione è in terza forma normale quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave (viene eliminata la dipendenza transitiva degli attributi dalla chiave). Per es. si consideri la gestione anagrafica di un associazione di studenti di scuole diverse. Studenti (Nome, scuola, telefonoscuola) Il nome è l attributo chiave e il telefono della scuola dipende dalla scuola. Nella relazione è presente un attributo non chiave (telefonoscuola) che dipende da un altro attributo non-chiave (scuola). Si possono avere anomalie nell aggiornamento e inconsistenza dei dati per il fatto che il telefono della scuola è ripetuto per ogni studente appartenente a quella scuola. La normalizzazione in 3FN si ottiene scomponendo la relazione di partenza in due nuove relazioni, nelle quali gli attributi dipendono direttamente dalla chiave. Studenti (Nome, scuola) Istituti (scuola, telefonoscuola) 19

L integrità referenziale L integrità referenziale è un insieme di regole del modello relazionale che garantiscono l integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna; queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica dei dati collegati tra loro. L integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Per es. nel db relazionale che contiene la tabella dei Clienti e la tabella degli Ordini, il codice del cliente della tabella Ordini è associato alla chiave della tabella Clienti. Clienti (Codice, RagioneSociale, Indirizzo) Ordini (NumeroOrdine, DataOrdine, CodiceCliente) Applicare l integrità referenziale al db significa garantire che un valore, presente nella tabella Ordini per la chiave esterna CodiceCliente, abbia un corrispondente valore di Codice in una delle righe della tabella Clienti. Inoltre non si deve consentire la cancellazione di un cliente dalla tabella Clienti se ci sono righe nella tabella Ordini che si riferiscono ad esso. 20

L integrità referenziale Quando viene applicata l integrità referenziale, è necessario osservare le seguenti regole pratiche: - non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria - non è possibile eliminare una n-pla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata - non si può modificare il valore alla chiave nella tabella primaria se ad essa corrispondono righe nella tabella correlata 21

Le transazioni Una transazione consiste in un insieme di operazioni di interrogazione o di modifica del database che devono essere eseguite unitariamente come se fossero un unica operazione Esempi di transazione sono: un operazione di trasferimento di fondi da un conto ad un altro, un prelievo a uno sportello Bancomat, la prenotazione di un volo.. Consideriamo l esempio del trasferimento di fondi dal conto di X al conto di Y. Descriviamo la transazione, il cui completamento è subordinato all esistenza di un adeguata copertura di fondi sul conto X, mediante il seguente codice: 22

Le transazioni Begin_transaction read(saldox) saldox=saldox importo write(saldox) read(saldoy) saldoy=saldoy+importo write(saldoy) if (saldox < fido) then rollback else commit endif End_transaction 23

Le transazioni: rollback commit Dall esame del codice si osserva la presenza di due comandi speciali indicati con rollback e commit. Rollback ha l effetto di annullare tutte le modifiche alla base dati apportate dall inizio della transazione Commit indica la conferma di tutto il lavoro fatto e termina la transazione L importo trasferito deve essere tolto da un conto e aggiunto all altro. Entrambe le operazioni devono essere eseguite per potere affermare di avere concluso il trasferimento e non è tollerabile che venga eseguita una sola delle due operazioni. Le transazioni sono caratterizzate dalle seguenti proprietà: -Atomicicty: una transazione è un entità atomica indivisibile -Consistency: le transazioni non devono violare i vincoli di integrità dei dati -Isolation: gli effetti di una transazione devono essere indipendenti da quello di tutte le altre transazioni (esecuzione concorrente delle transazioni) -Durability: gli effetti di una transazione con esito positivo devono essere memorizzati permanentemente del database. 24

Le transazioni: lock Nel caso di esecuzione concorrente delle transizioni per prevenire anomalie di aggiornamento si usa il lock. Ogni transazione prima di accedere ai dati invia al concorrente della concorrenza una richiesta di lock. Se la richiesta viene esaudita la transizione procede, diversamente si blocca in attesa che il lock le venga concesso. Nella gestione delle transazioni occorre considerare il problema del deadlock (stallo). Accade quando un processo è in attesa di una risorsa che è utilizzata da un altro processo, e quest ultimo richiede una risorsa utilizzata dal primo. Lo stallo è difficile da identificare; una tecnica consiste nell usa del timeout nella concessione dei lock (una transazione può rimanere in attesa di un lock solo per un tempo predefinito; il gestore della concorrenza, se non riesce a concedere il lock la interrompe e la fa ripartire da capo). 25