Gabriele Orlandi BASI DI DATI Database Informatica Dispense



Documenti analoghi
Progettazione di Basi di Dati

Organizzazione degli archivi

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

DBMS (Data Base Management System)

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

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

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

Progettaz. e sviluppo Data Base

BASI DI DATI - : I modelli di database

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Progettazione concettuale

MODELLO RELAZIONALE. Introduzione

Alessandra Raffaetà. Basi di Dati

Facoltà di Farmacia - Corso di Informatica

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Corso di Informatica (Basi di Dati)

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

Database. Si ringrazia Marco Bertini per le slides

Operazioni sui database

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

Archivi e Basi di Dati

Introduzione al data base

I Sistemi Informativi

TEORIA sulle BASI DI DATI

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

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

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

Lezione 1. Introduzione e Modellazione Concettuale

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

Progettaz. e sviluppo Data Base

BASE DI DATI: sicurezza. Informatica febbraio ASA

La Progettazione Concettuale

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

1. BASI DI DATI: GENERALITÀ

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

Elena Baralis 2013 Politecnico di Torino 1

Capitolo 13. Interrogare una base di dati

DATABASE RELAZIONALI

LA NORMALIZZAZIONE. Introduzione

Il database management system Access

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

Le Basi di Dati. Le Basi di Dati

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

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

IL SISTEMA INFORMATIVO

Il Modello Relazionale

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

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

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Sistemi Informativi e Basi di Dati

Corso di Basi di Dati e Conoscenza

Introduzione all Algebra Relazionale

Introduzione all Architettura del DBMS

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

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

Elementi di Algebra Relazionale

Basi di Dati Relazionali

Data Base. Prof. Filippo TROTTA

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Informatica (Basi di Dati)

Le Basi di dati: generalità. Unità di Apprendimento A1 1

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

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

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

Modello relazionale. ing. Alfredo Cozzi 1

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

Ottimizzazione delle interrogazioni (parte I)

Rappresentazione grafica di entità e attributi

La Metodologia adottata nel Corso

Basi di Dati e Microsoft Access

Introduzione ai database relazionali

Informatica Documentale

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

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

Protezione. Protezione. Protezione. Obiettivi della protezione

Vincoli di integrità

Base di dati e sistemi informativi

Secondo Compitino di Basi di Dati

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

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

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

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

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

Base Dati Introduzione

Introduzione alla teoria dei database relazionali. Come progettare un database

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

Organizzazione delle informazioni: Database

(anno accademico )

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

I database relazionali (Access)

L architettura di un DBMS

Basi di dati. Gabriella Trucco

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

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

IL MODELLO RELAZIONALE

PROGRAMMA DI CLASSE 5AI

Transcript:

Gabriele Orlandi BASI DI DATI Database Informatica Dispense

INTRODUZIONE Una base di dati è una collezione di dati (fatti noti) che ha le seguenti proprietà: - rappresenta un aspetto del mondo reale (Universo del Discorso); - i dati contenuti sono logicamente correlati e consistenti, e non sono una raccolta casuale; - è costruita e popolata per una scopo; - le basi di dati possono essere di qualsiasi dimensione e avere diversa complessità informazione e dato L informazione è tutto ciò che produce variazioni del patrimonio conoscitivo di un soggetto. Il dato è la registrazione della descrizione di una caratteristica della realtà. ES: dato: G24 informazione: in G24 si terrà la lezione contesto interpretativo: per trasformare un dato in un informazione bisogna dargli un contesto interpretativo. Transazione: è un programma che esegue uno o più accessi alla base di dati per leggere e/o modificare. Query: è l interrogazione che viene fatta alla base di dati per estrarre informazioni. DBMS Un sistema di gestione di basi di dati DBMS (Data Base Management System), è un sistema software specificamente realizzato per supportare la definizione, costruzione, manipolazione e condivisione di BD. Base di dati significa quindi collezione di dati gestita da un DBMS. Definizione: specificare i tipi, le strutture e i vincoli dei dati che devono essere memorizzati nella BD; Costruzione: popolare la BD, memorizzando i dati su un supporto di memorizzazione gestito dal DBMS; Manipolazione: interrogare la BD (reperire dati) e/o aggiornare la BD (aggiungere, modificare, eliminare dati); Condivisone: più utenti e programmi applicativi possono accedere contemporaneamente ai dati contenuti nella base di dati; Funzionalità dei DBMS - Accesso efficiente a grandi quantità di dati persistenti; le BD possono avere dimensioni anche molto elevate (es., gigabyte) e hanno un tempo di vita superiore a quello di esecuzione delle singole applicazioni; - Gestione delle transazioni: una base di dati è normalmente condivisa e acceduta contemporaneamente da molteplici utenti attraverso transazioni. Il DBMS un controllo della concorrenza, per garantire che transazioni concorrenti operino correttamente sui dati, senza interferenze reciproche. Il DBMS garantisce inoltre funzionalità di salvataggio e ripristino (backup e recovery) dei dati contenuti nella base di dati, per garantire che non ci siano perdite di dati anche in caso di guasti e malfunzionamenti hw/sw durante l esecuzione di transazioni. - Gestione delle interrogazioni: Al fine ricostruire l informazione completa in risposta a un interrogazione, in generale è necessario collegare dati in file diversi. Il DBMS fornisce funzionalità per la formulazione di interrogazioni di alto livello in base alle proprietà dei dati e per l esecuzione efficiente delle interrogazioni. - Protezione dei dati: controllo di autorizzazione di accesso ai dati. Il DBMS fornisce funzionalità di sicurezza e autorizzazione, secondo privilegi specificati e opportune tabelle di autorizzazione. Catalogo: una BD non contiene solo i dati, ma anche descrizione completa di vincoli, tipi di dati, file, formati. Queste informazioni sono i metadati e sono contenuti nel catalogo. La struttura della BD è memorizzata separatamente dai programmi nel catalogo (indipendenza tra programmi e dati). Viste multiple: la BD ha molti utenti; ogni utente può chiedere una diversa prospettiva o vista. Una vista può essere un sottoinsieme della BD oppure un insieme di dati virtuali che sono derivati dai file memorizzati. Il DMBS offre funzioni per le viste multiple.

Attori di una BD Amministratore della base di dati (Data Base Administrator), DBA: Autorizza l accesso alla BD Coordina e monitorare l uso della BD Manutiene il sistema BD (es., acquisizione di nuove risorse hw/sw) Progettista della base di dati: Individua i dati da memorizzare Sceglie le strutture adeguate per la rappresentazione e memorizzazione Comunica con gli utenti finali della BD per comprenderne le esigenze (requisiti utente) Analista: Determina le esigenze degli utenti finali e sviluppare le specifiche per le necessarie transazioni di accesso alla BD (analisti) Programmatore: Realizza, testa, documenta e manutiene i programmi che implementano le specifiche delle transazioni (programmatori) Progettazione della BD: - definizione e analisi dei requisiti - progettazione concettuale (schema concettuale) - progettazione logica (schema logico) e modello ER - progettazione fisica Modello dei dati Un modello dei dati è un insieme di costrutti e operazioni che descrivono la struttura della BD. L uso del modello permette al DBMS di fare astrazione dei dati, cioè nasconde agli utenti come vengono strutturati i dati. Il modello si occupa di due aspetti: - come rappresentare i dati; - come rappresentare i legami tra i dati. Per un modello di dati bisogna quindi determinare: - oggetto - insieme degli oggetti - attributi - associazioni Es dell università: -oggetto= lo studente -insieme = tutti gli studenti -attributi = matricola, cognome, nome -associazioni = un certo studente segue un certo corso Modello relazionale Un esempio di modello dei dati è il modello relazionale. È un modello basato su un singolo costrutto, la relazione. Una relazione si può vedere come un tabella in cui: - le righe sono i record - le colonne sono i campi Terminologia Schema della base di dati: Dato un qualsiasi modello dei dati (quindi anche il modello relazionale) prima di definire la base di dati si crea lo schema della base di dati: esso è la descrizione del contenuto della base di dati; è il primo passo per creare la base di dati; normalmente non varia nel tempo. Stato: Lo stato (insieme delle istanze) della base di dati è l insieme dei dati in un certo momento. È quindi variabile nel tempo. Il primo caricamento di dati si chiama stato iniziale.

