Università degli Studi di Napoli Federico II Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica



Documenti analoghi
Introduzione ai Database e a Microsoft Access

Organizzazione degli archivi

Sistemi Informativi e Basi di Dati

DBMS (Data Base Management System)

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

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

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Le Basi di Dati. Le Basi di Dati

Basi di Dati e Microsoft Access

Database 1 biblioteca universitaria. Testo del quesito

1. BASI DI DATI: GENERALITÀ

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

Informatica (Basi di Dati)

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

Corso di Informatica (Basi di Dati)

Database. Si ringrazia Marco Bertini per le slides

Esercizio sui data base "Gestione conti correnti"

LA NORMALIZZAZIONE. Introduzione

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

Organizzazione delle informazioni: Database

Esercizio data base "Biblioteca"

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

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

I database relazionali (Access)

Progettazione di Basi di Dati

Il database management system Access

Progettazione di un Database

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

BASI DI DATI - : I modelli di database

DATABASE RELAZIONALI

Introduzione al data base

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

MODULO 5 Appunti ACCESS - Basi di dati

Informatica I per la. Fisica

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

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

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

TEORIA sulle BASI DI DATI

database: modello entityrelationship

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

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

Archivi e Basi di Dati

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

I Sistemi Informativi

MODELLO RELAZIONALE. Introduzione

Base di dati e sistemi informativi

Capitolo 13. Interrogare una base di dati

Base Dati Introduzione

Modello relazionale. ing. Alfredo Cozzi 1

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

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Il sistema C.R.M. / E.R.M.

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

Università degli Studi di Verona. Laboratorio di Basi di Dati

Data Base. Prof. Filippo TROTTA

Informatica per le discipline umanistiche 2 lezione 10

Raggruppamenti Conti Movimenti


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

DATABASE. nozioni di base

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

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

Dispensa di database Access

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

IL SISTEMA INFORMATIVO

Progettazione di Database. Un Esempio

Corso di Informatica

Database 3 affitto veicoli. Testo del quesito

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Gestione Voti Scolastici

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

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

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Facoltà di Farmacia - Corso di Informatica

Elena Baralis 2013 Politecnico di Torino 1

Come modificare la propria Home Page e gli elementi correlati

Concetti fondamentali dei database database Cos'è un database Principali database

Cosa è un foglio elettronico

I database. Cosa sono e a cosa servono i Database

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

MODULO 5 ACCESS Basi di dati. Lezione 4

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

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

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Cultura Tecnologica di Progetto

Appunti sulle basi di dati. Cos è una base base di dati? Introduzione. D. Gubiani. 19 Luglio 2005

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

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

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

Relazioni tra tabelle

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access

Microsoft Access. Microsoft Access

Transcript:

Università degli Studi di Napoli Federico II Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica Corso di Sistemi di Elaborazione delle Informazioni A.A. 2011/2012 Prof. Ing. Ivan Giammona prof.giammona@gmail.com 1

Modulo 3 Sistemi Informativi e Database 2

Il Sistema Informativo aziendale Un Sistema Informativo aziendale è costituito: dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali; dalle modalità in cui esse sono gestite e dalle risorse, sia umane, sia tecnologiche, coinvolte Il sistema informativo può sfruttare i vantaggi offerti dal Sistema Informatico 3

Il Sistema Informatico aziendale Il Sistema Informatico aziendale rappresenta: quella porzione del sistema informativo che fa uso di tecnologie informatiche e automazione considerata la mole di dati aziendali che bisogna archiviare e gestire, il sistema informatico utilizza software specifici per la gestione di Database, cioè DBMS 4

La progettazione del Database La progettazione del database aziendale (database design) è il processo decisionale su come organizzare i dati in record e su come ciascun tipo di record si relaziona con gli altri (informazioni correlate). 5

