You are on page 1of 37

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 C01 D01 B01 Primary Key PEGAWAI NOPEG 010 020 030 050 070 100 NAPEG ASTRIDITA EMILIA ARKADIA INDIRA DIANDRA NADIRA Degree NOBAG C01 B01 C01 B01 D01 D01 Tuple Foreign Key NABAG PRODUKSI ADMINISTRASI PEMASARAN KABAG P030 P070 P020 Cardinality

NOPEG P010 P020

NAPEG ASTRIDITA EMILIA

BAGIAN C01 B01

Domain

AS/400 hal.B.3

TSI Perbankan

Terminologi

Formal Relational Term


Relation
Tuple Cardinality Atrribute Degree Domain

Informal
Tabel
Baris / record Jumlah baris Atribut / field Jumlah atribut 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 atributatribut tersebut secara unik menentukan tuple-tuple di relasi tersebut Minimality, Jika atributatribut 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 P01 P02 P03 Na-pem Baharu Sinar 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 P01 P01 P01 P02 P03 Na-pem Baharu Baharu Baharu Sinar Harapan No-bar B01 B02 B03 B03 B02 Jumlah 1000 1500 2000 1000 2000

Ketergantungan fungsional : No-pem Na-pem Jumlah (Tergantung penuh terhadap key-nya) No-bar, No-pem

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 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 Y, Y Z , maka X Z)

AS/400 hal.B.8

TSI Perbankan

Ketergantungan fungsional :
No-pem Kode-kota No-pem Kode-kota Kota , maka 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 B01 B02 B03 P02 P03 3 2 Bandung Surabaya B03 B02 Jumlah 1000 1500 2000 1000 2000

Tabel KIRIM-2 (1NF)


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.9

TSI Perbankan

Diagram Ketergantungan Fungsional

Kode-kota No-pem Kota Jumlah No-bar


Bentuk Normal Kedua (2NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap keynya.

Tabel PEMASOK-1 (2NF)


No-pem P01 P02 P03 Kode-kota 1 3 2 Kota Jakarta Bandung Surabaya

Bentuk Normal Ketiga (3NF)


Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap keynya.

AS/400 hal.B.10

TSI Perbankan

Tabel KIRIM-3 (3NF)


No-pem P01 P01 P01 P02 P03 No-bar B01 B02 B03 B03 B02 Jumlah 1000 1500 2000 1000 2000

Tabel PEMASOK-2 (3NF)


No-pem P01 P02 P03 Kode-kota 1 3 2

Tabel PEMASOK-3 (3NF)


Kode-kota 1 2 3 Kota Jakarta Surabaya 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 )


NoMhs
2683 5432

NamaMhs
Welli Bakri

Jurusan
MI Ak.

KodeMK
MI350 MI465 MI350 AKN201 MKT300

Nama-MK
Manajamen DB Analsis Prc. Sistem Manajemen DB Akuntansi Keuangan Dasar Pemasaran

Kode-Dosen NamaDosen
B104 B317 B104 D310 B212 Ati Dita Ati Lia Lola

Nilai
A B C B A

Tabel MAHASISWA-2 ( 1NF )


NoMhs
2683 2683 5432 5432 5432 NamaMhs Welli Welli Bakri Bakri Bakri MI MI Ak. Ak. Ak. Jurusan

KodeMK
MI350 MI465 MI350 AKN201 MKT300

Nama-MK Manajamen DB Analsis Prc. Sistem Manajemen DB Akuntansi Keuangan Dasar Pemasaran

Kode-Dosen B104 B317 B104 D310 B212

NamaDosen Ati Dita Ati Lia Lola

Nilai A B C B A

Diagram Ketergantungan Fungsional


Nama_Mhs No Jurusan Jurusan

Nilai Nama-MK Kode-MK Kode-Dosen Nama-Dosen

AS/400 hal.B.12

TSI Perbankan

Tabel KULIAH (2NF) Kode-MK Nama-MK


MI350 MI465 AKN201 MKT300 Manajamen DB Analsis Prc. Sistem Akuntansi Keuangan Dasar Pemasaran

Kode-Dosen B104 B317 D310 B212

Nama-Dosen
Ati Dita Lia Lola

Tabel MAHASISWA-3 (3NF) Jurusan No-Mhs Nama-Mhs


2683 5432 Welli Bakri MI Ak.

Tabel NILAI (3NF) No-Mhs Kode MK


2683 2683 5432 5432 5432 MI350 MI465 MI350 AKN201 MKT300

Nilai

A B C B A

Tabel MATAKULIAH (3NF)


Kode-MK MI350 MI465 AKN201 MKT300 Nama-MK Manajamen DB Analsis Prc. Sistem Akuntansi Keuangan DasarPemasaran Kode-Dosen B104 B317 D310 B212

AS/400 hal.B.13

TSI Perbankan

Tabel DOSEN (3NF)


Kode- Dosen B104 B317 B310 B212 Nama-Dosen Ati Dita Lia 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 (OS/400), yang mengizinkan aplikasi yang berisi perintah SQL untuk dijalankan pada sistem dimana SQL tersebut tidak di-install. 2. SQL precompilers Bagian ini mendukung proses pre-compile perintah SQL yang ter-embedded pada bahasa pemrograman yang terletak di HOST (host languages). Tiga jenis bahasa pemrograman yang mendukung adalah: COBOL/400, AS/400 PL/I dan RPG III (bagian dari RPG/400). SQL yang terdapat pada host languages akan melakukan proses pre-compile dan mempersiapkan sebuah aplikasi program yang berisikan perintah-perintah SQL. Kemudian host language compiler akan melakukan compile terhadap source program. 3. SQL interactive interface Bagian ini akan memberikan antar muka yang interaktif untuk membentuk dan menjalankan perintah-perintah SQL.

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 CREATE DATABASE CREATE INDEX CREATE TABLE CREATE VIEW Berikut ini termasuk perintah manipulasi data (DML) CLOSE COMMIT DECLARE CURSOR DELETE FETCH 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 LOCK TABLE OPEN ROLLBACK SELECT UPDATE DROP GRANT LABEL ON REVOKE

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

