Download storia dei database - Università degli studi di Napoli "PARTHENOPE"

Document related concepts
no text concepts found
Transcript
Storia dell’Informatica e del Calcolo Automatico
Prof.ssa F. Perla
La storia delle basi di dati
Realizzato da:
Coppola Maria TEC 0031
Miranda Rosa TEC 0036
D.P.1
Prof. Giunta
1
La preistoria dei DB
Probabilmente il più glorioso
(ed a tutt' oggi utilizzato) antenato dei
database relazionali odierni può essere
identificato con la sana e vecchia
agenda telefonica.
In effetti se guardiamo come è fatta la
nostra agenda scopriamo una notevole
affinità con i sui parenti più tecnologici
attuali.
Un’agenda è organizzata tramite un indice
(la serie di linguette sul fianco che ci permette di accedere più
rapidamente a tutti i nominativi che iniziano con una certa
lettera)
che gestisce una tabella composta da colonne che identificano
il tipo di dato sotto riportato (nome, numero di telefono, a
volte indirizzo) all' interno delle registrazioni che , pur
differendo l' una dall' altra per i dati riportati al loro interno
"hanno tutti la stessa struttura", cioè riportano le stesse
informazioni nella medesima maniera.
I dati in formato testo
Il primo tentativo compiuto dagli informatici per riversare
questo tipo di oggetti in un “qualcosa" trattabile dalle loro
grosse calcolatrici corrisponde al nome di CSV (Comma
Separated Value)
I dati in formato testo
Cioè un banalissimo file di testo dove ogni informazione
(numero di telefono di Pino, nome di Gino, indirizzo di Tino)
è separata dalle altre tramite un carattere particolare
(normalmente una virgola) ed ogni record è separato dagli
altri tramite un' altro carattere (normalmente il carattere
di "a capo").
Ovviamente questo
sistema era decisamente
embrionale, in quanto
comunque per trovare all'
interno di un file del
genere una informazione
specifica era spesso
necessario scorrerselo
quasi tutto ed in modo
poco pratico per trovare
quanto si ricercava.
La comparsa degli indici
La logica evoluzione del CSV fu
l'ISAM (Indexed Sequential Access
Method), che differiva dal CSV solo
per il fatto che i record non erano
"buttati dentro a casaccio" (cioè in
ordine di inserimento), bensì veniva
definito un ordinamento (tipicamente
nel caso della nostra agenda l' ordine
alfabetico sui cognomi)
Tale ordinamento veniva sfruttato sia in scrittura
("dove devo mettere il record del telefono di Anna?" "sotto
la lettera A tra Anita ed Antonio") sia in lettura ("dove hai
infilato il numero di telefono di Pietro?" " lettera P, tra Paolo
e Pinocchio") permettendo in questo modo di abbreviare
incredibilmente i tempi di ricerca di una data
informazione.
Per riuscire poi a gestire ancora meglio il tutto si
crearono anche delle specie di "archivi sussidiari", detti
indici, in cui veniva registrato solo l' ordine dei vari
record senza tutte le altre informazioni, il che
permetteva di andare a svolgere le proprie ricerche in
questo "riassunto" in modo molto più veloce (meno roba da
leggere=ci metto di meno a leggerla) e poi "puntare
diritti" sul database completo per leggere tutto il record
una volta che si sapeva dov'era.
A questo punto parecchi matematici di notevole
ingegno si misero a cercare metodi per rendere
ancora più veloce l' accesso alle informazioni che ci
servivano sfornando sistemi di ricerca dai nomi
fantasiosi come "ricerca dicotomica" o
farfalla”.
"a
Si sono sviluppati così tutti quei sistemi oggi definiti
"Database non relazionali" (in contrapposizione ai
database relazionali che vedremo dopo) di cui forse i
più famosi sono stati i database B-Trieve e DBIII-like
(clipper, DBIII, DBIV ecc)
Con l'evoluzione di questi ultimi i database ebbero
una notevole diffusione e quindi iniziarono a nascere
richieste di affidabilità e di prestazioni sempre
maggiori, con uno sviluppo teorico notevole dietro ad
essi, che permetteva a questo punto di affrontare
diversi problemi.
L’evoluzione dei DB
Inizio anni ’60: Charles Bachman (Eletric) progetta il
primo DBMS (Integrated Data Store), basato sul modello
reticolare. Bachman vincerà il primo ACM Turing Award
nel 1973.
Fine anni ’60: l’IBM sviluppa l’Information Management
System (IMS), basato sul modello gerarchico e usato
tutt’oggi.
1970: Edgar Codd (IBM) propone il modello relazionale.
Codd vincerà l’ACM Turing 1981.
L’evoluzione dei DB
Anni ’80: il modello relazionale vince su altri, e si
diffondono i DBMS basati su di esso. Il linguaggio SQL
viene standardizzato come linguaggio per DBMS basati sul
modello relazionale.
Anni ’90: sulla spinta di intense ricerche, i DBMS
relazionali divengono sempre più sofisticati e diffusi (DB2,
Oracle, Informix).
Nel 1999 James Gray vince l’ACM Turing Award per il suo
contributo alla gestione delle transazioni.
L’evoluzione dei DB
Recentemente:
I DBMS si integrano con strumenti WEB, e
ampliano il loro spettro di utilizzazione.
Inizio anni '60
I calcolatori diventano redditizi per le aziende private
con l’aumento della possibilità di immagazzinamento dei
dati.
Due modelli principali di dati sono stati sviluppati:
modello della rete (Codasyl) e gerarchico (IMS).
Inizio anni '60
Charles W. Bachman, che ha realizzato negli anni ‘60 per
General Electric il primo vero DBMS della storia ("IDS"),
fondò il "Database Task Group", all'interno del "Codasyl“
(Conference on data system languages), il gruppo di lavoro
dedicato alla creazione e standardizzazione del linguaggio di
programmazione COBOL.
Negli anni ’70: Database Navigazionali
Nel 1971 tale standard fu prodotto e prese il nome di
"Approccio Codasyl"; presto furono disponibili sul mercato
una serie di prodotti basati su tale approccio.
Database Navigazionali
Negli anni ’70: Database Navigazionali
L’approccio Codasyl era basato sulla navigazione manuale in
un insieme di dati disposti sotto forma di rete. Alla prima
apertura del programma, il programma si apriva sul primo
dato disponibile, contenente, tra le altre cose un puntatore
ai dati successivi. Per trovare un dato il programma
attraversava la serie di puntatori fino a trovare il dato
corretto.
Negli anni ’70: Database Navigazionali
Delle semplici '"query" come "Trova tutte le persone
nate in Svezia" richiedevano l'attraversamento
dell'intero set di dati. Non esisteva, dunque, alcuna
funzione di ricerca; oggi, questo potrebbe sembrare una
limitazione, ma all'epoca, essendo i dati archiviati su
nastro magnetico, operazioni come quelle evidenziate
sopra non erano particolarmente costose in termini di
tempo.
Negli anni ’70: Database Navigazionali
Nel 1968, la IBM sviluppò un proprio sistema DBMS, chiamato
IMS. IMS era uno sviluppo di un programma utilizzato nelle
missioni Apollo sui Sistemi/360 e utilizzava un sistema simile
all'approccio Codasyl, con l'unica differenza di avere un
sistema gerarchico anziché a rete.
Negli anni ’70: Database Navigazionali
Ambedue le soluzioni presero poi il nome di "database
navigazionali" a causa del metodo di consultazione che
era stato previsto.
Negli anni ’70: Database Navigazionali
Inoltre, Charles Bachman, in occasione della premiazione nel
1973 in cui ha ricevuto dalla Association for Computing
Machines
(ACM) il prestigioso premio Alan Turing per le sue attività
pionieristiche nel campo del database,
presentò un lavoro intitolato "Il programmatore come
navigatore". IMS è abitualmente classificato come un
database gerarchico mentre IDS e IDMS (ambedue
database CODASYL), CINCOMs e TOTAL sono classificati
come database a rete.
A.M. Turing Award
Lo A.M. Turing Award è assegnato annualmente dalla Association for
Computing Machinery, (ACM), ad una personalità che eccelle per i
contributi di natura tecnica che ha dato alla comunità informatica.
Vengono considerati contributi al settore dei computers duraturi e di
elevata importanza tecnica.
Il premio è intitolato al matematico inglese Alan Mathison Turing (1912
- 1954), in riconoscimento del suo contributo unico e originale alla
nascita delle attività di calcolo mediante dispositivi automatici.
Spesso il Turing Award viene chiamato il "premio Nobel del calcolo
automatico". Ogni vincitore tiene una lezione che sarà pubblicata su un
periodico dell'ACM.
Database Relazionali
Negli anni ’70: Database Relazionali
Edgar Codd lavorava alla sede californiana della IBM come
ricercatore sulla nascente tecnologia degli hard disk
quando osservò l'inefficienza dell'approccio Codasyl con la
nuova modalità di memorizzazione dei dati, inefficienza
principalmente dovuta all'assenza di una funzione di
ricerca.
Database Relazionali
Nel 1970 Codd cominciò a produrre diversi documenti schematizzanti
un nuovo approccio alla costruzione delle basi di dati, culminati nel
"Modello relazionale per Basi di dati condivise“
("A Relational Model of Data for Large Shared Data Banks").
In questo articolo, descrisse un nuovo sistema per archiviare e
modificare grandi quantità di dati. Invece di utilizzare delle
"righe" (in inglese, ma anche molto usato in italiano: "record" o
anche "tuple") collegate tra di loro attraverso un qualche tipo di
struttura "ad albero", come in Codasyl, ritenne di utilizzare una
"tabella" di righe a lunghezza fissa.
Questo sistema sarebbe stato molto inefficiente
nell'archiviazione di dati "sparsi", in cui la tabella avrebbe potuto
avere diverse "celle" vuote; tale errore di impostazione fu
corretto dividendo i dati in diverse tabelle, in cui gli elementi
opzionali venivano spostati, anziché sprecare spazio nella tabella
principale.
Ad esempio, un utilizzo comune delle basi di dati è quello di
registrare delle informazioni sugli utenti: il loro nome, informazioni
di accesso, indirizzo e numeri di telefono.
• In un database navigazionale tutti questi dati sarebbero stati
memorizzati in un unico "record", e gli elementi non presenti (ad
esempio un utente di cui non sia noto l'indirizzo) sarebbero stati
semplicemente omessi.
• Al contrario, in un database relazionale, le informazioni sono state
divise, ad esempio, nelle tabelle "utente", "indirizzi", "numeri di
telefono": solo se i dati sono presenti viene creata, nella rispettiva
tabella, una tupla.
La chiave di volta del sistema sta nel collegamento delle
tabelle: nel modello relazionale, per ogni record viene definita una
"chiave", ovvero un identificatore univoco della riga. Nella ricostruzione
delle relazioni, l'elemento di riferimento, che distingue una riga da
un'altra è proprio questa "chiave" e viene richiamata nella definizione
della relazione. La chiave può essere uno dei dati stessi che vengono
memorizzati (as esempio, per la tabella utenti, il "Codice Fiscale" della
persona), o un campo che viene aggiunto specificatamente per questo
scopo (spesso chiamato "OID" - "Object IDentifier").
Questa operazione di "riunificazione" dei dati non è prevista nei
linguaggi di programmazione tradizionali; mentre l'approccio
navigazionale richiede semplicemente di "ciclare" per raccogliere i
diversi record, l'approccio relazionale richiede al programma di
"ciclare" per raccogliere le informazioni riguardanti ogni record. Codd,
propose, come soluzione, la creazione di un linguaggio dedicato a questo
problema, un linguaggio che, più tardi, si sarebbe sviluppato nella
codifica che oggi è utilizzata universalmente e che è il mattone
fondamentali delle basi di dati: SQL.
Utilizzando una branca della matematica chiamata "calcolo delle
tuple", dimostrò che questo sistema era in grado di compiere tutte le
normali operazione di amministrazione dei database (inserimento,
cancellazione, etc.) e che inoltre consentiva di disporre di uno
strumento semplice per trovare e visualizzare gruppi di dati tramite
un'unica operazione.
LA IBM cominciò a implementare questa teoria in alcuni
prototipi all'inizio degli Anni '70, come nel "System R".
La prima versione fu realizzata nel 1974/75 con uno strumento
"monotabella"; negli anni successivi furono studiati i primi sistemi che
potessero supportare la suddivisione dei dati in tabelle separate,
utile, come abbiamo visto, per la separazione dei dati opzionali in
tabelle diverse da quella principale.
Versioni "multiutente" furono realizzate nel 1978 e nel 1979; negli
stessi anni fu standardizzato il linguaggio SQL.
La superiorità di questo sistema rispetto a Codasyl fu quindi
evidente e la IBM passò a sviluppare una versione commerciale di
"System R", che prese il nome di "SQL/DS" prima e di "Database 2"
(DB2) infine.
Il lavoro di Codd, venne proseguito presso l'università di
Berkeley da parte di
Eugene Wong
e Michael Stonebraker.
Il loro progetto, chiamato INGRES (Interactive Graphics and
Retrieval System) e finanziato tramite fondi destinati alla
creazione di un database geografico, vide la luce nel 1973 e
produsse i primi risultati nel 1974 anche grazie all'opera di
numerosi studenti che si prestarono quali programmatori; quasi 30
persone lavorarono al progetto.
INGRES era assai simile a "System R" e prevedeva un linguaggio
alternativo a SQL, chiamato QUEL.
Molte delle persone coinvolte nel progetto si convinsero della
fattibilità commerciale dello stesso e fondarono imprese per entrare
nel mercato con questo prodotto: Sybase, Informix, NonStop SQL e
alla fine Ingres stessa naquero quali "spin-off" per la diffusione di
INGRES all'inizio degli Anni '80.
Perfino Microsoft SQL Server è, per certi versi, una derivazione
di "Sybase" e, quindi, di INGRES. Solamente la Oracle di Larry
Ellison partì utilizzando un approccio diverso, basato sul "System
R" della IBM, e alla fine prevalse sulle altre compagnie con il suo
prodotto, lanciato nel 1978.
Persone che hanno lavorato al SYSTEM-R
Michel Adiba (1979-1980): designs for R* snapshots, derived
relations, distributed catalog.
Mike Blasgen: RSS index component, manager of RSS,
manager of System R.
Don Chamberlin: manager of RDS, co-designer of SQL.
Ron Fagin: authorization, indexing, and theory
(including normalization).
Persone che hanno lavorato al SYSTEM-R
Jim Gray: IBM: RSS transaction component; SQL/DS consulting,
SQL/DS, DB2, IMS Fast Path efforts; Tandem: NonStop SQL;
FastSort, and Pathmaker; DEC: Rdb, TP and AlphaSort; Microsoft:
NTclusters.
Don Haderle: DB2 (1978-): chief architect, IBM Fellow,
architecture and development of IBM's other relational
database managers and related products.
Theo Härder (1976): RSS sort/merge component.
Persone che hanno lavorato al SYSTEM-R
Bob Jolls: manager of SQL/DS at Santa Teresa; manager of
VS/QUERY (QMF); manager of DB2 (1980-1981).
Bruce Lindsay: RSS storage pools; R* architect.
Raymond Lorie: XRM; RSS: buffer management,
shadow pages, transaction management; RDS:
compilation of SQL, optimization.
Paul McJones (1975-1976): RSS crash recovery.
Persone che hanno lavorato al SYSTEM-R
Jim Mehl: System R: SQL parser, MVS port, Boeing joint study
contact.
Roger Miller (1979-): DB2: lead strategist, planning, and
development (SQL, languages, install, security, audit, standards,
performance, concurrency, and availability).
C. Mohan (1981-): R* transaction management, ARIES, DB2,
MQSeries and Lotus Domino recovery and locking.
Mo Mresse (1977-1978): identification and authorization
concept and programming (GRANT-REVOKE statements in
SQL) in the group of Don Chamberlin.
Persone che hanno lavorato al SYSTEM-R
Giovanni Maria Sacco (1980): buffer management.
Mario Schkolnick: RDS optimizer, database design tools.
Pat (Griffiths) Selinger: RDS optimizer, precompiler,
authorization; R* optimizer and compiler.
Persone che hanno lavorato al SYSTEM-R
Don Slutz: RDS; Esvel; Tandem NonStop SQL.
Paolo Tiberio (1978-1979, 1981): Update cost evaluation,
System R-based database design tool.
Brad Wade: RDS: authorization, code generator, catalog
creation, performance, UFI, installation procedures.
BIBLIOGRAFIA DEI PROGETTI “SYSTEM R”
ADIB 80
Michel E. Adiba, Bruce G. Lindsay. "Database Snapshots" Proceedings of VLDB 1980, p. 86-91.
ASTR 75a
M. M. Astrahan and D. D. Chamberlin. "Implementation of a Structured English Query Language" Communications of the ACM, Vol. 18, No. 10, October 1975.
ASTR 75b
M. M. Astrahan and R. A. Lorie. "SEQUEL-XRM: A Relational System" Proceedings of ACM Pacific Regional Conference, San Francisco, CA., April 1975, p. 34.
ASTR 76
M. M. Astrahan, M. W. Blasgen, D. D. Chamberlin, K. P. Eswaran, J. N. Gray, P. P. Griffiths, W. F. King, R. A. Lorie, P. R. McJones, J. W. Mehl, G. R. Putzolu, I. L. Traiger, B. Wade, and
"System R: A Relational Approach to Database Management" ACM Transactions on Database Systems, June 1976, p. 97. online
ASTR 79
M. M. Astrahan, M. W. Blasgen, D. D. Chamberlin, J. N. Gray, W. F. King, B. G. Lindsay, R. A. Lorie, J. W. Mehl, T. G. Price, G. R. Putzolu, M. Schkolnick, P. P. Selinger, D. R. Slutz, H.
P. Tiberio, I. L. Traiger, B. W. Wade, and R. A. Yost. "System R: A Relational Data Base Management System" IEEE Computer, May 1979, p. 43.
ASTR 80a
M. M. Astrahan, W. Kim, and M. Schkolnick. "Performance of the System R Access Path Selection Mechanism" Proceedings of the IFIP Congress, Melbourne, Australia, 1980.
BLAS 77a
M. W. Blasgen and K. P. Eswaran. "Storage and Access in Relational Databases" IBM Systems Journal, No. 4, 1977, p. 363.
BLAS 77b
M. W. Blasgen, R. G. Casey, and K. P. Eswaran. "An Encoding Method for Multifield Sorting and Indexing" Communications of the ACM, Nov. 1977, p. 874.
BLAS 79
M. Blasgen, J. Gray, M. Mitoma, and T. Price. "The Convoy Phenomenon" ACM Operating Systems Review, Vol. 13, No. 2, April 1979, p. 20.
BLAS 81
M. W. Blasgen, M. M. Astrahan, D. D. Chamberlin, J. N. Gray, W. F. King, B. G. Lindsay, R. A. Lorie, J. W. Mehl, T. G. Price, G. R. Putzolu, M. Schkolnick, P. G. Selinger, D. R. Slutz, H.
I. L. Traiger, B. W. Wade, and R. A. Yost. "System R: An Architectural Overview" IBM Systems Journal, Vol. 20, No. 1, Feb. 1981, p. 41.
BOYCE 73
R. F. Boyce and D. D. Chamberlin. "Using a Structured English Query Language as a Data Definition Facility" IBM Research Report RJ1318, San Jose, CA., December 1973.
BOYCE 75
R. F. Boyce, D. D. Chamberlin, W. F. King, and M. M Hammer. "Specifying Queries as Relational Expressions: the SQUARE Data Sublanguage" Communications of the ACM, November 1
CHAM 74
D. D. Chamberlin and R. F. Boyce. "SEQUEL: A Structured English Query Language" Proceedings of the ACM-SIGMOD Workshop on Data Description, Access, and Control, May 1974.
CHAM 75
D. D. Chamberlin, J. N. Gray, and I. L. Traiger. "Views, Authorization, and Locking in a Relational Database System" Proceedings of the 1975 National Computer Conference, p. 425.
CHAM 76a
D. D. Chamberlin, M. M. Astrahan, K. P. Eswaran, P. P. Griffiths, R. A. Lorie, J. W. Mehl, P. Reisner, and B. W. Wade. "SEQUEL 2: A Unified Approach to Data Definition, Manipulation,
Control" IBM Journal of Research and Development, Nov. 1976, p.560. (Also see errata in January 1977 issue.)
CHAM 76b
D. D. Chamberlin. "Relational Database Management Systems" Computing Surveys, March 1976, p. 43.
Sviluppi del lavoro di Codd
Il lavoro di Codd venne continuato nella Università di Uppsala (in
Svezia) dove fu sviluppato un prodotto, Mimer SQL,
commercializzato nel 1984.
Con Mimer SQL è stato introdotto il concetto di transazione,
successivamente importato in quasi tutti i DBMS.
Database a oggetti
A partire dai primi anni ‘90, hanno cominciato a diffondersi i
database a oggetti (ODBMS).
Nel modello dei dati a oggetti le entità del dominio vengono
modellate con oggetti e relazioni fra oggetti.
Un ODBMS offre le funzioni necessarie a rendere persistenti
collezioni di oggetti e le relazioni fra di loro.
La naturalezza nel rappresentare dati complessi e l'abilità ad
accedervi in modo efficiente è il principale punto a favore di un
ODBMS rispetto a un RDBMS.
Database a oggetti
A differenza del modello relazionale, nel modello a oggetti gli
attributi di un oggetto possono essere di qualunque tipo: in
particolare, un oggetto può contenere altri oggetti.
Inoltre l'ODBMS può essere istruito per privilegiare gli accessi a
gruppi (cluster) di oggetti eterogenei, in modo che il caricamento di
un oggetto con tutte le sue componenti si svolga in un'operazione
unica di accesso al disco; questa stessa operazione nei RDBMS deve
essere eseguita tramite una o più JOIN, che è una delle operazioni
più costose di un RDBMS
Database a oggetti
Pensiamo, per esempio, a come rappresentare il contorno di una
figura CAD in un RDBMS. Un contorno è una sequenza di punti. Il
modello dati relazionale non permette di definire un nuovo tipo
elementare "punto".
Il progettista del DB relazionale dovrà quindi usare un'unica tabella
con quattro colonne per contenere tutti i punti del sistema. Due
colonne servono per mantenere le coordinate; una contiene
l'identificativo del contorno cui appartiene il punto, la quarta il
numero di sequenza del punto nel contorno.
Database a oggetti
Per estrarre dal DB un contorno, prima bisogna estrarre dalla
relazione tutti i punti (presumibilmente alcuni milioni) quelli che
corrispondono al contorno che stiamo cercando, quindi ordinarli
secondo il numero di sequenza, infine trasferire il risultato in un
formato manipolabile nell'ambiente di programmazione: tipicamente
un vettore dinamico di oggetti Point. Altrettanto laboriosa sarà
l'operazione inversa. La macchinosità e l'inefficienza di tutto ciò
sono tali da sconsigliarlo in qualsiasi CAD reale.
Database a oggetti
Un database a oggetti non solo può rappresentare direttamente la
sequenza ordinata dei punti, senza trasformarla in tabella, ma può
essere istruito a mettere i punti sulla stessa pagina di disco su cui si
trova la figura geometrica cui si riferiscono.
Tutti gli ODBMS prevedono un modo perché un'applicazione possa
dare questi "suggerimenti" al run time del database, anche se non
esiste un modo standard; un meccanismo tipico è di passare al
costruttore di un oggetto il riferimento a un altro oggetto già sul
database, come indicazione che i due devono stare possibilmente
vicini.
Database a oggetti
La prima differenza che salta agli occhi fra il mondo dei database a
oggetti e quello relazionale è la mancanza di interoperabilità. A un
database a oggetti si può accedere solo passando per il DBMS che lo
gestisce: per esempio, a un database ObjectStore può accedere
solo un programma scritto per ObjectStore e non, per esempio, per
Objectivity/DB; inoltre, anche se la maggior parte dei database a
oggetti sono supportati su una molteplicità di piattaforme (p.e.
Win32, Sun, HP, eccetera), non tutti sono realmente
multipiattaforma, cioè non permettono p.e. a un cliente su Windows
di accedere a un database su server Unix (alcuni database a oggetti
tuttavia lo permettono).
Object Database Management Group
Per porre rimedio a questo stato di cose, che alcuni pensano sia il
più grande difetto degli ODBMS rispetto ai relazionali e, quindi,
l'ostacolo maggiore alla loro diffusione, è nato ODMG. ODMG
(Object Database Management Group) è un consorzio di costruttori
di ODBMS.
Il suo fine è di definire un linguaggio astratto per la definizione
dello schema del database (ODL: Object Definition Language), un
linguaggio standard per le interrogazioni sul database (OQL :
Object Query Language) e il mapping di questi linguaggi astratti sui
linguaggi di programmazione reali.
Database a oggetti relazionali
Oggi molti DBMS applicano in realtà un misto tra il modello
relazionale e il modello a oggetti.
Si parla quindi di ORDBMS (Object Relational DBMS).
Evoluzione dei database a oggetti
•
Gestione e memorizzazione delle immagini, audio e video, MMDB
•
Data Warehouses
•
Sistemi informativi geografici (GIS) e analisi spaziali
Data Warehousing
Le potenzialità delle basi di dati si sono concretizzate, nel corso
degli anni, in tools quasi sorprendenti, rispetto agli usi di pochi anni
fa, in grado di maneggiare il bene “informazione” alla stregua di un
qualsiasi altro bene aziendale. Se negli anni settanta le basi dati
avevano in prevalenza un ruolo di storage, oggi manager aziendali
interrogano quotidianamente il proprio Decision Support System per
indagare tra i dati, cercando risposte o smentite alle proprie
considerazioni.
Il processo attraverso il quale, a partire da dati operazionali, è
possibile ottenere informazioni che aiutino i manager nelle analisi
dei dati prende il nome di “data warehousing” (magazzino di dati).
Data warehousing
Un datawarehouse in ambito aziendale fa parte di un sistema
informativo la cui materia prima da processare è l’informazione. I
suoi obiettivi sono:
• la gestione storica dei dati
• la facilità di accesso alle informazioni attraverso una visione
multidimensionale dei dati
• la capacità di fare ipotesi sul futuro
E’ realizzato attraverso un processo basato sulla riorganizzazione
dei dati esistenti in un DBMS.
GIS
Un Sistema Informativo Geografico (Geographical Information System,
GIS) è un sistema informativo computerizzato che permette l'acquisizione,
la registrazione, l'analisi, la visualizzazione e la restituzione di informazioni
derivanti da dati geografici (geo-referenziati).
Il GIS è una forma di DBMS capace di gestire le posizioni degli “elementi”
sul territorio, che si integra
interrogazione e visualizzazione.
con
delle
componenti
software
di
GIS
Per la rappresentazione dei dati in un sistema informatico occorre
formalizzare un modello rappresentativo flessibile che si adatti ai
fenomeni reali. Nel GIS abbiamo tre tipologie di informazioni:
• geometriche: relative alla rappresentazione cartografica degli
oggetti rappresentati; quali la forma (punto, linea poligono), la
dimensione e la posizione geografica;
• topologiche: riferite alle relazioni reciproche tra gli oggetti
(connessione, adiacenza, inclusione ecc…);
• informative: riguardanti i dati (numerici, testuali ecc…) associati
ad ogni oggetto.
GIS
Il GIS prevede la gestione di queste informazioni in un database
relazionale.
L'aspetto che caratterizza il GIS è quello geometrico: esso
memorizza la posizione del dato impiegando un sistema di proiezione
reale che definisce la posizione geografica dell'oggetto.
DBMS multimediali
I DBMS multimediali (MMDB) sono sistemi che permettono di
memorizzare e recuperare oggetti costituiti da testo, immagini,
suoni, animazioni, voce, video, ecc.
I MMDB presentano problematiche diverse rispetto ai DBMS
tradizionali:
• Dimensioni del DB (molto) maggiori
• Gestione di media continui (video, audio)
• Complessità di modellazione degli oggetti multimediali
• Ricerche non necessariamente “esatte”
DBMS multimediali
Settori applicativi:
•
•
•
•
•
DB medici (TAC, RX)
DB scientifici (spectral analysis, molecolari)
DB legali (fingerprints, mugshots, copy detection)
Publishing (electronic newspaper)
Fashion
DBMS multimediali
Benché a tutt’oggi non esista un modello standard per la descrizione
dei MMDB, è opinione comune che tutte le applicazioni non banali
debbano considerare una rappresentazione su (almeno) 4 livelli:
• Raw Data: descrive i dati multimediali veri e propri,
indipendentemente dal loro contenuto. Questo livello è rilevante per
gli aspetti di memorizzazione, ma non di ricerca.
• Objects Description: a questo livello sono definiti gli “oggetti”
multimediale di interesse (es: parti di immagini, elementi di testo).
DBMS multimediali
• Features (caratteristiche): le feature di un oggetto MM ne
descrivono il contenuto in termini di grandezze misurabili (es: colore
di un’immagine, spettro di un suono, ecc.)
• Concepts: il livello dei concetti usa una rappresentazione
semantica del dominio di interesse (background/domain knowledge)
per interpretare il contenuto degli oggetti multimediali (“cosa sono”
= “quali entità del mondo reale rappresentano”).
DBMS multimediali
DBMS multimediali
Ricerca in un MMDB:
• su campi “classici”: trova tutti i film diretti da Brian De Palma
• su campi strutturali: trova tutti le pagine Web che contengono un
video
• su feature: trova tutti gli ECG “simili” a …
• concettuali: trova tutte le foto di Raul Bova
• su relazioni spazio-temporali: trova tutte le scene (shot) in cui
Benigni entra in scena dopo Massimo Troisi
Schema riassuntivo
a oggetti
relazionale a oggetti
Modelli di
DBMS
relazionale
reticolare
gerarchico
x
1960
x
1970
x
x
1980
Tempo
x
1990
2000
Lista dei DBMS - Software proprietario
• ADABAS (Software AG)
• Microsoft SQL Server
• AskSam
• Microsoft Access
• DB2 (IBM)
• Mimer SQL (Mimer AB)
• Caché (InterSystems)
• Oracle (Oracle Corporation)
• FileMaker Pro (FileMaker Inc.)
• Ovrimos
• FrontBase
• Progress RDBMS (Progress Corp.)
• IMS/DB (IBM)
• SESAM
• Informix (IBM)
• Sybase (Sybase Inc.)
• Ingres (Computer Associates)
• Teradata (NCR Corporation)
• InterBase (Borland)
• TimesTen (TimesTen Inc.)
Lista dei DBMS - Open source
•
•
•
•
•
•
•
•
•
Berkeley DB
Dataman
DBM
Emdros
Firebird SQL
GigaBASE
HSQL Database Engine
HyperNetDatabase
MaxDB (prima SAP DB e ADABAS)
•
•
•
•
•
•
•
•
Metakit
MySQL
Ozone
PicoSQL
PostgreSQL
SQLite
tdbengine
ZODB
DB2
DB2 è un DBMS prodotto da IBM. La sua prima versione risale al
1983 e, secondo molti, è stato il primo prodotto ad utilizzare il
linguaggio SQL.
Inizialmente era un DBMS per i mainframe, ma oggi è diffuso su
qualsiasi tipo di server, perfino su PDA e altri dispositivi portatili;
esistono versioni per GNU Linux, Unix (AIX, HP-UX, Solaris) e MS
Windows.
I suoi precursori sono DL/1 e IMS/DB, sempre della IBM.
DB2
Quando Informix acquistò Illustra e introdusse nel proprio
database Universal Server, facendone un DBMS relazionale a
oggetti, sia Oracle che IBM dovettero introdurre il concetto di
oggetti nei proprio prodotti.
Pertanto DB2 è diventato un DBMS relazionale a oggetti.
Attualmente, DB2 e Oracle si contendono il primo posto nel mercato
dei DBMS.
Caché
Caché è un DBMS proprietario prodotto da InterSystems.
InterSystems usa il termine "post-relazionale" per descriverne le
caratteristiche.
Caché fornisce accesso tramite SQL, Object e in maniera multidimensionale agli stessi dati.
Esistono versioni di Caché sia per Windows, sia per diverse versioni
di Unix e distribuzioni di Linux, sia per le piattaforme OpenVMS.
Caché
La memorizzazione dei dati in Caché avviene utilizzando i b-tree
basati su array multidimensionali (conosciutti anche comi il nome di
MUMPS globals, sebbene InterSystems preferisca non utilizzare
questo termine).
Cachè fornisce i linguaggi di sviluppo
• Caché ObjectScript
• Caché Basic
per facilitare al programmatore la creazione e lo sviluppo di
applicazioni che interagiscono con il DBMS stesso.
Caché
Fornisce inoltre interfacce esterne che permettono il Native
Object Binding con diversi linguaggi di programmazione quali C++,
Java, EJB, ActiveX.
Gli accessi relazionali mediante JDBC e ODBC sono implementati
tramite Direct Interface e risultano essere molto performanti.
Inoltre sono supportati anche accessi mediante XML e Web
Services.
Caché
I principali clienti e utilizzatori di Caché sono i grandi ospedali degli
USA, che lo usano per la memorizzazione elettronica dei dati dei
pazienti, e istituzioni finanziarie come Ameritrade.
I principali concorrenti di Caché sono DB2 di IBM, MS-SQL di
Microsoft e Oracle.
Caché
Rispetto agli altri sistemi relazionali, per quanto riguarda
applicazioni simili, Caché può fornire spesso un rendimento più
elevato (o a parità di risorse hardware può sostenere un numero
maggiore di utenti).
Questo vantaggio in performance viene pagato, sempre nel
confronto con altri sistemi relazionali, da una perdita di flessibilità;
ne risulta la necessità di una formazione specifica per il personale
con aggiornamenti diversi dallo standard attuale dei database e
delle versioni chiuse del programma, associate a degli specifici
strumenti di sviluppo, disponibili presso un solo venditore.
FileMaker Pro
FileMaker Pro è un database multi piattaforma sviluppato da
FileMaker Inc. E’ stato uno dei primi database presentati per Apple
Macintosh all'inizio degli anni ottanta.
E’ un database che combina potenza e facilità d'uso.
È anche conosciuto per la stretta integrazione del database con
l'interfaccia grafica. Ad esempio, per modificare un database,
basta prelevare un elemento e trascinarlo in un layout/schermo o
form. Il motore automaticamente rileverà il nuovo elemento e
provvederà a tenerne conto durante le interrogazioni.
FileMaker Pro
Il programma non si basa sulla filosofia della programmazione
orientata agli oggetti, anche se ne mutua molte caratteristiche,
infatti viene definito un ambiente di sviluppo "quasi-object" in cui la
base dello sviluppo è la manipolazione di entità chiamate oggetti, ma
il database non supporta molte delle caratteristiche avanzate
previste dal paradigma della programmazione a oggetti.
Questa peculiare gestione dei dati lo rende un prodotto unico e,
sotto molti punti di vista, lo rende difficile da confrontare con i
prodotti concorrenti, dato che questi sono basati su paradigmi
diversi.
FileMaker Pro
E’ disponibile sia per la piattaforma Macintosh, sia per la
piattaforma Windows ed è in grado di utilizzare una rete locale
mista (composta da computer Macintosh e Windows).
E’ un prodotto scalabile, è disponibile una versione per le postazioni
degli utenti, per i server e esiste una versione in grado di
interfacciarsi a siti web e a dispositivi mobili.
Informix
Nel 1980, Roger Sippl e Laura King hanno fondato la società
Relational Database Systems (RDS).
Il loro primo prodotto, Marathon, è stato rilasciato su Onyx, una
versione di Unix per i primi microprocessori ZiLOG.
In RDS, Sippl and King hanno posto la loro attenzione al mercato
dell’emergente SQL e hanno adattato una versione del codice
sorgente, pubblicamente disponibile, di Inges alla piattaforma Unix.
Informix
La disponibilità di un codice ben collaudato ha permesso alla RDS di
rilasciare, nel 1981, la sua prima versione di Informix. Essa
comprendeva alcuni cambiamenti fondamentali rispetto al sistema
Ingres, in particolare:
• un adattamento del linguaggio di query QUEL nel suo linguaggio
Informer,
• un tool per la scrittura di report (ACE), usato per estrarre
dati dal database e presentarli all’utente in un formato semplice,
• uno strumento per interrogare ed editare interattivamente i
dati nel database (PERFORM).
Informix
La versione finale di questo prodotto, realizzata all’inizio del 1986,
è stata la 3.30.
Nel 1985, con l’introduzione di un nuovo motore basato su query
SQL, è nato INFORMIX-SQL versione 1.10 (la versione 1.00 non è
stata mai rilasciata). Tale prodotto comprendeva anche le varianti
SQL di ACE e PERFORM.
Verso la metà degli anni ’80, grazie alla crescita della popolarità di
Unix e di SQL, RDS è diventata una società di successo ed ha
cambiato il suo nome in Informix Software.
Informix
I prodotti INFORMIX-SQL versione 2.00 e INFORMIX-4GL 1.00
comprendevano sia il motore del database, sia i tool di sviluppo
(I4GL per i programmatori, ISQL per i non-programmatori).
Nel 1989, con il rilascio della versione 9.00, il motore è stato
separato dai tool I4GL e ISQL ed ha preso il nome di Informix-SE
(Standard Engine).
Nello stesso anno è nato un nuovo motore, denominato inizialmente
Informix Turbo e successivamente Informix OnLine. La versione
5.00 di Informix OnLine è stata rilasciata alla fine del 1990.
Informix
Dopo una breve e disastrosa parentesi nel campo dell’office
automation, nel 1994 Informix Software è ritornata al mercato
sempre crescente dei database server e, in collaborazione con
Sequent Computer Systems, ha rilasciato la versione 6.00 di
Informix OnLine Dynamic Server.
La versione 7.00, nello stesso anno, ha riscosso un enorme successo
e ha fatto sì che Informix diventasse il secondo database al
mondo, scavalcando Sybase.
Informix
Nel 1995 Informix ha acquistato Illustra (scritto dagli ex membri
del team di Postgres) ed ha concentrato i suoi studi sui database
relazionali ad oggetti. E’ nato, così, Informix Universal Server.
Nel 1996 la versione 8.00 e la versione 9.00 di Informix Universal
Server hanno reso Infomix la più importante fra le società
operanti nel campo dei DB relazionali ad oggetti.
Informix
Nel 1997 una leadership sfortunata e una cattiva amministrazione
hanno offuscato i successi di Informix. Il 1° aprile 1997 Informix
ha annunciato che il reddito era stato inferiore alle aspettative di
100 milioni di dollari.
Nel marzo del 2000, Informix ha acquistato Ardent Software.
Questo ha portato alla realizzazione di motori multi-dimensionali,
quali UniVerse e UniData.
Nel 2001, IBM ha acquistato da Informix la tecnologia dei DB, il
marchio, i progetti futuri e i 100.000 clienti associati.
Informix
Nel novembre del 2002, Phillip White, colui che era alla guida di
Informix nel 1997, è stato accusato di frode da un grand joury
federale e nel 2004 è stato condannato a 2 mesi di carcere, ad una
multa di 10.000 dollari, a due anni di libertà vigilata e a 300 ore di
servizio civile.
Nel 2004 IBM ha rilasciato il database Open Source Cloudscape.
Microsoft SQL Server
Microsoft SQL Server è il database relazionale prodotto da
Microsoft. Nelle prime versioni era utilizzato per basi di dati mediopiccole, ma negli ultimi cinque anni (con l'uscita della versione 2000)
è stato utilizzato anche per la gestione di basi di dati di grandi
dimensioni.
L'ingresso di Microsoft nel mondo dei database di fascia
"entrerprise" risale al 1989, quando cominciò la competizione con
Oracle, IBM e Sybase che erano i dominatori del mercato.
Microsoft SQL Server
La prima versione fu SQL Server per OS/2 ed era quasi identica a
Sybase SQL Server 4.0 su Unix.
Fino al 1994, Microsoft SQL Server riportava tre copyright della
Sybase come indicazione della sua origine.
In seguito Sybase cambiò il nome del suo prodotto in "Adaptive
Server Enterprise" per evitare confusione con "Microsoft SQL
Server".
Microsoft SQL Server
SQL Server 7.0 è stato il primo database server basato su
un'interfaccia GUI.
L'attuale versione, Microsoft SQL Server 2000, è stata rilasciata
nell'agosto del 2000.
Microsoft sta testando il suo successore, SQL Server 2005, e la
versione beta è disponibile per il download.
Microsoft SQL Server
A partire dalla versione 7.0, Microsoft SQL Server è stato dotato
di uno strumento, denominato English Query (EQ), che consente agli
utenti di fare domande o dare comandi in lingua inglese.
Le domande e i comandi vengono tradotti da EQ in query SQL e,
dunque, processati da SQL Server.
Microsoft ACCESS
Access è prodotto dalla Microsoft ed è creato appositamente per
l'ambiente Windows.
La prima versione, la 1.0, è uscita fra il 1989 e il 1990 quando
ancora Windows (alla versione 3.0) non era molto diffuso e lo
standard dei programmi database per PC era ancora il DBIII Plus.
Intorno al 1993 è uscita la versione 2.0, l'ultima versione
precedente l'avvento di Windows 95.
Microsoft ACCESS
A partire dall'estate del 1995, con l'uscita di Windows 95 è stato
rilasciato anche Access 7 (detto anche "per Windows 95") seguito
infine, nella primavera del 1997, da Access 97.
Nell'estate del 1999 è uscito Access 2000.
Come si vede, in media ogni due anni viene rilasciata una nuova
versione che a volte è del tutto incompatibile con i formati delle
precedenti, creando non pochi disagi fra gli utenti.
Oracle
Convenzionalmente, con il termine Oracle ci si
riferisce ad uno tra i più famosi database
management system.
La società informatica che lo produce, la Oracle
Corporation, è una delle più grandi del mondo. É
stata fondata nel 1977 ed ha la sua sede centrale
in California.
Il fondatore, nonchè importante azionista, è
Lawrence J. Ellison.
Oracle
La società negli ultimi anni si è impegnata pesantemente
nell'appoggiare il sistema operativo GNU Linux facendo in modo che
tutte le sue applicazioni fossero disponibili sotto questo sistema
operativo e garantendo assistenza ai suoi clienti per il sistema
operativo stesso.
L'altra attività di Oracle dopo i database sono i programmi di
enterprise resource planning (ERP) di cui è la terza venditrice a
livello mondiale dopo SAP e PeopleSoft e prima di Microsoft e Sage.
Recentemente ha lanciato una OPA (offerta pubblica di acquisto)
proprio sulla PeopleSoft.
Firebird SQL
Firebird SQL è un database relazionale molto potente che offre
un'ampia gamma di funzioni previste nello standard ANSI SQL-92.
Viene sviluppato da FirebirdSQL Foundation (di cui IBPhoenix è uno
dei maggiori contribuenti) ed è un progetto open source disponibile
per moltissimi sistemi operativi compresi Windows, GNU Linux e
praticamente tutti gli altri sistemi operativi stile Unix.
Firebird SQL
Firebird è stato usato nei sistemi di produzione sotto una varietà di
nomi dal 1981.
Il suo principale punto di forza sta nella completezza delle funzioni
previste da SQL che vengono supportate. Questo lo rende uno dei
database open source più potenti attualmente disponibili.
MySQL
MySQL è un DBMS relazionale, composto da un client con
interfaccia a caratteri e un server, entrambi disponibili sia per
sistemi Unix che per Windows, anche se prevale un suo utilizzo in
ambito Unix.
MySQL
L’ideatore è Michael Widenius, sviluppatore della compagnia svedese
TcX.
• 1979 - Michael Widenius sviluppa uno strumento per la gestione di
database : UNIREG.
• 1994 - la TcX inizia a sviluppare applicazioni per il web utilizzando
UNIREG, ma sfortunatamente il prodotto richiedeva troppe risorse
per riuscire a generare dinamicamente pagine web.
MySQL
• La TcX analizza altri prodotti quali SQL e mSQL; quest'ultimo in
versione 1.x non supportava nessun indice e quindi aveva
performance peggiori di UNIREG.
• Widenius contatta Hughes, l'autore di mSQL, per rendere
possibile la connessione di mSQL a UNIREG; ma Hughes aveva già
apportato modifiche sostanziose a mSQL con la versione 2.
• La TcX decide di creare un altro server per database che fosse
piu' vicino alle loro esigenze a partire dall'esperienza di UNIREG.
MySQL
Nel 1995 nasce, così, la versione di MySQL 1.0.
Dal 1996, MySQL supporta la maggior parte della sintassi SQL e
possiede delle interfacce di linguaggio SQL per 15 diversi linguaggi
sia di programmazione che non, compreso un driver ODBC per le
piattaforme Windows.
Nel 2000, la MySQL AB adotta la licenza GPL (GNU General Public
License) per il prodotto MySQL.
PicoSQL
PicoSQL è un database relazionale client/server che supporta il
linguaggio SQL. Le sue caratteristiche principali rispetto ai prodotti
concorrenti sono la compattezza, il basso utilizzo di memoria e
risorse e la semplicità di installazione e configurazione.
Nonostante questo, picoSQL supporta il linguaggio SQL con tutte le
sue caratteristiche, gestisce alti livelli di concorrenza e le
transazioni.
PicoSQL
Lo ha sviluppato completamente la Picosoft di Pisa e deriva da un
driver ODBC della stessa società che permette di interrogare i file
a indice prodotti da applicazioni scritte in COBOL utilizzando
strumenti di query e reportistica creati per accedere a database
relazionali, come MS Access, Excel, Crystal Report, ecc.
Trasformare questo driver in un DB è stato relativamente semplice,
per cui l'azienda ha deciso di renderlo disponibile come Open
Source. Data la sua “leggerezza” e modularità, picoSQL può essere
facilmente adattato per qualsiasi sistema, dal pocket-pc al
mainframe.
PostgreSQL
PostgreSQL è un completo database relazionale ad oggetti con
licenza liberale stile BSD.
PostgreSQL è un'ottima alternativa sia rispetto ad altri prodotti
free come MySQL, Firebird SQL e MaxDB, sia rispetto a quelli a
codice chiuso come Oracle, Informix e DB2.
PostgreSQL
Offre caratteristiche uniche nel suo genere che lo pongono per
alcuni aspetti all'avanguardia nel settore dei database.
PostgreSQL spesso viene abbreviato come "Postgres", sebbene
questo sia un nome vecchio dello stesso progetto.
Inizialmente il DBMS si chiamava Ingres ed era un progetto del
Berkeley. Nel 1982 il capo progetto, Michael Stonebraker, ha
lasciato il Berkeley per commercializzare il prodotto, ma in seguito è
tornato all'accademia.
PostgreSQL
Nel 1985 l'ha lasciata nuovamente per dare vita a un progetto postIngres (Postgres) che superasse gli evidenti limiti dei prodotti
concorrenti dell'epoca. La base dei sorgenti di Ingres e di Postgres
erano, e sono rimasti nel tempo, ben distinti. Il nuovo progetto
puntava a fornire un supporto completo ai tipi di dati, in particolare
la possibilità di definire nuovi tipi di dati (UDF, User Defined
Types). Vi era anche la possibilità di descrivere la relazione tra le
entità (tabelle), che fino ad allora veniva lasciata completamente
all'utente. Perciò non solo Postgres preservava l'integrità dei dati,
ma era in grado di leggere informazioni da tabelle relazionate in
modo naturale, seguendo le regole definite dall'utente.
PostgreSQL
Dal 1986 gli sviluppatori diffusero un gran numero di articoli che
descrivevano il nuovo sistema e nel 1988 venne rilasciato un primo
prototipo funzionante.
La versione 1 venne rilasciata nel giugno del 1989 per un numero di
utenti contenuto.
Seguì una versione 2 nel giugno del 1990, in cui il sistema delle
regole venne completamente riscritto.
PostgreSQL
Nella versione 3, del 1991, questo sistema venne riscritto ancora,
ma venne aggiunto anche il supporto a gestori multipli di
immagazzinamento dei dati e un motore di query migliorato.
Nel 1993 vi era già un numero di utenti notevole che inondava il
team di sviluppo con richieste di supporto e di nuove features. Dopo
aver rilasciato la versione 4, che fu principalmente un ripulimento
del codice, il progetto terminò. Sebbene il progetto Postgres fosse
ufficialmente abbandonato, la licenza BSD dava modo agli
sviluppatori Open Source di ottenere una copia del software per poi
migliorarlo a loro discrezione.
PostgreSQL
Nel 1994 due studenti del Berkeley, Andrew Yu e Jolly Chen
aggiunsero a Postgres un interprete SQL per rimpiazzare il vecchio
QUEL che risaliva ai tempi di Ingres. Il nuovo software venne quindi
rilasciato sul web col nome di Postgres95.
Nel 1996 cambiò nome di nuovo: per evidenziare il supporto al
linguaggio SQL, venne chiamato PostgreSQL.
PostgreSQL
Il primo rilascio di PostgreSQL è stata la versione 6. Da allora, ad
occuparsi del progetto è una comunità di sviluppatori volontari
provenienti da tutto il mondo che si coordina attraverso Internet.
Nel gennaio 2005 è stata rilasciata la 8. Sebbene la licenza
permetta la commercializzazione del software, il codice di Postgres
non è stato sviluppato commercialmente con la stessa rapidità di
Ingres. Ad un certo punto, però, Paula Hawthorn (membro originale
del team di Ingres) e Michael Stonebraker formarono una società
chiamata Illustra Information Technologies per commercializzarlo.
SQLite
SQLite è una libreria C che
implementa
un
DBMS
SQL
incorporabile all'interno di applicazioni.
Il suo creatore è D. Richard Hipp, che
lo ha rilasciato come software Open
Source di pubblico dominio, privo di
qualsiasi licenza.
SQLite
Essendo una libreria, non è un processo stand-alone utilizzabile di
per sé, ma può essere linkato all'interno di un altro programma.
È utilizzabile con C/C++ ed esistono binding anche per altri linguaggi,
in particolare Tcl.
È integrato nella versione 5 di PHP.
Prospetto riassuntivo
Produttore
Data prima release
Licenza software
InterSystems
?
Proprietaria
IBM
1982
Proprietaria
FileMaker Inc.
Inizio anni '80
Proprietaria
Firebird
FirebirdSQL Foundation
25 luglio 2000
Licenza pubblica InterBase
Informix
Informix Software
1981
Proprietaria
Berkeley University, Computer Associates
1980
CA-TOSL
Borland
1985
Proprietaria
MySQL AB, SAP AG
?
GPL o proprietaria
Microsoft Access
Mirosoft
1989-1990
Proprietaria
Microsoft SQL Server
Microsoft
1989
Proprietaria
MySQL
MySQL AB
1997
GPL o proprietaria
Oracle
Oracle Corporation
1977
Proprietaria
Picosoft
?
Licenza pubblica
PostgreSQL Global Development Group
Giugno 1989
Licenza BSD
D. Richard Hipp
17 agosto 2000
Pubblico dominio
Caché
DB2
Filemaker Pro
Ingres
InterBase
MaxDB
PicoSQL
PostgreSQL
SQLite