La storia dei DBMS e dei modelli di progettazione dei DATABASE · Un’agenda è organizzata...

169
Storia dell’Informatica e del Calcolo Automatico Storia dell’Informatica e del Calcolo Automatico Prof.ssa Prof.ssa F. Perla F. Perla La La storia storia dei dei DBMS e DBMS e dei dei modelli modelli di di progettazione progettazione dei dei DATABASE DATABASE Realizzato da: Realizzato da: Claudio PETRONE Claudio PETRONE Amedeo MADDALUNO Amedeo MADDALUNO Pasquale TESSITORE Pasquale TESSITORE

Transcript of La storia dei DBMS e dei modelli di progettazione dei DATABASE · Un’agenda è organizzata...

Storia dellInformatica e del Calcolo AutomaticoStoria dellInformatica e del Calcolo Automatico

Prof.ssaProf.ssa F. PerlaF. Perla

La La storiastoria deidei DBMS e DBMS e deidei modellimodelli di di

progettazioneprogettazione deidei DATABASEDATABASE

Realizzato da: Realizzato da: Claudio PETRONEClaudio PETRONEAmedeo MADDALUNOAmedeo MADDALUNOPasquale TESSITOREPasquale TESSITORE

La storia dei DBMS e dei modelli di progettazione dei DATABASE

Realizzato da:

Claudio PETRONE

Amedeo MADDALUNO

Pasquale TESSITORE

Storia dellInformatica e del Calcolo Automatico

Prof.ssa F. Perla

la preistoria dei DB

Probabilmente il pi glorioso (ed a tutt'oggi utilizzato) antenato dei database relazionali odierni pu essere identificato con la vecchia e utilissima agenda.

In effetti se ne studiamo la struttura scopriamo una notevole affinit con le sue attuali implementazioni tecnologiche attuali.

ma come fatta unagenda?

Unagenda organizzata tramite un indice ( linguette sul fianco che ci permettono di accedere pi rapidamente a tutte le informazioni segnalate dalla linguetta) che gestisce una tabella composta da colonne che identificano il tipo di dato riportato (nome, numero di telefono, indirizzo)

Le registrazioni, 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.

Implementazioni tecnologiche - CSV

Il primo tentativo compiuto dagli informatici per trasformare questo tipo di oggetti in un qualcosa" trattabile dal punto di vista elettronico corrisponde al nome di CSV (Comma Separated Value)

I dati in formato testo - CSV

Cio un banalissimo file di testo dove ogni informazione 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").

Il CSV

Questo sistema era decisamente semplicistico, in quanto comunque per trovare all' interno di un file del genere una informazione specifica era necessario scorrerlo, un modo poco pratico, per trovare quanto si ricercava.

CVS - ISAM

La logica evoluzione del CSV fu l'ISAM (Indexed Sequential Access Method), che differiva dal CSV solo per il fatto che veniva definito un ordinamento, tipicamente nel caso dellagenda l'ordine alfabetico sui cognomi

79.bin

CVS- ISAM

Tale ordinamento veniva sfruttato sia in scrittura ("dove inserire il record del numero di telefono?") sia in lettura ("dove recuperare il numero di telefono ?") permettendo in questo modo di abbreviare incredibilmente i tempi di ricerca di una data informazione.

Nuove implementazioni del CVS- ISAM

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 e "puntare diritti" sul database completo per leggere tutto il record una volta che si sapeva dov'era.

ma si pu essere pi veloci?

A questo punto parecchi matematici si posero un problema:

se i database sono importanti, lo saranno ancora di pi se laccesso alle informazioni sar veloce

Iniziano gli studi sui sistemi di ricerca;

ne naquero diversi dai nomi fantasiosi come "ricerca dicotomica" o "a farfalla.

primi studi

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)

primi studi

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 che li sostenesse.

Levoluzione dei DB (1)

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: lIBM sviluppa lInformation Management System (IMS), basato sul modello gerarchico ancora usato tuttoggi.

1970: Edgar Codd (IBM) propone il modello relazionale.

Questi studi gli permetteranno di vincere lACM Turing 1981.

Levoluzione dei DB (2)

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 lACM Turing Award per il suo contributo alla gestione delle transazioni.

Inizio anni 60

I calcolatori diventano strumento indispensabile per le aziende sia pubbliche che private data la possibilit di immagazzinare unenorme quantit di dati.

Vengono cos sviluppati due modelli di database:

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.

Database Relazionali

Negli anni 70:Database Relazionali (1)

Edgar Codd, dipendente della sede californiana della IBM, in quel periodo era un ricercatore sulla nascente tecnologia degli hard disk

I sui studi lo portarono ad osservare l'inefficienza dell'approccio Codasyl con la nuova modalit di memorizzazione dei dati, inefficienza dovuta principalmente all'assenza di una funzione di ricerca.

628.bin

Negli anni 70: Database Relazionali (2)

Nel 1970 Codd cominci a produrre diversi documenti schematizzanti un nuovo approccio alla costruzione delle basi di dati, culminati nel famoso articolo intitolato:

"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" 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 tradizionale 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.

La soluzione 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" che viene richiamata nella definizione della relazione.

