70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:



Documenti analoghi
Progettazione di Basi di Dati

Organizzazione degli archivi

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

Elena Baralis 2013 Politecnico di Torino 1

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

Progettazione concettuale

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

Progettaz. e sviluppo Data Base

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

MODELLO RELAZIONALE. Introduzione

Il Modello Relazionale

DBMS (Data Base Management System)

Basi di Dati Relazionali

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

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

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

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Operazioni sui database

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

Definizione di domini

Database. Si ringrazia Marco Bertini per le slides

Vincoli di integrità

TEORIA sulle BASI DI DATI

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

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

Progettazione di una base di dati Ufficio della Motorizzazione

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

database: modello entityrelationship

1. BASI DI DATI: GENERALITÀ

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

BASI DI DATI - : I modelli di database

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

Rappresentazione grafica di entità e attributi

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

Capitolo 13. Interrogare una base di dati

Il database management system Access

Le Basi di Dati. Le Basi di Dati

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Progettazione di Database. Un Esempio

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

Sistemi Informativi e Basi di Dati

Progettaz. e sviluppo Data Base

Secondo Compitino di Basi di Dati

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

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Corso di Informatica (Basi di Dati)

Gestione delle tabelle

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

DATABASE RELAZIONALI

LA NORMALIZZAZIONE. Introduzione

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

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

Il Modello Relazionale

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

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa

(anno accademico )

Esercizio data base "Biblioteca"

Progettazione Logica. Progettazione Logica

Introduzione alla teoria dei database relazionali. Come progettare un database

Base di dati e sistemi informativi

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

Introduzione ai database relazionali

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

Il Modello Relazionale

Prova scritta del corso di Basi di dati attive 17 Dicembre Agenzia

La Progettazione Concettuale

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

I database. Cosa sono e a cosa servono i Database

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Modellazione dei dati in UML

Archivi e Basi di Dati

Volumi di riferimento

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Organizzazione delle informazioni: Database

Vincoli di Integrità

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

DATABASE. A cura di Massimiliano Buschi

Esercizio sui data base "Gestione conti correnti"

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

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

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

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

Progettazione logica relazionale (1/2)

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

Informatica (Basi di Dati)

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Architettura MVC-2: i JavaBeans

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Progettazione di un Database

Introduzione al data base

Alessandra Raffaetà. Basi di Dati

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Transcript:

DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente invariata nel tempo, in quanto è costituita dalle caratteristiche dei dati descrivendone cioè la struttura (componente intensionale della base di dati). È quindi l insieme degli schemi delle relazioni di cui la base di dati stessa è costituita. Si definisce istanza di una base di dati, quella parte della base di dati stessa che è variabile nel tempo, in quanto è costituita dai valori effettivi dei dati (componente estensionale della base di dati). È quindi l insieme delle istanze di tutte le relazioni di cui la base di dati stessa è costituita. Esempio: base di dati per raccogliere informazioni sugli iscritti ai vari corsi. Esempio di schema: Studente(Matr, Nome, Cognome), Corso (Id_studente, Cdl, Anno) Esempio istanza: 70555 Mario Rossi 70777 Anna Bianchi 70555 Informatica 3 70777 Sicurezza 2 2) Definire i concetti di chiave, superchiave e chiave primaria. Si definisce chiave un insieme di uno o più attributi di una relazione che identificano univocamente le tuple della relazione stessa. Una relazione può avere più chiavi, dette chiavi candidate. La chiave primaria di una relazione è una chiave scelta tra le chiavi candidate oppure una chiave costituita da un attributo aggiunto appositamente per l identificazione univoca delle tuple. Non ammette valori nulli per i suoi attributi. Si definisce superchiave di una relazione, un insieme di attributi K tale che la relazione non contenga due tuple distinte T1 e T2 con T1[K]=T2[K]. Un insieme di attributi K di una relazione è chiave se è una superchiave minimale (cioè se non esiste un sottoinsieme di K che è superchiave). 3) Nell ambito del modello relazionale, elencare e descrivere le politiche di reazione che possono essere associate al vincolo di integrità referenziale in SQL. I vincoli di integrità referenziale possono essere violati tramite operazioni sulla tabella interna o su quella esterna. Le operazioni che possono provocare violazioni dei vincoli sulla tabella interna sono l inserimento o la modifica di una tupla che referenzia un altra tupla esternamente: per queste violazioni il sistema si limita a rifiutare l operazione. Le operazioni che possono provocare violazioni dei vincoli sulla tabella esterna sono la modifica o cancellazione di tuple referenziate da altre tabelle: SQL permette di specificare le politiche di reazione da adottare. Esse sono: cascade: propaga la modifica o cancellazione; set null: mette a null l attributo che rimarrebbe pendente; set default: mette al valore di default l attributo che rimarrebbe pendente; no action: impedisce la modifica o cancellazione. 4) Nell ambito della progettazione concettuale descrivere la strategia di progetto bottom-up illustrando le primitive di trasformazione bottom-up. Le specifiche iniziali sono suddivise in componenti sempre più piccole fino a quando esse descrivono un frammento elementare dell applicazione, che vengono a questo punto rappresentate da semplici schemi concettuali. Sostanzialmente si scompongono le specifiche, si rappresentano i concetti di base tramite schemi concettuali, infine si integrano tali schemi in un unico schema concettuale finale. Per ottenere lo schema concettuale finale si applicano le seguenti trasformazioni elementari (primitive di trasformazione): T1: generazione di entità trovando tra le specifiche le varie classi di oggetti con proprietà comuni; T2: generazione di relazioni trovando legami logici tra le entità; T3: generazione di generalizzazioni trovando tra le specifiche legami di generalizzazione tra entità; T4: aggregazione di attributi su entità, individuando per un insieme di attributi un entità che li aggrega; T5: aggregazione di attributi su relazione, trovando per un insieme di attributi una relazione che li aggrega. I vantaggi sono che è una strategia adatta a lavori svolti da persone o gruppi diversi (più schemi concettuali), mentre lo svantaggio è l integrazione di schemi diversi è difficile per applicazioni complesse. 5) Nell ambito del modello relazionale, descrivere il concetto di schema e istanza di relazione. Fornire esempio. Lo schema di una relazione consiste nell intestazione della tabella stessa, ovvero dal nome della relazione seguito dal nome dei suoi attributi. Ha una struttura fissa. Un istanza di una relazione è variabile nel tempo, ed è costituita dall insieme delle sue righe, ovvero dai valori che assumono gli attributi. Esempio schema relazione: cliente(nome, Cognome, Id) Esempio istanza relazione: Mario Rossi 12345

