Senin, 12 April 2010

RDBMS VS NoSQL

Relational Database Management System (RDBMS)


Relational Database Management System (RDBMS) adalah sebuah sistem yang secara otomatis menyatukan semua DBMS yang saling berhubungan. RDBMS biasanya menggunakan 4th Genration Languange (4GL) dan sangat fleksibel sehingga data dapat dimodifikasi dengan mudah, demikian pula dengan struktur databasenya.

RDBMS tumbuh dari suatu teori yang pertama kali dikembangkan oleh E.F Codd (IBM, 1969). Model relasi CODD ini digunakan untuk menciptakan sebuah sistem secara formal sebagai media penyimpanan data yang memisahkan representasi data secara internal dari aksses dan representasi / perwujudan logikanya.

Kekuatan RDBMS terletak pada kemampuannya untuk menyembunyikan detail dari penyimpanan data dari pengguna database dan cara penggunaanya yang lebih mudah baik bagi pembangunan aplikasi / programmer, maupun bagi pemakai akhir (end user). Hal ini didukung pula dengan penggunaan Structured Query Languange (SQL) sebagi sumber dari semua RDBMS.

Arsitektur RDBMS

Arsitektur RDBMS memiliki banyak karakteristik yang membedakan dari model penyimpanan data lainnya. Perbedaan yang paling penting adalah pemisahan segi fisik dari segi logika suatu data. Dalam RDBMS, seluruh data secara logika tersimpan di dalam tabel-tabel, yang merupakan kumpulan dari baris dan kolom. Sistem pencarian data di dalam RDBMS menggunakan index yang merupakan struktur data yang terpisah dari tabel dan menyimpan hanya nilai terstruktur dari kolom-kolom dan alamat fisiknya. Disamping itu dengan didukung oleh penggunaan index dapat mempercepat proses pencarian data di dalam database.
Faktor penting lainnya dari arsitektur RDBMS adalah integrity constraints. Dengan Integrity Constraints tabel-tabel dihubungkan dengan key. Key adalah beberapa kolom atau kombinasi kolom kolom yang secara unique mengidentifikasi setiap tabel. Sebuah key yang secara unique bagi suatu tabel dapat berdiri sebagai kolom yang tidak unique bagi tabel lainnya. Integrity Constraints adalah aturan "build in" yang secara otomatis berpengaruh dalam mempertahankan integritas database.
Aturan-aturan integritas ini biasa dibuat atau dirancang oleh seorang perancang database. Karakteristik penting lainnya dari arsitektur RDBMS adalah adanya "Optimizer". Optimizer adalah sebuah sistem pakar yang bertugas untuk menentukan cara pemrosesan yang paling efesien bagi suatu database.


Berikut ini diberikan deskripsi dari beberapa elemen-elemen
RDBMS :

* Database :
Sekelompok tabel data berisi informasi yang berhubungan. Perhatikan bahwa suatu database dapat terdiri dari satu tabel saja.

* Table :
Sekelompok record data, masing-masing informasi yang sejenis. Dalam contoh catalog perpustakaan, catalog itu sendiri merupakan tabel data.

* Record :
Entri tunggal dalam tabel; entri tersebut terdiri dari sejumlah field data. Dalam catalog perpustakaan, record adalah salah satu baris entri tunggal.

* Field :
Item (kolom) tertentu dari data dalam record. Dalam satu buku telepon, sekurang-kurangnya dapat dikenali empat field : nama keluarga, nama depan, alamat, dan nomor telepon.

* Index :
Tipe tabel tertentu yang berisi nilai-nilai field kunci atau field (yang ditetapkan oleh pemakai) dan pinter ke lokasi record yang sebenarnya. Nilai-nilai dan pointer ini disimpan dalam urutan tertentu (sekali lagi ditetapkan oleh pemakai) dan mungkin digunakan untuk menyajikan data dalam urutan database.

Query :
Perintah SQL yang dirancang untuk memanggil kelompok record tertentu dari satu tabel atau lebih untuk melakukan operasi pada tabel. Meskipun perintah SQL dapat dijalankan langsung dari program, query sebagai enjin perintah dan menyimpannya dalam database itu sendiri - ini berguna, jika perintah-perintah SQL sering kita gunakan, sebagaimana perintah yang memanggil record untuk laporan bulanan tertentu. Bila query disimpan dalam database, biasanya kompilasi. Kompilasi query memperbaiki kinerja program kita kerana mesin database tidak harus menerjemahkan (atau menguraikan) perintah SQL.

Filter (Pembatas Kondisi) :
Filter sebenarnya bukan merupakan bagian dari database, namun ia digunakan bersama urutan indeks dan sort untuk menentukan data mana yang diproses atau ditampilkan. Filter adalah pembatas kondisi yang dikenakan pada data

View :
View data terdiri atas jumlah record yang tampak (atau diproses) dan urutan penampilannya (atau pemrosesannya). View khususnya dikendalikan oleh filter dan indeks.



NoSQL