La chiave pu essere uno dei dati stessi che vengono memorizzati (ad 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 tradizionale 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 rappresenta il perno fondamentale delle basi di dati:

SQL

Utilizzando una teoria 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.

System R

LA IBM cominci a implementare questa teoria in alcuni

prototipi all'inizio degli Anni '70, come nel "System R".

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 per la separazione dei dati opzionali in tabelle diverse da quella principale.

Versioni multiutente del System R

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) dopo.

Il lavoro di Codd, venne proseguito presso lUniversit di Berkeley da:

Eugene Wong

e Michael Stonebraker.

100.bin

101.bin

INGRES

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 prestarono la loro opera quali programmatori

INGRES

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 la stessa Ingres, 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.

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.

Il Mimer SQL introduce per la prima volta il concetto di transazione, successivamente importato in quasi tutti i DBMS.

Database ad oggetti

Database ad oggetti

A partire dai primi anni 90, cominciano 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 ad 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 ad 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 ad 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 ad 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 dalla costruzione di un oggetto il riferimento a un altro oggetto gi sul database, con lindicazione che i due devono stare possibilmente vicini.

Database ad 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 a un cliente su Windows di accedere a un database su server Unix

Object Database Management Group

Per superare questo limite, che rappresenta il pi grande difetto degli ODBMS rispetto ai relazionali e, quindi, l'ostacolo maggiore alla loro diffusione, nato:

ODMG (Object Database Management Group)

un consorzio di costruttori di ODBMS.

Il suo fine 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)

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 informazione come un qualsiasi altro bene aziendale. Se negli anni settanta i database avevano in prevalenza un ruolo di storage, oggi manager aziendali interrogano quotidianamente il proprio Decision Support System per aiutarsi nelle scelte quotidiane.

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 data Warehousing in ambito aziendale fa parte di un sistema informativo la cui materia prima da processare :

linformazione.

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 con delle componenti software di interrogazione e visualizzazione.

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 tuttoggi 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 unimmagine, 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

Ricerca in un MMDB

Ricerca in un MMDB:

su campi classici

su campi strutturali

su feature

concettuali

su relazioni spazio-temporali

Modelli di

DBMS

Tempo

1960

1970

1980

1990

2000

Schema riassuntivo

gerarchico

x

relazionale

x

reticolare

x

a oggetti

x

relazionale a oggetti

x

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 multi-dimensionale 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 con il nome di MUMPS globals, sebbene InterSystems preferisca non utilizzare questo termine).

Cach fornisce i linguaggi di sviluppo

Cach ObjectScript

Cach Basic

per facilitare il programmatore alla 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 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 dellemergente 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 allutente in un formato semplice,

uno strumento per interrogare ed editare interattivamente i dati nel database (PERFORM).

Informix

La versione finale di questo prodotto, realizzata allinizio del 1986, stata la 3.30.

Nel 1985, con lintroduzione 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 delloffice 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 medio-piccole, 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 nellagosto del 2000.

Microsoft sta testando il suo successore, SQL Server 2006, 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 per girare in 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.

553.unknown

554.unknown

ORACLE

La societ negli ultimi anni si impegnata enormemente 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 lo stesso sistema operativo.

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.

555.unknown

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.

556.unknown

MySQL

Lideatore 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.

557.unknown

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.

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

559.unknown

560.unknown

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.

STORIA DELLA PROGETTAZIONE DI UN DATABASE

BASE DI DATI

E una raccolta di dati progettati per essere fruiti in maniera ottimizzata da differenti applicazioni e utenti diversi

Semplice: facilmente ritrovabili

Efficiente: rispetto al tempo CPU e spazio RAM

Efficace: informazioni rappresentative della realt in esame

Sicuro: operazioni consentite a soggetti identificabili e sicuri

SISTEMA DI GESTIONE DI UNA BASE DI DATI o DBMS

Prodotti software che permettono di creare e di interagire con una base di dati, consentendo opportune operazioni agli utenti autorizzati, nel rispetto delle regole prestabilite. Le richieste degli utenti non devono violare alcun vincolo sui dati.

FUNZIONI DI UN DBMS

DDL

Data Definition Language

Permettere la creazione di una nuova base di dati

Facilitare gli utenti nellinserimento, cancellazione, modifica

Rendere possibile lestrazione di informazioni interrogando la base di dati

Superare i limiti di:

DML

Data Manipulation Language

QL

Query Language

ridondanza integrit indipendenza concorrenza sicurezza

LIMITI DEGLI ARCHIVI TRADIZIONALI

CLIENTI

VENDITE

Merceria: INTIMO e pi

codclientecognomenomeindirizzocitt

010BianchiLuciaVia romaBari

011GiglioMariaVia nuovaFoggia

012MariniClaudiaPiazza vecchiaLecce

codclienteDatacodartdescrizionemarcaquantit

01010-mag-05P01CalzeSissi2

01011-giu-05P02TopPompea1

01015-lug-05P05PigiamaAlpina1

0117-mag-05P01CalzeSissi5

01120-giu-05P02TopPompea1

0123-sett-05P01CalzeSissi1

LIMITI

Ridondanza: info ripetute per stessi articoli

Incongruenza: le modifiche vengono apportate a tutti gli articoli con ugual codice?

