Structured Query Language (SQL) atau di dalam bahasa melayu dikenali sebagai Bahasa Pertanyaan Berstruktur adalah bahasa komputer paling popular yang digunakan bagi mencipta, mengambil, kemaskini dan memadam data dari sistem pangkalan data berkait (relational database management system). SQL dijadikan standard piwaian oleh American National Standards Institute (ANSI) dan International Organization for Standardization (ISO).

Sejarah

Satu kertas kerja akedemik, A Relational Model of Data for Large Shared Data Banks, oleh Dr. Edgar F. Codd, teleh diterbitkan pada Jun 1970 dalam jurnal Association for Computing Machinery (ACM), Communications of the ACM, walaupun lakaran mengenainya telah tersebar dalam IBM semenjak 1969. Model Codd semakin diterima sebagai model mutakhir bagi sistem pengurusan pangkalan data berkait relational atau Relational Database Management System (RDBMS atau RDMS).

Pada tahun 1970-an, kumpulan di pusat penyelidikan San Jose IBM membangunkan sistem pangkalan data “System R” berasaskan model Codd. Structured English Query Language (“SEQUEL”) direka bagi mengolah dan mengambil data yang tersimpan dalam Sistem R. Ringkasan SEQUEL kemudian diringkaskan kepada SQL kerana perkataan ‘SEQUEL’ telah dipegang sebagai tanda dagang oleh syarikat kapal terbang Hawker Siddeley dari UK. Sungguhpun SQL dipengaruhi oleh hasil kerja Codd, Donald D. Chamberlin dan Raymond F. Boyce di IBM merupakan pengarang rekabentuk bahasa SEQUEL. Konsep mereka diterbitkan bagi meningkatkan minat dalam SQL.

Pangkalan data berkait, bukan pangkalan data SQL, bukan laba, Ingres, dimajukan pada 1974 di U.C. Berkeley.

Pada tahun 1978, ujian terkawal bermula di tapak ujian pelanggan. Menunjukkan kelebihan dan kesesuaian guna sistem ini, ujian ini terbukti berjaya bagi IBM. Hasilnya, IBM mula membangunkan keluaran dagangan berasaskan prototaip System R yang melaksanakan SQL, termasuk System/38 (diperkenalkan pada 1978 dan terdapat secara dagang pada Ogos 1979), SQL/DS (diperkenalkan pada 1981), dan DB2 (pada 1983).

Pada masa yang sama Relational Software, Inc. (kini Oracle Corporation) melihat potensi konsep yang digambarkan oleh Chamberlin dan Boyce dan memajukan RDBMS versi mereka sendiri bagi Navy, CIA dan yang lain. Pada musim panas 1979 Relational Software, Inc. memperkenalkan Oracle V2 (Versi 2) bagi komputer VAX sebagai penggunaan SQL yang terdapat secara dagang. Oracle sering kali salah dikatakan mendahului IBM ke pasaran lebih dari dua tahun, sedangkan mereka hanya mendahului System/38 IBM hanya selama beberapa minggu sahaja. Minat umum meningkat; dan banyak vendor lain mula membangunkan pelbagai versi, dan masa depan Oracle terjamin.

Piwaian

SQL kemudiannya diangkat sebagai piwaian oleh ANSI pada tahun 1986 dan ISO pada tahun 1987. Bagaimanapun, semenjak pembatalan program piawaian pengurusan data NIST pada tahun 1996 tidak terdapat pengesahan bagi pematuhan kepada piwaian SQL dengan itu vendor perlu mengesahkan diri sendiri.

Piwaian SQL telah melalui beberapa revisi:

Tahun Nama Nama samaran Komen
1986 SQL-86 SQL-87 Mula diterbitkan oleh ANSI. Disahkan oleh ISO in 1987.
1989 SQL-89 Revisi kecil.
1992 SQL-92 SQL2 Revisi utama (ISO 9075).
1999 SQL:1999 SQL3 Menambah padanan biasa, pertanyaan rekursif, picu, jenis
tidak-skalar dan sebahagian ciri-ciri berasaskan-objek. (Dua yang terakhir agak kontrovesi dan tidak disokong secara meluas.)
2003 SQL:2003 Introduced XML-related features, window functions, standardized sequences and columns with auto-generated values (including identity-columns).
2006 SQL:2006 ISO/IEC 9075-14:2006 menetapkan cara bagaimana SQL boleh digunakan bersama XML. Ia menetapkan cara mengimport dan menyimpan data XML dalam pangkalan data SQL, mengemaskini data dalam pangkalan data dan menerbitkan data SQL dan XML dalam bentuk XML. Tambahan lagi, ia memberi kemudahan yang membenarkan applikasi untuk menerap dalam kod SQL kegunaan XQuery, XML Query Language yang diterbitkan oleh World Wide Web Consortium (W3C), bagi capaian serentak dokumen XML dan data SQL biasa.

