Sei sulla pagina 1di 57

Informatica

Tecniche della Prevenzione nellAmbiente e nei Luoghi di Lavoro

Anno accademico 2011-2012

Lezione V parte 2
Universit degli Studi di Napoli Federico II Prof. Ing. Guglielmo Toscano

Archivi e basi di dati

Che cosa e un DataBase


Raccolta di grandi quantit di dati e di informazioni archiviati su supporto magnetico secondo regole precise e generali Evoluzione degli archivi cartacei E un sistema di gestione automatica delle informazioni memorizzate su calcolatore

Caratteristiche di un DataBase
Accedere velocemente ai dati Ricerca veloce dei dati di interesse Risparmio di spazio Flessibilit nella riorganizzazione dellarchivio Correlare le informazioni Consente di prendere delle decisioni in base ai dati consultati

Operazioni tipiche su un DataBase


AGGIORNAMENTO
Inserimento di una nuova registrazione Cancellazione di una registrazione esistente Modifica di una registrazione esistente

INTERROGAZIONE
Ricerca di dati Ordinamento dei dati

MODIFICHE
Modifica di voci nella registrazione Aggiunta di voci nella registrazione

Conservazione dei dati

I dati, frutto di elaborazioni o dati semplici, devono essere conservati nel tempo e visto che la Memoria Centrale di piccole dimensioni, ma soprattutto volatile, si ricorre alle MEMORIE DI MASSA.

Memorie di Massa

Sono caratterizzate da:


Grandi dimensioni Costo basso Supporti magnetici Supporti ottici Lentezza

Si dividono in:
Dischi rigidi (HD) Dvd dual layer Nastri o Bobine Dischi ottici

Archivi

Gli archivi di dati, per essere efficienti, hanno bisogno di essere continuamente aggiornati. Tale operazione viene effettuata con particolari software detti Sistemi per la gestione di basi di dati (DBMS DataBase Management System); fondano il loro funzionamento su regole ben precise.

I Record

Gli archivi sono organizzati in Record generalmente di lunghezza fissa

Nome Campo

Cognome

Indirizzo

Telefono

Campo Record Nome del Campo

I File
Sono linsieme di pi Record

Nome Nome Nome Nome

Cognome Cognome Cognome Cognome

Indirizzo Indirizzo Indirizzo Indirizzo

Telefono Telefono Telefono Telefono

Nome Nome

Cognome Cognome

Indirizzo Indirizzo

Telefono Telefono

Basi dei Dati


I dati sono raggruppati in strutture dette DataBase che operano in uno strato al di sopra del S.O. Possono essere delle strutture semplici (vedi rubrica telefonica personale) o molto articolate (gestione dei clienti di una banca)

Gestione degli Archivi


Archivio A
Old Db

Archivio A Programma 2

Archivio A Programma 3

Programma 1

Gestione separata

Programma 1
New Db

Programma 2

Programma 3

DBMS
Base di Dati

Gestione Base Dati

Problemi nella Gestione degli Archivi

Si possono manifestare quando gli archivi vengono utilizzati da programmi diversi:


Inconsistenza e ridondanza dei dati: una stessa informazione
pu essere replicata un certo numero di volte, modifica fatta solo su alcuni archivi;

Riservatezza dei dati:privacy; Integrit dei dati:alcuni programmi impongono delle regole ai dati,
regole che atri programmi potrebbero violare

Concorrenza:programmi diversi possono operare


contemporaneamente sullo stesso file

Soluzioni con DBMS


La base dei dati unica per tutti i programmi Il DBMS concede ai vari programmi lutilizzazione o meno di parti del D.B. Il DBMS impedisce che programmi violino lintegrit del D.B. Il DBMS regola laccesso contemporaneo di pi programmi a un file.

Modelli di DBMS
Gerarchico : basato su strutture ad albero (padre genera figlio ecc.) anni 60 Reticolare : struttura a rete anni 70 Relazionale : basato sul concetto di insieme e sulle tabelle inizio anni 80 A oggetti :utilizza strutture tipiche dei programmi orientati agli oggetti

Schema e Istanza o Occorrenza


In una base di dati, la descrizione degli stessi, ne definisce lo SCHEMA, mentre l ISTANZA rappresenta il valore che la B.D. assume in un preciso istante di elaborazione del database. I linguaggi di programmazione dei DBMS possono essere rivolti:

Allo Schema (Data Definition Language DDL, viene definito lo schema del DB) AllIstanza (Data Manipulation Language DML, svolge funzioni di interrogazione (query), modifica di dati)