Inconsistenza: se uno stesso articolo si ritrova con marche diverse quale sar quella giusta?

Dipendenza dei programmi dai dati: se cambia il tracciato record o la cartella di un archivio devo cambiare lapplicativo

Difficolt nel gestire lintegrit dei dati: va scritto codice ad hoc nellapplicativo

Difficolt nel gestire la concorrenza: in un file condiviso due utenti tentano la modifica, quale lesito?

Limitata sicurezza: non tutti gli utenti hanno stessi permessi sui dati

Scarsa protezione dei dati da guasti accidentali

MODELLI PER IL DATABASE

LIVELLO CONCETTUALE

Entit

LIVELLO LOGICO

Attributi e vincoli

MODELLO E/R

GERARCHICO 1970

RETICOLARE fine anni 70

MODELLO RELAZIONALE

File unico, FLAT FILE

Pi file separati

LIVELLO FISICO

Differenze fra i modelli

Modello gerarchico

Volendo tracciare un percorso storico che attraversi levoluzione subita dai DBMS nel corso degli anni, necessario iniziare la trattazione a partire dal modello gerarchico.

Si pu fissare la data di nascita di questo modello alla fine degli anni 60, quando IBM sviluppa e introduce sul mercato IMS, il primo database gerarchico, ma anche il primo DBMS in assoluto

Definizione :Modello Gerarchico

Un database gerarchico un insieme di archivi. Gli archivi sono composti da record chiamati segmenti. I segmenti sono in rapporto gerarchico tra loro attraverso legami di tipo padre-figlio.

Modello Gerarchico:Struttura ad Albero

La struttura ad albero che caratterizza il modello gerarchico si basa sulla possibilit di individuare un segmento principale, il padre o la radice, dal quale dipendono n segmenti figli, che a loro volta si trasformano in padri per altri figli e cos via

Totale dipendenza dal padre ed possibile fare riferimento solo attraverso il passaggio dal nodo principale. Non possibile dal figlio risalire al padre.

Ricapitoliamo MODELLO GERARCHICO

Il primo modello gerarchico si afferm nel 1968 si chiamava IMS (Information Management System) e fu sviluppato da IBM. Oggi resistono sui mainframe.

I dati sono organizzati in record connessi tra loro secondo strutture ad albero. Lalbero formato da 2 tipi di record: il record OWNER (proprietario) e il record MEMBER (componente).

Ogni record del database, che non sia la radice dell' albero, deve avere uno e un solo padre

Es. il file system del sistema operativo: ogni cartella contenuta in una cartella padre tranne che la root

Limiti:

non si presta a rappresentare in modo efficiente

le associazioni N:M

Esempio db gerarchico

scuola

docente

Tanti alberi quante sono le scuole

S01

ITCS Giordano

D01

De Nicolo

Anita

D02

Mitolo

Nicola

D05

Marini

Carlo

S02

ITCS DellOlio

D07

Sicolo

Lucia

D06

Nimeo

Rosa

D01

De Nicolo

Anita

>>Ridondanza

la preistoria dei DBla preistoria dei DB

Probabilmente il pi glorioso (ed a tutt'oggi

utilizzato) antenato dei database relazionali

odierni pu essere identificato con la vecchia e

utilissima agenda.

In effetti se ne studiamo la struttura

scopriamo una notevole affinit con le

sue attuali implementazioni

tecnologiche attuali.

Unagenda organizzata tramite un indice ( linguette sul

fianco che ci permettono di accedere pi rapidamente a tutte

le informazioni segnalate dalla linguetta) che gestisce una

tabella composta da colonne che identificano il tipo di dato

riportato (nome, numero di telefono, indirizzo)

Le registrazioni, 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.

mama come fatta unagenda?come fatta unagenda?

Implementazioni tecnologiche Implementazioni tecnologiche -- CSVCSV

Il primo tentativo compiuto dagli informatici per

trasformare questo tipo di oggetti in un qualcosa"

trattabile dal punto di vista elettronico corrisponde al

nome di CSV (Comma Separated Value)

I dati in formato testo I dati in formato testo -- CSVCSV

Cio un banalissimo file di testo dove ogni informazione

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").

Il CSVIl CSV

Questo sistema era decisamente

semplicistico, in quanto

comunque per trovare all' interno

di un file del genere una

informazione specifica era

necessario scorrerlo, un modo

poco pratico, per trovare quanto

si ricercava.

CVS CVS -- ISAMISAM

La logica evoluzione del CSV fu

l'ISAM (Indexed Sequential Access

Method), che differiva dal CSV solo

per il fatto che veniva definito un

ordinamento, tipicamente nel caso

dellagenda l'ordine alfabetico sui

cognomi

CVSCVS-- ISAMISAM

Tale Tale ordinamentoordinamento venivaveniva sfruttatosfruttato siasia in in scritturascrittura ("("dovedove

inserireinserire ilil record del numero di record del numero di telefonotelefono?") ?") siasia in in letturalettura ("("dovedove

recuperare recuperare ilil numero di numero di telefonotelefono ?")?") permettendopermettendo in in questoquesto

modo di modo di abbreviareabbreviare incredibilmenteincredibilmente i i tempitempi di di ricercaricerca di di