Vendor SQL


Terdapat beberapa vendor yang menyediakan perisian SQL ketika ini. Antaranya ialah:

SQL Engine Vendors
SQL Vendor
SQL DBMS Server Product
Version
Server Platforms
JDBC Netserver
1.2
Solaris, NT, HPUX
ColdFusion
4.0
?
Ardent (née Vmark)
Datastage (née UniVerse)
9.3.1
NT, over 70 Unix versions
Birdstep
SQLBase
6
?
Developer ORDBMS
1.5
pure Java, embedded. Bought out by IBM. Also available under the name Derby as open source and as Java DB.
Embeddable Light Server ORDBMS
1.5
pure Java, embedded.
Lite Server ORDBMS
1.5
pure Java, client server.
RDB DBI
?
Alpha
Ingres
6.4
?
Connect Software
FastForward
?
?
Daffodil DB
3.2
pure Java, SQL-99 compliant, JDBC 3.0, J2EE compliant.
Derby
10.1
pure Java, based on, but not complaint with, standards.
Personal Empress
?
AIX, HP, Irix, Linux PC Solaris, SCO Open Server, Sun Solaris
Empress RDBMS
8.1.0
AIX, DEC OSF, DEC Unix, HP, Irix, Linux, Lynx, Max, NT, QNX, SCO Open Desktop, SCO OpenServer, Solaris, Sun OS, Sys V, Unicos, Unixware, Win3.1, Win95
FirstSQL SQL-92
1.01
pure Java. Also a persistent object database.
Firebird SQL-92
1.5
C++, originally a Borland project
H2 Database Engine
0.9
pure Java. Developed by Thomas Mueller, the original developer of Hypersonic SQL.

Last revised/verified: 2006-02-22
NonStop SQL/MX
2.0
HP NonStop
hsqldb née Hypersonic SQL
1.8.0
pure Java. The author, Thomas Mueller decided to stop developing. A sourceforge group has taken over. Open Source. Embeddable. It runs in three modes, as a webserver, as a local server, and as part of the app’s JVM.
Mini SQL
2.0.4.1
Unix
HyperSQL
1.0
?
OPENjdbc
?
pure Java
DB2
2
AIX, NT, OS/2, Win95
IDS Server
3.2.1
NT
IDS Server Lite
2.0
NT
Inprise (née Borland)
Data Gateway
?
?
dBase
5.5
DOS, NT, Win3.1, Solaris, Win95, Unix
Paradox
7
DOS, NT, Win3.1, Win95
Delphi Client Server
2.0
NT, Win95
Informix-SEgeneral purpose limited support
7.2
NT, Unix, Win-95
Informix-OnLine Workstation
?
NT
Informix-online/Secure Dynamic Server

muli-level secure

?
?
Informix-Illustra Server

ODBMS

?
?
Informix-online Dynamic Server

general purpose high availability, high performance RDBMS

?
?
Informix-Universal Server

ORDBMS

?
?
Informix-Extended Parallel Server

data warehousing MPP

?
?
4
Windows, Linux, Solaris, Mac OSX.
Essentia
?
?
JB Development
Harmonia Lite
1.0
anything that supports Java
Harmonia Pro
1.0
anything that supports Java
StelsEngine
1.2
anything that supports Java. In RAM only, not persistent. Last revised/verified: 2005-11-15
StelsCSV
2.3
uses existing CSV files as the database. Last revised/verified: 2005-11-15
StelsDBF
.92 beta
uses existing DBF files (dBase III/ IV/ V, xBase, FoxPro, FoxBase, Clipper) as the database. Last revised/verified: 2005-11-15
tinySQL
?
?
Just Logic
Just Logic/SQL
?
BSDI Unix, Linux, NT, SCO OpenServer, SCO Unixware, Win3.1, Win95
Lutris
InstantDB
3.25
pure Java
McKoi
1.0.2
pure Java
Access
2.0
NT, Win95
MS SQL Server
7.0
NT
Mimer
8.2
Windows 98/NT/2000, Linux, Sun Solaris and OpenVMS. Supports SQL99 INSTEAD-OF triggers.
MySQL AB, separate company now owned by Sun, which is in turn owned by Oracle.
MySQL Community
5.1(6.0 alpha)

W95/W98/Me/NT/W2K/XP/W2K3/Vista/W7, BSD, Linux, Solaris Sparc, Solaris i386, SunOS Sparc, source available for any platform with Posix Threads and a C++ compiler.
5.1

