Sistemi Informativi di Rete AA 2000-01 (III) I Sistemi di Gestione di Basi di dati.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

Sistemi Informativi di Rete AA (IV) Progettazione di siti Web: un approccio per Entita e Relazioni.
Progettazione concettuale
DBMS (DataBase Management System)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
CORSO ITP Informatica Gestionale Modulo – Le basi di dati
Biglietti e Ritardi: schema E/R
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Basi di Dati prof. A. Longheu
4 – Progettazione – Introduzione e Modello E-R
Relazioni Relazione: Associazione o legame logico esistente tra due o più entità Socio Prenota Campo.
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
Sistemi Informativi di Rete AA (III) I Sistemi di Gestione di Basi di dati.
I Sistemi di Gestione di Basi di dati: Approfondimenti
Informatica B Allievi Elettrici - AA Le Basi di Dati.
File.
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)
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Basi di dati Università Degli Studi Parthenope di Napoli
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Modello E-R Generalizzazioni
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 E-R Generalizzazioni
DBMS ( Database Management System)
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.
Implementare un modello di dati
Esercitazione di Basi di Dati
LA PROGETTAZIONE DELLE BASI DI DATI
MODELLO LOGICO DEI DATI
Progettare un database
Dottorato di ricerca Nuove Tecnologie e Informazione Territorio – Ambiente Nozioni fondamentali di Basi di Dati Seminario interno.
Introduzione a Oracle 9i
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
DB- Sistemi Informativi
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Progettazione di Database
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.
Sistemi di Elaborazione delle Informazioni
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Cloud informatica V anno.
Approfondimenti SQL.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Le basi di dati.
Prima esercitazione di Basi di Dati Barcelli, Bardine, Loconsole, Manganelli e MIgliorini.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Transcript della presentazione:

Sistemi Informativi di Rete AA (III) I Sistemi di Gestione di Basi di dati

Sistema Informativo Elemento del sistema organizzativo dellazienda Insieme di risorse umane, strumenti di elabora- zione, scambio, acquisizione di informazioni, procedure per il loro trattamento, regole orga- nizzative, che consente il funzionamento del sistema organizzativo Evoluzione dei sistemi informativi da settoriali a integrati

Da settoriali a integrati DB1 DB2 DB3DB4 DB5 P1 P2 P3 P4 P5

Da settoriali a integrati DB P1 P2 P3 P4 P5 V1 V2V3 V4 V5

Sistemi Informativi Sistemi informativi tradizionali: progettazione di dati e funzioni Ü viste dutente Sistemi Web-based: progettazione di siti Internet e Intranet Ü viste dutente tradizionali Ü browsing e navigazione

I sistemi di gestione di basi di dati Un SGBD (Data Base Management System = DBMS): –permette di accedere in modo efficiente ai dati con una granularità più fine che il file system –permette di accedere in modo diretto ai dati basandosi sulle loro proprietà –effettua il controllo della concorrenza alla granularità del singolo record –realizza meccanismi sofisticati per il controllo dellaffidabilità –realizza meccanismi di controllo della privatezza –realizza latomicità delle transazioni

Livelli di astrazione Un DBMS fornisce ai suoi utilizzatori una visione astratta della base di dati distinguibile in tre livelli di astrazione: Livello fisico A questo livello la base di dati è vista come un insieme di blocchi fisici su disco. Qui viene decisa lallocazione dei dati e le modalità di memorizzazione dei dati sul disco. Livello logico Evidenzia lorganizzazione dei dati dal punto di vista del loro contenuto informativo, descrivendo la struttura di ciascun record e i collegamenti tra record diversi. Livello esterno Presenta i dati organizzati secondo un punto di vista appropriato ad ogni particolare utente (viste dutente).

Definizioni preliminari Modello dei dati: collezione di concetti che possono essere usati per rappresentare la realta. Es: alberi, grafi, tabelle Schema dei dati: rappresentazione di una specifica parte della realta, che usa un modello dei dati. Es. albero genealogico, sistema delle strade e delle citta, tabella degli studenti e dei voti nei singoli esami Istanza: collezione di valori dei dati che rispetta la struttura dello schema. Es: albero genealogico della mia famiglia oggi, rete viaria della Germania il giorno 22 febbraio 2000, dati sugli studenti e gli esami in questo preciso istante

