Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Base di dati. informatica documentale, Appunti di Elementi di Informatica

riassunto base di dati e appunti delle lezioni

Tipologia: Appunti

2018/2019

Caricato il 10/07/2019

anceri
anceri 🇮🇹

4.7

(17)

8 documenti

1 / 50

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
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.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32

Anteprima parziale del testo

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
      • SQL server
      • Informix

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):

  • a oggetti

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 :

  1. relazione matematica : come nella teoria degli insiemi
  2. relazione (dall’inglese relationship) che rappresenta una classe di fatti, nel modello Entity- Relationship; tradotto anche con associazione o correlazione
  3. relazione secondo il modello relazionale dei dati
  4. 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 :

  • sintassi

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