Tempat Berbagi Ilmu dan Pengalaman

Blog ini menampilkan berbagai artikel artikel yang dapat menambah pengetahuan dan membantu para mahasiswa untuk meningkatkan pengetahuan dan membantu tugas kuliah

Basis Data

                                    
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 :