Tuesday, June 7, 2022

Pengenalan Database MySQL


    MySQL merupakan salah satu aplikasi database paling populer di dunia, terutama dalam pengembangan web. Hampir setiap proyek pembuatan website menggunakan MySQL, termasuk berbagai CMS (Content Management System) seperti WordPress, Joomla, Drupal, dll menggunakan MySQL. 

Dalam pembahasan MySQL dasar ini akan mengakses MySQL menggunakan Command Prompt Windows. Walaupun agak sedikit repot karena harus mengetik seluruh query secara manual, tetapi dengan menggunakan CMD Windows, bisa dengan mudah menguasai dan belajar cara penulisan query MySQL. Atau bisa juga menggunakan aplikasi berbasis GUI seperti Phpmyadmin yang juga akan pelajari nantinya.

Pengertian MySQL 

    MySQL adalah salah satu aplikasi RDBMS (Relational Database Management System). Pengertian sederhana RDBMS adalah: aplikasi database yang menggunakan prinsip relasional
MySQL bersifat gratis dan open source. Artinya setiap orang boleh menggunakan dan mengembangkan aplikasi ini. Namun walaupun gratis, MySQL di support oleh ribuan programmer dari seluruh dunia, dan merupakan sebuah aplikasi RDBMS yang lengkap, cepat, dan reliabel.
Berikut beberapa keunggulan MySQL dibandingkan dengan RDBMS lainnya:
Speed
    Sebuah studi dari eWeek di February 2002 yang membandingkan performa kecepatan MySQL dengan RDBMS lainnya, seperti Microsoft SQL Server 2000, IBM DB2, Oracle 9i dan Sybase :
MySQL memiliki kecepatan yang lebih dibandingkan pesaing yang berbayar.
Reliability
    Biasanya sesuatu yang gratis susah diandalkan, bahkan banyak bug dan sering hang. Tidak demikian dengan MySQL, karena sifatnya yang open source, setiap orang dapat berkontribusi memeriksa bug dan melakukan test case untuk berbagai skenario yang memerlukan sistem 24 jam online, multi-user dan data ratusan GB. Hasilnya, MySQL merupakan RDBMS yang reliabel namun memiliki performa diatas rata-rata.
Skalability
    MySQL dapat memproses data yang sangat besar dan kompleks, tanpa ada penurunan performa yang berarti, juga mendukung sistem multi-prosesor. MySQL juga dipakai oleh perusahaan-perusahaan besar di dunia, seperti Epson, New York Times, Wikipedia, Google, Facebook, bahkan NASA.
User Friendly
    Instalasi dan mempelajari MySQL cukup mudah dan tidak dipusingkan dengan banyak settingan. Cukup download aplikasi MySQL dan install.
Portability and Standard Compliance
    Database MySQL dapat dengan mudah berpindah dari satu sistem ke sistem lainnya. Misalkan dari sistem Windows ke Linux. Aplikasi MySQL juga dapat berjalan di multi OS.
Multiuser Support
    Dengan menerapkan arsitektur client-server. Ribuan pengguna dapat mengakses database MySQL dalam waktu yang bersamaan.
Internationalization
    Mendukung beragam bahasa. Dengan dukungan penuh terhadap unicode, maka aksara non-latin seperti jepang, cina, dan korea bisa digunakan di dalam MySQL.
Wide Application Support
    Biasanya database RDBMS tidak digunakan sendirian, namun ditemani dengan aplikasi atau bahasa pemrograman lainnya untuk menyediakan interface, seperti C, C++, C#, Java, Delphi, Visual Basic,  Perl Python dan PHP. Ke semua itu di dukung oleh API (Application Programming Interface) oleh MySQL.
Open Source Code

    Dapat mengembangkan MySQL dengan mempelajari kode programnya. MySQL di kembangkan dengan bahasa C and C++. Bahkan sudah terdapat berbagai variasi rasa RDBMS baru yang dikembangkan dari code MySQL, diantaranya: Drizzle, MariaDB, Percona Server dan OurDelta.

