TSI Perbankan
HOME
DAFTAR ISI
KONSEP DASAR DBMS dan SQL Obyektif : 1. Mengetahui konsep dasar database relasional 2. Mengenal istilah pada pemodelan logic 3. Mengetahui prinsip normalisasi 4. Mengenal model relasi rekursive 5. Mengetahui konsep DDL dan DML 6. Mengetahui pengontrolan sistem 7. Mengetahui cara membuat suatu design relasional database 8. Mengetahui cara merancang model ER diagram
AS/400 hal.B.1
TSI Perbankan
1.1 DATABASE RELASIONAL Pengenalan Database Relasional Database Relasional adalah suatu model database yang disajikan dalam bentuk tabel. Model ini diperkenalkan pertama kali oleh E.F. Codd. Tujuan dari model data relasional adalah •
Untuk menekankan kemandirian data.
•
Untuk mengatasi ketidak konsistenan dan duplikasi data dengan menggunakan konsep normalisasi
•
Untuk meningkatkan kemampuan akses data
Karakteristik Database Relasional •
Struktur Tabular
•
Satu Bahasa digunakan untuk semua pemakai
•
Data dihubungkan melalui nilai data
Kelebihan Database Relasional •
Tabular View
•
Seluruh hasil operasinya berupa tabel
•
Tidak terdapat pointer-pointer
•
Memiliki kemampuan operator yang baik
•
Fleksibel
•
Mudah digunakan
AS/400 hal.B.2
TSI Perbankan
Contoh Database Relasional
Attribute
BAGIAN NOBAG Relation
NABAG
KABAG
C01
PRODUKSI
P030
D01 B01
ADMINISTRASI PEMASARAN
P070 P020
Cardinality
Primary Key PEGAWAI
Foreign Key NOPEG 010 020 030 050 070 100
NAPEG ASTRIDITA EMILIA ARKADIA INDIRA DIANDRA NADIRA
NOBAG C01 B01 C01 B01 D01 D01
Tuple
Degree
NOPEG P010 P020
NAPEG ASTRIDITA EMILIA
BAGIAN C01 B01
Domain
AS/400 hal.B.3
TSI Perbankan
Terminologi
Formal Relational Term
Informal
Relation
Tabel
Tuple
Baris / record
Cardinality
Jumlah baris
Atrribute
Atribut / field
Degree
Jumlah atribut
Domain
Sekumpulan nilai data yang valid
Jenis-jenis Key Superkey Suatu atribut atau set dari atribut yang secara unik mengidentifikasikan tuple di dalam suatu relasi.
Candidate Key Suatu atribut /sekelompok atribut pada suatu relasi yang mempunyai dua sifat (property) : •
Unik, nilai dari atribut–atribut tersebut secara unik menentukan tuple-tuple di relasi tersebut
•
Minimality, Jika atribut–atribut tersebut adalah Key gabungan , tidak ada bagian dari kelompok atribut tersebut yang dapat dihilangkan
Primary Key Suatu candidate key yang dipilih sebagai penentu dari atribut-atribut lain. Candidate Key yang tidak terpilih disebut alternate key.
AS/400 hal.B.4
TSI Perbankan
Foreign Key Suatu atribut pada suatu relasi dikatakan suatu Foreign Key bila: •
Setiap nilai atribut foreign key tersebut adalah Non Null.
•
Terdapat suatu relasi lain yang mempunyai Primary Key yang mempunyai nilai yang sama dengan atribut foreign key tersebut.
Bahasa-bahasa pada basis data relasional Aljabar Relasional (Prosedural) 1. Bahasa Query Formal Kalkulus Relasional (Non Prosedural)
2. Bahasa Query Komersial
Quel QBE SQL
1.2 NORMALISASI Definisi Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Tujuan dari normalisasi •
Untuk menghilangkan kerangkapan data
•
Untuk mengurangi kompleksitas
•
Untuk mempermudah pemodifikasian data
AS/400 hal.B.5
TSI Perbankan
Proses Normalisasi •
Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
•
Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi
Bentuk Tidak Normal Menghilangkan perulangan group Bentuk Normal Pertama (1NF) Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF) Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF) Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF) Menghilangkan Ketergantungan Multivalue Bentuk Normal Keempat (4NF) Menghilangkan anomali-anomali yang tersisa Bentuk Normal Kelima
AS/400 hal.B.6
TSI Perbankan
Ketergantungan Fungsional Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X Æ R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. Misal, terdapat skema database Pemasok-barang : Pemasok (No-pem, Na-pem) Tabel PEMASOK-BARANG No-pem
Na-pem
P01
Baharu
P02
Sinar
P03
Harapan
Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah : No-pem Æ Na-pem
Ketergantungan Fungsional Penuh Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan) Contoh : KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
AS/400 hal.B.7
TSI Perbankan
Tabel Kirim-Barang No-pem
Na-pem
No-bar
Jumlah
P01
Baharu
B01
1000
P01
Baharu
B02
1500
P01
Baharu
B03
2000
P02
Sinar
B03
1000
P03
Harapan
B02
2000
Ketergantungan fungsional : No-pem Æ Na-pem No-bar, No-pem Æ Jumlah
(Tergantung penuh terhadap key-nya)
Ketergantungan Transitif Definisi : Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R.( X Æ Y, Y Æ Z , maka X Æ Z) Contoh : No-pem P01 P01 P01 P02 P03
Kode-kota 1 1 1 3 2
Kota Jakarta Jakarta Jakarta Bandung Surabaya
No-bar B01 B02 B03 B03 B02
Jumlah 1000 1500 2000 1000 2000
AS/400 hal.B.8
TSI Perbankan
Ketergantungan fungsional : No-pem
Kode-kota
Kode-kota
Kota , maka
No-pem
Kota
Bentuk Normal Kesatu (1NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data Tabel KIRIM-1 (Unnormal) No-pem P01
Kode-kota 1
Kota Jakarta
No-bar
Jumlah
B01
1000
B02
1500
B03
2000
P02
3
Bandung
B03
1000
P03
2
Surabaya
B02
2000
Tabel KIRIM-2 (1NF) No-pem
Kode-kota
Kota
No-bar
Jumlah
P01
1
Jakarta
B01
1000
P01
1
Jakarta
B02
1500
P01
1
Jakarta
B03
2000
P02
3
Bandung
B03
1000
P03
2
Surabaya
B02
2000
AS/400 hal.B.9
TSI Perbankan
Tabel KIRIM-3 (3NF) No-pem
No-bar
Jumlah
P01
B01
1000
P01
B02
1500
P01
B03
2000
P02
B03
1000
P03
B02
2000
Tabel PEMASOK-2 (3NF) No-pem
Kode-kota
Tabel PEMASOK-3 (3NF) Kode-kota
Kota
P01
1
1
Jakarta
P02
3
2
Surabaya
P03
2
3
Bandung
Normalisasi pada database perkuliahan Asumsi : •
Seorang mahasiswa dapat mengambil beberapa mata kuliah
•
Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa
•
Satu mata kuliah hanya diajarkan oleh satu dosen
•
Satu dosen dapat mengajar beberapa mata kuliah
•
Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai
AS/400 hal.B.11
TSI Perbankan
Tabel MAHASISWA-1 ( Unnormal ) No-
Nama-
Mhs
Mhs
2683
Welli
5432
Bakri
Jurusan
Kode-
Nama-MK
Kode-Dosen Nama-
MK MI Ak.
Nilai
Dosen
MI350
Manajamen DB
B104
Ati
A
MI465
Analsis Prc. Sistem
B317
Dita
B
MI350
Manajemen DB
B104
Ati
C
AKN201
Akuntansi Keuangan
D310
Lia
B
MKT300
Dasar Pemasaran
B212
Lola
A
Tabel MAHASISWA-2 ( 1NF ) NoMhs
Nama-
2683
Welli
2683
Jurusan
KodeMK
Nama-MK
MI
MI350
Manajamen DB
B104
Ati
A
Welli
MI
MI465
Analsis Prc. Sistem
B317
Dita
B
5432
Bakri
Ak.
MI350
Manajemen DB
B104
Ati
C
5432
Bakri
Ak.
AKN201
Akuntansi Keuangan
D310
Lia
B
5432
Bakri
Ak.
MKT300
Dasar Pemasaran
B212
Lola
A
Mhs
Kode-Dosen
NamaDosen
Diagram Ketergantungan Fungsional Nama_Mhs No Jurusan
Jurusan
Nilai Nama-MK Kode-MK
Nilai
Kode-Dosen Nama-Dosen
AS/400 hal.B.12
TSI Perbankan
Tabel KULIAH (2NF) Kode-MK Nama-MK
Kode-Dosen
Nama-Dosen
MI350
Manajamen DB
B104
Ati
MI465
Analsis Prc. Sistem
B317
Dita
AKN201
Akuntansi Keuangan
D310
Lia
MKT300
Dasar Pemasaran
B212
Lola
Tabel MAHASISWA-3 (3NF) Jurusan No-Mhs Nama-Mhs 2683
Welli
MI
5432
Bakri
Ak.
Tabel NILAI (3NF) No-Mhs Kode MK
Nilai
2683
MI350
A
2683
MI465
B
5432
MI350
C
5432
AKN201
B
5432
MKT300
A
Tabel MATAKULIAH (3NF) Kode-MK
Nama-MK
Kode-Dosen
MI350
Manajamen DB
B104
MI465
Analsis Prc. Sistem
B317
AKN201
Akuntansi Keuangan
D310
MKT300
DasarPemasaran
B212
AS/400 hal.B.13
TSI Perbankan
Tabel DOSEN (3NF) Kode- Dosen
Nama-Dosen
B104
Ati
B317
Dita
B310
Lia
B212
Lola
1.3 STRUCTURED QUERY LANGUAGE (SQL) SQL/400 terdiri dari tiga bagian : 1. SQL parser dan run-time support Bagian ini digunakan untuk menguraikan perintah-perintah SQL dan memberikan dukungan terhadap jalannya perintah-perintah SQL. SQL/400 menyediakan interface dengan fungsi-fungsi sistem yang ada untuk menggunakan perintah-perintah SQL. Dukungan tersebut merupakan bagian dari Operating System/400
AS/400 hal.B.14
TSI Perbankan
Jenis perintah-perintah SQL Ada dua jenis perintah SQL, yaitu perintah pendefinisian data (Data Definition Languange
(DDL))
dan
Data
Manipulation
Language
(DML).
Perintah
pendefinisian data hanya dapat dioperasikan pada objek yang dibuat pada database SQL. Perintah manipulasi data dapat beroperasi pada objek yang dibuat SQL atau physical file dan logical file. Berikut ini termasuk perintah pendefinisian data (DDL) COMMENTS ON
DROP
CREATE DATABASE
GRANT
CREATE INDEX
LABEL ON
CREATE TABLE
REVOKE
CREATE VIEW Berikut ini termasuk perintah manipulasi data (DML) CLOSE
LOCK TABLE
COMMIT
OPEN
DECLARE CURSOR
ROLLBACK
DELETE
SELECT
FETCH
UPDATE
INSERT Membentuk sebuah Database SQL SQL/400 database adalah objek dasar dimana tabel-tabel, view dan index akan ditempatkan. Otoritas untuk perintah CRTLIB dan CRTDTADCT CL diperlukan untuk menjalankan perintah CREATE DATABASE. Bentuk Umum : CREATE DATABASE database-name Contoh : CREATE DATABASE user01dbs
AS/400 hal.B.15
TSI Perbankan
Setelah berhasil membentuk sebuah database maka tabel-tabel, view dan index dapat diletakkan. Membentuk dan Menggunakan Tabel Perintah yang digunakan untuk membentuk tabel dan mendefinisikan atributatribut fisik dari kolom adalah CREATE TABLE. Bentuk Umum : CREATE TABLE table-name (column-name1 data-type1 null, column-name2 data-type2 null, … column-namen data-typen null) Parameter pertama yang digunakan pada perintah tersebut adalah nama kolom, kemudian tipe data untuk kolom tersebut dan parameter terakhir menunjukkan apabila kolom dapat berisi nilai null. Ada dua pilihan untuk nilai null yaitu NOT NULL atau NOT NULL WITH DEFAULT. * Tabel harus dibentuk di dalam database SQL, tidak dapat dibentuk di dalam LIBRARY Perintah LABEL ON Perintah ini digunakan untuk memberikan judul tabel dan kolom. Bentuk Umum : LABEL ON TABLE database-name.table-name IS 'string' LABEL ON COLUMN database-name.table-name.column-name IS 'string'
Perintah INSERT Perintah untuk menambah baris baru dalam tabel atau view dengan menggunakan salah satu cara di bawah ini •
Menentukan nilai data untuk kolom dalam perintah INSERT sebuah baris
•
Memasukkan perintah SELECT dalam INSERT untuk menyatakan data baru yang akan ditambahkan.
AS/400 hal.B.16
TSI Perbankan
Bentuk umum : INSERT INTO table-name [(column-name-1 [, column-name-2] …)] VALUES (value-1 [, value-2] …)
Perintah UPDATE Perintah yang digunakan untuk merubah data dalam tabel. Bentuk umum : UPDATE table-name SET column-name-1 = value-expression [, column-name-2 = value-expression] … WHERE search-condition
Perintah DELETE Digunakan menghapus baris dari tabel Bentuk umum : DELETE FROM table-name WHERE search-condition Perintah SELECT Perintah ini digunakan untuk menampilkan data yang sudah tersimpan dalam tabel. Ada tiga bagian utama pada perintah ini, yaitu : 1. Klausa SELECT, yang menunjukkan kolom-kolom yang dipilih untuk data yang diinginkan. 2. Klausa FROM, yang menunjukkan tabel yang dipilih untuk data yang diinginkan. 3. Klausa WHERE, sebagai suatu filter/penyaring untuk menunjukkan data yang diinginkan.
AS/400 hal.B.17
TSI Perbankan
Bentuk umum : SELECT column-names FROM table-name or view-name WHERE search-condition GROUP BY column-names HAVING search-condition Keterangan : Column-names, menyebutkan nama-nama kolom yang akan dipilih datanya. Table_name atau view_name, menyebutkan nama table atau nama view sesuai dengan nama kolom yang disebutkan. Search-condition, berupa suatu kondisi pencarian untuk data yang akan ditampilkan. Membentuk dan Menggunakan View Perintah ini dapat digunakan apabila diinginkan untuk mengambil informasi dari beberapa tabel, tapi mempunyai keterbatasan untuk mengakses jenis-jenis data tertentu, seperti misalnya data gaji. Membentuk sebuah view dapat dilakukan dengan cara yang sama seperti membentuk tabel. Otoritas SELECT pada tabel harus dipunyai agar dapat membentuk view. Bentuk Umum : CREATE VIEW view-name AS SELECT statement *
Sebuah view hanya dapat dibentuk pada tabel atau file yang terdapat pada database SQL, bukan pada LIBRARY.
*
Pada view tidak dapat dilakukan perubahan, pemasukan atau menghapus data, jika : -
klausa FROM menggunakan lebih dari satu tabel (join)
-
klausa FROM menunjukkan read-only view
-
Menggunakan fungsi-fungsi SUM,MAX,MIN, AVG atau COUNT AS/400 hal.B.18
TSI Perbankan
-
Menggunakan perintah DISTINCT
-
Menggunakan perintah GROUP BY atau HAVING
Perintah DROP Perintah ini digunakan untuk menghapus sebuah objek. Objek-objek yang secara langsung atau tidak langsung tergantung pada objek tersebut akan terhapus pula. Perintah ini dapat dilakukan melalui aplikasi program atau secara interaktif. Untuk dapat melakukan penghapusan tabel, view atau index hak akses dikendalikan oleh identitas otoritas Bekerja dengan Index Sebuah index digunakan oleh sistem untuk proses pengambilan data agar lebih cepat. Bentuk Umum : CREATE INDEX index_name ON database_name.table_name(column_name) *
Sebuah index hanya dapat dibentuk pada tabel dan file yang terdapat didatabase SQL.
Perintah COMMENT ON Perintah ini digunakan untuk memberikan komentar terhadap sebuah kolom. Komentar ini berguna apabila nama dari kolom tidak mengidentifikasi secara jelas isi dari kolom atau tabel tersebut. Bentuk Umum : COMMENT ON TABLE database-name.column-name IS ‘string’ Komentar ini akan disimpan pada REMARKS yang terletak di SYSCOLUMS dan SYSTABLES.
AS/400 hal.B.19
TSI Perbankan
Perintah GRANT Perintah untuk memberikan hak akses tabel dan view kepada user. Perintah ini dapat diletakkan pada sebuah program aplikasi atau secara interaktif.
Autorisasi Hak akses dikendalikan authorization ID •
Menentukan setiap hak akses dan hubungan dari objek
•
Menentukan setiap hak akses dan autorisasi *OBJMGT dan *OBJOPR pada tabel atau view
Untuk menentukan hak akses, kita harus •
Menjadi pemilik objek
•
Mempunyai hak
Bentuk umum : GRANT
ALL ALL PRIVILEGES , DELETE INDEX INSERT SELECT UPDATE
, TO
auth-id PUBLIC
, ON
table-name TABLE
view-name
AS/400 hal.B.20
TSI Perbankan
Keterangan ALL atau ALL PRIVILEGES Memberikan semua hak akses yang dimiliki untuk semua tabel atau view yang ada pada klausa ON. Memberikan hak dengan ALL PRIVILEGES pada tabel atau view tidak sama dengan pemberian hak dari sistem dengan autoritas *ALL. Jika tidak menggunakan ALL maka dapat digunakan satu atau beberapa keyword di bawah ini : DELETE
menggunakan peritantah DELETE
INDEX
Menggunakan perintah CREATE INDEX. View mungkin belum ditentukan pada saat memberikan hak akses INDEX .
INSERT
Menggunakan perintah INSERT
SELECT
Menggunakan perintah SELECT
UPDATE
Menggunakan perintah UPDATE
ON atau ON TABLE Table-name dan view-name adalah tabel atau view yang diberikan hak akses. TO Menentukan kepada siapa hak akses diberikan Auth-id Menyebutkan satu atau lebih identitas otorisasi (nama user). Tidak diijinkan menggunakan lebih dari satu nama user yang sama. PUBLIC Memberikan hak akses ke PUBLIC
AS/400 hal.B.21
TSI Perbankan
Hak Akses SQL
Hubungan Dengan Sistem AS/400 Ketika Memberikan Hak Pada Table
ALL
(hanya *OBJMGT
memberikan hak akses *OBJOPR yang dimiliki)
*ADD *DLT *READ *UPD
DELETE
*OBJOPR *DELETE
INDEX
*OBJMGT
INSERT
*OBJOPR *ADD
SELECT
*OBJOPR *READ
UPDATE
*OBJOPR *UPD
Hak Akses SQL
ALL
Hubungan Dengan
Hubungan Dengan
Sistem AS/400
Sistem AS/400
Ketika Memberikan Hak
Ketika Memberikan Hak
Pada View
Pada Table
(hanya *OBJOPR
*ADD
memberikan hak akses
*DLT
yang dimiliki)
*READ *UPD
DELETE
*OBJOPR
*DLT
INDEX
N/A
N/A
INSERT
*OBJOPR
*ADD
SELECT
*OBJOPR
*READ
UPDATE
*OBJOPR
*UPD
AS/400 hal.B.22
TSI Perbankan
Apabila view-nya read-only maka hanya hak SELECT yang dapat diberikan. Apabila INSERT tidak diperbolehkan pada view maka hak INSERT tidak dapat diberikan. Contoh : GRANT SELECT ON CORPDATA.EMP PULASKI
Perintah REVOKE Perintah revoke akan mencabut hak akses pada tabel dan view dari user. Perintah ini dapat dilakukan melalui aplikasi program atau secara interaktif. Hak akses dari perintah ini termasuk ke dalam otoritas *OBJMGT dikendalikan oleh otoritas yang dimiliki seorang user. Bentuk Umum : ALL REVOKE
ALL PRIVILEGES , DELETE INDEX INSERT SELECT UPDATE
,
auth-id
FROM
PUBLIC
, ON
table-name TABLE
view-name AS/400 hal.B.23
TSI Perbankan
Keterangan : ALL atau ALL PRIVILEGES Mencabut seluruh hak akses tabel untuk tabel dan view yang diinginkan. Jika tidak menggunakan ALL, harus disebutkan satu atau lebih kata kunci berikut ini. Setiap kata kunci mencabut hak akses yang diinginkan, tetapi hanya untuk nama tabel dan view pada klausa ON. DELETE
menggunakan peritantah DELETE
INDEX
menggunakan perintah CREATE INDEX. View mungkin belum ditentukan pada saat memberikan hak akses INDEX .
INSERT
Menggunakan perintah INSERT
SELECT
Menggunakan perintah SELECT
UPDATE
Menggunakan perintah UPDATE
ON atau ON TABLE Satu atau lebih nama tabel atau view yang akan dicabut hak aksesnya. Penyebutan namanya dapat terdiri dari nama tabel, nama view atau gabungan keduanya. FROM Menyebutkan dari siapa(nama user) hak akses tersebut akan dicabut Auth-id Menyebutkan satu atau lebih identitas otorisasi (nama user). Tidak dijinkan menggunakan lebih dari satu nama user yang sama. PUBLIC Mencabut hak akses dari PUBLIC Contoh : Mencabut hak akses SELECT pada tabel COPRPDATA dari USER01 REVOKE SELECT ON TABLE CORPDATA FROM USER01
AS/400 hal.B.24
TSI Perbankan
1.4 PENGONTROLAN DATABASE Pengontrolan di Lingkungan Sistem Database Untuk menghindari resiko-resiko di atas tentunya diperlukan pengontrolan security terhadap sistem database serta lingkungan sistem secara keseluruhan di dalam organisasi. Pengontrolan di lingkungan sistem database meliputi : Struktur
Pengontrolan,
Administrasi
database,
Jenis
pemrosesan,
dan
pengontrolan akses database. Struktur Pengontrolan Konsep dari penggunaan data secara bersamaan oleh beberapa pemakai merupakan hal yang sangat penting di dalam DBMS. Di dalam sistem database, program aplikasi tidak dapat mengakses data dan melasksanakan fungsi-fungsi manajemen data secara langsung, tetapi harus melalui DBMS.
Mekanisme
akses yang perlu di kontrol adalah Data Independence, Data Sharing dan Data Manipulation. Penetapan siapa yang menjalankan fungsi-fungsi manipulasi data seperti penambahan, perubahan serta penghapusan merupakan hal-hal yang perlu diperhatikan oleh para Auditor. Administrator Database Pada saat penetapan DBMS, Organisasi harus mengontrol koordinasi antara aplikasi-aplikasi yang digunakan dengan bagian-bagian yang terkait yang menggunakan database secara bersama. Fungsi-fungsi ini biasanya dilaksanakan oleh Administrator Database (DBA) dan Adminstator security data. DBA merupakan merupakan faktor yang penting di dalam review para Auditor dan pengevaluasi pengontrolan. Melalui diskusi dengan DBA, Auditor dapat mengetahui tentang database yang digunakan dan pengontrolan apa saja di laksanakan.
AS/400 hal.B.25
TSI Perbankan
Untuk mempermudah pemahaman para auditor terhadap sistem database yang tersedia serta pemrosesannya diperlukan alat-alat bantu seperti diagramdiagram untuk menggambarkan alur data dan pemodelan data. Dengan menggunakan alat-alat tersebut, para auditor dapat dengan mudah melihat pendefinisian data, keterhubungan antar data dan keterhubungan data dengan program aplikasi. Pemrosesan Batch atau On-line Di dalam Sistem database biasanya terdapat pemrosesan aplikasi secara lansung (on-line) atau pemrosesan aplikasi secara tidak langsung (batch). Pemrosesan batch merupakan pemrosesan transaksi pada saat interval tertentu atau seterlah sejumlah transaksi di akumulasi.
Sistem database biasanya
dilengkapi dengan fasilitas menjalankan aplikasi batch. Aplikasi secara on-line biasanya berhubungan dengan retrieve database secara langsung. Peng-updatean dan pemeliharaan biasanya ditangani oleh aplikasi batch pelaksanaannya dilakukan setelah transaksi-transaksi tersebut diakumulasi melalui entri data secara on-line. Peng-updatean secara on-line biasanya digunakan untuk sistem-sistem seperti sistem Airline atau sistem penyetujuan kredit.
Pengontrolan Akses Database Karena DBMS menyediakan penyimpanan data terintegrasi, maka diperlukan penetapan kontrol terhadap pemakai yang mengakses data. Para Auditor perlu memperhatikan pengontrolan data di dalam sistem database yang terdiri dari : •
Pengontrolan akses
•
Perincian akses
•
Pemisahan pengujian dan produksi
Pengontrolan Akses
AS/400 hal.B.26
TSI Perbankan
Pengontrolan akses pada lingkungan database on-line dapat dibagi menjadi tiga level : •
Sign on Identifikasi dan pengecekkan pemakai pada saat log on.
•
Pemroteksian Transaksi Penggunaan security untuk membatasi transaksi terhadap fungsi pekerjaan.
•
Pemroteksian perintah Pada saat perintah didefinisikan untuk meminta password, sistem seharus nya tidak mengijinkan pemakai untuk melaksanakan transaksi apabila password tidak dispesifikasikan.
Perincian dari Akses Pemakai dan program-program yang terotorisasi seharusnya dapat mengakses hanya entity-entity yang diperlukan untuk melaksanakan fungsi pekerjaan dan pemrosesan tugas-tugas. Database dirancang untuk membantu dalam menyediakan pengontrolan yang sesuai pada akses elemen data, tabel-tabel, dan kapabilitas. Perancangan struktur database dan penerjemahan permintaan pemakai merupakan tugas yang cukup berat. Oleh karena itu Auditor perlu memperhatikan database yang mempunyai pengontrolan akses yang tidak sesuai. Misalkan menggunakan perintah GRANT. Pemisahan pengujian dan produksi Pengontrolan akses data selama produksi normal merupakan hal yang utama, tetapi pengontrolan pada saat pengujian program aplikasi dan sistem sama pentingnya. Pengujian harus diselesaikan dengan menggunakan test database untuk menjamin bahwa produksi data tidak berubah dan data yang sensitif tidak mudah dilihat. Oleh karena itu Auditor seharusnya menentukan pengujian database yang digunakan selama pengembangan.
AS/400 hal.B.27
TSI Perbankan
1.5 PERANCANG4N MO0.0023 T.deeATa4RELAS gs0.0e Tm0 Tf18 0 9 0 7 s a4GS1 gs
AS/400 hal.B.28
TSI Perbankan
Proses perancangan Database
Fase 1
Pengumpulan & Analisis Permintaan
Fase 2
Perancangan Konseptual
Fase 3
Pemilihan DBMS
Fase 4
Perancangan Logika
Fase 5
Perancangan Fisik
Fase 6
Implementasi
Tujuan Perancangan Database adalah : •
Menyajikan data dan hubungan antar data yang diperlukan oleh pemakai dan aplikasi
•
Mempermudah pemahaman informasi
•
Melengkapi model data yang mendukung transaksi-transaksi yang diperlukan
•
Mendukung proses permintaan
•
Meningkatkan performance
AS/400 hal.B.29
TSI Perbankan
Proses Perancangan Database Logika Model Data Konseptual
Transformasi
Normalisasi
Penggabungan Relasi
Model Data Logika
Perancangan Proses vs Perancangan Database
PROCESS-DRIVEN
DATA-DRIVEN
Analisis Permintaan
Analisis Permintaan
Perancangan Proses
Perancangan Database
Perancangan Database
Perancangan Proses
Implementasi
Implementasi
AS/400 hal.B.30
TSI Perbankan
Pemodelan data dengan menggunakan ER-Diagram Simbol-simbol ER-Diagram Notasi
Arti
1.
1. Entity
2.
2. Weak Entity
3.
3. Relationship
4.
4. Identifying Relationship
5.
5. Atribut
6.
6. Atribut Primary Key
7.
7. Atribut Multivalue
8.
8. Atribut Composite
9.
9. Atribut Derivatif
AS/400 hal.B.31
TSI Perbankan
Contoh Penggambaran Diagram ER KDPOS
ALM1 NOPEG
NAPEG
N
TGLLAH UMUR
NOBAG
ALAMAT
PEGAWAI
BAGIAN
1
1
N
LOKASI
1
ANGGOTA
PIMPIN
1
NABAG
1
M JAM
KONTROL KERJA
PUNYA
N
1
PROYEK
PUNYA
LOKAPR
NOPRO
N
NAPRO
TANGGUNGAN
NAMA
JNKELT
HUBUNGAN
AS/400 hal.B.32
TSI Perbankan
Transformasi dari ERD ke Database Relasional 1. Setiap tipe Entity dibuat suatu relasi yang memuat semua atribut simple, sedangkan untuk atribut composite hanya dimuat komponen-komponennya saja. NOPEG
PEGAWAI
ALM1
KDPOS ALAMAT
PEGAWAI (NOPEG, ALM1, KDPOS, …….) 2. Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut multivalue.
....
NOPRO
LOKASI
PROYEK LOKPR(NOPRO, LOKASI) 3. Setiap Unary Relationship 1:N, pada relasi perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary keynya. NOPEG
……. 1
PEGAWAI
KONTROL
N PEGAWAI (NOPEG, ….., SUPERVISOR-ID)
AS/400 hal.B.33
TSI Perbankan
4. Setiap Unary Relationship M:N, buatlah relasi baru dimana primary keynya merupakan gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal dengan penamaan yang berbeda. NOBAR
……. M
BARANG
TERDIRI
JUMLAH
N KOMBAR (NOBAR, NOKOMP , JUMLAH) 5. Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah suatu relasi gabungan dimana Primary Keynya dapat dipilih salah satu. NOPRO
NOPEG
PEGAWAI 1
KERJA
1
PROYEK
PEGAWAI (NOPEG, ... , NOPRO, ...). 6. Setiap Binary Relationship 1:1 dan salah satu Participation Constraintnya Total, maka Primary Key pada relasi yang Participation Constraintnya Partial menjadi Foreign Key pada relasi yang lainnya. NOBAG
NOPE G
1
PEGAWAI
PIMPIN
1
BAGIAN
BAGIAN (NOBAG, ... , MANAGER)
AS/400 hal.B.34
TSI Perbankan
7. Setiap Binary Relationship 1:1, dimana kedua Participation Constraintnya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPRO
NOPEG
1
1
KERJA
PEGAWAI
PROYEK
PEKERJAAN ( NOPEG, NOPRO, …) 8. Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi N. NOBAG
NOPRO
……….
1
BAGIAN
N
PUNYA
PROYEK
PROYEK (NOPRO, ... , NOBAG) 9. Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint partial, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPEG
PEGAWAI
NOPRO
………
N
KERJA
1
PROYEK
PEKERJAAN (NOPEG, NOPRO, ……)
AS/400 hal.B.35
TSI Perbankan
10. Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPEG
PEGAWAI
NOPRO
…… ..
M
KERJA
N PROYEK
PEKERJAAN (NOPEG, NOPRO, …..) 11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key ketiga tipe Entity yang berelasi.
NOPRO
NOPEG
KERJA
PEGAWAI
PROYEK
KOTA
NOKOT
PEKERJAAN ( NOPEG, NOPRO , NOKOT) 12. Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya dimana Primary Keynya adalah gabungan dari Partial Key dan Primary Key dari relasi induknya (identifying owner).
AS/400 hal.B.36
TSI Perbankan
NOPEG
NAMA
………
1 PEGAWAI
…….
N PUNYA
TANGGUNGAN
TANGGUNGAN (NOPEG, NAMA, ….) Hasil Transformasi dari Diagram ER ke database relasional : Skema Database PEGAWAI
(NOPEG, NAPEG, ALM1, KDPOS,TGLLAH, UMUR, SUPERVISOR-ID, NOBAG)
BAGIAN
(NOBAG, NABAG, LOKASI, MANAGER)
PROYEK
(NOPRO, NAPRO, NOBAG)
LOKPR
(NOPRO, LOKAPR)
PEKERJAAN
(NOPEG, NOPRO, JAM)
TANGGUNGAN (NOPEG, NAMA, JNKELT, HUBUNGAN)
AS/400 hal.B.37