Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.

Slides:



Advertisements
Presentazioni simili
Punto 1 Nel progettare il database previsto dal punto 1, si è resa necessaria lindividuazione di 3 entità:AMICI, LIBRI e PRESTITI. AMICI è una entità che.
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
Calcolo Relazionale.
DB - Modello relazionale dei dati
IL MODELLO ENTITA’ - RELAZIONE I costruttori di base
Vincoli sulle basi di dati
DOCUMENTAZIONE DI SCHEMI E/R
1 Progettazione Concettuale: Entity/Relationships (E/R) Esigenza di strumenti efficaci, chiari e sintetici per rappresentare i dati di interesse e le loro.
1 Progettazione Concettuale: Entity/Relationships (E/R) Esigenza di strumenti efficaci, chiari e sintetici per rappresentare i dati di interesse e le loro.
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
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
1 Microsoft Access 1. 2 Contenuto Dovete progettare e realizzare, usando Access, una base di dati che riguarda gli esami sostenuti dagli studenti iscritti.
L’uso dei database in azienda
ENTITÀ - RELAZIONE MODELLO ENTITÀ E ATTRIBUTI DOMINI RELAZIONI
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL Per la modifica di basi di dati
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
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.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Corso base Lorenzo Braidi Formazione e consulenza informatica
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Progettazione di un Data Base
1.Progettare il seguente DataBase in relazione ai due esempi presenti in piattaforma, Modulo 4, esempi 1 e 2: Considerare le informazioni per la gestione.
ROCCANOVA DONATO ECONOMIA E MANAGEMENT A.A. 2010/ Progettare il seguente DataBase in relazione ai due esempi presenti in piattaforma, Modulo.
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.
Progettare un database
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Informatica Introduzione alle basi di dati Lezione 6 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Microsoft Access Query (II), filtri.
Secondo Compito:Progettazione di un database Pinto Vincenzo.
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare.
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 di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Metodologie e modelli per il progetto. 2 Introduzione alla progettazione Il problema: progettare una base di base di dati a partire dai suoi requisiti.
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
Progettazione database a cura di Roberta Mancini – matr CdLM in Marketing.
Cloud informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
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.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
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.
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni tupla. Non sempre questo è possibile. Es. Persone ( Cognome, Nome, Indirizzo, Telefono ) Potrebbe esserci una persona che non ha telefono, o di cui non conosciamo lindirizzo. Oppure: FranklinRooseveltDelano NomeCognomeSecondoNome WinstonChurchill CharlesDe Gaulle JosipStalin

Informazione incompleta: soluzioni? non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, 99,...): –potrebbero non esistere valori non utilizzati –valori non utilizzati potrebbero diventare significativi –in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del significato di questi valori

Informazione incompleta Nel modello relazionale è definito un valore convenzionale, detto valore nullo, che indica la non disponibilità dellinformazione. Il valore nullo può rappresentare 3 tipi di informazione: – sconosciuta – inesistente – indeterminata (nei DBMS disponibili si considera in genere questo caso)

Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono assumere valori in un certo range Alcuni attributi devono essere diversi in ogni tupla della stessa relazione Es. valori dellattributo Matricola in una relazione del tipo Studenti( Matricola, Cognome, Nome, DataNascita )

Vincoli di Integrità Alcuni valori possono essere incompatibili con altri allinterno della stessa relazione Es. data la relazione Esami( Matricola, Voto, Lode, CodCorso ) –una stessa coppia Matricola,Corso può apparire una sola volta –Il valore Vero per lattributo Lode è corretto solo se Voto=30 Alcuni valori possono essere incompatibili con i valori di unaltra relazione Es. Data la relazione Esami e la relazione Corsi( CodCorso, Titolo, Docente ) ogni valore di CodCorso in Esami deve essere un valore esistente di CodCorso in Corsi

Vincoli di Integrità Sono condizioni, sotto forma di predicati logici, che sono inserite nella base di dati per garantirne la consistenza. Ogni istanza della base di dati deve soddisfare i vincoli di integrità (il predicato deve assumere valore vero ). Una istanza che soddisfi tutti i vincoli è detta corretta (o lecita o ammissibile)

Vincoli di Integrità Possono essere di vario tipo: Intrarelazionale se coinvolge attributi della stessa relazione – Vincoli di tupla possono essere valutati su ciascuna tupla indipendentemente dalle altre Vincoli di dominio sono definiti su singoli valori Interrelazionale se coinvolge più relazioni

Vincoli di tupla Possono essere definiti attraverso operatori booleani Es. ( Voto >= 18 ) AND ( Voto <= 30 ) ( NOT ( lode=Vero )) OR ( Voto=30 ) oppure, data la relazione Pagamenti( Data, Importo, Ritenute, Netto ) Netto = Importo - Ritenute

Identificazione delle tuple –non ci sono due tuple con lo stesso valore sullattributo Matricola –non ci sono due tuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78

