U D 1 : Introduzione U.D. I d i aii D B DataBase Prof. Giuseppe Di Capua G Generalità li à e definizione d fi i i di un Data D B Base Introduzione In ogni modello di organizzazione della vita dell’uomo vengono trattate INFORMAZIONI Una volta individuate e poi raccolte raccolte, tali informazioni devono essere memorizzate, in modo che si possa facilmente: Recuperarle in base a criteri di ricerca; Aggiungerne di nuove; Modificarle, apportando variazioni nel tempo; Modificarle C Cancellarle, Cancellarle ll l quando d non sono più iù necessarie; i Introduzione La necessità di raccogliere informazioni era già sentita prima dell’avvento dell avvento del computer ma solo ll’informatica informatica ha permesso di realizzare strumenti idonei alla gestione di informazioni (anche in grandi quantità) Nell’informatica, la Teoria delle Basi di Dati studia come organizzare al meglio grandi quantità di informazioni per poterle gestire in modo: Introduzione •Semplice Semplice, ovvero le informazioni devono essere facilmente f ibili in fruibili i ambiti bi i diversi di i e da d utentii diversi; di i •Efficiente Efficiente, perché l’utilizzo delle risorse del computer deve essere ottimizzata; • efficace efficace, nel senso che le informazioni devono rappresentare la realtà che si vuole analizzare (p (per esempio p un’età non ppuò essere negativa); •Sicuro, le operazioni sui dati deve essere consentita solo ad utenti id tifi bili e autorizzati identificabili t i ti Introduzione In base a quanto detto possiamo dare una prima definizione di Base di dati: Una Base di Dati (in inglese DataBase) può essere considerata come una raccolta di dati progettati per essere fruibili in maniera ottimizzata da applicazioni diverse e da utenti diversi Archivi Prima dell’avvento dei Database, le informazioni venivano memorizzate e gestite attraverso i cosiddetti archivi (file). (file) Venivano usati, per memorizzare le informazione file diversi non collegati tra loro. Gli archivi convenzionali presentano dei limiti (come vedremo in seguito) Le tecniche di ggestione delle basi di dati nascono pper superare p i problemi e i limiti insiti nelle tradizionali organizzazioni degli archivi in modo non integrato. Limiti degli archivi convenzionali Esempio di applicazione pratica Si vuole gestire i dati legati ad una università. università In particolare l’orario di un corso e i ricevimenti docenti. Con gli archivi classici verranno creati due file. Il primo riporta ll’orario orario dei corsi con ll’indicazione indicazione della Materia, Materia docente,Aula e orario; Il secondo riporta p il docente, le materie e l’orario di ricevimento Limiti degli archivi convenzionali 1/7 Limiti degli archivi convenzionali 1/7 Limiti degli archivi convenzionali Problemi C’è ridondanza di dati (L’associazione docente/materia è ripetuta) • il fatto che ggli stessi dati ((nome dei docenti, materie)) compaiano p in due archivi diversi può causare anomalie in fase di aggiornamento e quindi problemi di incongruenza e i inconsistenza it ( il dato (se d t viene i modificato difi t in i un archivio hi i e non nell’altro). Limiti degli archivi convenzionali Gestione orario lezioni Archivio A hi i 1: 1 orario lezioni Gestione ricevimento Archivio 2: ricevimento i i t Limiti degli archivi convenzionali Gestione orario lezioni Base di dati Gestione ricevimento Limiti degli archivi convenzionali Altro esempio di applicazione pratica Si vogliono li gestire i i contii correntii di un’azienda ’ i d bancaria b i appartenenti alle diverse filiali e i movimenti contabili che vengono effettuati sui conti. conti Nella sede centrale della banca si vogliono organizzare le informazioni f riguardanti g i conti delle ffiliali. Per ciascun conto occorre registrare il numero di conto, il nome dell’intestatario dell intestatario, ll’indirizzo indirizzo, il codice della filiale e la descrizione della filiale. 1/7 Limiti degli archivi convenzionali Soluzione del problema con l’approccio tradizionale Le informazioni vengono organizzate in un archivio i cui record hanno il seguente tracciato: NUMCONTO NOME INDIRIZZO CODFILIALE DESCRIZ 9 40 30 5 20 Al contempo, nelle filiali bisogna registrare le informazioni sui movimenti effettuati sui conti: numero del conto, nome del correntista città, correntista, città data del movimento, mo imento importo e causale. ca sale Il record del file corrispondente possiede il seguente tracciato: NUMCODICE 9 DESCRIZ 40 CITTA 20 DATA 8 IMPORTO 10 CAUSALE 3 2/7 Limiti degli archivi convenzionali Quando si vogliono associare tra loro i dati contenuti nei due archivi ppossono nascere pproblemi di qquesto tipo: p • i sono due campi con nomi diversi che rappresentano lo stesso dato (NumConto e NumCodice); • lo stesso dato viene rappresentato in formati diversi (Indirizzo nel primo tracciato e Città nel secondo); • ci sono due campi con lo stesso nome che rappresentano dati diversi (Descriz nel primo archivio rappresenta la filiale e nel secondo l’intestatario del conto); NUMCONTO NOME INDIRIZZO CODFILIALE DESCRIZ 9 40 30 5 20 NUMCODICE 9 DESCRIZ 40 CITTA 20 DATA 8 IMPORTO 10 CAUSALE 3 3/7 Limiti degli archivi convenzionali Quando si vogliono associare tra loro i dati contenuti nei due archivi ppossono nascere pproblemi di qquesto tipo: p • c’è ridondanza di dati (la descrizione della filiale è ripetuta per ogni g conto nel pprimo tracciato,, il nome e la città del correntista vengono ripetuti per ogni movimento); • il fatto che ggli stessi dati compaiano p in due archivi diversi ppuò causare anomalie in fase di aggiornamento e quindi problemi di inconsistenza (se il dato viene modificato in un archivio e non nell’altro). ll’ lt ) NUMCONTO NOME INDIRIZZO CODFILIALE DESCRIZ 9 40 30 5 20 NUMCODICE 9 DESCRIZ 40 CITTA 20 DATA 8 IMPORTO 10 CAUSALE 3 4/7 Limiti degli archivi convenzionali Quali sono le cause? RIDONDANZA DEI DATI (Gli stessi dati compaiono in maniera duplicata) INCONGRUENZA (se il dato viene aggiornato in un archivio e non in i un altro, lt oppure se sono presentiti valori diversi per lo stesso dato) INCONSISTENZA DEI DATI (i dati a disposizione non sono più affidabili, perché hé non sii sa iin modo d certo t quale l d deii di diversii valori sia quello corretto) Tutto ciò deriva dal fatto che i dati sono organizzati in archivi diversi, in maniera non integrata. 5/7 Limiti degli archivi convenzionali Soluzione Individuare con precisione quali sono gli elementi che caratterizzano l’applicazione. Associamo a ciascuno di essi un archivio,, il cui tracciato contiene i campi che individuano l’elemento e una chiave (tipicamente un codice). L La chiave hi id ifi identifica univocamente i il recordd all’interno ll’i dell’archivio e consente di stabilire legami con gli altri archivi. • archivio delle filiali, con codice filiale e descrizione filiale; • archivio dei conti, con codice conto, nome del correntista, i di i indirizzo, città, i à codice di filiale fili l di appartenenza; • archivio dei movimenti, con numero del movimento, data, importo causale, importo, causale codice del conto sul quale è stato effettuato il movimento. 6/7 Limiti degli archivi convenzionali CODFILIALE 5 DESCRIZ 20 NUMCONTO NOME INDIRIZZO CITTA FILIALE 9 40 30 20 5 NUMMOV DATA IMPORTO CAUSALE CODICE 6 8 10 3 9 • archivio delle filiali, con codice filiale e descrizione filiale; • archivio dei conti, con codice conto, nome del correntista, i di i indirizzo, città, i à codice di filiale fili l di appartenenza; • archivio dei movimenti, con numero del movimento, data, importo causale, importo, causale codice del conto sul quale è stato effettuato il movimento. 7/7 Le basi di dati Basi di dati (database): archivi di dati, organizzati in modo integrato attraverso tecniche di modellazione dei dati e gestiti sulle memorie di massa dei d i computer t attraverso tt appositi iti software ft (DBMS) con (DBMS), l’obiettivo di raggiungere una grande efficienza nel trattamento e nel ritrovamento dei dati. Il database è una collezione di archivi di dati ben organizzati e ben strutturati in modo che possano costituire una base di lavoro per utenti strutturati, diversi con programmi diversi. Es: i dati relativi agli articoli del magazzino di un’azienda possono essere utilizzati dal programma che stampa le fatture e dal programma magazzino che stampa i listini di magazzino. LISTINI FATTURE ARTICOLI Caratteristiche delle basi di dati La teoria eo dei d de database b se introduce oduce uuna nuova uov metodologia e odo og d di organizzazione degli archivi di dati, con l’obiettivo di superare i limiti visti. Caratteristiche fondamentali: Utilizzo da parte di più utenti: i dati organizzati in un unico database possono essere utilizzati da più utenti con i loro pprogrammi, g , consentendo anche una visione solo pparziale del database da parte del singolo utente; eliminazione della ridondanza: gli stessi dati non compaiono più volte in archivi diversi; 1/2 Caratteristiche delle basi di dati facilità di accesso: il ritrovamento dei dati è facilitato e svolto con velocemente; l integrità dei dati: vengono previsti controlli per evitare anomalie ai dati causate dai programmi e dalle applicazioni degli utenti; sicurezza dei dati: sono previste procedure di controllo per impedire p accessi non autorizzati ai dati contenuti nel database e di protezione da guasti accidentali; uso di linguaggi per la gestione del database: il database viene gestito i attraverso comandi di per la l manipolazione i l i d i dati dei d i in i esso contenuti e comandi per effettuare interrogazioni alla base di dati, al fine di ottenere le informazioni desiderate. desiderate 2/2 DBMS DBMS (DataBase Management System): È un prodotto software che offre la possibilità di gestire un database su una memoria di massa. massa Un DBMS è dotato di appositi comandi grazie ai quali gestisce il d b se. database. L’insieme di tali comandi costituiscono un vero e proprio linguaggio. In particolare abbiamo: DDL (data definition language) –usato per descrivere i dati, tabelle; DML (Data Manipulation Data) – usato per accedere ai dati per inserirli,, modificarli,, cancellarli;; DCL (Data Control Language) – usato per stabilire vincoli di accesso e permessi ai dati, vincoli di integrità; QL (Query Language) – usato per interrogare il database per ritrovare i dati in esso inseriti. FINE