Database management system è un software in grado di gestire collezione di dati che siano grandi, condivise e persistenti assicurando la loro affidabilitàa e privatezza. Una base di dati è una collezione di dati gestita da un DBMS.
(vedi anche [[DBMS - alternative]])
Su questi dati possiamo mettere vincoli e il DBMS garantisce che i dati siano coerenti con i vincoli.
In termini pratico è una connesione client server. Il database è uno strumento di astrazione. Il DBMS è colui che si occupa di memorizzare a livello fisico secondo una sua determinata logica. E' trasparente al programmatore.
Architettura a tre livelli
Livello Esterno (utente e applicazione) GUI
indipendente logica dei dati
Livello Logico (schema logico)
indipendente da come vengonono memorizzate in memoria fisica
Livello interno (fisico): storage
Mumbo jumbo dello schema funzionale
vedi schifo slide
marginalmente importante sulla amministrazione di un database Si toccherà principalmente il catalogo e il dizionario dei dati. Ovvero un'altra base di dati presente dentro il DBMS per catlogare i dati. Tramite il DDL si compila questo catalogo.
Con un DBMS si fanno le interrogazioni. Queste interrogazioni sono in programmazione dichiarativa è il DBMS che gestisce la richiesta tramite il linguaggio SQL. Si possono implementare in linguaggi esterni in vario modo.
Utenze di un DBMS
RICORDA: Su un dbms ci possono essere più database
DBA = amministratore database (di uno o più) Hanno diversi funzionailità tra cui DDL, DML, DQL , DCL (scaricare dati, modificare dati, fare query sui dati e concedere funzionalità ad altri utenti)
Il Superuser (in postgres si chiama POSTGRES) è il master di tutto, di ogni database e di quelli futuri.
DB user: utenti del database con privilegi specifici e limitati rispetto a un database. Un utente puo ad esempio essere uno script esterno per interrogare i dati
Ci sono diversi livelli di expertise per gli User, devel user, occasional (non-expert), casual user.
Accesso a un dbms
- Client server comunication
- Accesso sia da postazione locali o da remoto
- GLi utenti utilizzano un software client che presentano : riga di comando, GUI e interfaccia web.