Bahasa Pemrograman SQL
Bahasa Pemrograman SQL
SQL
SQL adalah bahasa standard untuk melakukan berbagai operasi data
pada database, diantaranya mendefinisikan tabel, menampilkan data
dengan kriteria tertentu, menambahkan data hingga menghapus data
tertentu. Penggunaan SQL pada beberapa bahasa pemrograman secara
umum relatif sama.
Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban,
karena program jaman sekarang pasti menggunakan database untuk
menyimpan datanya. Bagi saya sendiri yang bisa menggunakan program
PHP, biasa menggunakan database mysql dan oracle.
Jadi untuk membuat sebuah aplikasi saya menggunakan program PHP
dan database. SQL (kependekan dari: Structured Query Language)
adalah bahasa standar yang digunakan untuk mengakses sebuah basis
data relasional, termasuk Oracle. SQL menyediakan sekumpulan
statemen untuk melakukan proses penyimpanan, modifikasi, dan
pengambilan dat di dalam daHtabase. Sedangkan PL/SQL (kependekan
dari: Procedural Language extensions to SQL) merupakan teknologi
ambahan yang hanya terdapat di dalam Oracle dan digunakan untuk
meningkatkan kapabilitas SQL agar dapat diperlakukan sebagaimana
layaknya bahasa prosedural. Dengan PL/SQL, kita diizinkan untuk
membuat prosedur, fungsi, trigger, dan konstruksi standar prosedural
lainnya sehingga pengolahan data dapat dilakukan secara dinamis.
Sejarah SQL
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF
Codd yang membahas tentang ide pembuatan basis data relasional
pada bulan Juni 1970. Artikel ini juga membahas kemungkinan
pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured
English Query Language). Setelah terbitnya artikel tersebut, IBM
mengadakan proyek pembuatan basis data relasional berbasis bahasa
SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan
SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data
relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul
perusahaan bernama Oracle yang membuat server basis data populer
yang bernama sama dengan nama perusahaannya. Dengan naiknya
kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini
menjadi standar de facto bahasa dalammanajemen basis data.
Standarisasi
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition
Language (DDL) dan Data Manipulation Language (DML). Implementasi
DDL dan DML berbeda untuk tiap system manajemen basis data
(SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki
bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan
bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek
basis data. SQL yang umum digunakan adalah:
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel.
Perintah yang umum
dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data
SELECT
dengan:
kondisi adalah syarat yang harus dipenuhi suatu data agar
ditampilkan.
kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR,
dan sebagainya. Contoh:
Diasumsikan terdapat tabel user yang berisi data sebagai berikut.
username password tanggal_lahir jml_transaksi total_transaksi
SELECT username
FROM user
WHERE jml_transakai < 10 AND total_transaksi > 1000
Fungsi aggregate
SELECT username
FROM user
WHERE jml_transaksi =
(
SELECT MAX(jml_transaksi)
FROM user
)
INSERT
Untuk menyimpan data dalam tabel dipergunakan sintaks:
DELETE
Untuk menghapus data dipergunakan sintaks:
DELETE FROM [NAMA_TABLE] [KONDISI]
Kategori kluster computer
Kluster komputer terbagi ke dalam beberapa kategori, sebagai berikut:
Kluster untuk ketersediaan yang tinggi (High-availability clusters)
Kluster untuk pemerataan beban komputasi (Load-balancing clusters)
Kluster hanya untuk komputasi (Compute clusters)
Grid computing
High-availability cluster
High-availability cluster, yang juga sering disebut sebagai Failover
Cluster pada umumnya diimplementasikan untuk tujuan meningkatkan
ketersediaan layanan yang disediakan oleh kluster tersebut. Elemen
kluster akan bekerja dengan memiliki node-node redundan, yang
kemudian digunakan untuk menyediakan layanan saat salah satu
elemen kluster mengalami kegagalan. Ukuran yang paling umum dari
kategori ini adalah dua node, yang merupakan syarat minimum untuk
melakukan redundansi. Implementasi kluster jenis ini akan mencoba
untuk menggunakan redundansi komponen kluster untuk
menghilangkan kegagalan di satu titik (Single Point of Failure). Ada
beberapa implementasi komersial dari sistem kluster kategori ini,
dalam beberapa sistem operasi. Meski demikian, proyek Linux-HA
adalah salah satu paket yang paling umum digunakan untuk sistem
operasi GNU/Linux. Dalam keluarga sistem operasi Microsoft Windows
NT, sebuah layanan yang disebut dengan Microsoft Cluster Service
(MSCS) dapat digunakan untuk menyediakan kluster kategori ini. MSCS
ini diperbarui lagi dan telah diintegrasikan dalam Windows 2000
Advanced Server dan Windows 2000 Datacenter Server, dengan nama
Microsoft Clustering Service. Dalam Windows Server 2003, Microsoft
Clustering Service ini ditingkatkan lagi kinerjanya.
Compute Cluster
Seringnya, penggunaan utama kluster komputer adalah untuk tujuan
komputasi, ketimbang penanganan operasi yang berorientasi I/O
seperti layanan Web atau basis data. Sebagai contoh, sebuah kluster
mungkin mendukung simulasi komputasional untuk perubahan cuaca
atau tabrakan kendaraan. Perbedaan utama untuk kategori ini dengan
kategori lainnya adalah seberapa eratkah penggabungan antar node-
nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan
komunikasi yang sering antar node--ini berarti bahwa kluster tersebut
menggunakan sebuah jaringan terdedikasi yang sama, yang terletak di
lokasi yang sangat berdekatan, dan mungkin juga merupakan node-
node yang bersifat homogen. Desain kluster seperti ini, umumnya
disebut juga sebagai Beowulf Cluster. Ada juga desain yang lain, yakni
saat sebuah tugas komputasi hanya menggunakan satu atau beberapa
node saja, dan membutuhkan komunikasi antar-node yang sangat
sedikit atau tidak ada sama sekali. Desain kluster ini, sering disebut
sebagai "Grid". Beberapa compute cluster yang dihubungkan secara
erat yang didesain sedemikian rupa, umumnya disebut dengan
"Supercomputing". Beberapa perangkat lunak Middleware seperti MPI
atau Parallel Virtual Machine (PVM) mengizinkan program compute
clustering agar dapat dijalankan di dalam kluster-kluster tersebut.
Grid computing
Grid pada umumnya adalah compute cluster, tapi difokuskan pada
throughput seperti utilitas perhitungan ketimbang menjalankan
pekerjaan-pekerjaan yang sangat erat yang biasanya dilakukan oleh
Supercomputer. Seringnya, grid memasukkan sekumpulan komputer,
yang bias saja didistribusikan secara geografis, dan kadang diurus oleh
organisasi yang tidak saling berkaitan. Grid computing dioptimalkan
untuk beban pekerjaan yang mencakup banyak pekerjaan independen
atau paket-paket pekerjaan, yang tidak harus berbagi data yang sama
antar pekerjaan selama proses komputasi dilakukan. Grid bertindak
untuk mengatur alokasi pekerjaan kepada komputer-komputer yang
akan melakukan tugas tersebut secara independen. Sumber daya,
seperti halnya media penyimpanan, mungkin bisa saja digunakan
bersama-sama dengan komputer lainnya, tapi hasil sementara dari
sebuah tugas tertentu tidak akan mempengaruhi pekerjaan lainnya
yang sedang berlangsung dalam komputer lainnya. Sebagai contoh grid
yang sangat luas digunakan adalah proyek Folding@home, yang
menganalisis data yang akan digunakan oleh para peneliti untuk
menemukan obat untuk beberapa penyakit seperti Alzheimer dan juga
kanker. Proyek lainnya, adalah SETI@home, yang merupakan proyek
grid terdistribusi yang paling besar hingga saat ini. Proyek SETI@home
ini menggunakan paling tidak 3 juta komputer rumahan yang berada di
dalam komputer rumahan untuk menganalisis data dari teleskop radio
observatorium Arecibo (Arecibo Observatory radiotelescope), mencari
bukti-bukti keberadaan makhluk luar angkasa. Dalam dua kasus
tersebut, tidak ada komunikasi antar node atau media penyimpanan
yang digunakan bersamasama. Implementasi Daftar semi-tahunan
organisasi TOP500, yang mencantumkan 500 komputer tercepat di
dunia umumnya mencakup banyak kluster. TOP500 adalah sebuah
kolaborasi antara Universitas Mannheim, Universitas Tennessee, dan
National Energy Research Scientific Computing Center di Lawrence
Berkeley National Laboratory. Hingga 18 Juni 2008, superkomputer
tercepat yang tercatat di dalam TOP500 adalah sistem Roadrunner
yang dimiliki oleh Department of Energy Amerika Serikat, yang
kinerjanya mencapai 1026 TeraFlops (Triliun Floating Point Operation
per Second) dalam benchmark High-Performance LINPACK