Iklan

Latest Post


Revisi Sub Query dan Indeks

Bhumi Literasi
Selasa, 18 November 2014, November 18, 2014 WIB Last Updated 2023-03-24T02:24:58Z
Landasan Teori

SQL Subquery

Subquery atau Batin permintaan atau Query bersarang adalah query dalam query. SQL subquery biasanya ditambahkan dalam MANA Klausul pernyataan SQL. Sebagian besar waktu, subquery digunakan ketika Anda tahu bagaimana untuk mencari nilai menggunakan pernyataan SELECT, tetapi tidak tahu nilai yang tepat dalam database.
Subqueries adalah cara alternatif untuk kembali data dari beberapa tabel.
Subqueries dapat digunakan dengan pernyataan SQL berikut bersama dengan operator perbandingan seperti =, <,>,> =, <= Dll
  • SELECT
  • INSERT
  • UPDATE
  • DELETE   

SQL Subquery Contoh:

1) Biasanya, subquery harus kembali hanya satu record, tapi kadang-kadang juga dapat kembali beberapa catatan bila digunakan dengan operator SEPERTI DI, TIDAK DI dalam klausul mana. Sintaks query akan seperti,
SELECT first_name, last_name, subject
FROM student_details
WHERE games NOT IN ('Cricket', 'Football');
Subquery Output akan sama dengan:
first_name last_name subject
------------- ------------- ----------
Shekar Gowda Badminton
Priya Chandra Chess
2) Mari kita mempertimbangkan tabel student_details yang telah kami gunakan sebelumnya. Jika Anda tahu nama siswa yang belajar mata pelajaran ilmu pengetahuan, Anda bisa mendapatkan id mereka dengan menggunakan query ini di bawah ini,
SELECT id, first_name
FROM student_details
WHERE first_name IN ('Rahul', 'Stephen');
tetapi, jika Anda tidak tahu nama mereka, maka untuk mendapatkan id mereka Anda perlu menulis query dengan cara ini,
SELECT id, first_name
FROM student_details
WHERE first_name IN (SELECT first_name
FROM student_details
WHERE subject= 'Science');

Subquery Output:

id first_name
-------- -------------
100 Rahul
102 Stephen
Dalam pernyataan sql di atas, pertama inner query diproses terlebih dahulu dan kemudian permintaan luar diproses.

SQL Subquery; Pernyataan INSERT

3) Subquery dapat digunakan dengan pernyataan INSERT untuk menambahkan baris data dari satu atau lebih tabel ke meja lain. Mari kita mencoba untuk mengelompokkan semua siswa yang belajar Matematika dalam tabel 'maths_group'.
INSERT INTO maths_group(id, name)
SELECT id, first_name || ' ' || last_name
FROM student_details WHERE subject= 'Maths'

SQL Subquery; Pernyataan SELECT

4) Sebuah subquery dapat digunakan dalam laporan SELECT sebagai berikut. Mari kita menggunakan produk dan meja order_items didefinisikan dalam bagian sql_joins.
select p.product_name, p.supplier_name, (select order_id from order_items where product_id = 101) as order_id from product p where p.product_id = 101
product_name supplier_name order_id
------------------ ------------------ ----------
Television Onida 5103

Korelasi Subquery

Permintaan A disebut subquery berkorelasi ketika kedua inner query dan permintaan luar saling bergantung. Untuk setiap baris diproses oleh inner query, permintaan luar diproses juga. Inner query tergantung pada permintaan luar sebelum dapat diproses.
SELECT p.product_name FROM product p
WHERE p.product_id = (SELECT o.product_id FROM order_items o
WHERE o.product_id = p.product_id);

Catatan Subquery

Bersarang Subquery

1) Anda dapat sarang karena banyak pertanyaan yang Anda inginkan, tetapi dianjurkan untuk tidak lebih dari 16 sarang subqueries di oracle

Non-corelated Subquery

2) Jika subquery tidak tergantung pada permintaan luar itu disebut subquery non-berkorelasi

Kesalahan Subquery

3) Meminimalkan kesalahan subquery: Gunakan drag and drop, copy dan paste untuk menghindari berjalan subqueries dengan ejaan dan kesalahan ketik basis data. Perhatikan bidang beberapa Anda menggunakan koma SELECT, tambahan atau untuk beberapa mendapatkan pesan error SQL "sintaks salah".

