modul database 2017informatika.itn.ac.id/wp-content/uploads/2017/09/modul... · 2017-09-28 ·...

31
MODUL DATABASE 2017 S Server·

Upload: buitu

Post on 17-Mar-2019

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

MODUL

DATABASE 2017

� SQ0L Server·

Page 2: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

1

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

BAB I

DESAIN DATABASE

1.1 Field Kunci (Key Field)

Field kunci merupakan atribut dari suatu tabel yang dipakai agar dua table dapat saling

berhubungan. Jenis-jenis field kunci:

a. Super Key

Kumpulan atribut dari suatu table yang dapat digunakan untuk mengidentifikas i

entity dari table tersebut.

b. Candidate Key

Atribut yang mempunyai kemungkinan menjadi primary key. Candidate key ini

tidak boleh berisi atribut dari tabel yang lain.

c. Primary Key

Sebuah atribut yang mewakili field lainnya dalam sebuah table. Primary key hanya

dibentuk dari data yang unik dan harus berbeda atau tidak boleh kembar .

d. Alternate Key

Sebuah atribut yang memungkinkan menjadi kunci primer , sehingga kunci

alternative ini menjadi kunci utama kedua setelah kunci primer .

e. Foreign Key

Sebuah kunci yang berasal dari tabel lain. Kunci ini digunakan untuk merelasikan

sebuah tabel dengan tabel yang lainya.

Contoh 1 :

Tabel Buku

kode_buku judul pengarang penerbit thn_terbit

B001

B002

Dari tabel buku di atas menunjukkan bahwa :

Tabel Peminjaman

ID_anggota nama Kode_buku Tgl_pinjam Tgl_batas

A001 B002

[email protected]

Page 3: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

2

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

1.2 Kardinalitas / DerajatRelasi

Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

dengan entitas pada himpunan entitas yang lain. Berikut macam - macam kardinalitas :

a. One to One

Tiap entitas pada himpunan A berhubungan hanya dengan satu entitas pada

himpunan B begitu pula sebaliknya.

b. One to Many

Tiap entitas pada himpunan A berhubungan dengan banyak entitas pada himpunan

B namun tiap entitas pada himpunan B hanya berhubungan dengan satu entitas

himpunanA.

c. Many to One

Setiap entitas pada himpunan A berhubungan dengan satu entitas pada himpunan

B namun tiap entitas pada himpunan B berhubungan dengan banyak entitas pada himpunan

A.

d. Many to Many

Tiap entitas pada himpunan A berhubungan dengan banyak entitas pada himpunan

B begitu pula sebaliknya.

1.3 Entity Relationship Diagram (ERD)

ERD merupakan grafis yang menggambarkan hubungan antara entitas dalam database.

ERD sering menggunakan simbol-simbol untuk mewakili tiga jenis informasi yang berbeda.

Box biasanya digunakan untuk mewakili entitas. Diamond biasanya digunakan untuk

mewakili hubungan dan oval digunakan untuk mewakili atribut.

ENTITAS RELASI ATRIBUT

[email protected]

Page 4: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

3

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

Contoh ERD :

ANGGOTA

ID_anggota

nama

alamatgender

Tgl_lahir MEMINJAM BUKU

judulkode_buku

pengarang

thn_buku

penerbit

stok

1.4 Normalisasi

Normalisasi adalah proses pengorganisasian efisien data dalam database. Ada beberapa tujuan

dari proses normalisasi:

1. Menghilangkan data yang berlebihan (misalnya menyimpan data yang sama di lebih dari

satu tabel) yang biasa disebut redudansi atau duplikasi data, menghindari Null Value, dan

Multy Value.

2. Untuk mempermudah pengembangan dan perawatan database.

3. Untuk menghemat database dan memastikan bahwa data yang disimpan benar-benar

akurat. Pada umumnya bentuk normalisasi yang sering digunakan adalah 1NF, 2NF, dan

3NF.

1.4.1. Tabel Unnormal

ID_anggota nama Alamat Kode_buku Tgl_pinjam Tgl_batas

A001 Ani Malang B001 1-3-2015 3-3-2015

B003 1-3-2015 3-3-2015

A005 Budi Batu B010 5-3-2015 7-3-2015

B002 5-3-2015 7-3-2015

1.4.2. 1NF

ID_anggota nama Alamat Kode_buku Tgl_pinjam Tgl_batas

A001 Ani Malang B001 1-3-2015 3-3-2015