Uso di DBMS nel Sistema Informativo Il DBMS dovrebbe rispecchiare la struttura dei dati dell'organizzazione e gestire in maniera efficiente le varie transazioni. Quando si usa un DBMS i sistemi informativi possono essere adeguati molto facilmente al cambiamento delle richieste informative dell'organizzazione. Possono essere aggiunte al database nuove categorie di dati senza dover stravolgere il sistema esistente. 6

Che cos è un DBMS Un DBMS, cioè Data Base Management System è un programma per la gestione di Database, quindi: Database = Insieme dei dati e metadati; DBMS = Software per la gestione del Database; Il pacchetto software Microsoft Access è un DBMS, quindi permette di creare e gestire Database. 7

Esempi di DBMS Ecco alcuni esempi di DBMS: Access (della Microsoft); SQL Server (della Microsoft); Oracle (della Oracle Corporation); Informix (della IBM); Mysql (è un prodotto Open Source); DB2 (della IBM); 8

Prima dell arrivo dei DBMS Venivano utilizzate Applicazioni diverse per gestire i vari File System. 9

Problemi degli archivi separati La gestione software degli archivi separati porta ad una serie di problemi, quali: 1. Inconsistenza e ridondanza dei dati Vi possono essere differenze tra i valori relativi ad una stessa entità ma riportati in archivi diversi. La duplicazione di dati crea spreco di memoria 2. Riservatezza dei dati Non vi è garanzia che ai dati abbiano accesso esclusivamente le persone autorizzate, ciascuno per le proprie competenze. I file sono a disposizione di tutti che possono quindi appropriarsi di informazioni riservate. 10

Problemi degli archivi separati 3. Integrità dei dati L'integrità dei dati viene assicurata dai vincoli di consistenza Ad esempio un campo non può assumere valore negativo. Con archivi separati, l'integrità dei dati viene affidata a programmi applicativi (soggetti ad errori) 4. Concorrenza Gestire gli accessi contemporanei alla stessa informazione. 11

Con l arrivo dei DBMS Abbiamo diverse applicazioni che attraverso il DBMS agiscono sullo stesso Database. 12

Vantaggi dell utilizzo di un DBMS 1. I dati non sono duplicati 2. L'accesso ai dati avviene in base a privilegi fissati dal DBMS (garanzia di sicurezza e riservatezza) 3. I vincoli di consistenza possono essere fissati all'interno del DBMS 4. L'accesso concorrente ai dati è controllato dal DBMS che gestisce la mutua esclusione dei programmi 13

1. Gerarchico I Modelli logici di Dati Basato sugli alberi 2. Reticolare Basato sui grafi 3. Relazionale Basato sugli insiemi, dati strutturati in tabelle 4. Ad oggetti Basato sulle proprietà degli oggetti 14

Linguaggi di gestione/manipolazione Dati DDL (Data Definition Language) Per definire lo schema della base di dati Le definizioni dello schema costituiscono il 'Dizionario dei dati' DML (Data Manipulation Language) Per inserire, cancellare, modificare i dati Per effettuare query 15

I Linguaggi per la gestione dei Dati SQL (Structured Query Language) Si pronuncia SEQUEL E un linguaggio che racchiude sia le funzionalità proprie di un DDL, sia quelle di un DML. E diventato uno standard tra i linguaggi utilizzati dai DBMS (basati sul modello relazionale) per interagire con i Database. Oltre alle funzionalità dei DDL e DML, SQL racchiude anche quelle di Data Control Language (DCL) grazie alle quali è possibile stabilire chi sono gli utenti del Database e quali permessi hanno relativamente alla gestione dei dati. 16

Il Modello Relazionale Il modello relazionale fu introdotto da Codd (1970) e si basa su una semplice ed uniforme struttura dati chiamata relazione, ed ha una solida base teorica La relazione del modello relazionale NON è la relazione degli schemi E/R Si introduce tale modello in quanto la maggior parte dei DBMS sono relazionali (tipo Oracle, Access, MySQL) 17

