TSI Perbankan DAFTAR ISI HOME 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 meng- gunakan 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 BAGIAN Attribute Relation NOBAG NABAG KABAG Cardinality PRODUKSI P030 Foreign Key C01 ADMINISTRASI P070 D01 PEMASARAN P020 Tuple B01 NAPEG NOBAG Domain Primary Key ASTRIDITA C01 EMILIA B01 PEGAWAI ARKADIA C01 INDIRA B01 NOPEG DIANDRA D01 NADIRA D01 010 020 Degree 030 050 070 100 NOPEG NAPEG BAGIAN P010 ASTRIDITA C01 P020 EMILIA B01 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 1. Bahasa Query Formal Aljabar Relasional (Prosedural) 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 No-bar Jumlah Tabel Kirim-Barang B01 1000 No-pem Na-pem B02 1500 B03 2000 P01 Baharu B03 1000 P01 Baharu B02 2000 P01 Baharu P02 Sinar P03 Harapan Ketergantungan fungsional : (Tergantung penuh terhadap key-nya) No-pem Æ Na-pem No-bar, No-pem Æ Jumlah 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 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.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-bar Jumlah No-pem Kode-kota Kota P01 1 Jakarta B01 1000 B02 1500 B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Tabel KIRIM-2 (1NF) No-bar Jumlah No-pem Kode-kota Kota B01 1000 B02 1500 P01 1 Jakarta B03 2000 P01 1 Jakarta B03 1000 P01 1 Jakarta B02 2000 P02 3 Bandung P03 2 Surabaya AS/400 hal.B.9
TSI Perbankan Diagram Ketergantungan Fungsional No-pem Kode-kota 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 Kode-kota Kota P01 1 Jakarta P02 3 Bandung P03 2 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 No-bar Jumlah P01 B01 1000 P01 B02 1500 P01 B03 2000 P02 B03 1000 P03 B02 2000 Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF) No-pem Kode-kota 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- Jurusan Kode- Nama-MK Kode-Dosen Nama- Nilai Mhs Mhs MI MK 2683 Welli MI350 Dosen A MI465 B 5432 MI350 Manajamen DB B104 Ati C AKN201 B MKT300 Analsis Prc. Sistem B317 Dita A Bakri Ak. Manajemen DB B104 Ati Akuntansi Keuangan D310 Lia Dasar Pemasaran B212 Lola Tabel MAHASISWA-2 ( 1NF ) No- Nama- Jurusan Kode- Nama-MK Kode-Dosen Nama- Nilai Mhs Mhs MK Dosen Welli MI Manajamen DB B104 Ati A 2683 Welli MI MI350 Analsis Prc. Sistem B317 Dita B 2683 Bakri Ak. MI465 Manajemen DB B104 Ati C 5432 Bakri Ak. MI350 Akuntansi Keuangan D310 Lia B 5432 Bakri Ak. AKN201 Dasar Pemasaran B212 Lola A 5432 MKT300 Diagram Ketergantungan Fungsional No Jurusan Nama_Mhs Jurusan Nilai Kode-MK Nama-MK Kode-Dosen Nama-Dosen AS/400 hal.B.12
TSI Perbankan Tabel KULIAH (2NF) Kode-Dosen Nama-Dosen Kode-MK Nama-MK B104 Ati MI350 Manajamen DB B317 Dita D310 Lia MI465 Analsis Prc. Sistem B212 Lola AKN201 Akuntansi Keuangan MKT300 Dasar Pemasaran Tabel MAHASISWA-3 (3NF) No-Mhs Nama-Mhs Jurusan 2683 Welli MI 5432 Bakri Ak. Tabel NILAI (3NF) Nilai No-Mhs Kode MK 2683 MI350 A 2683 MI465 B 5432 MI350 C 5432 AKN201 B 5432 MKT300 A Tabel MATAKULIAH (3NF) Kode-Dosen Kode-MK Nama-MK 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 mem- berikan dukungan terhadap jalannya perintah-perintah SQL. SQL/400 menye- diakan 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 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 atribut- atribut 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 : ALL ALL PRIVILEGES GRANT , 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 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 Hubungan Dengan Hubungan Dengan Sistem AS/400 Sistem AS/400 Ketika Memberikan Hak Ketika Memberikan Hak Pada View Pada Table ALL (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 ALL PRIVILEGES REVOKE , 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 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 dilaksana- kan 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 diagram- diagram 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 diakumu- lasi 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 menye- diakan 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. Kemungkinan- kemungkinan 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 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 Arti Notasi 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 ALM1 KDPOS NOPEG NAPEG ALAMAT NOBAG NABAG LOKASI TGLLAH UMUR N ANGGOTA 1 PEGAWAI 1 1 BAGIAN 1 1N PIMPIN PUNYA KONTROL M JAM KERJA 1N PUNYA PROYEK N NOPRO LOKAPR TANGGUNGAN NAPRO 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 PEGAWAI 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. NOPEG NOPRO 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. NOPE 1 NOBAG G PIMPIN 1 PEGAWAI 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 1 KERJA NOPRO PEGAWAI 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 1 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 ……… NOPRO PEGAWAI 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 …… .. NOPRO M KERJA N PEGAWAI 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 KERJA NOPRO KOTA PEGAWAI 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 N PEGAWAI 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
Search
Read the Text Version
- 1 - 37
Pages: