Dari sekian banyak Database Storage Engine, ada 5 engine yang paling banyak digunakan yaitu Ms. Access, MySql, SQL Server, Postgre dan Oracle. Semuanya mempunyai kelebihan dan kelemahan masing-masing. Di sini saya akan menjelaskan sedikit menyenai perbedaan di antara ke-5 nya. Walaupun belum pernah mencoba menggunakan SQL Server, Postgre dan Oracle, tapi Penulis berusaha mencari sumber dari berbagai artikel yang sudah terbaca. Jadi, kalau ada kekurangan mohon dimengerti dan dimaklumi.
1. MY SQL
MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB, yang kala itu bernama TcX DataKonsult AB, sejak sekitar 1994–1995, meski cikal bakal kodenya bisa disebut sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL pada waktu itu juga memang untuk mengembangkan aplikasi Web untuk klien—TcX adalah perusahaan pengembang software dan konsultan database. Kala itu Michael Widenius, atau “Monty”, pengembang satu-satunya di TcX, memiliki aplikasi UNIREG dan rutin ISAM yang dibuat sendiri dan sedang mencari antarmuka SQL untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL, atau “mini SQL” (akan kita kunjungi nanti). Barangkali mSQL adalah satu-satunya kode database open source yang tersedia dan cukup sederhana saat itu, meskipun sudah ada Postgres (juga akan dibahas sesaat lagi). Namun ternyata, menurut Monty, mSQL tidaklah cukup cepat maupun fleksibel. Versi pertama mSQL bahkan tidak memiliki indeks. Setelah mencoba menghubungi David Hughes—pembuat mSQL—dan ternyata mengetahui bahwa David tengah sibuk mengembangkan versi dua, maka keputusan yang diambil Monty yaitu membuat sendiri mesin SQL yang antarmukanya mirip dengan mSQL tapi memiliki kemampuan yang lebih sesuai kebutuhan. Lahirlah MySQL.
Nama MySQL (baca: mai és kju él) tidak jelas diambil dari mana. Ada yang bilang ini diambil dari huruf pertama dan terakhir nama panggilan Michael Widenius, Monty. Ada lagi yang bilang kata My diambil dari nama putri Monty, yang memang diberi nama My—karena Monty memang aslinya seorang Finlandia. Tapi sebetulnya kalau source code MySQL dilirik, prefiks my memang sudah terbubuhi di mana-mana—prefiks ini sering menjadi prefiks umum kalau seseorang membuat kode kustom tersendiri untuk sesuatu. Kalau Anda betul-betul penasaran mana yang benar, mungkin bisa bertanya langsung kepada Monty.
Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Sejak dari sebelum 3.22 dan awal 3.23, MySQL terus dikritik praktisi database maupun penggunanya mengenai tidak adanya fasilitas transaksi (COMMIT dan ROLLBACK). Pengembang MySQL menyarankan penggunaan LOCK TABLES untuk mengatasi masalah update atomik, tapi ini tentu saja bukan pengganti transaksi, karena tidak adanya kemampuan membatalkan efek perubahan di tengah jalan. Di seri 3.23-lah MySQL mulai memiliki kemampuan transaksi, row-level locking, dan foreign key constraint. Meski beberapa fasilitas popular lainnya masih belum ada—seperti subselek, view, dan trigger—ini sudah direncanakan dan akan mulai ditambahkan di seri 4.x.
Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. MySQL memang memiliki arsitektur yang memungkinkan tiap tabel ditangani oleh handler yang berbeda. Handler ini menerima perintah akses dan modifikasi dari lapisan MySQL yang lebih atas dan mewujudkannya secara fisik dari dan ke disk. Tabel tipe MyISAM merupakan tabel yang lebih cepat dari tabel ISAM, karena pola aksesnya telah disesuaikan dan dioptimasi untuk pola akses SQL. Selain itu MyISAM mendukung indeks pada kolom bertipe TEXT dan BLOB, serta mendukung tipe indeks FULLTEXT. Tabel tipe BerkeleyDB, atau BDB, menggunakan database embedded BerkeleyDB yang sudah terkenal itu untuk memanfaatkan kemampuan transaksinya. Sejak memiliki handler BDB, MySQL naik statusnya menjadi database yang ACID compliant, sesuatu yang amat penting bagi keamanan data. Namun BerkeleyDB tidaklah terlalu optimal untuk sebuah database SQL, sehingga akhirnya sebuah perusahaan Finlandia Innobase Oy membuat handler table baru bagi MySQL yang menggunakan database embedded InnoDB-nya—kala itu bernama Innobase, namun berganti nama karena masalah trademark produk Innobase yang sudah ada sebelumnya.
InnoDB membuat MySQL menarik karena peningkatan kecepatan dan kemampuan tambahan yang dimungkinkannya. Pertama-tama, InnoDB memiliki fitur transaksi dengan sistem multiversi. Artinya, jika sebuah klien memulai transaksi, maka perubahan yang dilakukan klien tersebut tidak akan terlihat oleh klien lain. Klien lain akan melihat kondisi tabel sebelum transaksi. Barulah jika transaksi oleh klien pertama dicommit, perubahan ini menjadi terlihat di semua klien lain. Bandingkan ini dengan tabel BDB misalnya, di mana klien yang ingin mengakses sebuah tabel yang sedang dipakai dalam sebuah transaksi akan diblok. Dengan kata lain, multiversi menghindari bloking yang tidak perlu. Ini ditambah lagi dengan row-level locking yang disediakan InnoDB, sehingga mempertinggi konkurensi dan mencegah terlalu banyak bloking. Handler tabel MySQL yang lain hanya mendukung table-level locking, sehingga sebuah klien hanya bisa memblok dengan tingkat granulasi tabel dan berpotensi memblok banyak klien lain yang ingin mengakses tabel yang sama. PostgreSQL dan beberapa database komersial sudah memiliki kemampuan-kemampuan ini. Berkat InnoDB, MySQL pun kini memiliki keduanya. Selain itu, InnoDB menambahkan foreign key constraint, sesuatu yang sering didambakan pengguna MySQL karena bisa menyederhanakan logika pemrograman dan menjaga kekonsistenan database mereka.
Sebetulnya babak baru pengembangan MySQL—yaitu saat MySQL dirilis sebagai produk open source sejati—dimulai saat perusahaan kecil MySQL AB ini menjalin kerja sama dengan sebuah perusahaan database Amerika bernama Progress Software di tahun 2000. Progress membantu meyakinkan Monty dkk agar mengganti lisensi produk MySQL menjadi GPL. Selain itu, Progress juga memasuki bisnis open source dengan membentuk NuSphere, yang akan menjual distribusi MySQL khusus. Model bisnis mengemas software open source nampaknya cukup laik di mata Progress, melihat kesuksesan distro-distro Linux dan perusahaan seperti Red Hat. Karena itu Progress juga berencana menyuntikkan dana hingga $2,5 juta dolar kepada MySQL AB, dengan tujuan agar MySQL bisa menjadi lebih baik lagi. Satu lagi, Nusphere juga akan membuat table handler baru bernama Gemini, yang didasarkan pada software database Progress. Gemini akan menambahkan row-level locking dan transaksi pada MySQL.
Database Storage Engine ini banyak digunakan oleh programmer apalagi oleh web developer karena sifatnya yang free. Untuk yang expert sudah ada yang bayar. Kemampuannya sudah bisa diandalkan, mempunyai kapasitas yang cukup mumpuni sekitar 60.000 tabel dengan jumlah record mencapai 5.000.000.000 bahkan untuk yang terbaru sudah lebih. Keamanan datanya cukup aman walaupun tidak sehebat Postgre apalagi Oracle. Engine ini multiplatform sehingga mampu diaplikasikan di berbagai sistem operasi. My Sql cocok diaplikasikan diaplikasi kelas kecil dan menengah. Kelebihan paling utama engine ini adalah kecepatannya.
Kelebihan :
- Dapat bekerja di beberapa platform yang berbeda, seperti LINUX, Windows, MacOS dll.
- Dapat dikoneksikan pada bahasa C, C++, Java, Perl, PHP dan Python.
- Memiliki lebih banyak type data seperti : signed/unsigned integer yang memiliki panjang data sebesar 1,2,3,4 dan 8 byte, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET dan tipe ENUM.
- Mendukung penuh terhadap kalimat SQL GROUP BY dan ORDER BY. Mendukung terhadap fungsi penuh ( COUNT ( ),COUNT (DISTINCT), AVG ( ), STD ( ), SUM ( ), MAX ( ) AND MIN ( ) ).
- Mendukung terhadap LEFT OUTHER JOIN dengan ANSI SQL dan sintak ODBC.
- Mendukung ODBC for Windows 95 (dengan source program). Semua fungsi ODBC 2.5 dan sebagainya. Sebagai contoh kita dapat menggunakan Access untuk connect ke MySQL server.
- Menggunakn GNU automake, autoconf, dan LIBTOOL untuk portabilitas.
- Kita dapat menggabungkan beberapa table dari database yang berbeda dalam query yang sama.
- Ditulis dengan menggunakan bahasa C dan C++. Diuji oleh compiler yang sangat jauh berbeda.
- Privilege (hak) dan password sangat fleksibel dan aman serta mengujinkan ‘Host-Based’ Verifikasi.
- Open Source dan gratis didownload.
- Lebih hemat resource memory (dibandingkan database lain).
- Untuk koneksi ke bahasa pemrograman visual seperti visual basic, delphi, dan foxpro, mysql kurang support, karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, dan ini yang menyebabkan mysql jarang dipakai dalam program visual.
- Data yang ditangani belum begitu besar.
Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa query utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS(Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC(Open Database Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java. Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh cacing komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003.
Database Storage Engine buatan Microsoft. Engine ini berbayar, akan tetapi Microsoft juga menyediakan yang versi gratisan (Express Edition). Karena buatan dari Bill Gates maka Engine ini hanya bisa dijalankan di sistem operasi Windows saja (monoplatform). Keamanan datanya sudah lumayan. Kapasitas penyimpanan datanya tidak mencapai Tera Byte, sehingga sudah mampu untuk diterapkan di aplikasi besar. SQL Server banyak bermain di Memori untuk processing. Untuk backup data Ms SQL banyak extensinya ada extensi .MDB, .BAK, .file. Kapasitas rollback dan recoverinya tidak masih kurang efektif.
- SQL Server merupakan suatu relational database yang di desain untuk mendukung aplikasi dengan arsitektur Client/Server.
- Informasi dipergunakan secara bersama-sama oleh beberapa pengguna (Users) yang menjalankan aplikasi di komputer local, atau komputer Client.
- SQL Server mendukung sistem :
1. Tier System
- Contohnya aplikasi webmail di internet (yahoo)
- Data dan aplikasi tersimpan di Web Server, pengguna menjalankan aplikasi yang diambil dari Web Server (tidak terinstall di komputer lokal).
2. Tier Architecture (Client/Server)
- Contohnya program aplikasi kepegawaian yang dijalankan di satu/beberapa komputer, dan semua datanya disimpan di Server yang terpisah.
- Multitier System
- Contohnya aplikasi webmail di internet (yahoo)
- Data dan aplikasi tersimpan di Web Server, pengguna menjalankan aplikasi yang diambil dari Web Server (tidak terinstall di komputer lokal).
2. Tier Architecture (Client/Server)
- Contohnya program aplikasi kepegawaian yang dijalankan di satu/beberapa komputer, dan semua datanya disimpan di Server yang terpisah.
- Microsoft SQL Server 2000 mampu memenuhi pelayanan database yang dibutuhkan oleh sistem yang besar.
- Server yang besar bisa memiliki ribuan user yang terkoneksi ke SQL Server pada saat yang bersamaan.
- SQL Server sebagai database server untuk keperluan sistem client/server dan Web Sites.
- SQL Server database dibagi menjadi beberapa komponen logik seperti tabel, Views dan elemen lainnya yang tidak tidak terlihat oleh pengguna.
- SQL Server database bisa terdiri dari dua atau lebih physical files :
- Primary data files
- Secondary data files
- Log files
- Komponen SQL Server :
Component | Description |
Database | Berisi obyek yang dipergunakan untuk menampilkan, menyimpan dan mengakses data |
Tables | Menyimpan baris atau record dari suatu data dan relasinya dengan tabel lain |
Database Diagram | Secara grafik menampilkan obyek dari database |
Indexes | Suatu file yang dapat dipergunakan untuk meningkatkan kecepatan akses ke suatu record |
Views | Menyediakan suatu cara alternatif untuk melihat atau menampilkan data pada satu atau lebih tabel. |
Stored Procedures | Program Transact-SQL yang tersimpan di server, dapat dipergunakan untuk mengeksekusi tugas tertentu. |
Triggers | Tipe spesial dari Stored Procedure yang secara otomatis akan dieksekusi bila operasi tertentu di lakukan pada tabel. |
Full-Text Indexes | Spesial index yang membuat pencarian lebih mudah pada column dengan tipe data Varchar dan Text. |
Man this is a great database. Database Storage Engine ini bisa menyimpan data sampai ukuran tera byte, dan database oracle juga meyediakan yg gratisan versi home edition untuk sekedar yg ingin belajar oracle aja sedangkan untuk versi enterprisenya kita harus bayar. sejauh yg saya tahu dalam pengalaman saya, untuk bagian query-nya oracle tetap menggunakan standard bahasa SQL. Oralce bisa digunakan diberbagai platform seperti unix,windows, atau yg lainnya.
untuk masalah keamanan oracle bisa dibilang baik. untuk masalah perfomance oracle kebanyakan bermain di harddisk jadi kalau anda ingin menggunakan oracle anda harus menyediakan space harddisk yg cukup besar. untuk backup oracle mempunyai extensi sendiri namanya file DMP.
Kelebihan :
- Ketika kita mengakses database dan kemudian ada kejadian seperti listrik mati misalnya maka data yang sudah kita simpan tidak rusak/hilang.
- Database Clusters, dengan menggunakan teknologi Real Application Clusters (RAC). Salah satu fungsi dari RAC adalah memberikan perlindungan terhadap kelangsungan data dalam perusahaan sehingga apabila terjadi crash pada salah satu server database, maka tidak akan mempengaruhi kinerja perusahaan. Hal ini disebabkan karena teknologi RAC memungkinkan untuk membuat beberapa database server menjadi seolah-olah satu database server, sehingga apabila ada database server yang down, kinerja database server tersebut akan di-take over oleh server-server yang lain.
- Row-Level Locking, fitur ini dapat melakukan lock tidak hanya pada table-level saha, akan tetapi dimungkinkan untuk melakukan lock lebih jauh lagi sampai pada row-level. Sehingga user-user dapat melakukan akses data dalam suatu tabel secara bersamaan, lebih cepat dan lebih akurat.
- Data Partitioning, Oracle memungkinkan kita untuk melakukan partisi ke suatu tabel maupun indeks. Hal ini akan dapat meningkatkan kemampuan kita untuk dalam melakukan manajemen data.
- Oracle OLAP (Integrated Online Analytical Processing), Oracle memiliki fungsi OLAP (yang sebelumnya hanya dapat kita temui pada OLAP database) yang terintegrasi dengan baik ke dalam relational database, sehingga kita tidak memerlukan database lain selain Oracle itu sendiri.
- Oracle Data Mining & Data Warehousing, fitur ini memberikan kemudahan bagi perusahaan yang ingin men-develop aplikasi Business Intellegent yang bertujuan untuk membantu eksekutif perusahaan dalam menentuksan strategi perusahaan berdasarkan analisis data yang di-generate oleh Oracle Data Mining.
- Virtual Private Database, fitur ini memberikan dan meningkatkan fleksibilitas jaminan security sampai pada row-level security. Hal ini akan membuat aplikasi kita menjadi semakin aman sewaktu kita melakukan transaksi melalui Internet.
- Intelegent Self-Managing, untuk para DBA, fitur ini akan membuat proses database tuning dan database manajemen menjadi lebih mudah.
- Flashback Query, fitur ini memungkinkan kita untuk melihat status data kita mundur beberapa waktu (flash back) sampai batas yang kita tentukan, sehingga apabila terjadi kesalahaan data pada waktu yang lalu, maka kita dapat melakukan koreksi tanpa harus melakukan database recovery.
- Penggunaan Oracle sangat memakan banyak biaya, mulai dari device sampai diperlukannya DBA yang handal.
0 Comment :
Posting Komentar