Astrazione di una Base di Dati


Si configura nei suoi tre livelli di astrazione: Fisico: identifica come i dati sono distibuiti sulle memorie di massa, come sono memorizzati (modo sequenziale, diretto, ad indice) Logico: quali sono i campi logici del DB e come sono collegati tra loro Esterno: modalit di presentazione dei dati agli utenti esterni (pu essere diverso a seconda degli utenti che interrogano il DB)

Una corretta DBMS inoltre deve garantire:


Indipendenza fisica :si pu ridefinire la configurazione della memoria di massa senza dover alterare i programmi degli utenti Indipendenza logica : possibilit di poter implementare nuove esigenze degli utenti senza dover modificare gli schemi preesistenti.

Le Transazioni in DBMS (ACID)


Devono avere le seguenti caratteristiche Atomicit: loperazione po avvenire (commit) o non avvenire

(rollback) importante che essa sia completa e non parziale (es. trasferimento di danaro da un conto allaltro)

Consistenza: vengono annullate le operazioni che causano una


violazione di integrit dei dati

Isolamento:nel caso di pi processi concorrenti su una stessa base di

dati uno dei processi messo in attesa rispetto allaltro, in questa fase si potrebbero perdere dati. Con lisolamento questo problema viene risolto e ogni processo pu essere portato correttamente a termine

Durabilit: di tutte le transazioni si deve conservare memoria.

Utilizzo della Base dei Dati

Ogni Base dei Dati ha un Amministratore che ne definisce le caratteristiche e che la manutiene. Egli lunico a poter usare il Data Definition Language. Utente comune: accede al DB con delle maschere intuitive (bancomat) Utente Teminalista: anchesso non interagisce con uno specifico linguaggio di programmazione, ma pu mandare in esecuzione una serie di procedure Utente Programmatore Applicativo: colui che scrive le procedure per gli utenti, ma non pu modificare la struttura del DB Utente casuale: utilizzando il Data Manipulation Language pu interrogare il DB secondo particolari query costruite secondo i bisogni.

MS Access

Problema
Gestione delle informazioni relative ad unOrganizzazione Inserimento, modifica, cancellazione ed elaborazione delle informazioni

processi interni di aggiornamento e analisi input esterni

Organizzazione

richiesta di servizi e risposta

Soluzione: archivi
Trovare il modo di conservare e organizzare le informazioni interessanti di una realt per poterle recuperare ed elaborare Anni 70: archivi cartacei Oggi: archivi elettronici, database Gli archivi sono un modello della parte della realt che si ritiene interessante

Progettazione di un archivio

improponibile progettare un archivio sulla base del solo universo del discorso e senza ladozione di metodologie di progettazione Un modello (es. un database) il risultato di un processo di interpretazione, guidato dalle idee e conoscenze possedute dal soggetto che interpreta Definire un modello unoperazione complessa (intuizione e metodo)

Metodologie

Esistono metodologie di modellazione che forniscono gli strumenti e linguaggi per: individuare e rappresentare le componenti interessanti delluniverso del discorso, al fine di realizzarne un modello concettuale; per successivamente convertire il modello concettuale in un database relazionale Il modello concettuale descrive la realt in maniera intuitiva (poco informatica) ed allo stesso tempo facilmente trasformabile in un database, cio in un modello della realt interpretabile da un computer

Modellazione e progettazione
Organizzazione
Modello concettuale
A B

ER

Mappatura in modello relazionale equivalente

Soluzione anni 70

Creazione DB

Database

Archivio cartaceo

Linguaggio per la definizione di modelli: formalismo grafico ER


Descrizione

della natura della realt in termini di classi e associazioni modello ER di un universo del discorso detto schema

Il

ER: classi e attributi


Si modellano le classi, cio collezioni di entit dalla struttura omogenea
lingueParlate

Persone

telefono nome

La classe Persone: una collezione di entit persone con propriet lingueParlate, telefono, nome
Attributi
totale multivalore parziale unione

strutturato

Aspetto linguistico

Es. Associazioni (1:1)


(1:1) associazione CorsiTenuti-TenutoDa tra Professori e Corsi: ogni professore deve tenere un corso (totale) e ogni Corso tenuto da un professore (totale)

corsoTenuto

tenutoDa Corsi

Professori

Aspetto linguistico

Es. Associazioni (1:n)


