Pengenalan untuk SQL (Introduction to
SQL)
Di dalam bagian ini duraikan secara singkat sasaran SQL,
menyediakan suatu sejarah bahasa yang pendek/singkat dan mendiskusikan mengapa
bahasa menjadi sangat penting untuk
aplikasi database.
.
Sasaran SQL (Objectives of SQL)
Idealnya, suatu bahasa database sebaiknya mengijinkan seorang
pemakai untuk:
·
menciptakan struktur relasi dan
database;
· melaksanakan tugas manajemen data dasar.
seperti penyisipan, modifikasi, dan penghapusan (delete) data dari relasi;
· melaksanakan kedua-duanya yang sederhana dan query yang kompleks.
Suatu bahasa database harus melaksanakan
tugas ini dengan pemakai minimal berusaha, dan sintaksis dan struktur
perintahnya harus secara relatif mudah untuk dipelajari. Akhirnya, bahasa adalah yang harus mudah dibawa, itu harus
menyesuaikan diri pada beberapa standard yang dikenal sedemikian rupa sehingga
dapat menggunakan sintaksis dan struktur perintah yang sama ketika kita pindah
dari satu DBMS ke yang lainnya. SQL dimaksudkan untuk mencukupi kebutuhan ini.
SQL adalah suatu contoh suatu bahasa berorientasi transformasi (transform-oriented
language), atau suatu bahasa didesain untuk menggunakan relasi untuk
mentransformasi masukan ke dalam keluaran yang diperlukan. Sebagai bahasa, ISO
SQL standard mempunyai dua komponen utama:
·
suatu Bahasa Definisi Data (Data definition
language /DDL) untuk melukiskan struktur database dan mengendalikan akses untuk
data;
·
Bahasa Manipulasi Data (Datamanipulation
language /DML) untuk/karena mendapatkan kembali dan membaharui data.
Sampai
SQL3, SQL hanya berisi definisional ini dan perintah manipulasi; tidak berisi aliran perintah kendali,
seperti IF ...THEN….ELSE, GO TO, or DO ...WHILE. Ini seharusnya adalah telah diterapkan penggunaannya suatu
programming atau job-control bahasa atau secara interaktif oleh keputusan
pemakai. Oleh karena dengan ini ketiadaan kelengkapan komputasi, SQL dapat
digunakan dua cara. Cara yang pertama adalah untuk menggunakan SQL secara
interaktif dengan memasukan statemen pada suatu terminal. Cara yang kedua adalah untuk melekatkan statemen SQL di dalam
prosedur melekatkan mengenai suatu bahasa, ketika mendiskusikan bab 21 yang
memikat hati, Kita juga mendiskusikan SQL3, apakah yang dirumuskan tahun 1999,
di dalam bab 27.
SQL adalah suatu bahasa yang mudah untuk dipelajari:
·
Ini merupakan suatu bahasa non prosedur: anda menetapkan informasi apa
yang anda perlukan, dibanding/bukannya bagaimana cara mendapat/kan itu. Dengan
kata lain, SQL tidak memerlukan anda untuk menetapkan metode akses data,
·
Seperti kebanyakan bahasa modern, SQL
sangat utama format bebas, yang berarti bahwa bagian-bagian dari statemen
tidaklah harus dengan semacam penempatan pada layar tertentu.
·
Struktur Perintah terdiri dari
kata-kata bahasa Inggris baku
seperti CREATE TABLE, INSERT, SELECT. Untuk
latihan :
-
CREATE TABLE
Staff (staffNo VACHAR(5), IName VARCHAR(15), salary DECIMAL(7,2);
-
INSERT INTO
Staff VALUES (‘SGI6’,’Brown’, 8300);
-
SELECT
staffNo, lName, salary
-
FROM
Staff
-
WHERE
salary> 10000;
·
SQL dapat digunakan oleh jajaran para
pemakai yang mencakup Database Administrators (DBA), personil manajemen pengembang
aplikasi dan banyak tipe lain pemakai akhir.
Suatu standard internasional sekarang ada untuk bahasa SQL yang
membuatnya kedua-duanya formal dan de-facto bahasa standar untuk
mendefinisikankan dan memanipulasi database relasional (ISO 1992, 1999a),
Sejarah SQL (History of SQL)
Seperti yang dinyatakan bab 3, sejarah model relasional (dan
secara tidak langsung SQL) yang dimulai dengan penerbitan makalah seminar E. F. Codd yang sedang aktif pada Laboratorium Riset IBM's di San Jose
(Codd, 1970). Pada tahun 1974, D. Chamberlin, juga dari IBM San Jose Laboratory yang mendefinisikan suatu bahasa yang disebut the Structured English Query Language, atau SEQUEL. Suatu versi ditinjau kembal
SEQUEL/2 telah didefinisikan pada tahun 1976,
tetapi nama sub-sequently diubah dengan
SQL untuk alasan yang sah (Chamberlin and Boyce, 1974; Chamberlin et al, 1976). pengucapan kata-kata adalah ‘S-Q-L
‘.
IBM memproduksi suatu prototype DBMS dasar dalam SEQUEL/2, disebut
system R (Astrahan et al, 1976). Hari ini, banyak orang masih melafalkan
SQL sebagai ‘See-Quel’, meskipun demikian pengucapan kata-kata
pejabat adalah‘S-Q-L ‘.
Tujuan prototipe ini adalah untuk memvalidasi kelayakan
relasional, model. Di samping sukses lainnya, salah satu dari hasil yang paling
utama telah dihubungkan dengan proyek ini adalah pengembangan SQL. Bagaimanapun.
akar SQL adalah di dalam SQUARE bahasa (Menetapkan Query Sebagai Ungkapan Relasional), Yang
pre-dates Sistem R dirancang. SQUARE telah dirancang sebagai bahasa riset untuk
menerapkan relasional algebra dengan kalimat Inggris (Boyce et al, 1975).
Di tahun 1970 ang lalu, system database Oracle telah diproduksi dengan apa yang kini disebut Oracle Corporation, dan mungkin lebih dulu diimplementasikan
yang komersil suatu DBMS relational dasar dalam SQL. INGRES yang diikuti
segera setelah itu, dengan suatu bahasa
query disebut QUEL, yang mana walaupun
lebih 'terstruktur' dibanding SQL adalah
lebih sedikit yang suka bahasa Inggris. Kapan SQL dimunculkan seperti bahasa standar
database untuk sistem relasional. INGRES telah dikonversi untuk suatu SQL-based DBMS.IBM memproduksi komersil
lebih dulu, disebut SQL/DS, untuk
lingkungan DOS/YSE dan VM/CMS pada tahun 1981 dan 1982, berturut-turut, dan sub sequently sebagai DB2 untuk lingkungan MVS tahun 1983.
Pada tahun 1982, the
American National Standards Institute bekerja pada suatu Bahasa Database Relasional (Relational Database Language /RDL) dasar dalam
suatu konsep tulisan dari IBM. ISO ber-join dalam pekerjaan ini pada tahun
1983, dan bersama mereka mendefinisikan standard untuk SQL. (nama RDL telah
jatuh pada tahun 1984, jadilah berbalik ke suatu
format yang lebih disukai yang eksisting diimplementasikan SQL)
Awal Standard ISO diterbitkan tahun 1987 yang menarik sebuah
derajad kritik yang bisa dipertanggung jawabkan. Janji, suatu peneliti berpengaruh
di dalam area ini mengklaim hal-hal penting itu seperti integritas yang
mempunyai petunjuk perintah dan relasional tertentu operator telah dihilangkan.
Ia juga menunjukkan bahwa bahasa sangat berlebih lebihan; dengan kata lain, ada
cara lebih dari satu untuk menulis query yang sama (tahun,
1986, 1987a, 1990).
Sebagian besar kritik adalah sah, dan telah dikenali oleh
standard; sebelumnya badan standard
telah menerbitkan. Itu telah diputuskan, jadi bagaimanapun bahwa itu lebih
penting bagi pelepasan suatu standard sejak dulu mungkin untuk menetapkan suatu
basis bersama dari bahasa yang mana
dan implementasi bisa kembangkan
dibanding untuk menunggu sampai semua corak yang dirasakan orang-orang kini
harus bisa digambarkan dan disetujui.
Pada tahun 1989, ISO menerbitkan suatu addendum yang mendefinisikan
Corak Peningkatan Integritas
“Integrity Enhancement Feature” (ISO. 1989). Pada tahun 1992, revisi
besar yang pertama untuk standar ISO yang terjadi,
kadang-kadang dikenal sebagai SQL2 atau SQL-92 (ISO. 1992). Walaupun beberapa corak standard telah didefinisikan untuk yang
pertama kali, banyak dari ini yang telah diterapkan, pada sebagian atau dalam format
serupa, di dalam satu atau lebih banyak orang mengimplementasikan SQL. Itu
bukanlah sampai 1999 bahwa pelepasan/release standard yang berikutnya telah
disusun, biasanya dikenal sebagai SQL3 (ISO, 1999a). Pelepasan/Release ini
berisi corak tambahan untuk mendukung manajemen data object-oriented, yang diuji pada Bagian 27.4.
Fitur bahwa yang disediakan di atas standard oleh vendor disebut
perluasan. Sebagai contoh, standard menetapkan enam jenis data yang berbeda
untuk data di dalam suatu SQL database. Banyak implementasi melengkapi daftar
ini dengan berbagai perluasan. Masing-Masing implementasi SQL disebut suatu
dialek. Tidak ada berbagai dua dialek persisnya mirip, dan sekarang ini tidak
ada dialek yang persisnya memenuhi standard ISO. Lebih dari itu, sebagai
penjual database memperkenalkan kemampuan baru, mereka yang sedang mengembangkan SQL berbagai dialek
mereka dan bergeraknya bahkan lebih lanjut terpisah. Bagaimanapun, inti yang
terpusat bahasa SQL adalah mempertunjukkan tanda semakin menjadi
distandardisasikan ISO
Walaupun SQL konsep asli semula
IBM, arti pentingnya segera mendorong penjual lain untuk menciptakan
implementasi mereka sendiri. Hari ini ada secara harafiah beratus-ratus SQL
berdasarkan produk yang tersedia, dengan
produksi baru diperkenalkan secara teratur.
Arti penting SQL (Importance of SQL)
SQL adalah yang pertama dan, sejauh ini, hanya bahasa standard database dengan memperoleh penerimaan
yang luas. Satu-Satunya bahasa standard database lain, jaringan bahasa database (the Network
Database Language /NDL), dasar dalam CODASYL network model, mempunyai sedikit para pengikut. Yang hampir tiap-tiap penjual utama
sekarang menyediakan produk database berdasarkan pada SQL atau dengan SQL atau
dengan suatu SQL antarmuka, dan paling sedikit diperkenalkan pada salah satu
dari badan pembuat standard . Ada
suatu investasi sangat besar di dalam SQL bahasa baik melalui penjual dan oleh
para pemakai. Itu telah menjadi bagian dari aplikasi, arsitektur seperti IBM's Systems Application Architecture (SAA) dan adalah pilihan yang strategis atau banyak organisasi besar
dan berpengaruh, sebagai contoh X/OPEN konsorsium standar UNIX. SQL juga telah menjadi suatu
Standard Pengolahan Informasi Pemerintah pusat (Federal Information Processing Standard /FIPS) bagi penyesuaian diri yang mana
diperlukan untuk semua penjualan DBMSs kepada pemerintah AS. SQL Accses
Kelompok, suatu konsorsium vendor, mendefinisikan gugus
peningkatan untuk SQL yang akan mendukung antar kemampuan lintas sistem operasi
yang berlainan.
SQL menggunakan standard lain, dan bahkan
mempengaruhi pengembangan dari standard lain yang mempunyai suatu alat
menentukan. Contoh meliputi ISO's Information Resource Dictionary System (IRDS) standard
(lihat bagian 2.7.1) dan Remote Data Access (RDA) standard Pengembangan bahasa didukung oleh minat akademis yang pantas
dipertimbangkan, menyediakan kedua-duanya adalah suatu basis teoritis untuk
bahasa dan teknik memerlukan untuk diimplementasikan dengan sukses. Ini adalah
benar terutama query distribusi optimisasi data, dan keamanan. Implementasi SQL
yang khusus adalah mulai nampak bahwa diarahkan pada pasar yang baru, seperti Online Analytical Processing (OLAP).
Terminology
Standard ISO SQL tidak menggunakan
terminologi relasi formal, atribut, dan tuples, sebagai gantinya menggunakan
istilah tabel, kolom, dan baris. Di dalam
presentasi SQL kita kebanyakan menggunakan terminologi ISO. Perlu juga dicatat bahwa SQL tidak melekat
dengan kaku 10 definisi dari model internasional yang diuraikan dalam Bab 3. Sebagai
contoh, SQL mengijinkan tabel diproduksi seperti hasil statemen SELECT
dengan berisi salinan baris, itu memaksakan suatu pemesanan pada kolom, dan
mengijinkan pemakai untuk memesan baris suatu tabel.
Menulis Perintah SQL (Writing SQL Commands)
Di dalam bagian ini dengan singkat
menguraikan struktur dari suatu statemen SQL dan notasi yang kita gunakan untuk
menggambarkan format berbagai konstruksi SQL. Suatu statemen SQL terdiri dari
kata-kata pesan dan kata-kata yang didefinisikan pemakai (reserved words and user-defined
wprds). Kata-Kata yang dipesan adalah suatu
yang ditetapkan bagian dari bahasa SQL dan mempunyai suatu maksud/arti yang
ditetapkan. Mereka harus dieja persisnya ketika diperlukan dan tidak bisa
dipisah ke garis sebelahnya. Pemakai mendefinisikan kata-kata yang disusun oleh
pemakai (menurut aturan sintaksis tertentu) dan menghadirkan nama berbagai
object database seperti tabel, kolom, views,
index, dan seterusnya. Kata-Kata di dalam suatu statemen adalah juga dibangun
menurut satu gugus aturan sintaksis. Walaupun standard tidak memerlukan itu,
banyak berbagai dialek SQL memerlukan penggunaan suatu statemen terminator
untuk menandai ujung setiap statemen SQL (yang pada umumnya titik koma ';'
yang digunakan).
Kebanyakan komponen dari suatu statemen SQL adalah kasus tidak
dapat sensitive (case insensitive), yang berarti surat itu dapat diketik di bagian atas yang
manapun atau huruf kecil. Satu
perkecualian penting pada aturan
ini adalah bahwa data karakter harafiah
harus diketik persisnya ketika itu nampak database. Sebagai contoh, jika kita
menyimpan nama panggilan seseorang sebagai 'SMITH' dan kemudian mencari-carinya
menggunakan string 'Smith', baris tidak akan ditemukan.
Walaupun
SQL adalah free-format, suatu statemen SQL atau gugus statemen jadilah lebih
menarik jika indentation dan lineation
digunakan. Sebagai contoh:
· Setiap ketentuan di dalam suatu statemen mulai dikerjakan
dalam suatu garis baru;·
· permulaan dari setiap ketentuan perlu baris permulaan
dari ketentuan yang lain:
· jika suatu ketentuan mempunyai beberapa bagian, mereka
perlu masing-masing nampak pada suatu garis terpisah dan memberinya spasi di
bawah start ketentuan untuk menunjukkan relasi.
Seluruhnya ini dan bab yang berikutnya, kita menggunakan format
berikut yang diperluas Backus Naur Form (BNF) notasi untuk menggambarkan statemen SQL :
·
huruf besar
digunakan untuk menghadirkan kata-kata dipesan dan harus mengeja persisnya seperti
yang ditunjukkan
· huruf kecil digunakan untuk menghadirkan
kata-kata yang didefinisikan pemakai (user-defined);
·
bar vertikal bar (|) indikasi suatu pilihan (choice) antar alternatif; untuk
latihan, a | b | c;
·
kurung kurawal (kait keriting) menandai
adanya suatu elemen yang diperlukan; (required element) sebagai
contoh, { a };
·
kurung besar menandai adanya suatu
elemen opsional (optional element); sebagai contoh, [ a ] ;
·
elipsis (penghilangan kata)(...)
digunakan untuk menandai adanya pengulangan opsional (optional repletion)
dari suatu item nol atau lebih waktu.
For example:
{a |
b } (,c…)
berarti, baik a maupun b mengikuti nol atau lebih pengulangan c yang dipisahkan oleh
tanda koma,
Dalam praktek, statemen DDL digunakan untuk menciptakan struktur
database (itu adalah, tabel) dan mekanisme akses (itulah apa masing-masing
pemakai menurut hukum dapat mengakses), dan kemudian statemen DML digunakan
untuk mendiami dan query tabel . Bagaimanapun, di dalam bab ini menghadirkan
DML sebelum statemen DDL untuk mencerminkan pentingnya statemen DML kepada
pemakai yang umum. Statemen DDL yang utama didiskusikan di dalam bab yang
berikutnya.
0 Komentar