Livelli di astrazione del DMBS Una BD può essere vista a 3 diversi livelli di astrazione, e per ogni livello c è uno schema: - Schema Logico : descrizione della BD con modello logico (es: relazionale); - Schema Fisico : descrizione della BD con modello fisico (file, indici ); - Schema Esterno o Vista : descrizione della BD o di una parte di essa che costituisce la visione dell utente. Queste distinzioni permette all utente e al programmatore di fare riferimento solo allo schema logico. Infatti i dati descritti a livello logico sono memorizzati attraverso strutture fisiche, ma non è necessario conoscerle: ci pensa il DMBS a mantere la corrispondeza tra i 3 schemi (mapping). Componenti di un DBMS Ottimizzatore: seleziona la strategia di accesso ai dati Gestore accesso ai dati: esegue la strategia Gestore buffer: gestisce gli accessi alle pagine Sottosistema di recovery: gestisce i malfunzionamenti Sottosistema di controllo della concorrenza: gestisce le interferenze nell accesso concorrente ai dati. Linguaggi DDL (Data Definition Language) Linguaggio per la definizione di schemi logici, esterni e le autorizzazioni di accesso ai dati. DML (Data Manipulation Language) Linguaggio utilizzato per l interrogazione e l aggiornamento delle istanze della base di dati. SQL (Structured Query Language) Linguaggio testuali interattivo, usato per l accesso ai dati. Architetture centralizzate e client-server del DBMS