SQL Subquery Komentar

Menambahkan komentar Subquery SQL adalah kebiasaan yang baik (/ * perintah komentar anda * /) yang dapat menghemat waktu Anda, menjelaskan kerja sebelumnya .. hasil Anda sakit kepala SQL kurang

Referensi Subquery

Optimasi SQL Subquery adalah kebiasaan yang baik .. lebih lanjut tentang SQL Query Fine Tuning SQL Query Optimization

 Hasil Praktikum

1. Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil!



2. Tampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama dengan luki!




3. Buatlah index di tabel mahasiswa(alamat). Kemudian buat lagi index yang bersifat unik pada tabel fakultas(fak_nama) kemudian amati perbedaannya ketika memasukkan data yang sama!












4. Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya !





5. Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai „tabel identitas‟.



6. Buatlah contoh penggunaan check pada sub bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan criteria check maupun yang bukan dan amati perbedaannya.


7. Inputkan data di tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan seluruh data dan hilangkan spasi didepan!



8. Munculkan data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di awal kata pada kolom nama!



Evaluasi Perbandingan 2 DBMS

PostgreSQL

PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.
PostgreSQL adalah sistem database yang kuat untuk urusan relasi, open source. Memiliki lebih dari 15 tahun pengembangan aktif dan sudah terbukti segala rancangan arsitekturnya telah mendapat reputasi tentang “kuat”, “handal”, “integritas data”, dan “akurasi data”

Fitur PostgreSQL
Sebagai enterprise class database, PostgreSQL menghadirkan berbagai fitur yang memuaskan seperti Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces, asynchronous replication, nested transactions (savepoints), online/hot backups, query planner/optimizer yang baik, dan write ahead logging untuk fault tolerance. Object-relational database system ini juga mendukung international character set, multibyte character encoding, Unicode, dan memiliki kemampuan yang baik dalam sorting, case-sensitivity, dan formatting.


PostgreSQL sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam jumlah concurrent user yang dapat diakomodasi olehnya. Sebagai contoh ketangguhannya, terdapat sistem PostgreSQL aktif yang mampu menangani dan mengelola penggunaan 4 terabyte data.

PostgreSQL memiliki kemampuan yang tidak dapat diremehkan karena memiliki fitur yang sangat lengkap dan bersifat standard compliant. Sistem database ini juga fleksibel dan dapat dengan mudah disesuaikan (highly customizable), di mana PostgreSQL dapat digunakan dengan berbagai bahasa pemrograman seperti Java, Perl, Python, Ruby, Tcl, C/C++, dan PL/pgSQL (serupa dengan PL/SQL Oracle).
Dan yang terbaik, source code PostgreSQL tersedia di bawah lisensi liberal open source license, yaitu PostgreSQL License. Lisensi ini memberikan kebebasan bagi Anda untuk menggunakan, memodifikasi dan mendistribusikan PostgreSQL dalam bentuk yang Anda sukai, baik open source maupun closed source.
Sistem Operasi yang Digunakan Untuk PostgreSQL
PostgreSQL berjalan pada semua sistem operasi utama, termasuk Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), dan tidak ketinggalan sistem operasi Windows. PostgreSQL memiliki kemampuan fully ACID compliant, memiliki dukungan penuh terhadap foreign key, join, view, trigger, dan stored procedure (pada lebih dari satu bahasa). Selain itu, PostgreSQL juga mencakup sebagian besar tipe data SQL:2008, termasuk INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATA, INTERVAL, dan TIMESTAMP. PostgreSQL mendukung penyimpanan binary large object, seperti gambar, suara, atau video, dan memiliki native programming interface untuk C/C++, Java, .NET, Perl, Python, Ruby, Tcl, ODBC, dan lain-lain.


Pengguna PostgreSQL

  • Yahoo! untuk analisa prilaku pengguna web, menyimpan 2 petabyte data dan mengklaim sebagai gudang data terbesar. Menggunakan versi PostgreSQL yang dimodifikasi, dengan engine penyimpanan berbasis kolom yang sepenuhnya berbeda.
  • MySpace, situs jejaring sosial populer, menggunakan basisdata Aster nCluster untuk gudang data, dibangun diatas PostgreSQL tanpa modifikasi.
  • OpenStreetMap, proyek kolaboratif untuk menciptakan peta dunia yang bebas sunting.
  • Afilias, register domain untuk .org, .info, dan sebagainya.
  • Sony Online multiplayer online game.
  • BASF, platform belanja untuk portal agribisnisnya.
  • hi5.com portal jejaring sosial.
  • Skype aplikasi VoIP, basisdata pusat bisnis.
  • Sun xVM, perangkat lunak virtualisasi dan otomasi datacenter milik Sun.

Penghargaan

Sampai dengan tahun 2012 PostgreSQL telah menerima penghargaan-penghargaan sebagai berikut :  • Database terbaik tahun 1999 dari LinuxWorld Editor’s Choice Award
• Database terbaik tahun 2000 dari Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2002 dari Linux New Media Editor Choice Award
• Database terbaik tahun 2003 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2004 dari Linux New Media Award
• Database terbaik tahun 2004 Linux Journal Editors’ Choice Awards
Ars Technica Best Server Application Award tahun 2004
• Database terbaik tahun 2005 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2006 Linux Journal Editors’ Choice Awards
Product of the Year, Database Tool tahun 2008 dari Developer.com
Linux New Media Award tahun 2012 untuk kategori Database Open source terbaik


MySQL

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Sistem manajemen basis data relasional

MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.

Sejarah MySQL

MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty" Widenius, seorang programmer komputer asal Swedia. Monty mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di Swedia.
TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem database. Namun sayangnya, UNIREG dianggagap tidak cocok untuk database yang dinamis seperti web.
TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.
Dengan tujuan memperbaiki performa mSQL, Monty mencoba menghubungi David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Namun saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.
Dikarenakan penolakan tersebut, David Hughes, TcX (dan juga Monty) akhirnya memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source codenya dapat bebas digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL dirilis.
David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’ dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep bisnis ini sekarang dikenal dengan istilah Open Source.
Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan Swedia.

Keistimewaan MySQL

MySQL memiliki beberapa keistimewaan, antara lain :
  1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
  2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
  3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
  8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
  9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
  10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
  11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
  12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
  13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Penggunaan

MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo.

Bahasa pemrograman

Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.


Kesimpulan

Rangkuman

Perbandingan dalam Perintah Dasar SQL
1.      Dilihat dari segi perbedaan dan kesamaan :
·         Perbedaan : Dalam praktikum ke-3 ini, khususnya tentang “Perintah Dasar SQL” pada penulisan source code tidak ada perbedaan.
·         Kesamaan : Cara penulisan source code sama.
2.      Dilihat dari segi kelebihan dan kekurangan :
·         Kelebihan : MySQL lebih mudah dikerjakan dibanding postgresql karena kalau salah, maka akan tetap ditampilkan diprojectnya (tidak bisa dihapus) selama programnya dijalankan.
·         Kekurangan : PostgreSQL lebih sulit dijalankan karena harus benar-benar teliti.
3.      Tambahan :
Secara keseluruhan hamper sama antara PostgreSQL dan MySQL hanya ada beberapa perbedaan yang saya temukan dalam percobaan di praktikum ini, yaitu pada pengoperasian PostgreSQL harus diinisialisasi tipe datanya agar mendapatkan hasil yang sebenarnya, sedangkan pada MySQL tidak perlu menginisialisasi tipe datanya karena hasilnya sudah benar.

 Kritik

 Begitu pentingnya database di dunia industri sekarang ini membuat kita semua wajib menguasai database tetapi karena sifat malas itulah yang membuat banyak diantara kita tidak menguasai database dengan baik.

Saran

Dengan begitu pentingnya pemahaman tentang database di dunia industri saat ini sebaiknya mari kita belajar database sedini mungkin supaya tidak ketinggalan dan bisa bersaing di dunia industri saat ini.

Manfaat Bagi Pembaca

Dengan membaca blog saya ini maka para pembaca akan mendapatkan banyak manfaat yaitu akan lebih mengenal database sehingga dengan pahamnya para pembaca tentang database sehingga mampu menguasai database dengan baik dan bersaing di dunia industri saat ini.


Komentar

Tampilkan