Il Modello Relazionale Una base di dati relazionale è una collezione di relazioni Una relazione è una tabella costituita da: un numero fisso di colonne (dette attributi) un numero variabile di righe (dette tuple) Ciascuna colonna assume valori estratti da uno stesso dominio (insieme di valori) Il numero di colonne di una relazione si chiama grado, il numero di righe cardinalità 18

Schema di una Relazione E' la descrizione della struttura della relazione. Consiste del nome della relazione e dell elenco degli attributi che la caratterizzano. La forma è la seguente: Nome relazione (attributo1, attributo2,.., attributo n) 19

Esempio della relazione Dipendente Esempio: Dipendente (codice fiscale, cognome, nome, indirizzo, telefono) Esempio Codice fiscale Cognome Nome Indirizzo Telefono CFFLAN Cioffi Lamberto Via Veneto 16 0811238904 RSSGDU Rossi Guido Via Marini 74 0812349075 RNZMCI Renzi Michele Via Monza 93 0814342367 DNTFRA Donati Franco Via Bellini 11 0816784563 MNNCRI Manna Ciro Via Verdi 65 0812484657 BNCMRA Bianchi Mario Via Roma 24 0815241688 20

Istanza di una Relazione Insieme delle tuple presenti nella base di dati in un certo istante. Nella definizione formale del modello relazionale è richiesto che le tuple siano tutte distinte. 21

Restrizione di una Tupla La restrizione di una tupla sugli attributi A della relazione R (indicata con t[a]), è data dalla lista dei valori assunti da t sugli attributi A Esempio Considerata la tupla t=(bncmra, Bianchi, Mario, v. Roma 24, 081/5241688) Allora una possibile restrizione è: t[codice fiscale, Nome]=(BNCMRA, Mario) 22

Chiave di una Relazione E un sottoinsieme K degli attributi che soddisfa le proprietà: Unicità (in qualunque istanza di R, non possono esistere due tuple distinte la cui restrizione su K sia uguale) Minimalità (non è possibile sottrarre a K un attributo senza violare la condizione di unicità) In generale una relazione può avere più di una chiave, in questo caso si parla di chiavi candidate. 23

Chiave di una Relazione Esempio Codice fiscale Cognome Nome Indirizzo Telefono BNCMRA Bianchi Mario Via Roma 24 081/5241688 Codice fiscale è una chiave Nome non è una chiave (Nome, Indirizzo) non è una chiave (Codice fiscale, Nome) non è una chiave Telefono è una chiave 24

Chiave primaria Tra le possibili chiavi candidate, quella usata più frequentemente per accedere ai dati prende il nome di chiave primaria Le restanti chiavi vengono dette secondarie In genere si indica sottolineando gli attributi che la costituiscono: Esempio: Dipendente (codice fiscale, cognome, nome, indirizzo, telefono) Indica gli attributi chiave 25

Un esempio di Progettazione: Il database Clinica Prendiamo in esame l ambiente costituito da una clinica e dai suoi pazienti. L idea è quella di progettare e realizzare un Database che ci permetta di conservare tutte le informazioni necessarie, che riguardano i soggetti coinvolti nel mondo di una clinica. Il primo passo da svolgere è quello di analizzare l ambiente della clinica al fine di individuare le entità che vi operano. 26

Esempio: Il database Clinica Dall analisi del mondo reale, rileviamo le seguenti entità: Paziente Ricovero Reparto Esame Medico Dirigente 27

Esempio: Il database Clinica Per ciascuna entità decidiamo di memorizzare le seguenti informazioni: Paziente Codice fiscale, Cognome, Nome, Indirizzo, Telefono Dirigente Medico Codice fiscale, Cognome, Nome, Indirizzo, Telefono Codice fiscale, Cognome, Nome, Indirizzo, Telefono Reparto Esame Codice reparto, Denominazione, Edificio, Piano Codice esame, Tipo, Nome, Data, Valore Ricovero Codice ricovero, Data inizio, Data fine 28

