Progettazione BD - Database Design PDF

Summary

This document provides an introduction to conceptual and logical database design. It discusses organizing data effectively and efficiently in tables, avoiding redundancies and unwanted functional dependencies. The document covers different levels of abstraction in database design (conceptual, logical, physical), and introduces the entity-relationship (E-R) model, a common tool for designing databases.

Full Transcript

Progettazione Concettuale e Logica di Basi di Dati Prof. Letizia Tanca 1 Come organizzare i dati nelle tabelle in modo efficace ed efficiente? qEvitare contraddizioni: escludere le ridondanze inutili escludere dipendenze funzionali indesiderate...

Progettazione Concettuale e Logica di Basi di Dati Prof. Letizia Tanca 1 Come organizzare i dati nelle tabelle in modo efficace ed efficiente? qEvitare contraddizioni: escludere le ridondanze inutili escludere dipendenze funzionali indesiderate Es. Auto(Targa, AnnoFabbr, Modello, Marca, Proprietario) Modello à Marca è una dipendenza funzionale indesiderata qPermettere l’ottimizzazione delle interrogazioni: connettere opportunamente le tabelle che contengono informazioni collegate 2 Il progetto della base di dati si inserisce nel Ciclo di vita del sistema informativo, comprendente le seguenti attività: Raccolta ed analisi dei requisiti Progettazione Implementazione Validazione e collaudo Funzionamento e Manutenzione 3 Progettazione per progettazione si intende: la progettazione dei dati che individua l’organizzazione e la struttura della base di dati la progettazione delle applicazioni (funzioni), che schematizza le operazioni sui dati e progetta il software applicativo 4 Livelli di astrazione per la progettazione dei dati La progettazione procede per livelli: Livello concettuale Esprime i requisiti di un sistema in una descrizione adatta all’analisi dal punto di vista informatico Livello logico Evidenzia l’organizzazione dei dati dal punto di vista del loro contenuto informativo, descrivendo la struttura di ciascun record e i collegamenti tra record diversi. Livello fisico A questo livello la base di dati è vista come un insieme di blocchi fisici su disco. Qui viene decisa l’allocazione dei dati e le modalità di memorizzazione dei dati sul disco. 5 Progettazione della base di dati Fatture Fatture Ordini dei Ordini clienti Indirizzi dei Clienti clienti Magazzino Archivio Schema concettuale prodotti in (COSA) magazzino Schema logico (in azzurro) Requisiti (COME) 6 La progettazione concettuale Traduce i requisiti di un qualsiasi sistema informatico in una descrizione: formale: espressa in modo non ambiguo ma adeguato a catturare le caratteristiche fondamentali del mondo da descrivere integrata: la descrizione si riferisce alla totalita’ dell’ambiente (non settoriale) indipendente dalla realizzazione fisica 7 RICORDIAMO Modello dei dati: collezione di concetti che possono essere usati per rappresentare la realta’. Es: i grafi, gli alberi Schema dei dati: rappresentazione di una specifica parte della realta’, che usa un modello dei dati. Es. sistema delle strade e delle citta’; albero genealogico Istanza: collezione di valori dei dati che rispetta la struttura dello schema. Es: rete viaria della Germania il giorno 22 febbraio 2000; albero genealogico della mia famiglia oggi. 8 La progettazione concettuale (cont.) la descrizione formale fa riferimento ad un MODELLO CONCETTUALE la descrizione mediante un modello concettuale produce uno SCHEMA CONCETTUALE cioè una rappresentazione semplificata che dovrà comunque contenere tutti e soli gli aspetti interessanti per la gestione dell’azienda 9 L’astrazione E’ un processo mentale che: evidenzia alcune proprietà rilevanti ai fini dell’applicazione esclude le proprieta’ irrilevanti ai fini dell’applicazione 10 Astrazione “The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise” Edsger Wybe Dijkstra, 1972 11 IL MODELLO UTILIZZATO sono stati proposti diversi modelli, basati su: linguaggi formali eseguibili e non eseguibili rappresentazioni grafiche corredate da descrizioni, il modello ENTITÀ-RELAZIONE (E-R) appartiene a questa categoria il modello E-R (Entity-Relationship, P.P.Chen 1976) si è ormai affermato nelle metodologie di progetto e nei sistemi SW di ausilio alla progettazione (strumenti CASE) 12 Il modello Entita’ Relazione Entita’ Persona abita Relazioni nome Attributi 13 Entità Rappresenta una classe di oggetti del mondo reale di interesse per l’applicazione Gli oggetti possono avere una realtà materiale (es., automobili, impiegati, studenti) o essere oggetti immateriali (es., conti correnti, corsi universitari) Ogni entità è caratterizzata da un nome 14 Relazione (Associazione) Rappresenta un legame logico tra entità di interesse per l’applicazione Ogni istanza di una relazione è una ennupla tra singole istanze delle entità coinvolte nella relazione (es., legame tra un automobile e il proprietario) Ogni relazione è caratterizzata da un nome (meglio se neutro) Ci possono essere relazioni diverse tra le stesse entità 15 Attributi Rappresentano caratteristiche delle entità e delle relazioni di interesse per l’applicazione Ogni istanza di entità e di relazione possiede un valore per ciascun attributo Ogni attributo è caratterizzato da un nome 16 Un piccolo esempio Indirizzo Nome Impiegato Azienda. N. matr P.IVA Rag. Soc. Ap i n pa ra rti avo en L e Reparto N. Denomin 17 Gestione dei reparti di un ospedale Si vuole progettare un sistema informativo per la gestione dei reparti di un ospedale. Per ogni reparto si conoscono la denominazione, la posizione (edificio e piano), i nomi del primario e della caposala, il numero delle camere di ciascun tipo (da 1, 2, 3 o 4 letti). I pazienti sono identificati dai loro dati anagrafici, a ciascuno di loro sono associati la patologia, il reparto in cui sono ricoverati e il relativo numero di letto. I pazienti possono arrivare al pronto soccorso ed essere ricoverati (cio' succede per i casi urgenti), oppure il loro ricovero viene prenotato dal loro medico di base, mediante una telefonata nella quale indica i dati del paziente e si accorda sul periodo di ricovero. Le camere possono essere chiuse per manutenzione, e per quel periodo ovviamente non si possono accettare prenotazioni. Inoltre il sistema deve poter gestire le richieste di informazioni sui reparti e sui letti a disposizione. 18 Prima bozza di progetto 19 Relazioni ternarie SQUADRA GIOCATORE Formazione tipo RUOLO 20 attributi di relazioni esame studente corso voto tempo fornisce prodotto fornitore prezzo prezzo fornisce prodotto fornitore tempo sconto 21 Gestione delle prenotazioni alberghiere Si vuole progettare il sistema di prenotazioni per un gruppo di alberghi. Per ogni albergo si conoscono il nome, l’indirizzo, la città, il periodo di apertura, il prezzo nelle varie stagioni per ciascun tipo di camera (si suppongano due stagioni, alta e bassa, e due tipi di camere, singola e doppia), il numero delle camere di ciascun tipo. I clienti sono identificati da nome e numero di telefono e possono prenotare una o più camere per uno o più giorni (consecutivi). Si supponga di volere gestire le richieste di informazioni da parte dei clienti, le prenotazioni, le cancellazioni di prenotazioni. Le prenotazioni possono anche arrivare per telefono, ma viene comunque richiesto un fax contenente, oltre ai dati suddetti, anche l'indirizzo e il numero di documento d'identita'. Se un cliente prenotato arriva dopo le sei, la sua prenotazione viene automaticamente annullata. Se un cliente vuole che la sua prenotazione gli venga tenuta anche oltre le sei, deve segnalare anche il numero della sua carta di credito. Si accettano anche clienti senza la prenotazione, se al momento in cui arrivano c'e' posto. Inoltre si vuole poter inserire un nuovo albergo, con tutti i dati relativi, quando questo viene acquisito all'interno della catena. 22 Cardinalità Insieme 1 Insieme 2 23 Cardinalità Studente Esame 24 cardinalità delle relazioni per cardinalità si intende il numero di volte che una data istanza di entità deve o può partecipare alla relazione (1,1) : obbligatoria, una sola volta (1,n) : obbligatoria, almeno una volta (0,1) : opzionale, una sola volta (0,n) : opzionale, n volte 25 Attributi matricola cognome nome studente data_nascita anno_di_corso 26 Cardinalità degli attributi una prima classificazione: scalare (semplice, ad un sol valore) es.: matricola, cognome, voto multivalore (sono ammessi n valori) (1,n) es.: qualifica, titolo, specialità il simbolo (n,m) esprime la cardinalità dell’attributo 27 Cardinalità degli attributi composto es.: data (gg,mm,aaaa), (1,1) indirizzo (spec. top., denominazione, civico, cap) multiplo composto (raro) (1,n) es.: telefono (stato, città, numero) 28 Discussione Come si sceglie se definire una nuova entità o un attributo? Esempio: AUTO COLORE % Rosso % Giallo AUTO colorata COLORE % Blu 29 Linee guida per il progetto Se il concetto è significativo per il contesto applicativo: entità Se il concetto è marginale e descrivibile in modo semplice: attributo Se il concetto definisce un legame tra entità: associazione (relazione) 30 Identificatore Un identificatore identifica in modo univoco la singola istanza di entità : simbolo totale, obbligatoria, unica, esplicita può essere composta (senza nulli) non è modificabile (in generale…) c.f. mat. dipendente macchina libro c.inv. 31 Identificatori composti L’identificatore di un’entità può essere composto nome albergo località Id dell’hotel nome provincia località Id dell’ località nome società stabilimento località Id dello stabilimento 32 Le entità deboli Le entità deboli sono entità i cui attributi non sono sufficienti a identificarle Le entità deboli contengono istanze la cui presenza nel sistema è accettata solo se sono presenti determinate istanze di altre entità da cui queste dipendono In caso di eliminazione dell’istanza di riferimento le istanze deboli collegate devono essere eliminate L’identificatore dell’entità debole conterrà l’identificatore dell’entità da cui dipende 33 Simboli usati N_conto matr contocorrente dipendente Nome-cli (0,n) (0,n) effettua par (1,1) (1,1) movimento parente N_trans Nome_par ammontare 34 Ora aggiungiamo cardinalità e identificatori agli schemi già progettati 35 le gerarchie Una gerarchia di generalizzazione (o gerarchia is_a) è il legame logico tra un’entità padre E ed alcune entità figlie E1 E2.. En dove: E è la generalizzazione di E1 E2.. En E1 E2.. En sono specializzazioni di E Ogni istanza di Ek è anche istanza di E (e di tutte le sue generalizzazioni) Una istanza di E può essere una istanza di una o più delle Ek Gli attributi dell’entità E non devono essere replicati sulle entità figlie in quanto ognuna di queste li eredita 36 un esempio di gerarchia un’azienda si avvale dell’opera di professionisti esterni, quindi il suo personale si suddivide in esterni e dipendenti: matr personale cognome nome t,e dipendente para esterno ore metro 37 un esempio di gerarchia un comune gestisce l’anagrafe ed i servizi per i suoi cittadini alcuni di questi richiedono la licenza di pesca : c_f cittadino cognome nome P,e n_licenza pescatore tipo_lic 38 gerarchie: definizioni t sta per totale: ogni istanza dell’entità padre deve far parte di una delle entità figlie nell’esempio il personale si divide (completamente) in esterni e dipendenti p sta per parziale: le istanze dell’entità padre possono far parte di una delle entità figlie nell’esempio i pescatori sono un sottoinsieme dei cittadini 39 gerarchie: definizioni e sta per esclusiva: ogni istanza dell’entità padre deve far parte di una sola delle entità figlie nell’esempio si esclude che una istanza di personale possa appartenere ad entrambe le sottoclassi o sta per overlapping (con sovrapposizioni): ogni istanza dell’entità padre può far parte di una o più entità figlie 40 Un altro esempio ingegnere p, o logistica meccanica elettrica o : possono esistere ingegneri che sono sia meccanici, sia elettrici, sia della logistica: le tre qualifiche non si escludono p : esistono in azienda ingegneri di altre sottodiscipline, ma non hanno proprietà specifiche da evidenziare 41 Nell’ esempio di prima L’insieme degli attributi, e cioè il tipo di “personale” è: (matricola, cognome, nome, indirizzo, data_nascita) Il tipo di “dipendente” è: (matricola, cognome, nome, indirizzo, data_nascita, parametro) il tipo di “esterno” è: (matricola, cognome, nome, indirizzo, data_nascita, ore) matr personale cognome nome t,e dipendente para esterno ore metro 43 esempio: ruoli in università c_f personale cognome indirizzo organizzazione t,e dell’ufficio non docenti docenti personale p,e p,e ammini- ordinari associati ricerca- tecnici strativi tori Ognuna di queste sottocategorie avrà i suoi specifici attributi e anche relazioni con altre entità 44 gerarchie isa attenzione : la gerarchia isa è diversa da una relazione unaria ricorsiva ! dipendente (0,n) (1,1) dipendente dirige diretto (1,1) impiegato (1,n) dirigente direzione 45 Esercizio Si vuole progettare la base di dati di una palestra. Di tutti i dipendenti della palestra si conoscono dati anagrafici, ruolo e specializzazione. Ci sono istruttori, medici sportivi, segretaria e impiegati amministrativi. Si memorizzano le informazioni sui clienti, che includono il Codice Fiscale, il nome, l'indirizzo e un numero di telefono. Ogni cliente deve aver ottenuto un certificato di sana e robusta costituzione prima di cominciare l’attività della palestra: occorre perciò assegnargli un appuntamento con uno dei medici sportivi che seguono la palestra. La data di inizio dell’attività deve essere successiva alla data dell’appuntamento. Per ognuno dei clienti si memorizzano gli esercizi che deve fare per seguire il programma che gli e' stato assegnato, e quale istruttore gli sia stato assegnato. Di ogni esercizio si sa il nome, il muscolo principale coinvolto, la durata e le controindicazioni. Inoltre di ogni cliente si conosce la situazione dei suoi pagamenti: a che tipo di corso e' iscritto, da quando, quanto ha pagato, il costo complessivo e quando scade la prossima rata. Per ogni attrezzo si conosce la matricola, alcune caratteristiche (es. peso min e peso max che può supportare), la marca, il riferimento della ditta venditrice (per motivi di manutenzione), in quale sala si trova, per quali muscoli è utile. 46 Riviste scientifiche Si vuole progettare un sistema informativo di supporto all’organizzazione di una casa editrice che pubblica riviste scientifiche. Ogni rivista viene identificata attraverso la sua denominazione, ed ha un settore scientifico di riferimento, e un prezzo di abbonamento Ogni numero di una certa rivista ha una data di pubblicazione e l'indice, cioe' la sequenza di articoli che contiene. Tale indice viene deciso da un apposito comitato (il comitato di edizione), costituito da un gruppo di esperti del settore. Gli articoli sono caratterizzati dal titolo (si immagini non esistano due articoli con lo stesso titolo), gli autori, il numero della rivista e il numero d’ordine nell'indice. Per ogni articolo compreso in qualche indice la segreteria deve provvedere a memorizzare tutte le informazioni sugli autori. Il sistema deve memorizzare tutte le persone (con il relativo nome, l’indirizzo, il recapito telefonico e di posta elettronica) che hanno a che fare con le riviste:abbonati, esperti compresi nei comitati di edizione (di cui si conosce anche il settore o i settori in cui sono esperti), autori degli articoli (di cui si conosce, per motivi statistici, anche la data di nascita). Il sistema deve anche fornire alla segreteria l’elenco degli abbonati ad ogni rivista, completo delle date di inizio dell'abbonamento e di pagamento. 48 Centro di istruzione permanente Si progetti il sistema informativo per la segreteria di un centro di istruzione permanente. I docenti propongono i corsi e forniscono il relativo materiale sotto forma di file. Di ogni corso si conosce la durata (espressa in ore di lezione), i docenti, il responsabile (che è uno dei docenti), il programma e il tipo di strumenti richiesti per le eventuali esercitazioni. La direzione valuta le proposte, decide quali corsi realizzare e ne stabilisce il calendario che viene comunicato ai responsabili dei corsi. In seguito vengono pubblicati e distribuiti i volantini con il calendario e i programmi dei corsi. Gli allievi sono di due tipi: privati (che si iscrivono personalmente ai corsi cui sono interessati presentandosi alla segreteria e fornendo i propri dati anagrafici) e dipendenti di un’azienda, che li iscrive inviando i dati mediante fax. Le tariffe aziendali prevedono sconti per gruppi superiori a 3 componenti per lo stesso corso. La segreteria prepara una copia del materiale per ogni partecipante e provvede a distribuirla agli iscritti. Alla fine di ogni corso è prevista una prova finale il cui superamento comporta il rilascio di un attestato. Il sistema deve tenere memoria di tutti i corsi tenuti con i relativi docenti e partecipanti, registrando in particolare coloro che hanno conseguito l’attestato. 49 La Progettazione della Base Di Dati: Il progetto logico 50 Progetto logico Lo schema E/R descrive un dominio applicativo ad un dato livello di astrazione Lo schema E/R è molto utile per: fornire una descrizione sintetica e visiva rappresentare buona parte della semantica dell’applicazione scambiare informazioni sull’attività progettuale tra i membri del team di progetto e mantenere una documentazione 51 Progetto logico Non esistono DBMS in grado di operare direttamente sui concetti di schemi E/R è quindi necessario tradurli in altri schemi di dati (logico relazionale in queste lezioni) questa traduzione può essere eseguita in modo semi-automatico le scelte alternative devono tenere conto dell’efficienza dello schema logico risultante e delle operazioni da effettuare (derivanti da flussi e processi) 52 Progettazione logica Consiste nella produzione di schemi di tabelle a partire dallo schema Entità-Relazione Il passaggio da modello a modello comporta un diverso tipo di rappresentazione La nuova rappresentazione “impoverisce” l’informazione 53 processo di design raccolta requisiti dominio applicativo progettazione schema concettuale concettuale (E/R) progettazione schema logico logica (SQL: DDL) DBMS DB (SQL: DDL, DML) 54 fasi del progetto logico il progetto consiste nella traduzione delle entità e delle relazioni in schemi di tabelle. Di solito è necessario apportare delle trasformazioni preliminari dello schema E/R. Il progetto consiste nelle le seguenti fasi 1. eliminazione delle gerarchie isa 2. normalizzazione degli attributi composti o multipli 3. traduzione di entità forti e relazioni in schemi relazionali (tabelle) 4. traduzione delle entità deboli 55 Traduzione standard Ogni entità è tradotta in una tabella con gli stessi attributi la chiave è la chiave (o identificatore) dell’entità stessa 56 Traduzione standard Ogni relazione è tradotta in una tabella con gli stessi attributi, cui si aggiungono gli identificatori di tutte le entità che essa collega la chiave è composta dalle chiavi delle entità collegate 57 Altre Traduzioni La traduzione standard è sempre possibile ed è l’unica possibilità per le relazioni con cardinalità massima N da entrambe le parti Un’ottimizzazione è possibile nel caso di cardinalità (1:1) da almeno una parte Questa forma di traduzione fonde in una stessa relazione entità e relazioni 59 relazione binaria 1 a N K1 traduzione A1 E1 ottimizzata: B1 (1,1) E1 (K1, K2, A1, B1) R E2 (K2, A2, B2) (1,n) K2 Attenzione: mai appaiono A2 E2 attributi della relazione!!! B2 60 Proviamo con il nostro primo progetto (0:n) (0:n) (1:1) (1:1) (0:n) (0:n) (1:4) (1:1) Man_ID (1:1) (0:n) 61 Perché occorrono i passi preliminari? Chiavi di tabelle provenienti da relazioni Gerarchie Attributi composti o multivalore Infine: Traduzione delle entità deboli 62 Chiavi di tabelle provenienti da relazioni: attenzione!! studente esame corso data voto data studente esame corso voto 63 GERARCHIE: RIDUZIONE ALLE SOTTOCLASSI Possibile solo quando la gerarchia è TOTALE ESCLUSIVA !!! GERARCHIE: RIDUZIONE ALLA SUPERCLASSE Flag (a quale sottoclasse appartiene?) Gli attributi delle sottoclassi diventano OPZIONALI !!! GERARCHIE: ENTITA’ CON RELAZIONI LA RAPPRESENTAZIONE PIU’ GENERALE Attributi Multivalore e Attributi Composti 0:N TRADUZIONE DELLE ENTITA’ DEBOLI (1:1) La Palestra Si vuole progettare la base di dati di una palestra. Di tutti i dipendenti della palestra si conoscono dati anagrafici, ruolo e specializzazione. Ci sono istruttori, medico sportivo, segretaria e impiegati amministrativi. Si memorizzano le informazioni sui clienti, che includono il Codice Fiscale, il nome, l'indirizzo e un numero di telefono. Ogni cliente deve aver ottenuto un certificato di sana e robusta costituzione prima di cominciare l’attività della palestra: occorre perciò assegnargli un appuntamento con uno dei medici sportivi che seguono la palestra. La data di inizio dell’attività deve essere successiva alla data dell’appuntamento. Per ognuno dei clienti si memorizzano gli esercizi che deve fare per seguire il programma che gli e' stato assegnato, e quale istruttore gli sia stato assegnato. Di ogni esercizio si sa il nome, il muscolo principale coinvolto, la durata e le controindicazioni. Inoltre di ogni cliente si conosce la situazione dei suoi pagamenti: a che tipo di corso e' iscritto, da quando, quanto ha pagato, il costo complessivo e quando scade la prossima rata. Per ogni attrezzo si conosce la matricola, alcune caratteristiche (es. peso min e peso max che può supportare), la marca, il riferimento della ditta venditrice (per motivi di manutenzione), in quale sala si trova, per quali muscoli è utile. 69 Esito 1 (0:n) Riviste scientifiche Si vuole progettare un sistema informativo di supporto all’organizzazione di una casa editrice che pubblica riviste scientifiche. Ogni rivista viene identificata attraverso la sua denominazione, ed ha un settore scientifico di riferimento, e un prezzo di abbonamento Ogni numero di una certa rivista ha una data di pubblicazione e l'indice, cioe' la sequenza di articoli che contiene. Tale indice viene deciso da un apposito comitato (il comitato di edizione), costituito da un gruppo di esperti del settore. Gli articoli sono caratterizzati dal titolo (si immagini non esistano due articoli con lo stesso titolo), gli autori, il numero della rivista e il numero d’ordine nell'indice. Per ogni articolo compreso in qualche indice la segreteria deve provvedere a memorizzare tutte le informazioni sugli autori. Il sistema deve memorizzare tutte le persone (con il relativo nome, l’indirizzo, il recapito telefonico e di posta elettronica) che hanno a che fare con le riviste:abbonati, esperti compresi nei comitati di edizione (di cui si conosce anche il settore o i settori in cui sono esperti), autori degli articoli (di cui si conosce, per motivi statistici, anche la data di nascita). Il sistema deve anche fornire alla segreteria l’elenco degli abbonati ad ogni rivista, completo delle date di inizio dell'abbonamento e di pagamento. 71 Centro di istruzione permanente Si progetti il sistema informativo per la segreteria di un centro di istruzione permanente. I docenti propongono i corsi e forniscono il relativo materiale sotto forma di file. Di ogni corso si conosce la durata (espressa in ore di lezione), i docenti, il responsabile (che è uno dei docenti), il programma e il tipo di strumenti richiesti per le eventuali esercitazioni. La direzione valuta le proposte, decide quali corsi realizzare e ne stabilisce il calendario che viene comunicato ai responsabili dei corsi. In seguito vengono pubblicati e distribuiti i volantini con il calendario e i programmi dei corsi. Gli allievi sono di due tipi: privati (che si iscrivono personalmente ai corsi cui sono interessati presentandosi alla segreteria e fornendo i propri dati anagrafici) e dipendenti di un’azienda, che li iscrive inviando i dati mediante fax. Le tariffe aziendali prevedono sconti per gruppi superiori a 3 componenti per lo stesso corso. La segreteria prepara una copia del materiale per ogni partecipante e provvede a distribuirla agli iscritti. Alla fine di ogni corso è prevista una prova finale il cui superamento comporta il rilascio di un attestato. Il sistema deve tenere memoria di tutti i corsi tenuti con i relativi docenti e partecipanti, registrando in particolare coloro che hanno conseguito l’attestato. 74 I musei della Lombardia Si vuole progettare il sistema informativo per la gestione dei musei della Lombardia. Gli utilizzatori del sistema informativo saranno i visitatori da una parte, per quanto riguarda le informazioni generali, e le direzioni dei musei dall’altra, per quanto riguarda gli aspetti organizzativi. Il sistema deve, su richiesta, fornire informazioni al pubblico relativamente agli orari di ciascun museo (di cui sono memorizzati il nome, la citta', l’indirizzo e il numero di telefono, opere e loro collocazione): giorno di chiusura settimanale, orari di apertura, che possono variare nei vari giorni della settimana. Tra le informazioni, vi è anche il costo del biglietto di ingresso (diviso per categorie: adulti e ridotti). Vengono inoltre fornite informazioni relative a eventuali mostre temporanee presso il museo (periodo di apertura, responsabile, titolo della mostra, costo del biglietto di ingresso per la mostra, sale in cui si svolge). Una attivita' di Gestione del Personale può inserire o modificare dati sul personale. Tra il personale vi sono addetti alla sorveglianza, addetti alla biglietteria ed esperti di arte, che possono organizzare o seguire mostre temporanee, o anche essere dedicati alle opere di un certo periodo. Ogni dipendente ha una matricola, nome, cognome, indirizzo e numero di telefono, e una lista di mansioni. Per quanto riguarda gli addetti alla sorveglianza e alla biglietteria occorre tener conto dei turni (con una data, un orario di inizio e di fine e la sala cui la persona è assegnata). Per ogni sala di ogni museo vi deve essere sempre almeno una persona addetta alla sorveglianza durante gli orari di apertura. I responsabili delle mostre devono essere presenti per l’intero giorno dell’inaugurazione. 75 Schema Musei 77 SUB senza frontiere Sub Senza Frontiere (SSF) è un’associazione che organizza corsi di subacquea. Tutti si possono iscrivere all’associazione fornendo i propri dati anagrafici (codice fiscale, nome, cognome, data di nascita, email) e pagando una quota associativa. Gli iscritti possono partecipare ai corsi organizzati da SSF. Ogni corso ha un prezzo, una data di inizio e una data di fine ed è seguito da un istruttore e due aiuto-istruttori, tutti parte dello staff di SSF. I corsi programmati che non raggiungono la soglia minima di 6 iscritti possono non essere erogati. Ogni iscritto può richiedere l’attrezzatura necessaria per i corsi. Essa si compone di giubbotto ad assetto variabile (GAV) ed erogatore: per ogni iscritto al massimo un GAV e al massimo un erogatore. Ogni pezzo di attrezzatura è identificato da un codice univoco ed è caratterizzato dalla data dell’ultima revisione. Inoltre, di ogni GAV si conosce la taglia, la marca e il modello mentre di ogni erogatore è noto il tipo di attacco (DIN oppure INT) e la marca. Alla fine di ogni corso c’è un esame che si compone di un questionario a risposte chiuse e di una parte pratica (una o più immersioni). Per lo scritto è importante sapere il numero di domande corrette, sbagliate e di risposte non date dal partecipante e il tempo impiegato. Per la prova pratica bisogna tenere conto, per ognuna delle immersioni che la compongono, del luogo dove è stata svolta, della sua durata e di un giudizio sulla performance del partecipante. L’esame, nel complesso, può risultare superato o meno, e nel caso sia superato il partecipante riceve il brevetto corrispondente. 78 Cosa si fa all’esame? Schema Entità-Relazione completo, con commenti ed eventualmente indicazione di vincoli. Non dare per scontato nulla, tranne il default che per gli attributi senza cardinalità si sottintende (1:1). Schema logico finale con indicazione delle chiavi esterne (frecce dagli attributi della relazione che importa la chiave verso gli attributi di quella che la esporta). Verificare e specificare che lo schema è almeno in terza forma normale e perché (usando una delle due definizioni.) Si può usare una matita ma dal tratto non troppo sottile perché altrimenti ho difficoltà a correggere, con le conseguenze del caso ;-) Quando non capite qualcosa del compito chiedete ai docenti o fate delle ipotesi non troppo semplificative. 79

Use Quizgecko on...
Browser
Browser