Eprogram informatica V anno.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

DB -Algebra Relazionale
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
DB - Modello relazionale dei dati
Creazione di archivi tramite Data Base
LA PROGETTAZIONE LOGICA Seconda parte
Progettazione concettuale
Normalizzazione Forme Normali.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Progettazione concettuale
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Biglietti e Ritardi: schema E/R
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
La Normalizzazione. 27 January, slide 2 Le nuove tecnologie Software Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci.
Corso di Informatica (Basi di Dati)
LA PROGETTAZIONE LOGICA
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
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
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Partizionamento/accorpamento di concetti
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
MODELLO LOGICO DEI DATI
Progettare un database
Dottorato di ricerca Nuove Tecnologie e Informazione Territorio – Ambiente Nozioni fondamentali di Basi di Dati Seminario interno.
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
Sistemi di Elaborazione delle Informazioni Mod.I.
La Normalizzazione. 2 May, slide 2 Le nuove tecnologie Software Normalizzazione Normalizzazione è il processo di semplificazione di un data base.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
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.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Il modello relazionale
Eprogram informatica V anno.
Cloud informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Operazioni Relazionali
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
1. CASO BIBLIOTECA ANALISI DEI REQUISITI Si vuole automatizzare la gestione prestiti dei libri di una biblioteca personale. La progettazione deve tener.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Basi di dati - 09Marco Maggini1 Forme normali forme normali  Le forme normali verificano la qualità di uno schema di una base di dati relazionale  Presenza.
Transcript della presentazione:

Eprogram informatica V anno

Basi di dati relazionali

Il modello relazionale Il modello relazionale è stato proposto nel 1970 dal matematico inglese Edgar Codd e grazie alla sua coerenza e usabilità è diventato dagli anni Ottanta quello più utilizzato per la produzione di DBMS. La struttura fondamentale del modello relazionale è la relazione, cioè una tabella bidimensionale costituita da righe e colonne. Il modello relazionale si basa sulla definizione matematica di relazione secondo cui: Dati due insiemi D1 e D2, non necessariamente disgiunti, una relazione R definita su D1 e D2 è un qualunque sottoinsieme del prodotto cartesiano D1 X D2. 3

Le tabelle Le tabelle rappresentano le entità che si ritengono essere interessanti nel database: gli attributi delle entità rappresentano i campi delle relazioni, cioè le colonne delle tabelle, mentre per ennuple (N-uple) o tuple si intendono le occorrenze delle relazioni (cioè le righe, o record, delle tabelle). 4

Una precisazione… Potrebbe nascere confusione tra relazione intesa come “insieme di dati nel modello relazionale” e relazione intesa come “associazione tra entità”. Nelle prossime diapositive utilizzeremo il termine tabella invece del termine relazione, ricordando che sono sinonimi, così come lo sono i termini “campo” e “attributo”, e i termini “record”, “occorrenza” ed “ennupla”. 5

L’identificazione dei record, chiavi candidate Per identificare i record all’interno della tabella si fa uso di campi chiave o di identificatori. Un identificatore è un insieme di uno o più attributi che identifica univocamente una data occorrenza. Al posto di identificatore si parla a volte di chiave candidata e in una tabella ne possono esistere più di una. Si osservi che ALMENO una chiave candidata esiste SEMPRE poiché al limite può essere costituita dall’insieme di tutti gli attributi (non possono infatti esistere record uguali, cioè le righe della tabella devono essere tutte diverse). 6

L’identificazione dei record, chiave primaria Tra tutte le chiavi candidate (gli identificatori) viene scelta una chiave primaria per la memorizzazione e per effettuare i collegamenti con le altre relazioni. Normalmente ne viene scelta una tra quelle con il minor numero di attributi. Gli attributi della chiave primaria NON possono assumere il valore null in quanto non permetterebbero più di identificare una particolare tupla in una relazione. 7

L’identificazione dei record, chiave esterna Una chiave esterna è un attributo (o insieme di attributi) che non è chiave nella tabella, ma lo è in un’altra e serve per realizzare il collegamento logico tra le entità. 8

L’identificazione dei record, dominio Due tabelle possono essere messe in relazione SOLO attraverso l’uguaglianza dei valori di un certo campo. Due valori sono confrontabili solo se appartengono allo stesso dominio. Per dominio si intende l’insieme dei valori su cui è definito un certo attributo, cioè l’insieme di tutti i valori elementari che un attributo può assumere. Il concetto di dominio è fondamentale perchè sono proprio gli attributi di diverse relazioni definite sullo stesso dominio che permettono di realizzare le associazioni tra i diversi tipi di entità. In particolare questo è possibile tramite l’uguaglianza tra chiave primaria di una tabella e chiave esterna di un’altra. 9