una data una data informazioneinformazione. .

NuoveNuove implementazioniimplementazioni del CVSdel CVS-- ISAMISAM

PerPer riuscireriuscire poipoi a a gestiregestire ancora ancora megliomeglio ilil tuttotutto si si

crearonocrearono anche anche delledelle speciespecie di "di "archiviarchivi sussidiarisussidiari", ", dettidetti indiciindici, ,

in in cuicui venivaveniva registratoregistrato solo solo l'ordinel'ordine deidei varivari record record senzasenza

tuttetutte le le altrealtre informazioniinformazioni, , ilil che che permettevapermetteva di di andareandare a a

svolgeresvolgere le le proprieproprie ricerchericerche in in questoquesto ""riassuntoriassunto" in modo " in modo

moltomolto pipi veloceveloce e "e "puntare puntare dirittidiritti" " sulsul databasedatabase completo completo perper

leggereleggere tuttotutto ilil record una volta che si record una volta che si sapevasapeva dov'eradov'era..

ma si pu essere pi veloci?ma si pu essere pi veloci?

A questo punto parecchi matematici si posero un problema:

se i database sono importanti, lo saranno ancora di pi se

laccesso alle informazioni sar veloce

Iniziano gli studi sui sistemi di ricerca;

ne naquero diversi dai nomi fantasiosi come "ricerca

dicotomica" o "a farfalla.

primi primi studistudi

Si Si sonosono sviluppatisviluppati coscos tutti tutti queiquei sistemisistemi oggioggi definitidefiniti

""DatabaseDatabase non non relazionalirelazionali" (in " (in contrapposizionecontrapposizione aiai

databasedatabase relazionalirelazionali che che vedremovedremo dopo) di dopo) di cuicui forseforse i i

pipi famosifamosi sonosono statistati i i databasedatabase BB--TrieveTrieve e e DBIIIDBIII--likelike

((clipperclipper, DBIII, DBIV , DBIII, DBIV eccecc))

primiprimi studistudi

Con Con l'evoluzionel'evoluzione di di questiquesti ultimiultimi, i , i databasedatabase ebberoebbero una una

notevolenotevole diffusionediffusione e e quindiquindi iniziaronoiniziarono a a nascerenascere richiesterichieste

di di affidabilitaffidabilit e di e di prestazioniprestazioni sempresempre maggiorimaggiori, con uno , con uno

svilupposviluppo teoricoteorico notevolenotevole che che lili sostenessesostenesse..

Levoluzione dei DB (1)Levoluzione dei DB (1)

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: lIBM sviluppa lInformation Management System (IMS), basato sul modello gerarchico ancora

usato tuttoggi.

1970: Edgar Codd (IBM) propone il modello relazionale.

Questi studi gli permetteranno di vincere lACM Turing 1981.

Levoluzione dei DB (2)Levoluzione dei DB (2)

Anni 80Anni 80:: il modello relazionale vince su altri, e si diffondono il modello relazionale vince su altri, e si diffondono i DBMS basati su di esso. Il linguaggio SQL viene i DBMS basati su di esso. Il linguaggio SQL viene standardizzato come linguaggio per DBMS basati sul modello standardizzato come linguaggio per DBMS basati sul modello relazionale.relazionale.

Anni 90Anni 90:: sulla spinta di intense ricerche, i DBMS relazionali sulla spinta di intense ricerche, i DBMS relazionali divengono sempre pi sofisticati e diffusi (divengono sempre pi sofisticati e diffusi (DB2, DB2, OracleOracle, ,

InformixInformix).).

Nel 1999Nel 1999 JamesJames GrayGray vince lvince lACM ACM TuringTuring AwardAward per il suo per il suo contributo alla gestione delle transazioni.contributo alla gestione delle transazioni.

Inizio anni 60Inizio anni 60

I calcolatori diventano strumento indispensabile per le I calcolatori diventano strumento indispensabile per le

aziende sia pubbliche che private data la possibilit di aziende sia pubbliche che private data la possibilit di

immagazzinare unenorme quantit di dati.immagazzinare unenorme quantit di dati.

Vengono cos sviluppati due modelli di database:Vengono cos sviluppati due modelli di database:

Modello della rete (Modello della rete (CodasylCodasyl) e gerarchico (IMS).) e gerarchico (IMS).

inizioinizio annianni 6060

Charles W. Charles W. BachmanBachman, che ha , che ha realizzatorealizzato neglinegli annianni 60 per 60 per

General Electric il primo vero DBMS della storia (General Electric il primo vero DBMS della storia (""IDSIDS""), ),

fond il fond il "Database Task Group""Database Task Group", all'interno del , all'interno del

""CodasylCodasyl ( (ConferenceConference on data system on data system languageslanguages)), , ilil

gruppogruppo di di lavorolavoro dedicatodedicato allaalla creazionecreazione e e

standardizzazionestandardizzazione del del linguaggiolinguaggio di di programmazioneprogrammazione

COBOL.COBOL.

Database RelazionaliDatabase Relazionali

NegliNegli annianni 7070::DatabaseDatabase RelazionaliRelazionali (1)(1)

Edgar Codd, dipendente della sede californiana