IL MODELLO RELAZIONALE Il modello relazionale rappresenta la BD come una collezione di relazioni o una collezione di tabelle. Quando si pensa ad una relazione come una tabella, ogni riga è una collezione di dati collegati. I nomi della tabella e delle colonne aiutano a interpretare il significato dei valori delle righe. Ogni riga è una tupla, il nome della colonna è l attributo, il nome della tabella è la relazione. Il tipo di dati di ogni attributo è rappresentato da un dominio di possibili valori, e per ogni dominio si specifica il tipo di dato e il formato. (ad es la data è un numero e il formato è gg.mm.aa). Lo schema di relazione R(A1, A2,,An) è costituito da un nome R e gli attributi Ak. Si definisce anche il grado (o arità) che è il numero di attributi dello schema. Lo schema di relazione si riferisce a una relazione, mentre lo schema della BD si riferisce a tutte le relazioni. L istanza di una relazione è un insieme di tuple, l istanza di una BD è un insieme di relazioni. Una relazione r(t1,t2 tn) ha un nome r e delle tuple tk. Ogni tupla tk è l elenco ordinato di valori vk, in cui ogni vk è un valore appartenente al dominio dell attributo Ak, oppure assume il valore speciale null. Ordinamento: non c è alcuno ordine da rispettare, sia per le tuple che per gli attributi. Quello che conta è rispettare l ordine, una volta stabilito. Null (informazione incompleta): esiste un valore speciale null che può avere diversi significati: - valore sconosciuto - valore esistente ma non disponibile - valore non applicabile per la tupla Vincoli e chiavi Ci sono vincoli o restrizioni sui valori che si possono inserire nella BD - Vincoli di dominio : sono stabiliti dal dominio dell attributo che va rispettato. Esistono vari tipi di dati da poter inserire: numeri interi, reali, stringhe, caratteri ). - Vincoli di unicità : due tuple non possono avere gli stessi valori per ogni attributo (tuple identiche). - Vincolli di chiave : esiste un sottoinsieme di attributi che serve a identificare univocamente una tupla, e questo sottoinsieme si chiama superchiave. In realtà all interno della superchiave è possibile che ci siano attributi di troppo che servono a identificare ulteriormente la tupla: si parla allora di chiave quando si indica il numero minimo indispensabile di attributi per identificare univocamente una tupla, perciò la chiave è anche detta superchiave minimale. Il vincolo di chiave consiste nel fatto che due tuple non possono avere la stessa combinazione di valori all iterno della chiave o della superchiave. La condizione ideale è che ci sia un unico attributo che faccia da chiave. In uno schema di relazione ci possono essere diverse chiavi possibili, che si dicono chiavi candidate. Si sceglie allora una chiave, detta chiave primaria, per identificare le tuple. - Vincolo not null : è arbitrario per ogni attributo, obbligatorio per gli attributi della chiave. - Vincolo d integrità dell entità : stabilisce che nessun valore della chiave primaria può essere nullo perchè serve a identificare le tuple. - Vincolo d integrità referenziale : stabilisce che una tupla di una prima relazione che fa da referente a una seconda relazione deve riferirsi a una tupla esistente della seconda relazione. Da qui nasce il concetto di chiave esterna. Si dice chiave esterna FK (foreign key) un insieme di attributi di R1 che si riferiscono a R2: - gli attributi di FK di R1 hanno gli stessi domini di PK (primary key) di R2; - un valore di FK1 o è presente di PK2 oppure è nullo. Se le due precedenti regole sono rispettate allora c è vincolo d integrità referenziale da R1 a R2, dove R1 è la relazione referente e R2 quella referenziata. Forme normali Tipi di attributi: - Attributo semplice: a valori atomici (un valore unico e indivisibile) - Attributo multivalore: valore è un insieme di valori dello stesso dominio - Attributo strutturato: valore è un insieme di valori che appartengono a domini diversi Uno schema di relazione R è detto in prima forma normale (1NF) se ogni suo attributo è semplice.

ALGEBRA E CALCOLO RELAZIONALE L insieme di operazioni per il modello relazionale è l algebra relazionale. Il calcolo relazionale specifica le interrogazioni relazionali. Operatori unarie Selezione σ * Seleziona le righe, quindi le tuple di R. È un filtro che fa partizione orizzontale. * Si indica σ <condizione selezione > (R) La condizione di selezione o clausola è un espressione booleana nella forma: <nome_attributo> <op di confronto > < costante > oppure <nome_attributo> <op di confronto > <nome_attributo> * Operatori di confronto : { = < > } Diverse clausole possono essere unite in un σ attraverso gli operatori booleani AND, OR, NOT. È possibile sempre unire una cascata di selezioni in un unica selezione tramite AND. * Il grado della relazione risultante è uguale al grado di quella iniziale. * Vale la proprietà commutativa Proiezione π * Seleziona le colonne, quindi gli attributi. È un filtro che fa partizione verticale. * Si indica π <lista attributi > (R) * Eliminazione dei duplicati: facendo proiezione su attributi non chiave, possono presentarsi delle nuove proiezione prevede l eliminazione di duplicati. * Il grado della relazione risultante è minore del grado di quella iniziale. * Non vale la proprietà commutativa. tuple duplicate; la Ridenominazione ρ Operatore che cambia il nome degli attributi nelle interrogazioni (contenuto delle relazioni inalterato). * Si indica ρ <nuovonome> <nomeattributo> (R) Operatori insiemistici Sono usate per fondere due relazioni diverse. Per poter essere fuse, devono essere compatibili all unione, cioè devono avere lo stesso grado e, ad attributi corrispondenti, lo stesso dominio. Per convenzione noi scegliamo che gli attributi corrispondenti devono anche avere lo stesso nome, per questo si ricorrerà all operatore di ridenominazione. Unione: R U S crea una nuova relazione con tutte le tuple di R e di S.+ Intersezione: R S crea una nuova relazione con le sole tuple che sono sia in R sia in S. Differenza: R S crea una nuova relazione con le tuple che sono R ma non in S. Unione e intersezioni sono commutativi, non la differenza. Operatori binari Prodotto Cartesiano X Noto anche come Join Incrociato, si applica a 2 relazioni R e S, e produce una relazione finale Q in cui ogni tupla è combinazione di ogni tupla di R con ogni tupla di S. Per cui data R(a1,a2 an) e S(b1,b2 bm), diremo che R X S = Q (a1,a2 an,b1,b2 bm). Se grado_r = n e grado_s = m allora grado_q = n+m. Il prodotto cartesiano è poco utile. Correla tuple nel risultato anche se non sono correlate da un punto di vista semantico. In generale è necessario operare una selezione sul risultato del prodotto cartesiano per selezionare un sottoinsieme significativo di tuple.

Join Il join è un prodotto cartesiano seguito da un operazione di selezione. Si indica con R <condizione> S Si chiama Theta Join (θ Join) se la condizione è data da un operatore di confronto. Se l operatore di confronto è = allora si chiama Equijoin. Da notare che in un Equijoin si hanno sempre una o più coppie di attributi con valori identici; per evitare questa duplicazione si usa il Join Naturale, che si indica con *. Divisone Come si vede dalla sequenza, r:s significa prendere tutte le tuple di r contengono tutte le tuple di s, e creare una nuova relazione che ha solo gli attributi che non si trovano in s. Ci deve essere compatibilità sugli attributi (C e D in questo caso). Nell esempio è bastato cercare tutte le tuple aventi le coppie c1d1 e c2d2. Una richiesta classica in cui si fa la divisione è trovare i nomi degli impiegati che lavorano a tutti i progetti su cui lavora John Smith.

Progettazione concettuale Dopo l analisi dei requisiti, si crea uno schema concettuale ER, specificando tipi di entità, attributi, tipi di associazioni, gerarchie. Le strategie per la produzione dello schema possono essere: - top down si parte da astrazioni di alto livello e si procede con successivi raffinamenti. - bottom up si parte da astrazioni di base che descrivono frammenti elementari di realtà e si procede aggregando tali astrazioni o aggiungendone di nuove. - inside out - Caso particolare della strategia bottom-up: si individuano inizialmente alcuni concetti di maggiore rilevanza e da questi si procede rappresentando via via i concetti vicini a quelli iniziali seguendo i requisiti (procedimento a macchia d olio ). - mixed - Combinazione delle strategie top-down e bottom-up: Definizione di uno schema scheletro contenente a livello astratto i concetti principali dell applicazione Su ciascuna parte dello schema scheletro si può procedere applicando o la strategia top-down oppure quella bottom-up Adatta a progetti di una certa complessità e/o progetti in cui non sono disponibili da subito tutti i requisiti.

Qualità di uno schema concettuale: Leggibilità Uno schema concettuale e leggibile quando presenta i requisiti in maniera facilmente comprensibile scelta di nomi significativi e adeguati minimizzazione di intersezioni (elementi con più legami posizionati centralmente) Minimalità Uno schema concettuale e minimale quando non presenta ridondanze (es., presenza di dati derivati), ovvero le specifiche sui dati sono rappresentate una volta sola nello schema si può tollerare la ridondanza come scelta progettuale ma va documentata (vedi prog. logica) Completezza Uno schema concettuale e completo quando descrive tutti i requisiti di interesse e le operazioni possono essere eseguite a partire dai concetti contenuti nello schema tutti i requisiti sono rappresentati da qualche concetto nello schema tutti i concetti coinvolti nelle operazioni sono raggiungibili nello schema Correttezza Uno schema concettuale è corretto quando fa un uso proprio dei costrutti del modello concettuale utilizzato errori sintattici uso non ammesso di costrutti (es., generalizzazione su associazioni) errori semantici uso dei costrutti che non rispetta la loro definizione (es., associazione per esprimere specializzazione)