Precisazione… Se il numero di attributi di una chiave esterna (o meglio la sua dimensione) è elevato, spesso è conveniente introdurre un nuovo campo nella tabella di partenza (per esempio un campo Codice) facendolo diventare la nuova chiave. 10

Altre caratteristiche Altre caratteristiche risultano utili per definire le metriche (ossia esprimere le misure quantitative) sulle relazioni presenti in un database: per grado di una relazione si intende il numero di campi delle tabelle per cardinalità si intende il numero delle occorrenze presenti in un dato istante. - nelle tabelle non conta l’ordinamento delle N-ple (record), ma le N-ple non si possono ripetere e sono identificate univocamente dalla chiave. 11

Ristrutturazione dello schema E/R Prima di procedere alla traduzione dello schema E/R in uno schema logico relazionale è necessario effettuare una ristrutturazione dello schema E/R allo scopo di semplificarne la traduzione e ottimizzare le prestazioni. Uno schema E/R ristrutturato è meno concettuale perché cominciamo a tenere conto del modello logico adottato. Nell’attività di ristrutturazione è necessario eliminare le generalizzazioni ed effettuare un partizionamento o accorpamento di entità e relazioni. 12

Eliminazione delle gerarchie Nello schema relazionale le entità e le associazioni sono direttamente rappresentabili, non è così per le generalizzazioni. È quindi necessario eliminare le gerarchie sostituendole con entità e associazioni. Per eliminare le gerarchie è possibile procedere: accorpando le figlie della generalizzazione nel padre: gli attributi delle entità figlie vengono fatte migrare nell’entità padre e diventano attributi opzionali accorpando il padre della generalizzazione nelle figlie: nelle entità figlie vengono riportati gli attributi presenti nell’entità padre introducendo ridondanza di dati - sostituzione della generalizzazione con associazioni - sono anche possibili soluzioni ibride 13

Partizionamento e accorpamento di entità e relazioni In alcuni casi, prendendo in considerazione le richieste fatte alla base di dati dalle applicazioni è conveniente accorpare delle entità che contengono informazioni che vengono richieste insieme come nell’esempio di figura a, l’entità zona ha solo gli attributi nome e codice zona ed è collegata con un’associazione 1:1 con banda, possiamo accorparla nell’entità banda aggiungendo l’attributo nome zona figura b. 14

Partizionamento verticale Supponiamo di avere la relazione Impiegato come mostrato in figura se le nostre applicazioni accedono separatamente ai dati anagrafici o a quelli lavorativi di un impiegato conviene separarli perchè se i record sono più piccoli, in una sola lettura dal disco (operazione costosa) riesco a portare più record in memoria. 15

Partizionamento orizzontale Supponiamo di avere lo schema rappresentato in figura e che la nostra applicazione acceda separatamente alla composizione attuale della squadra rispetto a quelle degli anni passati, separando i due tipi di collegamento lo schema risulta più chiaro e le operazioni più efficienti. 16

Dallo schema E/R allo schema logico dei dati Dallo schema E/R ristrutturato si ottiene lo schema logico dei dati, applicando alcune semplici regole di derivazione sulle entità e sulle relazioni individuate nello schema E/R. A differenza dello schema concettuale, quello logico dipende strettamente dal modello di rappresentazione dei dati utilizzato dal DBMS (gerarchico, reticolare o relazionale). 17

Rappresentazione delle entità OGNI entità dello schema E/R rappresenta una tabella, OGNI istanza di entità rappresenta un record della tabella e ogni attributo diventa un campo del record. La chiave dell’entità identifica la chiave d’accesso per la tabella. 18

Rappresentazione dettagliata La rappresentazione dettagliata dell’entità spesso avviene mediante una tabella descrittiva nella quale sono evidenziati gli attributi e le loro caratteristiche (nome, descrizione, tipo, dimensione), come illustrato in figura. 19

Rappresentazione delle associazioni La traduzione dallo schema concettuale a quello logico delle associazioni risulta essere leggermente più complessa. Si effettueranno scelte diverse in base al tipo di associazione e al previsto uso che se ne potrà fare. 20

Rappresentazione associazioni 1:1 Le associazioni uno a uno (1:1) si risolvono facendo migrare la chiave di una delle due tabelle create nell’altra, in base alle modalità con cui si pensa verranno utilizzate. Avremo: 21

Rappresentazione associazione 1:1 opzionale Nel caso in cui l’associazione 1:1 è di tipo opzionale come in figura, la traduzione ottimale è quella di far migrare la chiave primaria dall’entità obbligatoria a quella opzionale (da persona a patente) in modo da non avere attributi con valore nullo. 22

