Modul Praktikum Basisdata Mysql
Modul Praktikum Basisdata Mysql
BASIS DATA
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PGRI RONGGOLAWE
TUBAN
2013
Selamat mengerjakan…
1
MEMBANGUN DATABASE PADA
MYSQL
Tujuan :
1 Praktikan mampu untuk membuat database pada DBMS Mysql.
2 Praktikan mampu untuk mengatur keamanan database-nya.
Tugas Pendahuluan:
1. Jelaskan dengan singkat mengenai sistem database !
2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang
disebutkan di modul !
3. Apa perbedaan antara GRANT dan REVOKE ?
4. Jelaskan yang dimaksud dengan :
a. PRIVILEGE
b. OLTP dan OLAP
c. Constraint
Landasan Teori :
1. Definisi database & Database Management System (DBMS)
Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata
yang berhubungan dan mempunyai arti tertentu.
Database managemen system adalah sebuah program komputer yang
memungkinkan pengguna untuk membuat dan memelihara database sehingga
2. Mengenal MySQL
MySQL adalah Sebuah program database server yang mampu menerima dan
mengirimkan datanya sangat cepat, multi user serta menggunakan peintah
dasar SQL ( Structured Query Language ). MySQL merupakan dua bentuk
lisensi, yaitu FreeSoftware dan Shareware. MySQL yang biasa kita gunakan
adalah MySQL FreeSoftware yang berada dibawah Lisensi GNU/GPL (
General Public License ). MySQL merupakan sebuah database server yang
free, artinya kita bebas menggunakan database ini untuk keperluan pribadi
atau usaha tanpa harus membeli atau membayar lisensinya. MySQL pertama
kali dirintis oleh seorang programmer database bernama Michael Widenius
.Selain database server, MySQl juga merupakan program yang dapat
mengakses suatu database MySQL yang berposisi sebagai Server, yang berarti
program kita berposisi sebagai Client. Jadi MySQL adalah sebuah database
yang dapat digunakan sebagai Client mupun server.
3. Kelebihan MySQL
Database MySQL memiliki beberapa kelebihan dibanding database lain,
diantaranya :
a. MySQL merupakan Database Management System ( DBMS)
b. MySQL sebagai Relation Database Management System (RDBMS) atau
disebut dengan database Relational
4. Pembuatan Database
Dalam pembuatan database pada mysql yang akan dipraktekkan dalam
praktikum ini adalah metode pembuatan database dengan perintah console
(Query).
6. Percobaan
Pembuatan User dan Database baru di Mysql
Pastikan Mysql pada Xampp Control panel dalam keadaan running.
Sintaks :
cd : c\xampp\xampp\mysql\bin\
Contoh dalam CMD :
7. PERCOBAAN PRAKTIKUM
Membangun database mysql menggunakan command prompt
Percobaan 1 : Membuat user baru pada mysql
dalam membuat sebuah user baru pada mysql dengan command
prompt, diperlukan syntax sebagai berikut :
2
TABEL
Tujuan :
1. Praktikan memahami struktur pembuatan tabel.
2. Praktikan mampu membuat tabel.
3. Praktikan dapat memasukkan data ke dalam tabel.
Tugas Pendahuluan:
1. Jelaskan dengan singkat mengenai table, field dan record !
2. Sebut dan jelaskan dengan singkat tentang jenis integritas data !
3. Jelaskan apa yang dimaksud dengan primary key dan foreign key. Jelaskan
hubungan keduanya.
4. Apa persamaan antara Primary Key dan keyword UNIQUE ?
Landasan Teori :
1. Data Definition Language (DDL)
Tabel dalam database adalah komponen utama yang membentuk database
itu sendiri.Baris(row) dan kolom (column) mengindikasikan data (record).Cara
untuk mengatur dan memanipulasi data pada database dilakukan dengan
bantuan instruksi SQL seperti SELECT, INSERT, UPDATE, DELETE.
Instruksi untuk membuat, mengubah, dan menghapus table dilakukan
Pada contoh dibawah ini adalah sebuah table Mahasiswa UNIROW tuban
dengan bentuk sebagai berikut :
Tabel : Mahasiswa
Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu.
Himpunan yang berupa nilai kolom yang valid atau dapat diterima
(acceptable) disebut sebagai DOMAIN.
Keterangan :
Signed dan Unsigned adalah atribut untuk tipe data numerik
- Signed : data yang disimpan dalam suatu kolom dapat berupa data
negatif dan positif.
- Unsigned : digunakan agar data yang dimasukkan bukan data negatif
(>=0). Tipe data float tidak dapat dinyatakan dengan unsigned.
4. Membuat Tabel
CREATE TABLE nama_tabel(nama_filed1 tipedata batasan,
nama_filed2 tipedata
batasan,……..)
7. Menghapus Tabel
DROP TABLE Nama_tabel;
8. PRIMARY KEY
Primary Key disebut sebagai constraint untuk menjaga integritas data, yaitu
sebuah primary key tidak boleh mempunyai duplikat dan otomatis tidak
boleh kosong. Secara umum syntax untuk membuat sebuah primary key
adalah:Atau jika primary key terdiri atas banyak kolom (multiple column),
maka constraintdapat dibuat sebagai berikut:
9. NOT NULL
Jika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL
harus diberikan.
CREATE TABLE NamaTabel(NamaField1 TipeData1, NamaField2
TipeData2, NamaField3 TipeData3, NamaField4 TipeData4,
NamaField5
TipeData5, NamaField6 TipeData6, NamaField7 TipeData7,
CONSTRAINT
pk_NamaTabel PRIMARY KEY (NamaField3, NamaField2,
NamaField7) )
Tabel Mahasiswa
NPM Nama JK Alamat Kota Propinsi Telpon
02113216 Bambang L kebonsari tuban Jatim 03563221222
Tabel Mata_kuliah
Tabel ambil_kuliah
Kode_mata_kuliah NPM Nilai_Uts Nilai_Uas Grade
TPL144 14120406003 3 90 A
Pada sekenario di atas, record (TPL144) pada tabel ambil_kuliah tidak dapat
dihapus karena referensi dari TPL144 (filed kode_mata_kuliah ditabel
mata_kuliah), 14120406003( field nrp di tabelmahasiswa) masih ada.
Foreign key harus menunjuk ke primary key atau unique pada tabel lain.
Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat
dipersingkat menjadi :
Perhatikan:
- Npm merupakan primary key
- Nama, Alamat tidak boleh kosong
- Jk mempunyai nilai ‘L’ atau ‘P’
Perhatikan:
- Kode_mata_kuliah merupakan primary key
- Nama_kuliah dan Sks tidak boleh kosong
Perhatikan:
- Kode_mata_kuliah merupakan Foreign key yang mengacu pada
tabel Mata_Kuliah_XXX (field kode_ mata_kuliah).
- Npm merupakan Foreign key yang mengacu pada tabel
Mahasiswa_XXX (field Npm).
- Nilai_Uts, Nilai_Uas tidak boleh melebihi 100
Tabel Anggota
Nama Field Type Panjang Aturan
No_Anggota Char 8 Not Null, Primary Key
Nama Varchar 20 Not Null
Alamat Varchar 30 Can Be Null
Telepon Varchar 15 Can Be Null
Tabel Buku
Nama Field Type Panjang Aturan
No_Buku Char 8 Not Null, Primary Key
Judul Varchar 20 Not Null
Pengarang Varchar 30 Can Be Null
Penerbit Varchar 20 Can Be Null
Pinjam Buku
Nama Field Type Panjang Aturan
No_Anggota Char 8 Not Null, foreign Key
No_Buku Char 8 Not Null, foreign Key
Tanggal pinjam Date 15 Not Null
Tanggal kembali Date 15 Not Null
Percobaan 9 :Isi data pada tabel anggota, tabel buku dan tabel pinjam buku
minimal 3 data. Syarat : 2 data harus tinggal di kota yang sama
Percobaan10 : Tampilkan semua data dari tabel anggota dan tabel buku.
Percobaan11 :Tampilkan data anggota yang beralamat di salah satu kota.
Percobaan12 :Tampilkan data anggota yang beralamat di dua kota (Misal : Tuban
dan Kudus).
3
MEMANIPULASI DATA
Tujuan :
Praktikan dapat memahami dan mengisi tabel dalam database
Praktikan dapat memahami dan memanipulasi data dalam database
Tugas Pendahuluan :
1. Sebutkan dan Jelaskan perintah yang termasuk dalam DML?
2. Bagaimana urutan penggunaan Select dengan banyak parameter yang
digunakan?
3. Apa perbedaan penggunaan Select dengan Distinct dan tanpa Distinct?
Landasan Teori
1. DML (Data Manipulation Language)
DML adalah bahasa yang memungkinkan pengguna mengakses atau
memanipulasi data seperti yang diatur oleh model data.
Manipulasi data adalah :
o Pengambilan informasi yang disimpan dalam basisdata
o Penempatan informasi baru dalam basisdata
o Penghapusan informasi dari basisdata
Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi
dengan Null dan kolom yang tidak disebutkan dalam Insert haruslah yang
tidak Not Null.
b. Pernyataan UPDATE
Pernyataan UPDATE digunakan untuk modifikasi data dalam tabel.
Sintaks :
UPDATE nama_tabel
SET nama_ko lo m = nilai_baru
WHERE nama_kolo m = nilai
Contoh:
Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah
1412011001, anda bisa memberikan pernyataan seperti berikut :
d. Pernyataan SELECT
Secara u mu m perintah SELECT hanya difungsikan untuk menampilkan
data yang ada di dalam suatu tabel. Tetapi dalam pengembangannya,
perintah ini akan menjadi sebuah perintah yang sangat penting dan
berpengaruh hingga saat pemrograman di stored procedures dan
triggers. Sementara ini dalam basis data 1 yang kita bahas hanya
pernyataan SELECT yang digunakan untuk memilih data dari tabel, yang
mana hasilnya disimpan dalam tabel hasil yang disebut Result Set.
Sintaks :
SELECT nama_ko lo m
FROM nama_tabel
Contoh :
Distinct
Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT
DISTINCT.
Sintaks :
SELECT DISTINCT nama_ kolom FROM nama_tabel
Contoh :
Klausa WHER E
Klausa WHERE d igunakan untuk menentukan kriteria seleksi.Untuk
memilih data suatu tabel dengan kriteria tertentu, klausa WHERE
dapat ditambahkan pada pernyataan SELECT.
Sintaks :
SELECT nama_ko lo m
FROM nama_tabel
WHERE kolom operator nilai
Perlu d iperhatikan bahwa kita menggunakan tanda petik tunggal (' ')
pada contoh diatas.SQL menggunakan tanda petik tunggal pada nilai
teks, sedangkan nilai numerik tidak diberi tanda petik.
Kondisi LIKE
Kondisi LIKE digunakan untuk menentukan pencarian berdasarkan
pola tertentu pada suatu kolom.
Sintaks :
SELECT nama_kolom FROM nama_tabel
WHERE nama_kolom LIKE pola
3. PERCOBAAN PRAKTIKUM
Buatlah tabel sebagai berikut
Tabel Departemen_xxx
---------------------------------
nomor int primary key not null
nama varchar 30
jmlPegawai int
------------------------------------
Tabel Pegawai_xxx
------------------------------------
NIP int Pimary key not null
NmDepan varchar 25
NmBlk Varchar 25
JnsKel Char 2
Alamat Varchar 40
Gaji int
Nomor int foreign key (tabel departemen pada kolom nomor)
4
FUNGSI DALAM SQL
Tujuan :
1. Praktikan dapat memahami dan memanipulasi data dalam database dengan
lebih luas lagi.
2. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL
Tugas Pendahuluan
1. Apa yang dimaksud dengan subquery ?
2. Kapan alias digunakan ?
3. Kenapa data yang akan diisikan pada foreign key field harus ada terlebih
dahulu pada primary key field yang diacu?
Landasan Teori
1. ALIAS
Jika kita ingin membuat nama alias untuk kolom NamaDepan menjadi ND
dan Nama Belakang menjadi NB, gunakan pernyataan SQL berikut :
SELECT NamaDepan AS ND, NamaBelakang AS NB FROM
Mahasiswa;
Maka tabel yang dihasilkan dari perintah SQL diatas adalah semua field dari
tabel Mahasiswa dan tabel Jurusan akan ditampilkan, yaitu NRP,
NamaDepan, NamaBelakang, Tempat Lahir, Tanggal Lahir, Alamat,
Mahasiswa.KodeJurusan, Jurusan.KodeJurusan, dan NamaJurusan.
3. Klausa Order By
Klausa ORDER BY digunakan untuk mengurutkan data. Jika kita ingin
menampilkan nama mahasiswa berdasarkan urutan abjad, pernyataan SQL-
nya adalah:
Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita dan
nama kota Yogyakarta adalah:
SELECT * FROM Mahasiswa WHERE NamaDepan = 'Ita' AND Kota =
'Yogyakarta' ;
Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita atau
kota Yogyakarta adalah :
SELECT * FROM Mahasiswa WHERE NamaDepan = 'Ita' OR Kota =
'Yogyakarta';
Jika kita ingin menampilkan nama mahasiswa yang lahir di satu kota,
gunakan pernyataan berikut :
SELECT Tempat_ Lahir, COUNT (Tempat_ Lahir) as Jumlah
FROM Mahasiswa GROUP BY Tempat_Lahir;
b. HAVING
Klausa HAVING disediakan untuk mendukung klausa GROUP
BY.Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelo
mpok yang memenuhi kondisi HAVING saja yang akan dihasilkan.
Sintaks :
a. COUNT
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom
pada tabel. Pernyataan SQL untuk menghitung jumlah baris kolom
NamaDepan pada tabel Mahasiswa adalah:
b. SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom
pada tabel. Pernyataan SQL untuk menghitung jumlah nilai kolom SKS
pada tabel Matakuliah :
SELECT SUM (SKS) AS TotalSKS FROM Matakuliah;
c. AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu
kolom pada tabel.Contoh : perintah untuk menghitung rata-rata dari
kolom SKSpada tabel Matakuliah :
SELECT AVG(SKS) AS RataSKS FROM Matakuliah;
d. MIN
Perintah yang digunakan untuk menamp ilkan nilai terkecil dari suatu
kolom pada tabel.Contoh : perintah untuk menampilkan nilai terkecil
dari kolo m SKS pada tabel Matakuliah :
SELECT MIN(SKS) AS JumlahMinimum FROM Matakuliah;
7. Operator IN
Operator IN b isa digunakan jika kita mengetahui nilai pasti yang akan diambil
untuk setidaknya satu kolom.
Sintaks :
SELECT nama_kolom FROM nama_tabel WHERE nama_kolom IN (nilai1, nilai2,
...;
Operator BETWEEN … AND diperlaku kan secara berbeda pada DBMS berbeda. Pada
satu DBMS, data Mahasiswa yang dimunculkan adalah yang berada diantara
Adi dan Ita, tetapi Adi dan Ita tidak dimunculkan. Pada DBMS lain,
Mahasiswa yang dimunculkan termasuk Adi dan Ita. Kemud ian, pada DBM S
9. PERCOBAAN PRAKTIKUM
Percobaan 1 : Pada Tabel Pegawai di pertemuan 3 tambahkan data
sebanyak 5 baris
NIP NmDepan NmBlk JnsKel Alamat Gaji Nomor
1412070111 Saipul Huda L Surabaya 3.000.000 10101
1412070112 Ratna Sutejo p Tuban 3.500.000 10102
1412070102 Kartika Sari P Lamongan 2.500.000 10103
1412070012 Surya Saputra L Tuban 3.500.000 10101
1412070013 Abdi Negoro L Mojokerto 2.000.000 10103
5
EVALUASI PRAKTIKUM 1
Tujuan :
1. Praktikan lebih memahami dan mengimplementasikan tentang ERD
2. Praktikan lebih memahami dan mengimplementasikan tentang DDL dan DML
Tugas Pendahuluan :
1. Buat ERD database (Gunakan Power Desainer)
a. NPM genap : database perpustakaan
b. NPM ganjil : database rumah_makan
Tugas Praktikum :
1. Desain tabel minimal 5 tabel, yang sesuai dengan tugas pendahuluan di atas
2. Gunakan perintah SQL untuk membuat tabel, isi tabel masing-masing 10 data
3. Buat perintah DDL dan DML dari tabel di atas yang terdiri dari insert, update,
delete tambah baris, tambah kolom.
4. Lakukan pengurutan data menggunakan orderby, gunakan juga fungsi
agregasi AVG, MIN, MAX, SUM COUNT pada beberapa tabel
6
JOIN
Tujuan :
Praktikan dapat memahami dan memanipulasi data dalam database dengan
lebih luas lagi.
Tugas Pendahuluan:
1. Apa yang anda ketahui tentang
- JOIN
- UNION
- INTERSECT
- EXCEPT, dan operator comparison ANY dan A LL
Landasan Teori
Misalnya kita memilih data dari dua tabel (tabel Mahasiswa dan Jurusan)
dengan mengacu pada kedua tabel sebagai berikut :
Kita pun bisa menggunakan kata kunci JOIN untuk memilih data. Ada tiga
macam kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN.
a. INNER JOIN
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi
data sesuai dengan syarat di belakang on (tidak boleh null), dengan kata
lain semua data dari tabel kiri mendapat pasangan data dari tabel sebelah
kanan. Sintaks untuk INNER JOIN :
SELECT field1, field2, FROM tabel1 INNER JOIN tabel2
ON tabel1.kunci_utama = tabel2.kunci_asing
b. LEFT JOIN
Left join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan.
Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap
akan ditampilkan dengan pasangannya berupa nilai NULL.
Sintaks untuk LEFT JOIN :
SELECT field1, field2,
FROM tabel1 LEFT JOIN tabel2
ON tabel1.kunci_utama = tabel2.kunci_asing
c. RIGHT JOIN
Right join digunakan untuk menampilkan semua data dari tabel sebelah
kanan perintah right join beserta pasangannya dari tabel sebelah kiri.
Meskipun terdapat data dari sebelah kanan tidak memiliki pasangan,
tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
Sintaks untuk RIGHT JOIN :
SELECT field1, field2,
Misalkan, kita ingin menampilkan semua nama dari tabel Mahasiswa dan
Jurusan yang diambil, jika ada. Kita dapat menggunakan pernyataan
berikut :
SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan
FROM MAHASISWA RIGHT JOIN JURUSAN
ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan
Pernyataan 1
UNION
Pernyataan 2
b. UNION ALL
Perintah UNION ALL sama dengan perintah UNION, kecuali bahwa
UNION ALL memilih semua nilai.
Sintaks :
Jika hanya ingin menyalin beberapa field, kita dapat melaku kannya dengan
menuliskan field-field setelah pernyataan SELECT.
Jika subqueryS menghasilkan G1, G2, ..., Gn , maka kondisi di atas identik
dengan:
(gaji> G1) OR (gaji > G2) OR ... OR (gaji > Gn)
b. Operator ALL
Operator ALL digunakan untuk melaku kan perbandingan dengan
subquery. Kondisi dengan ALL menghasilkan n ilai TRUE (benar) jika
subquery tidak menghasilkan apapun atau jika perbandingan
menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.
Misalkan perintah untuk menampilkan data SKS yang jumlahnya paling
tinggi:
SELECT * FROM Matakuliah
WHERE SKS >= ALL (SELECT SKS FROM Matakuliah)
b. INTERSECT
INTERSECT merupakan operator yang digunakan untuk memperoleh data
dari dua buah query dimana data yang ditampilkan adalah yang
memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan
tipe kolom dari masing-masing tabel yang akan ditampilkan datanya
harus sama.
Syntax :
6. PERCOBAAN PRAKTIKUM :
Isikan data berikut pada tabel mahasiswa_XXX yang telah anda buat pada
praktikum modul 2
Isikan data berikut pada tabel mata_kuliah_XXX yang telah anda buat pada
praktikum modul 2
Isikan data berikut pada tabel ambil_kuliah_XXX yang telah anda buat pada
praktikum modul 2
Percobaan 1 : Tampilkan npm, nama dari data mahasiswa kodemata kuliah, nilai
UTS ,nilai UAS dari tabel ambil kuliah berdasarkan NPM.
7
ERD
Tujuan :
1. Prakt ikan dapat memahami dan membuat ER-Diagram.
Tugas Pendahuluan :
1. Tentukan Database serta field-fieldnya yang ingin anda buat!
2. Buatlah ER d iagramnyadengan pemodelan El-Masri!
3. Apakah yang dimaksud dengan normalisasi? Jelaskan !
Landasan Teori
Apa yang dimaksud dengan model data?
Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model
relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan
basis
data pada peringkat logika.
• Model ERD atau Conceptual Data Model (CDM) : model yang dibuat
berdasarkan anggapan bahwa dunia nyata terdiri dari ko leksi obyek-
Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikan
setelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidak
dimungkinkan ada jika relasi yang men jadi prasyaratnya tidak terealisasi.
Contoh:
Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu
set
ER-Diagram in i harus dihindari?
• Total constraint adalah constraint yang mana data dalam entitas yang
memiliki constraint tersebut terhubung secara penuh ke dalam entitas
dari relasinya.
• Constraint partial adalah constraint yang mana data dalam entitas yang
memiliki constraint tersebut terhubung ke dalam entitas dari relasinya.
Relasi satu :
Relasi dua :
Relasi tiga
Relasi empat:
Relasi lima
Relasi tujuh
• 1NF : tahap normalisasi dasar, yang mana masih belu m sampai pada
tingkat efekt ifitas maksimal, masih banyak kemungkinan terjadinya
redundancy data atau duplikasi data.
• BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telah
mencapai maksimal, kemungkinan terjad inya redundancy data dan
duplikasi data lebih kecil daripada 1NF.
8
ALJABAR RELASIONAL DAN
NORMALISASI DATA
Tujuan :
2. Praktikan mamppu membangun desain logika basis data relasional untuk
menghasilkan struktur tabel yang normal.
Tugas Pendahuluan :
1. Apakah yang anda ketahui tentang aljabar Relasional
2. Mengapa suatu tabel perlu dinormalisasikan?
3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
Apa yang disebut dengan bentuk normal?
4. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat
dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik.
Landasan Teori
1. Normalisasi
Normalisasi merupakan suatu Teknik/Cara yang digunakan untuk
menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam
kasus BCNF) dan ketergantungan secara fungsional. Pertama diusulkan oleh
E.F Codd (1972).
Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat
redudan yaitu nama_mhs, maka tabel nilai ini dianggap melanggar 2NF.
Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut
baru(nama_mhs) akan menyebabkan adanya ketergantungan fungsional
yang baruyaitu nim_nama_mhs. Karena atribut nama_mhs ini hanya
memilikiketergantungan parsial pada primary key secara utuh (hanya
tergantung padanim, padahal nim hanya bagian dari primary key).Bentuk
normal kedua inidianggap belum memadai karena meninjau sifat
ketergantungan atributterhadap primary key saja.
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak
tabeltersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal
Form / 3NF).
Operasi Project
Operasi Project digunakan untuk menampilkan nama-namaatribut yang
diinginkan tampil.Operasi project disimbolkandengan symbol phi (π).
πnama,alamat(karyawan)
Union
Disimbolkan dengan tanda “U “. Operasi union dalamaljabar relasional
sama halnya dengan operasi union padaaritmatika. Dengan operasi
union informasi yang diinginkandapat diperoleh.
πjumlah(pesan) U πjumlah(stok)
Set difference
Disimbolkan dengan tanda “-“.Operasi ini untukmenemukan tuple-tuple
yang berada pada satu relasi tetapitidak berada pada relasi yang lainnya.
πid_karyawan (karyawan) – πid_karyawan(transaksi)
Cartesian product
Operasi Cartesian-product disimbolkan dengan “x”.Dengan operasi ini
dapat dihasilkan informasi yangmerupakan kombinasi dari dua relasi.
σalamat=”Surabaya”(pelanggan x pesan)
Percobaan 1 :Dari tabel di atas, buatlah bentuk normalisasi 1, II, dan III
Percobaan 2 :Tentukan tipe data dan constrainnya
Percobaan 3 :Tentukan tabel master dan transksi
Percobaan 4 :Buat perintah aljabar relasional pada masing-masing tabel
Percobaan 5 :Desain CDM dan PDm menggunakan software rational rose
9
VIEW 1
Tujuan :
3. Praktikan mampu membuat View untuk menampilkan data dari satu atau
beberapa table dengan membungkus suatu query SELECT yang ko mpleks
menjadi lebih sederhana.
Tugas Pendahuluan
1. Apa yang anda ketahui tentang view?
2. Sebutkan batasan manipulasi melalui view !
3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!
Landasan Teori
1. View
a. View dari satu tabel
Sebuah VIEW adalah tabel yang dibangun dari satu atau beberapa
tabel yang sudah ada. Secara fisik VIEW tidak membuat penyimpanan
data seperti tabel, melainkan hanya menyimpan referansi/pointer ke
record pada tabel-tabel yang berkaitan. VIEW disebut juga sebagai
Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel:
CREATE VIEW v1 AS
SELECT npm, Nama FROM mahasiswa_XXX
SELECT * FROM v1
CREATE VIEW v4 AS
SELECT A.npm, M.nama
FROM asisten_XXX A,mahasiswa_XXX M
WHERE A.npm=M.npm
2. PERCOBAAN PRAKTIKUM :
Import data/ tabel yang sudah anda buat pada pertemuan-pertemuan
sebelumnya.
10
VIEW 2
Tujuan :
1. Praktikan mampu membuat View untuk menampilkan data dari satu atau
beberapa table dengan membungkus suatu query SELECT yang ko mpleks
menjadi lebih sederhana.
Tugas Pendahuluan
1. Apa saja keuntungan dan kerugian menggunakan view ?
2. Mengapa View lebih optimal pemakaiannya dibanding perintah select, jelaskan
?
3. Mengapa view bisa dijadikan sebagai kode rahasia untuk menampilkan suatu
tabel, jelaskan
I. Teori
1.1 Vie w
View dalam sql juga merupakan suatu table yang diturunkan dari table
yang lain. Tab le ini b ias berupa table dasar dari yang didefinisikan
sebelumnya.suatu view yang tidak perlu dalam bentuk fisiknya, bias berupa table
bayangan (virtual table), sehingga table dasar yang mempunyai tupel-tupel pada
dasarnya tersimpan dalam database. Pembatasan ini memungkinkan untuk
mengupdate operasi yang bias digunakan dalam view, tetapi tidak membatasi
dalam view queri.
b. Mengubah View
Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan
syntax alter pada tabel.
Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada
akhir instruksi harus ditambahkan “WITH CHECK OPTION”
Contoh :
3. PERCOBAAN PRAKTIKUM
Percobaan 1 : Buat tabel Golongan, jabatan dan pegawai dengan data sebagai
berikut :
1. Golongan :
2. Jabatan :
3. Pegawai :
11
TRANSACT SQL
Tujuan :
Praktikan mampu untuk mengerti dan memahami Transact-SQL
Tugas Pendahuluan :
1. Apa yang dimaksud dengan T-SQL ?
2. Bagaimana kerangka dari T-SQL ?
3. Struktur kontrol apa saja yang dapat digunakan dalam T-SQL ?
4. Bagaimana menjalankan T-SQL ?
Landasan Teori :
1. Transact-SQL
TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari
SQL.Seperti diketahuiSQL adalah bahasa non procedural, artinya alur
program tidak seperti bahasa pemrogramanbisa, melainkan melalui
“request” dan “response”.Melalui perintah SQL seseorang melakukan query
atau transaksi, yang kemudian akanmenerima jawaban dari Database Server
berupa hasil atau ResultSet. Query dan transaksidilakukan di bagian Client,
sedangkan pemrosesan dilakukan pada Server.Transact-SQL
mengembangkan kemampuan SQL, sehingga Transact-SQL dapat melengkapi
SQLdengan instruksi logic (procedural logic), yaitu program aplikasi. Hasil
proses SQL-Server(ResultSet) dapat diolah lebih lanjut dengan menggunakan
logic pemrograman proceduralseperti Fungsi, Procedure, Loop, Case, If Then
Else, dan lainnya.
2. Kerangka Transact-SQL
DECLARE
/* deklarasi variable */
@v1 int,
@nama varchar(30)
Hasil: Bambang
PRINT adalah fungsi yang menampilkan teks dan variable pada console
(layar).
Contoh:
PRINT “Nama yang ditemukan adalah :”
PRINT @nama
PRINT “Nama yang ditemukan adalah :”+@nama
Hasil:
Berat anda adalah
100
CLARK KENT
SUPERMAN
APRIL 4 2008 10:18AM
APRIL 4 2008 10:18AM
4. Variable Global
Variable global adalan variable yang disiapkan oleh SQL-Server untuk
memberikan informasikepada Client. Variable global bersifat read-only.
Nama variable global diawali dengan @@.
@@error :adalah bilangan bulat yang menyatakan nomor error. Jika
variable tersebuttidak sama dengan 0, maka system memberikan
indikasi bahwa terjadierror dan identitas error dinyatakan dalam
angka.
@@cursor_rows :adalah nilai balik dari cursor yang terakhir kali diolah.
@@fetch_status :adalah nilai balik dari “fetch” pada cursor. Nilai 0 adalah
OK.
@@identity :memberikan nilai otomatis setiap kali INSERT dilakukan. Nilai
ini adalahidentitas dari record tersebut.
@@nestlevel :adalah nesting level dari stored procedures atau triggers
@@rowcount :memberikan nilai balik berupa jumlah baris (rows) yang
terpengaruh olehinstruksi terakhir. Setelah instruksi IF atau
WHILE, maka @@rowcountdihapus menjadi 0.
@@spid :adalah Server Process Id
5. IF
IF digunakan dalam mengendalikan alur program berdasarkan kondisi.
IF kondisi
Instruksi
IF kondisi
Instruksi1
ELSE
Instruksi2
IF kondisi
BEGIN
Instruksi1
Instruksi2
……
END
Contoh:
Bila diaplikasikan pada tabel pegawai_XXX, maka nilai honor dapat diambil
dari kolom gaji:
DECLARE @gaji int,
@rata_rata int,
@pegawai char(8)
SELECT @pegawai='03010006'
SELECT @gaji=gajiFROM pegawai_xxx WHERE nid=@pegawai
SELECT @rata_rata=200000
IF @honor > @rata_rata
PRINT ('Honor diatas rata-rata')
ELSE
PRINT ('Honor dibawah rata-rata')
penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih
darisatu instruksi.
6. WHILE
WHILE digunakan dalam mengeksekusi satu blok program berulang-ulang
sampai kondisi pada WHILE menjadi false.
WHILE kondisi
BEGIN
…
…
END
Contoh
DECLARE @i int
SELECT @i=5
WHILE @i > 0
BEGIN
PRINT ' i = ' + str( @i)
SELECT @i = @i - 1
END
Hasil:
i=5
i=4
WHILE kondisi1
BEGIN
…
…
IF kondisi2
CONTINUE
…
END
WHILE kondisi1
BEGIN
…
…
IF kondisi2
BREAK
…
…
END
8. RETURN
RETURN akan menghentikan program dari eksekusi. RETURN dapat
digunakan dalam
memproses error.
IF @@error <> 0
BEGIN
PRINT “Error…”
RETURN
END
9. CASE
CASE menyederhanakan IF yang berlapis dengan tujuan agar program dapat
dimengerti/dibacalebih mudah.
IF kondisi1
instruksi1
ELSE IF kondisi2
instruksi2
ELSE IF kondisi3
instruksi3
ELSE
instruksi4
Contoh:
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t='B'
SELECT @hasil=
CASE
WHEN @t='A' THEN
'Karakter A'
WHEN @t='B' THEN
'Karakter B'
ELSE
'Tidak diketahui'
END
PRINT 'Hasil adalah '+@hasil
Hasil: Hasil adalah : Karakter B
Perhatikan bahwa CASE diatas digunakan untuk mengambil nilai variable:
SELECT @hasil=CASE
Berikut adalah variasi dari CASE:
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t='X'
SELECT @hasil=
CASE @t
WHEN 'A' THEN
'Karakter A'
WHEN 'B' THEN
'Karakter B'
ELSE
'Tidak diketahui'
END
PRINT 'Hasil adalah '+@hasil
Percobaan 2 :
Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung
dari tabel Pegawai_xxx.Buat keterangan bahwasannya pegawai
tersebut memiliki gaji diatas rata-rata atau dibawah rata-rata.
12
EVALUASI PRAKTIKUM II
Tujuan :
Praktikan dapat mengimplementasikan semua modul praktikum ini pada
aplikasi
** SELAMAT MENGERJAKAN **