Come e fatto un database?

Per comprendere come lavora un database e necessario conoscere la sua architettura. Essa può essere scomposta per responsabilità in due componenti principali:

Struttura logica

componente che si occupa delle funzionalità logiche di un database, gestione utenti informazioni prestazionali e ottimizzazione di query

---
title: DB logical layer
---
flowchart TD
A[sql commands]
B[clients]
subgraph Logical_layer
direction TB
C[auth manager]
D[Catalog manager]
subgraph query_manager
direction TB
E[optimizer]
F[query plan evaluator]
end
end
A & B --> Logical_layer

Struttura fisica

Componente che si occupa dell’ accesso e della gestione della memoria secondaria, del salvataggio e recupero dei dati

---
title: DB physical layer
---
flowchart TD
subgraph physical_layer
direction TB
A[Concurrency manager]
F[transaction manager]
subgraph functions
B[Access methods]
C[storage structures]
D[Buffer manager]
E[storage manager]
end
A --> functions
B & C & D & E --> F
end
G[(Data,Indices,Catalogs,Log)]
physical_layer --> G

Questa suddivisione va a creare due livelli di indipendenza, uno fra gli utilizzatori del database e i modellatori del database mentre l’altro fra i modellatori della struttura logica e i db admin che si occupano del tuning fisico dei parametri di accesso al disco

Struttura della memoria e implicazioni per un DBMS

La memoria di un calcolatore e divisa in 3 macro categorie

  • primaria (ram)
  • secondaria (disco)
  • terziaria (offline storage come i nastri)

Data la dimensione un db e contenuto nella memoria secondaria ma per poter lavorare con i dati e necessario trasferirli in memoria centrale, questo comporta un grosso bottleneck in quanto le velocità di accesso fra memoria centrale e secondaria variano di ordini di grandezza si ricorda che il tempo di accesso e determinato da:

Di conseguenza una grossa parte del lavoro dietro alla modellazione di un database risiede nell’organizzazione dei dati nel disco in modo da ottimizzarne l’accesso

NEXT