Il modello relazionale dei dati Dati organizzati in tabelle dette relazioni Nomi delle colonne: attributi; Numero di colonne: grado Righe: tuple; Numero di righe: cardinalità MATRIC. FONDAM. INFO CHIMICAFISICA I ANALISI GEOMETR …. 5132AB 6123CD 5432CB … … lode lode STUDENTI

Definizioni Si dice schema di una relazione la descrizione della sua struttura, e cioe il suo nome seguito dallelenco dei nomi dei suoi attributi; a ciascun attributo è associato il suo tipo. Listanza della relazione e, istante per istante, il suo contenuto. La chiave di una relazione è un insieme di attributi che serve ad identificare univocamente le tuple della relazione e che garantisce le seguenti due proprietà: -unicità: in una qualunque istanza di una relazione non possono esistere due tuple distinte la cui restrizione alla chiave sia uguale; -minimalità: non deve essere possibile sottrarre alla chiave un attributo senza che la condizione di unicità cessi di valere.

Esempio di schema di base di dati PRESIDENTI (NOME-P, DATA-N, DATA-M, PARTITO, STATO, NOME-M) CONGRESSI (# CONGRESSO, %S-REP, %C-REP, %S-DEM, %C-DEM) AMMINISTRAZIONI (# AMMIN, DATA-IN, VICE-PRES, NOME-P, DATA-N) ELEZIONI (ANNO, VOTI-PRES, NOME-P, DATA-N, NOME-PERD, VOTI-PERD) STATI (STATO, POPOLAZ, # AMMIN.) PRESID-CONGR (NOME-P, DATA-N, # CONGR)

Linguaggi di interrogazione Permettono di trovare un dato basandosi sulle sue proprietà. Es: tabella STUDENTI--> trovare tutti gli studenti che hanno preso più di 28 a Fondamenti di Informatica Permettono di trovare dati basandosi su confronti tra i contenuti di più tabelle. Es: tabella ELEZIONI, tabella PRESIDENTI --> Trovare gli anni in cui è stato eletto un presidente repubblicano proveniente dallIllinois.

Il linguaggio SQL Data Manipulation Language (DML): interrogazione e modifica Data Definition Language: definizione delle relazioni

Il linguaggio SQL Select A1,…An (attributi da includere nel risultato) from R1,…Rm (nomi di relazioni da cui estrarre i dati) where P (condizione che i dati cercati soddisfano) Esempio: Select MATRIC from STUDENTI where FONDAM-INFO > 28

Esempi Trovare gli anni in cui è stato eletto un presidente repubblicano proveniente dallIllinois (condizioni di join): SELECT ANNO FROM ELEZIONI, PRESIDENTI WHERE ELEZIONI.NOME-P = PRESIDENTI.NOME-P AND ELEZIONI.DATA-N = PRESIDENTI.DATA-N AND STATO = ILLINOIS AND PARTITO = REPUBBLICANO Oppure (interrogazione nidificata): SELECT ANNO FROM ELEZIONI WHERE NOME-P, DATA-N IN ( SELECT NOME-P, DATA-N FROM PRESIDENTI WHERE PARTITO = REPUBBLICANO AND STATO = ILLINOIS )

Altre parole chiave utili Laggiunta del comando UNIQUE (o DISTINCT) subito dopo il comando SELECT permette di rimuovere i duplicati. MINUS differenza INTERSECT intersezione UNION unione ORDER BY ordinamento GROUP BY raggruppamento in base al valore di un attributo: una volta costruita una tale partizione è possibile valutare funzioni aggregate sugli attributi numerici delle tuple di ciascuna classe di equivalenza: MIN (minimo), MAX (massimo), SUM (somma), AVG (media); è inoltre possibile contare il numero di elementi, tramite la funzione COUNT. HAVING condizioni da usare subito dopo il GROUP BY

Altri esempi Trovare i nomi delle mogli dei presidenti provenienti dalla California eletti dopo il SELECT NOME-M FROM PRESIDENTI, ELEZIONI WHERE ELEZIONI.NOME-P = PRESIDENTI.NOME-P AND ELEZIONI.DATA-N = PRESIDENTI.DATA-N AND ANNO > 1960 AND STATO = CALIFORNIA

Altri esempi (unione) Trovare le persone che sono state presidenti oppure vicepresidenti in amministrazioni inaugurate dopo il SELECT NOME-P FROM AMMINISTRAZIONI WHERE DATA-IN > 1880 UNION SELECT VICE-PRES FROM AMMINISTRAZIONI WHERE DATA-IN > 1880

Altri esempi (intersezione) Trovare le persone che sono state presidenti e anche vicepresidenti in qualche amministrazione inaugurata dopo il SELECT NOME-P FROM AMMINISTRAZIONI WHERE DATA-IN > 1880 INTERSECT SELECT VICE-PRES FROM AMMINISTRAZIONI WHERE DATA-IN > 1880

Altri esempi (differenza) Trovare le persone che sono state presidenti ma mai vicepresidenti in amministrazioni inaugurate dopo il SELECT NOME-P FROM AMMINISTRAZIONI WHERE DATA-IN > 1880 MINUS SELECT VICE-PRES FROM AMMINISTRAZIONI WHERE DATA-IN > 1880

Altri esempi (aggregazione) Trovare la media dei voti ottenuti dai presidenti eletti per ciascun partito SELECT PARTITO, AVG (VOTI-PRES) FROM PRESIDENTI, ELEZIONI WHERE ELEZIONI.NOME-P = PRESIDENTI.NOME-P AND ELEZIONI.DATA-N = PRESIDENTI.DATA-N AND GROUP BY PARTITO

Lesecuzione delle interrogazioni Le interrogazioni vengono tradotte in un formato interno da un ottimizzatore di interruzioni. Lottimizzatore, conoscendo le dimensioni delle tabelle, produce un piano daccesso in termini di modello logico, poi trasmesso ad un gestore dei metodi daccesso, che trasforma il piano daccesso fornito dallottimizzatore a livello fisico. Il buffer manager, invece, si occupa del trasferimento dei dati da blocchi di memoria di massa a pagine di memoria centrale e viceversa ed è in stretto contatto con il gestore della memoria virtuale.

Data Manipulation Language INSERT INTO relazione,,,….. Serve per inserire una tupla DELETE FROM relazione WHERE attributo con condizione Serve per cancellare delle tuple UPDATE relazione SET attributo = espressione nuova da assegnare WHERE attributo con condizione Serve per modificare una relazione

Problema Come organizzare i dati nelle tabelle in modo efficace ed efficiente? –Evitare contraddizioni –Permettere lottimizzazione delle interrogazioni

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 dellambiente (non settoriale) indipendente dalla realizzazione fisica

Lastrazione E un processo mentale che: evidenzia alcune proprieta rilevanti ai fini dellapplicazione esclude le proprieta irrilevanti ai fini dellapplicazione

Lastrazione E un processo mentale che: evidenzia alcune proprieta rilevanti ai fini dellapplicazione esclude le proprieta irrilevanti ai fini dellapplicazione

I tre meccanismi fondamentali Classificazione: e membro di… es. {gennaio, febbraio, marzo…} = mese Aggregazione: e parte di... es. = bicicletta Generalizzazione: e sottoinsieme di… es. studente esottoinsieme di persona. persona e una generalizzazione di studente

Classificazione Un oggetto puo essere membro di piu classi: es. Giovanni e membro di Uomo, Giovanni e membro di Persona, Giovanni e membro di Impiegato. Puo succedere che alcune di queste classi siano in relazione di generalizzazione tra loro: non necessariamente! (es. Uomo non e in generalizzazione con Impiegato!!!) E una relazione tra oggetti e classi

Aggregazione Una classe viene definita come aggregazione di altre classi La stessa classe puo essere aggregazione di gruppi di classi diversi a seconda dellapplicazione: es. Persona: n. di matricola, corso di laurea, esami sostenuti, voti, anno di corso…oppure Persona: gruppo sanguigno, malattie avute, risultati esami medici,... E una relazione tra classi

La struttura dei record Persona NomeEtaStipendio Andrea Giovanni Francesca Myriam

Generalizzazione Definisce una relazione di sottoinsieme tra classi: una classe puo essere generalizzazione di una o piu classi Ereditarieta in due sensi: le ASTRAZIONI definite per la superclasse vengono ereditate dalle sottoclassi gli ELEMENTI delle sottoclassi vengono ereditati dalla superclasse

Generalizzazione Persona: nome, cognome, codice fiscale, indirizzo, data di nascita, n. telefono,... Studente: si aggiungono: numero di matricola, corso di laurea, esami sostenuti, voti, anno di corso… Paziente: si aggiungono: gruppo sanguigno, malattie avute, risultati esami medici,...

Concetto: persona Persona: nome, cognome, codice fiscale, indirizzo, data di nascita, n. telefono,... Persona come studente: nome, cognome, numero di matricola, corso di laurea, esami sostenuti, voti, anno di corso… Persona come paziente: nome, cognome, data di nascita, gruppo sanguigno, malattie avute, risultati esami medici,...

Caratteristiche Schema dei dati: e statico, si progetta una tantum quando si progetta il sistema Istanza: e dinamica, varia col tempo (es. il sistema delle vie viene aggiornato con lintroduzione di una nuova autostrada, nasce un nuovo bambino nella famiglia)

Il modello Entita Relazione Entita Relazioni Attributi Persona abita nome

Un piccolo esempio Impiegato Reparto Azienda Lavora in Appartiene N. matr. Nome N. Denomin Indirizzo P.IVA Rag. Soc.

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.

Le entita Sono classi di oggetti Sono aggregazioni dei loro attributi Possono essere generalizzate

Le relazioni Sono aggregazioni di entita Sono per la maggior parte binarie Possono essere anche ternarie Se ne considera la cardinalita

Gli attributi Sono insiemi di valori Le entita sono ottenute come loro aggregazione Se ne considera la cardinalita

Riviste scientifiche Si vuole progettare un sistema informativo di supporto allorganizzazione 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 dordine 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, lindirizzo, 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 lelenco degli abbonati ad ogni rivista, completo delle date di inizio dell'abbonamento e di pagamento.

Altri elementi Cardinalita –delle relazioni –degli attributi Identificatori

Cardinalita Insieme 1 Insieme 2

Cardinalita delle relazioni Dato un oggetto di una classe, a quanti oggetti dellaltra classe puo corrispondere, in un certo istante, attraverso la relazione considerata? 0:1 0:n 1:1 1.n

Cardinalita delle relazioni Esempi: matrimonio (0:1) ; (0:1) azienda-dipendente (m:n) ; (0:1) impiegato-progetto (1:3) ; (m:n) (oppure (o:n)) dirigente-subordinato (0:n) ; (1:1) genitore-figlio (0:n) ; (0:2) (oppure (2:2))

Cardinalita degli attributi Dato un oggetto di una classe, quanti valori dellattributo possono essergli associati in un certo istante? 0:1 0:n 1:1 1.n

Cardinalita degli attributi Esempi: persona-codice fiscale (1:1) persona- numero di telefono (0:n) prodotto-codice prodotto (1:1) persona-data di morte (0:1) libro-autore (1:n)

Identificatori E un sottoinsieme minimale degli attributi di unentita sufficiente a identificare univocamente un oggetto della classe Si definisce un identificatore per ogni entita Esempi: PERSONA: Codice fiscale PERSONA: Nome, Cognome, Data di nascita, Luogo di nascita

Discussione Come si sceglie se definire una nuova entita o un attributo? Esempio: MOBILE COLORE oppure MOBILECOLORE HA

Il sistema di gestione dei musei del Veneto Si vuole progettare il sistema informativo per la gestione dei musei del Veneto.Gli utilizzatori del sistema informativo saranno i visitatori da una parte, per quanto riguarda le informazioni generali, e le direzioni dei musei dallaltra, 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', lindirizzo e il numero di telefono): 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 presso il museo (periodo di apertura, titolo della mostra, costo del biglietto di ingresso per la mostra). Queste informazioni vengono inserite e modificate da un opportuno ufficio Mostre Temporanee (che e' parte del sistema) e possono essere richieste, con una domanda al sistema, sia da parte della direzione, sia da parte del pubblico. Inoltre, una attivita' di Gestione del Personale può inserire o modificare dati sul personale (che ha una matricola, nome, cognome, indirizzo e numero di telefono, e una lista di mansioni), e assegna il personale a turni (con una data, un orario di inizio e di fine e la sala a 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.

