In informatica , il termine database , banca dati , base di dati (soprattutto in testi accademici) o anche base dati , indica un archivio strutturato in modo tale da consentire l'accesso e la gestione dei dati stessi (l'inserimento, la ricerca, la cancellazione ed il loro aggiornamento) da parte di particolari applicazioni software ad essi dedicate. Il database è un insieme di informazioni, di dati che vengono suddivisi per argomenti in ordine logico (tabelle) e poi tali argomenti vengono suddivisi per categorie (campi). Informalmente e impropriamente, la parola "database" viene spesso usata come abbreviazione dell'espressione Database Management System (DBMS), che invece si riferisce a una vasta categoria di sistemi software che consentono la creazione e la manipolazione (gestione) efficiente dei dati di un database. Gestione delle Informazioni La base di dati, oltre ai dati veri e propri, deve contenere anche le informazioni sulle loro rappresentazioni e sulle relazioni che li legano. Spesso, ma non necessariamente, una base dati contiene le seguenti informazioni:
In un sistema informatico, una base di dati può essere manipolata direttamente dai programmi applicativi, interfacciandosi direttamente con il sistema operativo ( file system ). Tale strategia era quella adottata universalmente fino agli anni sessanta , ed è tuttora impiegata quando i dati hanno una struttura molto semplice, o quando sono elaborati da un solo programma applicativo (si pensi alla struttura in 'directory' di Windows). A partire dalla fine degli anni Sessanta, tuttavia, per gestire basi di dati complesse condivise da più applicazioni si sono utilizzati appositi sistemi software, detti sistemi per la gestione di basi di dati (in inglese " Database Management System " o "DBMS"). Uno dei vantaggi di questi sistemi è la possibilità di non agire direttamente sui dati, ma di vederne una rappresentazione concettuale. La ricerca nel campo delle basi di dati studia le seguenti problematiche:
Le basi di dati spesso fanno uso di tecnologie derivate da altre branche dell'informatica. È usuale utilizzare tecniche derivate dall' intelligenza artificiale , come ad esempio il data mining , per cercare di estrarre relazioni o più in generale informazioni presenti nelle banche dati ma non immediatamente visibili. Strutture Le basi di dati possono avere varie strutture, di solito, in ordine cronologico:
Il formato XML , oltre che per scambi di dati su web, si sta diffondendo per la definizione di vere e proprie basi di dati. XML ha una struttura gerarchica, pare quindi un "ritorno alle origini" dei modelli di dati. Un requisito importante di una buona base dati consiste nel non duplicare inutilmente le informazioni in essa contenute: questo è reso possibile dai gestori di database relazionali (teorizzati da Edgar F. Codd ), che consentono di salvare i dati in tabelle che possono essere collegate. La funzionalità di un database dipende in modo essenziale dalla sua progettazione: la corretta individuazione degli scopi del database e quindi delle tabelle, da definire attraverso i loro campi e le relazioni che le legano, permette poi una estrazione dei dati più veloce e, in generale, una gestione più efficiente. Linguaggi per basi di dati È possibile distinguere i linguaggi per basi di dati secondo il loro utilizzo:
Inoltre è possibile suddividere i linguaggi come:
Progettazione La progettazione di una base di dati costituisce una delle componenti del processo di sviluppo di un sistema informativo complesso e va quindi inquadrata in un contesto più ampio, quello del ciclo di vita dei sistemi informativi . Normalmente la progettazione ed il corretto settaggio dei parametri di configurazione di una base di dati sono processi estremamente delicati e richiedono conoscenze tecniche e tempo, soprattutto perché tali sistemi costituiscono lo strato di supporto a programmi e pacchetti di più alto livello come ad esempio SAP, Siebel, BusinessObject, Lodestar, Keanan e altri. Server di database Un Server di database è la parte del DBMS (e, per estensione, il server su cui il programma opera) che si occupa di fornire i servizi di utilizzo del database ad altri programmi e ad altri computer secondo la modalità client/server . Il server memorizza i dati, riceve le richieste dei client ed elabora le risposte appropriate. I database server sono complessi sistemi software concepiti, oltre che per memorizzare i dati, anche per fornire un accesso rapido ed efficace a una pluralità di utenti contemporaneamente e garantire protezione sia dai guasti che dagli accessi indebiti. Tra i più diffusi DBMS open source troviamo, in ordine alfabetico:
[fonte Wikipedia] |