Progettazione logica Dalla progettazione concettuale si passa alla progettazione logica. Le attività compiute sono: - ristrutturazione dello schema concettuale (ER); - traduzione nello schema logico (relazionale); - verifica della normalizzazione sullo schema relazionale ottenuto. 1) Ristrutturazione dello schema concettuale (ER) Analisi dei dati derivati (ridondanza) Eliminazione delle gerarchie di generalizzazione Scelta degli identificatori primari Eliminazione di attributi multi-valore e composti 2) Traduzione nello schema logico (relazionale) Le entità sono tradotte in relazioni definite sui loro stessi attributi Le associazioni sono tradotte in relazioni definite sugli identificatori delle entità che partecipano e sugli (eventuali) attributi propri dell associazione Dagli indentificatori dell ER derivano i vincoli di chiave Si introducono vincoli di integrità referenziale per le relazioni che provengono da associazioni Dalle cardinalità degli attributi derivano vincoli di NOT NULL 3) Verifica della normalizzazione sullo schema relazionale ottenuto.

NORMALIZZAZIONE Dipendenza funzionale: Un attributo B dipende funzionalmente da A se dato un valore di A si deduce un valore di B. Si indica con A B. Dipendenza funzionale transivita: Dati gli attributi A, B, C, c è dipendenza transitiva se A B, B C, e quindi A C. 1^ forma normale: una relazione è in 1FN se tutti gli attributi sono atomici. 2^ forma normale: una relazione è in 2FN se è in 1FN e se tutti gli attributi non-chiave dipendono funzionalmente da tutta la chiave (cioè da tutti gli attributi della chiave, e non solo uno). 3^ forma normale: una relazione è in 3FN se è in 2FN e se tutti gli attributi non-chiave NON dipendendono transitivamente dalla chiave.

FORMA NORMALE BOYCE-CODD (BCNF) Una relazione R è in BCNF se per ogni dipendenza A B l insieme A contiene una chiave di R Il procedimento di decomposizione non deve causare perdita di informazioni e deve conservare le dipendenze. DECOMPOSIZIONE SENZA PERDITA Una relazione R si decompone senza perdita se: - data R con attributi X = X1 U X2, il join di R1 e R2 è uguale a R stessa (cioè senza tuple spurie). - l insieme degli attributi in comune tra R1 e R2 è chiave per almeno una tra R1 e R2. CONSERVAZIONE DELLE DIPENDENZE Una relazione si decompone con conservazione delle dipendenze se: - gli attributi in dipendenza funzionale in R, compaiono insieme in R1 o R2. Progettazione fisica Il processo di progettazione fisica e molto complesso perché prevede la definizione di numerosi parametri (e.g., dimensione iniziale dei file, possibilità di espansione, quantità e dimensione delle aree di transito per scambio di info tra memoria principale e secondaria). Tali scelte sono connesse con lo specifico DBMS utilizzato e difficilmente generalizzabili. La BD è memorizzata in file di dati su dispositivi di memoria. La sua organizzazione può essere primaria o secondaria: - primaria le tuple (i record) sono collocate nei file, e sono strutture sequenziali o hash. - secondarie vengono aggiunti gli indici. INDICI Un indice è una struttura ausiliaria, separata dai file di dati, realizzata per migliorare i tempi di ricerca (query) dei dati. Se una tabella non ha indici, ogni ricerca obbliga il sistema a leggere tutti i dati presenti in essa. L'indice consente invece di ridurre l'insieme dei dati da leggere per completare la ricerca. Gli indici hanno anche degli effetti negativi in quanto rendono più lente le operazioni di inserimenti e modifica (update), ed aumentano l'uso della memoria di massa. Un indice si può pensare nella forma <Ki,Pi> dove Ki è il valore dell'attributo chiave e Pi è il puntatore al record di dati. Generalmente il file indice è ordinato secondo i valori del campo Ki affinché sia possibile effettuare una ricerca binaria. Le tipologie di indice sono le seguenti: primari: definiti su attributi a valore univoco secondari: definiti su attributi che possono avere valori ripetuti clustered: definiti sull'attributo, secondo i cui valori il file di dati è ordinato unclustered: definiti sull'attributo, secondo i cui valori il file di dati non è ordinato densi: Sono gli indici il cui numero di coppie <Ki,Pi> è uguale al numero di valori chiave dei record sparsi: Sono gli indici il cui numero di coppie <Ki,Pi> è inferiore al numero di valori chiave dei record multilivello: hanno la forma di un albero di ricerca, cioè sono indici che puntano ad altri indici (primo e secondo livello).