Chiavi Una chiave è un insieme minimale di attributi utilizzato per identificare univocamente le tuple di una relazione. Formalmente: Un insieme di attributi K è superchiave per una relazione r se r non contiene due tuple t 1 e t 2 tali che t 1 [K] = t 2 [K] Un insieme di attributi K è chiave per r se è superchiave minimale, cioè se non esiste unaltra superchiave K che sia sottoinsieme di K

Una chiave Matricola è una chiave: –è superchiave –contiene un solo attributo e quindi è minimale Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78

Chiavi Una chiave è tale se soddisfa la definizione per tutte le possibili tuple appartenenti alla relazione, e non solo per quelle che effettivamente appaiono come istanze della relazione stessa. Quindi la chiave è legata allo schema della relazione. Ogni relazione, per definizione, possiede una chiave. Infatti linsieme X su cui è definita è sicuramente superchiave.

Chiavi La presenza di valori nulli in una chiave può creare può vanificare la proprietà di unicità delle tuple identificate da una certa chiave. Si impone quindi che almeno una chiave non contenga valori nulli. Tale chiave è detta chiave primaria. Di solito la chiave primaria è sottolineata nello schema di una relazione. Es. Studenti( Matricola, Cognome, Nome, Nascita, Corso )

Vincoli di Integrità Referenziale In alcuni casi (corrispondenze fra relazioni) è necessario che i valori degli attributi di una relazione R 1 si possano trovare anche in attributi corrispondenti di R 2. Un vincolo di integrità referenziale (o foreign key) fra un insieme di attributi X di R 1 e unaltra relazione R 2 è soddisfatto se i valori su X di ciascuna tupla di R 1 compaiono come valori della chiave (primaria) di R 2. Non tutti i DBMS consentono di definire una chiave come primaria, in presenza di più chiavi. Quindi sarà necessario esprimere il vincolo specificando per esteso gli attributi delluna e dellaltra relazione collegati da tale vincolo.

Algebra Relazionale Linguaggio procedurale, in cui le operazioni vengono descritte descrivendo la procedura per ottenere la soluzione. Operatori: unione intersezione differenza derivati dalla teoria degli insiemi ridenominazione selezione proiezione specifici dellalgebra relazionale join che può assumere diverse forme (naturale, theta-join, prodotto cartesiano)

Operatori derivati dagli insiemi Le relazioni sono insiemi e quindi è naturale estendere ad esse le operazioni relative. Tuttavia le relazioni sono insiemi di tuple omogenee, e quindi ha senso definire ed applicare tali operatori solo a tuple definite sugli stessi attributi. Es. lunione fra due relazioni su tuple non omogenee non è una relazione.

Operatori derivati dagli insiemi Unione Lunione fra due relazioni r 1 e r 2 definite sullo stesso insieme di attributi X è indicata con r 1 r 2 ed è una relazione su X contenente le tuple che appartengono a r 1 o r 2 oppure ad entrambe. Intersezione Lintersezione fra due relazioni r 1 e r 2 definite sullo stesso insieme di attributi X è indicata con r 1 r 2 ed è una relazione su X contenente le tuple che appartengono sia a r 1 che a r 2. Differenza La differenza fra due relazioni r 1 e r 2 definite sullo stesso insieme di attributi X è indicata con r 1 - r 2 ed è una relazione su X contenente le tuple che appartengono a r 1 e non a r 2.

Laureati Matricola Età Nome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome Neri Verdi Neri Rossi Neri Verdi Rossi Neri Verdi Neri Neri Verdi Neri Rossi Unione

Laureati Matricola Età Nome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome Neri Verdi Neri Verdi Neri Verdi Neri Verdi Intersezione

Laureati MatricolaEtàNome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati – Quadri MatricolaEtàNome Neri Verdi Rossi Neri Verdi Rossi Differenza

Ridenominazione E un operatore che consente di modificare i nome di un attributo per poterlo associare ad un altro attributo in una operazione algebrica. Si indica con nuovonome vecchionome ( Relazione ) Es. date le relazioni Paternità( Padre, Figlio ) e Maternità( Madre, Figlio ) è possibile ottenere Genitore Padre( Paternità ) Genitore Madre ( Maternità )

REN Genitore Padre (Paternità) REN Genitore Madre (Maternità) GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbele GenitoreFiglio EvaSet SaraIsacco EvaAbele GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbeleEvaSet SaraIsacco EvaAbele REN Genitore Padre (Paternità) REN Genitore Madre (Maternità)

Selezione e Proiezione Le operazioni di selezione e di proiezione si applicano ad una relazione e ne restituiscono una porzione. Possono essere considerate ortogonali o complementari, in quanto una opera sulle righe e laltra sulle colonne. La selezione produce un insieme di tuple, su tutti gli attributi. La proiezione produce un risultato definito su un insieme di attributi, cui contribuiscono tutte le tuple.

Selezione La selezione produce una nuova relazione definita sugli stessi attributi, contenente solamente le tuple di una relazione che soddisfano una specifica condizione di selezione. Si indica con F ( r ) dove: F è una condizione da verificare r è la relazione a cui la selezione è applicata Quindi, F ( r ) produce una relazione sugli stessi attributi di r contenente le tuple su cui F è vera.