Sejarah MySQL

    MySQL bermula pada tahun 1979, ketika Michael Widenius (a.k.a. Monty), seorang programmer asal Swedia, mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG. UNIREG ini menggunakan koneksi low-level ISAM database engine dengan indexing.
Monty bekerja pada perusahaan bernama TcX di Swedia. TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem databasenya. Namun malang bagi Monty, UNIREG dianggap tidak cocok untuk database yang dinamis seperti web.
TcX mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL), sebuah RDBMS yang tidak terlalu mahal dan hampir open source, maksudnya jika membeli aplikasi ini, juga akan mendapatkan source code juga. Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.
Dengan hasutan petinggi-petinggi TcX, Monty mencoba menghubungi David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Pada saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.
Dikarenakan penolakan David HughesTcX (dan juga Monty) akhirnya memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source code dapat bebas digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL dirilis.
David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’ dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep bisnis yang juga diterapkan perusahaan-perusahaan Open Source lainnya.
Asal Nama MySQL
    Asal penamaan MySQL sendiri agak unik. Monty berkata :
Berbagai sumber menyatakan, bahkan juga di situs MySQL sendiri bahwa “My” dari MySQL berasal dari nama anak perempuan Monty. Namun seperti kutipan diatas, Monty pun mengakui bahwa selama ia di TcX, library dan aplikasi yang dikembangkan perusahaan itu juga banyak dimulai dengan awalan “My”.
Logo lumba-lumba dalam lambang MySQL di namai Sakila, yang berasal dari sebuah kontest “Name the Doplhin” yang diadakan MySQL AB. Nama Sakila ini diajukan oleh  Ambrose Twebaze, seorang programmer open source dari Swaziland, Afrika. ‘Sakila‘ memiliki akar dari bahasa Siswati, bahasa yang digunakan di Swaziland.
MySQL 'Sakila' Logo
MySQL dan MySQL AB
    Kembali ke kisah MySQL, Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan Swedia.
MySQL AB menjadi perusahaan di belakang MySQL, menyediakan jasa dan bertanggung jawab dalam mengembangkan, memasarkan, dan menyediakan dukungan untuk MySQL. MySQL sendiri dirilis dengan “dual licensing“, atau dua lisensi yakni versi gratis dan versi berbayar.
Lisensi pertama di rilis dibawah GNU GPL (General Public License – atau dikenal juga dengan Gak Pakai Lisensi). Lisensi GPL ini membebaskan menggunakan MySQL tanpa membayar royalti kepada MySQL AB, dengan beberapa syarat tertentu. Misalnya, jika menggunakan MySQL dalam aplikasi yang dibuat, aplikasi tersebut juga harus bersifat gratis dan berada di bawah lisensi GPL.
Lisensi kedua di peruntukkan bagi perusahaan-perusahaan komersil, maupun pengembang software yang berniat menjual aplikasinya, dan menggunakan MySQL sebagai databasenya. Untuk keperluan ini, diharuskan membeli lisensi komersial dari MySQL AB.

MySQL AB juga memegang hak copyright dari source code MySQL dan pemilik hak merk dagang “MySQL”. Dengan kata lain, walaupun memiliki source code MySQL, namun sistem database maupun aplikasi yang dibuat tidak boleh menggunakan merk “MySQL” tanpa membayar royalti kepada pihak MySQL AB. Hal ini pula yang menjelaskan mengapa salah satu aplikasi administrasi MySQL berbasis web PhpMyAdmin, tidak menggunakan kata “MySQL” pada nama programnya.