NoSQL adalah yang cepat, portabel, sistem manajemen basis data relasional yang sewenang-wenang tanpa batas, (selain memori dan kecepatan prosesor) yang berjalan di bawah, dan berinteraksi dengan, Sistem Operasi UNIX1. Ia menggunakan "Operator-Stream Paradigm" dijelaskan dalam "Unix Review", March, 1991, halaman 24, berjudul "4GL Bahasa". Ada sejumlah "operator" yang masing-masing melakukan fungsi yang unik pada data. The "aliran" adalah UNIX diberikan oleh Input / Output redirection mekanisme. Oleh karena itu masing-masing operator proses beberapa data dan kemudian meneruskannya sepanjang operator berikutnya melalui pipa fungsi UNIX. Hal ini sangat efisien sebagai pipa UNIX diimplementasikan di memori. NoSQL ini kompatibel dengan "Relational Model".

Apa NoSQL
NoSQL, yang saya pribadi ingin mengucapkan sebagai noseequel2, merupakan turunan dari sistem database RDB. Yang terakhir ini dikembangkan di RAND Organisasi oleh Walter W. Hobbs. Beberapa Perl script disertakan dengan NoSQL masih sangat dekat dengan RDB yang asli, sehingga pangsa baik kredit bagi mereka pergi ke penulis asli.
Kontributor utama lainnya untuk sistem RDB asli, selain Walter Hobbs, adalah:
• Chuck Bush
• Don Emerson
• Judy Pemberi Pinjaman
• Roy Gates
• Rae Starr
Orang-orang yang membantu dengan mengubah RDB menjadi NoSQL:
• Vincenzo (Vicky) Belloli
• David Frey
• Giuseppe Paterno
• Maurizio (Masar) Sartori
• Paulus Lussier
• Seth LaForge
• Mikha Stetson
• Thomas Miller
• Michael Somos
• Agustin Ferrin
NoSQL logonya yang baik yang disediakan oleh Kyle Hart.
Seperti namanya, bukanlah NoSQL database SQL melainkan tingkat shell-alat, seperti yang dijelaskan dalam Filsafat NoSQL. NoSQL data yang terdapat dalam file ASCII UNIX biasa, dan sehingga dapat dimanipulasi oleh utilitas UNIX biasa, misalnya ls, wc, mv, cp, kucing, kepala, lebih, kurang, editor seperti 'vi', dll, dan juga oleh sistem versioning kuat, seperti RCS dan CVS.
Bentuk setiap file data adalah bahwa dari sebuah relasi, atau meja, dengan baris dan kolom informasi.
Untuk mengekstrak informasi, file data diberi makan kepada satu atau lebih "operator" melalui UNIX Input / Output redirection mekanisme.
Ada juga program untuk menghasilkan, memodifikasi, dan memvalidasi data. Yang lebih melalui diskusi tentang mengapa jenis ini struktur database relasional masuk akal adalah ditemukan dalam buku, "UNIX Relational Database Management", di "Referensi" di bawah.
Diasumsikan bahwa pembaca telah setidaknya dasar keakraban dengan Sistem Operasi UNIX, termasuk pengetahuan tentang Input / Outout pengarahan ulang (misalnya, STDIN, STDOUT, pipa).
NoSQL cenderung menjadi bias mendukung Linux. Ini berarti bahwa, di manapun itu penting, membuat NoSQL menggunakan versi GNU berbagai perintah UNIX, seperti yang adalah orang-orang biasanya ditemukan di Linux. NoSQL adalah perangkat lunak gratis, yang dirilis di bawah GNU General Public License. Dengan demikian, hal itu sepenuhnya memenuhi syarat juga sebagai Open Source Software.
______________________________________
Cara mendapatkan NoSQL
Bebas NoSQL dapat didownload dari http://www.strozzi.it/shared/nosql/. Pastikan Anda mendapatkan juga setiap patch untuk kode dasar, untuk versi yang Anda download.
Mulai dari versi 4.0.14 repositori dalam pembangunan NoSQL dipindahkan dari CVS ke Subversion. Berwenang dapat men-download kode perkembangan terbaru dari server Subversion:
svn checkout - username anonim svn: / / subversion.strozzi.it / pub / nosql / trunk
Versi NoSQL dari 4.1.0 ke 4.1.6 tergantung pada Shell-Ware Utilitas (SWU) paket, yang dapat didownload dari http://www.strozzi.it/shared/swu/. Karena hanya sebagian kecil dari sebenarnya SWU diperlukan untuk NoSQL untuk bekerja, mulai dari versi 4.1.7 seperti Aku telah menghapus ketergantungan dengan memasukkan minimal, stripped-down dengan SWU versi NoSQL itu sendiri. Jika Anda telah menginstal full-blown SWU, NoSQL akan menggunakan satu saja.

Senin, 05 April 2010

Keistimewaan MYSQL

MySQL memiliki beberapa keistimewaan, antara lain :

- Portabilitas : MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.

Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.

- Multi-user : MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.

-Performance tuning : MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

-Ragam tipe data : MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.