Gestione delle prenotazioni alberghiere Si vuole progettare il sistema di prenotazioni per un gruppo di alberghi. Per ogni albergo si conoscono il nome, lindirizzo, 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.

Gestione di una ditta di trasporti Si vuole progettare il sistema informativo per la gestione di una ditta di trasporti con sede in Torino, che spedisce merci in tutto il Nord Italia. Le richieste di servizio arrivano per telefono o via fax. In una richiesta di servizio, occorre precisare la destinazione dei colli che vengono inviati, il loro ingombro e il loro peso, e lindirizzo dove occorre andare a prelevarli. Inizialmente, le richieste di servizio vengono raccolte e non viene loro data alcuna risposta. Ogni mattina un impiegato esamina tutte le richieste di servizio pendenti e le raggruppa, in primo luogo per destinazione, e poi, tra quelle con la stessa destinazione, riunisce insieme quelle che hanno indirizzi di prelevamento vicini. Esamina poi le risorse disponibili, in termini di autofurgoni e di personale (autisti e facchini), e tenta di soddisfare prioritariamente le richieste appartenenti ai gruppi piu numerosi, tenendo conto della capienza dei furgoni e dellingombro dei colli. Quando, utilizzando questo criterio, ha terminato le risorse disponibili, tenta di associare tra loro richieste singole per poterne soddisfare di piu. Le richieste non soddisfatte vengono poste in coda tra le richieste pendenti per il giorno successivo. Le richieste pendenti da piu di tre giorni assumono maggiore priorita, percio occorre soddisfarle anche se si riferiscono a destinazioni non accoppiabili con le altre. Successivamente, vengono avvertiti i clienti le cui merci saranno trasportate in giornata (richieste soddisfacibili), e il trasporto vero e proprio viene organizzato assegnando il presonale ai vari furgoni e passando le bolle di consegna ai trasportatori.

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 unazienda, 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 lattestato.

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 linformazione

