Il 0% ha trovato utile questo documento (0 voti)
20 visualizzazioni5 pagine

Basi Di Dati - Appunti Random

Caricato da

Jigen 98
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
20 visualizzazioni5 pagine

Basi Di Dati - Appunti Random

Caricato da

Jigen 98
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 5

Basi di Dati – Appunti random

TEORIA
Il sistema organizzativo è l’insieme delle risorse e delle regole, che consentono il funzionamento di una
struttura sociale per il raggiungimento dei suoi obiettivi (es. studio medico, biblioteca). È rappresentabile
con un diagrammi a blocchi (input informazioni ricevute, output informazioni processate). Il sistema di
decisione, all’interno del sistema organizzativo, si occupa di prendere le decisioni da processare nelle
attività primarie (flusso informativo). L’aspetto più importante è la memoria, che si occupa della
memorizzazione dei dati.

Il sistema informativo è la parte del sistema organizzativo che si occupa dell’acquisizione, elaborazione,
circolazione e memorizzazione delle informazioni (es. studio medico mantiene informazioni su pazienti,
visite e parcelle richieste).

Il sistema informatico è un sistema software orientato alla gestione dati. È la parte automatizzata del
sistema informativo. Comprende le componenti di confine (interfaccia) tra la parte automatizzata e
manuale (es. sistema informatico di una banca costituito da archivi elettronici dove sono memorizzati dati,
sistemi di calcolo che consentono la gestione di tali archivi). Per fornire i servizi, tale sistema prevede
quattro componenti:

 programmi applicativi.
 schema, rappresenta il modo in cui i dati sono organizzati nella base informativa (definisco anche i
vincoli, ovvero quali dati sono ammissibili e quali no).
 base informativa, rappresenta le informazioni che monitoriamo.
 hardware e software di base.

Il dato è un numero, una stringa, presente prima di ogni elaborazione (creano, generalmente,
l’informazione).

L’informazione è il risultato dell’elaborazione (es. fuori ci sono 23 gradi).

I settori sono i sottoinsiemi nei quali l’azienda si articola. Tra i settori si stabiliscono flussi di documenti, che
permettono ad ogni settore di procurarsi i dati di uso d’interesse dal settore originante (conseguenze:
proliferazione dell’informazione e relazione gerarchica).

Il sistema di gestione di basi di dati (DBMS) è un programma complesso, in grado di gestire solo archivi.
Gestisce archivi

 grandi,
 condivisi, più programmi devono poter accedere alla stessa banca dati.
 persistenti, dati che devono rimanere nell’archivio e non devono essere persi.

assicurandone la loro

 affidabilità, un sistema deve essere robusto e funzionare a prescindere quando qualcosa non va
(nel caso di un incendio deve esserci un backup automatico).
 privatezza, ai dati accedono solo le persone che hanno l’accesso

Consente, inoltre, di definire schemi di basi di dati, scegliere strutture dati per la memorizzazione e
l’accesso ai dati, e memorizzare, recuperare e modificare i dati (interattivamente o da programmi).

La base di dati è una collezione di dati integrati, relative alle informazioni di interesse per un sistema
informativo. Si trovano all’interno di un database, gestito quest’ultimo dal DBMS.
Nel database stanno dati e metadati (lo schema, rappresenta come si organizzano questi dati). Questi
ultimi si esprimono come “definizioni”, definendo la struttura dei dati (non solo il tipo dei dati ma anche i
vincoli, le relazioni esistenti tra insiemi e operazioni eseguibili sui dati.) da memorizzare nei database

I dati devono corrispondere allo schema, la loro struttura dipende dal modello (criterio secondo cui si
organizzano i dati, ad esempio relazionale) dei dati utilizzato. Mentre lo schema è invariante nel tempo, dati
o istanze variano. Possono e sono di grandi quantità, permanenti; sono accessibili tramite transazioni,
protetti da accessi non autorizzati e malfunzionamenti, e utilizzabili contemporaneamente da diversi utenti.

La base di dati è articolabile in tre distinti livelli di astrazione (sign. in basi di dati: mantenere separato il
livello fisico, livello logico e livello di vista logica; ci “estraniamo” dall’organizzazione del livello fisico, in
quanto se ne occupa il DBMS):

 livello fisico: descrive come i dati vengono effettivamente memorizzati sul disco (schema fisico o
interno).
 livello logico: descrive quali dati memorizzare e secondo quale schema (schema logico).
 livello di vista logica: espone i diversi schemi, detti schemi esterni, ovvero porzioni dello schema