-Perintah dan Fungsi : MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).

-Keamanan : MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.

-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 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

-Konektivitas : MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).

-Lokalisasi : MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.

-Antar Muka : MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).

-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.

-Struktur table : MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Penjelasan Tipe Data

Karakter :
CHAR: Teks dengan maksimal 255 karakter
VARCHAR: Teks maksimal 255 karakter dan bersifat variabel
TEXT: Teks dengan panjang maksimal 65535

Bilangan :
TINYINT: Bilangan 1 byte
SMALLINT: Bilangan 2 byte
INT atau INTEGER Bilangan 4 byte
BIGINT: Bilangan 8 byte
FLOAT: Bilangan pecahan (4 byte)
DOUBLE atau REAL: Bilangan pecahan (8 byte)
DECIMAL(M, D) atau NUMERIC(M, D): Bilangan pecahan


Lain-Lain :
DATE: Tanggal
DATETIME: Waktu (tanggal dan jam)
TIME : Jam
ENUM(‘nilai1’, ‘nilai2’, …): Nilai enumerasi
BOOLEAN: tipe benar atau salah

Kata Tambahan :
NOT NULL : Tidak boleh kosong
PRIMARY KEY: Kunci primer
AUTO_INCREMENT: Nilai naik secara otomatis tanpa diisi

Selasa, 30 Maret 2010

Perbedaan Identifying dan Nonidentifying Relationship

Identifying Relationship adalah sejenis specific connection relationship di mana child entity selalu berjenis dependent entity. Secara umum identifying relationship dapat dipetakan menjadi sebuah association. Bila child entity adalah bagian dari parent entity, association ini
diubah menjadi sebuah aggregation. Jika keberadaan child entity adalah sangat bergantung pada parent entity, aggregation dapat diubah menjadi sebuah composition.
Relationship label dapat digunakan sebagai role name dari binary association pada ke
dua ujungnya. Multiplicity ditambahkan sesuai dengan cardinality dari relationship. Informasi properti yang tidak ada adalah changeability, ordered/non-ordered, navigability, qualifier dan aggregation kind. Nilai dasar yang digunakan untuk navigability adalah false, changeability adalah true dan aggregation kind adalah unShared.
Non-Identifying Specific Relationship
adalah sejenis hubungan di mana child entity dan parent entity bertipe independent entity. Non-Identifying relationship dapat dibagi menjadi :
- mandatory non-identifying relationship
- optional non-identifying relationship.
Non-identifying relationship dipetakan menjadi association dengan aggregation type, none.Mandatory non-identifying relationship direpresentasikan sebagai sebuah association dengan multiplicity one, sementara optional non-identifying relationship diterjemahkan sebagai sebuah association dengan mulitplicity zero-or-one. Relationship name dapat dipetakan menjadi role name pada kedua ujung association. Multiplicity ditambahkan sesuai dengan cardinality pada relationship. Informasi yang kurang adalah changeability, ordered/nonordered, navigability, qualifier dan target scope. Nilai dasar dari navigability adalah false,changeability adalah true dan target scope adalah instance.
sedangkan identifying relationship
- menghubungkan strong entities ke weak entities
- diwakili dengan double diamond

Senin, 29 Maret 2010

FALCON (Storage Engine)

engine=falcon merupakan wngin pengembangan dari engine innodb.hanya saja menurut situs resmi mysql.org. Tipe engine falcon ini lebih cepat di banding engine pendahulunya(innodb). Karena merupakan turunan dari engine innodb, maka tabel ini mendukung index foreign dimana bersama2 qt ketahui bahwa tabel innodb dirancang khusus untuk menghandle transaksi.
perbedaan antara BDB, innodb dan falcon :
  • BDB adalah versi yang paling tua(paling lambat diantara ketiganya) sudah jarang dipakai oleh pengembang
  • innodb merupakan anak dari BDB lebih cepat dan mendukung save transaction(sering digunakan untuk membuat relasi) dengan tabel ini kita bisa mengatur referensial integritinya tabel yang termuktakhir adalah tabel falcon, tabel ini merupakan pengembangan dari tabel innodb. katanya lebih cpt dari kedua engine diatas. tabel ini mulai ada pada mysql versi 6

Kamis, 11 September 2008

Sejarah Komputer

Sejarah Komputer

Generasi Pertama

Dengan terjadinya Perang Dunia Kedua, negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploit potensi strategis yang dimiliki komputer. Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali.

Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode-rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, colossus bukan merupakan komputer serbaguna (general-purpose computer), ia hanya didesain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.

Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvd-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.

Perkembangan komputer lain pada masa kini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania . Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW.

Komputer ini dirancang oleh John Presper Eckert (1919-1995) dn John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.

Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usha membangun konsep desin komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer. Von Neumann mendesain Electronic Discrete Variable Automatic Computer(EDVAC) pada tahun 1945 dengan sebuh memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur von Neumann tersebut.

Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.

Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode-biner yang berbeda yang disebut “bahasa mesin” (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dn silinder magnetik untuk penyimpanan data.