-->

Jumat, 13 April 2012

Desain Database

Database : Komponen dasar dari sistem informasi yang kegunaannya di pandang dari perspektif organisasi yang lebih besar.
Proses perancangan database merupakan bagian dari siklus hidup database sebagai mikro lifecycle.

Perancangan Database
database yang digunakan single user atau beberapa user saja perancangan database tidak sulit,namun apabila dalam jumlah yang besar (contoh:industri,hotel,travel,dll) perancangan database menjadi sangat kompleks.
Oleh  karena itu paara pemakai database mengharapkan penggunaan database sedemikian rupa sehingga sistem dapat memenuhi kebutuhan user.

Tujuan Perancangan Database

  • untuk memenuhi informasi kebutuhan user
  • memudahkan pengertian struktur informasi
  • mendukung kebutuhan-kebutuhan pemrosesan dan beberapa objek penampilan.
Aktifitas yang berhubungan dengan database sebagai mikro lifecycle

  • Database Planning :bagaimana langkah-langkah siklus hidup bisa efisien
  • system definition : ruang lingkup database
  • design : perancangan sistem database secara konseptual,logical,dan fisik.
  • implementation : proses penulisan definisi database secara konseptual,eksternal,internal,pembuatan file database yg kosong,implementasi software
  • loading atau data convertion : database ditempatkan baik secara memanggil maupun merubah format file pada sistem database
  • application convertion : beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke sistem yg baru.
  • testing dan validation : sistem yang baru di tes dan baru di uji kebenarannya.
  • operation : operasi-operasi pada sistem database.
  • monitoring dan maintenance : selama operasi,sistem otomatis memaintenace dan memonitor database.


Langkah 3,4,5 merupakan bagian dari fase design dan implementasi pada sistem informasi yang besar.Pada umumnya database menjalankan aktifitas di atas.
Langkah 5 dan 6 tidak berlaku jika database aplikasi nya baru.


Proses perancangan database

  1. pengumpulan data dan analisis
  2. perancangan database secara konseptual
  3. pemilihan dbms
  4. perancangan db secara logika
  5. perancangan db secara fisik
  6. implementasi sistem database
Perancangan database

Perancangan skema konseptual
menguji kebutuhan data dari suatu database yang merupakan hasil fase 1,dan menghasilkan skema konseptual pada DBMS independen model data tingkat tinggi seperti EER(enhanced entity relationship)model.
Skema ini dihasilkan dengan menggabungkan bermacam-macam kebutuhan user dan secara langsung membuat skema database.

Perancangan Transaksi
Menguji aplikasi" database,dimana kebutuhannya telah dianalisa pada fase 1,dan menghasilkan rincian transaksi ini.
Kegunaan fase ini di proses secara paralel bersama fase perancangan skema konseptual adalah untuk merancang karateristik dari transaksi databaseyang diketahui pada DBMS independen.

Pemilihan DBMS
ditentukan oleh beberapa faktor Teknik,ekonomi,politik organisasi.

contoh faktor teknik :
Keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS,struktur penyimpanan,dan jalur akses yang mendukung pemakai , DBMS , dll.

Faktor ekonomi dan organisasi :

  1. Struktur data
  2. personal yg terbiasa pada suatu sistem
  3. terserdianya layanan penjual
Perancangan database secara logika 
membuat skema konseptual dan skema eksternal pada model dari DBMS yang terpilih.Skema komseptual di transformasikan dari model data tingkat tinggi kedalam model data DBMS yg terpilih.

Perancangan database secara fisik
Pemilihan struktur penyimpanan dan jalur akses pada file untuk mencapai penampilan terbaik.
beberapa petunjuk dalam pemilihan perancangan secara fisik :


-Response Time
waktu yang telah berlalu dari suatu transaksi database yang di ajukan untuk menjalankan suatu tanggapan.
-Space Utility
Jumlah ruang penyimpanan yang digunakan oleh file database dan struktur jalur akses.
-Transaction throughput
Rata-rata jumlah transaksi permenit yang diproses oleh sistem database,dan merupakan parameter kritis dari sistem transaksi.

Pemetaan sistem independen
Pemetaan ke sistem DBMS dengan tidak melihat hal-hal yang khusus.

Penyesuaian skema ke DBMS secara spesifik
Mengatur skema yang di atur langkah satu untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data DBMS yang terpilih.
hasil dari fase ini adalah perintah DDL dalam bahasa DBMS.

Implementasi Sistem Database
Setelah perancangan logika dan fisik lengkap,kita dapat melaksanakan sistem database.Perintah dalam DDL dan SDL(storage definition language)dari DBMS yang dipilih,dihimpun dan digunakan untuk membuat skema database dan file-file.

Teknik Normalisasi
Aturan Normalisasi :

Normalisasi pertama
  • Mendefinisikan atribut kunci
  • Tidak ada grup berulang
  • Semua atribut bergantung pada atribut kunci
Normalisasi kedua
  • Sudah memenuhi normalisasi kesatu
  • sudah tidak ada ketergantungan parsial
Normalisasi Ketiga
  • Sudah berada pada kotak normal kedua
  • Tidak ada ketergantungan transitif
Desain Database terdistribusi
Desain dalam organisasi dapat dipandang secara 3 dimensi :
  1. Tingkat Sharing
  •  Tidak ada sharing : aplikasi dan data dijalankan dari setiap lokasi,tidak ada sharing program  
  • Sharing Data         : Semua program disalin dari semua lokasi,tetapi program data tidak disalin.
  • Sharing data dan program : User dapat meminta data atau program dari lokasi lain
    2.Jenis Pola akses

  • Static   : Pola akses tidak berubah bersamaan jaman
  • Dinamic : Pola akses berubah mengikuti jaman
   3.Tingkat Pengetahuan Pada Jenis Pola akses
  • Informasi Lengkap : Tidak ada penyimpanan signifikan dari prediksi tentang pola user
  • Informasi Sebagian : Ada penyimpanan Dari prediksi
Strategi Desain alternatif
  • Top Down
  • Bottom up
Distribusi Fragmentasi,Alokasi,dan Replikasi mempunyai Tujuan
  1. Referensi Lokalitas
  2. Meningkatkan reabilitas
  3. Meningkatkan unjuk kerja
  4. Keseimbangan Penyimpanan dan biaya
Fragmentasi

Alasan yang menyebabkan suatu data dalam tabel dibagi bagi menjadi fragmen data :
  1. Penggunaan
  2. Efisiensi
  3. Paralel
  4. Keamanan
Kelemahan Fragmentasi
  • Menurunnya Unjuk Kerja
  • Integritas Lebih sulit
Terdapat 2 Fragmentasi Data :
  1. Horizontal
  2. Vertikal

Contoh Horizontal
PROJ
PNOPNAMEBUDGETLOC
P1Instrumentation150,000Montreal
P2Database Development135,000New York
P3CAD/CAM250,000New York
P4Maintenance310,000Paris
PROJ1 : project dengan budget < 200,000
PROJ2 : project dengan budget > atau = 200,000

PROJ1
PNOPNAMEBUDGETLOC
P1Instrumentation150,000Montreal
P2Database Development135,000New York

PROJ2
PNOPNAMEBUDGETLOC
P3CAD/CAM250,000New York
P4Maintenance310,000Paris

Contoh Vertikal



PROJ1
PNOBUDGET
P1150,000
P2135,000
P3250,000
P4310,000

PROJ2
PNOPNAMELOC
P1InstrumentationMontreal
P2Database DevelopmentNew York
P3CAD/CAMNew York
P4MaintenanceParis

Aturan Fragmentasi :

  1. Completeness
  2. Reconstruction
  3. Disjointness

Selasa, 13 Maret 2012

Perbedaan


ORACLE

Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).
Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.

Kelebihan Dan Kekurangan Oracle:
Kelebihan : Bisa memproses data yang lumayan besar dengan cepat.
Kekurangan : Harga yang sangat mahal untuk sebuah database.

MY SQL

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database manajemen 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.

MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.

Sebuah sistem manajemen basisdata relasional atau dalam bahasa Inggrisnya dikenal sebagai relational database management system (RDBMS) adalah sebuah program komputer (atau secara lebih tipikal adalah seperangkat program komputer) yang didisain untuk mengatur/memanajemen sebuah basisdata sebagai sekumpulan data yang disimpan secara terstruktur, dan melakukan operasi-operasi atas data atas permintaan penggunanya. Contoh penggunaan DBMS ada banyak sekali dan dalam berbagai bidang kerja, misalnya akuntansi, manajemen sumber daya manusia, dan lain sebagainya. Meskipun pada awalnya DBMS hanya dimiliki oleh perusahaan-perusahaan berskala besar yang memiliki perangkat komputer yang sesuai dengan spesifikasi standar yang dibutuhkan (pada saat itu standar yang diminta dapat dikatakan sangat tinggi) untuk mendukung jumlah data yang besar, saat ini implementasinya sudah sangat banyak dan adaptatif dengan kebutuhan spesifikasi data yang rasional sehinggal dapat dimiliki dan diimplementasikan oleh segala kalangan sebagai bagian dari investasi perusahaan.

Multi-user adalah istilah dalam sistem operasi atau perangkat lunak aplikasi yang memperbolehkan akses oleh beberapa pengguna dalam waktu bersamaan ke sistem operasi atau aplikasi tersebut. Istilah lawannya yaitu single-user mengacu kepada suatu sistem operasi yang hanya bisa digunakan oleh satu pengguna setiap saat.