logico del database (ciò che l’utente vede in base ai permessi).

Questa architettura garantisce l’indipendenza dei dati (indipendenza fisica, modificare strutture fisiche
senza influire sui livelli superiori, e logica, interagire con il livello esterno indipendentemente dal livello
logico).

Un modello dei dati (logici) è insieme di concetti utilizzati per organizzare i dati e descriverne la struttura, in
modo che risulti più comprensibile ad un elaboratore. Ogni modello di dati fornisce meccanismi di
astrazione. È caratterizzato da espressività (esprimere in modo naturale i concetti del mondo reale),
semplicità d’uso (essere in grado di rappresentare ciò che è nel mondo reale su macchina in maniera
semplice), efficienza (far sì che la rappresentazione sia utilizzabile subito, efficientemente). Vi sono due tipi
di modelli:

 modelli basati su record (più datati): modello gerarchico, modello reticolare, modello relazionale.
 modelli basati su oggetti (più nuovi): modello relazionale a oggetti, modello a oggetti.

Un modello concettuale serve per rappresentare la realtà di interesse, il mondo reale (modello entità-
relazione).

Un aspetto importante nel mondo della base di dati è la separazione tra la base dichiarativa, dove si vanno
a dichiarare le variabili, e la base operativa (elaborazione). Lo si fa principalmente per non intaccare lo
schema, quando si vogliono modificare i dati. Pertanto, si distinguono due linguaggi di manipolazione:

 DDL (Data Definition Language): utilizzati per definire schemi logici, esterni e fisici, e le
autorizzazioni per l’accesso (es. creazione tabella con dichiarazioni interne).
 DML (Data Manipulation Language): utilizzati per l’interrogazione e l’aggiornamento delle istanze
di basi di dati (es. aggiornamento valori in SQL). È usato come sinonimo di DML il termine query
language. Ci sono due tipi di DML, quelli ad alto livello o non procedurali e quelli di basso livello o
procedurali. Quelli ad alto livello sono anche detti dichiarativi, ovvero, nel momento in cui formulo
la query (richiesta di dati), non dico al DBMS come deve reperire questi dati, ma solo le proprietà
del risultato dell’interrogazione. È anche detto set-oriented (orientato su più insiemi).

Una base di dati si definisce integra quando tutti i vincoli sono rispettati. L’integrità è garantita dal DBMS,
ma deve essere stabilita dal progettista.

L’affidabilità significa essere robusto e non avere malfunzionamenti.


L’affidabilità deve essere garantita dalla transazione, ovvero una sequenza di operazioni che gode delle
proprietà ACID:

 Atomicity: o la transazione è effettuata tutta (nella sua interezza) o non è eseguita affatto. Quelle
che terminano prematuramente sono trattate come se non fossero mai iniziate.
 Consistency preservation: la transazione porta la base di dati da uno stato consistente ad un altro
stato consistente (tutti i vincoli sono rispettati prima che la transazione inizi, tutti i vincoli sono
rispettati prima che la transazione termini).
 Isolation: non è possibile vedere, da altre transazioni, i risultati parziali della transazione in atto.
 Durability (persistenza): una volta terminata la transazione, le modifiche sulla base di dati sono
permanenti, quindi non alterabili da malfunzionamenti successivi alla terminazione.

Alla fine del processo di transazione, la base di dati è trasformata in un altro stato.

Vi sono diversi utenti della Base di Dati, o di un database:

 Database administrator (DBA): è quella figura professionale che installa il DBMS, crea il database,
gestisce accessi, utenti, password, risorse, backup, ottimizzazioni tempi di risposta di un database.
 Progettista del DB: è colui che sviluppa il progetto, che va a definire, dal punto di vista logico, lo
schema della base di dati.
 Utenti finali:
 Occasionali & stand-alone: utilizzano sistemi software già pronti all’uso (es. persona che
gira sul browser).
 Parametrici: utilizzano dei tools specifici (es. cassiere della banca che utilizza il programma
applicativo per lavorare).
 Sofisticati: quelle figure professionali che devono avere la capacità di “esplorare i dati” (es.
scienziato, che analizza i dati di un fenomeno fisico).
 Programmatore di applicazione e analisti di sistemi: colui che definisce le richieste degli utenti
finali.

