Anda di halaman 1dari 16

MODUL REFERENSI

SISTEM BASIS DATA


BAB 1

SQL

DEPARTEMEN TEKNIK INFORMATIKA


UNIVERSITAS NASIONAL
KATA PENGANTAR

       Banyak di kalangan mahasiswa tentunya tidak menyadari, betapa pentingnya mengasah kembali 
matakuliah yang berhubungan dengan software development yaitu 'basis data' . Seringkali mahasiswa 
mengejar skil bahasa pemrograman tanpa mengasah kembali kemampuan memanajemen data. Ini 
kemampuan dasar yang mesti dibekali. Dengan begitu kita dapat membangun aplikasi yang tentunya 
menggunakan basis data. Apapun bahasa pemrogramannya,  databasenya SQL.

Penyusun 

Slamet Nurhadi
Informasi:
Sistem Operasi : Linux Ubuntu 10.10
Database : MySql Server 5.1

Cara menginstall : $ sudo apt­get install mysql­server

Masuk ke dalam server: $ mysql ­u root ­p 
masukan password jika anda menggunakannya.
Jenis SQL:
1.Interactive => langsung dapat dioperasikan
2.Embedded => disisipkan ke dalam bahasa pemrograman

Pengelompokan statement SQL

1.(DDL) Data definition Language
DATABASE
TABLE
CREATE   DROP
INDEX
VIEW

ALTER TABLE

2.(DML) Data Manipulation Language
INSERT, SELECT, UPDATE, DELETE

3.Data Aceess
GRANT, REVOKE

4.Data Integrity
RECOVER TABLE

5.Auxiliary
UNLOAD, LOAD,  RENAME COLUMN
MEMBUAT DATABASE

Sintaks : CREATE DATABASE nama_database;

contoh : CREATE DATABASE DatabasePertamaku;

MENGHAPUS DATABASE

Sintaks : DROP DATABASE nama_database;

contoh : DROP DATABASE DatabasePertamaku;

MELIHAT DATABASE
sintaks: show databases;
MEMBUAT TABLE

Sintaks : CREATE TABLE NamaTabel


(NamaKolom1 TipeDataKolom1, NamaKolom2 TipeDataKolom2);

contoh : CREATE TABLE Teman


(nama char(10), alamat varchar(50), email char(20));

MELIHAT TABLE

sintaks: show tables;


MENGHAPUS TABEL

sintaks: DROP TABLE NamaTabel;

Contoh: DROP TABLE Teman;

DESAIN DATABASE

Database Keanggotaan club Film yang berisi keanggotaan yang lengkap, Mungkin anda tahu
bagaimana aktifitas Keanggotaan club seperti Meeting dan Attend. Dan membagi 2 bagian (pemisahan
tabel) menjadi seperti ini, informasi keanggotaan berisi sebagai berikut:

Nama Lengkap
Tanggal Lahir
Alamat
Email
Tanggal Bergabung

dan, daftar aktifitas pertemuan, lokasi dan siapa yang menghadiri. Berisi informasi sebagai berikut:

Tanggal Pertemuan
Lokasi
Member ini hadir?

Jika anda hanya membuat digabungkan tabel yang ada, maka akan terlihat seperti ini

Nama Lengkap
Tanggal Lahir
Alamat
Email
Tanggal Bergabung
Tanggal Pertemuan
Lokasi
Member ini hadir?
Jika Informasi diatas dijadikan kolom pada tabel maka akan menjadi seperti ini

Nama Tgl.Lahir Alamat Email Tgl. Tgl. Lokasi Member


Bergabung Petemuan hadir?
Adi 10/02/90 jl.Manggi adi@mail 01/01/11 02/04/11 Semarang Y
s .com
Dian 11/04/90 jl.Durian dian@mai 05/12/10 02/04/11 Semarang Y
l.com
Andre 02/05/90 jl.Jambu andre@ma 08/05/10 02/04/11 Semarang Y
il.com

Bagaimana juga kolom ini bermasalah, bagaimana jika member menghadiri setiap pertemuan ?

