Anda di halaman 1dari 47

Bahan Ajar

JURUSAN SISTEM INFORMASI


FAKULTAS ILMU KOMPUTER
UNIVERSITAS PUTRA INDONESIA YPTK PADANG
2020

1
VERIFIKASI BAHAN AJAR

Pada hari ini ......... tanggal ..... bulan ................... tahun ......... Bahan Ajar Mata Kuliah
................. Program Studi ...................................................................... Fakultas
...................... telah diverifikasi oleh Ketua Jurusan/ Ketua Program Studi
................................................................

Padang, .................................
Ketua Jurusan/ Ketua Prodi SI Tim Penulis

..................................... ……………………………
NIDN. NIDN.

Diketahui oleh.
Dekan Fakultas,

………………………………
NIDN.

2
Ka
Segala puji bagi Allah, pemilik segenap jiwa dan cinta, yang selalu

melimpahkan nikmat yang tak terhingga. Shalawat dan salam kepada

Rasulullah Muhammad S.A.W, beserta pengikutnya hingga akhir zaman.

Akhirnya atas segala anugrah dan izin Allah S.W.T, penulisan Bahan Ajar

Perancangan Basis Data ini bisa diselesaikan dengan baik. Besar harapan

penulis bahan ajar ini bisa berkontribusi untuk membantu mahasiswa maupun

professional dalam mempelajari perancangan basis data. Terimakasih

sedalam-dalamnya kepada Allah S.W.T dengan rasa syukur yang tiada henti-

hentinya.

Akhirnya dengan segala kerendahan hati, penulis menyadari bahwa

masih banyak terdapat kekurangan dan kelemahan pada bahan ajar ini yang

disebabkan oleh keterbatasan penulis. Oleh karena itu, kritik dan saran yang

membangun dari pembaca sangat penulis harapkan demi kesempurnaan buku

ini.

Padang, September 2019

Penulis

Da
3
Cover i
Kata Pengantar ii
Daftar Isi iii
Deskripsi Singkat Mata Kuliah ix
Capaian Mata Kuliah ix

BAB 1 . PENGENALAN PERANCANGAN BASIS DATA


…………………………………………….1
1.1 Kosakata Basis Data, Konsep Basis Data,
Dan Tools Perancangan Basis
Data……………………………………………….………………………..1
1.1.1 Data dan
Informasi……………………………………………………………………………
………………..2
1.1.2 Database Management System (DBMS)
……………………………………………………4
1.1.3 Sistem
Informasi……………………………………………………………………………
…………………….5
1.1.4 Konsep Perancangan Basis Data
(Entities, Entity Sets dan
Attribut)………………………………………………………………..5
1.1.5 Tabel pada Basis Data dan Komponennya
(Composite Primary Key, Candidate Keys, Secondary Keys
dan Foreign
Keys)………………………………………………………………………………
……………….6
1.1.6 Karakteristik Attribute (Simple (Atomic) dan Composite Attribute),
(Single-Valued dan Multivalued
Attributes)……………………………………………..9
1.1.7 Jenis-jenis
Relationship…………………………………………………………………………
………..10

4
1.1.8 Merancang Blueprint Basis Data dengan menggunakan
ERD………….12

1.2 EER ( Enhanced Entity Relationship


)……………………………………………………………………..14

1.2.1

Superclass……………………………………………………………………
………………………………………..14
1.2.2

Subclass………………………………………………………………………
……………………………………………14
1.2.3

Spesialization…………………………………………………………………
……………………………………….15
1.2.4

Generalization………………………………………………………………
…………………………………………15

BAB II Database Control

2.1 Database Security


2.2 Concurency

BAB III STRUCTURE QUERY LANGUAGE (SQL)

6.1 SQL
6.2 Sintak-sintak SQL (Query DDL dan Query DML)
6.3 Modifikasi Basis Data

BAB IV Perancangan Basis Data pada DBMS (MySQL)


7.1 Menggunakan bahasa SQL untuk merancang basis data

BAB V Basis Data Tersebar


8.1 Konsep Basis Data Terdistribusi

5
8.2 Pilihan Untuk Basis Data Tersebar
8.3 DBMS Tersebar
8.4 Produk DBMS Tersebar

GLOSSARY
INDEX

De
skr
Matakuliah ini merupakan lanjutan dari matakuliah sistem basis data.

Matakuliah perancangan basis data mempelajari dasar-dasar basis data

relasional. Pokok bahasan meliputi perancangan struktur E-R, normalisasi

tabel, bahasa query dan pemanfaatan alat bantu (tools) untuk perancangan

basis data.

Ca
1. Mampu menjelaskan konsep basisdata dan menentukan tipe data pada
basisdata.
2. Mampu merancang basisdata.
3. Mampu menguraikan permasalahan basisdata dalam bentuk normalisasi
berdasarkan hasil diagnosis permasalahan di lapangan.

6
4. Mampu mengaplikasikan bahasa SQL untuk membangun basisdata
pada Database Management System (DBMS).
5. Mampu membangun hasil rancangan basisdata ke dalam DBMS
MySQL.

7
1 Peng
enala
n
PENDAHULUAN

A. Deskripsi Singkat

Bab ini mengajak pembaca untuk memahami konsep dasar basis data

berupa data dan informasi, definisi basis data dan DBMS, sistem informasi,

konsep perancangan basis data, tabel pada basis data dan komponennya,

karakteristik attribute, jenis-jenis relationship, merancang blueprint basis

data dengan menggunakan ERD (Entity Relationship Diagram), EER

(Enhanced Entity Relationship).

B. Relevansi dan Manfaat

Mahasiswa atau pembaca dapat mengetahui konsep dasar basis data dan

dapat merancang blueprint basis data yang menjadi dasar pengetahuan

dalam merancang basis data.

C. Capaian Pembelajaran

Pada bab ini diharapkan mahasiswa mampu :

1. Mahasiswa mampu menjelaskan kosa kata basis data dan konsep

basisdata, serta mampu menerapkan tools perancangan basis data.

2. Mahasiswa mampu merancang blueprint basis data dengan

menggunakan ERD dan EER (Enhanced Entity Relationship).

8|Perancangan Basis Data


1.1 Kosakata Basis Data, Konsep Basis Data, Dan Tools Perancangan

Basis Data

1.1.1 Data dan Informasi

Data adalah fakta tentang orang, tempat, benda atau kejadian. Data bisa

berbentuk angka, simbol, karakter, gambar, video dan audio. Data dalam

bidang bisnis meliputi fakta tentang karyawan, konsumen, supplier, produk,

persediaan dan lainnya. Sebagai contoh, data karyawan seperti ; nama, tanggal

lahir, jenis kelamin dan golongan. Data konsumen ; nama konsumen, alamat,

no telepon, riwayat belanja dan lainnya.

Data dikenal sebagai asset bisnis yang sangat penting karena data merupakan

bahan baku untuk menghasilkan informasi. Faktanya, informasi biasanya

didefinisikan sebagai data yang sudah diolah atau diproses. Informasi dinilai

penting karena informasi merupakan pondasi dalam pengambilan keputusan.

Informasi yang baik tidak bisa dihasilkan dari data yang buruk.

Pengertian Data Menurut Para Ahli

Robert N. Antony dan John Dearden

Definisi data menurut ahli Robert N. Antony dengan John Dearden, ialah bentuk

jamak dari data item atau bentuk tunggal datum.

Jogyanto

9|Perancangan Basis Data


Berikutnya menurut pendapat Jogyanto, data ialah kenyataan yang

menggambarkan sebuah kejadian-kejadian serta kesatuan nyata.

Selamet Riyadi

Pengertian data menurut Selamet Riyadi, ialah kumpulan informasi yang

didapat dari pengamatan yang mana data dapat berupa angka-angka ataupun

lambang-lambang.

Pengertian Informasi Menurut Para Ahli

Anton M. Moeliono

Pengertian informasi menurut ahli Anton M. Moeliono, menyatakan informasi

ialah penerangan, keterangan, kabar atau berita, serta pemberitahuan.

Informasi juga termasuk keterangan ataupun bahan nyata yang bisa dijadikan

sebagai dasar kajian analisis ataupun kesimpulan.

Jordon B.Davis

Informasi menurut pendapat Jordon B.Davis, ialah data yang sudah diolah

menjadi sebuah bentuk yang penting untuk penerima informasi dengan nilai

yang nyata serta bisa dirasakan dalam keputusan-keputusan saat ini ataupun di

masa yang akan depan.

Kusrini

10 | P e r a n c a n g a n B a s i s D a t a
Berikutnya informasi menurut pendapat Kusrini, ialah data yang telah diolah

menjadi bentuk yang berarti untuk pengguna, yang bisa bermanfaat untuk

pengambilan keputusan sekarang ini maupun mendukung sumber informasi.

1.1.2 DBMS (Database Management System)

Database Management System (DBMS) adalah perangkat lunak (software)

yang dipakai untuk membangun basis data yang berbasis komputerisasi.

DBMS yaitu software yang disediakan oleh penyedian database untuk :

1. Memindahkan data ke dan dari file data fisik yang dibutuhkan.

2. Mengelola akses data yang bersamaan oleh beberapa pengguna.

3. Mengawasi pembaharuan data dan mencegah konflik perubahan data

4. Mendukung bahasa query.

5. Mengelola transaksi sehingga perubahan data terjadi secara lengkap

atau tidak terjadi perubahan jika transaksi batal.

6. Mekanisme keamanan.

Contoh DBMS adalah Oracle, MySQL,SQL Server, MongoDB, Ms.Access.

Dengan DBMS memungkinkan seorang user mampu mendefinisikan, membuat,

memelihara serta menyediakan akses terkontrol terhadap data.

1.1.3 Sistem Informasi

11 | P e r a n c a n g a n B a s i s D a t a
Hampir di semua sektor sistem informasi memainkan peran yang penting,

seperti bidang pendidikan, keuangan, pemerintah, kesehatan, perusahaan

manufaktur dan bisnis besar maupun kecil.

Sederhananya sistem informasi adalah perpaduan bisnis (proses bisnis) dan

teknologi informasi. Sistem informasi merupakan sebuah sistem untuk

mengolah data menjadi informasi.

1.1.4 Entitas, Entity Set dan Attribute

Basis data menyimpan data dalam bentuk entitas dan attributenya.

Sebuah entitas bisa berupa orang, tempat, benda, kejadian, atau sebuah

konsep. Sebuah entitas dapat berupa fisik ataupun non-fisik yang tak

bisa diraba. Singkatnya sebuah entitas bisa apapun yang ingin jejaki

kembali. Di dalam lingkungan bisnis kita bisa menemukan entitas berupa

karyawan, invoice, departemen, konsumen, produk, dan supplier.

Untuk menggambarkan entitas dilakukan dengan cara mengikuti aturan

berikut:

1. Entitas dinyatakan dengan simbol persegi panjang.

2. Nama entitas berupa kata benda tunggal.

Entity set adalah penamaan untuk kumpulan dari beberapa data yang

saling berelasi. Data dalam sebuah entity set berelasi sesuai dengan

klasifikasinya. Sebagai contoh, data pada entitity set karyawan hanya

berhubungan dengan fakta atau data karyawan. Dalam kata lain, entity

set karyawan mengandung kumpulan dari entitas karyawan. Kita tidak

bisa menemukan entitas produk pada entity set karyawan.

12 | P e r a n c a n g a n B a s i s D a t a
Setiap entitas mempunyai karakteristik yang disebut dengan attribute.

Sebagai contoh entitas produk memiliki attribute seperti ; kode produk,

nama produk dan harga produk.

Atribut berfungsi sebagai penjelas sebuah entitas. Untuk

mengambarkan atribut dengan mengikuti aturan sebagai berikut :

1. Atribut dinyatakan dengan simbol ellipse.

2. Nama atribut ditulis dalam simbol ellipse.

3. Nama atribut berupa kata benda tunggal.

4. Atribut dihubungkan dengan entitas yang sesuai dengan

menggunakan garis.

1.1.5 Tabel pada Basis Data dan Komponennya (Primary Key,

Candidate Keys, Secondary Keys dan Foreign Keys)

Entitas disimpan dalam bentuk table dalam sebuah basis data. Jadi

sebuah entitas sama dengan table pada database. Secara konseptual

table pada database merupakan perpaduan antara kolom dan baris.

Tabel dan kolom tersebut harus memiliki karakteristik sebagai berikut :

 Setiap kolom merupakan satu attribute dan berisi nilai dari

attribut tersebut. Contoh, kolom kode karyawan

memanglah harus berisi hanya kode karyawan.

 Setiap baris juga dikenal dengan sebutan tuple, yang

secara unik diidentifikasi oleh sebuah primary key.

1. Candidate Key

13 | P e r a n c a n g a n B a s i s D a t a
Candidate Key (kunci calon) merupakan kunci yang menjadi calon

primary key. Setiap tabel dapat memiliki satu atau lebih candidate

key.

Contoh:
File mahasiswa berisi attribute :
Ø Nobp
Ø No KTP
Ø Nama
Ø Tempat lahir
Ø Tanggal lahir
Ø Alamat
Ø Kota

Candidate key-nya adalah:


Ø Nobp
Ø No KTP

2. Primary Key (Kunci Utama)

Primary Key (kunci utama) adalah candidate key yang telah dipilih

untuk mengidentifikasi setiap record secara unik. Primary key harus

merupakan field yang benar-benar unik dan tidak boleh ada nilai

NULL.

3. Alternate Key (Kunci Alternatif)

Alternate key adalah candidate key yang tidak terpilih. Misal : dalam

suatu entity terdapat dua field yang bisa dijadikan sebagai kunci.

Sementara yang boleh dijadikan kunci hanya satu, maka anda harus

memilih salah satu. Field yang anda pilih, disebut primary key,

sedangkan field yang tidak dipilih disebut dengan alternate key.

Contoh:

14 | P e r a n c a n g a n B a s i s D a t a
File mahasiswa berisi attribute

Ø Nobp
Ø No KTP
Ø Nama
Ø Tempat lahir
Ø Tanggal lahir
Ø Alamat
Ø Kota

Nobp dan no KTP adalah kunci calon (candidate key) dan untuk

kunci utama (primary key) adalah salah satu yang dipilih dari

kunci calon. Misalnya nobp dijadikan primary key, maka primary

key-nya adalah nobp. Dan untuk no ktp menjadi alternate key.

4. Foreign Key (Kunci Tamu)

Jika sebuah primary key berhubungan ke table/entity lain, maka

keberadaan primary key pada entity tersebut disebut sebagai

foreign key. Foreign key adalah sebuah kumpulan field dalam satu

relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris

(tuple) pada relasi yang lain (harus berkorespondensi dengan

primary key pada relasi yang kedua).

5. Composite Key

Dalam desain database, composite key adalah kunci yang terdiri

dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu

kejadian entitas.

15 | P e r a n c a n g a n B a s i s D a t a
1.1.6 Karakteristik Atribute

Attribute merupakan karakteristik dari entitas atau relationship, yang

menyediakan penjelasan detail tentang entitas atau relationship. Dalam

penerapannya (level fisik) atribut merupakan field atau kolom dari sebuah tabel.

Misalnya entitas mahasiswa memiliki atribute nama, alamat, NIM. Berdasarkan

karakteristik atau sifatnya, atribut dapat dikelompokkan menjadi;

1. Simple attribute dan composite attribute.

2. Single valued attribute dan multi valued attribute.

3. Mandatory attribute

4. Derived attribute (attribut turunan) dan 5) key attribute.

Simple attribute atau atomic attribute adalah attribut terkecil yang tidak dapat

dibagi-bagi lagi menjadi atribut yang lebih kecil. Contohnya adalah atribut

JenisKel pada entitas pegawai.

Composite attribute adalah atribut yang dapat dibagi menjadi atribut yang lebih

kecil. Contoh: Atribut Nama pada entitas pegawai dapat dipecah menjadi

atribut NmDepan, Inisial dan NmBlk.

Gambar diatas menjelaskan simbol atau notasi composite attribute.

Single value attribute adalah suatu atribut yang hanya mempunyai satu nilai.

16 | P e r a n c a n g a n B a s i s D a t a
Misalnya atribut NmDepan pada entitas pegawai. NmDepan seorang pegawai

selalu bernilai satu nilai, tidak mungkin lebih dari satu.

Multi value attribute adalah atribut yang dapat memiliki lebih dari satu nilai yang

jenisnya sama dari sebuah data tunggal. Misalnya atribut lokasi pada entitas

departemen dapat berisi 2 nilai atau lebih seperti Surabaya atau Jakarta.

Derived attribute atau atribut turunan adalah atribut yang nilai-nilainya diperoleh

dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang

berhubungan. Misalnya atribut JmlPegawai pada entitas Departemen.

1.1.7 Jenis-Jenis Relationship

Relasi atau hubungan adalah kejadian atau transaksi yang terjadi di antara dua

entitas yang keterangannya perlu disimpan dalam database.

Aturan penggambaran relasi antar entitas adalah:

1. Relasi dinyatakan dengan simbol belah ketupat.

2. Nama relasi dituliskan di dalam simbol belah ketupat.

3. Relasi menghubungkan dua entitas.

4. Nama relasi menggunakan kata kerja aktif (diawali awalan me)

tunggal.

5. Nama relasi sebisa mungkin menggunakan nama yang mudah

dipahami dan dapat menyatakan maknanya dengan jelas.

Kardinalitas/ Derajat Relasi

Yaitu menunjukan jumlah maksimum entitas yang dapat berelasi dengan entitas

pada himpunan entitas yang lain. Kardinalitas relasi merujuk kepada hubungan

17 | P e r a n c a n g a n B a s i s D a t a
maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas

yang lain dan begitu juga sebaliknya. Kardinalitas relasi yang terjadi diantara

dua himpunan entitas dapat berupa :

 Satu ke satu (one to one), berarti setiap entitas pada himpunan entitas A

berhubungan paling banyak dengan satu entitas pada himpunan entitas

B dan begitu juga sebaliknya.

 Satu ke banyak (one to many), berarti setiap entitas pada himpunan

entitas A dapat berhubungan dengan banyak entitas pada himpunan

entitas B, tetapi tidak sebaliknya.

 Banyak ke satu (many to one), berarti setiap entitas pada himpunan

entitas A berhubungan dengan paling banyak satu entitas pada

himpunan entitas B, tetapi tidak sebaliknya.

 Banyak ke banyak (many to many), berarti setiap entitas pada himpunan

entitas A dapat berhubungan dengan banyak entitas pada himpunan

entitas B dan demikian juga sebaliknya.

1.1.8 Merancang Blueprint Basis Data dengan menggunakan ERD (Entity

Relationship Diagram)

Seorang engineer membutuhkan blueprint untuk membangun rumah.

Seorang analis basisdata juga membutuhkan blueprint sebelum sukses

membangun dan mengimplementasikan database. Walaupun blueprint

database bisa dibuat dengan berbagai macam bentuk, namun

perancang database banyak menggunakan ERD (Entity Relationship

Diagram).

Simbol-Simbol ERD

18 | P e r a n c a n g a n B a s i s D a t a
Gambar 1 : Simbol-Simbol ERD

Langkah-Langkah Merancang ERD :

1. Mengidentifikasikan dan menetapkan seluruh himpunan entitas

yang akan terlibat.

2. Menentukan atribut-atribut key dari masing-masing himpunan

entitas.

3. Mengidentifikasikan dan menetapkan seluruh himpunan relasi

diantara himpunan entitas yang ada beserta foreign key-nya.

4. Menentukan derajat dan cardinality rasio relasi untuk setiap

himpunan relasi

5. Melengkapi himpunan relasi dengan atribut-atribut yang bukan

kunci (non-key).

Contoh Kasus 1 :

Pada saat mendaftar menjadi anggota perpustakaan fakultas, dicatatlah nama,

nomor mahasiswa dan alamat mahasiswa. Setelah itu mereka baru bisa

19 | P e r a n c a n g a n B a s i s D a t a
meminjam buku di perpustakaan. Buku-buku yang dimiliki perpustakaan

jumlahnya banyak. Tiap buku memiliki data nomor buku, judul, pengarang,

penerbit, tahun terbit. Satu buku bisa ditulis oleh beberapa pengarang.

Tentukan entitas, atribut dan relasi dari deskripsi di atas, dengan menggambar

ERDnya!

Jawab:

Entitas : Mahasiswa, KAP (Kartu Anggota Perpustakaan), Buku

Atribut : Nama, No.mahasiswa, Alamat mahasiswa, No.buku, Judul, Pengarang,


Penerbit dan tahun terbit.

Relasi : Daftar dan Pinjam

Gambar 2 : ERD Peminjaman Buku di Perpustakaan

1.1.9 Enhanced Entity Relationship (EER)

20 | P e r a n c a n g a n B a s i s D a t a
EER merupakan konsep lanjutan dari ERD. Pada umumnya, konsep

pada EER tidak banyak dibahas sebelumnya karena konsep ERD sudah

memadai. Namun seiring perkembangan teknologi yang mengarah ke

bentuk entitas yang lebih lanjut dalam paradigm pemrograman yang

baru, yaitu konsep pemrograman berorientasi objek, konsep EER mulai

muncul untuk diadaptasikan.

Konsep-konsep tambahan dalam EER :

• Subclasses/Superclasses

Subclass; suatu entitas yang merupakan anggota dari

superclass tapi mempunyai peranan berbeda.

Superclass; suatu entitas yang mempunyai subclass-

subclass yang berbeda tapi harus direpresentasikan dalam

model data

• Specialization/Generalization

Spesialisasi; proses pendefinisian suatu himpunan

subclass dari suatu entitas (disebut superclass)

berdasarkan karakteristik tertentu.

Aturan Dalam Spesialisasi :

• Aturan Spesialisasi Total

Constraint yang menerangkan bahwa setiap entity didalam

superclass harus merupakan anggota dari salah satu

subclass. Contoh : Entity PEGAWAI harus termasuk

subclass dari PEGAWAI TETAP atau PEGAWAI

HONORER.

21 | P e r a n c a n g a n B a s i s D a t a
• Aturan Spesialisasi Sebagian

Constraint yang menerangkan bahwa setiap entity didalam

superclass dapat merupakan anggota dari subclass-

subclass yang didefinisikan.

Contoh: dari PEGAWAI dapat merupakan anggota dari

subclass MANAGER, TEKNISI atau SALES.

• Batasan Lepas (Disjoint)

Supertipe merupakan anggota dari satu subtype dan

bukanlah anggota dari dua atau lebih subtipe.

• Batasan Lepas Tumpang Tindih (Overlap)

Supertipe merupakan bagian dari dua atau lebih subtipe.

Gambar 3 : Contoh Diagram EER

A. Tes Formatif

1. Rancanglah ERD dari kasus berikut ini !

22 | P e r a n c a n g a n B a s i s D a t a
Suatu perguruan tinggi mempunyai banyak mahasiswa. Setiap

mahasiswa biasanya mengikuti beberapa matakuliah. Suatu

matakuliah diajarkan oleh seorang dosen dan seorang dosen dapat

mengajar beberapa matakuliah. Pada entitas mhs diperlukan

informasi ttg nobp, nama mhs, alamat, dan jurusan. Sedangkan

matakuliah diperlukan informasi mengenai kode matkul, nama

matkul, sks, semester. Dosen diperlukan informasi mengenai kode

dosen dan nama dosen.

2. Gambarkan generalized superclass dan tentukan spesializationnya

serta tentukan superclass dan subclass : Ada beberapa entity yaitu

sebagai berikut : Patient, Out_Patient, Resident_Patient dimana

attribute-attributnya adalah IdPatient, Patient_Name, Admit_date,

Checback_date, Date_dischargerd!

3. Consider the BANK ER schema in Figure 7.21, and suppose that it is


necessary to keep track of different types of ACCOUNTS
(SAVINGS_ACCTS, CHECKING_ACCTS, ...) and LOANS
(CAR_LOANS, HOME_LOANS, ...). Suppose that it is also desirable
to keep track of each ACCOUNT’s TRANSACTIONS (deposits,
withdrawals, checks, ...) and each LOAN’s PAYMENTS; both of these
include the amount, date, and time. Modify the BANK schema, using
ER and EER concepts of specialization and generalization. State any
assumptions you make about the additional requirements.

23 | P e r a n c a n g a n B a s i s D a t a
ii Data
base
Secu
PENDAHULUAN

A. Deskripsi Singkat

Bab ini mengajak pembaca untuk memahami konsep dasar keamanan

basis data, berupa pemberian hak akses (authorization), views,

checkpointing, integrity, dan encryption. Pada bab ini juga akan dipelajari

database concurrency.

B. Relevansi dan Manfaat

Mahasiswa atau pembaca dapat mengetahui konsep database security

sehingga mengetahui cara mengamankan data pada database.

C. Capaian Pembelajaran

24 | P e r a n c a n g a n B a s i s D a t a
Pada bab ini diharapkan mahasiswa mampu :

1. Mahasiswa mampu menjelaskan konsep database security

2. Mahasiswa mampu menyelesaikan permasalahan concurrency

database

1. Security Database

A. Authorization

Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses

secara legal terhadap sebuah sistem atau obyek.

Subyek  user atau program

Obyek  database table, view, application, procedure, atau obyek

lainnya yang dibuat di dalam sebuah system

Jenis-jenis hak akses (privileges) :

• Penggunaan nama database yang spesifik

• Select (retrieve) data

• Membuat tabel (obyek lainnya)

• Update data, delete data, insert data (bisa untuk kolom-kolom tertentu)

25 | P e r a n c a n g a n B a s i s D a t a
• Menghasilkan output yang tidak terbatas dari operasi query (user tidak

dibatasi untuk mengakses record tertentu)

• Menjalankan prosedur khusus dan utilitas program

• Membuat database

B. Views (Subschemas)

View adalah cara yang diberikan pada seseorang pemakai untuk

mendapatkan model database yang sesuai dengan kebutuhan perorangan.

View merupakan virtual relation yang tidak secara nyata ada di dalam sebuah

database, tetapi dihasilkan atas permintaan user secara khusus.

C. Backing Up

Proses yang secara periodik menyalin database dan menjurnal (dan

memprogram) ke dalam media penyimpanan offline.

D. Journaling

Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh

perubahan terhadap database agar dapat merecover secara efektif jika terjadi

kegagalan. Jurnal mungkin akan berisi data : identifikassi dari record,item data

sebelum perubahan(update dan delete), item data sesudah perubahan ( insert

dan update).

E. Checkpointing

Titik temu sinkronisasi antara database dan transaksi log file. Seluruh

data yang disimpan di tempat sementara akan disimpan di media penyimpanan

kedua.

26 | P e r a n c a n g a n B a s i s D a t a
F. Integrity

Pengontrolan integritas juga membantu memelihara sistem database

yang aman dengan mencegah data dari invalid

G. Encryption

Penyandian (encoding) adalah pengubahan data asli nmenjadi kode

rahasia dengan cara menggunakan algoritma khusus yang merubah data

menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya.

2. Concurrency

Konkurensi berarti bahwa sejumlah transaksi diperkenankan untuk

mengakses data yang sama dalam waktu yang sama (untuk mengatasi

inconsistency data). Hampir semua DBMS adalah sistem multi user. Sistem

seperti ini memerlukan mekanisme pengontrolan konkuren. Tujuan dari

mekanisme ini adalah untuk menjamin bahwa transaksi-transaksi yang

konkuren tidak saling menggangu operasinya masing-masing.

Dalam kasus konkurensi terdapat tiga masalah yang dapat terjadi :

1. Masalah kehilangan modifikasi (lost update problem)

2. Masalah modifikasi sementara (uncommitted analysis problem)

3. Masalah analisis yang tidak konsisten (inconsistent analysis problem)

Berikut uraian kasus konkurensi :

 Masalah Kehilangan Modifikasi

27 | P e r a n c a n g a n B a s i s D a t a
Keterangan :
 Transaksi A membaca record r Pada waktu t1,
 transaksi B Membaca R Pada T2
 Transaksi A memodifikasi record r (berdasarkan nilai pada waktu
t1) pada waktu t3
 Transaksi B memodifiikasi record r (berdasarkan nilai pada waktu
t2) Pada waktu T4
 Modifikasi dari transaksi A akan hilang karena Transaksi B akan
memodifikasi R tanpa memperhatikan modifikasi dari transaksi A
pd T3

 Masalah Modifikasi Sementara

28 | P e r a n c a n g a n B a s i s D a t a
 Masalah Analisis yang Tidak Konsisten

Keterangan :
• Transaksi A ; menjumlahkan nilai 1, nilai 2 dan nilai 3
• Transaksi B  nilai 1 +10 ; nilai 3 – 10
• Pada waktu t8, transaks A membaca nilai yang salah karena nilai
3 sudah dimodifikasi menjadi 20 ( transaksi B sudah melakukan
commit sebelum transaksi A membaca nilai 3 )

Masalah-masalah dalam konkurensi dapat diatasi dengan teknik pengendalian

konkurensi, yaitu :

1. Penguncian (Locking)

2. Pembuatan versi ( Versioning )

Locking

Locking adalah salah satu mekanisasi pengontrol konkuren. Dalam pendekatan

ini, setiap data yang sedang diakses oleh pemakai untuk proses update dikunci

hingga proses update selesai (selesai bisa berarti committed atau rolled back)

pada saat data dikunci, pemakai lain tidak diijinkan mengakses data tersebut.

Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi

transaksi lain.

Protokol Pengaksesan Data :

1. Pertama kita asumsikan terdapat 2 macam kunci :

29 | P e r a n c a n g a n B a s i s D a t a
- Kunci X : kunci yang eksklusif.

- Kunci S : kunci yang digunakan bersama-sama.

2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari

transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu

sampai A melepaskan kunci tersebut.

3. Jika transaksi A menggunakan kunci S pada record R, maka :

a. Bila transaksi B ingin menggunakan kunci X, maka B harus

menunggu sampai A melepaskan kunci tersebut.

b. Bila transaksi B ingin menggunakan kunci S, maka B dapat

menggunakan kunci S bersama.

4. Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia

memerlukan kunci S @ baca (S). Bila transaksi tersebut ingin memodifikasi

record maka secara otomatis ia memerlukan kunci X @memodifikasi (X).

Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan

memodifikasi record, maka kunci S akan dinaikan ke level kunci X.

5. Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization

point). Synchpoint menyatakan akhir dari suatu transaksi dimana basis data

berada pada state yang konsisten. Bila synchpoint ditetapkan maka :

- Semua modifikasi program menjalankan operasi commit atau rollback.

- Semua kunci dari record dilepaskan.

30 | P e r a n c a n g a n B a s i s D a t a
Masalah Kehilangan Modifikasi

Masalah Modifikasi Sementara

31 | P e r a n c a n g a n B a s i s D a t a
- t5 Synchpoint (kunci S

- dilepaskan )

32 | P e r a n c a n g a n B a s i s D a t a
Modifikasi R (kunci t6 -

X) -

Syncpoint (kunci X t7 -

dilepaskan )

t8 Modifikasi R (kunci X)

Masalah Modifikasi Sementara

• Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus menunggu

sampai B melepas kunci X.

33 | P e r a n c a n g a n B a s i s D a t a
• Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A dapat

meneruskan prosesnya.

• Maka transaksi A tidak akan terjadi kesalahan dalam membaca, karena

sudah mencapai synchpoint.

34 | P e r a n c a n g a n B a s i s D a t a
TRANSAKSI A WAKTU TRANSAKSI B

Synchpoint nilai 1 T8 -

(kunci S

dilepaskan)

- T9 Modifikasi Nilai 1

40 60

(kunci X)

- -

- T10 Synchpoint nilai 3

( kunci X dilepaskan)

Baca Nilai 3 T11 -

(kunci S)
35 | P e r a n c a n g a n B a s i s D a t a
SOAL LATIHAN :

1. Lanjutkan tabel dibawah sampai tidak adanya waktu yang

menunggu !

Transaksi A Waktu Transaksi B

- T1 Baca Nilai 1 (80)

Kunci S

Baca Nilai 2 (40) T2 -

,Kunci S

Baca Nilai 3 (50), T3 -

Kunci S

Modifikasi nilai 3 , T4 -

Kunci X 50  30

Modifikasi Nilai 1, T5 -

Kunci X, 80 

90...... Tunggu

36 | P e r a n c a n g a n B a s i s D a t a
- T6 Baca Nilai 2 (40)

kunci S

- T7 Baca Nilai 3 (30) ,

Kunci S, ......tunggu

iii Data
base
Terdi
PENDAHULUAN

37 | P e r a n c a n g a n B a s i s D a t a
A. Deskripsi Singkat

Bab ini mengajak pembaca untuk memahami konsep database terdistribusi.

B. Relevansi dan Manfaat

Mahasiswa atau pembaca dapat mengetahui konsep database tersebar.

C. Capaian Pembelajaran

Pada bab ini diharapkan mahasiswa mampu :

1. Mahasiswa mampu menjelaskan konsep database Fragmentasi

Horizontal, Fragmentasi Vertikal dan Fragmentasi Campuran.

Konsep Basisdata Terdistribusi


Basis Data Terdistribusi adalah kumpulan data logic yang saling berhubungan
secara fisik terdistribusi dalam jaringan komputer, yang tidak tergantung dari
program aplikasi sekarang maupun masa yang akan datang.

Contoh Basis Data Terdistribusi


• Misalnya sebuah bank yang memiliki banyak cabang, bahkan di sebuah
kota bisa terdiri dari beberapa cabang/kantor.
• Masing-masing lokasi memiliki jaringan lokal sendiri, dan semua jaringan
lokal itu dihubungkan satu sama lain membentuk sebuah jaringan
nasional.

Desain Database Terdistribusi


a. Ada beberapa pendekatan yang berkaitan dengan penyimpanan
data/tabel dalam sebuah sistem basis data terdistribusi, yaitu
1. Replikasi
2. Fragmentasi
3. Replikasi dan Fragmentasi

1. Replikasi

38 | P e r a n c a n g a n B a s i s D a t a
Sistem memelihara sejumlah salinan/duplikat tabel-tabel data.
Setiap salinan tersimpan dalam simpul yang berbeda, yang
menghasilkan replikasi data.

2. Fragmentasi
Data dalam tabel dipilah dan disebar ke dalam sejumlah fragmen.
Tiap fragmen disimpan di sejumlah simpul yang berbeda-beda.
Fragmentasi dapat berbentuk fragmentasi horizontal (pemilahan record
data) atau fragmentasi vertikal pemilahan field/atribut data).

3. Replikasi dan Fragmentasi


Merupakan kombinasi dari replikasi dan fragmentasi.
Data/tabel dipilah dalam sejumlah fragmen.
Sistem lalu mengelola sejumlah salinan dari masing-masing fragmen tadi
di sejumlah simpul.

 Fragmentasi Data
Terdiri dari tiga macam :
Horizontal Fragmentation : masing-masing tuple r diberikan kepada
satu atau lebih fragment. Fragmentasi horizontal dapat didefenisikan
sebagai sebuah seleksi pada relasi r , oleh karena itu sebua predikat Pi
digunakan untuk menyusun fragmentasi ri seperti berikut :

Penyusunan kembali dari relasi r dapat diperoleh Dengan mengambil


gabungan dari seluruh fragment.

39 | P e r a n c a n g a n B a s i s D a t a
Vertical Fragmentation : skema untuk relasi r dibagi menjadi beberapa
skema yang lebih kecil.
Semua skema harus mengandung sebuah candidate key(atau superkey)
untuk menjamin property lossless join.
Sebuah attribut khusus, misal : attribut tupple-id dapat ditambahkan
terhadap masing-masing skema untuk bertindak sebagai candidate key.

Campuran
Relasi r dibagi-bagi kedalam sejumlah relasi fragmentasi r1,r2,…..,rn,
tiap-tiap fragment diperoleh sebagai hasil baik dari skema fragmentasi
horizontal ataupun vertikal pada relasi r .
Cara yang sederhana untuk membangun fragmentasi campuran sebagai
berikut :
a. Menggunakan fragmentasi horizontal pada fragmentasi vertikal
b. Menggunakan fragmentasi vertikal pada fragmentasi horizontal.

Soal Latihan :
1. Jelaskan keunggulan dan kekurangan antara arsitektur sistem basis
data terdistribusi dengan sistem parallel!
2. Apa yang anda ketahui tentang teknik dan model sinkronisasi dan
replikasi dalam sistem basis data terdistribusi?
3. Jelaskan tentang distributed data storage dan distributed transaction
dalam sistem basis data terdistribusi!

40 | P e r a n c a n g a n B a s i s D a t a
4. Jelaskan yang anda ketahui tentang fragmentasi basis data?
Jelaskan pula latarbelakang dan macam fragmantasi tersebut!
5. Bagaimanakah mekanisme dalam menjaga integritas basis data
terdistribusi ? Jelaskan !

iV Struc
tured
Quer
PENDAHULUAN

A. Deskripsi Singkat

Bab ini mengajak pembaca untuk memahami bahasa SQL.

41 | P e r a n c a n g a n B a s i s D a t a
B. Relevansi dan Manfaat

Mahasiswa atau pembaca dapat mengetahui, memahami dan

menggunakan bahasa SQL.

C. Capaian Pembelajaran

Pada bab ini diharapkan mahasiswa mampu :

1. Mahasiswa mampu menggunakan bahasa SQL dalam membangun

database pada dbms.

SQL

• SQL singkatan dari Structured Query Language yang merupakan bahasa

komputer standar ANSI (American National Standards Institute). Dengan SQL

kita dapat :

– Membuat basis data dan struktur tabel


– Input, update, dan delete data dari tabel
– Membuat query sederhana dan kompleks
• SQL tersedia dalam banyak versi Ms.Access, DB2, MS SQL server, Oracle,

MySQL, Sybase,dll.

SQL DDL

Berfungsi untuk membuat atau menghapus database dan mendefinisikan

objek-objek (table, index, view, stored procedure, trigger) yang ada di dalam database.

 Data Definition Language (DDL)

Jenis perintah dasar yang pertama adalah Data Definition Language atau biasa

disingkat dengan DDL. Perintah dasar ini sebenarnya merupakan perintah

42 | P e r a n c a n g a n B a s i s D a t a
paling mendasar dari bahasa SQL. Tujuannya untuk membuat struktur

sebuah database. Kemudian, perintah dasar DDL masih dibedakan lagi ke

dalam setidaknya lima jenis perintah yakni bisa kamu lihat di bawah ini.

 Perintah Create: sebuah perintah yang bisa kamu gunakan ketika

membuat sebuah database yang baru, baik itu berupa tabel baru atau

sebuah kolom baru. Kamu bisa membuat sebuah query dengan

contoh ‘CREATE DATABASE nama_database.

 Perintah Alter: biasa digunakan ketika seseorang ingin mengubah

struktur tabel yang sebelumnya sudah ada. Bisa jadi dalam hal ini

adalah seperti nama tabel, penambahan kolom, mengubah, maupun

menghapus kolom serta menambahkan atribut lainnya.

 Perintah Rename: dapat kamu gunakan untuk mengubah sebuah

nama di sebuah tabel ataupun kolom yang ada. Bila kamu

menggunakan perintah ini maka query-nya menjadi ‘RENAME TABLE

nama_tabel_lama TO nama_tabel_baru”

 Perintah Drop: Bisa kamu gunakan dalam menghapus baik itu

berupa database, table maupun kolom hingga index.

 Perintah Show: perintah DDL ini digunakan untuk menampilkan

sebuah tabel yang ada.

 Data Manipulation Language (DML)

Berikutnya dalam pengertian SQL, dikenal dengan adanya Data Manipulation

Language (DML). Seperti namanya, perintah dasar SQL ini bertujuan untuk

memanipulasi data yang ada dalam sebuah database. Perintah dalam DML

43 | P e r a n c a n g a n B a s i s D a t a
juga terbagi ke dalam empat jenis. Beberapa di antaranya adalah insert, select,

update, dan delete.

 Perintah Insert: Kamu bisa menggunakan perintah ini untuk

memasukkan sebuah record baru di dalam sebuah tabel database.

 Perintah Select: Pada perintah ini kamu dapat menggunakannya

dalam menampilkan maupun mengambil sebuah data pada tabel.

Data yang diambil pun tidak hanya terbatas pada satu jenis saja

melainkan lebih dari satu tabel dengan memakai relasi.

 Perintah update: Ini dapat kamu gunakan ketika ingin melakukan

pembaruan data di sebuah tabel. Contohnya saja jika ada kesalahan

ketika memasukkan sebuah record. Kamu tidak perlu menghapusnya

dan bisa diperbaiki menggunakan perintah ini.

 Perintah Delete: Perintah DML ini dapat digunakan ketika kamu ingin

menghapus sebuah record yang ada dalam sebuah tabel.

 Data Control Language (DCL)

Perintah dasar berikutnya adalah Data Control Language atau DCL. Perintah

SQL ini digunakan khususnya untuk mengatur hak apa saja yang dimiliki oleh

pengguna. Baik itu hak terhadap sebuah database ataupun pada tabel maupun

field yang ada. Melalui perintah ini, seorang admin database bisa menjaga

kerahasiaan sebuah database. Terutama untuk yang penting. DCL berdasarkan

perintah dasarnya terbagi dalam dua perintah utama yakni:

44 | P e r a n c a n g a n B a s i s D a t a
 Perintah Grant: Perintah ini biasanya digunakan ketika

admin database ingin memberikan hak akses ke user lainnya. Tentu

pemberian hak akses ini dapat dibatasi atau diatur. Dalam hal ini

admin pun dapat memberikan akses mengenai perintah dalam DML

di atas.

 Perintah Revoke: Kebalikannya dari Grant, Revoke terkadang sering

digunakan untuk mencabut maupun menghapus hak akses seorang

pengguna yang awalnya diberikan akses oleh admin database melalui

perintah Grant sebelumnya.

Fungsi SQL

Keberadaan SQL dalam mengelola sebuah database memberikan fungsi

tersendiri. Bagi seorang admin, adanya SQL dapat memungkinkan kamu untuk

mengakses maupun mengubah database. Kamu pun bisa menjalankan

sebuah query maupun mengambil data yang dibutuhkan. Termasuk pula

memperbarui atau menyisipkan data dalam database.

SQL juga bisa digunakan untuk menghapus sebuah data

pada database. Fungsi lainnya adalah untuk membuat sebuah prosedur baru

dan ini akan tersimpan dalam sebuah database. Selain itu juga bisa mengatur

hak akses dalam tabel, prosedur, maupun hal-hal penting lainnya.

Latihan Soal SQL :

1. Buatlah database dengan nama penjualan ?

45 | P e r a n c a n g a n B a s i s D a t a
2. Database belajar buatlah tabel dengan nama barang dengan
field kode_barang, nama_barang, harga_barang dan total_barang silahkan
tentukan sendiri tipe data dan panjangnya!
3. Masukan data dibawah ini ke tabel barang tersebut!

kode_baran nama_barang harga_baran total_barang


g g
1234 Laptop ASUS X453MA 4000000 100
1235 Macbook Air MD2015 14000000 20
1236 Printer Epson 1000000 40
1237 Flashdisk Kingston 80000 80
8GB
1238 Intel Core i5 2200000 10

4. Tampilkan barang dengan kode_barang 1238!


5. Ubah nama barang tersebut dengan nama Intel Core i5 4594
6. Ubah nama barang dengan nama Flashdisk Kingston
8GB menjadi Kingston 8GB
7. Tampilkan barang yang memiliki harga diatas 10 Juta!
8. Hapus barang yang bernama Printer Epson!

4. Daftar Pustaka
[1] Rob, Peter and Elie Semaan. 2004. Databases Design Development
and Deployment Using Microsoft Access. Mc.Graw Hill
[2] Nugroho, Adi. 2011. Perancangan dan Implementasi Sistem Basis
Data. Yogyakarta. Penerbit Andi
[3] Indrajani. 2011. Perancangan Basis Data dalam All in 1. Jakarta. Elex
Media Komputindo

46 | P e r a n c a n g a n B a s i s D a t a
47 | P e r a n c a n g a n B a s i s D a t a

Anda mungkin juga menyukai