NumPosto Lucia Bianchi 45678 6) Nell ambito dell algebra relazionale, spiegare la differenza tra natural join e theta join. Si richiede inoltre, utilizzando delle relazioni opportune, di fornire la definizione di questi due operatori usando solo gli operatori di base dell algebra relazionale (σρπ ). Il theta join interessa relazioni definite su insiemi di attributi disgiunti, e deve esser specificata una condizione di join sugli attributi delle due relazioni. Non elimina i duplicati quindi il grado risultante è la somma del grado delle due relazioni. Il natural join invece interessa relazioni che possono avere attributi comuni, e non viene specificata alcuna condizione. Non essendo specificata alcuna condizione, il join avviene combinando le tuple delle due relazioni sull attributo comune (equivale all intersezione), ma se non ci sono attributi comuni equivale dunque a un prodotto cartesiano tra le due relazioni. Elimina i duplicati, quindi il grado risultane è la somma dei gradi delle due relazioni meno il numero di attributi comuni. Theta join: (r1) condizione (r2) = σcondizione (r1 r2) Natural join: se r1 e r2 non hanno attributi in comune (r1) (r2) = (r1 r2) se r1 e r2 hanno attributi comuni (r1) (r2) = (r1 r2) 7) Nell ambito del linguaggio SQL descrivere i comandi per il controllo dell accesso. Il proprietario di una risorsa (o un altro utente precedentemente autorizzato) può concedere o revocare privilegi a determinati utenti sulla risorsa stessa. I privilegi sono: insert, update, delete, select, references, usage oppure è possibile anche all privileges. Per concedere privilegi si usa il comando: grant Privilegi on Risorsa to Utente [with grant optinon]. Concede i privilegi sulla risorsa all utente, è possibile dare la possibilità all utente di propagare a sua volta i privilegi ricevuti ad altri utenti. Per revocare privilegi si usa il comando: revoke Privilegi on Risorsa from Utente [restrict cascade]. Revoca i privilegi concessi sulla risorsa all utente, con politica restrict di default (la revoca è negata se esistono autorizzazioni dipendenti dal privilegio in questione) oppure si può specificare cascade (se ci sono autorizzazioni dipendenti dal privilegio in questione, vengono revocate anche queste). 8) Nell ambito del modello E-R, classificare le gerarchie di generalizzazione fornendo degli esempi. Le generalizzazioni possono essere classificate sulla base di due proprietà: - si ha una generalizzazione totale se ogni occorrenza dell entità genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale; - si ha una generalizzazione esclusiva se ogni occorrenza dell entità padre è al più un occorrenza di una delle entità figlie, altrimenti è sovrapposta. Esempio generalizzazione totale e esclusiva: generalizzazione tra entità Persona, Uomo, Donna. È totale perché le istanze di Uomo e Donna costituiscono tutte le istanze di Persona. È esclusiva perché ogni Persona è o Uomo o Donna. Esempio di generalizzazione parziale e esclusiva: generalizzazione tra entità Veicolo, e entità Auto e Bicicletta. È parziale perché esistono altri tipi di Veicoli che non sono né Auto né Biciclette. Esempio di generalizzazione parziale e sovrapposta: generalizzazione tra entità Persona, e entità Studente e Lavoratore. È parziale perché esistono Persone che non sono né Studenti né Lavoratori. È Sovrapposta perché ci sono Studenti che sono anche Lavoratori. Esempio generalizzazione totale e esclusiva: generalizzazione tra entità PersonaleAteneo, e entità Studente e Lavoratore. È totale perché ogni istanza di PersonaleAteneo è istanza di almeno una tra Studente e Lavoratore. È Sovrapposta perché ci sono Studenti che sono anche Lavoratori. 9) Nell ambito del modello E-R, definire il concetto di entità debole e fornire un esempio. Un entità debole è un entità la cui esistenza dipende dall esistenza di un altra entità (detta forte) a cui è legata tramite una relazione. Le occorrenze dell entità debole, quindi, non possono essere identificate univocamente tramite attributi interni all entità stessa, ma occorre la sua relazione con l entità forte, ovvero un identificatore esterno. Esempio: Dipendente(IdDip, Nome, Cognome), PostoAuto(NumPosto, CodiceDip). PostoAuto è entità debole. Cognome PostoAuto assegnat Dipendente Nome IdDip