Rappresentazione associazione 1:N Nelle associazioni uno a molti (1:N) la chiave primaria della tabella di partenza dell’associazione (quella con caratteristica 1) diventa chiave esterna (foreign key) dell’entità di arrivo associata, cioè l’attributo che è identificatore univoco diventa un campo nella tabella dell’entità di arrivo. Dal modello concettuale vengono derivate le tabelle che rappresentano le entità e l’associazione uno a molti viene tradotta aggiungendo agli attributi dell’entità “a molti” la chiave dell’entità “a uno”. 23

Rappresentazione associazione N:N Le associazioni molti a molti (N:N) si risolvono creando una nuova tabella (in aggiunta alle tabelle derivate dalle due entità) in cui vengono inserite le chiavi delle due entità e gli eventuali attributi dell’associazione. Dal modello concettuale vengono derivate le tabelle che rappresentano le entità e l’associazione molti a molti viene tradotta introducendo una terza tabella contenente le chiavi delle due entità e gli eventuali attributi dell’associazione. 24

Rappresentazione casi particolari Le regole di traduzione enunciate vengono utilizzate anche per i casi particolari come le associazioni ricorsive (prima figura) ed entità collegate da associazioni diverse (seconda figura). 25

Operatori relazionali Gli operatori relazionali agiscono su una relazione per ottenere una nuova relazione estraendo da una tabella una sottotabella, oppure combinando tra loro due o più tabelle e generando così nuove relazioni. Nel primo caso si parla di operatori unari (selezione e proiezione) mentre nel secondo si ha generalmente un operatore binario (congiunzione). 26

Select Selezione (select): applicata a una tabella fornisce come risultato l’insieme delle occorrenze che soddisfano la condizione specificata. Il risultato è una nuova tabella che contiene TUTTE le colonne della tabella di partenza (stesso grado) ma ha cardinalità (numero di righe) minore o uguale. 27

Project Proiezione (project): applicata a una tabella fornisce come risultato una nuova tabella che contiene tutte le righe della tabella di partenza (stessa cardinalità) ma con le sole colonne indicate (grado inferiore). 28

Join Congiunzione (join): si effettua tra due tabelle che hanno un attributo in comune (cioè definito sullo stesso dominio). È un sottoinsieme del prodotto cartesiano a cui è stata applicata una clausola di selezione sull’uguaglianza dell’attributo comune. Il risultato di una join è una tabella che ha grado P + Q – 1: P indica il grado della prima tabella, Q quello della seconda mentre l’attributo comune usato per la join compare una sola volta. La congiunzione qui descritta è detta equi join poiché è stata formulata una condizione di uguaglianza sull’elemento comune. Con la equi join (che viene anche chiamata inner join) nella tabella risultante vengono inserite le righe delle due tabelle che trovano corrispondenza. 29

Outer join Oltre alla equi join è possibile avere altri tipi di join: • Outer join: è un’operazione di congiunzione in cui nella tabella risultante compaiono non solo le righe che trovano corrispondenza, ma tutte le righe delle tabelle di partenza. Le tuple che non hanno controparte vengono completate con valori Null. 30

Left join Oltre alla equi join è possibile avere altri tipi di join: • Left join: nella tabella risultante compaiono tutte le righe della prima tabella e quelle della seconda a esse correlate. 31

Right join Oltre alla equi join è possibile avere altri tipi di join: • Right join: nella tabella risultante compaiono tutte le righe della seconda tabella e quelle della prima a esse correlate. 32

Self join Un altro tipo di join è la self join che effettua la join di una tabella su se stessa. Esaminando la tabella si vogliono conoscere le coppie delle persone sposate. Per risolvere il problema bisogna congiungere la tabella Persona con se stessa perché il codice fiscale del coniuge (Cf_Coniuge) è anche il codice fiscale (Cod_Fisc) di una persona. Per non creare ambiguità l’operazione di join è effettuata sulla tabella Persona e sulla tabella T1 che è un alias della tabella Persona. 33

Algebra relazionale Il modello relazionale si basa su: fondamenti matematici operazioni 34

Le tabelle relazionali Le operazioni da compiere sulle tabelle sono basate sull’algebra relazionale. Le operazioni di reperimento sono orientate agli insiemi di record: a ogni richiesta viene fornito l’insieme delle occorrenze che soddisfano certe condizioni, e non solo il primo record. Il risultato di ogni operazione è un insieme di record, quindi una nuova tabella. 35

Operazioni su tabelle relazionali Alcune operazioni si basano sui concetti dell’insiemistica: unione, intersezione, differenza, altre sono più specifiche. Alcune operano su una sola tabella di partenza: selezione, proiezione. Altre ancora utilizzano più tabelle: prodotto cartesiano, congiunzione. 36

Operazioni insiemistiche: unione L’unione può avvenire tra due tabelle compatibili (cioè con lo stesso numero di campi aventi lo stesso dominio). Il risultato dell’unione è l’insieme di tutte le occorrenze delle due tabelle esclusi i duplicati: 37