Pada tahun-tahun berikutnya, MySQL AB semakin berkembang. Di tahun 2002, MySQL AB telah memiliki  kantor pusat baru di Cupertino, California, Amerika Serikat, selain di negara asalnya, Swedia. Perkiraan pengguna aktif setidaknya sudah mencapai 3 juta pengguna.
Tahun 2005 MySQL AB merilis MySQL 5. MySQL versi 5 ini menargetkan pengguna-pengguna perusahaan, dengan menyediakan fasilitas-fasilitas tambahan baru, seperti stored procedures, triggers, views, cursors, distributed transactions, dan federated storage engines. Dengan model bisnis dan aplikasi yang sudah lengkap, MySQL mulai menjadi ancaman bagi raksasa industri database lainnya, terutama Microsoft SQL Server dan Oracle.
Tahun 2008 merupakan akhir bagi MySQL AB sebagai perusahaan yang berdiri sendiri, ketika Sun Microsystems membeli MySQL AB seharga US $1 Milliar. Selayaknya proses akuisisi, seluruh manajemen MySQL AB, menjadi bagian dari ribuan karyawan SUN lainnya, termasuk Michael Widenius (Monty) dan David Axmark (2 orang pendiri MySQL AB). Akan tetapi tak berapa lama kemudian, keduanya mulai merasa tidak nyaman dan sering mengkritisi kebijakan SUN, sehingga mereka memutuskan keluar dari perusahaan itu.

Mårten Mickos, CEO MySQL AB yang selama ini memimpin MySQL juga meninggalkan SUN tahun 2009. Sehingga MySQL praktis telah kehilangan pemimpin bisnis dan pendiri yang telah membuat MySQL sesukses sekarang. Dan akhirnya April 2009, raksasa di industri database: Oracle, mulai mendekati Sun Microsystems untuk mengakuisisinya.

Kabar akuisisi ini seolah-olah menjadi kiamat untuk MySQL. Sebuah gerakan “Save MySQL” didirikan untuk menolak akuisisi ini. Gerakan ini di prakarsai oleh Monty Widenius sendiri (pendiri MySQL), dan didukung oleh sekitar 50.000 lebih pengembang serta programmer dari seluruh dunia. Gerakan ini mendesak Komisi Ekonomi Eropa untuk menolak proses akuisisi SUN Microsystem oleh Oracle. Berbagai pemimpin organisasi Free Software juga ikut dalam gerakan ini.
Gerakan ini setidaknya berhasil membujuk komisi anti monopoli eropa, untuk menyetujui proses akuisisi dengan syarat Oracle meneruskan proyek MySQL setidaknya sampai 2015. Namun banyak pengamat mengatakan bahwa berbagai tekanan juga di lakukan oleh pihak Oracle agar akuisisi ini berlangsung mulus, sehingga Oracle Corporation secara resmi mengakuisisi Sun Microsystem (dan juga MySQL !) seharga US $ 7,4 Milyar pada 27 Januari 2010.
Akhir kisah sesuai dengan janji Oracle, hingga saat ini (Desember 2017) MySQL tetap bisa digunakan dengan gratis. 
Di lain pihak , Monty Widenius, diam-diam telah memulai sebuah proyek baru, MariaDB, yang memiliki kode dasar yang sama dengan MySQL 5.1
Perkembangan MariaDB saat ini semakin kuat. Berbagai aplikasi (terutama yang berbasis open source) sudah mulai beralih dari MySQL ke MariaDB, termasuk aplikasi web programming seperti XAMPP. Jika menggunakan XAMPP, yang terinstall adalah MariaDB, bukan lagi MySQL. Wikipedia juga menyatakan akan beralih dari MySQL ke MariaDB. Secara perlahan aplikasi lain akan menyusul.
Penggunaan MySQL dan MariaDB ini tidak banyak berbeda. Seluruh materi bisa diterapkan ke MySQL maupun MariaDB.

Untuk web programming seperti PHP, seluruh fungsi MySQL yang ada juga sudah otomatis didukung di dalam MariaDB. Fungsi seperti mysqli_connect() bisa langsung terhubung ke MySQL maupun MariaDB, tanpa perubahan code apapun. Selain itu, hampir seluruh fitur yang ada di MySQL, juga tersedia di MariaDB. 

Pengertian Database