W95/W98/Me/NT/W2K/XP/W2K3/Vista/W7, BSD, Linux, Solaris Sparc, Solaris i386, SunOS Sparc, source available for any platform with Posix Threads and a C++ compiler.
NCR
Teradata
2/2
NCR Unix WorldMark
Decibel
0.5a4
pure Java
Personal Oracle Lite
10g
Mac, NT, OS/2, Win98
Personal Oracle
10g
NT, OS/2, Win98, (Mac support dropped after 7.1)
Oracle Standard Edition
10g
HP MPE/XL, ICL, MVS, NLM, NT, OS/2, Siemens, 40+ Unix, VM, Win95, (Mac support dropped after 7.1)
Oracle Enterprise Edition
10g
HP MPE/XL, ICL, Macintosh, MVS, NLM, NT, OS/2, Siemens, 40+ Unix, VM, Win95
Pervasive (née Btrieve)
PSQL
9.0
Windows, Linux, Novell Netware
Pervasive Postgres
9.0
Windows, Linux, Novell Netware
D3 Database Server
?
Not SQL. AIX, DGUX, HPUX, Linux, NT, SCO, Win95
PointBase Embedded
secret
Pure Java.
PostgreSQL
6.4
Linux, various Unixes
Quadcap
Quadcap Embeddable Database
1.0 beta 11
Pure Java 1.2
Red Brick Systems, now owned by IBM
Red Brick Warehouse
5.1
?
5.0
NLM, NT, Win95
Access
?
?
Sequiter
CodeBase/CodeServer xBase
6
DOS, Macintosh, OS/2, Win95, Unix
Berkeley DB Java Edition
1.3
Single user database written in Java, and runs in the same JVM as your application. You don’t have a separate server, which greatly simplifies administration and deployment. Source code included. Bought out by Oracle, presumably as part if its campaign to stomp out open source. Being bought out by Oracle. What a terrible fate! That will surely discourge start ups from writing open source software. :-)
Solid Information Technology (SolidTech)
Solid Server Single User
2.3
Linux
Solid Server Single User
2.3
Windows
Solid Server Workgroup
2.3
Linux, HPUX, NT, Sun Unix, Win3.1, Win95,…
Adabas
?
?
SPCS Scandinavian PC Systems
Primabase
?
?
SmallSQL Database
0.19
Last revised: 2007-07-31 Verified: 2007-09-01
pure Java, embedded, JDBC 3.0
SQLite
2.8.13
Single user database written in C, and runs in the same process as your application. You don’t have a separate server, which greatly simplifies administration and deployment. C Source code included.
Super*SQL
beta
Written in Java so it runs anywhere. It is not an SQL database itself. It works with any database that has a JDBC driver. Its primary purpose is to generate HTML reports on a scheduled basis from an SQL database. It also helps in various debugging tasks.
1.0
pure Java, based on, but not complaint with, standards.
NetDynamics/j.rad
1.0
anything that runs Java
SQL Anywhereper standalone user
5.5.01
DOS, NLM, NT, OS/2, Win3.1, Win95
SQL Anywhere per seat
5.5.01
DOS, NLM, NT, OS/2, Win3.1, Win95
SQL Anywhere per concurrent user
5.5.01
DOS, NLM, NT, OS/2, Win3.1, Win95
SQL Anywhere Professional (includes Web server)
5.5.01
DOS, NLM, NT, OS/2, Win3.1, Win95
jConnect
1.0
NT and low end Unix
jConnect Enterprise
1.0
high end Unix, various mainframes
SQL Server
11
Alpha, HP, NT, PowerPC, Sun
SQL Server Pro
11
NT
Visual Café Database Editionincludes: dbAnywhere Workgroup and Sybase SQL Anywhere no longer supported.
2.5a
NT, Win95
dbAnywhere Server
1.0
NT, Win95
Axion
1.0
Opensource Java
ThinkSQL
beta
Written in Delphi/Kylix for Windows and Linux. Has OBJC, JDBC and dbExpress drivers.
TimesTen RAM Resident SQL
3.2
Windows NT 4.0 (32-bit), HP-UX 10.20 (32-bit), HP-UX 11 (32- and 64-bit), Solaris 2.5.1 and above (32-bit), Solaris 7 (Sparc, 32- and 64-bit), AIX 4.1.4 and above (32-bit), Lynx OS 3.0 (PowerPC)
Cocobase Workgroup
2.0
anything that supports Java
GENESISsql
?
ISAM, dBase, flat files
FlashFiler
2.13
includes Delphi/C++ source
Unidata
Unidata RDBMS
4.0
NT, Win95, others
Unify Dataserver 6
?
?
DMSII
?
Unisys A series mainframes
W3Apps
Jeevan
2.0
anything that runs Java
Watcom
SQLAnywhere Now handled by Sybase
Yard-SQL
4.06.03
NT, Win95