Esempio: Il database Clinica Esaminiamo ora le associazioni che esistono tra le entità individuate: Esegue Accetta Effettua Dirige Lavora E l associazione uno-a-molti che lega le entità Ricovero ed Esame, dato che in occasione di un ricovero verranno svolti uno o più esami. E l associazione uno-a-molti che lega le entità Reparto e Ricovero, dato che ad un reparto corrispondono uno o più ricoveri. E l associazione uno-a-molti che lega le entità Paziente e Ricovero, dato che un paziente può essere ricoverato più volte. E l associazione uno-a-uno che lega le entità Dirigente e Reparto, dato che ciascun reparto ha un solo dirigente e viceversa. E l associazione molti-a-molti che lega le entità Medico e Reparto, dato che un medico può lavorare in uno o più reparti ed in un reparto possono lavorare uno o più medici. 29

Esempio: Il database Clinica E possibile mostrare il risultato della nostra analisi mediante una rappresentazione grafica chiamata Modello Entità-Relazione. 30

Regole di Progettazione Vediamo le regole da applicare per ottenere la struttura definitiva delle Tabelle partendo dal modello E-R: Prima regola: Si crea una Tabella per ogni Entità con i campi specifici; Seconda regola: Per le associazioni uno-a-uno si include in una Tabella la chiave primaria dell altra o viceversa; Terza regola: Per le associazioni uno-a-molti si include nella Tabella coinvolta con cardinalità molti la chiave primaria dell altra; Quarta regola: Per le associazioni molti-a-molti si crea una nuova Tabella col nome dell associazione inserendo come campi le chiavi primarie di entrambe le Tabelle coinvolte; 31

Esempio: Il database Clinica Dall applicazione delle regole di progettazione otteniamo le seguenti tabelle per il Database Clinica: Paziente Ricovero Dirigente Medico Reparto Esame Lavora Codice fiscale, Cognome, Nome, Indirizzo, Telefono Codice ricovero, Data inizio, Data fine, Codice paziente, Codice reparto Codice fiscale, Cognome, Nome, Indirizzo, Telefono, Codice reparto Codice fiscale, Cognome, Nome, Indirizzo, Telefono Codice reparto, Denominazione, Edificio, Piano Codice esame, Tipo, Nome, Data, Valore, Codice ricovero Codice fiscale medico, Codice reparto 32

Esempio: Il database Clinica Avendo ottenuto la struttura definitiva delle tabelle del nostro Database Clinica, possiamo procedere con le seguenti fasi: 1. Creare un nuovo Database Clinica con Access; 2. Creare le nuove Tabelle con le relative strutture del record ottenute dalla fase di progettazione; 3. Creare le relazioni/associazioni tra le tabelle create; 4. Inserire i dati iniziali nel Database Clinica; 5. Creare le maschere per l inserimento dati nel Database; 6. Creare le query per le interrogazioni/operazioni da svolgere sul Database; 7. Creare i report per l estrazione dei dati e la visualizzazione su carta; 33

Un altro esempio di Progettazione: Il database Scuola Prendiamo in esame l ambiente scolastico. L idea è quella di progettare e realizzare un Database che ci permetta di conservare tutte (o almeno quelle di nostro interesse) le informazioni che riguardano gli aspetti didattici di una scuola. Il primo passo da svolgere è quello di analizzare l ambiente scuola e individuare le entità che vi operano. 34

Esempio: Il database Scuola (2) Dall analisi rileviamo le seguenti entità: Alunno Docente Classe Materia Assenza 35

Esempio: Il database Scuola (3) Per ciascuna di esse decidiamo di memorizzare le seguenti informazioni: Alunno Codice fiscale, Cognome, Nome, Indirizzo, Telefono Docente Codice fiscale, Cognome, Nome, Indirizzo, Telefono Classe Anno, Sezione, Num_alunni Materia Descrizione, Indirizzo Assenza Data 36

