Senin, 26 Maret 2012

Diagram Entity-Relationship 

(Persewaan PlayStation)

Entity relationship adalah suatu cara memodelkan suatu data ditingkat konseptual dalam perancangan basis data. Model Entity-Relationship merupakan alat modeling data yang populer dan banyak digunakan oleh para perancang database.  Data model merupakan representasi abstrak dari data tentang entitas, kejadian, aktifitas dan asosiasinya dalam suatu organisasi.  Tujuan dari pemodelan data adalah untuk menyajikan data dan menjadikan data mudah dimengerti, sehingga mempermudah perancangan dan pengaksesan database.
Berdasarkan tipe konsepnya, data model dibagi menjadi dua kategori yaitu Conceptual (High Level) Data Model dan Physical (Low Level) Data Model.  Conceptual Data Model merupakan konsep yang berkaitan dengan pandangan pemakai terhadap data, sedangkan Physical Data Model merupakan konsep yang menerangkan detail dari bagaimana data di simpan di dalam komputer.  Dalam pandangan ini model Entity-Relationship digunakan untuk menggambarkan Conceptual Data Model (E-R).

Model Entity-Relationship

Model E-R diperkenalkan pertama kali oleh P.P. Chen pada tahun 1976, walau model ini sudah ketinggalan jaman akan tetapi dalam penerapannya ER masih merupakan model yang efektif dalam upaya menggambarkan persepsi dari pemakai karena berisi objek-objek dasar yang disebut sebagai entitas dan hubungan antar entitas-entitas yang disebut relationship.  Adapun model E-R dinotasikan sebagai berikut :












*Weak Entity
Suatu entity yang mungkin memiliki suatu atribut yang bukan miliknya, dimana keberadaannya tergantung dari entity lain.  Entity lain tersebut dikatakan sebagai Identifying Owner dan relationshipnya dinamakan Identifying Relationship. Weak entity selalu memiliki Total Participation Constraint dengan Identifying Owner.


Derajat Relationship

Terdapat 3 macam derajat dari relationship, yaitu :
  • Unary Degree (derajat satu),
             Bila satu entity mempunyai relasi terhadap dirinya sendiri.  Digambarkan sebagai berikut :
  • Binary degree (derajat dua) dan
Bila satu relasi menghubugkan dua entity, digambarkan sebagai berikut :

  • Ternary degree (derajat tiga)
Bila satu entity menghubungkan lebih dari dua entity. Digambarkan sebagai berikut :

Cardinality Ratio Constraint

Berfungsi untuk menjelaskan jumlah hubungan/relationship dari entity-entity yang berpastisipasi.  Terdapat 3 macam CRC yaitu :
  • Hubungan 1 : 1 (One to One Relationship)
Yaitu suatu entity yang berada di himpunan A berhubungan dengan paling banyak dengan satu entity pada himpunan B, dan entity pada himpunan B berhubungan dengan paling banyak satu entity di himpunan A, digambarkan sebagai :
  • Hubungan 1 : M (One to Many/Many to One Relationship)
Yaitu suatu entity pada himpunan A dapat berhubungan dengan sejumlah entity pada himpunan B, tetapi entity yang berada pada himpunan B hanya dapat berhubungan dengan hanya satu entity dari himpunan A atau sebaliknya.  Digambarkan sebagai :
      
  • Hubungan M : N (Many to Many Relationship)
             Yaitu suatu entity yang berada di himpunan A dapat berhubungan dengan banyak entity di himpunan B, dan sebaliknya. Digambarkan sebagai :


Entity Relationship (E-R) Diagram

 Entity-Relationship Diagram melengkapi penggambaran grafik dari struktur logika, dengan kata lain E-R diagram menggambarkan arti dari aspek data seperti bagaimana entity-entity, atribute-atribute dan relationship-relationship disajikan.  Langkah-langkah pembuatan E-R Diagram :
