1

Basi di dati[modifica | modifica wikitesto]

Le basi di dati possono essere definite come collezioni di dati utilizzati per rappresentare le informazioni di interesse per un sistema informatico.

Le collezioni di dati deve però avere certe proprietà:

  • I dati devono essere coerenti e avere una semantica (cioè rappresentano un modello di aspetti della realtà);
  • Si hanno accessi da parte di un insieme di utenti e un insieme di applicazioni;
  • La rappresentazione dei dati deve essere indipendente dall’applicazione che accede alla base di dati;
  • La base di dati deve essere scalabile ovvero il volume dei dati può crescere;
  • I dati devono essere memorizzati in maniera persistente, cioè devono sopravvivere per lunghi periodi di tempo;
  • La base di dati deve consentire l’accesso condiviso: evita la ridondanza.
  • Privatezza: gli accessi sono controllati
  • Accesso efficiente ai dati

DBMS (Database Management System)[modifica | modifica wikitesto]

Il DBMS è un sistema software composto da un insieme di programmi che permettono di definire, gestire, e rendere accessibile la base di dati.

Esso è composto da:

  • Modulo di Amministrazione: manutenzione per permessi
  • Modulo di Progettazione: creare la struttura del DB
  • Modulo di Interrogazione: query per modifica, ricerca…
  • Database Engine: Implementa algoritmi d’accesso alle informazioni e ai dati

Per definire struttura o interrogare il DBMS offre 2 linguaggi:

  1. DDL  : Data Definition Language per la Struttura
  2. DML  : Data Manipulation language per la Query; è una famiglia di linguaggi che consente di leggere, inserire, modificare o eliminare i dati in un database. Il linguaggio più diffuso è SQL

Attori:

  1. Amministratore : manutenzione, revoca i permessi
  2. Progettista : definisce la struttura del DB
  3. Utente finale : formula la query
  4. Applicazioni: funge da utente finale , intermedio

Struttura:

  • Modello

Il modello definisce le rregole base della struttura del DB ( Gerarchico , Network , relazionale …)

  • Schema

Tramite il DDL, si passa a definire i fatti che entrano a far parte del DB.

Transazioni[modifica | modifica wikitesto]

Le operazioni di modifica di una base di dati sono operazioni atomiche: si assume che l’operazione non si interrompa durante l’esecuzione.

Il DBMS garantisce che, in situazione di errore, la base di dati venga riportata in uno stato stabile, cioè non inconsistente.

La transazione è il processo che contiene al suo interno una o più operazioni sulla base di dati.

Le transazioni hanno un inizio e una fine e godono di proprietà fondamentali chiamate proprietà acide (ACID):

  • Atomicità (Atomicity): la transazione viene completata integralmente o fallisce integralmente;
  • Consistenza (Consistency): la transazione deve rispettare i vincoli di integrità sui dati;
  • Isolamento (Isolation): più transazioni eseguite contemporaneamente devono portare allo stesso risultato che si otterrebbe eseguendole una alla volta;
  • Persistenza (Durability): il risultato delle transazioni deve essere permanente.
  • Relazione

La relazione nel modello è una tabella le cui righe sono dette tuple, formate dagli attributi. Si dice schema della relazione la notazione che associa il nome della relazione agli attributi ed è lo schema construct dello schema logico del DB.

Il numero di domini ( attributi, colonne) è detto Grado

Il numero di Tuple (righe) è detto Cardinalità

  • Chiave: è un attributo il cui valore univoco è garantito e ci permette di distinguere le Tuple
  • Vincoli:
    • Di Tupla . condizioni sugli attributi
    • Di integrità referenziale. Legando 2 tabelle il vincolo è soddisfatto se X campi di R1 sono presenti in R2