(1:n) associazione Tesista-Relatore tra Professori e Studenti: ogni professore pu avere uno, nessuno o pi tesisti (parziale), mentre uno studente pu avere nessuno o un relatore (parziale)

relatoreDi

tesistaDi Studenti

Professori

Aspetto linguistico

Es. Associazioni (n:n)


(n:n) associazione CorsiSeguiti-StudentiIscritti tra Studenti e Corsi: ogni studente segue almeno un corso (totale) e ogni corso seguito da almeno uno studente (totale)

studentiIscritti

corsiSeguiti Studenti

Corsi

Esempio: Segreteria dellUniv. di Napoli


Gestione degli studenti e degli esami da essi passati Le classi di entit in gioco sono

Classe degli Studenti: tutti gli studenti iscritti alluniversit, con propriet Nome, Matricola, Provincia, Data di nascita Classe degli Esami: tutti gli statini (prove ufficiali) reative agli esami passati dagli studenti, con propriet Corso, Voto, Lode, Data, Candidato.

Modello concettuale

esamiSuperati passatoDa Studenti Esami

Soluzione anni 70 (1/2)

Uno schedario di studenti


Ad ogni studente corrispondeva una scheda con tutti i suoi dati:
nome, matricola, provincia, data di nascita

Uno schedario degli esami


Ad ogni esame sostenuto corrispondeva uno statino:
candidato, voto, lode (si/no), data, corso

Soluzione anni 70 (2/2)

Per cercare gli esami passati dagli studenti di Napoli, limpiegato doveva:
Cercare nello schedario studenti tutte le schede relative a studenti di Napoli Per ogni scheda trovata:
leggere il numero di matricola Cercare nello schedario degli esami, tutti gli statini relativi al numero di matricola dello studente

Soluzione con Database Relazionale

Un database relazionale
Una collezione di dati elettronici che rappresentano/modellano una realt di interesse Ad ogni collezione di entit nella realt di interesse corrisponde una tabella nel database

Tabella Studenti
Struttura tabella:
Nome: Text Matricola: Number Provincia: Text(2) DataNascita: Date Record

Campo
Matricola 171523 167459 179856 Provincia NA CE BN DataNascita 01/01/1980 03/10/1975 12/07/1978

Nome Esposito Rossi Bianchi

Bordi

175649

NA

25/12/1980

Valore

Tabella Esami
Struttura tabella:
Corso: Text Candidato: Text Data: Date Voto: Number(2) Lode: Si/No
Materia BD BD FP

Candidato Esposito Rossi Bianchi

Data 12/01/01 15/01/01 13/02/01

Voto 28 30 30

Lode No Si No

BD
LMM

Bordi
Esposito

15/01/01
11/02/01

25
18

No
No

Struttura Tabella

Una tabella una collezione di dati caratterizzati dalla stessa struttura: Insieme di coppie (NomeCampo,TipoCampo) Un tipo qualifica quali valori possono essere inseriti in un campo e di conseguenza quali operazioni sono consentite su di esso:
Nome in Studenti un campo di tipo Text: una sequenza di caratteri di lunghezza arbitraria; due valori Text possono essere concatenati per ottenerne uno solo che li mette insieme DataNascita un campo di tipo Date: un valore di tipo gg/mm/aaaa; un valore Date pu essere passato a funzioni che ritornano lanno, il giorno o il mese del valore.

Chiave Primaria (1/3)


Definizione: se un campo di una tabella definito come chiave primaria, non esistono due record nella tabella che hanno gli stessi valori per quel campo Uso: la chiave primaria di ogni tabella definita da chi definisce il database, per avere modo di distinguere univocamente i record di una tabella

Chiave Primaria (2/3)

Nella realt degli studenti non esistono due studenti con la stessa matricola
Nella tabella Studenti la chiave primaria dichiarata il numero di matricola Ogni tentativo di inserire nella tabella il record di uno studente che ha lo stesso valore del campo matricola di un altro gi presente nella tabella, viene impedito e causa un messaggio di errore

Chiave Primaria (3/3)

Nella realt degli Esami?

Nella realt degli Esami non possono esistere due esami con lo stesso candidato e la stessa materia: la chiave primaria dichiarata la coppia di campi (materia, candidato) in alternativa un nuovo campo, codiceEsame: a volte pu essere conveniente definire una propriet fittizia, non presente nella realt di interesse, che compia la funzione di chiave primaria (ad esempio quando la chiave reale composta da troppi campi)

Chiave Esterna (1/3)


