Un server SQL è un server che consente di gestire database organizzati secondo il modello relazionale, utilizzando un linguaggio SQL o
Structured Query Language. Il linguaggio SQL è uno standard per la maggior parte dei database relazionali e viene usato per creare, trasformare e recuperare informazioni in un RDBMS o
Relational Database Management System.
L’SQL consente di interrogare e gestire i database attraverso costrutti di programmazione chiamati
query. In questo modo è possibile leggere, modificare e cancellare i dati presenti nel database, ma anche esercitare funzioni di gestione e controllo sul sistema di database stesso.
Il linguaggio SQL infatti contiene altri linguaggi come:
- Data Manipulation Language (DML) consente di inserire, cancellare e modificare dati contenuti nel database;
- Query language (QL) che permette di reperire informazioni dal database interrogandolo con query create da un linguaggio di interrogazione;
- Data Control Language (DCL) che consente di gestire gli accessi e i permessi dei vari utenti del database;
- Data Definition Language (DDL), permette di agire in modo diretto sullo schema del database in modo da poter creare o cancellare i singoli oggetti che lo compongono;
- Data Query Language che consente di estrarre informazioni dal database interrogando i dati memorizzati.
Cosa sono i database relazionali
In un sistema relazionale i dati possono essere rappresentati come
relazioni, quindi un database relazionale è una raccolta di dati tra i quali esistono relazioni predefinite. Gli elementi in un RDBMS sono organizzati sotto forma di set di tabelle con righe denominate
record e colonne chiamate
attributi.
Ogni riga rappresenta un'entità da memorizzare nel database. Le colonne invece definiscono le caratteristiche di ciascuna entità.
Entità con caratteristiche comuni, che quindi vengono descritte dallo stesso insieme di attributi, fanno parte della stessa relazione.
Quale database relazionale scegliere
Esistono diversi sistemi di gestione dei database relazionali (RDBMS), i più utilizzati sono: Microsoft SQL Server, Db2, MySQL, Oracle Database, SQLite, PostgreSQL.
Microsoft SQL Server
È un sistema di gestione del database di Microsoft disponibile con due principali tipologie di licenze, quelle
Core (per le versioni Enterprise e Standard) e quelle
CAL/Server (per la versione Standard). La licenza Core consente l'accesso a SQL Server solo a un numero limitato di utenti e dispositivi. Il vantaggio principale sta nel fatto che non è indispensabile quantificare il numero di utenti o dispositivi che accedono a SQL Server. Con la licenza CAL/Server gli utenti devono assegnare una licenza al server fisico su cui viene hostato SQL Server e acquisire una licenza CAL di SQL Server per ogni utente o dispositivo che accede al server.
Db2
È il sistema relazionale di gestione del database proprietario di IBM che viene distribuito in diverse versioni quali:
- DB2 Express-C, versione gratuita ideale per piccole aziende e sviluppatori;
- DB2 Express, indicata per il piccolo mercato;
- DB2 Workgroup Server Edition, pensata per le piccole e medie aziende;
- DB2 Enterprise Server Edition, che annovera librerie in grado di gestire i carichi di lavoro più esigenti.
MySQL
Si tratta di uno dei Relational Database Management System open source gratuito più utilizzati del mondo. Costituisce la soluzione ottimale per chi è in cerca di un database veloce, flessibile e affidabile.
MySQL può essere installato molto facilmente, è sicuro ed è in grado di gestire una grande quantità di dati.
PostgreSQL
PostgreSQL è uno dei più avanzati sistemi RDBM nella comunità open source ed è conosciuto principalmente per la sua affidabilità e le prestazioni elevate.
PostgreSQL è estremamente estensibile, con procedure personalizzate che possono essere create per semplificare l’esecuzione di operazioni sul database ripetute e richieste di frequente.
Oracle Database Oracle Database è il sistema di database relazionale dell’omonima azienda Oracle e il suo successo è legato all’alta affidabilità, alla sicurezza dei dati e alla potenza dell’architettura su cui si basa.
SQLite
È un Relational DBMS embedded, ovvero è disponibile sotto forma di libreria che contiene un sistema di gestione del database relazionale.
SQLite non appartiene quindi alla famiglia di database di tipo client/server, ma è progettato per essere direttamente implementato all'interno di un'applicazione. Tuttavia questo tipo di architettura lo rende un sistema limitato che può essere usato solo in alcune categorie di applicazioni.