Anda di halaman 1dari 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

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

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

Bandung

B03

1000

P03

Surabaya

B02

2000

Tabel KIRIM-2 (1NF)


No-pem

Kode-kota

Kota

No-bar

Jumlah

P01

Jakarta

B01

1000

P01

Jakarta

B02

1500

P01

Jakarta

B03

2000

P02

Bandung

B03

1000

P03

Surabaya

B02

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

Kode-kota

Kota

P01

Jakarta

P02

Bandung

P03

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)


No-pem

Kode-kota

Tabel PEMASOK-3 (3NF)


Kode-kota

Kota

P01

Jakarta

P02

Surabaya

P03

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

MI465

Analsis Prc. Sistem

B317

Dita

MI350

Manajemen DB

B104

Ati

AKN201

Akuntansi Keuangan

D310

Lia

MKT300

Dasar Pemasaran

B212

Lola

Tabel MAHASISWA-2 ( 1NF )


NoMhs

Nama-

2683

Welli

2683

Jurusan

KodeMK

Nama-MK

MI

MI350

Manajamen DB

B104

Ati

Welli

MI

MI465

Analsis Prc. Sistem

B317

Dita

5432

Bakri

Ak.

MI350

Manajemen DB

B104

Ati

5432

Bakri

Ak.

AKN201

Akuntansi Keuangan

D310

Lia

5432

Bakri

Ak.

MKT300

Dasar Pemasaran

B212

Lola

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

2683

MI465

5432

MI350

5432

AKN201

5432

MKT300

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 (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 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 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
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

TGLLAH
UMUR

NOBAG

ALAMAT

PEGAWAI

BAGIAN

LOKASI

ANGGOTA

PIMPIN

NABAG

M
JAM

KONTROL
KERJA

PUNYA

PROYEK

PUNYA

LOKAPR

NOPRO

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

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

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

NOPEG

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

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

PEGAWAI

NOPRO

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

PEGAWAI

NOPRO

..

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

Anda mungkin juga menyukai