table-name 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 INDEX INSERT SELECT UPDATE menggunakan peritantah DELETE Menggunakan perintah CREATE INDEX. View mungkin belum ditentukan pada saat memberikan hak akses INDEX . Menggunakan perintah INSERT Menggunakan perintah SELECT 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 ALL yang dimiliki)

Hubungan Dengan Sistem AS/400 Ketika Memberikan Hak Pada Table

(hanya *OBJMGT *ADD *DLT *READ *UPD

memberikan hak akses *OBJOPR

DELETE INDEX INSERT SELECT UPDATE

*OBJOPR *DELETE *OBJMGT *OBJOPR *ADD *OBJOPR *READ *OBJOPR *UPD

Hak Akses SQL

Hubungan Dengan Sistem AS/400 Ketika Memberikan Hak Pada View

Hubungan Dengan Sistem AS/400 Ketika Memberikan Hak Pada Table *ADD *DLT *READ *UPD

ALL yang dimiliki) DELETE INDEX INSERT SELECT UPDATE

(hanya *OBJOPR

memberikan hak akses

*OBJOPR N/A *OBJOPR *OBJOPR *OBJOPR

*DLT N/A *ADD *READ *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

, FROM

auth-id
PUBLIC

, ON TABLE

table-name 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 INDEX INSERT SELECT UPDATE menggunakan peritantah DELETE menggunakan perintah CREATE INDEX. View mungkin belum ditentukan pada saat memberikan hak akses INDEX . Menggunakan perintah INSERT Menggunakan perintah SELECT 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. 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. Mekanisme akses yang perlu di kontrol adalah Data Independence, Data Sharing dan Data

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 PERANCANGAN MODEL DATA RELASIONAL

Mengapa perancangan Database sangat penting Perancangan database merupakan salah satu aktifitas yang perlu diperhatikan di dalam pengembangan sistem informasi. Walaupun perancangan database hanya merupakan sebagian kecil dari pengembangan sistem, tapi perannya sangat besar dalam menciptakan sistem informasi yang handal . Peranan perancangan database diantaranya adalah : Mengekspresikan permintaan pemakai Mengantisipasi anomali-anomali dalam Memanipulasi Data Menyederhanakan pemrograman Mengurangi biaya pengeluaran Mempermudah pemahaman informasi Meningkatkan performance

Apabila database tidak dirancang dengan baik database yang dihasilkan mungkin tidak sesuai dengan apa yang kita inginkan. Kemungkinankemungkinan yang sering terjadi diantaranya adalah: Hilangnya Informasi Sukarnya memodifikasi database Memerlukan waktu yang lama dalam penulisan program Memerlukan waktu yang lama dalam akses database Menambah volume pekerjaan dalam sistem database Pemborosan waktu bagi Administrator

AS/400 hal.B.28

TSI Perbankan

Proses perancangan Database

Fase 1 Fase 2

Pengumpulan & Analisis Permintaan Perancangan Konseptual

Fase 3

Pemilihan DBMS

Fase 4

Perancangan Logika

Fase 5 Fase 6

Perancangan Fisik 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
Analisis Permintaan

DATA-DRIVEN
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. 6. 7. 8.

5. Atribut 6. Atribut Primary Key 7. Atribut Multivalue 8. Atribut Composite

9.

9. Atribut Derivatif

AS/400 hal.B.31

TSI Perbankan

Contoh Penggambaran Diagram ER


ALM1 NOPEG TGLLAH UMUR NAPEG KDPOS NOBAG NABAG LOKASI

ALAMAT

N PEGAWAI 1

ANGGOTA

1 1 BAGIAN 1
JAM

PIMPIN

N
KONTROL

M
KERJA PUNYA

PUNYA

PROYEK

NOPRO NAPRO

LOKAPR

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 ALM1 KDPOS ALAMAT

PEGAWAI

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.
NOPEG NOPRO

PEGAWAI 1

KERJA

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.
NOPE G NOBAG

PEGAWAI

PIMPIN

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.
NOPEG NOPRO

1
PEGAWAI

KERJA

1
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

BAGIAN

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 NOPRO

PEGAWAI

KERJA

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

..

NOPRO

PEGAWAI

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.

NOPEG

NOPRO

PEGAWAI

KERJA KOTA

PROYEK

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 PUNYA

N
TANGGUNGAN

TANGGUNGAN (NOPEG, NAMA, .) Hasil Transformasi dari Diagram ER ke database relasional : Skema Database PEGAWAI BAGIAN PROYEK LOKPR PEKERJAAN (NOPEG, NAPEG, ALM1, KDPOS,TGLLAH, UMUR, SUPERVISOR-ID, NOBAG) (NOBAG, NABAG, LOKASI, MANAGER) (NOPRO, NAPRO, NOBAG) (NOPRO, LOKAPR) (NOPEG, NOPRO, JAM)

TANGGUNGAN (NOPEG, NAMA, JNKELT, HUBUNGAN)

AS/400 hal.B.37

You might also like