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.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

La modellizzazione dei dati
Informatica II – Basi di Dati (08/09) – Parte 1
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Creazione di archivi tramite Data Base
Normalizzazione Forme Normali.
Algebra relazionale Presentazione 12.1
DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose quantità di informazioni di un’ organizzazione, in modo: Semplice;
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
Unità didattica 2: Basi di dati MODULO DIDATTICO: I DATABASE
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
Operazioni Relazionali
Sistemi di Elaborazione delle Informazioni Modello Relazionale
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Archivio Necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
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.
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
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.
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 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.
INFORMATICA Corso Base Modulo G: I DataBase  Access.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
MODELLO LOGICO DEI DATI
Progettare un database
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.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
MODELLO E/R.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Microsoft Access Query (II), filtri.
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Modellazione dei Dati Fabio Scanu a.s. 2012/2013.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
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 di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Sistemi di Elaborazione delle Informazioni
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.
Eprogram informatica V anno.
MODELLO E/R.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Operazioni Relazionali
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
1. CASO BIBLIOTECA ANALISI DEI REQUISITI Si vuole automatizzare la gestione prestiti dei libri di una biblioteca personale. La progettazione deve tener.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
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.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
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.
La normalizzazione delle relazioni
Transcript della presentazione:

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 prendendo nell’ordine un elemento a1 dal primo insieme A1, a2 dal secondo insieme A2, e così via. Grado= n° di colonne della relazione; Attributo= nome della colonna; Dominio= insieme dei valori assunti da un attributo; Cardinalità= n° di righe (tuple) che compongono la relazione. Somiglianza con la struttura di un file: record= tupla; campo= attributo; tabella= relazione. Rappresentazione: Automobili (Modello, Costruttore, Segmento, Prezzo, Acquirente) La chiave primaria è sottolineata, la chiave esterna è evidenziata in corsivo! Nel passaggio dall’ Entità (Modello E/R) alla Relazione il nome è convertito al plurale!

CHIAVI ESTERNE E COMPOSTE Una chiave composta è una chiave primaria formata da due o più attributi. Una chiave esterna è un attributo che completa una relazione attraverso l’identificazione dell’ entità padre. Fornisce un metodo per mantenere l’integrità referenziale dei dati e per navigare tra le diverse istanze di un’ entità. Utilizza la notazione (fk) iniziali di «foreign key». Ogni relazione «1 a molti» nel modello deve essere supportata da una chiave esterna. Città ID_Città(pk) id_Nazione(fk) id_Continente(fk) Continente ID_Continente(pk) appartiene Nazione ID_Nazione(pk) forma

MODELLO RELAZIONALE Requisiti: Tutte le righe della tabella hanno lo stesso numero di colonne. Gli attributi rappresentano informazioni elementari, non scomponibili ulteriormente. I valori assunti da un campo sono omogenei tra loro, cioè dello stesso tipo. In una relazione ogni riga è diversa dall’altra per la funzione della chiave primaria; essa non può avere valore nullo o contenere nessun valore. Le n-uple compaiono nella tabella secondo un ordine non prefissato. Regole di derivazione delle relazioni dal modello E/R: Entità  Relazione; Attributo dell’entità  Attributo della relazione; Identificatore  Chiave primaria; Associazione 1:1 diventa un’ unica relazione che contiene gli attributi della prima e della seconda entità. Cittadino Codice Fiscale Corrisponde --> AnagrafiTributarie (CodiceFiscale, Cognome, Nome, DataNascita, LuogoNascita)

MODELLO RELAZIONALE Regole di derivazione Associazione 1:N viene rappresentata aggiungendo, agli attributi dell’entità che svolge il ruolo «a molti», l’identificatore univoco dell’entità che svolge il ruolo «a uno», che viene identificato come chiave esterna, inoltre sono aggiunti gli eventuali attributi dell’associazione. Persona CodiceFiscale(pk) Nome Cognome Indirizzo Automobile Targa(pk) Modello Produttore Cilindrata PrezzoListino DataAcquisto PrezzoAcquisto Acquistare  Persone (CodiceFiscale, Nome, Cognome, Indirizzo) Automobili (Targa, Modello, Produttore, Cilindrata, PrezzoListino, CodiceFiscale, DataAcquisto, PrezzoAcquisto)

MODELLO RELAZIONALE Regole di derivazione Associazione N:N diventa una nuova relazione (in aggiunta alle relazioni derivate dalle entità) composta dagli identificatori univoci delle due entità e dagli eventuali attributi dell’associazione. La chiave della nuova relazione è formata dall’insieme degli attributi chiave delle due entità più altri attributi dell’associazione necessari a garantire l’unicità delle tuple nella relazione ottenuta. Studente Matricola(pk) Nome Cognome Indirizzo Materia CodiceMateria(pk) NomeMateria NumeroOre Data Voto  Valutare Studenti (Matricola, Nome, Cognome, Indirizzo) Materie (CodiceMateria, NomeMateria, NumeroOre) Valutazioni (Matricola, CodiceMateria, Data, Voto) La chiave primaria di Valutazioni è formata da: Matricola, CodiceMateria, Data.

