Database System

Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik untuk memperoleh informasi dari basis data tersebut

Contoh implementasi database yang pernah saya gunakan adalah MySQL. Sebagai contohnya membuat login dan register di aplikasi mobile, dengan menggunakan database saya membuat table users untuk menyimpan data-data user dari proses register tersebut seperti: username, password, nama, tanggal lahir, dsb. kemudian untuk login tinggal melakukan validasi username dan password apakah ada data yang sesuai dengan yang sudah tersimpan di tabel user.

===============================================================

Database Management System (DBMS) merupakan software yang digunakan untuk membangun sebuah sistem basis data yang berbasis komputerisasi. DBMS membantu dalam pemeliharaan dan pengolahan kumpulan data dalam jumlah besar. Sehingga dengan menggunakan DBMS tidak menimbulkan kekacauan dan dapat digunakan oleh pengguna sesuai dengan kebutuhan.

DBMS merupakan perantara bagi pemakai dengan basis data. Untuk merinteraksi dengan DBMS (basis data) menggunakan bahasa basis data yang telah ditentukan oleh perusahaan DBMS. Bahasa basis data biasanya terdiri atas perintah-perintah yang di formulasikan sehingga perintah tersebut akan diproses olah DBMS.

Perintah-perintah biasanya ditentukan oleh user. Ada 2 bahasa basis data:

1. Database Definition Languange (DDL)

DDL digunakan untuk menggambarkan desain basis data secara keseluruhan. DDL digunakan untuk membuat tabel baru, menuat indeks, ataupun mengubah tabel. Hasil kompilasi DDL disimpan di kamus data.

2. Data Manipulation Language (DML)

DML digunakan untuk melakukan menipulasi dan pengambilan data pada suatu basis data seperti penambahan data baru ke dalam basis data, menghapus data dari suatu basis data dan pengubahan data di suatu basis data.

Dalam pembuatan DBMS diperlukan beberapa komponen fungsional penyusunnya sebagai berikut:
  1. DML Precompiler : mengkonversi pernyataan-pernyataan DML yang dimasukkan di dalam program aplikasi ke dalam pemanggilan prosedur normal di dalam bahasa induknya. Procompiler harus berinteraksi dengan query processor untuk membuat kode-kode yang diperlukan.
  2. Query Processor : menterjemahkan pernyataan-pernyataan bahasa query ke dalam instruksi-instruksi low-level yang dimengerti oleh database manager.
  3. DDL Compiler : mengkonversi pernyataan DDL ke dalam sekumpulan table yang mengandung metadata atau “data mengenai data”
  4. Database Manager : menyediakan interface antara data low-level yang disimpan didalam basisdata dengan program-program aplikasi dan queries yang dikirimkan ke system.
Salah satu tujuan dari DBMS adalah memberikan tampilan kepada pengguna dalam hal menyampaikan data. Untuk itu dalam DBMS terdapat Level Abstraksi Data. Level ini berguna untuk menyembunyikan detail atau kompleksitasnya basis data seperti bagaimana data disempan dan diolah. Sehingga pengguna hanya melihat tampilan yang dibutuhkan oleh pengguna.
  1. Level fisik
    Level fisik merupakan level yang paling bawah. Pada level ini memperlihatkan bagaimana sesungguhnya data disimpan.
  2. Level Konseptual
    Level ini menggambarkan bagaimana sebenarnya basis dta disimpan dan berhubungan dengan data lainnya
  3. Level View
    Level abstaraksi ini hanya menunjukkan sebagian dari basis data.  Pada umumnya pengguna tidak melibatkan secara langsung sehingga pengguna hanya melihat data sesuai dengan yang dibutuhkan
Kelebihan DBMS, diantaranya yaitu:

-Dapat mengendalikan pengulangan data.
-Memberikan data yang konsisten.
-Kemampuan mendapatkan informasi yang lebih banyak dan jumlah data yang sama.
-Pengguna dapat menggunakan data secara bersama-sama.
-Memperbaiki integritas data.
-Menjaga keamanan.
-Membantu penetapan standarisasi.
-Perbandingan skala ekonomi.
-Dapat menyeimbangkan konflik kebutuhan.
-Mempercepat akses dan respon data.
-Mempercepat produktifitas.
-Meningkatkan pemeliharaan data melalui data independen.
-Meningkatkan konkurensi.
-Meningkatkan layanan backup dan recovery.
 
Kekurangan DBMS, diantaranya yaitu:

-Penggunaannya cukup kompleks.
-Kompleksitas DBMS mengakibatkan ukurannya yang besar.
-Biaya DBMS tidak sama tergantung pada lingkungan dan fungsi yang disediakan.
-Ada tambahan biaya untuk hardware.
-Dibutuhkan biaya konversi untuk penggunaan DBMS baru.
-Umumnya performa kinerja menurun seiring waktu.
-Performa yang menurun mengakibatkan kegagalan yang lebih besar.

======================================================================

DDL adalah singkatan dari Data Definition Language yaitu kumpulan perintah pada SQL untuk menggambarkan desain dari database secara menyeluruh, selain itu DDL (Data Definition Language) juga digunakan untuk membuat, merubah maupun menghapus struktur atau definisi tipe data dari obyek yang ada pada database.
 
1. Contoh DDL Create Table :
 
CREATE TABLE [ table name ] ( [ column definition] ) [ table parameters ]
 
2. Contoh DDL DROP
 
DROP TABLE table_name;
DROP DATABASE database_name;
DROP TABLE Student;
DROP TABLE index_name;
 
3. Contoh DDL ALTER
 
ALTER TABLE table_name ADD column_name (untuk menambah kolom)
ALTER TABLE table_name RENAME To new_table_name (untuk mengganti nama tabel)
ALTER TABLE table_name MODIFY column_name data type (untuk memodifikasi kolom)
ALTER TABLE table_name DROP COLUMN column_name (untuk menghapus kolom)
 
4. Contoh DDL TRUNCATE
 
TRUNCATE TABLE table_name;
TRUNCATE TABLE Student;

=======================================================================

Data Manipulation Language (DML) adalah sebuah bahasa yang memperbolehkan sebuah rangkaian operasi untuk mensupport operasi dasar manipulasi data dalam membangun sebuah database.
 
Operasi manipulasi data yaitu sebagai berikut:
 
1. Memasukkan sebuah data baru dalam database.
2. Memodifikasi data yang tersimpan dalam database.
3. Mengambil data yang terdapat dalam sebuah database.
4. Menghapus data dari sebuah database.
 
Contoh implementasi DML pada database:
 
SELECT * FROM Buku;
UPDATE Buku SET Judul_buku = “Programmer” WHERE id = 1123;
INSERT INTO Buku (id,kode_buku,judul_buku,tanggal_terbit) values(1124, “KoD2″, “Desainer”, “2013-01-11″);

==========================================================================

Clause MySQL HAVING digunakan dalam kombinasi dengan clause MySQL GROUP BY untuk membatasi kelompok baris yang dikembalikan hanya kepada mereka yang kondisinya BENAR.

Syntax untuk Clause MySQL HAVING adalah:
 
SELECT expression1, expression2, ... expression_n, 
       aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
HAVING condition;

============================================================================

Untuk keamanan database adalah sangat penting. Karena jika dalam keamanan tidak aman, akan berdampak pada ancaman terhadap database, meliputi theft (pencurian) dan fraud (penipuan). Jika kedua ancaman tersebut terjadi pada sebuah perusahaan, maka perusahaan akan mengalami :
  • Loss Of Confidentiality (Kehilangan kerahasiaan). Hilangnya kerahasiaan perusahaan akan menyebabkan hilangnya daya saing
  • Loss of Privacy (Kehilangan Privacy), dapat menyebabkan tindakan illegal untuk melawan organisasi.
  • Loss of Integrity (Kehilangan Integritas), menyebabkan data menjadi invalid atau rusak di dipertanyakan kejelasan sebuah data yang di kelola organisasi. 
  • Loss of Availibility (Kehilangan Ketersediaan), artinya data atau sistem tidak dapat diakses sehingga mempengaruhi kinerja finansial perusahaan.
