Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 3.13 KB

00.Intro DB.md

File metadata and controls

63 lines (44 loc) · 3.13 KB

Introduzione DB

DataBase Management System (DBMS) = sistema di gestione di basi di dati, cioè una collezione di dati utilizzati per rappresentare le informazioni d'interesse per una o più applicazioni di una organizzazione.

  • Primo approccio = i dati sono il focus/goal. (approccio più Basi di Dati)
  • Secondo approccio= i dati sono il supporto al processo. (approccio più Ing Software).
  • Nella realtà: probabilmente un ibrido.

Architettura a livelli degli schemi:

  • schema esterno: descrizione di parte della base per specifiche applicazioni (quindi ci possono essere schemi esterni specifici per ogni applicazione diversa)
  • schema logico: descrizione dell'intera base di dati sempre da un punto di vista logico
  • schema fisico: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione.

In questo corso vedremo i primi due schemi logici principalmente.

Data Manipulation Language -> linguaggio che ci permette di lavorare al livello logico, e disinteressarci dello schema fisico.

Sono state proposte diverse tecnologie per gestire i dati, che si basano proprio su paradigmi di ricerca diversa (basata su relazioni, documenti ecc.). I più utilizzati si basano sul modello relazionale, che è lo stesso che utilizzeremo anche noi in questo corso. Nella realtà, grandi aziende, utilizzano più modelli. MongoDB = document-based. Il modello relazionale è basato sull'indipendenza dei dati. Per ogni istanza (righe) ci sono più attributi (colonne), ciascuno con un certo dominio.

  • Relazione molti-molti:

  • Relazione uno-molti:

  • Concetto di entità debole:

é necessario avere una chiave. Una chiave deve essere univoca per una specifica istanza. Una chiave se proprio non si riesce a trovarne una minimale può essere la combinazione di più attributi dell'istanza. Minimalità di una chiave: insieme degli attributi è il minimo per identificare l'istanza nella tabella. Chiavi scelte a priori, durante la progettazione.

superchiave = insieme di attributi (unicità). chiave = superchiave minimale (cioè è la superchiave più piccola).

QUINDI superchiave (unica), se è minima una superchiave diventa chiave. Si evita cambiare le chiavi nel tempo .. Ricorda che una chiave esiste sempre! (male che vada prendo l'intera riga). La chiave non solo serve per accedere alla tabella ma anche per fare eventuali relazioni. Eventualmente si possono utilizzare più chiavi .. chiave primaria e secondaria ..

LINEE GUIDA TABELLE:

  • evitare repliche inutile di dati
  • non bisogna avere paura di dividere i dati in più tabelle diverse, anzi dobbiamo
  • usiamo solo elementi atomici, cioè evitiamo strutture annidate
  • non avere paura di introdurre un codice identificativo come chiave (ma non usarli sempre)
  • scegliere chiavi con buon senso
  • tabelle ponte, cioè che relazionano più tabelle diverse tra loro. è preferibile utilizzare come chiave degli attributi.

Linguaggi che affronteremo in questo corso:

  • Linguaggi formali:
    • Algebra relazionale (procedurale)
    • Calcolo relazionale (dichiarativo)
    • DataLog (dichiarativo)
  • Linguaggi ''commerciali''
    • Structured Query Language (dichiarativo con elementi procedurali)