della IBM, in quel periodo era un ricercatore

sulla nascente tecnologia degli hard disk

I sui studi lo portarono ad osservare

l'inefficienza dell'approccio Codasyl con la

nuova modalit di memorizzazione dei dati,

inefficienza dovuta principalmente all'assenza

di una funzione di ricerca.

NegliNegli annianni 7070: : DatabaseDatabase RelazionaliRelazionali (2)(2)

Nel 1970 Codd cominci a produrre diversi documenti

schematizzanti un nuovo approccio alla costruzione delle basi

di dati, culminati nel famoso articolo intitolato:

"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"

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 tradizionale 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.

La La soluzionesoluzione del del sistemasistema stasta nelnel collegamentocollegamento delledelle tabelletabelle..

NelNel modellomodello relazionalerelazionale, per , per ogniogni record record vieneviene definitadefinita unauna ""chiavechiave", ",

ovveroovvero un un identificatoreidentificatore univocounivoco delladella rigariga. . NellaNella ricostruzionericostruzione delledelle

relazionirelazioni, , l'elementol'elemento di di riferimentoriferimento, , cheche distingue distingue unauna rigariga dada un'altraun'altra

proprioproprio questaquesta ""chiavechiave" " cheche vieneviene richiamatarichiamata nellanella definizionedefinizione delladella

relazionerelazione. .

La La chiavechiave pupu essereessere unouno deidei datidati stessistessi cheche vengonovengono memorizzatimemorizzati

(ad (ad esempioesempio, per la , per la tabellatabella utentiutenti, , ilil ""CodiceCodice FiscaleFiscale" " delladella persona), o persona), o

un campo un campo cheche vieneviene aggiuntoaggiunto specificatamentespecificatamente per per questoquesto scoposcopo

((spessospesso chiamatochiamato ""OIDOID" " -- ""Object Object IDentifierIDentifier").").

Questa Questa operazioneoperazione di "di "riunificazioneriunificazione" " deidei datidati non non previstaprevista neinei

linguaggilinguaggi di programmazione di programmazione tradizionalitradizionali; ; mentrementre l'approcciol'approccio

tradizionaletradizionale richiederichiede semplicementesemplicemente di "di "ciclareciclare" per " per raccogliereraccogliere i i

diversidiversi record, record, l'approcciol'approccio relazionalerelazionale richiederichiede al al programmaprogramma di di

""ciclareciclare" per " per raccogliereraccogliere le le informazioniinformazioni riguardantiriguardanti ogniogni record. record.

CoddCodd, propose, come , propose, come soluzionesoluzione, la , la creazionecreazione di un di un linguaggiolinguaggio

dedicatodedicato a a questoquesto problemaproblema, un , un linguaggiolinguaggio cheche, , pipi tarditardi, , sisi sarebbesarebbe

sviluppatosviluppato nellanella codificacodifica cheche oggioggi utilizzatautilizzata universalmenteuniversalmente e e cheche

rappresentarappresenta ilil pernoperno fondamentalefondamentale delledelle basibasi di di datidati: :

SQLSQL

Utilizzando una teoria 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.

System RSystem R

LA LA IBMIBM comincicominci a a

implementareimplementare questaquesta

teoriateoria in in alcunialcuni

prototipiprototipi all'inizioall'inizio degli degli

AnniAnni '70,'70, come come nelnel

"System R""System R"..

System RSystem R

La prima La prima versioneversione fu fu realizzatarealizzata nelnel 1974/75 1974/75 con con unouno

strumentostrumento ""monotabellamonotabella";";

neglinegli annianni successivisuccessivi furonofurono studiatistudiati i i primiprimi sistemisistemi cheche

potesseropotessero supportaresupportare la la suddivisionesuddivisione deidei datidati in in tabelletabelle

separate, utile per la separate, utile per la separazioneseparazione deidei datidati opzionaliopzionali in in tabelletabelle

diverse diverse dada quellaquella principaleprincipale..

VersioniVersioni multiutentemultiutente del System Rdel System RVersioniVersioni ""multiutentemultiutente" " furonofurono realizzaterealizzate nelnel 19781978 e e nelnel 19791979; ;

neglinegli stessistessi annianni fu fu standardizzatostandardizzato ilil linguaggiolinguaggio SQLSQL..

La La superioritsuperiorit di di questoquesto sistemasistema rispettorispetto a a CodasylCodasyl fu fu

quindiquindi evidenteevidente e la IBM e la IBM passpass a a svilupparesviluppare unauna versioneversione

commercialecommerciale di "System R", di "System R", cheche preseprese ilil nomenome di di ""SQL/DSSQL/DS""

prima e di prima e di ""Database 2Database 2" (" (DB2DB2)) dopodopo..

Il Il lavorolavoro di di CoddCodd, , vennevenne proseguitoproseguito pressopresso lUniversitlUniversit

di Berkeley di Berkeley dada::

Eugene WongEugene Wong

e e Michael Michael StonebrakerStonebraker. .

INGRESINGRES

Il Il loroloro progettoprogetto, , chiamatochiamato INGRESINGRES ((InteractiveInteractive GraphicsGraphics

and and RetrievalRetrieval SystemSystem) e ) e finanziatofinanziato tramitetramite fondifondi destinatidestinati

