Estratto del documento

Base dati

Lezione 1 – Introduzione

Sistemi informatici => Hanno il compito di organizzare, raccogliere e conservare dati.

Base Dati => È una collezione di dati che rappresentano le informazioni relative a una realtà d'interesse.

Proprietà Base Dati

Rappresenta realtà d'interesse detta Universo del Discorso (UoD). I dati devono essere sempre aggiornati per riflettere la realtà. I dati sono logicamente correlati tra loro. Creata per uno scopo specifico e utilizzata da più utenti.

Informazione e Dato

Informazione: Tutto ciò che produce variazione nel patrimonio conoscitivo di un soggetto.

Dato: Registrazione della descrizione di una qualsiasi caratteristica della realtà su un supporto che ne garantisca la conservazione, comprensibilità e reperibilità.

DBMS

DBMS => Sistema di gestione di basi dati (Data Base Management System). Software studiato per:

  • Definizione della BD: Specificare i tipi, le strutture e i vincoli dei dati che devono essere memorizzati.
  • Costruzione della BD: Memorizzare i dati su un supporto gestito dal DBMS.
  • Manipolazione BD: Interrogazione e recupero dati specifici.
  • Condivisione dell BD: Più utenti o programmi possono accedere contemporaneamente ai dati contenuti nella base dati.

Primi DBMS gerarchici e reticolari => Utilizzo che vedremo, DBMS relazionali. I DBMS gestiranno le interrogazioni (tramite query sarà possibile reperire i dati cercati), accedere a grandi quantità di dati in maniera efficiente, protezione dei dati, gestione delle transazioni concorrenti ecc.

Utenti della base dati

  • DBA (Data Base Administrator): Amministratore della BD, autorizza accessi, coordina e monitora la stessa, manutenzione del sistema della BD.
  • Progettista della BD: Individua i dati da memorizzare, sceglie le strutture adeguate per la rappresentazione e memorizzazione, comunica con gli utenti finali per capire le esigenze.
  • Analista e programmatore: Sviluppa le specifiche per le transazioni di accesso alla BD.
  • Utenti finali: Utenti che usano sistematicamente la base dati, che utilizzano transazioni standard.
  • Utenti occasionali.

Concetto di Modello Dei Dati

Insieme di costrutti utilizzati per definire la struttura dei dati che caratterizzano la realtà. Raggruppano l'insieme di operazioni per manipolare i dati secondo quel modello e notazioni per specificare i dati in maniera adeguata. L'uso di un modello dei dati nei DBMS è il mezzo attraverso il quale si realizza l'astrazione dei dati, nascondendo agli utenti i dettagli della memorizzazione.

Il modello traduce due aspetti fondamentali:

  • Come rappresentare gli oggetti della realtà.
  • I legami che intercorrono tra essi.

Analizziamo il modello relazionale => È basato su un singolo costrutto, la relazione: consente di organizzare i dati in insieme di record a struttura fissa. La relazione può essere vista come una tabella:

  • Le righe rappresentano i record.
  • Le colonne i campi della realtà.

Modelli Concettuali e Logici

La descrizione delle caratteristiche dei dati, facendo uso di un modello, fornisce lo schema della base dati. Lo schema, fornisce una descrizione intensionale del contenuto della base dati. È un fattore invariante nel tempo. Invece, l'insieme dei dati in un dato momento nella base dati costituisce l'insieme delle istanze. Il numero delle istanze varia nel corso del tempo.

Livello di astrazione nei DBMS

  • Schema logico: Descrizione dell'intera BD per mezzo del modello logico dei dati scelto (es: relazionale).
  • Schema fisico: Descrizione dello schema logico per mezzo di strutture fisiche di memorizzazione e di accesso (file, indici... ).
  • Schema esterno o vista: Descrizione di una porzione dell'intera base dati, limitata ai dati che costituiscono la specifica visione a singoli utenti o gruppi.

Indipendenza fisica => Consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati. Le modifiche apportate a livello fisico non influiscono la descrizione a livello logico.

Indipendenza logica => Interazione a livello esterno indipendente dal livello logico.

Linguaggi per BD

  • DDL (Data Definition Language): Linguaggio per la definizione di schemi logici, esterni e autorizzazioni della base dati.
  • DML (Data Manipulation Language): Utilizzato per l'interrogazione e l'aggiornamento delle istanze della base dati.

Transizione => Rappresenta la tipica unità di lavoro elementare del DBMS. È un'unità svolta da un'applicazione. Ogni transizione deve garantire la cosiddetta proprietà ACID (Atomicità, Consistenza, Isolamento, Durabilità – persistenza).

Architetture DBMS

  • Centralizzata: Mainframe + terminali. Tutte le funzionalità del DBMS sono eseguite su una sola macchina.
  • Client-Server: Interazione tra processi software, ossia il client richiede i servizi mentre il server risponde ai servizi richiesti.