Ultima nozione fondamentale quella di Chiave Esterna di una tabella Una chiave esterna un campo che contiene il valore di una chiave primaria:

Questo mette in relazione il record che contiene un certo valore per la chiave esterna con il record, in unaltra tabella, che contiene quel valore per la chiave primaria

Chiave Esterna (2/3)

Per i nostri scopi, in quale tabella dellesempio deve essere definita una chiave esterna?

Nella tabella Esami

Quale campo potrebbe essere chiave esterna?

Nessuno: nessun campo della tabella ha valori nella chiave primaria della tabella Studenti

Chiave Esterna (3/3)

Se si definisse il campo Candidato come chiave esterna, quali problemi potremmo avere?
Studenti omonimi: in una ricerca, gli esami passati da studenti diversi con lo stesso nome verrebbero associati ad entrambi gli studenti!!!

Tabella Esami corretta


La tabella Esami deve essere definita Struttura tabella: come:
Corso: Text Candidato: Number Data: Date Voto: Number(2) Lode: Si/No
Data 12/01/01 15/01/01

Materia BD BD

Candidato 171523 167459

Voto 28 30 30 25 18

Lode No Si No No No

FP
BD LMM

179856
175649 171523

13/02/01
15/01/01 11/02/01

Relazione tra tabelle


Studenti
Nome Matricola Provincia DataNascita

Esposito

171523

NA

01/01/1980

Esami
Corso BD Candidato 171523 Data 12/01/01 Voto 29

Il campo Candidato chiave esterna di Esami. Contiene valori della chiave primaria Matricola di Studenti. Il valore di Candidato mette in relazione il relativo record con il record dello studente che ha passato lesame.

Schema relazionale
esamiSuperati passatoDa Studenti Esami

Nome Provincia Matricola DataNascita

Studenti

Esami

Candidato* Voto Corso Lode Data

Ricerca dei dati


Un database relazionale consente la ricerca dei dati attraverso un particolare linguaggio di interrogazione detto SQL In SQL possibile formulare richieste del tipo:

Singola tabella:
Dammi i nomi degli studenti nati prima del 1980 Dammi tutti gli esami passati prima del 12/31/2001

Tabelle multiple:
Dammi tutti i nomi e i voti dei corsi che sono stati passati da studenti di Napoli Dammi il nome degli studenti e il numero di esami da essi passati tra il 2000 e il 2001

MS Access (1/2)

Un Sistema per la Gestione di Basi di Dati (SGBD), altrimenti detto DataBase Management System (DBMS)

MS Access (2/2)

Un insieme di strumenti per la


Gestione automatica ed efficiente del database:
Definizione delle tabelle (campi e tipi) e delle relazioni tra di esse Query di inserimento, cancellazione, modifica e ricerca dei record nelle tabelle

Definizione di applicazioni con interfacce utente per la gestione del database


Maschere e Report

Esercizio

Definire un database Access che consenta la gestione delle informazioni relative agli Agenti dellFBI. Di ogni agente interessa il nome, il codice e la data di assunzione. Ogni agente lavora per un dipartimento, il quale caratterizzato da una specializzazione (stragi, cospirazioni, guerre, etc.). Ci interessa fare ricerche
sugli agenti in base a continente, stato e indirizzo dei dipartimenti per cui lavorano; sui dipartimenti in base alle date di assunzione degli agenti; altro...

Definizione del database


Creazione delle tabelle


Attributi e tipi

Creazione delle associazioni


Integrit referenziale Cancellazione e modifica a cascata Caselle combinate

Inserimento dati: rispetto dellintegrit referenziale

Definizione delle query


Selezione della tabella coinvolta Selezione degli attributi coinvolti

Da visualizzare Da sottoporre a vincoli (And e Or)


Query a pi tabelle
Concetto di giunzione

Una query a tutti gli effetti una tabella


I record vengono calcolati dinamicamente al momento della esecuzione Pu essere utilizzata per effettuare altre query

Query: tipologie

Query per la ricerca


Selezione e visualizzazione di record

Query per il calcolo


Max, min, media, somma, etc.

Programma anno 2011/2012


Testi del corso:

- A. Chianese,V. Moscato, A. Picariello, I fondamenti dellinformatica per gli umanisti (un viaggio nel mondo dei bit), Liguori Editore, 2010. - A. Cecchi, R. Orazi, Informatica e crittografia attraverso gli esercizi, Liguori Editore, 2009.

- Dispense e slide a cura del docente.


Contatti: toscano@unina.it Telefono 081.7464223