A001 Ani Malang B003 1-3-2015 3-3-2015

A005 Budi Batu B010 5-3-2015 7-3-2015

A005 Budi Batu B002 5-3-2015 7-3-2015

[email protected]

Page 5: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

4

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

1.4.3. 2NF

Tabel ANGGOTA

ID_anggota nama alamat

A001 Ani Malang

A002 Budi Batu

Tabel BUKU

Kode_buku judul pengarang penerbit

Tabel PEMINJAMAN

ID_anggota Kode_buku Tgl_pinjam Tgl_kembali

1101

1102

1.5 Data Flow Diagram (DFD)

DFD adalah suatu grafik yang menjelaskan sebuah system dengan menggunakan

bentuk - bentuk atau symbol untuk menggambarkan aliran data dari proses - proses yang saling

berhubungan.

1.5.1. Notasi DFD

a. Terminator / Entity

Terminator atau entity mewakili entitas eksternal yang berkomunikas i

dengan system yang sedang dikembangkan. Terminator dapat berupa orang,

sekelompok orang, organisasi, departemen di dalam organisasi, atau perusahaan

yang sama tetapi di luar kendali system yang sedang dibuat modelnya.

Termintor dapat juga berupa departemen, divisi atau system di luar system yang

berkomunikasi dengan system yang dikembangkan. Komponen ini perlu diberi

nama sesuai dengan dunia luar yang berkomunikasi dengan system yang dibuat

modelnya, dan biasanya menggunakan kata benda, misalnya bagianpenjualan,

dosen, mahasiswa.

[email protected]@gmail.com

[email protected]

Page 6: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

5

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

Gambar dari symbol entitas eksternal / terminator

b. Proses

Merupakan kegiatan atau pekerjaan yang di lakukan oleh orang atau mesin

computer, dimana aliran data masuk di transformasikan ke aliran data keluar

Gambar dari symbol entitas atau proses

c. Data Store

Data store ini biasanya berkaitan dengan penyimpanan penyimpanan,

seperti file atau database yang berkaitan dengan penyimpanan secara

komputerisasi, misalnya file disket, file harddisk, file pita magnetic. Data store

juga berkaitan dengan penyimpanan secara manual seperti buku alamat, file

folder, dan agenda. Data store diberi nama sesuai dengan nama file

penyimpanannya misalnya mahasiswa, matakuliah, dosen, date registrasi.

Gambar dari simbol data store atau penyimapanan data

d. Alur Data

Suatu data flow / alur data di gambarkan dengan anak panah. Yang

menunjukkan arah menuju dan keluar dari suatu proses. Alur data ini digunakan

untuk menerangkan perpindahan data atau paket data / informasi dari satu bagian

system kebagian lainnya

Gambar dari symbol alur atau aliran data

[email protected]

[email protected]

Page 7: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

6

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

Setelah mengetahui mengenai simbol-simbol pada DFD, maka coba lihat alur DFD

di bawah ini.

1.5.2. Desain DFD Level 0

Data Flow Diagram pada level 0 merupakan gambaran system secara garis

besar yang menerangkan hubungan antara entity dengan proses data dan

pembuatan file-file yang menghasilkan informasi yang diinginkan. Gambaran

DFD Level 0 akan dijelaskan di bawah ini :

SI Perpustakaan

0

Anggota Admin

Kepala Perpus

Kartu Peminjaman

Informasi Buku

Kartu Anggota

Judul Buku

Data Anggota

Data Peminjaman

Data Pengembalian

Laporan Peminjaman /

Pengembalian

Gambar DFD Level 0

[email protected]

Page 8: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

7

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

1.5.3. Desain DFD Level 1

Setelah proses DFD Level 0 decompose maka yang muncul adalah level

ke-1, dalam level ke-1 ini bisa menambahkan proses lebih dari satu, dan disini

juga sudah bisa memasukkan atau memakai data strore.

Proses

Pendataan

Anggota

1

AdminAnggota

Kepala Perpus

Data Buku + Kartu Anggota

Proses

Pendataan

Buku

Proses

Pencarian

Buku

Proses

Pendataan

Peminjam

Proses

Pendataan

Pengembalian

Proses

Laporan

tb_anggota

tb_buku

tb_peminjaman

tb_pengembalian

Data Anggota

Data Buku

Kartu Anggota

Judul Buku

Informasi Buku

Kartu Anggota

Kartu Peminjaman

Data Laporan

Laporan Perpus

Kartu Peminjaman

2

4

3

5

6

Gambar DFD Level 1

[email protected]

Page 9: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

8

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

BAB II

IMPLEMENTASI SQL

Komponen-komponen SQL

2.1 Data Definition Language (DDL)

DDL digunakan untuk memanipulasi ( membuat, mengubah, dan menghapus) struktur

objek dari database. Perintah SQL DDL terdiri atas CREATE, ALTER,dan DROP. Berikut

contoh implementasi perintah SQL DDL:

a. CREATE

Perintah SQL create bisa digunakan untuk membuat database dan membuat table didalam

database. Berikut struktur penulisan perintah createdalam SQL server:

CREATE DATABASE nama_database

Struktur Query Sql Untuk Membuat Database

CREATE TABLE nama_tabel (

column_name data_type column_option,

column_name data_type column_option

)

Struktur query sql pembuatan tabel dalam database

[email protected]

Page 10: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

9

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

Berikut contoh pembuatan database dan tabel dengan query SQL :

CREATE DATABASE DB_PERPUSTAKAAN

Sintaks Pembuatan Database

CREATE TABLE TB_BUKU (

kode_buku varchar(5) PRIMARY KEY,

judul text,

pengarang varchar(30),

penerbit varchar(30),

tahun varchar(5)

)

Sintaks Pembuatan Tabel di dalam Database SQL Server

b. ALTER

Perintah alter digunakan untuk memodifikasi elemen-elemen pada tabel seperti berikut:

- Menambah field baru atau menghapus field pada tabel.

- Mengubah nama tabel.

- Mengubah nama field.

- Mengubah nilai field.

Untuk mengimplementasikan hal diatas dapat dilakukan menggunakan query sebagai berikut:

1. Menambah Field Baru

Susunan query yang digunakan untuk menambah field baru adalah sebagai berikut:

ALTER TABLE nama_tabel

ADD field_baru data_type

Dan berikut contoh implementasinya pada TB_BUKU

ALTER TABLE TB_BUKU

ADD kategori varchar(12) NOT NULL

[email protected]

Page 11: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

10

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

2. Menghapus Field

Untuk menghapus field dalam suatu tabel digunakan perintah sql dengan susunan sebagai

berikut:

ALTER TABLE nama_field

DROP COLUMN field_target

Dan berikut contoh implementasinya pada tabel TB_BUKU

ALTER TABLE TB_BUKU

DROP COLUMN kategori

3. Mengubah Nama Tabel

Susunan query sql yang digunakan untuk mengubah nama tabel adala sebagai berikut:

EXEC SP_RENAME nama_tabel, nama_tabel_baru

Berikut contoh penggunaan perintah EXEC pada tabel TB_BUKU

EXEC SP_RENAME TB_BUKU, TABLE_BUKU

4. Mengubah nama field

Untuk merubah nama field pada suatu tabel query sql yang digunakan sama dengan query

untuk merubah nama tabel yaitu EXEC. Berikut contoh penggunaannya:

EXEC SP_RENAME 'TABLE_BUKU.tahun','tahun_terbit'

5. Mengubah tipe data field

Untuk merubah tipe data suatu field pada tabel digunakan susunan query sql sebagai

berikut:

ALTER TABLE NAMA_TABEL

ALTER COLUMN field_target tipe_data_baru

ALTER TABLE TABLE_BUKU

ALTER COLUMN judul varchar(50)

[email protected]

Page 12: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

11

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

c. DROP

Perintah DROP ini hanya digunakan untuk menghapus tabel didalam database. Berikut

query sql untuk menghapus tabel:

DROP TABLE nama_tabel

Contoh penggunaan Drop:

DROP TABLE TABLE_BUKU

4. Data Manipulation Language (DML)

DML adalah bagian utama dari pernyataan SQL (SQL Statement). DML memungkinkan

kita untuk mengambil data dari tabel dalam database. Selain itu, DML memungkinkan kita untuk

menambah, mengubah atau menghapus data dari tabel database dengan menggunakan query

INSERT, UPDATE dan DELETE. Berikut adalah SQL Query yang berhubungan dengan DML:

a. INSERT

INSERT digunakan untuk menyisipkan atau memasukkan data baru ke dalam tabel.

Penggunaannya setelah database dan tabel selesai dibuat. Berikut sintaks dari query INSERT:

INSERT INTO nama_tabel VALUES('isi','isi','isi','isi')

atau bisa juga dengan mendeklarasikan nama kolom yang akan di isi seperti berikut :

INSERT INTO nama_tabel (column1, column2, column3)

VALUES('isi','isi','isi')

Sebagai contoh kita dapat menerapkan dengan menggunakan query:

INSERT INTO TABLE_BUKU VALUES

('1118002','Modul Database','Tim Database','Lab. Database dan SI','2016')

('1118003','Modul Sistem Informasi Geografis','Tim SIG','Lab. Database dan

SI','2015')

Dan berikut contoh perintah insert yang mendeklarasikan nama kolom yang akan diisi:

INSERT INTO TABLE_BUKU (kode_buku,judul,pengarang,penerbit,tahun) VALUES

('1118002','Modul Database','Tim Database','Lab. Database dan SI','2016')

[email protected]

Page 13: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

12

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

b. UPDATE

Perintah update digunakan untuk memperbaharui isi dari tabel yang ada didalam database.

Berikut query syntak UPDATE.

UPDATE nama_tabel

SET nama_column = 'isi colum baru'

WHERE primary_key_column = '....'

UPDATE TABLE_BUKU

SET tahun ='2016'

WHERE kode_buku ='1118003'

c. DELETE

Perintah ini digunakan untuk menghapus data dari table. Berikut sintaks dari query

DELETE:

DELETE FROM nama_tabel WHERE kondisi

Sebagai contoh kita dapat menerapkan dengan menggunakan query:

DELETE FROM TABLE_BUKU WHERE kode_buku='1118003'

d. SELECT

SELECT memungkinkan kita untuk mengambil data dari satu atau lebih tabel. Berikut

adalah sintaks dari SELECT:

SELECT nama_field FROM nama_tabel

Sintaks mengambil data field tertentu dari sebuah tabel.

SELECT * FROM nama_tabel

Sintaks mengambil data disemua field dari sebuah tabel.

Sebagai contoh kita dapat menerapkan dengan menggunakan query:

SELECT judul FROM TABLE_BUKU

Query mengambil data field tertentu dari sebuah tabel.

SELECT * FROM TABLE_BUKU

Query mengambil data semua field dari sebuah tabel.

[email protected]

Page 14: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

13

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

• WHERE

WHERE dapat digunakan dengan SQL statement lain seperti SELECT, DELETE dan

UPDATE untuk menyaring data dalam tabel yang memenuhi kondisi tertentu. Anda dapat

melakukan query ini:

SELECT * FROM nama_tabel

WHERE nama_field='isi'

Sintaks Where

SELECT * FROM TABLE_BUKU

WHERE kode_buku='1118002'

Query WHERE

• ALIAS

ALIAS digunakan untuk mengatur output dan menghindari kesalahan ambigu dalam SQL

ketika kita ingin mengolah data dan ada lebih dari satu tabel dengan nama field yang sama.

SELECT a.nama_field,a.nama_field

FROM nama_tabel AS a

Sintaks ALIAS

SELECT a.judul,a.pengarang

FROM TABLE_BUKU AS a

Query ALIAS

• DISTINCT

DISTINCT digunakan untuk menghilangkan record yang memiliki nilai sama. Query

distinct dapat kita tuliskan sebagai berikut:

SELECT DISTINCT nama_filed FROM nama_tabel

Sintaks DISTINCT

SELECT DISTINCT kode_buku FROM TABLE_BUKU

Query DISTINCT

[email protected]

Page 15: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

14

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

• ORDER BY

Dengan menggunakan ORDER BY memungkinkan kita untuk mengurut hasil

pencarian berdasarkan satu atau lebih sort keys dalam ascending (ASC) atau descending

(DESC). Berikut adalah query dari ORDER BY:

SELECT nama_field FROM nama_tabel

ORDER BY nama_field DESC

Sintaks ORDER BY

SELECT judul FROM TABLE_BUKU

ORDER BY judul DESC

Query ORDER BY

• BETWEEN

Operator BETWEEN memungkinkan kita untuk mengambil data yang memiliki nilai

dalam berbagai nilai. Query dari BETWEEN adalah sebagai berikut:

SELECT * FROM nama_tabel

WHERE nama_field BETWEEN 'kodisi1' AND 'kondisi2'

Sintaks BETWEEN

SELECT * FROM TABLE_BUKU

WHERE kode_buku BETWEEN '1118001' AND '1118005'

Query BETWEEN

• LIKE

Operator LIKE memungkinkan kita untuk mencari data dengan kriteria tertentu yang mirip

dengan keyword yang sudah kita tentukan. Berikutadalah query dari LIKE:

SELECT * FROM nama_tabel

WHERE nama_field LIKE '%isi%'

Sintaks LIKE

SELECT * FROM TABLE_BUKU

WHERE judul LIKE '%sistem informasi%'

Query LIKE

[email protected]

Page 16: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

15

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

• GROUP BY

GROUP BY fungsi yang mirip dengan DISTINCT namun Query ini dapat digunakan

untuk melakukan perhitungan seperti SUM, AVG, MIN, MAX dan COUNT tujuannya agar

informasi output lebih ringkas. Berikut adalah Query dari GROUP BY:

SELECT customer, SUM(QTY) AS total_item

FROM pembelian

GROUP BY customer

Query GROUB BY.

• HAVING

HAVING digunakan untuk membatasi kriteria tertentu berdasarkan kriteria yang

diinginkan. Mirip dengan WHERE tetapi khusus dipakai bersama dengan Query GROUP BY.

Berikut adalah Query dari HAVING:

SELECT DayOfOrder,Product, SUM(QTY) AS total_item

FROM Orders

GROUP BY DayOfOrder,Product,QTY

HAVING QTY >5

ORDER BY DayOfOrder

Query HAVING

• UPPER & LOWER

Dengan menggunakan UPPER kita dapat merubah tampilan data menjadi uppercase,

sedangkan LOWER kita dapat merubah tampilan secara lowercase. Berikut Query dari UPPER

dan LOWER:

SELECT UPPER(nama_field) FROM nama_tabel

Sintaks UPPER

SELECT UPPER(nama) FROM TABLE_BUKU

Query UPPER

SELECT LOWER(nama_field) FROM nama_tabel

Sintaks LOWER

SELECT LOWER(judul) FROM TABLE_BUKU

Query LOWER

[email protected]

[email protected]

Page 17: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

16

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

• SUBSTRING

Dengan menggunakan SUBSTRING kita dapat menampilkan jumlah karakter sesuai

dengan yang kita inginkan. Berikut adalah Query dari SUBSTRING:

SELECT SUBSTRING(nama_field,index_awal,index_akhir)

FROM nama_tabel

Sintaks SUBSTRING

SELECT SUBSTRING(judul,1,5) FROM TABLE_BUKU

Query SUBSTRING

• LEN

Dengan menggunakan LEN kita dapat menghitung jumlah karakter yang ada pada

record.Berikut adalah Query dari LEN:

SELECT LEN(nama_field) FROM nama_tabel

Sintaks LEN

SELECT LEN(judul) FROM TABLE_BUKU

Query LEN

• TOP

Dengan menggunakan TOP (biasa disebut LIMIT dalam mysql) dapat memungkinkan

kita untuk membatasi berapa banyak data yang ingin kita tampilkan. Berikut adalah Query

dari TOP:

SELECT TOP jumlah_batas FROM nama_tabel

Sintaks TOP

SELECT TOP 10 * FROM TABLE_BUKU

Query TOP

[email protected]

Page 18: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

17

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

2.3 Data Control Language (DCL)

Data Control Language (DCL) adalah bagian dari SQL yang memungkinkan administra tor

database untuk mengkonfigurasi akses keamanan untuk database. DCL terdiri dari tiga perintah:

GRANT, REVOKE, dan DENY. Gabungan, dari ketiga perintah ini memungkinkan administrator

untuk mengatur dan menghapus hak akses database dengan fleksibel. Berikut adalah penjelasan

singkatnya:

a. GRANT: Memberikan izin kepada user untuk dapat melakukan operasi pada objek database.

b. REVOKE: Menghapus izin yang diberikan pada objek database.Yang perlu diingat adalah,

pengguna masih dapat mengakses objek database sepenuhnya.

c. DENY: Menolak izin operasi pengguna untuk objek database. Dengan ini pengguna tidak akan

dapat melakukan operasi terhadap objek database.

Berikut adalah langkah-langkah dalam menentukan hak akses untuk objekdatabase:

1. Membuat user baru.

CREATE LOGIN nama_user WITH PASSWORD='password',CHECK_POLICY=OFF

GO

USE nama_database

GO

CREATE USER nama_user FOR LOGIN nama_user

WITH DEFAULT_SCHEMA =[dbo]

2. Memberikan izin pada user untuk dapat mengakses.

GRANT SELECT ON OBJECT::dbo.nama_tabel TO nama_user

3. Menjalankan perintah SELECT dengan hak akses user baru yang tadi telah kita buat.

EXECUTE AS USER = 'nama_user'

SELECT * FROM dbo.nama_tabel

REVERT

4. Menghapus izin yang diberikan kepada user baru.

REVOKE SELECT ON OBJECT::dbo.nama_tabel FROM nama_user

5. Menjalankan perintah SELECT kembali, dan user baru masih dapat melihatdata, karena tidak

semua GRANT yang dihapus oleh REVOKE.

GRANT EXECUTE AS USER = 'nama_user'

SELECT * FROM dbo.nama_tabel

[email protected]

Page 19: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

18

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

REVERT

6. Menolak izin pada tabel untuk user baru, agar user baru tidak dapat melihat data.

DENY SELECT ONOBJECT::dbo.nama_tabel TO nama_user

7. Menjalankan perintah SELECT, dan nama_user tidak dapat dapat melihat data pada nama_tabel.

EXECUTE AS USER = 'nama_user'

SELECT * FROM dbo.nama_tabel

REVERT

[email protected]

Page 20: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

19

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

BAB III

JOIN DAN TRIGGER

3.1 JOIN TABLE

Join merupakan sebuah operasi yang dugnakan untuk mendapatkan data gabungan dari dua

table atau lebih. Operasi tersebut digunakan dalam perintah SELECT, dan biasanya dipakai untuk

memperoleh detail data dari tabel-tabel yang saling berhubungan (memiliki relasi).

Ada beberapa jenis untuk operasi join :

a. Inner Join

Menampilkan data dari dua tabel yang datanya memiliki setidaknya satu kesamaan.

Sintaks inner join :

Format penulisan tanpa alias

SELECT

nama_tabel1.nama_field, nama_tabel1.nama_field,

nama_tabel2.nama_field, nama_tabel2.nama_field,

FROM nama_tabel1 inner join nama_tabel2

ON nama_tabel1.nama_field = nama_tabel2.nama_field

Format penulisan menggunakan alias

SELECT

a.nama_field, a.nama_field,

b.nama_field, b.nama_field,

FROM nama_tabel1 AS a inner join nama_tabel2 AS bON a.nama_field = b.nama_field

Contoh penggunaan : SELECT

tb_anggota.ID_anggota, tb_anggota.nama,

tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,

tb_peminjaman.Tgl_kembali

FROM tb_anggota inner join tb_peminjaman

ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota

[email protected]

Page 21: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

20

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

b. Left Join

Menampilkan data sesuai dengan tabel sebelah kiri.

Sintaks left join :

Format penulisan tanpa aliasSELECT

nama_tabel1.nama_field, nama_tabel1.nama_field,

nama_tabel2.nama_field, nama_tabel2.nama_field,

FROM nama_tabel1 left outer join nama_tabel2 ON nama_tabel1.nama_field = nama_tabel2.nama_field

Format penulisan menggunakan alias

SELECT

a.nama_field, a.nama_field,

b.nama_field, b.nama_field,

FROM nama_tabel1 AS a left outer join nama_tabel2 AS bON a.nama_field = b.nama_field

Contoh penggunaan : SELECT

tb_anggota.ID_anggota, tb_anggota.nama,

tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,

tb_peminjaman.Tgl_kembali

FROM tb_anggota left outer join tb_peminjaman

ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota

c. Right Join

Menampilkan data sesuai dengan tabel sebelah kanan. Right join merupakan kebalikan dari

left join.

Sintaks right join :

Format penulisan tanpa alias

SELECT

nama_tabel1.nama_field, nama_tabel1.nama_field,

nama_tabel2.nama_field, nama_tabel2.nama_field,

FROM nama_tabel1 right outer join nama_tabel2 ON nama_tabel1.nama_field = nama_tabel2.nama_field

Format penulisan menggunakan alias SELECT

a.nama_field, a.nama_field,

b.nama_field, b.nama_field,

FROM nama_tabel1 AS a right outer join nama_tabel2 AS bON a.nama_field = b.nama_field

[email protected]

Page 22: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

21

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

Contoh penggunaan : SELECT

tb_anggota.ID_anggota, tb_anggota.nama,

tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,

tb_peminjaman.Tgl_kembali

FROM tb_anggota right outer join tb_peminjaman

ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota

d. Full Join

Menampilkan semua data yang ada pada tabel. Semua data pada tabel yang

dilakukan operasi join akan di tampilkan semua. Jika tidak ada kesamaan maka akan

bernilai null.

Sintaks full join :

Format penulisan tanpa alias

SELECT

nama_tabel1.nama_field, nama_tabel1.nama_field,

nama_tabel2.nama_field, nama_tabel2.nama_field,

FROM nama_tabel1 full outer join nama_tabel2

ON nama_tabel1.nama_field = nama_tabel2.nama_field

Format penulisan menggunakan alias

SELECT

a.nama_field, a.nama_field,

b.nama_field, b.nama_field,

FROM nama_tabel1 AS a full outer join nama_tabel2 AS bON a.nama_field = b.nama_field

Contoh penggunaan : SELECT

tb_anggota.ID_anggota, tb_anggota.nama,

tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,

tb_peminjaman.Tgl_kembali

FROM tb_anggota full outer join tb_peminjaman

ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota

[email protected]

Page 23: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

22

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

3.2 TRIGGER

Trigger merupakan object database yang berisi kumpulan perintah SQL yang berfungs i

untuk mengeksekusi satu atau sekumpulan perintah SQL secara otomatis ketika menambah,

merubah dan menghapus sebuah baris data didalam suatu table.

Dalam pengolahan database, trigger memiliki beberapa manfaat :

1. Trigger dapat digunakan untuk mengetahui waktu penambahan, pengubahan dan

penghapusan data.

2. Trigger dapat digunakan untuk memasukkan data pada table lain.

Untuk membuat trigger, sebelumnya harus membuat table yang akan dikenakan proses

trigger dan table yang menampung setiap kejadian INSERT, UPDATE ataupun DELETE. Pada

contoh kali ini kita memakai table ANGGOTA yang telah dibuat sebelumnya. Untuk table yang

menampung data waktu yang menunjukkan ada manipulasi pada table kita buat satu table baru

yaitu table BERITA.

TABEL ANGGOTA

ID_anggota Varchar(4) Nama Varchar(20)

Alamat Varchar(25)

TABEL BERITA

Keterangan Varchar(25)

Tanggal Datetime

Perintah membuat table BERITA

CREATE TABLE Berita(Keterangan VARCHAR(25), Tanggal DATETIME

Setelah membuat table BERITA, selanjutnya membuat trigger. Perintah membuat trigger

seperti dibawah ini.

Sintaks trigger

Format penulisan atau pembuatan trigger :

CREATE TRIGGER nama_trigger ON nama_table_untuk_trigger FOR

fungsi_insert/update/delete AS

INSERT INTO nama_table_penampung(nama_field, nama_field)

VALUES ('isi', GETDATE())

[email protected]

Page 24: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

23

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

a. TRIGGER INSERT

Contoh penggunaan untuk INSERT :CREATE TRIGGER in_ang ON tb_anggota FOR INSERT AS

INSERT INTO Berita(Keterangan, Tanggal)

VALUES ('Penambahan Anggota', GETDATE())

b. TRIGGER UPDATE

Contoh penggunaan untuk UPDATE :CREATE TRIGGER up_ang ON tb_anggota FOR UPDATE AS

INSERT INTO Berita(Keterangan, Tanggal)

VALUES ('Pengubahan Anggota', GETDATE())

c. TRIGGER DELETE

Contoh penggunaan untuk DELETE :CREATE TRIGGER del_ang ON tb_anggota FOR DELETE AS

INSERT INTO Berita(Keterangan, Tanggal)

VALUES ('Hapus Anggota', GETDATE())

[email protected]

Page 25: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

24

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

BAB IV

VIEW , STORED PROCEDURE , STORED FUNCTION

4.1 VIEW

View merupakan tabel virtual berdasarkan hasil dari pernyataan SQL yang telah kita buat.

Kita juga dapat menambahkan fungsi- fungsi SQL, Where dan Join.

a. Create View

Yang pertama dilakukan untuk menggunakan tabel view yaitu membuat view.

Sintaks membuat view :

CREATE VIEW nama_view

AS

SQLQuery

Contoh Penggunaan View :

CREATE VIEW V_anggota

AS

SELECT * FROM tb_anggota

b. Update View

Selain membuat view juga dapat merubah SQL Query yang ada pada table view

yang telah kita buat.

Sintaks memperbarui view :

ALTER VIEW nama_view

AS

SQLQuery

Contoh memperbarui view :

ALTER VIEW V_anggota

AS

SELECT * FROM tb_buku

[email protected]

Page 26: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

25

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

c. Delete View

Untuk menghapus view yang telah kita buat, kita dapat menggunakan cara berikut :

Sintaks menghapus view :

DROP VIEW nama_view

Contoh menghapus view :

DROP VIEW V_anggota

4.2 STORED PROCEDURE

Stored procedure merupakan sekumpulan perintah-perintah SQL yang tersimpan dengan

nama tertentu dan diproses sebagai sebuah kesatuan. Bisa dikatakan sebuah sub program yang

tersimpan di database. Stored procedure dapat melakukan :

a. Menerima parameter sebagai input dan mengembalikan nilai-nilai dalam bentuk parameter

output kepada yang memanggilnya

b. Mengandung perintah-perintah program yang melakukkan operasi didalam database,

termasuk memanggil procedure lainnya.

c. Mengmbalikan suatu nilai status pada pemanggilnya untuk mengidikasikan berhasil atau

gagalnya procedur.

Sama seperti view dapat membuat, mengubah SQL Query dan menghapus stored

procedure yang telah kita buat :

a. Membuat Stored Procedure

Sintaks membuat stored procedure :

CREATE PROC nama_stored_procedure (@parameter TYPEDATA)

AS

BEGIN

{SQLQuery}

END

Contoh sintaks pembuatan stored procedure :

CREATE PROC SP_anggota (@ID_anggota VARCHAR(4))

AS

BEGIN

SELECT * FROM tb_anggota WHERE ID_anggota = @ID_anggota

END

[email protected]

Page 27: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

26

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

b. Mengubah Stored Procedure

Sintaks mengubah stored procedure :

ALTER PROC nama_stored_procedure (@parameter TYPEDATA)

AS

BEGIN

{SQLQuery}

END

Contoh sintaks mengubah stored procedure :

ALTER PROC SP_anggota (@Nama VARCHAR(20))

AS

BEGIN

SELECT * FROM tb_anggota WHERE Nama = @Nama

END

c. Menghapus Stored Procedure

Sintaks menghapus stored procedure :

DROP PROCEDURE nama_stored_procedure

Contoh sintaks menghapus stored procedure :

DROP PROCEDURE SP_anggota

[email protected]

Page 28: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

27

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

4.3 STORED FUNCTION

Fungsi hampir sama dengan stored procedure. Function mempunyai sejumlah paramter

input dan hanya mengembalikan satu output, standar perintah yang digunakan menggunakan

perintah standar SQL . Dalam bahasan ini dapat di implementasikan pada proses mncari jumlah

buku berdasarkan tahun terbit .

a. Membuat Stored Function

Sintaks membuat stored function :

CREATE FUNCTION nama_stored_function (@parameter TYPEDATA)

AS

BEGIN

{SQLQuery}

END

Contoh sintaks pembuatan stored function :

CREATE FUNCTION hit_buku( @tahun int ) RETURNS VARCHAR AS BEGIN DECLARE @tpl VARCHAR(50);

SELECT @tpl = COUNT(*) FROM TB_BUKU AS Jumlah_Buku WHERE tahun = @tahun

RETURN @tpl END

[email protected]

Page 29: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

28

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

BAB V

BACKUP DAN RESTORE

5.1 BAKUP DATABASE

Untuk menghindari kehilangan data – data yang sudah dimasukkan , sebaiknya dalakukan

procedure backup data secara berkala. Penggunaan Enterprise Manager akan memudahkan proses

tersebut..

Sintaks membuat Backup :

BACKUP DATABASE db_perpus TO DISK = 'E:\db_perpus.bak' WITH NOFORMAT, NOINIT, NAME = N'db_perpus-full database backup' SKIP, NOREWIND, NOUNLOAD, STATS = 10

[email protected]

[email protected]

Page 30: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

29

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

5.2 RESTORE DATABASE

Setelah database di backup secara berkala , maka database yag telah di backup dapat di

gunakan kembali atau masukkan kedalam Enterprise Manager kembali .

Sintaks membuat Restore :

RESTORE DATABASE db_perpustakan FROM DISK = 'E:\db_perpus.bak' WITH FILE = 1, NOUNLOAD, STATS = 10

[email protected]

[email protected]

Page 31: MODUL DATABASE 2017informatika.itn.ac.id/wp-content/uploads/2017/09/MODUL... · 2017-09-28 · Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi

30

[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017

[email protected]