10) Spiegare il concetto di Integrità referenziale e fornire un esempio. Costituisce un insieme di vincoli interrelazionali. L'integrità referenziale è un insieme di regole del modello relazionale che garantiscono l'integrità dei dati quando si hanno relazioni associate tra loro attraverso una chiave esterna: queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro. L'integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Di norma per non violare l integrità referenziale si ha che: non è possibile un valore nella chiave esterna della tabella associata se tale valore non esiste tra le chiavi della tabella primaria (null per rappresentare il fatto che le righe non sono correlate), non è possibile eliminare una n-upla della 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. Esempio: Cliente(Id, Nome, Cognome), Ordine(Codice, Data, IdCliente) Id Nome Cognome 11111 Mario Rossi 33333 Anna Verdi Codice Data IdCliente 0123 13-01-08 33333 11) Definire cosa si intende per indipendenza fisica e indipendenza logica. Indipendenza fisica e indipendenza logica, si riferiscono al concetto di indipendenza dei dati garantito dall architettura a tre livelli ANSI/SPRC. L indipendenza dei dati permette ad utenti e applicazioni che usano la base di dati, di interagire a un livello di astrazione che prescinde dai dati realizzativi usati nella costruzione del database. L indipendenza fisica consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati (il livello logico ed il livello esterno sono indipendenti dal livello fisico). Garantisce che modifiche alla struttura fisica non influiscano sul livello logico, e quindi sulle applicazioni che accedono ai dati. L indipendenza logica, invece, consente di interagire con il livello esterno della base di dati in modo indipendente dal livello logico. Garantisce la possibilità di aggiungere o modificare uno schema esterno senza modificare lo schema logico e viceversa (modifico lo schema logico senza modificare gli schemi esterni). 12) Nell ambito del modello relazionale, dire cosa si intende per vincoli di integrità referenziale e discutere come tali vincoli vengono gestiti in SQL. I vincoli di integrità referenziale sono un insieme di regole del modello relazionale che garantiscono l'integrità dei dati quando si hanno relazioni associate tra loro attraverso una chiave esterna: queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro. L'integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Per definire un vincolo di integrità referenziale in SQL si usa il vincolo di foreign key su attributi ( foreign key (elenco_attributi) references nome_tabella(elenco_attributi_corrispondenti) ). Per le politiche di reazione alla violazione dei vincoli, vedi risposta alla Domanda 3. 13) Spiegare il problema dei valori nulli in algebra relazionale e dare le tabelle di verità dei connettivi logici AND, OR, NOT tenendo conto del valore nullo. In algebra relazionale, vi è la necessità di rappresentare la non disponibilità di un valore per un certo attributo. Per fare ciò si utilizza il valore nullo NULL, che estende il concetto di n-upla (per ogni attributo A, t[a] è un valore del dominio oppure è NULL). Il valore NULL viene utilizzato per segnalare la non disponibilità di un valore per diverse cause: il valore è mancante (non è pervenuto un valore, può esser sconosciuto o inesistente), il valore è sconosciuto (per quell attributo esisterebbe un valore, ma non lo si conosce), il valore è inesistente (non è possibile assegnare un valore perché per quell attributo non esiste). Si devono utilizzare meno valori nulli possibili, in particolare vanno eviti nelle chiavi in quanto comprometterebbero l identificazione univoca delle tuple di una relazione. Per risolvere il problema dei valori nulli in interrogazioni, si è introdotto una logica a tre valori, in cui un predicato può essere vero, falso o unknown (sconosciuto). Unknown viene usato quando almeno uno dei termini del confronto ha valore nullo. Le tabelle di verità dei vari connettivi logici sono quindi: NOT AND V U F V V U F U U U F F F F F OR V U F V V V V U V U U F V U F F U V V U F

14) Data un interrogazione SQL che contiene le clausole HAVING, GROUP BY e WHERE dire come viene eseguita (specificare come ed in che ordine vengono eseguite le clausole). Le tre clausole appariranno nel seguente ordine: WHERE, GROUP BY, HAVING. Si avrà: SELECT attributi FROM tabella o tabelle WHERE condizione GROUP BY attributi che non fanno parte di nessuna funzione di aggregazione HAVING condizione su una funzione di aggregazione 15) Illustrare e commentare brevemente le diverse fasi del ciclo di vita di una base di dati, specificando cosa ogni singola fase prende in ingresso e cosa produce. Nella descrizione, discutere anche i diversi passi della progettazione. Le fasi previste nel ciclo di vita di una base di dati sono: Studio di fattibilità: definire in modo preciso i costi delle varie alternative possibili e stabilire le proprietà di realizzazione delle varie componenti del sistema. Raccolta e analisi dei requisiti: individuazione e studio delle proprietà e delle funzionalità che dovrà avere il sistema informativo. Questa fase richiede un interazione con gli utenti del sistema, e produce una descrizione completa ed informale dei dati coinvolti e delle operazioni su di essi. Vengono inoltre stabiliti i requisiti hw e sw del sistema informativo. Progettazione: si divide in due parti complementari e trattabili in parallelo. Nella progettazione dei dati si individua la struttura e l organizzazione che i dati dovranno avere. Nella progettazione delle applicazioni invece si definiscono le caratteristiche dei programmi applicativi. Viene prodotta una descrizione dei dati e delle applicazioni formale e che fa riferimento a specifici modelli. Implementazione: realizzazione del sistema informativo secondo la struttura e le caratteristiche definite nella fase di progettazione. Viene costruita e popolata la base di dati e viene prodotto il codice dei programmi. Validazione e collaudo: verifica il corretto funzionamento e la qualità del sistema informativo. Bisogna tener conto di tutte le condizioni operative. Funzionamento: il sistema informativo inizia ad eseguire i compiti per i quali è stato progettato. Richiede solo operazioni di gestione e manutenzione (salvo insorgere malfunzionamenti o revisioni delle funzionalità del sistema). Le fasi della progettazione sono invece: - Progettazione concettuale: traduce i requisiti (ingresso) in termini di una descrizione formale e completa, ma indipendente dai criteri di rappresentazione utilizzati nei DBMS. Il prodotto di questa fase è lo schema concettuale che fa riferimento a un modello concettuale dei dati: descrive l organizzazione dei dati ad un alto livello di astrazione, rappresenta il contenuto del sistema informativo senza preoccuparsi della modalità di codifica del DBMS o dell efficienza dei programmi. - Progettazione logica: traduce lo schema concettuale (ingresso) nel modello di rappresentazione dei dati adottato dal DBMS a disposizione. Il prodotto di questa fase è lo schema logico che fa riferimento a un modello logico dei dati: descrive i dati secondo una rappresentazione concreta ma indipendente dai dettagli fisici, tiene conto dell ottimizzazione delle operazioni da effettuare sui dati, si fa uso di tecniche formali di verifica della qualità dello schema logico (normalizzazione, per modello relazionale). - Progettazione fisica: completa lo schema logico (ingresso) con la specifica dei parametri fisici di memorizzazione dei dati. Il prodotto di questa fase è lo schema fisico che fa riferimento a un modello logico dei dati: dipende dallo specifico DBMS, si basa sui criteri di organizzazione fisica dei dati in quel sistema.

