QUEL(Query by Example)
QUEL adalah bahasa akses database relasional,
serupa dengan cara yang paling untuk SQL. Diciptakan sebagai bagian dari Ingres
usaha di University of California, Berkeley, berdasarkan Codd sebelumnya
menyarankan tetapi tidak dilaksanakan Data Sub-Language ALPHA. QUEL digunakan
untuk waktu yang singkat di sebagian besar produk berdasarkan kode sumber
Ingres yang tersedia secara bebas, terutama PostgreSQL. Sebagai Oracle dan DB2
memperoleh pangsa pasar di awal 1980-an, sebagian besar perusahaan kemudian
mendukung QUEL pindah ke SQL sebagai gantinya.QUEL terus menjadi tersedia
sebagai bagian dari Ingres DBMS, meskipun tidak ada bahasa khusus QUEL
perangkat tambahan telah ditambahkan selama bertahun-tahun
Pernyataan QUEL selalu didefinisikan oleh variabel tupel,
yang dapat digunakan untuk membatasi permintaan atau kembali hasil set.
Pertimbangkan contoh ini, diambil dari kertas Ingres asli:
macam
e adalah karyawan
mengambil
(comp = e.salary / (e.age - 18))
mana
e.name = "Jones"
e
adalah tupel, mendefinisikan satu set data, dalam kasus ini semua baris dalam
tabel karyawan yang memiliki nama pertama yang "Jones".
Pernyataan
SQL yang setara adalah:
Pilih
(e.salary / (e.age - 18)) sebagai comp
dari
karyawan sebagai e
mana
e.name = "Jones"
QUEL umumnya lebih "menormalkan" dari SQL.
Sedangkan setiap perintah SQL besar memiliki format yang setidaknya agak
berbeda dari yang lain, dalam QUEL sintaks tunggal yang digunakan untuk semua perintah.
Sebagai contoh, berikut adalah contoh dari sebuah sesi
sederhana yang membuat table, menyisipkan sebaris ke dalamnya, dan kemudian
mengambil dan memodifikasi data di dalamnya dan akhirnya menghapus baris yang
ditambahkan (dengan asumsi bahwa nama adalah bidang unik).
membuat
siswa (nama = c10, Umur = i4, seks = c1, negara = c2)
macam
s adalah mahasiswa
Tambahkan
ke s (nama = "philip", umur = 17, seks = "m", negara =
"FL")
mengambil
mana (s.all) s.state = "FL"
menggantikan
s (age=s.age+1)
mengambil
(s.all)
menghapus
s mana s.name="philip"
Berikut adalah serangkaian pernyataan SQL yang serupa:
membuat
tabel siswa (char(10) nama, Umur int, seks char(1), negara char(2))
masukkan
ke dalam nilai-nilai siswa (nama, Umur, jenis kelamin, negara) ("philip",
17, "m", "FL")
Pilih
* dari siswa tempat negara = "FL"
memperbarui
mahasiswa set umur = umur + 1
Pilih
* dari mahasiswa
Hapus
dari mahasiswa mana nama = "philip"
Dicatat
bahwa sintaks bervariasi secara signifikan antara perintah, dan perintah itu
bahkan serupa seperti memasukkan dan update menggunakan gaya yang berbeda.
Fitur lain dari QUEL adalah sistem built-in untuk
memindahkan catatan secara massal ke dalam dan keluar dari sistem.
Pertimbangkan
perintah ini:
salinan
mahasiswa (nama = c0, koma = d1, Umur = c0, koma = d1, seks = c0, koma = d1,
alamat = c0, nl = d1) ke dalam "/ student.txt"
yang menciptakan sebuah koma comma-delimited
file dari semua catatan dalam tabel siswa. D1 menunjukkan pembatas,
dibandingkan dengan tipe data. Berubah menjadi untuk dari membalikkan proses.
Perintah sejenis tersedia dalam banyak sistem SQL, tetapi biasanya sebagai alat
eksternal, sebagai lawan yang internal untuk bahasa SQL. Hal ini membuat mereka
tersedia untuk disimpan prosedur.
QBE(Query by Example)
untuk database relasional. Hal ini dirancang oleh Moshe
M. Zloof di IBM Research selama pertengahan 1970-an, secara paralel untuk
pengembangan SQL. Ini adalah bahasa grafis query pertama, menggunakan visual
tabel di mana pengguna akan memasukkan perintah, unsur-unsur contoh dan
kondisi. Banyak tamu-ujung grafis untuk database menggunakan ide-ide dari QBE
hari ini. Awalnya terbatas hanya untuk mengambil data, QBE ini kemudian
diperluas untuk memungkinkan operasi lain, seperti sisipan, menghapus dan
update, serta pembentukan tabel sementara.
Motivasi di balik QBE adalah bahwa parser dapat
mengkonversi tindakan pengguna menjadi pernyataan yang terungkap dalam bahasa
manipulasi database, seperti SQL. Di belakang layar, itu adalah pernyataan yang
benar-benar dijalankan. A sesuai komprehensif front-end dapat meminimalkan
beban pengguna untuk ingat rincian halus SQL, dan lebih mudah dan lebih
produktif untuk pengguna akhir (dan bahkan programmer) untuk memilih tabel dan
kolom dengan memilih mereka daripada mengetik di nama mereka,
Dalam konteks pencarian informasi, QBE memiliki makna
yang agak berbeda. Pengguna dapat mengirimkan dokumen, atau beberapa dokumen,
dan meminta dokumen-dokumen yang "mirip" akan diambil dari database
dokumen. Similarlity Cari didasarkan membandingkan dokumen vektor (Lihat ruang
Vector Model).
QBE
adalah sebuah karya mani dalam pengembangan pengguna akhir, sering dikutip
dalam makalah penelitian sebagai contoh awal dari topik ini.
Saat ini QBE didukung dalam beberapa database relasional
depan berakhir, terutama Microsoft Access, yang mengimplementasikan
"Visual Query dengan contoh", serta Microsoft SQL Server Enterprise
Manager. Juga dilaksanakan di beberapa object-oriented database (misalnya di
db4o[1]).
QBE berdasarkan formalism logis yang disebut
query Tablo, meskipun QBE menambahkan beberapa ekstensi itu, seperti SQL
didasarkan pada aljabar relasional.
Berikut adalah beberapa
contoh:
Contoh Form B:
Nama: Bob
Alamat:
Kota:
Negara: TX
Kode pos:
SQL yang dihasilkan:
Pilih * dari kontak mana
nama = 'Bob' dan negara = 'TX'
Perhatikan bagaimana
kosong item tidak menghasilkan istilah SQL. Karena "Alamat" kosong,
ada tidak ada klausul yang dihasilkan untuk itu.
Contoh Form C:
Nama:
Alamat:
Kota: Sampleton
Negara:
Kode pos: 12345
SQL yang dihasilkan:
Pilih * dari kontak mana
kota = 'Sampleton' dan kodepos = 12345
Versi yang lebih maju dari QBE memiliki pilihan operator
perbandingan lain, sering melalui menu pull-down, seperti "Berisi",
"Dimulai dengan", "lebih besar-daripada", dan sebagainya
0 komentar :
Posting Komentar