Dengan adanya keamanan pada sebuah database, ancaman ancaman yang disebutkan bisa di minimalisir dan di antisipasi.

===========================================================================

Dalam database management system (dbms) ada yang di sebut transaction. Transaction dalam dbms ini bertujuan untuk menggabungkan beberapa statement perubahan kedalam database menjadi dianggap satu kesatuan. Dilakukan semuanya atau tidak sama sekali (all or nothing) sehingga tidak terjadi ketidakkonsistenan data. 

Transaksi mempunyai 2 fungsi utama:
  1. Menyediakan reliabilitas, artinya jika terjadi kesalahan pada salah satu statement maka seluruh perubahan akan digagalkan. Sehingga data yang tersimpan benar benar reliable(dapat diandalkan).
  2. Melakukan isolasi, artinya satu transaksi harus di proses satu persatu. Sehingga tidak ada kemungkinan 2 program mengakses atau bahkan mengubah data sekaligus.
Jika tidak ada transacsion management itu karena bisa membantu mengecek perintah berhasil dilakukan dan data sudah terupdate dengan benar, jika tidak ada transaction dalam database maka tidak akan ada indikator proses berjalan berhasil atau gagal, dan itu akan mengakibatkan data bisa berubah diluar yang kita inginkan.

============================================================================

DBDL sangat diperlukan untuk database karena fungsinya Bu, Database Design Language ( DBDL ) untuk menjelaskan tambahan data yang tidak bisa dijelaskan dengan menggunakan diagram. Ini akan sangat membantu, karena lebih bisa dipahami oleh masing-masing orang. 

Tahapan Database Design :

Tahapan pertama adalah Conceptual Design, pada tahapan ini desain yang dibuat masih berbentuk konsep secara keseluruhan dan umum. Tahap ini fokus pada model data yang akan digunakan tanpa memikirkan logika-logika penyimpanan database dan pertimbangan fisik database tersebut. Output dari tahapan ini biasanya first cut ERD (Entity Relationship Diagram.

Tahapan kedua adalah menerjemankah Conceptual Design menjadi Logical Design. Akan ada proses validasi model data yang ada, apakah sesuai dengan logika-logika database dan sudah sesuai secara sturktural. Pada tahapan ini juga bisa dilakukan normaliasi untuk melihat kesesuaian model data yang dalam mendukung transaksi yang ada. Beberapa konsep logika database yang digunakan dalam tahapan ini adalah:

- Strong Entitiy Types
- Weak Entitiy Types
- One-to-many (1:*) Binary Relationships Types
- One-to-one (1:1) Binary Relationships Types
- One-to-one (1:1) Recursive Relationships
- Superclass/ Subclass Relationships Types
- Many-to-many (*:*) Binary Relationships Types
- Complex Relationships Types
- Multi-valued Attributes

Tahapan terakhir dalam Database desain adalah Physical Design. Tahap ini lebih fokus pada structural database secara detail. Penyimpanan data dan hubungan pada database akan dibuat pada tahap ini. Bukan hanya structural dan hubungan data, tapi juga memperhatikan integritas data yang akan disimpan di database tersebut. Secara langsung desain yang sudah ada akan dibuat atau bisa disebut mengkonstruksi database.

Ketiga tahapan ini saling berhubungan erat. Conceptual Design menjadi dasar pembuatan Logical Design yang akan diolah dan dikembangkan menjadi sebuah model data logis dan dokumentasi yang menggambarkan database yang diharapkan.

============================================================================

Normalisasi adalah sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). 

Menyambung dengan materi pada sesi kemarin dan Video Conference kita kemarin, terkait dengan komponen yang penting dalam sebuah database, pada sesi ini kita akan mempelajari dan melihat implementasi dari konsep yang kemarin:

1. Entity

2. Relation

3. Attribute

4. Key

- Saya sebagai seorang mahasiswa merupakan entity.