16) Dire cosa si intende per componente intensionale e componente estensionale di una base di dati. Per componente intensionale si intende lo schema di una base di dati, ovvero quella parte della base di dati stessa che resta sostanzialmente invariata nel tempo, in quanto è costituita dalle caratteristiche dei dati descrivendone cioè la struttura. Per componente estensionale si intende l istanza di una base di dati, ovvero quella parte della base di dati stessa che è variabile nel tempo, in quanto è costituita dai valori effettivi dei dati. 17) Descrivere l architettura ANSI-SPARC illustrando i diversi livelli ed i vantaggi forniti dalla loro separazione. ANSI-SPARC è un architettura standardizzata per DBMS, articolata su tre livelli di astrazione, cioè livello esterno, logico (o concettuale) ed esterno. Ad ogni livello corrisponde uno schema. Lo schema logico costituisce una descrizione all intera base di dati per mezzo del modello logico adottato dal DBMS (relazionale, gerarchico, reticolare, ad oggetti). Lo schema interno costituisce la rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione. Lo schema esterno costituisce la descrizione di una porzione della base di dati di interesse per mezzo del modello logico. È possibile associare a uno schema logico vari schemi esterni. Lo schema esterno non è spesso presente esplicitamente nei moderni database, ma è possibile definire delle viste a tale scopo. I vantaggi forniti dalla divisione in tre livelli è l indipendenza dei dati (vedi domanda 11). 18) Dire se la rappresentazione E-R è sufficiente per rappresentare tutti i vincoli di una base di dati. In caso di risposta negativa illustrare un esempio di vincolo non rappresentabile. Il modello E-R è sufficientemente espressivo per rappresentare i dati, ma è meno adatto alla rappresentazione dei vincoli. Infatti esistono vincoli sull uso dei costrutti che non si possono esprimere sullo schema con il modello E-R. Vincoli non esprimibili con il modello E-R sono ad esempio il fatto che le gerarchie di generalizzazione non possono contenere cicli, il fatto che una cardinalità minima non può essere maggiore della corrispondente cardinalità massima, oppure in una ipotetica base di dati relativa ad una azienda potrebbe essere il fatto che lo stipendio di un impiegato non può essere maggiore di quello del direttore, e così via. Per esprimere vincoli di questo genere occorre ricorrere alla documentazione degli schemi E-R. 19) Nell ambito del modello E-R definire il concetto di identificatore esterno spiegando quando è necessario. Un identificatore esterno è un identificatore per una certa entità che si vuole identificare univocamente, ottenuto tramite altre entità. Tale identificatore esterno sarà un attributo di un altra entità, e sarà in corrispondenza con i valori dell attributo nell entità che lo referenzia. È necessario nel caso di entità deboli, ovvero che dipendono da un altra entità ad esse legata tramite una relazione (per identificare univocamente un entità occorrono altre entità). 20) Nell ambito del modello E-R fornire un esempio di vincolo di integrità e di regole per derivazioni. Le regole aziendali per vincoli di integrità esprimono proprietà che deve essere soddisfatta dalle istanze di una base di dati per garantirne la consistenza. Possono essere espresse sotto forma di asserzioni del tipo <concetto> deve/non deve <espressione sul concetto>. Esempi possono essere: (RV1) ogni impiegato deve avere uno stipendio minore del direttore; (RV2) il direttore non deve avere stipendio minore degli impiegati. Le regole aziendali permettono di esprimere anche derivazioni, ovvero concetti che possono essere ottenuti attraverso un inferenza o un calcolo aritmetico da altri concetti dello schema. Possono essere espresse sotto secondo la struttura <concetto> si ottiene <operazione su concetti>. Esempi possono essere: (RD1) il numero degli studenti di un corso di laurea si ottiene contando gli studenti nell elenco degli iscritti. 21) Spiegare il significato dell affermazione il modello relazionale è basato su valori, fornendo poi una descrizione dei vantaggi dei modelli basati sui valori. Si dice che il modello relazionale è basato su valori perché i riferimenti tra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle tuple. I vantaggi dei modelli basati sui valori rispetto a quelli basati su record e puntatori sono che: viene rappresentato solo ciò che è rilevante dal punto di vista dell applicazione e dell utente; la rappresentazione logica dei dati costituita dai soli valori non fa alcun riferimento a quella fisica che può variare nel tempo (indipendenza fisica dei dati); dato che tutta l informazione è contenuta nei valori risulta abbastanza semplice trasferire i dati.