Vi sono anche i cosiddetti utenti dietro le quinte, ovvero i progettisti di DBMS, coloro che hanno progettato
il DBMS, e gli sviluppatori di tool, coloro che supportano il DBMS con la creazione di diversi tool.

Un malfunzionamento (failure) è un evento che porta il DB in uno stato inconsistente. Ci sono i fallimenti
di transizioni, di sistema, disastri (questi ultimi danneggiano la memoria permanentemente contenente il
DB).

Calcolo relazionale
È il passaggio intermedio tra algebra relazionale e SQL; nell’algebra relazionale definisco un’espressione
algebrica (dico al DBMS come quell’espressione deve essere calcolata), nel calcolo relazionale dico cosa
bisogna risolvere e quali risultati ci aspettiamo (più orientato all’utente). È un linguaggio dichiarativo. Il
risultato lo ottengo tramite l’interpretazione dell’espressione algebrica.

Esistono due versioni di calcolo relazionale:

- Calcolo relazionale su domini: le variabili rappresentano singoli valori.


- Calcolo relazionale su tuple: le variabili rappresentano intere tuple (questo è equivalente all’SQL).
Il linguaggio SQL
Una tabella SQL non è un insieme di tuple, ma un multi-insieme di tuple. I duplicati sono ammessi, per
garantire l’efficienza.

Le sottoselect danno molta flessibilità, ma sono difficilmente ottimizzabili.

SELECT [DISTINCT] (opzione per rimuovere i duplicati) lista attributi (colonne) – target list

 (identificatore) AS (nuovo identificatore): attributo che consente di cambiare il nome delle colonne
al risultato.
 COUNT(nome attributo): restituisce il numero di righe che corrisponde ad un criterio specifico; se
ad esso è associata l’opzione DISTINCT restituisce il numero di valori distinti degli attributi (in lista
attributi) e diversi dal valore nullo.
 AVG(nome attributo): restituisce il valore medio di una colonna numerica.
 SUM(nome attributo): restituisce la somma totale di una colonna numerica.
 MIN(nome attributo): restituisce il valore più piccolo della colonna selezionata.
 MAX(nome attributo): restituisce il valore più grande della colonna selezionata.

FROM = clausola lista tabelle

 (prima tabella) INNER JOIN/JOIN (seconda tabella) ON (condizione) : clausola per effettuare il
theta-join. (n.b. per effettuare più join, basterà inserire, sempre nella stessa clausola FROM, un
ulteriore “JOIN … ON … “dopo la precedente condizione).

WHERE = clausola condizione.

 (espressione) IS [NOT] NULL: predicato che controlla se un’espressione ha o no il valore NULL.


 <>: operatore che indica “diverso” su SQL.
 [NOT] EXISTS (sottoselect): predicato che è vero se la sottoselect non restituisce l’insieme vuoto.

ORDER BY (attributo) [DESC]: clausola inserita dopo where, che permette di specificare un eventuale
ordinamento (n.b. di default, se non è specificato “desc”, l’ordinamento è ascendente).

GROUP BY (attributo): istruzione che raggruppa le righe che hanno gli stessi valori in righe di riepilogo
(raggruppa i valori ridondanti).

INSERT INTO (identificatore) VALUES (valori): inserimento di nuove tuple.

DELETE: istruzione che elimina i record da una tabella.

UPDATE: istruzione che modifica i record di una tabella.

CREATE TABLE [nome] ( (nome attributo) (dominio) (valore di default) (vincoli) … ): istruzione che
permette di creare le tabelle.

CHAR, VARCHAR: dominio che permette di rappresentare singoli caratteri o stringhe.

NOT NULL: questo vincolo indica che NULL non è ammesso come valore dell’attributo.

CHECK (condizione): questo vincolo permette di specificare i valori ammissibili dell’attributo.

UNIQUE: questo vincolo richiede che i valori dell’attributo non siano duplicati (l’attributo è una chiave).

PRIMARY KEY: vincolo che definisce la chiave primaria della tabella può essere specificato solo una volta
per ogni tabella; può essere specificato per un singolo o insieme di attributi.
FOREIGN KEY (attributo) (attributo) REFERENCES (tabella referenziata): questo è il vincolo d’integrità
referenziale su chiavi esterne, dove tabella referenziata è un nome di tabella per la quale è stata definita la
chiave primaria.

ALTER: comando che permette di modificare domini e schemi di tabelle.

DROP: comando che permette di rimuovere dei componenti (schemi, domini, tabelle, viste o asserzioni).

Potrebbero piacerti anche