Esempio: Il database Scuola (4) Esaminiamo ora le associazioni che esistono tra le entità individuate: Insegna_materia E l associazione che lega le entità Docente e Materia con una cardinalità del tipo molti-a-molti, cioè ad un docente corrispondono più materie insegnate e ad una materia corrispondono più docenti che la insegnano. Insegna_nella_classe E l associazione che lega le entità Docente e Classe con una cardinalità del tipo molti-a-molti. Compie E l associazione che lega le entità Alunno e Assenza con una cardinalità del tipo uno-a-molti. Frequenta E l associazione che lega le entità Classe e Alunno con una cardinalità del tipo uno-a-molti. 37

Esempio: Il database Scuola (5) E possibile mostrare il risultato della nostra analisi mediante una rappresentazione grafica chiamata Modello Entità-Associazione (in inglese Entity-Relationship ovvero Modello E-R) ALUNNO N 1 N Compie ASSENZA DOCENTE Frequenta N N 1 N CLASSE Insegna nella classe Insegna materia N MATERIA 38

Esempio: Il database Scuola (6) Vediamo come si ricava la struttura delle Tabelle dal modello E-R: Prima regola: Si crea una Tabella per ogni Entità con i campi specifici; Seconda regola: Per le associazioni uno-a-uno si include in una Tabella la chiave primaria dell altra o viceversa; Terza regola: Per le associazioni uno-a-molti si include nella Tabella coinvolta con cardinalità molti la chiave primaria dell altra; Quarta regola: Per le associazioni molti-a-molti si crea una nuova Tabella col nome dell associazione inserendo come campi le chiavi primarie di entrambe le Tabelle coinvolte; 39

Esempio: Il database Scuola (7) Applicando le 4 regole al nostro modello E-R otteniamo le seguenti Tabelle per il nostro Database: Alunno Codice fiscale, Cognome, Nome, Indirizzo, Telefono, Anno, Sezione Docente Classe Materia Codice fiscale, Cognome, Nome, Indirizzo, Telefono Anno, Sezione, Num_alunni Descrizione, Indirizzo Assenza Data, Cod_fisc_alunno Insegna_nella_classe Cod_fisc_docente, Anno, Sezione Insegna_materia Cod_fisc_docente, Descrizione, Indirizzo 40

Esempio: Il database Scuola (8) E possibile procedere con la creazione di un Database Access composto dalle Tabelle appena viste. In questo modo abbiamo definito la struttura dei dati. Poi bisogna procedere stabilendo le associazioni tra le Tabelle. Premendo l apposito tasto Relazioni 41

Esempio: Il database Scuola (9) Dalla scheda Relazioni è possibile stabilire le Associazioni tra Tabelle. 42

Esempio: Il database Scuola (10) E importante notare che le Tabelle nate dalle associazioni molti-amolti, si trovano adesso correlate verso le Tabelle da cui derivano con una associazione del tipo molti-a-uno. Esempio: N N 1 1 Tabella nata dalla associazione molti-a-molti. 43

La Normalizzazione La normalizzazione è quel procedimento volto a minimizzare la ridondanza dei dati e quindi a prevenire le possibili anomalie legate alla loro memorizzazione. Il processo di normalizzazione si fonda sulla applicazione delle regole stabilite dalle varie forme normali. 44

Dipendenza funzionale Consideriamo il seguente esempio di dipendenza funzionale: A B La scrittura sopra significa che un valore per l insieme di attributi A determina un singolo valore per l insieme di attributi B. Si dice A determina B o anche che B dipende funzionalmente da A Per esempio, possiamo prendere in considerazione la tabella Giacenza: GIACENZA Prodotto Magazzino Quantità T-Shirt Palermo 18 Polo Messina 26 Nella tabella Giacenza, abbiamo che la chiave, costitutita dall insieme di attributi { Prodotto, Magazzino }, determina funzionalmente l attributo Quantità. Per indicare ciò si usa la scrittura: { Prodotto, Magazzino } Quantità 45

1NF Prima forma normale Si dice che una Tabella (relazione) è in 1NF (prima forma normale) se: Tutte le righe della tabella contengono lo stesso numero di colonne; I campi (attributi) rappresentano informazioni elementari (atomiche); I valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio; Ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne; 46