Evoluzione delle Basi Dati

  • Very small databases: Realizzazione di sistemi di gestione dei dati per dispositivi di piccole dimensioni.
  • Very large databases: Centinaia di gigabyte/decine-centinaia di terabyte di dati da immagazzinare per gestione multimediale.

Lezione 2 – Modello Relazionale

Relazione Matematica

D1, D2, ... Dn => Domini, di grado n.

d1, d2, ... dn => Numero di elementi appartenenti ai rispettivi domini. Cardinalità.

Ad ogni occorrenza di dominio nella relazione, viene associato un nome detto Attributo, che descrive il ruolo del dominio all'interno della relazione. L'ordinamento delle colonne è irrilevante in quanto sono identificate per attributo e non per posizione.

Un BD relazionale => Costituita da collezione di relazioni con attributi rappresentate come tabelle. Ogni relazione ha un nome unico nella BD. I riferimenti fra dati in relazioni diverse, sono rappresentati per mezzo di valori dei domini che compaiono nelle tuple.

Informazione incompleta

All'interno di una tabella, se non si conosce al momento dell'inserimento l'informazione completa, nel relativo campo attributo è possibile specificare il valore NULL:

  • Valore sconosciuto.
  • Valore inesistente.
  • Valore senza informazione.

Vincoli di integrità

=> Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l'applicazione. Un vincolo è una funzione booleana che associa ad ogni istanza un valore vero o falso.

Tipi di vincolo

  • Intrarelazionali: Vincoli che coinvolgono il controllo di veridicità tra attributi e ennuple istanziate.
  • Interrelazionali: Integrità referenziale.

Chiave

=> Insieme di attributi che identificano univocamente le tuple di una relazione. Identificazione univoca (K attributi identificano una tupla = superchiave), minimalità.

  • Una relazione non può contenere tuple distinte uguali.
  • Ha come superchiave l'insieme degli attributi su cui è definita (almeno una chiave).
  • Può avere più chiavi, dette chiavi candidate.

Chiave primaria => Chiave su cui non sono ammessi valori nulli, la quale consente di identificare univocamente ogni tupla all'interno della relazione (notazione: sottolineatura).

Vincoli di integrità referenziale

Informazioni in relazioni diverse sono correlate attraverso valori comuni, in particolare tramite valori delle chiavi (primarie). Il vincolo di integrità referenziale (chiave esterna) impone che all'interno della relazione in cui deriva, lo stesso valore deve essere chiave primaria in un'altra relazione.

Tipi di attributi

  • Attributo semplice: A valori atomici (utilizzati da noi).
  • Attributo multivalore: Un possibile valore è un insieme di valori.
  • Attributi strutturati: Un valore è una ennupla di valori.

Cenni (1FN, prima forma normale) => Ogni attributo all'interno della BD deve essere semplice.

Lezione 3 – Algebra Relazionale

Rappresenta il linguaggio procedurale per interrogazione di BD relazionali. Il risultato di un'interrogazione è una relazione che può essere manipolata utilizzando gli operatori dell'algebra stessa.

Operatori:

  • Su insiemi
  • Su relazioni

Operatori insiemistici