1.Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
    2.Menentukan atribut-atribut dari setiap entity.
      3.Menentukan atribut primary key dari setiap entity.
        4.Menentukan relationship antar entity.
          5.Menentukan atribut-atribut dari setiap relationship (jika ada).
            6.Menentukan Cardinality Ratio.
              7.Menentukan Participation Constraint



              Contoh ERD Persewaan Playstation.
              Tahap Pembuatan Entity Relationship Diagram

              1. Mengidentifikasikan entity-entity yang ada.
              -entity-entity : PLAYSTATION, GEN_PLAYSTATION, CUSTOMER.


              2. Menentukan atribut-atribut dari setiap entity. 
              Entity
              Atribut
              Playstation
              jml_ps, memori_ps
              Gen_ Playstation
              jenis, harga­_sewa
              Customer
              no_id, nama, alamat


              3. Menentukan primary key dari setiap entity.
              Entity
              Atribut
              Playstation
              kode_ps, jml_ps, memori_ps
              Gen_ Playstation
              jenis, harga­_sewa
              Customer
              no_id, nama, alamat








              4. Menentukan relationship antar entity.
              Entity
              Relationship
              Entity
              Playstation
              Pengelompokkan
              Gen_ Playstation
              Customer
              Sewa
              Playstation






              5. Menentukan atribut-atribut dari setiap relationship.
              Relationship
              Atribut
              Pengelompokkan
              -
              Sewa
              Tgl_sewa, total_harga­, total_pinjam, tgl_kembali, denda






              6. Menentukan Cardinality Rasio.
              Entity
              Relationship
              Entity
              Cardinality Rasio
              Playstation
              Pengelompokkan
              Gen_Playstation
              N:1
              Customer
              Sewa
              Playstation
              N:M


              Entity Relationship Diagram Persewaan Slaystation.



              Minggu, 25 Maret 2012

              Desain Database

              Desain DataBase

              Database yang dirancang menyediakan akses untuk up-to-date informasi yang akurat. Karena desain yang benar adalah penting untuk mencapai tujuan dalam bekerja dengan database, investasi waktu dibutuhkan untuk mempelajari prinsip-prinsip desain yang masuk akal. Pada akhirnya, kamu akan jauh lebih mungkin berakhir dengan sebuah database yang memenuhi kebutuhan mu dan dapat dengan mudah mengakomodasi perubahan.



              APA DESAIN DATABASE YANG BAIK?
              Prinsip-prinsip tertentu memandu proses desain database. Prinsip pertama adalah bahwa informasi duplikat (disebut juga data yang berlebihan) adalah buruk, karena limbah ruang dan meningkatkan kemungkinan kesalahan dan inkonsistensi. Prinsip kedua adalah bahwa kebenaran dan kelengkapan informasi adalah penting. Jika database berisi informasi yang salah, setiap laporan yang menarik informasi dari database juga akan berisi informasi yang salah. Akibatnya, setiap keputusan yang Anda buat yang didasarkan pada laporan-laporan tersebut kemudian akan salah informasi.

              Sebuah desain database yang baik, 
              • Membagi informasi Anda ke subjek berbasis tabel untuk mengurangi data yang berlebihan.
              • Menyediakan akses dengan informasi yang diperlukan untuk bergabung dengan informasi dalam tabel bersama-sama sesuai kebutuhan.
              • Membantu mendukung dan memastikan keakuratan dan integritas informasi Anda.
              • Mengakomodasi data pengolahan dan pelaporan kebutuhan.

              Langkah-langkah yang baik dan benar untuk mendesain database :

              1. Analisis Persyaratan: Langkah pertama dalam mendesain sebuah aplikasi database adalah memahami dan mengetahui data yang harus disimpan di dalam database, aplikasi apa yang harus dibangun diatasnya, dan jenis operasi apa yang lebih banyak digunakan, dan subjek untuk melakukan persyaratan yang ada. Dengan kata lain, kita harus tahu apa yang diinginkan pengguna database tersebut. Biasanya ini adalah sebuah proses informal yang melibatkan partisipasi kelompok pengguna, studi tentang lingkungan pengoprasian saat ini dan bagaimana perkiraan perubahan lingkungan tersebut, analisis dokumen yang ada dalam suatu aplikasi yang diharapkan akan diganti atau dilengkapi oleh database, dan seterusnya. Banyak metodologi yang diusulkan untuk menyusun dan menampilkan informasi yang dikumpulkan pada langkah tersebut. Beberapa alat otomatis pun telah dikembangkan untuk mendukung proses ini.

                2. Desain Database Konseptual: Informasi dikumpulkan pada saat analisis persyaratan digunakan untuk mengembangkan deskripsi data tingkat tinggi yang harus disimpan dalam database, bersama dengan batasan yang telah diketahui untuk menetapkan penyimpanan data tersebut. Langkah ini sering dilakukan dengan menggunakan model ER. Model ER adalah salah satu dari model data tingkat tinggi, atau semantik, yang digunakan dalam desain database. Tujuannya adalah menciptakan gambaran sederhana tentang data yang mirip dengan pemikiran pengguna dan pengembang mengenai data tersebut (orang dan proses yang dinyatakan dalam data tersebut). Hal tersebut menfasilitasi diskusi di antara orang-orang yang terlibat dalam proses desain, bahkan mereka yang tidak mempunyai latar belakang teknis. Pada saat yang sama, desain awal harus akurat untuk membantu ketapatan translasi ke dalam sebuah model data yang didukung oleh sistem database komersial (yang dalam prakteknya berarti model relasional).

                3. Desain Database Logika: Kita harus memilih sebuah DBMS untuk mengimplementasikan desain database kita, dan mengubah konsep desain database menjadi sebuah skema database dalam model data dari DBMS terpilih. Kitah hanya akan memperhatikan DBMS relasional, dan dengan demikian tugas desain logika adalah mengubah skema ER menjadi skema database relasional.

                4. Perbaikan Skema: Langkah keempat dalam desain database adalah analisis sekumpulan relasi dalam skema database relasional untuk mengidentifikasi permasalahan yang muncul, dan memperbaikinya. Berbeda dengan analisis persyaratan dan langkah-langkah desain konseptual, yang secara esensial bersifat subjektif, perbaikan skema dapat dipandu oleh beberapa teori yang kuat dan bagus.  Langkah keempat ini, para akademis IT lebih sering disebut dengan Normalisasi.

                5.  Desain Database Fisik: pada langkah ini, kita juga mempertimbangkan beban kerja umum yang diharapkan dapat didukung oleh database kita dan memperbaiki deswain database di masa mendatang untuk memastikan terpenuhinya kriteria performa yang diinginkan. Langkah ini hanya mencakup pembuatan indeks pada beberapa tabe dan mengelompokkan beberapa tabel, atau bahkan melibatkan desain ulang yang substansial terhadap beberapa bagian skema database yang didapat dari langkah pertama desain database. 

                6.  Desain Aplikasi dan Keamanan: Semua proyek perangkat lunak yang melibatkan sebuah DBMS harus mempertimbangkan aspek aplikasi yang berada di luar database itu sendiri. Metodologi desain seperti UML mencoba menekankan desain perangkat lunak dan siklus pengembangan yang lengkap. Secara singkat, kita harus bisa mengidentifikasi entitas (contohnya pengguna, grup-grup pengguna, dan bagian-bagian lain) dan proses-proses yang terlibat dalam aplikasi. Kita harus menggambarkan peran setiap entitas dalam setiap proses yang akan direfleksikan pada beberapa tugas aplikasi, sebagai bagian dari aliran kerja lengkap untuk tugas tersebut. Untuk tiap peran, kita harus bisa mengidentifikasi bagian database yang harus bisa diakses dan yang tidak bisa diakses, dan kita harus bisa mengambil langkah untuk memastikan bahwa aturan akses terseut dilakukan. DBMS memberikan beberapa mekanisme untuk membantu langkah tersebut.

              Jumat, 09 Maret 2012

              Kelebihan dan Kekurangan MySQL, ORACLE, Microsoft SQL (Ms SQL)

              ORACLE
              Kekurangan :
              • Merupakan software DMBS yang paling mahal, paling rumit, dan paling sulit untuk dipelajari.
              • Membutuhkan spesifikasi hardware yang tinggi untuk dapat menjalankan software DMBS Oracle supaya berjalan dengan stabil.
              • Hanya diperuntukan bagi perusahaan berukuran besar, dan tidak cocok untuk perusahaan kecil maupun menengah.
              Kelebihan :
              • Merupakan software DBMS yang handal dan memiliki kemampuan yang tinggi.
              • Dapat menangani jumlah data dalam ukuran yang besar.
              • Dapat mengolah data dalam ukuran besar dan mengolahnya dengan cepat sehingga didapatkan informasi yang akurat sesuai permintaan pengguna/user.
              • Memiliki kemampuan akan fleksibilitas dan skalabilitas yang dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus-menerus bertambah besar.
              • Memiliki kemampuan Technology Cluster Server, dimana jika terdapat lebih dari satu unit server misalnya 100 unit server maka Oracle dapat menjadikan 100 unit server tersebut aktif bekerja bersama sebagai 100 aktif server.
              • Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator.
              • Bisa berjalan pada lebih dari satu platform system operasi.

              MYSQL
              Kekurangan :
              • Tidak cocok untuk menangani data dengan jumlah yang besar, baik untuk menyimpan data maupun untuk memproses data.
              • Memiliki keterbatasan kemampuan kinerja pada server ketika data yang disimpan telah melebihi batas maksimal kemampuan daya tampung server karena tidak menerapkan konsep Technology Cluster Server.
              Kelebihan :
              • Merupakan DBMS yang gratis / open source berlisensi GPL (generic public license).
              • Cocok untuk perusahaan dengan skala yang kecil.
              • Tidak membutuhkan spesifikasi hardware yang tinggi untuk bisa menjalankan MWSQL ini bahkan dengan spesifikasi hardware yang minimal sekalipun.
              • Bisa berjalan pada lebih dari satu platform system operasi, misalnya windows, linux, FreeBSD, Solaris, dan masih banyak lagi.
              • Cepat dalam menjalankan perintah SQL / Structured Query Languagemisalnya ketika akan menyeleksi suatu data atau memasukkan suatu data karena MYSQL merupakan turunan dari konsep SQL.Multi user, artinya database dapat digunakan oleh beberapa user dalam waktu bersamaan tanpa mengalami masalah atau konflik.
              • MYSQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
              • MYSQL memiliki beberapa lapisan keamanan, seperti subnetmask, namahost, dan izin akses user dengan system perijinan yang mendetail serta sandi/password terenkripsi.
              • MYSQL dapat melakukan koneksi dengan computer client menggunakan Protokol TCP/IP, Unix Socket (UNIX), atau Named Pipes (windows NT).
              • MYSQL memiliki antar muka / interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
              • Command and function, MYSQL memiliki fungsi dan operator secara penuh yang mendukung perintah select dan where dalam query.
              • Structure Table, MYSQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan DBMS lainnya.

              Microsoft SQL (MS-SQL)
              Kekurangan :
              • Hanya dapat diimpelementasikan pada 1 unit server, jika terdapat tambahan server maka hanya akan berfungsi sebagai pasif / standby server (tidak memiliki kemampuan Technology Cluster Server seperti halnya pada DMBS Oracle).
              • Hanya bisa berjalan pada satu platform system operasi yaitu Microsoft Windows.
              • Merupakan software berlisensi dan berharga mahal untuk perusahaan skala kecil dan menengah.

              Kelebihan :
              • Cocok untuk perusahaan dengan skala kecil, menengah, dan besar sehingga mampu untuk mengolah data dengan jumlah yang besar.
              • Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator.
              • Untuk diterapkan pada pembangunan suatu program aplikasi, akan mudah dalam melakukan koneksi dengan computer client yang pembangunan aplikasinya menggunakan software yang sama platform dengan MS-SQL, misalnya Microsoft Visual Basic.
              • Memiliki tingkat pengamanan / security data yang baik.
              • Memiliki kemampuan untuk back-up data, rollback data, dan recovery data.
              • Memiliki kemampuan untuk membuat database mirroring dan clustering.


              Source:
              MySQL     - http://www.mysql.com/about/
                               - http://www.kaskus.us/showthread.php?p=293852974
                               - http://yanazmi.blogspot.com/2009/05/kelebihan-mysql.html

              ORACLE   - http://risnotes.com/2011/11/oracle-database/

              Ms SQL     - http://aiskahendra.wordpress.com/2011/08/22/kelebihan-dan-kekurangan-
                                   teknologi-microsoft/