Nama Tgl.Lahir Alamat Email Tgl. Tgl. Lokasi Member


Bergabung Pertemuan hadir?
Adi 10/02/90 jl.Mangg adi@mail 01/01/11 02/04/11 Semarang Y
is .com
Adi 10/02/90 jl.Mangg adi@mail 01/01/11 05/05/11 Yogya Y
is .com
Dian 11/04/90 jl.Duria dian@mai 05/12/10 02/04/11 Semarang N
n l.com
Dian 11/04/90 jl.Duria dian@mai 05/12/10 05/05/11 Yogya Y
n l.com
Andre 02/05/90 jl.Jambu andre@ma 08/05/10 02/04/11 Semarang Y
il.com
Andre 02/05/90 jl.Jambu andre@ma 08/05/10 05/05/11 Yogya Y
il.com

Apakah ini masalah ?


Pertama ketidakpastian data terduplikasi (ganda). Setiap waktu Pertemuan anda butuh pencatatan yang
tidak hanya detail pertemuan tapi juga informasi member yang detail.
Membagi menjadi 2 bagian tabel

berisi member detail

Nama Lengkap
Tanggal Lahir
Alamat
Email
Tanggal Bergabung

berisi menghadiri pertemuan

Nama Lengap
Tanggal Pertemuan
Lokasi
Member ini hadir?

Jika dibuat tabelnya akan terlihat seperti ini 

Tabel member

Nama Tgl.Lahir Alamat Email Tgl.


Bergabung
Adi 10/02/90 jl.Manggis adi@mail.com 01/01/11
Dian 11/04/90 jl.Durian dian@mail.com 05/12/10
Andre 02/05/90 jl.Jambu andre@mail.com 08/05/10

Tabel Pertemuan

Nama Tgl. Lokasi Membe


Pertemuan r hadir?
Adi 02/04/11 Semarang Y
Adi 05/05/11 Yogya Y
Dian 02/04/11 Semarang N
Dian 05/05/11 Yogya Y
Andre 02/04/11 Semarang Y
Andre 05/05/11 Yogya Y

Disini ada 2 buah tabel: tabel member dan tabel pertemuan. Pada tabel member detail tidak boleh ada
yang terduplikasi, dan hanya boleh kolom “nama” yang berlebih, yang mana untuk menglink-an 2 tabel
bersamaan
MEMBUAT SEBUAH CONTOH DATABASE

Jika anda sudah membuat nama Database maka gunakan nama database yang tersedia dan buatlah tabel
sebagai berikut
saya menggunakan nama database dengan nama DatabasePertamaku.

Menggunakan Database

Sintaks : use DatabasePertamaku

dan sekarang buat tabel seperti gambar dibawah ini

buat tabel dengan nama MemberDetails dengan nama kolom sebagai berikut

Sintaks : CREATE TABLE NamaTabel


(NamaKolom1 TipeDataKolom1, NamaKolom2 TipeDataKolom2);

Kolom Tipe Data


MemberId integer
FirstName nvarchar(50)
LastName nvarchar(50)
DateOfBirth date
Street varchar(100)
City varchar(75)
State varchar(75)
ZipCode varchar(12)
Email varchar(200)
DateOfJoining date
Kemudian buat tabel Attendance dengan nama kolom sebagai berikut

Kolom Tipe Data


MeetingDate date
Location varchar(200)
MemberAttended char(1)
MemberId integer
Kemudian buat tabel Film dengan nama kolom sebagai berikut

Kolom Tipe Data


FilmId integer
FilmName varchar(100)
YearReleased integer
PlotSummary varchar(2000)
AvailableOnDVD char(1)
Rating integer
CategoryId integer
Kemudian buat tabel Category dengan nama kolom sebagai berikut

Kolom Tipe Data


CategoryId integer
Category varchar(100)
Kemudian buat tabel FacCategory dengan nama kolom sebagai berikut

Kolom Tipe Data


CategoryId integer
MemberId integer