Trasformazione delle entità Per ogni entità una tabella che ha lo stesso nome, la tabella ha per attributi gli attributi dellentità, la tabella ha per chiave gli attributi che identificano lentità Es: PAZIENTE(Cod-fisc, Nome,Cognome, Tessera-Asl, N-letto)

Trasformazione delle relazioni Per ogni relazione una tabella ponte che ha il nome della relazione la tabella ha per attributi tutti gli attributi chiave delle entità collegate e gli attributi della relazione la tabella ha per chiave tutti gli attributi chiave delle entità collegate. Es: RICOVERO(Cod-fisc, N-stanza,Piano,Edif)

Ottimizzazione delle relazioni Per ogni relazione di cardinalità (1:1) da una parte la tabella ponte può essere eliminata inserendo la chiave di una delle due entità nello schema dellaltra. Es: PAZIENTE(Cod-fisc, Nome, Cognome, Tessera-Asl, N-letto, N-stanza, Piano, Edif) possiamo farlo perché a ogni paziente corrisponde una e una sola stanza

Data Definition Language CREATE TABLE nome-relazione A1 tipoA1, A2 tipoA2, A3 tipoA3, An tipoAn Es: CREATE TABLE PAZIENTE Cod-fisc string, Nome string, Cognome string, ….. DROP TABLE nome-relazione Es: DROP TABLE PAZIENTE