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


Informatica documentale slides, Dispense di Elementi di Informatica

Basi di Dati Modelli e linguaggi di interrogazione

Tipologia: Dispense

2015/2016

Caricato il 01/02/2016

Alessioreferee90
Alessioreferee90 🇮🇹

4

(1)

3 documenti

1 / 77

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Informatica Documentale
Prof.ssa Margherita Zorzi
Ricevimento ME 15-17
Ufficio: stanza 1.80, Cà Vignal 2,
Facoltà di Scienze, strada Le Grazie 15
lunedì 04/10/2010
Lezione 1
Testo di riferimento: P. Atzeni, S. Ceri, S. Paraboschi e R. Torlone. Basi di Dati:
modelli e linguaggi di interrogazione. McGraw-Hill, 2009
Lunedì 3 novembre: non ci sarà lezione, verrà recuperata un martedì o un
mercoledì pomeriggio
Introduzione – CAP 1
Studio delle Basi di Dati, ovvero insiemi organizzati di dati. Da un punto di
vista informatico, le basi di dati sono un supporto digitale su cui
immagazzinare i dati, un software che permetta di recuperare i dati e una rete
che ne permetta la condivisione.
Contenuto del corso:
modelli per l'organizzazione dei dati
modello relazionale
linguaggi per l'utilizzo dei dati
SQL
algebra relazionale
sistemi per la gestione dei dati
metodologie di progettazione di basi di dati
come viene affrontata la progettazione di una base di dati
Il modello relazionale è il modello più diffuso e lo andremo a rappresentare
tramite tabelle, in modo molto intuitivo.
Il linguaggio SQL serve per definire le basi di dati e per recuperare i
sottoinsiemi di dati che interessano per determinati compiti. Le domande per
ottenere determinate informazioni si chiamano interrogazioni.
Perché studiare informatica documentale?
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.
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
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d

Anteprima parziale del testo

Scarica Informatica documentale slides e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Informatica Documentale Prof.ssa Margherita Zorzi Ricevimento ME 15- Ufficio: stanza 1.80, Cà Vignal 2, Facoltà di Scienze, strada Le Grazie 15

lunedì 04/10/ Lezione 1

Testo di riferimento: P. Atzeni, S. Ceri, S. Paraboschi e R. Torlone. Basi di Dati: modelli e linguaggi di interrogazione. McGraw-Hill, 2009

Lunedì 3 novembre: non ci sarà lezione, verrà recuperata un martedì o un mercoledì pomeriggio

Introduzione – CAP 1

Studio delle Basi di Dati, ovvero insiemi organizzati di dati. Da un punto di vista informatico, le basi di dati sono un supporto digitale su cui immagazzinare i dati, un software che permetta di recuperare i dati e una rete che ne permetta la condivisione.

Contenuto del corso:

  • modelli per l'organizzazione dei dati ◦ modello relazionale
  • linguaggi per l'utilizzo dei dati ◦ SQL ◦ algebra relazionale
  • sistemi per la gestione dei dati
  • metodologie di progettazione di basi di dati ◦ come viene affrontata la progettazione di una base di dati

Il modello relazionale è il modello più diffuso e lo andremo a rappresentare tramite tabelle, in modo molto intuitivo.

Il linguaggio SQL serve per definire le basi di dati e per recuperare i sottoinsiemi di dati che interessano per determinati compiti. Le domande per ottenere determinate informazioni si chiamano interrogazioni.

Perché studiare informatica documentale?

  • 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.

Non ci sono informazioni migliori delle altre, il potere sta nello schedarle tutte, e poi cercare le connessioni...” (Umberto Eco, Il Pendolo di Focault)

Parole Chiave

Base di dati : insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un ente, azienda, ufficio, persona).

Informatica: Scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell'informazione, considerata come supporto alla conoscenza umana e alla comunicazione (Accademia Di Francia). Definizione molto “aulica”. In realtà l'informatica è un'insieme di diverse scienze, in quanto gli interessi sono altamente diversificati.

Le basi di dati hanno due anime:

  • metodologica
  • tecnologica

Noi vedremo l'anima metodologica.

Sistema informativo

  • componente di una organizzazione che gestisce 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 sottoinsiemi, e va quindi studiato nel contesto in cui è inserito.

Gestione delle informazioni

  • raccolta, acquisizione;
  • archiviazione, conservazione;
  • elaborazione, trasformazione, produzione;
  • distribuzione, comunicazione, scambio.

Sistemi informativi e automazione

  • il concetto di “sistema informativo” è indipendente da qualsiasi automatizzazione
  • esistono organizzazioni la cui ragion d'essere è la gestione di informazioni (es. servizi anagrafici e banche) e che operano da secoli