Esempio di violazione della 1NF Nell esempio seguente, abbiamo la tabella Dipendente che viola la 1NF, perché pur esistendo una chiave primaria Matricola, l'attributo Familiari_a_carico non è atomico. DIPENDENTE Matricola Nome Indirizzo Familiari_a_carico M001 Mario Via Roma 101 Anna, Lino, Stella M002 Carlo Via Milano 89 Elena, Franco M003 Luigi Via Firenze 51 Maria, Roberta 47

Soluzione alla violazione della 1NF In questo caso, è necessario ristrutturare la tabella e suddividerla in due tabelle come segue: FAMILIARE DIPENDENTE Matricola Nome Indirizzo M001 Mario Via Roma 10 M002 Carlo Via Lazio 89 M003 Luigi Via Fani 51 Codice familiare Nome Matricola F001 Anna M001 F002 Lino M001 F003 Stella M001 F004 Elena M002 F005 Franco M002 F006 Maria M003 F007 Roberta M003 Si vede chiaramente che tra le due tabelle nate dalla scomposizione, esiste una associazione uno-a-molti, in quanto per ogni record presente nella tabella Dipendente, vi sono tanti record nella tabella Familiari per quanti sono i familiari a carico. Il campo Matricola della tabella Familiari prende il nome di chiave esterna verso la tabella Dipendente, in quanto permette di sapere, partendo da un certo familiare, chi sia il dipendente che lo tiene a carico. 48

2NF Seconda forma normale Si dice che una Tabella (relazione) è in 2NF (seconda forma normale) se: E in prima forma normale; Tutti i suoi attributi non chiave dipendono dall intera chiave, cioè non dipendono soltanto da una parte della chiave; 49

Esempio di violazione della 2NF La tabella Inventario definita dallo schema: Inventario (Prodotto, Magazzino, Quantità, Indirizzo_magazzino) Non è in seconda forma normale perché l attributo Indirizzo_magazzino dipende funzionalmente dall attributo Magazzino, che risulta essere solo una parte della chiave. INVENTARIO Prodotto Magazzino Quantità Indirizzo_magazzino Pantaloni Palermo 25 Via Roma 36 T-Shirt Trapani 42 Via Napoli 72 Polo Palermo 13 Via Roma 36 Camicie Trapani 30 Via Napoli 72 50

Soluzione alla violazione della 2NF Anche in questo caso, è necessario intervenire sulla Tabella suddividendola in due tabelle come segue: SEDE Magazzino Indirizzo_magazzino Palermo Via Roma 36 Trapani Via Napoli 72 INVENTARIO Prodotto Magazzino Quantità Pantaloni Palermo 25 T-Shirt Trapani 42 Polo Palermo 13 Camicie Trapani 30 Si vede chiaramente che tra le due tabelle nate dalla scomposizione, esiste una associazione uno-a-molti, in quanto per ogni record presente nella tabella Sede, vi sono tanti record nella tabella Inventario per quanti sono i prodotti presenti in quel magazzino. Il campo Magazzino della tabella Inventario rappresenta la chiave esterna verso la tabella Sede, in quanto permette di sapere, partendo da un certo prodotto, l indirizzo del magazzino in cui è depositato. 51

3NF Terza forma normale Si dice che una Tabella (relazione) è in 3NF (terza forma normale) se: E in seconda forma normale; Tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non vi sono attributi non-chiave che dipendono da altri attributi non-chiave; 52

Esempio di violazione della 3NF Consideriamo per esempio, l anagrafica di una associazione di studenti appartenenti a diverse scuole. La tabella potrebbe essere strutturata nel modo seguente: Studenti (Nome, Scuola, Telefono_scuola) Non è in terza forma normale, perché c è un attributo non-chiave (Telefono_scuola) che dipende da un altro attributo non-chiave (Scuola). STUDENTI Nome Scuola Telefono_scuola Rossi ITC Levi 0225457842 Bianchi ITIS Barsanti 0612894658 Verdi ITC Levi 0225457842 Lanza ITIS Fermi 01134567890 Giorgi ITIS Barsanti 0612894658 53

Soluzione alla violazione della 3NF Ancora una volta, procediamo scomponendo la tabella Studenti in due tabelle come segue: STUDENTI Nome Rossi Bianchi Verdi Lanza Giorgi Scuola ITC Levi ITIS Barsanti ITC Levi ITIS Fermi ITIS Barsanti ISTITUTI Scuola Telefono_scuola ITC Levi 0225457842 ITIS Barsanti 0612894658 ITIS Fermi 01134567890 In questo caso tra le tabelle nate dalla scomposizione, esiste una associazione uno-a-molti da Istituti verso Studenti, in quanto per ogni record presente nella tabella Istituti, vi sono tanti record nella tabella Studenti per quanti sono gli di quella scuola che fanno parte dell associazione. Il campo Scuola della tabella Studenti rappresenta la chiave esterna verso la tabella Istituti, in quanto permette di sapere, partendo da un certo studente, il telefono della scuola cui appartiene. 54

Conseguenze della Normalizzazione Attraverso l applicazione delle regole corrispondenti alle tre forme normali esaminate, abbiamo la garanzia di: 1. Evitare problemi di ridondanza e inconsistenza dei dati 2. Le tabelle generate dalla scomposizione, contengono le stesse informazioni di partenza e mantengono le dipendenze tra gli attributi 55

I DataBase in Access Un Database in Access risulta composto da un unico file su disco con estensione.mdb (Microsoft DataBase). Un Database Access è composto da diversi oggetti: tabelle query maschere report macro moduli Tanti oggetti messi in relazione tra loro costituiscono il Database. 56

Le Tabelle in Access Una tabella in Access rappresenta una relazione nel modello Relazionale. Una tabella è caratterizzata dalla struttura, cioè dal nome è dal tipo dei campi che compongono il record. I campi corrispondono agli attributi, mentre i record alle tuple. Quindi una relazione nel modello relazionale è fatta di tuple. Una tabella in Access è fatta di record. 57

Le Tabelle in Access Per creare una Tabella in Access è possibile utilizzare diverse modalità. Quella più usata è Crea una Tabella in visualizzazione struttura. 58

Le Tabelle in Access Utilizzando questa modalità è possibile specificare il formato del record. Specificare il formato del record significa fissare i nomi dei campi ed il tipo di dato che possono contenere. 59

Le Tabelle in Access Una volta creata la tabella in modalità visualizzazione struttura, è possibile inserire i dati al suo interno. Nel caso della tabella prodotti l aspetto sarà il seguente: 60

Le Query in Access Una query di Access può rappresentare: un comando (apporta modifiche al Database); una vista (non modifica il Database); Query che non modificano il Database: Query di Selezione; Query che modificano il Database: Query di Creazione Tabella; Query di Aggiornamento; Query di Accodamento; Query di Eliminazione; 61

Le Query in Access Anche per la creazione di una Query è possibile utilizzare diverse modalità. Quella più usata è Crea una Query in visualizzazione struttura. 62

Le Query di Creazione Tabella Le query di creazione tabella consentono di creare una nuova tabella con i record estratti da altre tabelle. La nuova tabella creata può essere aggiunta allo stesso oppure ad un altro Database. Per creare una query di creazione tabella bisogna scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura. 63

Le Query di Aggiornamento Tabella Le query di aggiornamento tabella consentono di effettuare automaticamente l aggiornamento dei valori di uno o più campi della tabella. Formula di aggiornamento Per creare una query di aggiornamento tabella bisogna scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nel campo Aggiorna a la variazione da apportare al campo da aggiornare. 64

Le Query di Accodamento Le query di accodamento consentono di effettuare un accodamento automatico dei record prelevati da un altra tabella. Campo in cui accodare Per creare una query di accodamento, basta scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nei campi Accoda a, i campi ai quali devono essere accodati quelli risultanti dal prelievo. 65