R ed S, relazioni dello stesso grado e definite sugli stessi attributi (compatibilità all'unione):

  • Unione => Insieme delle tuple appartenenti a R OR a S.
  • Differenza => R – S, insieme delle tuple appartenenti a R AND NOT a S.
  • Intersezione => Insieme delle tuple appartenenti a R AND a S.

Ridenominazione => Operatore che cambia il nome degli attributi nelle interrogazioni.

Operatori unari

  • σ SELEZIONE ( ): Restituisce una relazione contenente l'insieme delle tuple dell'operazione operando che soddisfano particolari condizioni, espresse mediante una formula proposizionale. => Agisce sulle righe.
  • π PROIEZIONE ( ): Restituisce come risultato una relazione contenente l'insieme delle tuple della relazione operando, limitate su particolari attributi => Agisce sulle colonne.

Operatori binari:

r definita su R(X) e s definita su S(Y), con intersezione tra X e Y vuota.

PRODOTTO CARTESIANO: Relazione definita su XY contenente l'insieme delle tuple che sono combinazione delle ennuple r e s. Poco utilità => Correla tuple nel risultato anche se non sono correlate tra loro da un punto di vista semantico. In generale si opera una selezione sul risultato del prodotto cartesiano per selezionare le tuple significative. => OPERATORI DI JOIN.

Theta – JOIN (θ -JOIN): È una relazione definita su XY composta da tuple di r con tuple di s che soddisfano la condizione di confronto A THETA B => (A appartiene a X e B appartiene a Y). Theta => Operatore di confronto ( = , diverso, < , > , >= ... ). Se il confronto è di uguaglianza, si chiama EQUIJOIN.

JOIN NATURALE: Con r definita su R(XY) e s definita S(XZ), il Join Naturale di r e s è una relazione definita su YXZ composta dalle tuple risultato della concatenazione delle tuple di r con quelle di s aventi valori identici sugli attributi X. Due tuple sono dette joinabili se contribuiscono al join. Una tupla che non contribuisce al join è detta dangling. Un join è completo se nessuna delle relazioni contiene tuple dangling. Join Naturale => È commutativo e associativo. Sarebbe l'espressione congiunta di: Prodotto cartesiano, selezione ennuple valori uguali, proiezione eliminando duplicazioni.

Operatore: DIVISIONE

Consideriamo r su R(X) e s su S(Y). Y diverso da vuoto e contenuto in X. Z = X – Y (insieme degli attributi di R che non sono attributi di S). r / s è una relazione T(Z) costituita dalle z-tuple di r tale che per ogni s-tupla di s, la tupla a1 ... ansia in r.

OUTER JOIN

Gli operatori ThetaJoin e NaturalJoin combinano tuple di relazioni che hanno valori "in corrispondenza" su particolari attributi => Non tutte le tuple entrano a far parte del risultato ma solo quelle che verificano la corrispondenza (JOIN INTERNO). OuterJoin => Appende alle tuple il risultato del join anche quelle tuple di una o entrambe le relazioni che non soddisfano i criteri di join, estendendole con opportuni NULL:

  • LEFT OUTER JOIN: Considera solo la relazione di sx.
  • RIGHT OUTER JOIN: Considera solo la relazione di dx.
  • FULL OUTER: Considera entrambe le relazioni.

Lezione 4 – SQL

SELECT, FROM, WHERE

  • SELECT Lista Attributi
  • FROM Lista Tabelle
  • [WHERE Condizione]

Select => Ha il compito di selezionare le colonne che vogliamo visualizzare.

From => Indica la tabella da cui dovrà andare a prelevare le informazioni la query.

Where => Espressione di ricerca che identifica le tuple secondo un parametro specifico (Proiezione). Espressione booleane costruite con AND, OR o NOT.

Pattern Matching di Stringhe

  • [NOT]LIKE pattern_ Rappresenta carattere arbitrario.
  • % Rappresenta una stringa di lunghezza arbitraria, anche 0 caratteri.

Ridenominazione

Si usa il parametro => AS

Eliminazione Duplicati

In algebra relazionale, la relazione risultato di un'interrogazione non contiene tuple identiche.

  • In SQL: La tabella risultato può contenere tuple uguali.
  • L'eliminazione dei duplicati è a carico dell'utente utilizzando la parola chiave DISTINCT.

JOIN

Per collegare tabelle che hanno informazioni comuni tra di loro, utilizziamo l'operatore JOIN visto in precedenza (imponendo la condizione di uguaglianza, Equijoint, sulla chiave esterna tra le tabelle).

Considerazioni su JOIN

  • Tutte le tabelle coinvolte nella JOIN devono essere esplicate nella clausola FROM.
  • Condizione specificata nel WHERE.
  • Condizioni del JOIN sono scritte in modo esplicito nella WHERE (chiave esterna utilizzata per combinare diverse informazioni nel risultato).
  • Se non utilizzassi la clausola WHERE => Attuerei prodotto cartesiano.

ALIAS

Alle tabelle nella clausola FROM di una query, può essere associato un nome alternativo, detto ALIAS: questo viene utilizzato per far riferimento alla tabella nell'ambito della query, utile per far riferimento in modo conciso. Utilizzo => AS. L'Alias è utile quando bisogna confrontare delle tuple di una tabella con se stesse.

JOIN Interni ed Esterni

Le condizioni di Join appaiono nella clausola FROM associate alle tabelle che partecipano al Join.

Tipi di join

  • (Inner) Join: Coincide con il theta join.
  • Natural Join.
  • Right, Left, Full Outer Join (join esterni).

Esempio Inner Join

Osservazione Natural Join:

Nell'operazione di Natural Join non viene specificata alcuna condizione: viene applicata una condizione implicita di equijoin per ciascuna coppia di attributi con lo stesso nome tra le due relazioni. Se i nomi degli attributi non sono gli stessi, posso rinominarli e poi applicare la NaturalJoin.

Osservazione Outer Join

Esegue un join mantenendo nel risultato tutte le tuple che fanno parte di una o entrambe le relazioni coinvolte.

Valori Nulli

Introduzione di condizioni atomiche per verificare se un valore è specificato oppure è nullo.

IS NULL =>

Anteprima
Vedrai una selezione di 10 pagine su 42
Base dati - Struttura e Query Pag. 1 Base dati - Struttura e Query Pag. 2
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 6
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 11
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 16
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 21
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 26
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 31
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 36
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 41
1 su 42
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher only_one_crive di informazioni apprese con la frequenza delle lezioni di Data Base e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano o del prof Castano Silvana.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community