Gestione delle informazioni

  • i dati sono spesso il risultato di forme di organizzazione e codifica delle informazioni
  • Esempio: nei servizi anagrafici e nel riferimento a persone ◦ descrizioni discorsive ◦ nome e cognome ◦ estremi anagrafici ◦ codice fiscale

Perché i dati?

  • la rappresentazione precisa di forme più ricche di informazione e conoscenza è difficile
  • i dati costituiscono spesso una risorsa strategica perché più stabili nel tempo e di altri componenti (processi, tecnologie, ruoli umani):
  • ad esempio, i dati delle banche o delle anagrafi.

Base di dati

  • (accettazione generica, metodologica) ◦ insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona)
  • (accezione specifica, metodologica e tecnologica) ◦ insieme di dati gestiti da un DBMS (DataBase Management System)

In Esame. Cos'è una Base di dati: insieme di dati gestito da un DBMS.

Sistema di gestione di basi di dati DataBase Management System (DBMS)

  • Sistema che gestisce collezioni di dati: ◦ grandi, persistenti, condivise
  • garantendo ◦ privatezza, affidabilità, efficienza, efficacia. DBMS

prodotti software complessi disponibili sul mercato; esempi:

  • DB
  • Oracle
  • SQLServer
  • MySQL
  • PostgreeSQL
  • Access

Le basi di dati sono … grandi

  • dimensioni molto maggiori della memoria centrale dei sistemi di calcolo utilizzati
  • il limite deve essere solo quello fisico dei dispositivi
  • esempi di dimensioni molto grandi ◦ 500 gigabyte (dati transazionali) ◦ 10 terabyte (dati decisionali) ◦ 500 terabyte (dati scientifici) ◦ 100 miliardi di record.

Le basi di dati sono … persistenti

Hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano.