Operazioni insiemistiche: intersezione Anche con l’intersezione l’operazione può essere effettuata solo su tabelle compatibili. Il risultato dell’intersezione è una tabella che contiene SOLO le occorrenze che sono presenti in entrambe le tabelle: 38

Operazioni insiemistiche: differenza Anche per la differenza l’operazione può essere effettuata solo su tabelle compatibili. Il risultato della differenza è una tabella che contiene le occorrenze che sono presenti solo nella prima tabella ma non nella seconda: 39

Operazioni insiemistiche: Prodotto cartesiano Il prodotto cartesiano (natural join), applicato a due tabelle, restituisce una nuova tabella le cui righe sono ottenute concatenando ogni riga della prima tabella con tutte quelle della seconda tabella. In genere è un insieme ampio e non tutte le combinazioni sono significative. 40

Selezione L’operazione di selezione si rappresenta con la lettera greca sigma indicando a pedice la condizione di selezione. L’espressione σp T indica la selezione delle righe della tabella T che rispecchiano il predicato P. σetà < 18 Studente indica la selezione di tutti gli studenti minorenni 41

Proiezione L’operazione di proiezione si rappresenta con la lettera greca pi indicando a pedice la lista degli attributi selezionati. L’espressione πL T indica la proiezione delle colonne della tabella T specificate nella lista L. πnome,cognome Studente indica la proiezione dei campi nome e cognome della tabella Studente 42

Congiunzione L’operazione di congiunzione si rappresenta con il simbolo: L’espressione T1pk T2fk indica la congiunzione della tabella T1 con la tabella T2 sugli attributi PK di T1 e FK di T2. Proprietariocf Autocfp indica la congiunzione della tabella proprietario su CF e la tabella Auto su CFP. 43

Anomalie della progettazione concettuale Lo schema, definito dalla progettazione concettuale, deve essere tradotto in uno schema migliore, cioè depurato da gran parte delle anomalie di gestione che si possono verificare. Si distinguono tre tipi di anomalia: • anomalia di inserimento: se nell’inserire un nuovo record in una tabella si è costretti a inserire informazioni già presenti nel DB; • anomalia di cancellazione: se nel cancellare un record si è costretti a cancellare informazioni che possono essere ancora utili nel DB; • anomalia di aggiornamento: se dovendo aggiornare un record si è costretti ad aggiornarne molti altri. 44

Normalizzazione e forme normali La normalizzazione è l’insieme di criteri di progettazione di un database relazionale diretto a prevenire l’insorgere di tali anomalie. Sono stati definiti diversi gradi di normalizzazione a cui si fanno corrispondere le forme normali, molto impiegate nel passato per la progettazione delle basi di dati relazionali. Normalmente si ritiene accettabile uno schema relazionale in terza forma normale, ultimamente però ci si è resi conto che la rigorosità e la purezza matematica di una relazione non corrispondono necessariamente a una base di dati efficiente e si sono quindi sviluppati altri metodi di progettazione. Il concetto di normalizzazione è ugualmente importante, poiché una tabella non può essere considerata relazionale se non è normalizzata, cioè in prima forma normale. 45

1FN Una relazione si dice normalizzata o in prima forma normale (1FN) se TUTTI i suoi attributi hanno un dominio semplice. Non sono ammessi gruppi e ripetizioni. La 1FN implica che ogni informazione deve essere atomica, cioè un campo deve contenere una e una sola informazione. I campi devono contenere SEMPRE un tipo di dato “semplice” (stringa, numero, binario ecc.) e mai aggregazioni (insieme, vettore). 46

2FN Un relazione si dice in seconda forma normale (2FN) se è in 1FN e tutti i suoi attributi che non appartengono alla chiave dipendono funzionalmente e completamente dall’intera chiave. Non possono esistere attributi che dipendono solamente da una parte della chiave. La seconda forma normale (2FN) si applica quindi alle tabelle che hanno la chiave primaria composta da più attributi. 47

3FN Una relazione si dice in terza forma normale (3FN) se è in 2FN e tutti i suoi attributi che NON appartengono alla chiave dipendono direttamente dalla chiave. Non possono esistere attributi non chiave che dipendono funzionalmente da altri attributi non chiave. 48

3FN Boyce-Codd Si dice che una relazione è in BCNF se è in prima forma normale e ogni determinante è una chiave candidata, cioè ogni attributo dal quale dipendono altri attributi può essere una chiave. 49

Vincoli di integrità Un vincolo di integrità è una proprietà che deve essere soddisfatta da tutte le istanze corrette della base di dati. Esistono diversi tipi di vincoli: intra-relazionali, definiti sugli attributi di una sola relazione (esempi: vincoli di unicità, vincoli di dominio e di tupla); inter-relazionali, definiti su più relazioni contemporaneamente (esempio: vincoli d’integrità referenziale). 50