Pengertian Database
Pengertian database adalah sekumpulan data yang dikelola berdasarkan ketentuan tertentu yang saling berkaitan sehingga memudahkan dalam pengelolaannya.
Pengertian Database Model
database model adalah teori seputar bagaimana data itu akan disimpan, disusun, dan dimanipulasi dalam sebuah sistem database.
Dari awal konsep database mulai banyak digunakan (sekitar tahun 1960an – di amerika sana), berbagai teori dikemukakan tentang bagaimana cara menyajikan data agar mudah digunakan. Mudah digunakan disini mencakup: membuat, membaca, memperbaharui, dan menghapus data, atau istilah kerennya : CRUD (Create, Read, Update and Delete).



Database Model : Relation
Konsep Relational Database Model diajukan pertama kali oleh peneliti IBM, Dr. Edgar F. Codd pada tahun 1969, dan merupakan database model yang paling banyak digunakan saat ini.

Dr. Codd mengajukan ide tentang relational model ini dalam sebuah paper berjudul “A Relational Model of Data for Large Shared Databanks” pada Juni 1970. Relational Database model berasal dari 2 cabang ilmu matematika : set theory dan first-order predicate logic.

Sebuah relational database menyimpan data dalam ‘relasi’, atau yang disebut juga tabel. Setiap tabel terdiri dari tuple atau record dan atribut atau field. Urutan penyusunan dalam media penyimpanan fisik tidak berpengaruh dalam model ini, dan setiap record di dalam tabel diidentifikasi dengan sebuah field unik.
RDBMS : Relational Database Management Systems
Relational Database Management Systems (RDBMS) adalah software/aplikasi yang menggunakan relational database model sebagai dasarnya. Sejak 1970an, RDBMS sudah banyak digunakan oleh berbagai vendor, dan dalam berbagai sistem hardware. Dua RDBMS pertama adalah System R, yang dikembangkan oleh IBM, dan INGRES (Interactive Graphics Retrieval System) yang dikembangkan oleh University of California di Berkeley. Keduanya pada awal 1970an.
Setelah keunggulan Relational Database banyak dikenal, berbagai perusahaan mulai berlalih dari hierarchical dan network database model ke relational database model. Pada tahun 1980an, Oracle RDBMS lahir, dan diikuti oleh pesaingnya saat itu, IBM DB2 RDBMS.
Jika pada tahun 1980an RDBMS hanya dapat digunakan dalam sistem mainframe perusahaan besar, namun saat ini dengan semakin majunya perkembangan teknologi di sisi hardware, PC-based RDBMS sudah banyak tersedia. MySQL RDBMS dapat diinstall di komputer/laptop biasa.
Client-Server RDBMS Arsitektur
Kebutuhan akan database yang dapat diakses bersama-sama oleh banyak pengguna mulai muncul di sekitar awal 1990an. Sebuah database terpusat, namun dapat diakses dari tiap komputer yang berjauhan, membuat banyak RDBMS dikembangkan dengan arsitektur Client-Server.
Dalam arsitektur Client-Server, sebuah komputer bertindak sebagai Database Server pusat. Server inilah yang akan melayani segala permintaan dari komputer (Client) yang membutuhkan akses ke database. Namun fisik database itu sendiri juga tidak harus di dalam Server, bisa saja berada di tempat lain, namun terhubung ke Database Server untuk memprosesnya.
MySQL juga menggunakan arsitektur Client-Server. Jika menjalankan MySQL Server di komputer, setiap komputer yang terhubung kedalam jaringan dapat mengaksesnya dengan menggunakan MySQL Client. 
Setelah Relational Database Model : Object-Oriented Database Model
Walaupun RDBMS sudah populer, dan digunakan pada hampir semua keperluan seperti bisnis, inventory, bank, dll, namun untuk kasus-kasus tertentu, Relational Database Model dianggap masih kurang mendukung, khususnya untuk aplikasi baru seperti sistem informasi geografis, dan multimedia. Sehingga mulailah dikembangkan berbagai model database lainnya, seperti Object-Oriented Database dan Object-Relational Database.

Konsep Database Objek Model ini berasal dari dunia programming: OOP (Object Oriented Programming), dimana setiap data dikaitkan dengan objek dari data tersebut. ODBMS (Object Database Management System) juga sudah banyak beredar, seperti Versant ODBMS oleh Versant Corporation, UniData dari IBM, dan VelocityDB.

Pengertian Relational Database
Pengertian Database dalam Relational Database
Dalam relational database model, sebuah database adalah kumpulan relasi yang saling terhubung satu sama lainnya. Relasi adalah istilah dalam relational database, tapi lebih disebut sebagai tabel. Selayaknya tabel yang memiliki kolom dan baris, dalam relational database, kolom (column) disebut attribute, sedangkan baris (row) disebut tuple
ReRelasi (tabel), Tuple (baris) dan Attribute (kolom) | wikipediaCandidate Key (Kunci Kandidat)
Database dalam relational database dapat di sederhanakan sebagai sekumpulan tabel yang saling terhubung. Setiap baris dari dalam tabel setidaknya harus memiliki sebuah kolom yang unik. Unik disini maksudnya tidak boleh sama. Contohnya, dalam tabel 4.1 : tabel "data mahasiswa", kolom NIM (Nomor Induk Mahasiswa) akan menjadi kandidat yang bagus, karena tidak mungkin ada 2 mahasiswa yang memiliki NIM yang sama. NIM disini disebut juga dengan Candidate Key (Kunci Kandidat)Candidate Key adalah satu atau beberapa kolom dalam tabel yang bisa mengidentifikasi tiap baris dari tabel tersebut.
NIMNamaTanggal LahirNo KTPTempat LahirKode Jurusan
101401030Alex Ferdinand29 Juni 19921373022906870002PadangIlmu Komputer
120502045Joko Suprianto4 Maret 19943173020403940004JakartaManajemen
110901033Susi Sulastri17 September 19931273024709930001MedanKedokteran
100301021Suparman23 Februari 19923173022302920006JakartaTeknik Elektro
121401074Tania Mutia5 Oktober 19931373024510930006PadangIlmu Komputer
110501023Aprilia Susanti7 Oktober 19931693024710930002PekanbaruManajemen
Tabel 4.1 : Tabel data mahasiswa
Beberapa karakteristik Candidate key : unik (tidak boleh berulang), tidak boleh memiliki nilai null (kosong), nilai dari candidate key akan sangat jarang berubah.

Primary Key (Kunci Utama)
Dalam sebuah tabel, akan terdapat beberapa candidate key, namun hanya ada 1 Primary key (kunci utama)Primary key adalah salah satu candidate key yang dinobatkan sebagai kolom unik untuk identifikasi baris dalam tabel. Kolom ini tidak boleh berulang, dan tidak boleh kosong (null). Dari tabel "data mahasiswa", NIM dapat ditetapkan sebagai primary key.
Foreign Key (Kunci Tamu)
Dalam sebuah database, biasanya akan terdapat beberapa tabel. Tabel-tabel ini dapat dihubungkan satu dengan yang lainnya dengan kolom yang merupakan bagian dari tabel lain. Foreign Key (Kunci Tamu) adalah Primary key dari tabel lainnya yang terdapat di tabel saat ini. Di dalam contoh tabel 4.2 : Tabel "data mahasiswa" dapat terlihat bahwa NIM adalah primary key dari tabel "data mahasiswa", dan kode jurusan adalah primary key pada tabel "kode jurusan". Kedua tabel tersebut dihubungkan oleh kolom kode jurusan.
NIMNamaTanggal LahirNo KTPTempat LahirKode Jurusan
101401030Alex Ferdinand29 Juni 19921373022906870002Padang14
120502045Joko Suprianto4 Maret 19943173020403940004Jakarta05
110901033Susi Sulastri17 September 19931273024709930001Medan09
100301021Suparman23 Februari 19923173022302920006Jakarta03
121401074Tania Mutia5 Oktober 19931373024510930006Padang14
110501023Aprilia Susanti7 Oktober 19931693024710930002Pekanbaru05
Tabel 4.2 : Tabel data mahasiswa
Kode JurusanJurusanAlamat
01Teknik MesinJl. Teknik No.01
02Teknik ArsitekturJl. Teknik No.02
03Teknik ElektroJl. Teknik No.03
04AkuntansiJl. Ekonomi No. 01
05ManajemenJl. Ekonomi No. 02
06Ekonomi PembangunanJl. Ekonomi No. 03
07Kesehatan MasyarakatJl. Kesehatan No.01
08PsikologiJl. Kesehatan No.02
09KedokteranJl. Kesehatan No.03
10MatematikaJl. MIPA No. 01
11KimiaJl. MIPA No. 02
12FisikaJl. MIPA No. 03
13FarmasiJl. MIPA No. 04
14Ilmu KomputerJl. MIPA No. 05
Tabel 4.3 : Tabel kode jurusan
Dalam tabel "data mahasiswa", kolom NIM adalah primary key, dan kolom kode jurusan adalah foreign key
Referential Integrity
Referential Integrity berkaitan erat dengan foreign key. Pada dasarnya Referential Integrity adalah penerapan aturan bahwa untuk setiap foreign key yang terdapat pada suatu tabel, harus ada nilainya di tabel asal kolom tersebut. Dalam contoh, pada tabel 4.2 dan 4.3 setiap kode jurusan dalam tabel data mahasiswa harus ada nilainya dalam tabel kode jurusan. Di dalam tabel data mahasiswa tidak bisa memasukkan nilai 20, karena di tabel kode jurusan, kode jurusan 20 belum diinput. Dan jika ingin menghapus suatu jurusan dari tabel data jurusan, semua mahasiswa harus terlebih dahulu sudah tidak ada yang memiliki kode jurusan tersebut.
Index
Index dalam database adalah sebuah struktur data yang diimplementasikan oleh RDBMS untuk mempercepat proses pembacaan data. Index lebih kepada penerapan algoritma dari masing-masing aplikasi database, dan diterapkan ke dalam kolom dari tabel yang diinginkan. Mirip Index yang ada di belakang buku, index seolah-olah daftar cepat untuk mencari sesuatu oleh RDBMS. 
Untuk MySQL, kolom yang ditetapkan sebagai primary key akan otomatis di-index. Tetapi dalam satu tabel, bisa saja terdapat beberapa kolom yang di index. 
Ketika data baru ditambahkan atau terdapat data yang akan dirubah, index yang tersimpan untuk tabel tersebut harus dibuat ulang, sehingga memperlama proses penambahan data. Namun untuk tabel yang jarang bertambah, index menawarkan perfoma yang cepat untuk pembacaan data.
Normalisasi Database
Normalisasi database (Database normalization) adalah proses penyusunan kolom dan tabel untuk meminimalkan redundansi data (data yang berulang). Normalisasi biasanya akan membagi tabel besar menjadi beberapa tabel kecil yang saling terhubung. Hal ini dilakukan agar mudah dalam mengatur, dan mengorganisasi data yang ada.

Entity Relationship Diagram (ERD)
Entity Relationship Diagram adalah diagram untuk menggambarkan desain database yang akan dibuat. Di dalam ERD akan terlihat semua tabel yang akan dirancang, primary key masing-masing tabel, serta foreign key, dan kolom-kolom apa saja yang nantinya tersedia. ERD memiliki berbagai versi, baik yang berbentuk balon, maupun tabel. ERD inilah sebagai blueprint dari database yang akan dirancang.



Itulah beberapa istilah yang sering di temui untuk pembahasan mengenai relational database, yang dapat digunakan sebagai dasar untuk mempelajari MySQL dan memaksimalkan penggunaannya. 
Pengertian SQL