Le base di dati sono … condivise

  • una base di dati è una risorsa integrata, condivisa fra applicazioni
  • conseguenze ◦ attività diverse su dati condivisi ▪ meccanismi di autorizzazione ◦ accessi di più utenti ai dati condivisi: ▪ controllo della concorrenza (se due persone fanno la stessa operazione sullo stesso dato, bisogna che le due operazioni vengano fatte una prima dell'altra e non contemporaneamente).

Problemi

  • ridondanza: ◦ informazioni ripetute
  • rischio di incoerenza: ◦ le versioni possono non coincidere

Archivi e basi di dati

Gestione orario lezioni → Archivio 1: orario lezioni Gestione ricevimento → Archivio 2: ricevimento

Per evitare ridondanza si usa un solo archivio:

Gestione orari lezioni → base di dati Gestione ricevimento → base di dati

Descrizioni dei dati nei DBMS

  • 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
  • precisiamo attraverso il concetto di ◦ modello dei dati

Modelli dei dati

  • insieme di costrutti utilizzati per organizzare i dati di interesse e descrivere 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
  • Esempio: il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei.

Organizzazione dei dati in una base di dati

Orario

insegnamento docente aula ora Analisi 1 LUIGI NERI N1 8: BASI DI DATI PIERO ROSSI N2 9: Chimica NICOLA MORI N1 9:

Lo schema degli attributi di dati è l'insieme degli attributi che decido di utilizzare per la mia base di dati. I dati che vado a visualizzare sono l' istanza della base di dati.

In ogni base di dati esistono:

  • lo schema, invariante nel tempo, che ne descrive la struttura.
  • L'istanza, variabile nel tempo, ovvero i dati stessi.

I modelli logici

  • adottati dal DBMS esistenti per l'organizzazione dei dati ◦ utilizzati dai programmi ◦ indipendenti dalle strutture fisiche
  • esempi: relazionale, reticolare, gerarchico, a oggetti, basato su XML...

I modelli concettuali

  • permettono di rappresentare i dati in modo indipendente da ogni sistem ◦ cercano di descrivere i concetti del mondo reale ◦ sono utilizzati nelle fasi preliminari di progettazione
  • il più diffuso è il modello Entity-Relationship.

Utente → schema logico → schema interno → Base di Dati

Lo schema logico astrae lo schema interno in modo che l'utente possa interagire con esso senza dover usare il linguaggio macchina dello schema interno. (Ad esempio, la struttura della tabella).

Schema logico: descrizione della base di dati nel modello logico schema interno (o fisico): rappresentazione dello schema logico per mezzo di strutture di memorizzazione (file; ad esempio, record con puntatori, ordinati in un certo modo).

Linguaggi per basi di dati

  • un altro contributo all'efficacia: disponibilità di vari linguaggi e interfacce ◦ linguaggi testuali interattivi (SQL) ◦ comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C …) ◦ comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. Per grafici o stampe strutturate) ◦ con interfacce amichevoli (senza linguaggio testuale, es. Access)

SQL, un linguaggio interattivo

Il modello relazionale è basato sui valori, esiste un collegamento tra il dato in una tabella (es. aula N3 nell

Corsi

Corso Docente Aula Basi di dati Rossi DS sistemi Neri N Reti Bruni N controlli Bruni G

CHAR(n) → parola riservata per definire un stringa di caratteri lunga n

CHAR(20) → 20 caratteri ; CHAR(4) → 4 caratteri

Modelli logici, caratteristiche

RELAZIONALE “è basato sui valori” anche i riferimenti fra i dati in strutture (relazioni) diverse sono rappresentati per mezzo dei valori stessi.

Studenti

Matricola cognome nome Data di nascita 6554 Rossi Mario 05/12/

Esami

Studente Voto Corso 6554 26 1

Corsi

Codice Titolo Docente 1 Analisi Mario

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 naturale rappresentazione per mezzo di tabelle

Vedremo:

  • le strutture
  • i vincoli di integrità

Relazione: tre accezioni

  • relazione matematica, come nella teoria degli insiemi
  • relazione, secondo il modello relazionale dei dati
  • relazione (dall'inglese relationship ) che rappresenta una classe di fatti, nel modello Entity-Relationship ; tradotto anche con associazione o correlazione.

Relazione matematica, esempio

  • D1 ={a,b}
  • D2 = {x,y,z}
  • prodotto cartesiano D1 x D ◦ a x ◦ a y ◦ a z ◦ b x ◦ b y ◦ b z
  • una relazione r⊆D1xD ◦ a x ◦ a z ◦ b y

Una relazione è un sottoinsieme di un altro insieme, un insieme arbitrario delle coppie del prodotto cartesiano.

Relazione matematica

  • d1,... D n ( n insiemi anche non distinti)
  • prodotto cartesiano D1 × … ×D n : ◦ insieme di tutte le n-uple (d1,... dn) tali che d1∈D1, …, d n ∈D n ◦ relazione matematica su D1, …, Dn: ▪ un sottoinsieme di D1 × … × Dn. ◦ D1, …., Dn sono i domini della relazione.

Relazione matematica: proprietà

  • una relazione matematica è un insieme di n-uple ordinate ◦ (d1,... dn) tali che d1∈D1, …, d n ∈D n
  • una relazione è un insieme: ◦ non c'è un ordinamento tra le n-uple ◦ le n-uple sono distinte ◦ ciascuna n-upla è ordinata: l'i-esimo valore proviene dall'i-esimo dominio

Le prime sei domande dell'esame sono teoriche e si basano su tabelle, relazioni e affini.

Tabelle e relazioni

  • in una tabella che rappresenta una relazione
    • l'ordinamento tra le righe è irrilevante
    • l'ordinamento tra le colonne è irrilevante
  • una tabella rappresenta una relazione se
    • le righe sono diverse tra loro
    • le intestazioni delle colonne sono diverse tra loro
    • i valori di ogni colonna sono fa loro omogenei
      • Es. se una colonna rappresenta un numero di matricola dato da numeri, nella colonna delle matricole mi devo aspettare che ci siano solo sequenze di numeri.

Il modello è basato sui valori

  • i riferimenti fra i dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle n-uple.

Studenti

Matricola cognome nome Data di nascita 6554 Rossi Mario 05/12/ 8765 Neri Paolo 03/11/ ... ...

Esami

Studente Voto Corso 6554 26 1 ... ... ...

Corsi

Codice Titolo Docente 1 Analisi Mario ... ...

Lunedì 18/10/ Terza Lezione

In Esame: Esercizio. Due schemi di relazione, fare interrogazioni usando tabelle diverse.

Modello a puntatori.

I puntatori sono collegamenti tra un certo campo di una certa tabella e un certo campo di un'altra tabella. Evito di duplicare i dati in varie tabelle, ma c'è un problema che lo rende più scomodo. Se in una tabella si cancella un dato, non si cancella più il dato, ma si eliminano tutti i collegamenti nelle altre tabelle, con una perdita “a catena” di informazioni.

Struttura basa su valori: vantaggi

  • Indipendenza dalle strutture fisiche (si potrebbero avere anche con puntatori i alto livello) che possono cambiare dinamicamente;
  • Si rappresenta solo ciò che è rilevante dal punto di vista dell'applicazione (i valori, cioè la rappresentazione logica dei dati);
  • L'utente finale vede gli stessi dati dei programmatori;
  • I dati sono portabili più facilmente da un sistema ad un altro.
  • Alternativa: Alcuni modelli (sia quelli “storici”, reticolare e gerarchico, sia quello a oggetti) prevedono riferimenti espliciti, gestiti dal sistema.

Definizioni (importanti!)

  • schema di relazione: un nome R con un insieme di attributi A 1 , …, A (^) n: R(A (^) 1 , ..., A (^) n)
  • schema di base di dati: insieme di schemi di relazione: R= {R 1 (X 1 ),...,Rk(Xk)}

R={STUDENTI(Matricola, Cognome, Nome, Data di nascita) ESAMI(Studente, Voto, Corso) CORSI(Codice, Titolo, Docente)}

LIBRI {Autore(Nome, Cognome, CodiceLibro) Libro(Codice, Titolo, Anno)}

Definizioni, 2

  • Una ennupla (o tupla) su un insieme di attributi X è una funzione che associa a ciascun attributi A in X un valore del dominio di A;
  • t[A] denota il valore della ennupla t sull'attributo A

Strutture nidificate, riflessioni

Abbiamo rappresentato veramente tutti gli aspetti delle ricevute?

Dipende da che cosa ci interessa!

l'ordine delle righe e' rilevante?

possono esistere linee ripetute in una ricevuta?

Sono possibili rappresentazioni diverse:

Informazione incompleta

  • ll 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: motivazioni

In una base di dati può capitare che alcuni valori delle tuple per un attributo non sia presente (es. Una persona non ha inserito il numero di telefono).

Come rappresentare il valore nullo?

  • 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 (che indichiamo qui con NULL )
  • Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli.

Tipi di valore nullo

  • (Almeno) tre casi differenti ◦ valore sconosciuto: in questo momento non ho il dato ◦ valore inesistente: l'informazione non esiste: ◦ valore senza informazione: non ho il dato e non so se esista.
  • i DBMS non distinguono i tipi di valore nullo.

Tavole di verità

A∧B: Congiunzione (AND) è vero solo quando tutti sono veri

A B A ∧ B

F F F

V F F

F V F

V V V

A∨B: Disgiunzione (OR): è vera quando almeno una delle due è vera, è falsa solo se entrambe sono false.

A B A ∨ B

F F F

V F V

F V V

V V V

A ¬A → negazione (NOT): la negazione di A è vera quando A è falsa e viceversa.

A ¬A

F V

V F

Vincolo di integrità (esempio)

  • traduciamo in “linguaggio logico” la proprietà che vogliamo sia soddisfatta dalle istanze della nostra base di dati.
  • Ad esempio, se vogliamo esprimere dei vincoli sui valori che può assumere l'attributo VOTO

(Voto≥18)AND(Voto≤30)

(NOT(Lode=”lode”))OR(Voto=30)

Lunedì 25/10/ Quarta lezione

Vincolo di integrità, perché?

  • descrizione più accurata della realtà
  • contributo alla “qualità dei dati”
  • utili nella progettazione (vedremo)
  • usati dai DBMS nella esecuzione delle interrogazioni

Vincoli di integrità, nota.

  • Alcuni tipi di vincoli (ma non tutti) sono "supportati" dai DBMS: ◦ Possiamo quindi specificare vincoli di tali tipi nella nostra base di dati e il DBMS ne impedisce la violazione
  • Per i vincoli "non supportati", la responsabilità della verifica è dell'utente o del programmatore

Tipi di vincoli

  • vincoli intrarelazionali (vincolo definito rispetto alle singole relazioni della base di dati) ◦ vincoli di ennupla: esprimono condizioni su valori di ciascuna ennupla, indipendentemente dalla altre ennuple. ▪ Esempio: Stipendi: {impiegato, lordo, ritenute, netto} Lordo=(Ritenute+Netto) se Lordo≠(Ritenute+Netto) il dato errato in Lordo viola un vincolo di ennupla. ◦ vincoli su valori (o di dominio) : coinvolgono un solo attributo (caso particolare di vincolo di ennupla) ▪ Esempio: voto di esame inferiore a 18 o superiore a 30.
  • vincoli interrelazionali (tra relazioni diverse della base di dati). Importanti: In Esame vincoli di integrità referenziale. → domanda d'esame

Studenti:{Matricola, Cognome, Nome, Corso, Nascita}

  • non ci sono due ennuple con lo stesso valore sull'attributo Matricola
  • non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita.