Konsep Dasar DBM S&SQL Rev1
Konsep Dasar DBM S&SQL Rev1
HOME
DAFTAR ISI
AS/400 hal.B.1
TSI Perbankan
Untuk mengatasi ketidak konsistenan dan duplikasi data dengan menggunakan konsep normalisasi
Struktur Tabular
Tabular View
Fleksibel
Mudah digunakan
AS/400 hal.B.2
TSI Perbankan
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
Informal
Relation
Tabel
Tuple
Baris / record
Cardinality
Jumlah baris
Atrribute
Atribut / field
Degree
Jumlah atribut
Domain
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) :
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:
Terdapat suatu relasi lain yang mempunyai Primary Key yang mempunyai
nilai yang sama dengan atribut foreign key tersebut.
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.
AS/400 hal.B.5
TSI Perbankan
Proses Normalisasi
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
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
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
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
Kode-kota
1
Kota
Jakarta
No-bar
Jumlah
B01
1000
B02
1500
B03
2000
P02
Bandung
B03
1000
P03
Surabaya
B02
2000
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
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.
Kode-kota
Kota
P01
Jakarta
P02
Bandung
P03
Surabaya
AS/400 hal.B.10
TSI Perbankan
No-bar
Jumlah
P01
B01
1000
P01
B02
1500
P01
B03
2000
P02
B03
1000
P03
B02
2000
Kode-kota
Kota
P01
Jakarta
P02
Surabaya
P03
Bandung
Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa
Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai
AS/400 hal.B.11
TSI Perbankan
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
B317
Dita
MI350
Manajemen DB
B104
Ati
AKN201
Akuntansi Keuangan
D310
Lia
MKT300
Dasar Pemasaran
B212
Lola
Nama-
2683
Welli
2683
Jurusan
KodeMK
Nama-MK
MI
MI350
Manajamen DB
B104
Ati
Welli
MI
MI465
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
Jurusan
Nilai
Nama-MK
Kode-MK
Nilai
Kode-Dosen
Nama-Dosen
AS/400 hal.B.12
TSI Perbankan
Kode-Dosen
Nama-Dosen
MI350
Manajamen DB
B104
Ati
MI465
B317
Dita
AKN201
Akuntansi Keuangan
D310
Lia
MKT300
Dasar Pemasaran
B212
Lola
Welli
MI
5432
Bakri
Ak.
Nilai
2683
MI350
2683
MI465
5432
MI350
5432
AKN201
5432
MKT300
Nama-MK
Kode-Dosen
MI350
Manajamen DB
B104
MI465
B317
AKN201
Akuntansi Keuangan
D310
MKT300
DasarPemasaran
B212
AS/400 hal.B.13
TSI Perbankan
Nama-Dosen
B104
Ati
B317
Dita
B310
Lia
B212
Lola
AS/400 hal.B.14
TSI Perbankan
(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
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.
TSI Perbankan
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 autorisasi *OBJMGT dan *OBJOPR pada
tabel atau view
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
INDEX
INSERT
SELECT
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
ALL
(hanya *OBJMGT
*ADD
*DLT
*READ
*UPD
DELETE
*OBJOPR
*DELETE
INDEX
*OBJMGT
INSERT
*OBJOPR
*ADD
SELECT
*OBJOPR
*READ
UPDATE
*OBJOPR
*UPD
ALL
Hubungan Dengan
Hubungan Dengan
Sistem AS/400
Sistem AS/400
Pada View
Pada Table
(hanya *OBJOPR
*ADD
*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
INDEX
INSERT
SELECT
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
Pengontrolan,
Administrasi
database,
Jenis
pemrosesan,
dan
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
Pengontrolan akses
Perincian akses
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.
AS/400 hal.B.27
TSI Perbankan
Menyederhanakan pemrograman
Meningkatkan performance
tidak
sesuai
dengan
apa
yang
kita
inginkan.
Kemungkinan-
Hilangnya Informasi
AS/400 hal.B.28
TSI Perbankan
Fase 1
Fase 2
Perancangan Konseptual
Fase 3
Pemilihan DBMS
Fase 4
Perancangan Logika
Fase 5
Perancangan Fisik
Fase 6
Implementasi
Menyajikan data dan hubungan antar data yang diperlukan oleh pemakai
dan aplikasi
Meningkatkan performance
AS/400 hal.B.29
TSI Perbankan
Transformasi
Normalisasi
Penggabungan Relasi
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
Arti
1.
1. Entity
2.
2. Weak Entity
3.
3. Relationship
4.
4. Identifying Relationship
5.
5. Atribut
6.
7.
7. Atribut Multivalue
8.
8. Atribut Composite
9.
9. Atribut Derivatif
AS/400 hal.B.31
TSI Perbankan
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
PEGAWAI
ALM1
KDPOS
ALAMAT
....
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
.
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
NOPE
G
PEGAWAI
PIMPIN
BAGIAN
AS/400 hal.B.34
TSI Perbankan
NOPEG
KERJA
PEGAWAI
PROYEK
NOPRO
BAGIAN
PUNYA
PROYEK
PEGAWAI
NOPRO
KERJA
PROYEK
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
NOPRO
NOPEG
KERJA
PEGAWAI
PROYEK
KOTA
NOKOT
AS/400 hal.B.36
TSI Perbankan
NOPEG
NAMA
1
PEGAWAI
N
PUNYA
TANGGUNGAN
BAGIAN
PROYEK
LOKPR
(NOPRO, LOKAPR)
PEKERJAAN
AS/400 hal.B.37