Pengertian Structured Query Language (SQL)
SQL (Structured Query Language) adalah bahasa pemrograman khusus yang digunakan untuk memanajemen data dalam RDBMS. SQL berupa perintah sederhana yang berisi instruksi-instruksi untuk manipulasi data. Perintah SQL disingkat dengan ‘query‘.
Sejarah SQL
Bersamaan dengan paper Dr. Edgar F. Codd pada tahun 1969 tentang Teori Database Relational, ia pun mengajukan sebuah bahasa yang disebut DSL/Alpha untuk memanajemen data dalam relational database. Berdasarkan ide Dr.Codd ini, beberapa saat setelah itu IBM mencoba merancang bahasa prototipe sederhana DSL/Alpha yang disebut SQUARE.
Pada tahun 1970, team yang beranggotakan peneliti IBM Donald D. Chamberlin dan Raymond F. Boyce, mengembangkan SQUARE lebih lanjut menjadi SEQUEL (Structured English Query Language)SEQUEL digunakan untuk mengoperasikan prototipe RDBMS pertama IBM, System R. Di kemudian hari, SEQUEL berubah nama menjadi SQL karena permasalahan merk dagang (trademark) dengan sebuah perusahaan pesawat di inggris yang terlebih dahulu telah memakai nama SEQUEL.
Pada akhir 1970an, perusahaan Relational Software, Inc. (sekarang Oracle Corporation) melihat potensi bahasa SQL dan mengembangkan sendiri versi SQL untuk RDBMS mereka. Oracle V2 (versi 2) yang dirilis Juni 1979 adalah RDBMS komersial pertama yang mengimplementasikan SQL.
Dengan kemudahan yang ditawarkan, SQL mulai diimplementasikan oleh berbagai RDBMS dengan versi SQL mereka masing-masing. Namun hal ini  menimbulkan permasalahan karena perbedaan penerapan SQL dari satu aplikasi dengan aplikasi database lainnya yang tidak seragam.Sehingga  pada tahun 1986, badan standar amerika, ANSI (American National Standards Institute) merancang sebuah standar untuk SQL. Satu tahun setelahnya, ISO (International Organization for Standardization) juga mengeluarkan standar untuk SQL. Versi terakhir standar SQL dirilis pada 2011, yang dinamakan SQL 2011. Dengan standar ini diharapkan ada keseragaman SQL antar aplikasi RDBMS.
Akan tetapi walaupun sudah ada standar tentang SQL, banyak perusahaan RDBMS yang menambahkan ‘fitur’ SQL selain standar yang ada. MySQL juga memiliki SQL yang tidak standar, yang tidak ada pada Oracle, begitu juga sebaliknya. Namun setidaknya bahasa SQL hampir sama untuk perintah-perintah dasar antar RDBMS. Perintah SQL untuk membuat tabel misalnya, dapat digunakan baik di Oracle maupun MySQL.
Jenis-jenis perintah SQL

Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya. Terdapat 3 jenis perintah dasar SQL : Data Definition Language, Data Manipulation Language dan Data Control Language.

  • Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan dengan pembuatan struktur tabel maupun database. DDL : CREATE, DROP, ALTER, dan RENAME.
  • Data Manipulation Language (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada dalam tabel, tentang bagaiman menginput, menghapus, memperbaharui serta membaca data yang tersimpan di dalam database. DML : SELECT, INSERT, DELETE, dan UPDATE.
  • Data Control Language (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel. DCL : GRANT dan REVOKE.

Selain ketiga jenis perintah SQL, terdapat juga 2 jenis SQL tambahan : Transaction Control Language, dan Programmatic SQL.

  • Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi. Proses transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua, atau tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistem database perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harus dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah : COMMIT, ROLLCABK, dan SET TRANSACTION.
  • Programmatic SQL berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai struktur database. Seperti : DECLARE, EXPLAIN, PREPARE, dan DESCRIBE

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...