• Tidak ada hasil yang ditemukan

D. Sinaga, M.Kom - Integritas Basis Data

N/A
N/A
Protected

Academic year: 2019

Membagikan "D. Sinaga, M.Kom - Integritas Basis Data"

Copied!
53
0
0

Teks penuh

(1)

Integritas Basis

Data #3,#4

(2)

Pengertian Integritas

data

integritas data menunjukkan kualitas dari

data.

Integritas data sangat penting karena

komputer dan orang-orang menggunakan informasi untuk membuat keputusan dan mengambil tindakan.

Secara sederhana dalam istilah bisnis,

integritas data adalah jaminan bahwa data konsisten, bersertifikat dan dapat jadi

(3)

Integritas basisdata(lanj.)

Integritas data menjamin kualitas data dalam

database, mencakup :

1. menjamin keutuhan data

2. menjamin agar perubahan terhadap basis

data tidak menghasilkan inkonsistensi data

3. menjamin agar basis data tidak mengalami

kerusakan secara tidak sengaja

Dalam basis data dikenal istilah aturan

integritas (integrity constraint) yang

mengatur definisi dan modifikasi terhadap

(4)

Jenis aturan integritas :

Jenis aturan integritas :

1. Entity integrity constraints (aturan integritas entitas)

2. Domain constraints (aturan domain)

3. Referential integrity constraints (aturan integritas referensial)

4. Attribut-Based Constraints (aturan berbasis atribut) dan Tuple-Based

Constraints (aturan berbasis tupel) 5. Assertions (pernyataan)

(5)

Entity Integrity Constraint

(aturan integritas entitas)

Aturan ini diterapkan dengan cara

mendeklarasikan kunci primer (primary key) untuk setiap entitas agar dijamin tidak ada baris-baris dalam tabel relasi yang memiliki nilai yang sama (duplikat baris).

Contoh :

CREATE TABLE mahasiswa

( Nim CHAR(10) PRIMARY KEY, Nama VARCHAR(25),

(6)

Integritas Domain

Domain adalah nilai-nilai yang dimungkinkan

diasosiasikan dengan setiap atribut, Integritas domain merupakan validasi masukan dari sebuah kolom.

Definisi domain dari suatu atribut mencakup : tipe

data, panjang, format, jangkauan, nilai yang

memungkinkan, keunikan dan kemungkinan data null.

Tujuan definisi domain :

 Sistem dapat mengecek keakuratan data yang

dimasukkan ke database

Menguji queri apakah perbandingan dalam kriteria yang

(7)

Integritas Domain

Contoh :

Nama Atribut : No_Barang

Deskripsi : Nomor barang yang ada di tokoTipe Data : Text

Panjang Data : 5Format : XX999

Jangkauan : 2 digit pertama merupakan kode jenis barang (EL, RT, AT)

Keunikan : Harus unik

(8)

CREATE TABLE barang

( No_barang CHAR(5) NOT NULL, Nm_barang VARCHAR(25),

No_pemasok CHAR(2),

(9)

Referential Integrity Constraints

(aturan integritas referential)

Merupakan aturan yang mengatur kebenaran

referensi dari satu obyek ke obyek lain dalam database.

Menjaga integritas nilai suatu atribut dalam

(10)
(11)

Keterangan Tabel

Dalam tabel Barang, field No_pemasok adalah kunci tamu. Tabel Barang adalah tabel yang merujuk dan tabel Pemasok adalah tabel yang dirujuk. Jadi setiap nilai dalam kolom

No_pemasok pada tabel Barang harus

memiliki nilai yang TEPAT SAMA dalam kolom No_pemasok pada tabel Pemasok.

(12)

Cara mengimplementasikan

referential integrity :

Dari program aplikasi diterapkan dalam

baris-baris program

Contoh :

Rs.FindFirst(“No_barang”,”TblBarang”,”No_bara ng=’” & txtNoBrg & “’”)

(13)

Contoh Integritas referensi

Saat membuat table

CREATE TABLE Pemasok

( No_pemasok CHAR(2) NOT NULL, Nm_pemasok VARCHAR(25),

PRIMARY KEY(No_pemasok));

CREATE TABLE Barang

( No_barang CHAR(5) NOT NULL, Nm_barang VARCHAR(25),

No_pemasok CHAR(2) References Pemasok(No_pemasok),

(14)

Contoh integritas

referensi

CREATE TABLE Barang

( No_barang CHAR(5) NOT NULL,

Nm_barang VARCHAR(25), No_pemasok CHAR(2),

PRIMARY KEY (No_barang),

CHECK(Left,2) IN (“MK”, “RT”, “EL”), FOREIGN KEY No_pemasok

(15)

Intergritas Referensial (lanj)

Contoh :

create table account

(account-number char (10),

branch-name char (15),

balance integer,

primary key (account-number),

foreign key (branch-name) reference branch)

create table depositor

(costumer-name char (20),

account-number char (10),

primary key (costumer-name, account-number)

foreign key (account-number) reference account

(16)

Constraints Basis data

Salah satu fungsi dari Database Management System (DBMS) adalah integrity services,

yakni memastikan baik data di dalam basis data maupun pengubahan data selalu

memenuhi aturan.

Integritas basis data berkaitan dengan

kebenaran dan konsistensi dari data yang disimpan, dimana berkaitan dengan

constraint yang merupakan aturan didalam basis data yang tidak dapat dilanggar

(17)

Fungsi integrity constraint menurut Connolly

(2010) yakni memastikan data adalah akurat. Terdapat 5 integrity constraint antara lain

(Connolly, 2010: 231):

(1)    Required data

Misalnya tanggal di tabel Transaksi dan nama di tabel Produk pada gambar diatas harus ada nilainya, jadi keduanya merupakan required data, atau dengan kata lain kedua atribut tersebut tidak diijinkan bernilai null.

(18)

(2)    Domain constraints

Merupakan sekumpulan nilai yang diijinkan untuk sebuah atau banyak atribut. Misalnya Kode Produk di tabel Produk dan Detail

Transaksi pada gambar diatas harus diawali oleh sebuah huruf P capital dan diikuti oleh 3 karakter angka(0-9), yakni dengan range P001-P999.

(3)    Entity integrity

Aturan ini diterapkan untuk primary key dari sebuah tabel, yakni atribut yang merupakan primary key tidak boleh bernilai null

(19)

Constraints Basis

data(lanj)

Sebuah primary key merupakan minimal identifier

yang digunakan untuk mengidentifikasi data secara unik, artinya tidak ada subset dari primary key yang cukup untuk identifikasi sebuah data secara unik.

Misalnya tabel DetailTransaksi yang ditunjukkan

pada gambar diatas. Tabel DetailTransaksi memiliki composite key (memiliki lebih dari 1 atribut sebagai primary key) antara lain KodeTransaksi dan

KodeProduk, dimana 1 KodeTransaksi bisa terdiri dari banyak KodeProduk dan 1 KodeProduk

(20)

Constraints Basis

data(lanj)

Penerapan entity integrity pada tabel

DetailTransaksi yakni saat memasukkan sebuah data baru maka tidak diijinkan memberikan nilai null baik untuk atribut KodeTransaksi dan

KodeProduk, serta keunikan sebuah data

(21)

Constraints Basis

data(lanj)

(5)    General constraints

Merupakan aturan tambahan yang dispesifikasikan oleh pengguna atau

(22)

Keterangan General Konstrain Lanj.

Misalnya sebuah cabang hanya boleh memiliki maksimum 20 karyawan, sehingga setiap

karyawan baru yang akan ditempatkan di sebuah cabang maka dilakukan pengecekan apakah jumlah karyawan di cabang tersebut sudah mencapai 20 orang.

Jika sudah terdapat 20 orang karyawan pada cabang tersebut, maka penempatannya tidak dapat di cabang tersebut atau karyawan baru bisa ditempatkan di cabang tersebut jika

(23)

Constraints Classification

Constraint Classification (Tipe-tipe Constraint) : ·         PRIMARY  KEY Constraint

Berguna untuk menspesifikasikan kolom dalam tabel. Tidak boleh kosong dan harus unik, untuk

menghubungkan satu tabel dengan tabel lain. ·         FOREIGN KEY Constraint

Digunakan untuk menspesifikasikan kolom foreign key pada suatu tabel. Foreign Key digunakan untuk

menghubungkan dua tabel. Kolom foreign key adalah kolom atau kombinasi beberapa kolom dalam suatu

(24)

·         UNIQUE Constraint

Digunakan untuk menjamin bahwa data pada suatu kolom atau beberapa kolom tidak

diijinkan sama.

·         CHECK Constraint

Digunakan untuk membatasi suatu nilai pada kolom dengan nilai tertentu yang diijinkan

(25)

·         DEFAULT Constraint

Merupakan atribut opsional yang digunakan untuk memberikan suatu nilai tertentu pada suatu kolom jika kolom tersebut tidak

dimasukkan suatu data. ·         NOT NULL

Digunakan untuk menjamin tidak ada nilai null (kosong) yang muncul pada suatu kolom

(26)

Transition Constraints

Transition constraints adalah cara untuk

memastikan database tidak dimasukan data yang tidak mungkin berhubungan dengan data sebelumnya.

Transition constraints dapat dimodelkan

sebagai diagram transisi untuk memastikan aturan untuk memperbaharui entitas dengan cara tertentu. Ada keadaan awal, flow garis yang menunjukan data berikutnya yang

(27)

Transition constraints basis data dan Keys

sql support

CREATE TABLE membuat tabel baru pada basis

data yang sedang aktif. Secara umum, perintah ini memiliki bentuk

 CREATE TABLE [''nama_tabel''] (

 nama_field1 tipe_data [constraints][, nama_field2 tipe_data,

(28)

CREATE TABLE [''nama_tabel'']  (

 nama_field1 tipe_data [,  nama_field2 tipe_data,  ...]

 [CONSTRAINT nama_field constraints]  )

dengan: nama_field adalah nama kolom (field) yang akan dibuat.

Beberapa sistem manajemen basis data mengizinkan

penggunaan spasi dan karakter nonhuruf pada nama kolom.

(29)

constraints adalah batasan-batasan yang

diberikan untuk tiap kolom.

Ini juga tergantung implementasi sistem

manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key).

Satu tabel boleh tidak memiliki kunci primer

sama sekali, namun sangat disarankan

(30)

Assertions(penegasan)

Assesrtion adalah juga integritas dari sebuah basis

data dimana, sebuah aturan untuk menjadikan sebuah tabel data menjadi lebih terintegrasi.

pernyataan puas terhadap pencarian data adalah jika data yang dicari tidak salah.

Penggunaan constraint berupa kunci primer dan

kunci tamu pada deklarasi awal tabel merupakan salah satu cara untuk memelihara integritas data. Domain constraint dan Referential integrity

(31)

Pada beberapa basis data penggunaan kunci

primer dan kunci tamu sudah cukup untuk menjaga integritas data. Tetapi pada

(32)

Assertion digunakan untuk mengekspresikan

suatu kondisi basis data sesuai dengan yang kita inginkan. Seperti halnya prosedur,

assertion diberikan nama tertentu sehingga bisa dibatalkan apabila ada kondisi tertentu yang menuntut perubahan struktur basis

data. Syntax dari definisi assertion adalah sebagai berikut:

create assertion AssertionName check

(33)

Ketika assertion dibuat, maka sistem akan

melakukan pengecekan validitas dari assertion yang dibuat. Jika assertion yang dibuat valid maka

perubahan terhadap basis data hanya akan berlaku ketika tidak menyalahi assertion yang telah dibuat.

Pengecekan validitas tersebut akan memakan biaya

yang besar terutama apabila assertion yang dibuat cukup rumit, sehingga penggunaan dan pembuatan assertion harus dilakukan dengan hati-hati.

Karena itu tidak banyak developer sistem dan

(34)

Create assertion IC13 check

( ( Select min (s.status) from s ) > 4 ); Create assertion IC18 check

(not exists ( select * from P  where not ( P.Weight > 0.0 ))); Create assertion IC99 check

( not exists ( select * from P where P.color = ‘Red’       and P.city <> ‘London’));

Create assertion IC49 check not exists ( select * from P, SP

      where P.P# = SP.P#  and  ( P.weight * SP.Qty) > 20000)); Create assertion IC95 check ( not exists ( select * from S, SP

(35)
(36)

Trigger (Pemicu)

Trigger merupakan pernyataan yang

dieksekusi secara otomatis oleh sistem basis data sebagai akibat dari perubahan basis

data.

Ada beberapa persyaratan yang harus dipenuhi untuk merancang mekanisme trigger, yaitu:

1. Menspesifikasikan kapan trigger harus dieksekusi.

(37)

Trigers (lanj)

Sistem basis data yang berbasis SQL pada

umumnya menggunakan trigger, walaupun sebelum versi SQL:1999 belum dimasukkan ke dalam standar SQL. Hanya saja setiap

(38)

Trigers (lanj)

Trigger sebenarnya tidak lain adalah suatu

pemrograman PL/SQL yang mirip dengan procedure. Perbedaan mendasar dengan procedure adalah aktivasinya, dimana

procedure dapat dipanggil secara langsung sementara trigger dipanggil melalui pemicu yang berupa bahasa DML (Data Manipulation Language).

Bahasa DML yang digunakan sebagai pemicu

(39)

Contoh : Trigers

Sebelum melakukan perbaikan atau update simpan data dari pelanggan terlebih dahulu.

CREATE TRIGGER triggerName

AFTER UPDATE INSERT INTO CustomerLog

(blah, blah, blah) SELECT blah, blah, blah FROM deleted

(40)

Stored Procedure

Adalah sebuah kelompok kode SQL yang

disimpan di katalog database dan dapat dipanggil kemudian oleh program, trigers atau bahkan stored procedure.

Stored Procedure yang memanggil diri nya

sendiri di sebut rekursif stored procedure. Mysql sendiri mendukung penggunaan

(41)
(42)

Keuntungan penggunaan

Stored Procedure

Meningkatkan performance aplikasi. 

Sebuah Stored Procedure di simpan dan di compile di katalog database yang mana dapat di eksekusi lebih cepat di bandingkan SQL yang tidak di compile  dari kode aplikasi.

Mengurangi traffic antara aplikasi dan database

server. 

Aplikasi hanya mengirim nama stored procedure untuk mengeksekusi SQL.

Dapat di gunakan kembali dan transparent ke

aplikasi yang ingin menggunakan nya.

(43)

Kerugian penggunaan Stored

Procedure

Dapat mengakibatkan Database server membutuhkan

memory dan prosessor lebih tinggi.

Stored procedure hanya berisi SQL deklaratif,

sehingga sangat sulit untuk menulis sebuah

procedure dengan kompleksitas logika, seperti bahasa pemrograman yang di gunakan untuk memprogram aplikasi.

Stored procedure tidak dapat di debug di hampir

RDBMS, termasuk MySQL.

Membutuhkan keahlian khusus untuk menulis dan me

maintain stored procedure yang tidak setiap

(44)

Membuat stored

procedure

delimeter //

create procedure nama_mhs() begin

select * from mahasiswa; end //

delimeter ; 

Kita memulai nya dengan delimeter //dan di akhiri

dengan // delimeter ;

Body sql di mulai dengan begin dan di akhiri dengen

(45)

Memanggil Stored

Procedure

call

nama_stored_procedure( )

Contoh :

(46)

Variable dalam Stored Procedure

Variabel di gunakan untuk menyimpan

prosedure ke penyimpanan hasil dengan segera.

Anda dapat mendeklarasikan sebuah variabel

dengan syntax berikut :

DECLARE nama variabel tipe data (ukuran)

DEFAULT nilai default;

Contoh :

(47)

Contoh Stored Procedure  DELIMITER $$

DROP PROCEDURE IF EXISTS Kata()$$; CREATE PROCEDURE Kata()

BEGIN

SELECT ‘UDINUS’; END$$

DELIMITER ;

mysql> use coba;

Database changed mysql> CALL Kata(); +——–+

(48)

Stored Procedure(lanj)

Variabel

Variabel dalam bahasa SQL, fungsinya sama

dengan bahasa pemrograman paxda umumnya.

Perintahnya menggunakan DECLARE, dan untuk memberikan nilai menggunakan

perintah SET.

Parameter

(49)

Stored Procedure(lanj)

Contoh

DELIMITER$$

CREATE PROCEDURE Demo_Var()

BEGIN

DECLARE x int; DECLARE y int; SET x=10;

SET y=20;

SELECT x+y; END$$;

(50)

Stored Procedure(lanj)

CALL Demo_var

Hasil

+——+

| x+y | +——+ | 30 | +——+

1 row in set (0.00 sec)

Sebuah Procedure dengan mengunakan

(51)

Contoh :

DELIMITER$$

CREATE PROCEDURE my_akar(masukan INT)

BEGIN

DECLARE hasil FLOAT;

SET hasil= SQRT(masukan); SELECT hasil;

END$$;

DELIMITER;

Cara memanggil prosedurCALL my_akar(25);

Hasil keluaran sebagai berikut :mysql> CALL my_akar(25);

+——-+

(52)

Pertanyaan :

Jelaskan pentingya sebuah Integritas Basis

Data, berikan contohnya.

Sebutkan jenis-jenis integritas sistem data

base yang

(53)

Referensi

Dokumen terkait

Sintaks atau Pola Keseluruhan dan Alur Kegiatan Pembelajaran Pada model pengajaran langsung terdapat lima fase yang

Karena setiap hari manusia tidak dapat untuk tidak berkomunikasi, sehingga disini, sering terjadi komunikasi antara mahasiswa Sumbawa dengan mahasiswa dari daerah lain,

Untuk kelajuan yang kecil terhadap kelajuan cahaya, energi total partikel E ialah jumlah dari energi kinetik dan energi potensial V, dengan V pada umunya merupakan fungsi

Pemberian Cendawan Mikoriza Arbuskular pada medium tanam berpengaruh tidak nyata terhadap tinggi bibit, panjang daun, jumlah daun, berat basah, ratio tajuk akar

Nasabah mendapatkan discount s.d 30 % apabila belanja menggunakan Fiesta Poin kartu mandiri debit atau Power Poin Kartu Kredit dengan transaksi minimal Rp 500 ribu.. Gandaria

26 Dan kepada imam Abyatar raja berkata: &#34;Pergilah ke Anatot, ke tanah milikmu, sebab engkau patut dihukum mati, tetapi pada hari ini aku tidak akan membunuh engkau, oleh

Penelitian dengan judul “ Dampak Fenomena the Day of the Week Effect, Monday Effect dan Weekend Effect pada Perdagangan Saham di Bursa Efek Indonesia” ini