22) Nell ambito della progettazione logica, dire cosa si intende per fase di ristrutturazione dello schema E-R, spiegando nel dettaglio le operazioni da compiere in tal senso. La ristrutturazione dello schema E-R è la prima parte della progettazione logica (dopo di essa c è la traduzione verso il modello logico) necessaria a semplificare lo schema (perché non tutti i costrutti del modello E-R sono realizzabili nel modello logico) e ad ottimizzarlo (perché la progettazione logica è la base per l effettiva realizzazione dell applicazione e quindi bisogna tener conto delle sue prestazioni). Si compone di varie fasi: - Analisi delle ridondanze: si decide se eliminare o mantenere eventuali ridondanze. Una ridondanza può essere vantaggiosa e svantaggiosa, in quanto si ha una riduzione degli accessi necessari per calcolare il dato derivato, ma si ha anche una maggiore occupazione di memoria e necessità di effettuare operazioni aggiuntive per mantenere il dato derivato aggiornato. - Eliminazione delle generalizzazioni: le generalizzazioni nello schema vengono analizzate e sostituite da altri costrutti del modello E-R, ovvero entità e relazioni, perché i DBMS tradizionali non sono in grado di rappresentarle direttamente (tramite accorpamento del padre nelle figlie, accorpamento delle figlie nel padre,o mantenimento delle entità). - Partizionamento o accorpamento di entità e associazioni: si decide se è opportuno partizionare concetti dello schema E-R in più concetti, o viceversa accorpare concetti separati in un unico concetto. Le entità possono subire un partizionamento verticale (un entità viene divisa in due entità legate da una relazione) o orizzontale (un entità viene divisa in due entità separate). L accorpamento consiste semplicemente del riunire più entità legate o meno da una relazione in un unica entità. Si eliminano gli attributi multivalore o composti. Si partiziona una relazione in due relazioni distinte tra le stesse entità se vi sono occorrenze della relazione a cui si fa accesso separatamente. Viceversa si accorpano in un unica relazione se occorrenze diverse delle relazioni vengono accedute sempre contemporaneamente. - Scelta degli identificatori primari: si seleziona un identificatore per quelle entità che ne hanno più di uno. Si sceglie ovvero una chiave primaria per ogni entità (niente valori nulli, meglio se un solo attributo per chiave e preferibilmente interno, è conveniente scegliere come chiave un attributo che venga usato in molte operazioni, altrimenti se non sono soddisfatti i criteri si crea un attributo apposito come chiave).