Sicurezza Gli obiettivi di sicurezza su una base di dati sono: Segretezza: protezione delle informazioni da letture non autorizzate. Integrità: protezione dei dati da modifiche o cancellazioni non autorizzate. Disponibilità: garanzia che non si verifichino casi in cui ad utenti legittimi venga negato l accesso ai dati. Tecnica di sicurezza: Controllo dell accesso: ci sono meccanismi che, per ogni richiesta di accesso ai dati, verificano che l utente sia autorizzato a compiere l accesso. Il Reference Monitor è un meccanismo di controllo che ha il compito di stabilire se l utente può essere autorizzato (totalmente o parzialmente) a compiere l accesso. Politiche: Le politiche di controllo stabiliscono la limitazione degli accessi, cioè stabiliscono se e come i soggetti possono accedere a quali dati contenuti nel sistema. - Need-To-Know (minimo privilegio): molto restrittiva, permette ad ogni utente l accesso solo ai dati strettamente necessari per eseguire le proprie attività; offre ottime garanzie di sicurezza, può portare ad un sistema eccessivamente protetto. - Maximized Sharing (massima condivisione): consente agli utenti il massimo accesso alle informazioni nella base di dati, mantenendo comunque informazioni riservate; soddisfa il massimo numero possibile di richieste di accesso. Sistemi aperti e chiusi: Un sistema chiuso implementa la politica del minimo privilegio, un sistema aperto implementa la politica della massima condivisione. Nel sistema aperto l accesso è permesso a meno che non sia esplicitamente negato. Nel sistema chiuso l acceso è permesso solo se esplicitamente autorizzato. Attacco Cavallo di Troia: Y non ha accesso al file f1, ma vuole acquisirne il contenuto. Y inserisce un codice nascosto all interno di P che legge f1 e scrive f2. Y concede ad X l autorizzazione a scrivere su f2 (Y è proprietario di f2 e lo può fare). Quindi: X esegue P e le informazioni contenute in f1 (file che Y non può leggere) sono trasferite in f2 (file che Y può leggere). Politiche mandatorie: Regolano l accesso ai dati mediante la definizione di classi di sicurezza per i soggetti e gli oggetti del sistema: Le classi di sicurezza sono ordinate (es., TS>S>C>U). La classe di sicurezza assegnata ad un oggetto rappresenta il livello di sensitività dell oggetto: maggiore è la classe assegnata ad un oggetto, più ingente sarà il danno derivante dal rilascio delle informazioni in esso contenute a soggetti non autorizzati. Con questa politica sono vietati flussi (controllo di flusso) da oggetti ad elevata classificazione in oggetti a bassa classificazione (per risolvere il Cavallo di Troia). In questo caso la flessibilità è però ridotta e la circolazione di informazioni tra gli utenti è più difficile. Politiche discrezionali: Per contrasto, queste politiche sono più flessibili: Gli utenti possono a loro discrezione concedere o revocare i diritti di accesso sugli oggetti. Ci sono regole di autorizzazione flessibili ed adatte a numerosi contesti applicativi. Non c è controllo di flusso.