Il Software su Pinterest
ba741847028c8aea9f687a36d3346e403aad7b7d

IL SOFTWARE
Articoli, tips, recensioni e news sul mondo del software

Databases

zanox_set3_300x250_it-become-a-publisher
zanox_set1_300x250_it
 
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:

    * Strutture dati che velocizzano le operazioni frequenti, tipicamente a spese di operazioni meno frequenti.
    * Collegamenti con dati esterni, cioè riferimenti a file locali o remoti non facenti parte del database.
    * Informazioni di sicurezza, che autorizzano solo alcuni profili utente ad eseguire alcune operazioni su alcuni tipi di dati.
    * Programmi che vengono eseguiti, automaticamente o su richiesta di utenti autorizzati, per eseguire elaborazioni sui dati. Un tipico automatismo consiste nell'eseguire un programma ogni volta che viene modificato un dato di un certo tipo.

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:

    * Progettazione di basi di dati.
    * Progettazione e implementazione di DBMS.
    * Interpretazione (o analisi) di dati contenuti in database.

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 [modifica]

Le basi di dati possono avere varie strutture, tipicamente, in ordine cronologico:

   1. gerarchica (rappresentabile tramite un albero - anni sessanta),
   2. reticolare (rappresentabile tramite un grafo - anni sessanta),
   3. relazionale (attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse - anni settanta),
   4. ad oggetti (estensione alle basi di dati del paradigma "Object Oriented", tipico della programmazione a oggetti - anni ottanta),
   5. semantica (rappresentabile con un grafo relazionale - inizio anni duemila).

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 [modifica]

È possibile distinguere i linguaggi per basi di dati secondo il loro utilizzo:

    * Data Definition Language (DDL) - consente di definire la struttura della base di dati e le autorizzazioni per l'accesso.
    * Device Media Control Language (DMCL) - permette alla struttura fisica del database di far riferimento alle particolari unità di memoria di massa utilizzate dal sistema.
    * Data Manipulation Language (DML) - consente di interrogare e aggiornare le istanze della base di dati.
    * Data Control Language (DCL) - permette la gestione dell'accesso al database con relative restrizioni di operazioni come aggiornamento, selezione e cancellazione.
    * Query language (QL) - permette di interrogare il database al fine di ritrovare i dati relativi alla chiave di ricerca impostata dall'utente.

Inoltre è possibile suddividere i linguaggi come:

    * Linguaggi testuali interattivi, come l'SQL, di cui sono stati pubblicati diversi standard, che attualmente è il linguaggio più utilizzato.
    * Linguaggi testuali interattivi immersi in linguaggi di programmazione comuni, quali C, Basic ecc.
    * Linguaggi testuali interattivi immersi in linguaggi di programmazione proprietari.
    * Linguaggi grafici e user-friendly, come QBE (Query By Example), che possono essere utilizzati anche dai meno esperti.

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:

    * Firebird SQL
    * MySQL
    * PostgreSQL

I più diffusi sistemi commerciali sono:

    * IBM DB2
    * Microsoft SQL Server
    * Oracle


Sicurezza dei database.

La protezione da accessi non autorizzati è un tema importante nella gestione dei database, che si rivelano vulnerabili nei seguenti punti:

    * Sicurezza dei server
    * Connessioni tra database
    * Controllo sugli accessi al database.

Gestione dei dati (Data management).

    * Data warehouse
    * Data mining
    * Data mart

Voci correlate.

    * Affidabilità
    * Attacco ai database
    * Campo
    * Normalizzazione del database
    * Protezione del database
    * Record
    * Database distribuiti
    * Algebra relazionale
    * Base di conoscenza
    * Cache
    * DBMS
    * Descrittore
    * DNS
    * Tecnologia JDBC
    * Modello reticolare
    * Tecnologia ODBC
    * Query
    * Schema evolution
    * SQL
    * Sistema informativo
    * Transazione
    * Dump

 

Database management system (DBMS).


    * 4th Dimension
    * Adabas
    * Addamark
    * AskSam
    * Berkeley DB
    * Caché
    * Conzept16
    * c-tree Plus
    * c-store
    * Dataphor un RDBMS "veramente-relazionale" che rispetta tutte le regole di Codd.
    * DB1
    * DB2
    * DB4Object
    * DBMaker
    * dBase
    * Derby
    * FileMaker
    * Pagine Elettroniche
    * Firebird SQL
    * FoxBase
    * Gupta SQLBase
    * Hypersonic Sql
    * IDMS
    * Information Management System
    * Ingres
    * Informix
    * InterBase
    * Kdb
    * Lotus Approach
    * Lucid db
    * Microsoft Access
    * Microsoft SQL Server
    * Monet Db
    * mSQL
    * MySQL
    * MySQL MaxDb
    * Oracle
    * Orient ODBMS
    * PicoSQL
    * PostgreSQL
    * Progress
    * Sadas
    * SapDb
    * SQLite
    * SQL Anywhere Studio
    * Sybase SQL Server
    * TimeSten
    * Vertica

fonte:
I miei preferiti in Instagram
My Ping in TotalPing.com This website was created for free with Own-Free-Website.com. Would you also like to have your own website?
Sign up for free