Pengenalan Database SQL


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 diSan 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 disebutOracle 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'sSystems 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 suatuStandard 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  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.

wdcfawqafwef