Le Query di Eliminazione Le query di eliminazione consentono di rimuovere automaticamente da una tabella tutti i record che rispondono ad un determinato criterio. Criterio di selezione Per creare una query di eliminazione, basta scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nei campi Criteri, i valori che devono avere i campi dei record da eliminare. 66

Le Query di Selezione Le query di selezione, a differenza delle precedenti, non apportano modifiche al database, ma servono solo per effettuare ricerche sui dati sulla base di criteri specificati. Criterio di selezione Per creare una query di eliminazione, basta andare in modalità Crea Query in Visualizzazione Struttura, dato che per default Access crea query di selezione. Poi bisogna specificare nei campi Criteri, i valori che devono avere i campi dei record da estrarre e visualizzare. 67

Le Maschere in Access Per facilitare il lavoro dell utente finale nella gestione dei dati di un Database è possibile realizzare maschere per l aggiornamento dei dati. Le maschere offrono un metodo di rappresentazione che semplifica la leggibilità dei dati contenuti nelle tabelle. Le maschere servono quindi a creare una interfaccia amichevole per l utente del database. 68

Le Maschere in Access La modalità più semplice per creare una maschere è attraverso la Creazione guidata. In questo modo è possibile attraverso poche domande, creare velocemente la maschera desiderata. 69

Le Maschere in Access Durante la creazione guidata maschere, verrà chiesto quali tabelle e quali campi far visualizzare nella maschera. Inoltre è possibile specificare il tipo di layout della maschera, oltre che uno stile di colori e caratteri tra diversi modelli predefiniti. Esempio di maschera E importante notare che oltre a visualizzare i campi, la maschera permette anche di modificarli. 70

Le Maschere in Access Una volta creata una maschera con la creazione guidata, è possibile modificarne la struttura. Basta cliccare col tasto destro del mouse sul nome della maschera e scegliere dal menù l opzione visualizza struttura. Comparirà una schermata tipo quella in figura, attraverso la quale potrete apportare tutte le modifiche desiderate. Modifica struttra maschera Qui a fianco c è la casella degli strumenti utilizzabili per creare ogni tipo di maschera a seconda delle esigenze. 71

I Report in Access Molto spesso per presentare i dati su stampa è opportuno ricorrere all utilizzo di un Report, in pratica un tabulato. La riproduzione su carta delle tabelle risulta troppo rigida e scarsamente leggibile all utente finale. I report risultano più adeguati alla necessità di presentare, in modo ordinato ed elegante, i dati estratti dal database. 72

I Report in Access Anche per la creazione dei Report è possibile usufruire della funzione Creazione Guidata Report, che ci semplifica notevolmente il lavoro. Come nel caso delle maschere, anche stavolta basterà rispondere ad alcune domande, per avere subito pronto il nostro report personalizzato. 73

I Report in Access Durante la creazione guidata report, viene chiesto quali tabelle e quali campi far visualizzare nel report. E possibile inoltre, specificare la struttura del report, l ordinamento su uno o più campi, lo stile ed altre opzioni. Esempio di report Il report presenta i dati estratti dal Database in un formato chiaro ed elegante. 74

I Report in Access Una volta creato un report con la creazione guidata, è possibile modificarne la struttura. Basta cliccare col tasto destro del mouse sul nome del report e scegliere dal menù l opzione visualizza struttura, comparirà una schermata come quella in figura, attraverso la quale possiamo apportare tutte le modifiche desiderate alla struttura del report. 75

Conclusioni In conclusione possiamo dire che è possibile approfondire i contenuti esposti nella seguente unità didattica consultando i testi riportati nella bibliografia. 76

Bibliografia 1. Le Basi di Dati e Il linguaggio SQL A. Lorenzi, D. Rossi Editore Atlas 2. Database Systems Elmasri, Navathe Editore Addison-Wesley 77