Selezione, sintassi e semantica sintassi SEL Condizione (Operando) –Condizione: espressione booleana (come quelle dei vincoli di ennupla) semantica –il risultato contiene le tuple dell'operando che soddisfano la condizione

Selezione F è una formula preposizionale su X, cioè una formula ottenuta combinando con i simboli (and) (or) (not) espressioni del tipo A B o A c dove : è un operatore di confronto (,,,, ) A e B sono attributi di X su cui i confronto abbia senso c è una costante tale che il confronto con A sia definito E definito un valore di verità di F su una tupla t: A B è vera se e solo se t[A] t[B] è vero A c è vera se t[A] c è vera F 1 F 2, F 1 F 2, F hanno lusuale significato

Impiegati CognomeFilialeStipendioMatricola NeriMilano RossiRoma NeriNapoli Milano CognomeFilialeStipendioMatricola NeriMilano RossiRoma NeriNapoli Milano Impiegati ( che guadagnano piu di 50 ) Milano NeriNapoli SEL Stipendio > 50 (Impiegati)

Selezione con valori nulli CognomeFilialeEtàMatricola NeriMilano RossiRoma BruniMilano NULL 9553 Impiegati SEL Età>30 (Persone) SEL Età 30 (Persone) Persone Perché? Perché le selezioni vengono valutate separatamente! Ma anche SEL Età>30 Età 30 (Persone) Persone Perché? Perché anche le condizioni atomiche vengono valutate separatamente!

Selezione con valori nulli Per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL SEL Età>30 (Persone) SEL Età 30 (Persone) SEL Età IS NULL (Persone) = SEL Età>30 Età 30 Età IS NULL (Persone) = Persone

Proiezione Dati una relazione r(X) e un sottoinsieme Y di X la proiezione di r su Y si indica con Y ( r ) ed è linsieme di tuple su Y ottenute dalle tuple di r considerando solo i valori su Y. Y ( r ) = { t[Y] | t r } Una proiezione ha un numero di tuple minore o uguale rispetto alla relazione r cui è applicata. Il numero di tuple è uguale se e solo se Y è superchiave per r.

Proiezione operatore monadico produce un risultato che –ha parte degli attributi dell'operando –contiene tuple cui contribuiscono tutte le tuple dell'operando sintassi PROJ ListaAttributi (Operando) semantica il risultato contiene le tuple ottenute da tutte le tuple dell'operando ristrette agli attributi nella lista

CognomeFilialeStipendioMatricola NeriMilano NeriNapoli RossiRoma RossiRoma – visualizzare matricola e cognome di tutti gli impiegati PROJ Matricola, Cognome (Impiegati) CognomeFilialeStipendioMatricola NeriMilano NeriNapoli RossiRoma RossiRoma PROJ Cognome, Filiale (Impiegati)

Join E loperatore più caratteristico, che evidenzia la proprietà del modello relazionale di essere basato su valori. Loperatore di join (naturale) correla dati in relazioni diverse, producendo una relazione definita sullunione degli insiemi di attributi degli operandi, le cui tuple sono ottenute combinando le tuple degli operandi con valori uguali su attributi comuni.

Join Il join naturale r 1 r 2 di r 1 (X 1 ) e r 2 (X 2 ) è una relazione definita su X 1 X 2 ( che si può scrivere X 1 X 2 ) : r 1 r 2 = { t su X 1 X 2 | t[X 1 ] r 1 e t[X 2 ] r 2 } Il grado della relazione ottenuta è minore o uguale al grado della somma dei gradi delle due relazioni in quanto gli attributi omonimi compaiono una sola volta. Se X 1 X 2 è vuoto il join naturale equivale al prodotto cartesiano fra le relazioni. Se X 1 =X 2 il join naturale equivale allintersezione fra le relazioni

Join Se ciascuna tupla di ciascuno degli operandi contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata la corrispondenza e non contribuiscono al risultato, le tuple si dicono dangling. Ai due estremi si pongono il join vuoto in cui nessuna tupla degli operandi è combinabile, e quello in cui ciascuna delle tuple di un operando è combinabile con tutte le tuple dellaltro. In questo caso la cardinalità della relazione risultante è pari al prodotto della cardinalità degli operandi

Join Proprietà se il join di r 1 e r 2 è completo allora contiene un numero di tuple pari almeno al massimo fra |r 1 |e |r 2 | se X 1 X 2 contiene una chiave per r 2, allora il join di r 1 (X 1 ) e r 2 (X 2 ) contiene al più |r 1 | tuple. r 1 r 2 = r 1 r 2 il join è commutativo (r 1 r 2 ) r 3 = r 1 (r 2 r 3 ) il join è associativo Quindi sequenze di join possono essere scritte senza parentesi

Join Se si devono correlare attributi con nome diverso è possibile fare il theta-join, definito come un prodotto cartesiano seguito da una selezione r 1 F r 2 = F (r 1 r 2 ) Se F è una relazione di uguaglianza, con un attributo della pima relazione e uno della seconda, allora siamo in presenza di un equi-join. Sono importanti formalmente: il join naturale è basato sui nomi degli attributi equi-join e theta-join sono basati sui valori