Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
PENGERTIAN BASIS DATA Basis : Data : Basis Data : dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. Kumpulan file / table yang saling berelasi (berhubungan) yang disimpan dalam media penyimpanan eletronik, atau koleksi terpadu dari data yang saling berkaitan yang dirancang untuk memenuhi kebutuhan informasi suatu enterprise (dunia usaha). Menurut James Martin, Basis Data adalah kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 1 PENGERTIAN INFORMASI Informasi adalah hasil pemrosesan, manipulasi dan pengorganisasian/penataan dari sekelompok data di dalam basis data, yang mempunyai nilai pengetahuan (knowledge) bagi penggunanya. Keterangan, Data yang dikelola dengan baik, bisa menghasilkan suatu informasi, tetapi jika data dibiarkan berdiri sendiri tanpa pengolahan, seringkali tidak berarti dan tidak memberikan tambahan pengetahuan. 2 TOPOLOGI PENYEDIAAN BASIS DATA Database Multiple user and Multiple database Standalone user and Standalone database Database Database 3 DATA VS INFORMASI Query Query Information [System] Basis Data Query+Data Information Basis data dapat mendukung sistem informasi yang berbentuk cukup sederhana, seperti direktori / daftar telepon. 4 REPRESENTASI DATA ……… ……… NPM Jurusan Nama Nama Dosen ……… Mahasiswa ……… 5 LEMARI ARSIP VS BASIS DATA Matakuliah Mahasiswa Dosen Nilai Lemari arsip di sebuah ruang Table Matakuliah Table Dosen Table Mahasiswa Table Nilai HARD DISK (Basia Data NilaiMahasiswa) Basis Data di sebuah hardisk 6 HIRARKI DATA Berkas / File / Table adalah kumpulan record sejenis yang mempunyai panjang atribut / field sama, namun berbeda isi datanya. Database File / Berkas / Table Rekaman / Record / Baris …………. Elemen Data / Field / Atribut …… …….. …….. …………. Rekaman / Record / Baris adalah gabungan sejumlah elemen data yang saling terkait. Elemen Data / Field / Atribut adalah satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. 7 STRUKTUR TABLE Field (Kolom) No NPM Nama 1 Record (Baris) 2 3 n Setiap field mempunyai tipe data sama atau berbeda dari field lainnya. 8 DATA PADA SEBUAH OBJECT Tentukan ATTRIBUTE - Merk - Jenis - Bahan - Ukuran - Warna - Harga Buat TABLE dalam Basis Data (Database) Merk No ……… Jenis Bahan Merk Jenis Bahan Ukuran Warna Harga 1 Puma Sport Kulit 40 Putih $ 360 2 Carvil Kantor Kulit 41 Coklat $ 200 3 Adidas Sport Canvas 39 Merah $ 420 4 Lotto Sport Kulit 40 Putih $ 325 5 Adidas Sport Canvas 42 Merah $ 420 TABLE SEPATU Keterangan : Object seringkali dinamakan sebagai *ENTITY*, kelompok data yang merepresentasikan object tersebut, dinamakan *ATTRIBUTE* 9 CONTOH INFORMASI Contoh informasi yang dapat dihasilkan dari table SEPATU pada halaman sebelumnya, diantaranya : - Ada 4 merk sepatu yang tercatat di dalam basis data. - Ada 2 merk sepatu berbeda yang mempunyai ukuran yang persis sama. - Sepatu merk Carvil, adalah sepatu termurah pada daftar tersebut. - dan lain sebagainya (sebutkan!) Pertimbangkan informasi berikut : Tidak ada sepatu berwarna hitam, hijau, abu-abu, jingga, ungu, biru, maroon, kuning, perak metalik, belang merah-putih, belang coklat-hitam, atau belang merah-coklat pada data yang ada dalam table SEPATU. Efek apa yang anda rasakan? 10 KOMPONEN BASIS DATA 1) Perangkat keras (hardware) Basis Data PC Basis Data X: Table A Table B Table C Table D Table E Dll Basis Data Y: Table J Table K Table L Table M Table N Dll 3) Basis data (database) 4) Sistem (aplikasi/perangkat lunak) PC pengelola basis data (DBMS) 5) Pemakai (user) PC Database management system (DBMS) 2) Sistem operasi (operating system) 6) Aplikasi (perangkat lunak) lain (bersifat optional) 11 PENGGUNA DATABASE Database Manager a. Interaksi dengan manager file b. Integritas c. Keamanan d. Bakcup dan recovery Database Administrator a. Mendefinisikan pola struktur database. b. Mendefinisikan struktur penyimpanan dan metode akses. c. Mampu memodifikasi pola dan organisasi phisik. d. Memberikan kekuasaan pada user untuk mengakses data. e. Menspesifikasikan keharusan integritas data. Database User Ada 4 macam pemakai DB, berbeda berdasarkan keperluan dan cara akses : 1. Programmer Aplikasi, 2. Casual User (user mahir), 3. User Umum (end user), dan 4. User khusus (specialized user). 12 CONTOH APLIKASI DENGAN BASIS DATA 13 “LOGIN PAGE” DENGAN BASIS DATA 14 DATABASE MANAGEMENT SYSTEM DBMS adalah koleksi terpadu dari program-program (sistem perangkat lunak) yang digunakan untuk mendefinisikan, menciptakan, mengakses dan merawat database (basis data). Tujuannya adalah menyediakan lingkungan yang mudah dan aman untuk penggunaan dan perawatan database. Contoh daripada DBMS adalah MS- Access, MS SQL-Server, MySql, DB2 dan Oracle 15 PEMANFAATAN BASIS DATA (DATABASE) Bidang Fungsional : 1. Kepegawaian 2. Pergudangan (inventory) 3. Akuntansi 4. Reservasi 5. Layanan Pelanggan, dll Bentuk Perusahan : 1. Perbankan 2. Rumah Sakit 3. Produsen Barang 4. Sekolah 5. Telekomunikasi, dll 16 KEUNTUNGAN BASIS DATA (DATABASE) 1). Mengurangi redudansi data 2). Integritas Data 3). Menghindari inkonsisten data 4). Penggunaan data bersama 5). Standarisasi data 6). Jaminan Keamanan Data (Security Data) 7). Menyeimbangkan kebutuhan data 17 KERUGIAN BASIS DATA (DATABASE) 1). Diperlukan hardware (perangkat keras tambahan) : CPU yang lebih kuat, terminal yang lebih banyak, alat komunikasi. 2). Biaya Performance yang lebih besar : listrik, personil yang lebih tinggi klasifikasinya, biaya telekomunikasi antar lokasi. 3). Rawannya keberhasilan operasi : gangguan listrik, dan komunikasi. 4). Sistem kelihatan lebih kompleks : banyaknya aspek yang harus diperhatikan. 18 OPERASI DASAR BASIS DATA 1). Pembuatan basis data baru (create database) 2). Penghapusan basis data (drop database) 3). Pembuatan table baru ke suatu basis data (create table) 4). Penghapusan table dari suatu basis data (drop table) 5). Penambahan/pengisian data baru di sebuah basis data (insert) 6). Pengambilan data dari sebuah table (retrieve / search) 7). Pengubahan data dalam sebuah table (update) 8). Penghapusan data dari sebuah table (delete) 19 CONTOH IMPLEMENTASI DATABASE Penjadwalan mengajar dosen 20 ABSTRAKSI DATA 21 USER’S VIEW Level Pandangan Pemakai (View Level) Level abstraksi tertinggi yang menggambarkan hanya satu bagian dari keseluruhan database, pada level ini hanya sebagian saja yang dilihat dan dipakai. Hal ini disebabkan beberapa pemakai database tidak membutuhkan semua isi database. 22 CONCEPTUAL VIEW Level Konseptual Level abstraksi data level lebih rendah dibandingkan level pandangan pemakai, yang menggambarkan data apa (what) yang disimpan dalam basis data, dan hubungan relasi yang terjadi antar data. Level ini digunakan oleh database administrator, yang memutuskan informasi apa yang akan dipelihara dalam satu database. 23 PHYSICAL VIEW Level Fisik Level abstraksi paling rendah, menggambarkan bagaimana (how) data disimpan dalam kondisi sebenarnya. Level ini digunakan oleh programmer, yang digunakan untuk melakukan pemrograman dengan mengunakan database dan DBMS tertentu sesuai dengan kebutuhan end-user. 24 DATABASE LANGUAGE DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language 25 DATA DEFINITION LANGUAGE Data Definition Language (DDL) Struktur / skema basis data yang menggambarkan / mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus, dan dikompilasikan dalam kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary) yang merupakan suatu metadata (superdata), yaitu data yang mendiskripsikan data sesungguhnya. 26 CONTOH PERINTAH DDL CREATE - to create objects in the database ALTER - alters the structure of the database DROP - delete objects from the database TRUNCATE - remove all records from a table COMMENT - add comments to the data dictionary RENAME - rename an object Keterangan : DDL diatas diambil dari Oracle Database 27 DATA MANIPULATION LANGUAGE Data Manipulation Language (DML) DML berisi sekumpulan operasi manipulasi data pada basisdata, DML biasa disebut bahasa query yaitu bahasa untuk meminta informasi dari basisdata. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. 1). Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya. 2). Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. Contoh paket bahasa prosedural DML : dBase, FoxBase, sedang untuk Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example). 28 CONTOH PERINTAH DML SELECT - retrieve data from the a database INSERT - insert data into a table UPDATE - updates existing data within a table DELETE - deletes all records from a table, the space for the records remain MERGE - UPSERT operation (insert or update) CALL - call a PL/SQL or Java subprogram EXPLAIN PLAN - explain access path to data LOCK TABLE - control concurrency Keterangan : DML diatas diambil dari Oracle Database 29 DATA CONTROL LANGUAGE Data Control Language (DCL) DCL merupakan sub bahasa untuk mengendalikan struktur internal basisdata, DCL untuk menyesuaikan sistem agar supaya lebih efisian dan DCL sangat bergantung pada vendor Contoh Perintah DCL GRANT - gives user's access privileges to database REVOKE - withdraw access privileges given with the GRANT command Keterangan : DCL diatas diambil dari Oracle Database 30 ANOMALI PADA DML a. Anomali Peremajaan (Update). Anomali peremajaan terjadi apabila ada perubahan pada sejumlah data yang mubazir pada suatu table tetapi tidak seluruhnya diubah. b. Anomali Penyisipan (Insert). Anomali penyisipan terjadi apabila pada saat penambahan hendak dilakukan, ternyata ada elemen data yang masih kosong, dan elemen data tersebut justru menjadi kunci. c. Anomali Penghapusan (Delete). Anomali penghapusan terjadi apabila suatu baris (record) yang tidak terpakai dihapus, dan sebagai akibatya ada data lainnya yang hilang. 31 DBMS VS RDBMS Pada prinsipnya sebuah RDBMS adalah sebuah DBMS, dengan kelebihan adanya relational (relasi) antara obyek-obyek (entity/tabel) yang ada di Dalam database tersebut. RDBMS : Relational Data Base Management System Database relational terdiri dari kumpulan tabel yang menyimpan data spesifik. Ketentuan sebuah database adalah database relational mempengaruhi bagaimana data disimpan dan diproses. Konsep database relational sendiri berangkat dari aljabar relational, pertama kali dipopulerkan oleh “bapak” database relational, E.F. Codd. Sebagian besar atau bahkan hampir semua database yang digunakan dewasa ini adalah database relational. Data yang disimpan dapat diproses dengan menggunakan bahasa pemrograman yang dinamakan Structured Query Language, atau SQL. 32 MENYIMPAN DATA PADA DBMS EMPLOYEE * ID o NAME ADDRESS * ID o CITY * EMP_ID ID -----34 37 89 ID -----1 3 34 42 89 91 Name ------------Yadi Ar-Ruhio Dwi Probowo Anwar Habibi City -------------------------------Jl. Bunga Bakung 15 A, Bekasi Kampung Daun, Blok C4-20, Banten Jl. Aceh No. 14, Bandung Kompleks Pajak Jl.NPWP 12, Jakut Jl. Kenangan 1117-RT.3/RW.5 Jkt Jl. Atletik V No.3, Purwokerto EMP_ID -----34 89 34 38 37 55 Keterangan: karena tidak ada relasi, maka kolom EMP_ID yang ada pada tabel ADDRESS bisa dimasukkan data apa saja, termasuk emp_id yang sebetulnya tidak ada pada tabel Employee! 33 MENYIMPAN DATA PADA RDBMS EMPLOYEE * ID o NAME ADDRESS * ID o CITY * EMP_ID ID -----34 37 89 ID -----1 3 34 89 Name ------------Yadi Ar-Ruhio Dwi Probowo Anwar Habibi City -------------------------------Jl. Bunga Bakung 15 A, Bekasi Kampung Daun, Blok C4-20, Banten Jl. Aceh No. 14, Bandung Jl. Kenangan 1117-RT.3/RW.5 Jkt EMP_ID -----34 89 34 37 Keterangan: karena ADANYA relasi, maka kolom EMP_ID yang ada pada tabel ADDRESS hanya bisa menerima emp_id yang ada pada tabel Employee! 34 KEY DAN RELASI KEY PRIMER (PRIMARY KEY) o Key/Key Primer adalah atribut atau kombinasi dari minimal beberapa atribut yang mendefinisikan secara unik suatu kemunculan dari entitas. contoh : Kode barang adalah key primer untuk sebuah Barang o Key primer akan berpeluang besar menjadi dasar indeks primer untuk tabel basis data fisik, tetapi bisa juga tidak ATURAN KEY PRIMER o Setiap entitas harus punya key primer o Tidak ada bagian dari key primer yang boleh null atau tidak punya nilai o Nilainya tidak boleh berubah 35 CANDIDATE KEY Ketika lebih dari satu atribut yang mendefinisikan entitas secara unik, maka atribut semacam itu disebut key cadangan (candidates keys). contoh : SOCIAL_SECURITY# merupakan key cadangan untuk entitas PEGAWAI. COMPOSITE KEY Ketika lebih dari satu atribut yang diperlukan untuk menunjukkan suatu entitas, maka key primer tersebut disebut key campuran (composite keys) ALTERNATE KEY Atribut yang dapat di jadikan sebagai alternatif untuk menjadi primary key 36 S# SNAME KODE S1 RISKA 122 S2 SANDY 122 S3 SANTI 123 S4 IMEL 112 S5 TANIA 123 a) Candidate Key : S#, SNAME b) Primary Key : S# c) Alternatif Key : SNAME d) Foreign Key : KODE 37 KEY ASING(FOREIGN KEY) • • Key Asing (Foreign Key) digunakan untuk merelasikan entitas-entitas dalam sebuah sistem relasi. Key asing berupa satu atau lebih atribut yang domain (alternatif nilai)-nya terbatas baik pada : a. nilai-nilai yang muncul sebagai key primer untuk entitas-entitas yang dihubungkannya. • • b. atau secara keseluruhan,nilai-nilai yang tidak ada Hal ini merupakan aturan dari Integritas Referensial Key primer dari asosiasi umumnya berupa key campuran yang meliputi semua key asing 38 JENIS-JENIS KEY Candidate Key : field-field yang dapat di jadikan sebagai calon key (kunci) Primary Key : field yang di jadikan sebagai key (kunci) biasanya unique Alternate Key : field-field / key yang dapat di jadikan sebagai alternatif untuk menjadi primary key Composite Key : Key yang terbentuk lebih dari satu field Unique Key : field-field yang unik, dimana nilai datanya tidak ada yang sama dalam setiap recordnya Foreign Key : field yang menjadi tamu dalam sebuah table karena field tersebut dijadikan sebagai penghubung (relasi) dengan table yang lainnya 39 RELASI Adalah koneksi (hubungan) antara 2 atau lebih entitas. Diagram ER (Entity-Relationship) berisi kotak-kotak yang menyatakan entitas yang dihubungkan dengan garis-garis yang menunjukkan Relasi DERAJAT RELASI Ada 3 macam yaitu: 1. Relasi Satu ke satu Data dari entitas pertama berkorespondensi ke satu dan hanya satu data di entitas kedua dari kedua arah 2. Relasi Satu ke banyak Untuk setiap data di entitas pertama ada banyak data yang berhubungan di entitas kedua,tetapi untuk setiap data di entitas kedua ada satu dan hanya satu data di entitas pertama 3. Relasi Banyak ke banyak Untuk setiap data di entitas pertama ada banyak data yang berhubungan di entitas kedua,begitu juga sebaliknya Derajat relasi juga disebut Kardinalitas Relasi 40 NORMALISASI Normalisasi adalah proses efisiensi pengorganisasian data di dalam database. Dua tujuan normalisasi : 1. Menghilangkan data yang "redundant" (contoh:menyimpan data yang sama di dalam lebih dari satu tabel) 2. Meyakinkan ketergantungan data sebagai sesuatu yang masuk akal (hanya menyimpan data yang berhubungan dalam sebuah tabel) Macam-macam/Tingkatan Normalisasi First Normal Form (1NF), Second Normal Form (2NF) Third Normal Form (3NF), Boyce Codd Normal Form, Fourth Normal Form (4NF), Fifth Normal Form (5NF) 41 FIRST DAN SECOND NORMAL FORM Pada penerapannya, yang sering digunakan pada saat seseorang Sistem Analis atau Perekayasa Database melakukan normalisasi adalah First Normal Form dan Second Normal Form. First Normal - Menghilangkan kolom yang duplikat (duplikasi data) dari tabel - Membuat tabel terpisah dari tiap-tiap grup data yang berhubungan dan mengidentifikasi setiap row untuk mendapatkan unique key/primary key Second Normal - Berada pada First Normal Form - Memindahkan subset data yang ditampilkan beberapa rows dan menempatkannya pada tabel terpisah - Membuat 'relationship' diantara tabel-tabel baru dan tabel sebelumnya melalui/menggunakan Foreign Key 42 CONTOH TABEL TIDAK DI-NORMALISASI Cust# ----101 101 101 101 101 101 102 103 104 104 104 104 104 105 105 105 106 106 106 106 106 106 Customer -------------------ABC Corporation ABC Corporation ABC Corporation A.B.C. Corp. A.B.C. Corp. ABC Co. Beta Partners Ltd. Custom Services Data Automation Inc. Data Automation Inc. Data Automation Inc. Data Automation Data Automation Epsilon Enterprises Epsilon Enterprises Epsilon Enterprises Financial Consulting Financial Consulting Financial Consulting Financial Contracting Financial Contracting Financial Contracting Phone -------325-7289 325-7289 325-7289 325-7289 325-7289 325-7289 902-4416 381-9408 452-9520 452-9520 452-9520 452-9520 452-9520 902-7767 902-7767 902-7767 428-0131 428-0131 428-0113 428-0113 428-0131 428-0131 Invoice# -------1319 2649 26883 42926 75284 91958 Date -------10/22/03 11/05/03 12/06/03 02/10/04 05/03/04 05/24/04 Total -----891.57 532.68 520.92 362.82 901.86 740.60 13999 23413 52056 64976 95954 29950 74628 79050 3522 20471 49515 55215 79507 79877 11/30/03 12/12/03 12/14/03 01/16/04 03/24/04 01/20/04 04/15/04 06/25/04 01/02/04 03/20/04 04/06/04 05/01/04 05/02/04 05/14/04 842.51 469.36 222.11 36.36 566.60 529.67 602.86 677.66 128.95 699.19 798.51 158.21 432.50 428.50 43 Tabel di atas adalah tabel invoice (tagihan), dimana tabel tersebut menyimpan data-data pelanggan berikut tagihan masing-masing. Pada tabel tersebut, users dibingungkan dengan nama pelanggan karena dituliskan secara berbeda-beda meskipun memiliki Cust# yang sama (nomor pelanggan sudah betul). Nomor telepon juga dituliskan berulang-ulang, dengan resiko suatu saat kemungkinan penulisan nomor telepon akan salah. Tabel tersebut juga memiliki data pelanggan yang tidak memiliki tagihan! (Invoice# kosong). Sehingga, apakah tabel itu layak dinamakan sebagai tabel tagihan? Tentu saja TIDAK! Dengan kata lain, jika tabel itu ditambahi data (dengan proses insert tentunya), maka sangat besar kemungkinan data yang berikutnya tersebut adalah data yang salah. Hal ini karena data yang seharusnya tidak perlu ditulis berulang-ulang, ditulis secara terus menerus. Pecahlah tabel tersebut menjadi beberapa buah tabel kecil. 44 Cust# ----101 102 103 104 105 106 Customer -------------------ABC Corporation Beta Partners Ltd. Custom Services Data Automation Inc. Epsilon Enterprises Financial Consulting Phone -------325-7289 902-4416 381-9408 452-9520 902-7767 428-0131 Cust# Invoice# ----- -------101 1319 101 2649 101 26883 101 42926 101 75284 101 91958 104 13999 104 23413 104 52056 104 64976 104 95954 105 74628 105 79050 106 3522 106 20471 106 49515 106 55215 106 79507 106 79877 Date -------10/22/03 11/05/03 12/06/03 02/10/04 05/03/04 05/24/04 11/30/03 12/12/03 12/14/03 01/16/04 03/24/04 04/15/04 06/25/04 01/02/04 03/20/04 04/06/04 05/01/04 05/02/04 05/14/04 Total -----891.57 532.68 520.92 362.82 901.86 740.60 842.51 469.36 222.11 36.36 566.60 602.86 677.66 128.95 699.19 798.51 158.21 432.50 8.50 Tabel di sebelah kiri adalah Tabel Customer (Pelanggan), dan tabel di sebelah Kanan adalah Tabel Invoice. Pada tahap ini, kita sudah memulai proses yang dinamakan Normalisasi. 45 Pada tahap ini, tidak ada keraguan mengenai nama pelanggan dan nomor telepon. Nomor telepon mungkin saja masih salah, tetapi nomor telepon tidak berulang-ulang dan hanya satu nomor saja untuk setiap pelanggan (tidak mempunyai kemungkinan lain). Jika kita melakukan pencetakan tagihan, kita cukup menggunakan Cust# yang ada pada tabel Invoice untuk mendapatkan data nama pelanggan dan nomor teleponnya dari tabel Customer. Database manager dapat me-relasikan tabel-tabel yang dibuatnya, dan dengan cara ini maka akan terbentuk database yang dinamakan dengan relational database. Catatan: Jika kita memiliki data yang banyak mengandung duplikasi seperti contoh tabel di atas (tabel yang belum di normalisasi), maka kita tidak menggunakan sesuatu yang dinamakan “relational”, hal ini sering terjadi pada users yang menggunakan aplikasiaplikasi spreadsheet seperti Microsoft Excel. 46 DENORMALISASI DATABASE Denormalisasi database adalah kejadian dimana database secara sengaja tidak dibuat mengikuti kaidah Normalisasi atau bahkan dari bentuk Normal dirubah menjadi tidak normal (Denormalisasi) untuk mendukung kebutuhan bisnis/pengambilan keputusan/pencarian data. Normalisasi Denormalisasi 47 DATABASE OLTP DAN OLAP Dari sisi pengaksesannya, database dapat dibagi menjadi : 1. OLTP : On Line Transaction Processing 2. OLAP : On Line Analytical Processing OLTP, database yang di Normalisasi OLTP memiliki karakteristik volume transaksi yang besar hingga sangat besar, tetapi dengan proses terhadap data yang minimal (DML sangat sederhana). Contoh penerapan database jenis ini ada pada kasir, mesin ATM, data panggilan telepon, dan sejenisnya. OLAP, database yang di Denormalisasi OLAP memiliki karakteristik proses yang mengambil banyak data historis yang diakumulasi dalam waktu atau periode yang lama. Database yang denormalisasi seringkali dibutuhkan untuk mendukung “business intelligence”. Contoh penerapan database jenis ini misalnya pada sistem pelaporan keuangan, penjualan, dan sejenisnya. 48 ENTITY RELATIONSHIP DIAGRAM (ERD) Model data / tool (alat) yang digunakan dalam proses analisa untuk menggambarkan kebutuhan data dan asumsi-asumsi dalam sistem, secara top-down (dari atas ke bawah). ERD ini dapat digunakan kembali (berulang) untuk analisa dan desain pada SDLC (System Development Life Cycle) Tiga elemen dasar di dalam ERD: • Entities adalah “sesuatu” dimana kita mencari informasi. • Attributes adalah kumpulan data pada entity. • Relationships adalah penghubung antara entity-entity. 49 ERD PADA PENGEMBANGAN SISTEM Gambar : System Development Life Cycle Pada tahapan inilah konsep Basis Data harus sudah sangat jelas, dan pada tahap ini ERD dibuat. 50 CONTOH SOFTWARE ERD Terdapat beberapa (cukup banyak) perangkat lunak/software yang bisa digunakan untuk menggambarkan Entity Relationship Diagram, Mempunyai Hak Cipta / Berbayar, Avolution, ConceptDraw, ER/Studio, ERwin, DeZign for Databases, MEGA International, OmniGraffle, Oracle Designer, PowerDesigner, Rational Rose, RISE Editor, SmartDraw, Sparx Enterprise Architect, SQLyog, Toad Data Modeler, Microsoft Visio, dan Visual Paradigm. Free / Gratis, MySQL Workbench, StarUML, dan SchemaSpy 51 NOTASI ERD Referensi definitif untuk entity relationship modelling secara umum, diulas pada tulisan Peter Chen (1976). IDEFIX (Integration Definition for Information Modeling) bahasa pemodelan data untuk memodelkan data secara semantik, sebagai hasil dari program: Integrated Computer Aided Manufacturing (ICAM). Notasi Bachman dari Charles Bachman. Notasi Martin dari James Martin. Dinamakan juga notasi Crow’s Foot, dan sangat populer. Notasi (min, max) dari Jean-Raymond Abrial pada 1974. Notasi standard UML. Unified Modeling Language (UML) adalah bahasa yang digunakan untuk standarisasi pemodelan data pada software engineering. 52 NOTASI MARTIN (CROW’S FOOT) Notasi Crow's foot memiliki beberapa keunggulan: • Sangat jelas jika digunakan untuk mendefinisikan hubungan “ke-banyak” (many) atau seringkali disebut child/anak. Crow's foot notation • Dapat menggambarkan hubungan/relasi yang menghasilkan foreign key mandatory (wajib diisi) dan foreign key optional (tidak wajib diisi). Notasi cukup banyak di adopsi oleh software-software yang digunakan untuk menggambarkan Entity Relationship Diagram (ERD), diantaranya : Oracle Designer, System Architect, Visio, PowerDesigner, ModelRight, Toad Data Modeler, DeZign for Databases, OmniGraffle, MySQL Workbench dan Dia. 53 CONTOH ERD PADA NOTASI CHEN 54 ERD DENGAN NOTASI CROW’S FOOT NAME ID EMPLOYEE EMPLOYEE EMPLOYEE * ID o NAME * ID o NAME having ADDRESS ADDRESS * ID o CITY ID CITY Notasi Chen’s Notasi Crow’s Foot menggunakan Oracle Designer ADDRESS * ID o CITY * EMP_ID Table hasil 55 RELASI PADA NOTASI CROW’S FOOT Satu ke banyak / One to many Foreign Key bersifat mandatory EMPLOYEE * ID o NAME Satu ke banyak / One to many Foreign Key bersifat optional EMPLOYEE ADDRESS * ID o CITY * ID o NAME ADDRESS * ID o NAME o EMP_ID 56 CONTOH ERD DENGAN NOTASI CROW’S FOOT 57 CONTOH ERD RUMAH SAKIT SEDERHANA 58 SECURITY DATABASE Adalah merupakan tindakan untuk memproteksi kejahatan untuk mencuri atau memodifikasi data dalam sistem database. 1. Database system level. Merupakan mekanisme autentikasi dan otorisasi untuk mengijinkan pemakai tertentu melakukan akses data yang diperlukan saja. 2. Operating system level. Operating system super-user dapat melakukan apapun terhadap database. Kemanan sistem operasi yang handal dan bagus diperlukan dalam hal ini. 3. Network level. Pada level ini proses kemanan harus menggunakan enkripsi untuk menjaga : Eavesdropping (pembacaan yang tidak terotorisasi terhadap pesan – pesan tertentu) Masquerading (berpura – pura menjadi pemakai yang sah atau mengirimkan pesan yang seolah berasal dari pemakai yang sah). 4. Physical Level. Yaitu melakukan akses fisik terhadap komputer memungkinkan terjadinya perusakan data, kemanan dengan menggunakan kunci yang diperlukan. Komputer juga harus diamankan dari kebanjiran, kebakaran dan lainnya. 5. Human Level. Pemakai harus disaring dahulu untuk memastikan bahwa pemakai yang sah tidak memperbolehkan memberikan hak akses kepada orang lain (penyusup). Pemakai harus dilatih dalam pemilihan password dan menjaga kerahasiaannya. 59 DATABASE TERDISTRIBUSI Merupakan salah satu pengembangan di sistem basisdata, yang berupa kumpulan data yang digunakan bersama yang saling terhubung secara lojik tetapi tersebar secara fisik pada suatu jaringan komputer. DDBMS mempunyai karakteristik sebagai berikut : a. Kumpulan data yang digunakan bersama yang secara lojik saling terhubung yang tersebar pada sejumlah komputer yang berbeda b. Komputer komputer saling dihubungkan menggunakan jaringan komunikasi c. Data pada masing masing komputer dibawah kendali satu DBMS d. DBMS dimasing masing komputer dapat menangani aplikasi aplikasi lokal secara otonom e. Masing masing DBMS berpartisipasi dalam sedikitnya satu aplikasi global 60 KEUNGGULAN DAN KELEMAHAN DDBMS Keunggulan DDBMS a. Secara alami mengikuti struktur organisasi b. Adanya otonomi lokal c. Sifatnya dapat dipakai bersama d. Peningkatan ketersediaan e. Peningkatan kehandalan f. Peningkatan kinerja g. Ekonomis Kelemahan DDBMS adalah h. Pertumbuhan yang modular a. Kompleksitas b. Biaya c. Kelemahan dalam keamanan d. Sulitnya menjaga keutuhan data e. Kurang standard f. Kurangnya pengalaman 61 OBJECT ORIENTED DATABASE Teknologi ini mengintegrasikan kemampuan basis data (DBMS) dengan kemampuan pemrograman berorientesi kepada obyek (OOP). Letak perbedaan utama ODBMS dengan sistem basis data konvensional adalah pada sistem basis data konvensional data direpresentasikan ke dalam bentuk tabel-tabel dengan kolom yang mewakili kategori dari data, dan baris yang berisi data itu sendiri. Sedangkan dalam ODBMS, data direpresentasikan sebagai sebuah obyek, baik dalam hal pengaksesannya maupun dalam hal pemodelannya. 62 KELEBIHAN DAN KELEMAHAN OODB Kelebihan OODB diantaranya: 1. Desain yang “indah” 2. Penyederhanaan pembuatan aplikasi 3. Kinerja yang baik Kelemahan OODB diantaranya: 1. Tight coupling 2. Kurangnya dukungan platform 3. Sulit bermigrasi 4. Kebutuhan keterampilan 5. Query yang kompleks 63 KENYATAAN OODB Pada saat diperkenalkan beberapa tahun lalu, ODBMS diperkirakan akan segera menjadi teknologi utama di bidang basis data menggantikan Sistem Basis Data Relasional (RDBMS). Utamanya karena RDBMS tidak dirancang untuk menangani tipe data multimedia yang banyak digunakan di internet. Kenyataan pada saat ini ramalan tersebut tidak mengenai sasaran. Saat ini terbukti RDBMS masih jauh lebih banyak dipergunakan. ODBMS hanya mendapatkan sebagain kecil dari pasaran. Penjualan RDBMS mencapai 50 kali lipat penjualan ODBMS. Di sisi lain pembuat RDBMS menambahkan kemampuan penggunaan obyek ke dalam sistem buatannya menjadi objectrelational database management sistem (ORDBMS). 64