- Sebagai mahasiswa saya memiliki data seperti NIM, tanggal lahir, no HP merupakan attribute.

- NIM saya bersifat unik dan tidak duplikat merupakan key.

- Saya dapat mengambil beberapa mata kuliah merupakan relation.\

============================================================================

Diagram entitas-hubungan (ER), juga disebut model entitas-hubungan, tepat dinamai: itu menunjukkan hubungan antara entitas. Ini paling sering digunakan untuk mengatur data dalam database atau sistem informasi.

Diagram entitas-hubungan yang disempurnakan (EER) pada dasarnya adalah versi diagram ER yang diperluas. Model EER adalah alat yang berguna untuk merancang basis data dengan model tingkat tinggi. Dengan fitur-fitur yang disempurnakan, Anda dapat merencanakan basis data dengan lebih teliti dengan menggali properti dan kendala dengan lebih presisi.

Diagram ER konseptual menggunakan enam simbol standar. Mereka:Entitas adalah objek atau konsep yang mewakili data penting. Juga dikenal sebagai entitas yang kuat atau entitas induk, entitas ini akan sering memiliki entitas yang lemah yang bergantung padanya.
  • Atribut adalah karakteristik suatu entitas, yaitu banyak-ke-banyak atau satu-ke-satu.
  • Hubungan adalah asosiasi antar entitas.
  • Entitas yang lemah bergantung pada entitas lain.
  • Atribut multivalued adalah atribut yang dapat memiliki lebih dari satu nilai.
  • Hubungan yang lemah adalah hubungan antara entitas yang lemah dan induknya.
  • Secara keseluruhan, diagram EER dibangun dari diagram ER dengan menyertakan elemen yang memungkinkan untuk digabungkan, digeneralisasikan, dan mengkhususkan.
Generalisasi dan spesialisasi bertindak sebagai lawan satu sama lain. Generalisasi menggabungkan entitas level yang lebih rendah menjadi entitas yang levelnya lebih tinggi. Sementara itu, spesialisasi membagi entitas tingkat tinggi ke tingkat yang lebih rendah. Dengan agregasi, dua entitas diperlakukan sebagai satu kesatuan.

Terkait dengan EER dan ER, kedua diagram ini sama- sama berfungsi untuk merepresentasikan model database. Pemodelan dalam database merupakan hal yang penting dan seperti step yang pernah kita pelajari.
 
Berikut penjabarannya:

1. Database Planning

Tahapan awal yang paling penting dalam menentukan Mission Objective dan Mission Statement dari perusahaan/ proses bisnis yang akan ditunjang

2. System Definition

Tahapan dalam menentukan cakupan user serta transaksi yang ada

3. Requirement Collection and Analysis

Tahapan pengumpulan data, yang dapat dilakukan dengan: kuesioner, wawancara, examining documentation, observartion, research.

4. Database Design

Tahap yang terdiri dari Conceptual, Logical dan Phsycal Database.
Conceptual merupakan tahap sketsa, hanya menggambarkan menggunakan ER/EER dengan atribut yang didapatkan dari tahap pengumpulan data. (belum memikirkan pemilihan DBMS)
Logical merupakan tahap penyempurnaan dari conceptual, dengan melakukan normalisasi dan menghilangkan relasi yang (many to many). (sudah memilih DBMS)
Physical merupakan tahap mengubah rancangan ERD logical menjadi DDL.

5. DBMS Selection (optional)
tahapan dilakukan untuk melakukan komparasi antara 2/lebih DBMS, tahap ini opsional jika dari awal proyek sudah ditentukan DBMS.

6. Aplication Design
merancang tampilan (UI) dan alur aplikasi

7. Prototyping (opsional)
membuat rancangan berupa sketsa atau blueprint

8. Implementation
melakukan instalasi

9. Data Conversion and Loading
pemindahan data dari existing aplikasi ataupun data sesuai dengan format dan contraint yang digunakan

10. Testing
melakukan pengujian

11. Operational Maintenance
melakukan pemeliharaan

Komentar