Scarica Base di dati. informatica documentale e più Appunti in PDF di Elementi di Informatica solo su Docsity!
INFORMATICA DOCUMENTALE
1.Introduzione.
Base di dati: insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un ente, azienda, ufficio, persona).
Da un punto di vista:
- Informatico: le basi di dati sono un supporto digitale su cui immagazzinare i dati, un software che permette di recuperare i dati a una rete che ne permette la condivisione.
- Metodologico
Contenuti chiave:
- Modelli: per l’organizzazione dei dati
- Linguaggi: per l’utilizzo dei dati
- Metodologia: di progettazione di basi di dati
Perché?
- La comunicazione prevede lo scambio e quindi la trasmissione e il recupero di informazioni
- Le informazioni devono essere conservate, aggiornate e gestite in modo efficiente
Parole chiave
- Base di dati: un sistema di gestione di basi di dati (Data Base Management System, DBMS) è un sistema software in grado di gestire collezioni di dati che siano grandi , condivise e persistenti , assicurando la loro affidabilità e privatezza. Ogni DBMS deve essere efficiente ed efficace. Una base di dati è una collezione di dati gestita da un DBMS.
- Informatica: scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell’informazione, considerata come supporto della conoscenza umana e della comunicazione. Due anime: - Metodologico - Tecnologico
Sistema informativo:
Componente ( sottosistema ) di una organizzazione che gestisce ( acquisisce, elabora, conserva e produce ) le informazioni di interesse ( cioè utilizzate per il perseguimento degli scopi dell’organizzazione ).
- Ogni organizzazione ha un sistema informativo, eventualmente non esplicitato nella struttura
- Il sistema informativo è di supporto ad altri sottosistemi e va quindi studiato nel contesto in cui è inserito.
- Il sistema informativo è di solito suddiviso in sottosistemi (in modo gerarchico o decentrato), più o meno fortemente integrati.
Sistema organizzativo: insieme di risorse e regole per lo svolgimento coordinato delle attività al fine del perseguimento dei compiti.
- Il sistema informativo è parte del sistema organizzativo
- Il sistema informativo gestisce/esegue processi informativi (processi che coinvolgono le informazioni).
- Le risorse di una azienda:
- Persone
- Denaro
- Materiali
- Informazioni
Sistemi informativi e automazione:
Il concetto di sistema informativo è indipendente dal qualsiasi automatizzazione: esistono organizzazioni le cui ragioni di essere è la gestione di informazione e che operano da secoli (per es. i servizi anagrafici o le banche).
Sistema informatico: porzione automatizzata del sistema informativo: parte del sistema informativo che gestisce informazioni con tecnologia informatica
Gestione dell’informazione:
- Raccolta, acquisizione
- (^) Archiviazione, conservazione
- Elaborazione, trasformazione, produzione
- Distribuzione, comunicazione, scambio
Nelle attività umane , le informazioni vengono gestite in forme diverse:
- Idee informali
- Linguaggio naturale
- Disegni, grafici, schemi
- Numeri e codici
E su vari supporti :
- mente umana
- carta
- dispositivi elettronici (…)
Sistema informativo e sistema informatico:
- Access
- Oracle
- Base (Suite LibreOffice)
- DB
Condivisione:
- Ogni organizzazione è divisa in settori o comunque svolge diverse attività
- A ciascun settore o attività corrisponde un (sotto)sistema informativo
- Possono esistere sovrapposizioni fra i dati di interesse dei vari settori
- Una base di dati è una risorsa integrata, condivisa fra i vari settori
Possibili problemi:
- Ridondanza: informazioni ripetute
- Rischio di incoerenza: le versioni possono non coincidere
Archivio e basi di dati:
Le basi di dati sono condivise:
- Una base di dati è una risorsa integrata, condivisa fra le varie applicazioni
- Conseguenze
- Attività diverse su dati in parte condivisi:
- Meccanismi di autorizzazione
- Attività multi-utente su dati condivisi:
- Controllo della concorrenza
Efficienza: si misura in tempi di esecuzione (tempo di risposta) e spazio di memoria (principale e secondaria). In questo caso è il risultato della qualità del DBMS e della applicazioni che lo utilizzano.
Descrizione dei dati nei DBMS:
Descrizioni e rappresentazioni dei dati a livelli diversi:
- Permettono l’indipendenza dei dati dalla rappresentazione fisica:
- I programmi fanno riferimento alla struttura a livello più alto, e le rappresentazioni sottostanti possono essere modificate senza necessità di modifica dei programmi
- Specifichiamo con il concetto di modelli di dati.
Modello dei dati:
- Insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica
- Componente fondamentale: meccanismi di strutturazione (o costruttori di tipo)
- Come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori
- Ad esempio, il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei.
Organizzazione dei dati in una base di dati:
a. Lo schema:
Orario
Insegnamento Docente Aula Ora
b. L’istanza:
Orario
Insegnamento Docente Aula Ora … … … …
In ogni base di dati esistono:
- Lo schema , sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale)
- L’ istanza , i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale).
Due tipi principali di modelli
- Modelli logici : utilizzati nei DBMS esistenti per l’organizzazione dei dati
- Utilizzati dai programmi
- Indipendenti dalle strutture fisiche
- Esempi: relazionale, reticolare, gerarchico, a oggetti
- Modelli concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema
- Cercano di descrivere i concetti del mondo reale
- un altro contributo all’efficacia è la disponibilità di vari linguaggi e interfacce diverse:
- (^) Linguaggi testuali interattivi (SQL)
- Comandi ( come quelli del linguaggio interattivo) immersi in un linguaggio ospite (Pascal, C, Cobol,…)
- Comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ad hoc, con anche altre funzionalità, anche con l’ausilio di strumenti di sviluppo.
- Con interfacce amichevoli (senza linguaggio testuale)
Una distinzione terminologica sui linguaggi:
- Data manipulation language ( DML ): per l’interrogazione e l’aggiornamento di ( istanze di ) basi di dati
- Data definition language ( DDL ): per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali
Personaggi e interpreti:
- Progettisti e realizzatori di DBMS
- Progettisti della base di dati e amministratori della base di dati (DBA)
- Progettisti e programmatori di applicazioni
- Utenti
- Utenti finali (terminalisti): eseguono applicazioni predefinite (transazioni)
- Utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi
Vantaggi e svantaggi dei DBMS:
PRO CONTRO -dati come risorsa comune, base di dati come modello della realtà
-gestione centralizzata con possibilità di standardizzazione ed economia di scala
-disponibilità di servizi integrati
-riduzione di ridondanze e inconsistenze
-indipendenza dei dati (favorisce sviluppo e manutenzione app)
-costo dei prodotti e della transazione verso di essi
-non sopportabilità delle funzionalità (con riduzione di efficienza)
2.Il modello relazionale
Metodo formale: rispondono a delle regole precise/logico – matematiche
I modelli logici dei dati:
Tre modelli logici tradizionali
- gerarchico
- reticolare
- relazionale
Più recente (e poco diffuso):
Modelli logici, caratteristiche:
- Gerarchico e reticolare: utilizzano riferimenti espliciti (puntatori) fra record
- Relazionale "è basato su valori": anche i riferimenti fra dati in strutture (relazioni) diverse sono rappresentati per mezzo dei valori stessi
Il Modello Relazionale :
- Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati
- Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con efficienza e affidabilità!)
- Si basa sul concetto matematico di relazione (con una variante)
- Le relazioni hanno una naturale rappresentazione per mezzo di tabelle
Relazione: tre accezioni :
- relazione matematica : come nella teoria degli insiemi
- relazione (dall’inglese relationship) che rappresenta una classe di fatti, nel modello Entity- Relationship; tradotto anche con associazione o correlazione
- relazione secondo il modello relazionale dei dati
- Relazione matematica :
- D1 , …, Dn (n insiemi anche non distinti)
- prodotto cartesiano D1×…×Dn :
- l’insieme di tutte le n-uple (d1 , …, dn ) tali che d1ÎD1 , …, dn Î Dn
- relazione matematica su D1 , …, Dn :
- un sottoinsieme di D1×…×Dn.
- D1 , …, Dn sono i domini della relazione
- si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione
- (^) l’utente finale vede gli stessi dati dei programmatori
- i dati sono portabili più facilmente da un sistema ad un altro
- i puntatori sono direzionali
Definizioni Importanti:
- Schema di relazione : un nome R con un insieme di attributi A1 , ..., An :
R(A1 ,..., An )
- Schema di base di dati: insieme di schemi di relazione:
R = {R1 (X1 ), ..., Rk (Xk )}
- (^) Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A:
t[A] denota il valore della ennupla t sull'attributo A
- (Istanza di) relazione su uno schema R(X):
insieme r di ennuple su X
- (Istanza di) base di dati su uno schema R= {R1 (X1 ), ..., Rn (Xn )}:
insieme di relazioni r = {r1 ,..., rn } (con ri relazione su Ri )
Strutture nidificate
- Abbiamo rappresentato veramente tutti gli aspetti delle ricevute?
- Dipende da che cosa ci interessa!
- l'ordine delle righe è rilevante?
- possono esistere linee ripetute in una ricevuta?
- Sono possibili rappresentazioni diverse
Informazione incompleta :
- Il modello relazionale impone ai dati una struttura rigida:
- le informazioni sono rappresentate per mezzo di ennuple
- solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione
- I dati disponibili possono non corrispondere al formato previsto
Informazione incompleta: soluzioni?
- non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...):
- potrebbero non esistere valori “non utilizzati”
- (^) valori “non utilizzati” potrebbero diventare significativi
- in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori
Informazione incompleta nel modello relazionale :
- Tecnica rudimentale ma efficace:
- valore nullo : denota l’assenza di un valore del dominio (e non è un valore del dominio)
- t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore nullo NULL
- Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli
Chiave:
- insieme di attributi che identificano le ennuple di una relazione
- Formalmente:
- un insieme K di attributi è superchiave per r se r non contiene due ennuple distinte t1 e t2 con t1 [K] = t2 [K]
- K è chiave per r se è una superchiave minimale per r (cioè non contiene un’altra superchiave)
Vincoli, schemi e istanze
- i vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati
- interessano a livello di schema (con riferimento cioè a tutte le istanze)
- ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli
- un'istanza può soddisfare altri vincoli (“per caso”)
Esistenza delle chiavi :
- Una relazione non può contenere ennuple distinte ma uguali
- (^) Ogni relazione ha come superchiave l’insieme degli attributi su cui è definita
- e quindi ha (almeno) una chiave
Importanza delle chiavi
- l’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati
- le chiavi permettono di correlare i dati in relazioni diverse:
- il modello relazionale è basato su valori
Chiavi e valori nulli :
- In presenza di valori nulli, i valori della chiave non permettono - di identificare le ennuple - di realizzare facilmente i riferimenti da altre relazioni
Chiave primaria :
- Chiave su cui non sono ammessi nulli
- (^) Notazione: sottolineatura
Integrità referenziale:
- informazioni in relazioni diverse sono correlate attraverso valori comuni
- in particolare, valori delle chiavi (primarie)
- le correlazioni debbono essere "coerenti"
Vincolo di integrità referenziale: un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2.
Es.: vincoli di integrità referenziale fra:
- l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI
- gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO
- gli attributi ProvA e NumeroA di INCIDENTI e la relazione AUTO
- (^) gli attributi ProvB e NumeroB di INCIDENTI e la relazione AUTO
- L'ordine degli attributi è significativo
3.Algebra E Calcolo Relazionale
Linguaggi per basi di dati :
- operazioni sullo schema
- DDL: data definition language
- operazioni sui dati
- DML: data manipulation language
- interrogazione ("query")
- aggiornamento
Linguaggi di interrogazione per basi di dati relazionali
- Dichiarativi: specificano le proprietà del risultato ("che cosa")
- Procedurali: specificano le modalità di generazione del risultato ("come")
Linguaggi di interrogazione :
- Algebra relazionale: procedurale
- Calcolo relazionale: dichiarativo (teorico)
- (^) SQL (Structured Query Language): parzialmente dichiarativo (reale)
- QBE (Query by Example): dichiarativo (reale)
Algebra relazionale : insieme di operatori:
- su relazioni
- che producono relazioni
- e possono essere composti
Operatori dell'algebra relazionale :
- unione, intersezione, differenza
- ridenominazione
- selezione
- proiezione
- join (join naturale, prodotto cartesiano, theta-join)
Operatori insiemistici :
- le relazioni sono insiemi
- i risultati debbono essere relazioni
- è possibile applicare unione, intersezione , differenza solo a relazioni definite sugli stessi attributi
Selezione e proiezione :
- operatori "ortogonali"
- selezione : decomposizione orizzontale
- proiezione: decomposizione verticale
Proiezione :
- operatore monadico
- produce un risultato che
- ha parte degli attributi dell'operando
- contiene ennuple cui contribuiscono tutte le ennuple dell'operando
Proiezione, sintassi e semantica :
PROJ (^) ListaAttributi (Operando)
- semantica: il risultato contiene le ennuple ottenute da tutte le ennuple dell'operando ristrette agli attributi nella lista
Cardinalità delle proiezioni :
- (^) Una proiezione
- contiene al più tante ennuple quante l'operando
- può contenerne di meno
- se X è una superchiave di R, allora PROJX (R) contiene esattamente tante ennuple quante R
Selezione e proiezione :
- combinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione
non possiamo però correlare informazioni presenti in relazioni diverse
Join:
- il join è l'operatore più interessante dell'algebra relazionale
- permette di correlare dati in relazioni diverse
Esempio: Prove scritte in un concorso pubblico:
- I compiti sono anonimi e ad ognuno è associata una busta chiusa con il nome del candidato
- Ciascun compito e la relativa busta vengono contrassegnati con uno stesso numero
Join naturale :
- operatore binario (generalizzabile)
- produce un risultato
- sull'unione degli attributi degli operandi
- con ennuple costruite ciascuna a partire da una ennupla di ognuno degli operandi