Selasa, 13 April 2010

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
TSI Perbankan
AS/400 hal.B.2
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
TSI Perbankan
AS/400 hal.B.3
Contoh Database Relasional
Attribute
BAGIAN
NOBAG NABAG KABAG
Relation C01 PRODUKSI P030 Cardinality
D01 ADMINISTRASI P070
B01 PEMASARAN P020
Primary Key
PEGAWAI Foreign Key
NOPEG NAPEG NOBAG
010 ASTRIDITA C01 Tuple
020 EMILIA B01
030 ARKADIA C01
050 INDIRA B01
070 DIANDRA D01
100 NADIRA D01
Degree
NOPEG NAPEG BAGIAN
P010 ASTRIDITA C01
P020 EMILIA B01 Domain
TSI Perbankan
AS/400 hal.B.4
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.
TSI Perbankan
AS/400 hal.B.5
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)
Quel
2. Bahasa Query Komersial 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
TSI Perbankan
AS/400 hal.B.6
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
TSI Perbankan
AS/400 hal.B.7
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)
TSI Perbankan
AS/400 hal.B.8
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 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
TSI Perbankan
AS/400 hal.B.9
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 Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
TSI Perbankan
AS/400 hal.B.10
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 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.
TSI Perbankan
AS/400 hal.B.11
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
TSI Perbankan
AS/400 hal.B.12
No Jurusan
Tabel MAHASISWA-1 ( Unnormal )
No-
Mhs
Nama-
Mhs
Jurusan Kode-
MK
Nama-MK Kode-Dosen Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B
MKT300 Dasar Pemasaran B212 Lola A
Tabel MAHASISWA-2 ( 1NF )
No-
Mhs
Nama-
Mhs
Jurusan Kode-
MK
Nama-MK Kode-Dosen Nama-
Dosen
Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
2683 Welli MI MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
5432 Bakri Ak. AKN201 Akuntansi Keuangan D310 Lia B
5432 Bakri Ak. MKT300 Dasar Pemasaran B212 Lola A
Diagram Ketergantungan Fungsional
Nama_Mhs
Nilai
Nama-MK
Kode-MK Kode-Dosen
Nama-Dosen
Jurusan
TSI Perbankan
AS/400 hal.B.13
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)
No-Mhs Nama-Mhs Jurusan
2683 Welli MI
5432 Bakri Ak.
Tabel NILAI (3NF)
No-Mhs Kode MK Nilai
2683
MI350
A
2683 MI465 B
5432 MI350 C
5432 AKN201 B
5432 MKT300 A
Tabel MATAKULIAH (3NF)
Kode-MK Nama-MK Kode-Dosen
MI350
Manajamen DB
B104
MI465 Analsis Prc. Sistem B317
AKN201 Akuntansi Keuangan D310
MKT300 DasarPemasaran B212
TSI Perbankan
AS/400 hal.B.14
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.
TSI Perbankan
AS/400 hal.B.15
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
TSI Perbankan
AS/400 hal.B.16
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.
TSI Perbankan
AS/400 hal.B.17
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.
TSI Perbankan
AS/400 hal.B.18
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
TSI Perbankan
AS/400 hal.B.19
- 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.
TSI Perbankan
AS/400 hal.B.20
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
DELETE
INDEX
INSERT
SELECT
UPDATE
,
ALL
ALL PRIVILEGES
ON
TABLE view-name
table-name
,
TO auth-id
PUBLIC
,
TSI Perbankan
AS/400 hal.B.21
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
TSI Perbankan
AS/400 hal.B.22
Hak Akses SQL Hubungan Dengan Sistem AS/400
Ketika Memberikan Hak Pada Table
ALL (hanya
memberikan hak akses
yang dimiliki)
*OBJMGT
*OBJOPR
*ADD
*DLT
*READ
*UPD
DELETE *OBJOPR
*DELETE
INDEX *OBJMGT
INSERT *OBJOPR
*ADD
SELECT *OBJOPR
*READ
UPDATE *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
ALL (hanya
memberikan hak akses
yang dimiliki)
*OBJOPR *ADD
*DLT
*READ
*UPD
DELETE *OBJOPR *DLT
INDEX N/A N/A
INSERT *OBJOPR *ADD
SELECT *OBJOPR *READ
UPDATE *OBJOPR *UPD
TSI Perbankan
AS/400 hal.B.23
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 :
DELETE
INDEX
INSERT
SELECT
UPDATE
,
ALL
REVOKE ALL PRIVILEGES
TABLE view-name
table-name
,
ON
auth-id
PUBLIC
,
FROM
TSI Perbankan
AS/400 hal.B.24
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
TSI Perbankan
AS/400 hal.B.25
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.
TSI Perbankan
AS/400 hal.B.26
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
TSI Perbankan
AS/400 hal.B.27
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.
TSI Perbankan
AS/400 hal.B.28
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
TSI Perbankan
AS/400 hal.B.29
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
TSI Perbankan
AS/400 hal.B.30
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
TSI Perbankan
AS/400 hal.B.31
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
TSI Perbankan
AS/400 hal.B.32
Contoh Penggambaran Diagram ER
NOPEG NAPEG ALAMAT NABAG LOKASI
PEGAWAI
TGLLAH ANGGOTA
BAGIAN
UMUR
KERJA
NOBAG
PUNYA
JAM
1
M
N
N 1
1
P R O Y E K
NOPRO
NAPRO
ALM1 KDPOS
LOKAPR
TANGGUNGAN
NAMA JNKELT HUBUNGAN
N
PUNYA
KONTROL
PIMPIN
1 1
1 N
TSI Perbankan
AS/400 hal.B.33
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.
LOKPR(NOPRO, LOKASI)
3. Setiap Unary Relationship 1:N, pada relasi perlu ditambahkan suatu foreign
key yang menunjuk ke nilai primary keynya.
NOPEG …….
1
N
PEGAWAI (NOPEG, ….., SUPERVISOR-ID)
PROYEK
NOPRO .... LOKASI
PEGAWAI KONTROL
TSI Perbankan
AS/400 hal.B.34
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.
1 1
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.
1 1
BAGIAN (NOBAG, ... , MANAGER)
PEGAWAI KERJA PROYEK
NOPEG NOPRO
PEGAWAI
BAGIAN
PIMPIN
NOPE NOBAG
G
TSI Perbankan
AS/400 hal.B.35
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.
1 1
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.
N
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.
N 1
PEKERJAAN (NOPEG, NOPRO, ……)
PEGAWAI KERJA PROYEK
NOPEG NOPRO
BAGIAN PUNYA PROYEK
NOBAG ………. NOPRO
1
PEGAWAI KERJA PROYEK
NOPRO
NOPEG ………
TSI Perbankan
AS/400 hal.B.36
10. Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya
merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.
M N
PEKERJAAN (NOPEG, NOPRO, …..)
11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya
merupakan gabungan dari Primary Key ketiga tipe Entity yang berelasi.
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).
PEGAWAI
PROYEK
KERJA
NOPRO
NOPEG …… ..
PEGAWAI KERJA PROYEK
NOPRO
NOPEG
TSI Perbankan
AS/400 hal.B.37
NOPEG
1 N
PUNYA
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)

Keterkaitan Uli Kozok dengan Sastra Batak

Dr. Ulrich Kozok (Hildesheim, Niedersachsen, Jerman, 26 Mei 1959) adalah seorang peneliti bahasa, budaya dan sastra Batak. Uli Kozok lahir di Hildesheim dan bersekolah di kota Norden, negara bagian Niedersachsen, di sebelah barat laut Jerman. Kozok menikah dengan seorang wanita suku Melayu dan dikaruniai dua anak.

Keinginan untuk melihat dunia, mempertemukan Uli Kozok dengan Indonesia. Selepas menamatkan sekolah menengah atas, Ketua Departemen Bahasa Indonesia Universitas Hawaii di Honolulu, Amerika Serikat, ini awalnya hanya ingin mengunjungi kerabatnya di Australia.

“Di peta saya lihat Indonesia, saya putuskan singgah di negara ini,” ujar Uli yang cintanya pada Indonesia berawal dari kebetulan. Saat mengunjungi Medan tahun 1981, teman seperjalanan Uli sakit. Dia menunda pergi ke Australia dan memutuskan tinggal sementara di Medan. Selama itu Uli mengisi waktu dengan belajar bahasa dan budaya setempat. Sekembalinya dari Indonesia, Uli yang saat itu belajar arkeologi di Universitas Hamburg menghadiri simposium tentang kebudayaan dan bahasa di Sumatera Utara yang dihadiri pakar dari Jerman dan negara lain. Sejak itu ia tertarik mempelajari budaya dan bahasa Batak.

“Menemani teman seperjalanan yang sakit, itu kebetulan saya yang pertama. Awalnya saya tertarik bahasa Karo, kemudian saya belajar bahasa Toba, Angkola-Mandailing, dan Pakpak. Lalu, saya putuskan untuk belajar pada Jurusan Bahasa dan Budaya Austronesia,” ujarnya. Guru pertama Uli, Profesor Reiner Carle, filolog yang ahli bahasa Batak. Secara kebetulan Uli mendapat beasiswa Pemerintah Jerman, DAAD (Deutsche Akademischer Austauschdienst) tahun 1983-1985 untuk menjadi mahasiswa tamu di jurusan Sastra Daerah Universitas Sumatera Utara (USU).

Saat itu Uli menilai kondisi perkuliahan Jurusan Sastra Daerah USU sangat memprihatinkan. “Praktis saya enggak dapat apa-apa selama belajar. Banyak mahasiswa dan dosen yang kurang paham naskah Batak,” katanya. Menurut Uli, kelangkaan sumber naskah Batak di Medan dan kota lain di Sumut yang menyebabkan kondisi tersebut. “Koleksi naskah Batak di Jerman hampir 600, di Belanda jumlahnya ribuan, sedangkan di Indonesia mungkin hanya 200-an,” kata Uli.

Bahasa dan budaya Karo, yang menjadi awal ketertarikan Uli, dia teruskan dengan meneliti bilangbilang, puisi percintaan masyarakat Karo yang ditulis pada bambu. Ada sekitar 125 naskah dari sekitar 20 koleksi bilangbilang di seluruh dunia. Ia terjemahkan puisi itu dalam bahasa Jerman dan dianalisis dalam kaitan fungsi aksara pada masyarakat Karo. “Bilangbilang itu ditulis bukan untuk dibaca karena sangat kecil hurufnya. Tetapi, hampir semua masyarakat Karo yang mengerti tentang bilangbilang pasti tahu apa yang tertulis di dalamnya,” ujar Uli.

Disertasi tentang bilangbilang mengantar Uli meraih gelar Master Artium di Universitas Hamburg tahun 1989. Pada tahun itu pula ia menikahi teman kuliah semasa di USU, Febrina Marisa.

Huruf Batak di komputer

Uli melanjutkan studi doktoral dengan tema sama, puisi percintaan pada masyarakat Batak. Kali ini tak hanya bilangbilang dari Karo, tetapi ditambah andung dari Mandailing. Masa saat ia mengambil studi doktoral ini, menurut Uli, adalah masa paling sengsara dalam hidupnya. “Saya tidak punya pekerjaan, sementara harus menghidupi istri dan membiayai kuliah doktoral,” katanya.

Pada saat itulah ibu angkatnya, Hildegard Peters, memperkenalkan Uli dengan Pater Matthaus, pastor yang juga kolektor lukisan. Ibu angkatnya adalah pelukis, yang karyanya dibeli Pater Matthaus. “Salah satu karya ibu angkat itu lukisan saya saat masih kecil. Sebelum bertemu Pater Matthaus, saya dapat surat dari beliau. Dalam surat itu disertakan uang 500 DM." Uang itu digunakan Uli menyambung hidup selama menekuni naskah Batak di perpustakaan KITLV Universitas Leiden, Belanda. Ia kadang terpaksa menumpang makan kepada mahasiswa asal Indonesia, Ema Nababan. Gelar doktor diraihnya tahun 1993.

Setahun kemudian surat lamaran Uli untuk mengajar Bahasa Indonesia di Universitas Auckland, Selandia Baru, diterima. Itu pun kebetulan karena dosen utamanya, seorang Belanda, langsung menerima dia sebagai asisten. Tahun 1998 Uli bertemu Michael Everson, ahli linguistik sekaligus desainer jenis huruf (font) untuk komputer dan media digital. Michael meminta Uli membuat software agar aksara Batak bisa ditulis dalam sebuah komputer. Ia lalu meneliti berbagai naskah dan pustaka Batak.

Dari empat jenis aksara Batak, yakni Mandailing, Toba, Pakpak, dan Karo, ia lalu membuat varian yang paling umum dari keempatnya. Dengan software itu, orang yang tak mengerti aksara Batak bisa menulis menggunakan huruf Batak di komputer. Penelusuran yang ia lakukan dari sejarah dan penyebaran aksara Batak mempertemukan Uli dengan naskah tua Melayu yang ditulis dengan huruf dari rumpun yang sama, surat (huruf) Pascapalawa. Surat Pascapalawa atau dikenal sebagai aksara Kawi ada hampir di seluruh Sumatera, mulai dari Lampung, Rejang-Lebong, Kerinci, Minangkabau, hingga Mandailing.

Lebih lanjut, penelusuran ini mempertemukannya dengan Kitab Undang-undang Tanjung Tanah, naskah Melayu tertua. Naskah ini ditemukan Petrus Voorhoeve, pegawai bahasa zaman Belanda pada 1941. Naskah Melayu tertua itu sempat menghilang puluhan tahun sebelum ditemukan kembali tahun 2002. Naskah itu sempat mengalami masa perang Belanda-Jepang, perang revolusi merebut kemerdekaan, sampai gempa bumi. Namun, kondisinya tetap seperti yang digambarkan Voorhoeve ketika Uli menemukannya di Kabupaten Kerinci, Provinsi Jambi.

“Waktu itu saya sedang meneliti paleografi aksara surat di Sumatera,” tutur Uli dalam dialog dengan peserta Ekspedisi Pamalayu di Kanagarian Siguntur Kecamatan Sitiung, Kabupaten Dharmasraya, Sumatera Barat, akhir Desember 2007. Ia mengungkapkan, penulis naskah Tanjung Tanah adalah Dipati Kuja Ali, petinggi Kerajaan Malayu. Penulisan naskah itu diperkirakan saat Adityawarman memerintah Kerajaan Malayu atau sekitar abad XIV.

Nama Perkampungan

Secara umum, naskah Tanjung Tanah berisi undang-undang yang mengatur kehidupan sehari-hari warga Kerinci serta denda yang dijatuhkan kepada pelanggar. Ukuran denda masa itu bervariasi, mulai dari kupang, mas, tahil, hingga kati.

Tanjung Tanah adalah nama sebuah perkampungan di Kerinci. Ditunjang dengan hawa yang memadai, sebab Tanjung Tanah terletak 800 meter di atas permukaan laut, naskah ini bertahan hingga ratusan tahun. “Waktu itu, tahun 2002, saya sudah menduga naskah ini dibuat sekitar abad XIV,” katanya. Sebagian besar pakar aksara dan sejarawan yang ditemui Uli meragukan pendapatnya. Mereka berprinsip tak ada naskah sebelum abad XV. Setahun setelah naskah ditemukan, ia kembali mendatangi pemilik naskah. Ia bermaksud meminta sedikit sampel kertas naskah untuk diuji di laboratorium.

Dari pemeriksaan di Rafter Radiocarbon Laboratory, Wellington, Selandia Baru, diperkirakan naskah itu berusia lebih dari 600 tahun. Voorhoeve pun menduga naskah ini ditulis sebelum agama Islam sampai ke pelosok Melayu.

“Saya memperkirakan naskah ditulis pada masa kejayaan Adityawarman, sekitar tahun 1345-1377,” ujarnya.

Aksara yang digunakan dalam naskah Tanjung Tanah juga unik karena tak menggunakan aksara Palawa, tetapi Pascapalawa. Dari penelitian Tokyo Restoration & Conservation Center, Oktober 2004, diperkirakan Sumatera sudah memproduksi kertas berbahan baku batang pohon Daluang (Broussonetia papyrifera Vent). (oleh: Khaerudin & Agnes/Kompas)