OPERAZIONI RELAZIONALI Agenti CodiceAgente NomeAgente Codice Zona Bia Bianchi Nord Ner Neri Centro Ros Rossi Sud Ver Verdi Isole Clienti CodiceCliente RagioneSociale Provincia CodiceAgente Lami Lamiere per Auto TO Bia Levi Levigatoria Toscana FI Ner Luci Lucidatura Metalli RM Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rame Rame & Metalli PA Ver Vite Viteria Lombarda MI

OPERAZIONI RELAZIONALI SELEZIONE: genera una nuova relazione costituita solo dalle n-uple della relazione di partenza che soddisfano a una determinata condizione. Il grado della nuova relazione è pari a quello della relazione di partenza, mentre la cardinalità è minore o uguale. σPT indica un’operazione su T che estrae le sole righe per le quali P è vera. Esempio. σPClienti Selezione di Clienti per Provincia= ‘MI’ CodiceCliente RagioneSociale Provincia CodiceAgente Vite Viteria Lombarda MI Bia

OPERAZIONI RELAZIONALI PROIEZIONE: genera una nuova relazione estraendo dalla tabella iniziale solo alcune colonne. Il grado della nuova relazione è minore o uguale a quello della relazione di partenza, mentre la cardinalità è uguale (oppure minore). ∏L T La lista L elenca le colonne da estrarre da T. Esempio. ∏L Clienti Proiezione di Clienti su CodiceCliente, RagioneSociale CodiceCliente RagioneSociale Lami Lamiere per Auto Levi Levigatoria Toscana Luci Lucidatura Metalli Meta Metallurgica Emiliana Metb Metalli Rari Rame Rame & Metalli Vite Viteria Lombarda

OPERAZIONI RELAZIONALI CONGIUNZIONE (Join): tra due tabelle R e S combina due relazioni aventi uno o più attributi in comune, generando una nuova relazione le cui righe contengono gli attributi di R e S e abbinando le sole righe di R e S con valori identici negli attributi comuni. Se i gradi di partenza sono N1 e N2 e le due tabelle hanno K attributi in comune allora il grado della nuova relazione sarà N1 + N2 – K. La cardinalità non è prevedibile a priori. Esempio. RB,C SB,C R S R JOIN S A B C 1 2 3 6 7 8 9 5 B C D 2 3 4 5 12 7 8 10 A B C D 1 2 3 4 5 6 7 8 10 9 Join naturale tra tabelle R e S, tale che vale la proprietà: R.B = S.B and R.C = S.C

Metallurgica Emiliana JOIN TRA TABELLE RA SA Congiunzione di Clienti con Agenti su CodiceAgente Clienti Join Agenti CodiceCliente RagioneSociale Provincia CodiceAgente NomeAgente CodiceZona Lami Lamiere per Auto TO Bia Bianchi Nord Levi Levigatoria Toscana FI Ner Neri Centro Luci Lucidatura Metalli RM Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rossi Sud Rame Rame & Metalli PA Ver Verdi Isole Vite Viteria Lombarda MI L’ equi-join permette di congiungere tabelle con valori uguali, ma nomi diversi, relativamente agli attributi. Agenti (CodiceAgente, NomeAgente, CodiceZona) Clienti (CodiceCliente, RagioneSociale, Provincia, AgenteDiZona) E’ possibile la join tra le due tabelle perchè CodiceAgente e AgenteDiZona sono attributi comuni anche se hanno nomi diversi !

JOIN TRA TABELLE Join esterno: è una congiunzione che restituisce le righe dell’una e dell’altra tabella anche se non sono presenti valori uguali per gli attributi comuni. Comprende: Left Join, Right Join e Full Join. R S R Left Join S A B C D 1 2 3 4 5 6 7 8 10 9 A B C 1 2 3 6 7 8 9 5 B C D 2 3 4 5 12 7 8 10 R Right Join S R Full Join S A B C D 1 2 3 4 5 12 6 7 8 10 9 A B C D 1 2 3 4 5 12 6 7 8 10 9

JOIN TRA TABELLE Self Join: vengono combinate righe di una tabella con le righe della stessa tabella quando sono presenti valori corrispondenti per attributi, cioè due attributi con lo stesso dominio. Impiegati Codice Nome Stipendio Dir 1 Bianchi 26000 4 2 Neri 24000 3 Rossi 28000 Leoni 40000 5 Gatti 45000 Codice Nome Stipendio Dir NomeDir StipendioDir DirDelDir 1 Bianchi 26000 4 Leoni 40000 5 2 Neri 24000 3 Rossi 28000 Gatti 45000

OPERAZIONI RELAZIONALI Le operazioni di selezione e proiezione hanno come operando una sola tabella, mentre la congiunzione opera su due o più tabelle. Gli operatori descritti possono essere combinati ed applicati in successione alle tabelle. Esempio. Per ottenere l’elenco delle ragioni sociali e degli agenti per i clienti di Roma, occorre applicare la seguente sequenza di operatori: OPERAZIONI RELAZIONALI σP Clienti Temp1 = Selezione di Clienti per Provincia=‘RM’ Temp1A AgentiA Temp2 = Congiunzione di Temp1 e Agenti su CodiceAgente ∏L Temp2 Proiezione di Temp2 su RagioneSociale, NomeAgente Theta Join tra due relazioni R e S è la relazione ottenuta componendo tutte le righe di R con tutte le righe di S e includendo nella congiunzione le sole righe che soddisfano a una determinata condizione. R P S (equivale al prodotto cartesiano R x S seguito da una selezione) Esempio: Rep1 e Rep2 rappresentano i dipendenti di 2 reparti con i rispettivi stipendi. Condizione: lo stipendio dei dipendenti del primo reparto deve essere maggiore dello stipendio di quelli del secondo reparto.

OPERAZIONI RELAZIONALI (slide di collegamento) Agenti CodiceAgente NomeAgente Codice Zona Bia Bianchi Nord Ner Neri Centro Ros Rossi Sud Ver Verdi Isole Clienti CodiceCliente RagioneSociale Provincia CodiceAgente Lami Lamiere per Auto TO Bia Levi Levigatoria Toscana FI Ner Luci Lucidatura Metalli RM Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rame Rame & Metalli PA Ver Vite Viteria Lombarda MI

NORMALIZZAZIONE DELLE RELAZIONI Inventario (NumeroInventario, Prodotto, Magazzino, Qtà, IndirizzoMagazzino) Possiamo dire che: NumeroInventario è una chiave candidata; Prodotto non è una chiave candidata e ugualmente Magazzino; L’insieme {Prodotto, Magazzino} è una chiave candidata; L’insieme {Prodotto, Magazzino, Qtà} non è chiave candidata perché contiene il sottoinsieme {Prodotto, Magazzino} chiave candidata. Si ha dipendenza funzionale tra attributi quando il valore di un insieme di attributi A determina un singolo valore dell’attributo B. A (determinante) B NumeroInventario è determinante per ogni attributo di Inventario {Prodotto, Magazzino} è determinante per ogni attributo di Inventario Magazzino è determinante per IndirizzoMagazzino. Si ha dipendenza transitiva tra attributi quando un attributo A determina B e B determina C; si dice che C dipende transitivamente da A.

NORMALIZZAZIONE DELLE RELAZIONI Una relazione è in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale. Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico) FamiliariACarico non è elementare, in quanto è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari) NO 1FN Dipendenti (Matricola, Nome, Indirizzo) Familiari (CodiceFam, NomeFam, MatricolaDip)

NORMALIZZAZIONE DELLE RELAZIONI Una relazione è in seconda forma normale (2FN) 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. Inventario (Prodotto, Magazzino, Qtà, IndirizzoMagazzino) IndirizzoMagazzino dipende funzionalmente da Magazzino, che rappresenta una porzione di chiave ! NO Essendo Magazzino  IndirizzoMagazzino R1 (Magazzino, IndirizzoMagazzino) R2 (Prodotto, Magazzino, Qtà) 2FN

NORMALIZZAZIONE DELLE RELAZIONI Una relazione è in terza forma normale (3FN) quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè elimina la dipendenza transitiva degli attributi dalla chiave. Studenti (Nome, Scuola, TelefonoScuola) Nome  Scuola  TelefonoScuola Nome  TelefonoScuola attraverso l’attributo non-chiave Scuola ! NO La normalizzazione viene eseguita con lo stesso algoritmo descritto per 2FN. Studenti (Nome, Scuola) Istituti (Scuola, TelefonoScuola) 3FN La normalizzazione permette di rispettare l’integrità e la consistenza dei dati.

REGOLE DI INTEGRITA’ Integrità significa garantire che le operazioni effettuate sul database da utenti autorizzati non provochino la perdita di consistenza (significatività) dei dati. Il modello relazionale fissa due regole di integrità dei dati. Integrità sull’ entità: è una regola di integrità sui dati secondo la quale la chiave primaria non può avere valore nullo. Integrità referenziale: garantiscono l’ integrità dei dati quando si hanno relazioni associate tra di loro attraverso la chiave esterna. Quando viene applicata, è necessario osservare le seguenti regole: 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-upla 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.