Kelebihan dari DBMS antara lain adalah :
- Kepraktisan. DBMS menyediakan media penyimpan permanen yang berukuran kecil namun banyak menyimpan data jika dibandingkan dengan menggunakan kertas.
- Kecepatan. Komputer dapat mencari dan menampilkan informasi yang dibutuhkan dengan cepat.
- Mengurangi kejemuan. Pekerjaan yang berulang-ulang dapat menimbulkan kebosanan bagi manusia, sedangkan mesin tidak merasakannya.
- Update to date. Informasi yang tersedia selalu berubah dan akurat setiap.
Kelemahan-kelemahan DBMS antara lain :
- Kebutuhan untuk medapatkan perangkat lunak dan perangkat keras yang tepat cukup mahal, termasuk biaya pemeliharaan dan sumber daya manusia yang mengelola basis data tersebut.
- Sangat kompleks. Sistem basis data lebih kompleks dibandingkan dengan proses berkas, sehingga dapat mudah terjadinya kesalahan dan semakin sulit dalam pemeliharaan data.
- Resiko data yang terpusat. Data yang terpusat dalam satu lokasi dapat beresiko kehilangan data selama proses aplikasi.
Arsitektur Database Management System (DBMS)
Arsitektur ini dikenal dengan nama arsitektur tiga skema (three-schema architecture) dimana fungsi ini untuk memisahkan antara basis data fisik dengan program aplikasi user. Skema-skema tersebut adalah sebagai berikut:
- Level internal merupakan skema internal yang memuat deskripsi struktur penyimpanan basis data dan menggunakan model data fisikal serta mendefinisikan secara detail penyimpanan data dalam basis data, serta jalur pengaksesan data.
- Level konsepsual adalah skema yang memuat deskripsi struktur basis data secara keseluruhan untuk semua pemakai. Skema ini hanya memuat deskripsi tentang entitas, atribut, hubungan dan batasan, tanpa memuat deskripsi data secara detail.
- Level eksternal merupakan skema eksternal (user view) yang mendefinisikan pandangan data terhadap sekelompok user (local view) dengan menyembunyikan data lain yang tidak diperlukan oleh kelompok user tersebut.
Keuntungan dari arsitektur ini antara lain:
- Perubahan skema konsepsual, yaitu adanya perubahan dalam skema konsepsual contohnya penambahan suatu item data tidak akan berpengaruh pada program aplikasi. Tetapi jika skema eksternal tidak sesuai lagi dengan skema konsepsual yang baru maka program aplikasi harus disesuaikan juga.
- Perubahan skema internal. Pemisahan antara skema eksternal dan skema internal berfungsi untuk menjaga bila terjadi perubahan skema internal, misalnya ada penambahan “pointer” pada rekaman tidak memerlukan perubahan pada aplikasi.
- Perubahan skema eksternal. Adanya penambahan skema eksternal atau pembuatan skema eksternal baru tidak akan berpengaruh pada aplikasi yang ada selama aplikasi tersebut tidak mengakses data berdasarkan skema yang baru.
Komponen DBMS
Komponen-komponen DBMS (Howe,1991) terdiri dari:
- Interface, yang didalamnya terdapat bahasa manipulasi data (data manipulation language)
- Bahasa definisi data (data definition language) untuk skema eksternal, skema konsepsual dan skema internal.
- Sistem kontrol basis data (Database Control System) yang mengakses basis data karena adanya perintah dari bahasa manipulasi data.
Model Data
Model data dapat dikelompokkan berdasarkan konsep pembuatan deskripsi struktur basis data, yaitu:
Ø Model data konsepsual (high level) menyajikan konsep tentang bagaiman user memandang atau memperlakukan data. Dalam model ini dikenalkan tiga konsep penyajian data yaitu:
o Entity (entitas) merupakan penyajian obyek, kejadian atau konsep dunia nyata yang keberadaannya secara eksplisit didefinisikan dan disimpan dalam basis data, contohnya Mahasiswa, Matakuliah, Dosen, Nilai dan lain sebagainya.
o Atribute (atribut) adalah keterangan-keterangan yang menjelaskan karakteristik dari suatu entitas seperti NIM, Nama, Fakultas, Jurusan untuk entitas Mahasiswa.
o Relationship (hubungan) merupakan hubungan atau interaksi antara satu entitas dengan yang lainnya, misalnya entitas pelanggan berhubungan dengan entitas barang yang dibelinya.
Ø Model data fiskal (low level) merupakan konsep bagaimana deskripsi detail data disimpan kedalam komputer dengan menyajikan informasi tentang format rekaman, urutan rekaman, dan jalur pengaksesan data yang dapat membuat pemcarian rekaman data lebih efisien.
Ø Model data implementasi (representational) merupakan konsep deskripsi data disimpan dalam komputer dengan menyembunyikan sebagian detail deskripsi data sehingga para user mendapat gambaran global bagaimana data disimpan dalam komputer. Model ini merupakan konsep model data yang digunakan oleh model hirarki, jaringan dan relasional.
SQL (Structured Query Langguage)
Structured Query Language (SQL) adalah bahasa database relasional yang dibuat berdasarkan suatu standart. Bentuk dasar dari SQL adalah sebagai berikut :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
Setiap query dalam SQL harus memiliki klausa SELECT, yang menentukan kolom yang akan ditampilkan pada hasil, dan klausa FROM yang menentukan cross product table.
Klausa optional WHERE menentukan syarat-syarat seleksi pada table yang ditunjukkan oleh FROM. Berikut ini akan dibahas sintaksis query SQL dasar dengan lebih mendetail :
Ø from list pada klausa FROM adalah daftar nama table. Nama tabel dapat diikuti oleh nama alias; nama alias berguna ketika nama tabel yang sama muncul lebih dari sekali pada from list
Ø select-list adalah daftar nama kolom (termasuk ekspresinya) dari tabel-tabel yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias dari tabel.
Ø Kualifikasi pada klausa WHERE merupakan kombinasi boolean atau pernyataan kata sambung logika dari kondisi yang menggunakan eksepresi yang melibatkan operator pembanding. Sedangkan ekspresi itu sendiri dapat berupa nama kolom, konstanta atau aritmatika dan string.
Ø Kata kunci distinct bersifat pilihan yang menghapus duplikat dari hasil query.
SQL menyediakan tiga konstruksi set-manipulation yang memperluas query dasar, yaitu UNION, INTERSECT dan EXCEPT. Juga operasi set yang lain seperti : IN (untuk memeriksa apakah elemen telah berada pada set yang ditentukan), ANY dan ALL (untuk membandingkan suatu nilaid engan elemen pada set tertentu), EXISTS (untuk memeriksa apakah suatu set kosong atau isi). Operator IN dan EXISTS dapat diawali dengan NOT. Fitur SQL yang lain yaitu NESTED QUERY, artinya query yang memiliki query lain di dalamnya, yang disebut dengan subquery. Nested query digunakan jika terdapat suatu nilai yang tidak diketahui (unknown values).
SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom yaitu :
Ø COUNT : untuk menghitung cacah
Ø SUM : menghitung jumlah seluruh nilai
Ø AVG : menghitung rata-rata nilai
Ø MAX : mencari nilai paling besar
Ø MIN : mencari nilai paling kecil.
Kadangkala operasi aggregat diperlukan pada sekeompok grup dari baris pada relasi. Untuk menulis query semacam itu, dibutuhkan klausa GROUP BY. Dan penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data yang sudah dikelompokkan dengan GROUP BY.
STUDI KASUS :
Komputerisasi Sistem Pengolahan Persediaan Barang Dagang.Data Flow Diagram
DFD Level 0
DESAIN DATABASE
Tabel Bahan Baku
Field | Coloumn Name | Type | Length | Keterangan |
1. 2. 3. 4. | Kode_BrgBaku* Nama_BrgBaku Satuan Stok | nvarchar nvarchar nvarchar int | 5 20 10 4 | Kode Barang Nama Barang Baku Satuan Barang Stok Barang |
Tabel Barang Jadi
Field | Coloumn Name | Type | Length | Keterangan |
1. 2. 3. 4. | Kode_BrgJadi* Nama_BrgJadi Satuan Stok | nvarchar nvarchar nvarchar int | 5 20 10 4 | Kode Barang Jadi Nama Barang Jadi Satuan Barang Jadi Stok Barang Jadi |
Tabel Suplier
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. | Kode_Suplier * Nama_Suplier Alamat Telp | nvarchar nvarchar nvarchar nvarchar | 5 20 30 12 | Kode Suplier Nama Suplier Alamat Suplier No. Telephon Suplier |
Tabel Pelanggan
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. | Kode_Pelanggan * Nama_ Pelanggan Alamat Telp | nvarchar nvarchar nvarchar nvarchar | 5 20 30 12 | Kode Pelanggan Nama Pelanggan Alamat Pelanggan No Telephon |
Tabel Pembelian
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. 7. 8. 9. | No_Fak_Beli * Tanggal Kode_BrgBaku ** Kode_Suplier ** Jumlah_Beli Harga_ Satuan Total_Beli Diskon Total_Harga | nvarchar datetime nvarchar nvarchar int money money int Money | 5 8 5 5 4 8 8 4 8 | Nomor Faktur Pembelian Tanggal Pembelian Barang Kode Barang Kode Suplier Banyaknya Pembelian Harga Satuan Barang Total Pembelian Diskon Pembelian Total Harga Pembelian |
Tabel Penjualan
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. 7. 8. 9. | No_Fak_Jual * Tanggal Kode_BrgJadi ** Kode_Pelanggan ** Jumlah_Jual Harga_ Satuan Total_Jual Diskon Total_Harga | Numeric datetime nvarchar nvarchar int money money int Money | 9 8 5 5 4 8 8 4 8 | Nomor Faktur Penjualan Tanggal Penjualan Kode Barang Jadi Kode Pelanggan Jumlah Penjualan Barang Harga Satuan Barang Total Harga Diskon Total Harga Penjualan |
Tabel Hutang
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. 7. | Tanggal_Hutang Kode_Suplier ** No_Faktur Kode_BrgBaku ** Total_Beli Bayar Hutang | Datetime nvarchar nvarchar nvarchar money money Money | 8 5 5 5 8 8 8 | Tanggal Hutang Kode Suplier Nomor Faktur Pembelian Kode Barang Total biaya pembelian Besar Pembayaran Hutang Dagang |
Tabel Piutang
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. 7. | Tanggal_Piutang Kode_Pelanggan ** No_Faktur Kode_BrgJadi ** Total_Jual Bayar Piutang | datetime nvarchar nvarchar nvarchar money money money | 8 5 5 5 8 8 8 | Tanggal Piutang Kode Pelanggan No Faktur Jual Kode Barang Jadi Total Penjualan Besar Pembayaran Piutang |
Tabel Retur_Suplier
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. | Tanggal_Retur * No_Fak_Beli Tanggal Kode_BrgBaku ** Kode_Suplier ** Jumlah | Datetime nvarchar datetime nvarchar nvarchar Int | 8 5 8 5 5 4 | Tanggal Retur No Faktur Pembelian Tanggal Pembelian Kode Barang Kode Suplier Jumlah Retur |
Tabel Retur_Pelanggan
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. 6. | Tanggal_Retur * No_Fak_Jual Tanggal Kode_BrgJadi ** Kode_Pelanggan ** Jumlah | Datetime nvarchar datetime nvarchar nvarchar int | 8 5 8 5 5 4 | Tanggal Retur No Faktur Penjualan Tanggal Penjualan Kode Barang Jadi Kode Suplier Jumlah Retur |
Tabel Kembali_ReturPlg
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. | Tanggal_kembali Tanggal_Retur Kode_BrgJadi ** Nama_BrgJadi Jumlah | Datetime Datetime nvarchar nvarchar int | 8 8 5 10 4 | Tanggal Kembali Retur Tanggal Retur Kode Barang Jadi Nama Barang Jadi Jumlah Retur Kembali |
Tabel Kembali_ReturSupl
Field | Coloumn Name | Data Type | Length | Keterangan |
1. 2. 3. 4. 5. | Tanggal_kembali Tanggal_Retur Kode_BrgBaku** Nama_BrgBaku Jumlah | Datetime Datetime nvarchar nvarchar int | 8 8 5 10 4 | Tanggal Kembali Retur Tanggal Retur Kode Barang Jadi Nama Barang Jadi Jumlah Retur Kembali |
RELASI TABEL