allaalla creazionecreazione di un database di un database geograficogeografico, vide la , vide la luceluce nelnel

19731973 e e produsseprodusse i i primiprimi risultatirisultati nelnel 19741974 ancheanche grazie grazie

all'operaall'opera di di numerosinumerosi studentistudenti cheche prestaronoprestarono la la loroloro opera opera

qualiquali programmatoriprogrammatori

INGRESINGRES

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 la stessa Ingres,

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.

Sviluppi del lavoro di Sviluppi del lavoro di CoddCodd

Il lavoro di Codd venne continuato nella Universit di Uppsala (in Svezia) dove fu sviluppato un prodotto, Mimer SQL, commercializzato nel 1984.

Il Mimer SQL introduce per la prima volta il concetto di transazione, successivamente importato in quasi tutti i DBMS.

Database ad oggettiDatabase ad oggetti

Database ad oggettiDatabase ad oggetti

A partire dai primi anni 90, cominciano 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 ad oggettiDatabase ad 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 accessia 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 stessaoperazione nei RDBMS deve essere eseguita tramite una o pi JOIN, che una delle operazioni pi costose di un RDBMS

Database ad oggettiDatabase ad 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 ad oggettiDatabase ad 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 ad oggettiDatabase ad oggetti

Un database a oggetti non solo pu rappresentare direttamente lasequenza 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 dalla costruzione di un oggetto il riferimento a un altro oggetto gi sul database, con lindicazione che i due devono stare possibilmente vicini.

Database ad oggettiDatabase ad 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 a un cliente su Windows di accedere a un database su server Unix

Object Database Management Object Database Management GroupGroup

Per superare questo limite, che rappresenta il pi grande difetto degli ODBMS rispetto ai relazionali e, quindi, l'ostacolo maggiore alla loro diffusione, nato:

ODMG (Object Database Management Group) un consorzio di costruttori di ODBMS.

Il suo fine 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) il mapping di questi linguaggi astratti sui linguaggi di programmazione reali.

Database a oggetti relazionaliDatabase 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 oggettiEvoluzione dei database a oggetti

Gestione e memorizzazione delle immagini, audio e video, MMDB

Data Warehouses

Sistemi informativi geografici (GIS) e analisi spaziali

Data Data WareHousingWareHousing

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 informazione come un qualsiasi altro bene aziendale. Se negli anni settanta i database avevano in prevalenza un ruolo di storage, oggi manager aziendali interrogano quotidianamente il proprio Decision Support System per aiutarsi nelle scelte quotidiane.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 Data WareHousingWareHousing

Un data Warehousing in ambito aziendale fa parte di un sistema informativo la cui materia prima da processare :

linformazione. 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.

GISGIS

Un Sistema Informativo Geografico (GeographicalInformation 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 con delle componenti software di interrogazione e visualizzazione.

GISGISPer 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.

GISGIS

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 multimedialiDBMS 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 multimedialiDBMS multimediali

Settori applicativi:

DB medici (TAC, RX) DB scientifici (spectral analysis, molecolari) DB legali (fingerprints, mugshots, copy detection) Publishing (electronic newspaper) Fashion

DBMS multimedialiDBMS multimediali

Bench a tuttoggi non esista un modello standard per la descrizione dei MMDB, opinione comune che tutte le applicazioni non banalidebbano 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 multimedialiDBMS multimediali

Features (caratteristiche): le feature di un oggetto MM ne descrivono il contenuto in termini di grandezze misurabili (es: colore di unimmagine, 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

Ricerca in un MMDB

Ricerca in un MMDB:

su campi classici su campi strutturali su feature concettuali su relazioni spazio-temporali

Schema riassuntivoSchema riassuntivo

Modelli diDBMS

1960 1970 1980 1990 2000

gerarchico

x

relazionale

x

reticolare

x

a oggetti

x

relazionale a oggetti

x

Tempo

DB2DB2

DB2 un DBMS prodotto da IBM. La sua prima versione risale al 1983e, 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.

DB2DB2

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.

CachCach

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 multi-dimensionale 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.

CachCach

La memorizzazione dei dati in Cach avviene utilizzando i b-tree basati su array multidimensionali (conosciutti anche con il nome di MUMPS globals, sebbene InterSystems preferisca non utilizzare questo termine).

Cach fornisce i linguaggi di sviluppo Cach ObjectScript Cach Basicper facilitare il programmatore alla creazione e lo sviluppo di applicazioni che interagiscono con il DBMS stesso.

CachCach

Fornisce inoltre interfacce esterne che permettono il Native ObjectBinding 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.

CachCach

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.

CachCach

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.

FileMakerFileMaker ProPro

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 atenerne conto durante le interrogazioni.

FileMakerFileMaker ProPro

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 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.

FileMakerFileMaker ProPro

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.

InformixInformix

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 mercatodellemergente SQL e hanno adattato una versione del codice sorgente, pubblicamente disponibile, di Inges alla piattaforma Unix.

InformixInformix

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 allutente in un formato semplice, uno strumento per interrogare ed editare interattivamente i datinel database (PERFORM).

InformixInformix

La versione finale di questo prodotto, realizzata allinizio del 1986, stata la 3.30.

Nel 1985, con lintroduzione 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.

InformixInformix

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.

InformixInformix

Dopo una breve e disastrosa parentesi nel campo delloffice 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.

InformixInformix

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.

InformixInformix

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 UniVerseUniVerse e UniDataUniData.

Nel 2001, IBM ha acquistato da Informix la tecnologia dei DB, il marchio, i progetti futuri e i 100.000 clienti associati.

InformixInformix

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 Microsoft SQL ServerServer

Microsoft SQL Server il database relazionale prodotto da Microsoft. Nelle prime versioni era utilizzato per basi di dati medio-piccole, 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 Microsoft SQL ServerServer

La prima versione fu SQL Server per OS/2 ed era quasi identica aSybase 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 Microsoft SQL ServerServer

SQL Server 7.0 stato il primo database server basato su un'interfaccia GUI.

L'attuale versione, Microsoft SQL Server 2000, stata rilasciata nellagosto del 2000.

Microsoft sta testando il suo successore, SQL Server 2006, e la versione beta disponibile per il download.

Microsoft SQL Microsoft SQL ServerServer

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 Microsoft ACCESSACCESS

Access prodotto dalla Microsoft ed creato per girare in ambiente Windows.

La prima versione, la 1.0, uscita fra il 1989 e il 1990quando 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 Microsoft ACCESSACCESS

A partire dall'estate del 1995, con l'uscita di Windows 95 stato rilasciato anche Access 7 (detto anche "per Windows 95") seguitoinfine, 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.

ORACLEORACLE

Convenzionalmente, con il termine Oracle ci si riferisce ad uno tra i pi famosi database management system.

La societ informatica che lo produce, la OracleCorporation, 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.

ORACLEORACLE

La societ negli ultimi anni si impegnata enormemente 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 lostesso sistema operativo.

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 SQLFirebird 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 sourcedisponibile per moltissimi sistemi operativi compresi Windows, GNU Linux e praticamente tutti gli altri sistemi operativi stile Unix.

Firebird SQLFirebird 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.

MySQLMySQL

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.

MySQLMySQL

Lideatore 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.

MySQLMySQL

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 Hughesaveva 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.

MySQLMySQL

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 GeneralPublic License) per il prodotto MySQL.

PicoSQLPicoSQL

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 risorsee 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.

PicoSQLPicoSQL

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.

SQLiteSQLite

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

SQLiteSQLite

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.

STORIA DELLA PROGETTAZIONE DI STORIA DELLA PROGETTAZIONE DI UN DATABASEUN DATABASE

BASE DI DATIBASE DI DATI

E una raccolta di dati progettati per essere fruiti in maniera ottimizzata da differenti applicazioni e utenti diversi

Semplice: facilmente ritrovabiliEfficiente: rispetto al tempo CPU e spazio RAM

Efficace: informazioni rappresentative della realt in esameSicuro: operazioni consentite a soggetti identificabili e

sicuri

SISTEMA DI GESTIONE DI UNA BASE SISTEMA DI GESTIONE DI UNA BASE DI DATIDI DATI o o DBMSDBMS

Prodotti software che permettono di creare e di interagire con una base di dati, consentendo opportune

operazioni agli utenti autorizzati, nel rispetto delle regole prestabilite. Le richieste degli utenti non devono

violare alcun vincolo sui dati.

FUNZIONI DI UN DBMSFUNZIONI DI UN DBMS

DDLData Definition Language

Permettere la creazione di una nuova base di dati

Facilitare gli utenti nellinserimento, cancellazione, modifica

Rendere possibile lestrazione di informazioni interrogando la base di dati

Superare i limiti di:

DMLData Manipulation Language

QLQuery Language

ridondanza integrit indipendenza concorrenza sicurezza

LIMITI LIMITI DEGLIDEGLI ARCHIVI ARCHIVI TRADIZIONALITRADIZIONALI

Merceria: INTIMO e piCLIENTI

codcliente cognome nome indirizzo citt010 Bianchi Lucia Via roma Bari011 Giglio Maria Via nuova Foggia012 Marini Claudia Piazza vecchia Lecce

codcliente Data codart descrizione marca quantit010 10-mag-05

11-giu-05

15-lug-05

7-mag-05

20-giu-05

3-sett-05

P01 Calze Sissi 2010 P02 Top Pompea 1010 P05 Pigiama Alpina 1011 P01 Calze Sissi 5011 P02 Top Pompea 1012 P01 Calze Sissi 1

VENDITE

LIMITILIMITIRidondanza: info ripetute per stessi articoliIncongruenza: le modifiche vengono apportate a

tutti gli articoli con ugual codice?Inconsistenza: se uno stesso articolo si ritrova con

marche diverse quale sar quella giusta?Dipendenza dei programmi dai dati: se cambia il

tracciato record o la cartella di un archivio devo cambiare lapplicativo

Difficolt nel gestire lintegrit dei dati: va scritto codice ad hoc nellapplicativo

Difficolt nel gestire la concorrenza: in un file condiviso due utenti tentano la modifica, quale lesito?

Limitata sicurezza: non tutti gli utenti hanno stessi permessi sui dati

Scarsa protezione dei dati da guasti accidentali

MODELLI PER IL DATABASEMODELLI PER IL DATABASELIVELLO CONCETTUALE

Entit MODELLO E/R

GERARCHICO 1970

LIVELLO LOGICOAttributi e vincoli

RETICOLARE fine anni 70

MODELLO RELAZIONALE

File unico, FLAT FILE

Pi file separatiLIVELLO FISICO

Differenze fra i modelli

Modello gerarchicoModello gerarchico

Volendo tracciare un percorso storico che attraversi levoluzione subita dai DBMS nel corso degli anni, necessario iniziare la trattazione a partire dal modello gerarchico. Si pu fissare la data di nascita di questo modello alla fine degli anni 60, quando IBM sviluppa e introduce sul mercato IMS, il primo database gerarchico, ma anche il primo DBMS in assoluto

DefinizioneDefinizione :Modello Gerarchico:Modello Gerarchico

Un database gerarchico un insieme di archivi. Gli archivi sono composti da record chiamati segmenti. I segmenti sono in rapporto gerarchico tra loro attraverso legami di tipo padre-figlio.

Modello Gerarchico:Struttura ad AlberoModello Gerarchico:Struttura ad Albero

La struttura ad albero che caratterizza il modello gerarchico si basa sulla possibilit di individuare un segmento principale, il padre o la radice, dal quale dipendono n segmenti figli, che a loro volta si trasformano in padri per altri figli e cos via

Totale dipendenza dal padre ed possibile fare riferimento soloTotale dipendenza dal padre ed possibile fare riferimento solo attraverso il attraverso il passaggio dal nodo principale. Non possibile dal figlio risalipassaggio dal nodo principale. Non possibile dal figlio risalire al padre.re al padre.

Ricapitoliamo MODELLO Ricapitoliamo MODELLO GERARCHICOGERARCHICO

Il primo modello gerarchico si afferm nel 1968 si chiamava IMS (Information Management System) e fu sviluppato da IBM. Oggi resistono sui mainframe.

I dati sono organizzati in record connessi tra loro secondo strutture ad albero. Lalbero formato da 2 tipi di record: il record OWNER (proprietario) e il record MEMBER(componente).

Ogni record del database, che non sia la radice dell' albero, deve avere uno e un solo padre

Es. il file system del sistema operativo: ogni cartella contenuta in una cartella padre tranne che la root

Limiti:non si presta a rappresentare in modo efficiente

le associazioni N:M

Esempio db gerarchicoEsempio db gerarchico

scuola docente

Tanti alberi quante sono le scuole

S01 ITCS Giordano

D01 De Nicolo Anita D02 Mitolo Nicola D05 Marini Carlo

S02 ITCS DellOlio

D07 Sicolo Lucia D06 Nimeo Rosa D01 De Nicolo Anita

>>Ridondanza

Modello Gerarchico al Modello ReticolareModello Gerarchico al Modello Reticolare

Questa architettura mal si adatta ad una gestione moderna e dinamica delle basi di dati. Il modello gerarchico rappresenta una prima soluzione al problema della gestione di grosse moli di dati ma la sua intrinseca rigidit ne limita la potenzialit; per questo, nasce il modello reticolare che dotato di maggiore flessibilit, pu adattarsi a situazioni pi complesse

Modello Gerarchico al Modello ReticolareModello Gerarchico al Modello Reticolare

In una struttura gerarchica un segmento figlio pu avere solo un segmento padre; Non cos nel modello reticolare: ogni record pu avere un numero qualsiasi di record subordinati e di record precedenti e le correlazioni vengono espresse attraverso record particolari, chiamati record di collegamento (member), che formano delle catene tra le varie parti del sistema.

Modello ReticolareModello Reticolare

Le strutture utilizzate nel modello reticolare sono due, il record (si pensi ai comuni file) e il set, che permette di correlare i record, per mezzo di catene di puntatori. Dunque una base di dati reticolare definita con riferimento ad uno schema, che contiene tipi record collegati fra loro da tipo set.

Ricapitoliamo: Ricapitoliamo: MODELLO RETICOLAREMODELLO RETICOLARE

Si afferm CODASYL (fine anni 70) sviluppato dal gruppo di standardizzazione del linguaggio COBOL

Un record puo avere uno o piu record padre e ciopermette di evitare i problemi di ridondanza

Il modello reticolare e cos chiamato poiche ogni suoschema puo essere rappresentato per mezzo di un grafo (o una rete), con nodi e archi.

Limiti: Complessa la gestione difficile il progetto

Esempio db reticolare Esempio db reticolare

scuola docente

S01 ITCS Giordano

D01 De Nicolo AnitaD02 Mitolo Nicola

D05 Marini Carlo

S02 ITCS DellOlio

D07 Sicolo Lucia

Non si ha il limite di un solo record superiore:corrispondenza molti a molti

Reticolare Reticolare -- RelazionaleRelazionale

La caratteristica fondamentale dei linguaggi per il modello reticolare e quella diessere basati su una visita della base di dati, effettuata seguendo i collegamenti

stabilite le occorrenze dei set. Sono ovviamente possibili anche accessi diretti os