Selain itu MySQL juga memiliki beberapa keistimewaan, antara lain :
• Portability : MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
• Open Source : MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
• Multiuser : MySQL dapat digunakan oleh beberapa user 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.
• Column types : MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain
• Command dan functions : MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query.
• Security : MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
• Scalability dan limits : MySQL mampu menangani database dalam skala besar, dengan jumlah 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.

• Connectivity : MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
• Localisation : MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk didalamnya.
• Interface : MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
• Clients dan tools : MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.
• Struktur table : MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.

Kelebihan Dan Kekurangan My SQL:
Kelebihan : Pemrosesan data yang sangat cepat, open source.
Kekurangan : Data yang bertambah ukurannya akan mengalami kelambatan proses, jadi harus ada database management.


SQL SERVER

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri 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.

Dengan menerapkan prinsip database server, seluruh pengolahan data mulai dari pencarian, update, penghapusan, penambahan, sampai pada query yang komplek dilakukan di komputer server, sehingga selain kredibilitas data yang terjaga juga ada pembagian beban kerja antara komputer client dan komputer server data.
Sehingga fungsi komputer client hanya sebagai media input dan output data saja, selebihnya ditangani oleh server dengan memakai bahasa query terstruktur atau dikenal dengan Structured Query Language (SQL), bahasa inilah yang digunakan oleh komputer client untuk berkomunikasi dengan komputer server data mulai dari permintaan data, update, menghapus, dan lain sebagainya.

Kelebihan Dan Kekurangan SQL Server:
Kelebihan : SQL Server memegang bagian atas kinerja TPC-C dan harga / kinerja hasil.
Kekurangan : Biaya yang akan diperlukan untuk pengoperasian cukup besar.


PERBANDINGAN ANTARA ORACLE, MY SQL, DAN SQL SERVER

Perbandingan MySQL dengan SQL Server:
Jika kita sering membuat program database dengan perintah yang kita simpan didalam database seperti stored procedure, function, atau trigger kadang terdapat perbedaan bahasa pemrogramman antara di MySQL dengan SQL Server. Berikut kita akan membahas beberapa perbedaan antara aplikasi database tersebut.
Untuk parameter di dalam SQL Server selalu menggunakan awalan ‘@’, sedangkan pada MySQL kita dapat mengidentifikasikan parameter dengan karakter apapun dan kita bahkan dapat membuat parameter local tanpa mendeklarasikannya terlebih dahulu, yaitu dengan menambahkan karakter “@” pada awalan parameter yang dibuat.
Pada SQL Server kita dapat mengetikan perintah ‘DECLARE v1 [datatype], v2 [datatype], v3 [datatype]’ tetapi pada MySQL kita harus mengetikan perintah
‘DECLARE v1 [datatype]; DECLARE v2 [datatype]; DECLARE v3 [datatype]’
SQL Server tidak perlu mengetikan perintah ‘BEGIN … END’ untuk batasan sebuah Stored Procedure atau Function. Tetapi dalam MySQL kita perlu mengetikan perintah ‘BEGIN … END’ untuk Stored Procedure atau Function yang memiliki lebih dari satu baris perintah.
Contoh:
DELIMITER$
CREATE PROCEDURE proc1(id int)
BEGIN
[statement 1];
[statement 2];
END$
DELIMITER;
Pada SQL Server kita tidak perlu mengetikan karakter ‘;’ (titik koma) pada setiap akhir perintah. Tetapi pada MySQL membutuhkan karakter ‘;’ pada setiap akhir perintah, karena MySQL merupakan aplikasi console yang membutuhkan pembatas untuk setiap perintah yang dituliskan menjadi pembatas dengan perintah yang lainnya dalam satu Procedure atau Function.
SQL Server memiliki fungsi ‘SET NOCOUNT’ dan ‘@@ROWCOUNT’ untuk memperoleh jumlah row hasil execute. Sedangkan pada MySQL tidak memiliki perintah untuk ‘SET NOCOUNT’, tetapi memiliki fungsi ‘row_count()’ untuk mendapatkan jumlah row hasil execute dari query delete, insert, atau update, ‘found_rows()’ untuk mendapatakan jumlah row hasil execute dari query select.
SQL Server memiliki perintah perulangan ‘WHILE … BEGIN’. Sedangkan MySQL memiliki perintah perulangan ‘WHILE … DO’.
SQL Server dapat menggunakan perintah ‘SELECT’ atau ‘SET’ untuk mengisi data ke variable.
Contoh:
DECLARE @v1 int, @v2 int
SELECT @v1 = 10, @v2 = 20

Sedangkan MySQL hanya dapat menggunakan perintah ‘SET’ untuk mengisi data ke variable.

Contoh:
DECLARE v1 int;
DECLARE v2 int;
SET v1 = 10;
SET v2 = 20
;