Anda di halaman 1dari 54

MODEL DATA RELASIONAL

Agun Guntara, M.Kom.

STMIK Sumedang
Sejarah Model Relasional
◼ Pertama kali diperkenalkan oleh E.F. Codd pada tahun
1970.

◼ Objektifitas dari model relasional ini adalah konsep


kemandirian data, relasi yang normal tanpa adanya
kelompok pengulangan serta perluasan dari bahasa
manipulasi data yang berorientasi pada himpunan data.

◼ Prototype sistem manajemen basis data relasional,


dengan nama System R, dibuat oleh IBM’s San Jose
Research Laboratory di California pada tahun 1970-an.
Kemudian mulai dikembangkan bahasa queri terstruktur
yang diberi nama Structured Query Language (SQL) dan
dinyatakan sebagai standar bahasa relasional.

2
Sejarah Model Relasional (lanj.)
◼ Tahun 1980-an bermunculan produk-produk sistem
manajemen basis data relasional yang komersial;
contohnya DB2 dan SQL/DS dari IBM serta ORACLE dari
ORACLE Corporation.

◼ Pada waktu bersamaan, dikembangkan prototype


INGRES (Interactive Graphics Retrieval System) dimana
fokusnya hampir sama dengan System R di California
University, Berkeley. Produk komersial dari INGRES
dikeluarkan oleh Relational Technology Inc. serta
Intelligence Database Machine dari Britton Lee Inc.

◼ Sekarang telah terdapat bermacam-macam produk


komersial dari model relasional untuk mikrokomputer
maupun mainframe. Seperti misalnya, Paradox dan
dBase IV dari Borland, Access dari Microsoft, FoxPro
dan R:Base dari Microrim.
3
Konsep Model Relasional
◼ Model yang merepresentasikan data dalam
basis data sebagai kumpulan tabel-tabel yg
terintegrasi dimana setiap tabel dinyatakan
dengan nama yang unik.
◼ Setiap baris pada tabel merepresentasikan
keterhubungan diantara sekumpulan nilai-
nilai.
◼ Itu berarti sebuah tabel merupakan kumpulan
dari keterhubungan-keterhubungan ini.

4
Istilah-Istilah

5
Kardinalitas

◼ One to Many
◼ One to One
◼ Many to Many

6
7
Terminologi
◼ Relation (Relasi) merupakan sebuah tabel dengan
kolom-kolom dan baris-baris. Relasi digunakan untuk
menyimpan informasi mengenai objek-objek yang
direpresentasikan dalam sebuah basis data. Relasi ini
digambarkan dalam bentuk tabel dua dimensi.
Contohnya mengenai informasi pegawai-pegawai yang
bekerja di perusahaan X direpresentasikan pada relasi
PEGAWAI yang mengandung informasi nomor induk
pegawai, nama, alamat, gaji dan kode divisi tempat
pegawai bekerja.

◼ Relation schema (Skema relasi) adalah nama relasi yang


diikuti dengan kumpulan atribut-atributnya. Misalkan
skema relasi R dinyatakan sebagai R(A1, A2, ..., An),
dimana R = relasi dan Ai = atribut ke i. Contoh :
PEGAWAI (NIP, Nama, Alamat, Gaji, KodeDiv).

8
Terminologi (lanj.)
◼ Attribute (Atribut) merupakan kolom dari suatu relasi
yang mempunyai nama. Atribut-atribut pada suatu relasi
tidak harus tersusun secara khusus. Contohnya, pada
relasi PEGAWAI mempunyai lima kolom untuk atribut-
atribut NIP, Nama, Alamat, Gaji dan KodeDiv.

◼ Tuple (Tupel) merupakan suatu baris dari suatu relasi.


Pada relasi PEGAWAI, setiap tupel mempunyai 5 nilai,
masing-masing untuk setiap atribut NIP, Nama, Alamat,
Gaji dan KodeDiv.

◼ Domain (Domain) merupakan kumpulan nilai-nilai data


yang mungkin untuk suatu atribut dan bersifat atomik.
Contoh : domain dari atribut KodeDiv adalah {Div01,
Div02, Div03, Div04}

9
Contoh Domain

10
Terminologi (lanj.)
◼ Degree of relation (Derajat dari suatu relasi) adalah
banyaknya atribut pada suatu relasi. Relasi PEGAWAI yang
mempunyai 5 atribut berarti mempunyai derajat lima,
dimana setiap tupelnya mempunyai 5 nilai. Relasi dengan
satu atribut disebut derajat unary, dua atribut disebut
binary, tiga atribut disebut ternary, selanjutnya disebut
n-ary.
◼ Cardinality of relation (Kardinalitas dari suatu relasi)
adalah Menunjukkan jumlah maksimum entitas yang
dapat berelasi dengan entitas pada himpunan entitas
yang lain. Kardinalitas merujuk kepada hubungan
maksimum yang terjadi dari himpunan entitas yang satu
ke himpunan entitas yang lain dan begitu juga sebaliknya
◼ Relational database (Database relasional) merupakan
sekumpulan relasi yang sudah dalam bentuk normal.
11
Karakteristik Relasi
1. Setiap relasi mempunyai nama yang harus berbeda
dengan relasi lainnya.
2. Setiap sel dari relasi mempunyai hanya satu nilai
atau atomik.
3. Setiap atribut mempunyai nama yang berbeda.
4. Nilai atribut bersifat atomik dan berasal dari
domain yang sama.
5. Atribut-atribut tidak harus tersusun secara khusus.
6. Setiap tupel berbeda dan tidak ada tupel yang
rangkap (duplikasi).
7. Tupel tidak harus tersusun secara khusus. (secara
teroritis)

12
Kunci Relasi
◼ Setiap tupel pada suatu relasi harus dapat diidentifikasi
secara unik dengan menggunakan nilai-nilai dari
atribut-atribut relasi tersebut.
◼ Berikut ini akan dijelas kan terminologi yang digunakan
pada kunci relasi :

13
Kunci Relasi (lanj.)
1. Candidate key (Kunci kandidat)
Kunci kandidat merupakan suatu kunci super yang
mempunyai sifat unik, dapat mengidentifikasikan
secara unik suatu tupel.
Contoh : NIP, Nama
2. Super Key
Super key merupakan sebuah atribut data
atau kumpulan atribut yang secara unik
dapat mengidentifikasi sebuah tupel.
Contoh : NIP, Nama, Alamat, Gaji

14
Kunci Relasi (lanj.)
3. Primary key (Kunci utama)
Kunci utama merupakan sebuah kunci kandidat
yang dipilih sebagai atribut yang paling utama
yang dapat mengidentifikasikan suatu tupel pada
suatu relasi. Contoh : NIP.

4. Alternate key (Kunci alternatif)


Kunci alternatif merupakan kunci kandidat yang
tidak terpilih sebagai kunci utama.
Contoh : Nama.

15
Kunci Relasi (lanj.)
5. Composite key (Kunci komposit)
merupakan gabungan dua key atau lebih
yang secara unik dapat mengidentifikasi
sebuah tupel
Contoh : NIP+KodeDiv

6. Foreign key (Kunci asing)


Kunci asing merupakan atribut pada suatu relasi
yang merupakan kunci utama pada relasi yang
lain. Contoh : KodeDiv pada relasi PEGAWAI yang
merupakan kunci utama pada relasi DIVISI.
16
17
18
19
Aturan Keintegritasan
1. Entity integrity
Kunci utama tidak boleh bernilai null. Null artinya
kosong, tidak ada nilai atau nilai tidak sesuai
dengan domain atributnya. Contohnya, atribut
CourseId# sebagai kunci utama pada relasi tidak
boleh kosong, karena akan menyebabkan masalah
keintegritasan data.
2. Referential integrity
Kunci asing harus mempunyai nilai data yang
sesuai atau cocok dengan nilai pada referensinya.
Contohnya, nilai atribut CourseId sebagai kunci
asing pada relasi Student harus mempunyai nilai
dan tidak boleh null sesuai dengan referensinya
yakni atribut CourseId pada relasi Course.

20
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

◼ SQL tersedia dalam banyak versi Ms.Access,


DB2, MS SQL server, Oracle, MySQL,
Sybase,dll.
21
1. CREATE
• Digunakan untuk membuat database dan
objek-objek di dalam database

Membuat database

Create Database Namadatabase

Contoh

Create Database Kepegawaian

22
Mengaktifkan database yang telah dibuat
Use Namadatabase

Contoh

Use Kepegawaian

Membuat Table

Create Table NamaTable (Nama_field/kolom typedata


(size), …)

Contoh

Create Table pegawai (NIP char (8) not null primary key,
Nama varchar (25), Alamat varchar (50),telf varchar (15))
23
2.DROP
•Digunakan untuk menghapus database dan
objek-objek di dalam database

Menghapus database dan tabel

Drop Database Namadatabase Drop Table Namatable

Contoh Contoh

Drop Database Kepegawaian Drop Table pegawai

24
3.ALTER
•Berfungsi untuk memodifikasi tabel
- menambah kolom/field
- menghapus kolom/field
- membuat primary key atau foreign
key

25
Menambah Kolom/Field

Alter Table NamaTable add Namafield typedata (size)

Contoh

Alter Table Pegawai add status varchar (5)

Merubah Kolom/Field

Alter Table NamaTable Alter Column Namafield typedata (size)

Contoh

Alter Table Pegawai Alter Column status varchar (10)

26
Menghapus Kolom/Field

Alter Table NamaTable drop Namafield

Contoh

Alter Table Pegawai drop status

Menambah Primary Key

Alter Table NamaTable add primary key (namafield)

Contoh

Alter Table departement add primary key (kd_depart)

27
SQL Data Manipulation Language

Berfungsi untuk memanipulasi data


(menampilkan, menambahkan, dan
menghapus data)

28
1. INSERT
Digunakan untuk Menambah Data dalam
satu record

Insert Into NamaTable (namafield1,namafield2,…)

Values (‘nilaifield1’,’nilaifield2’,…)

Contoh

Insert Into pegawai (nip,nama) values (’01’,’andika’)

Atau bisa juga bila kita mengingat seluruh bentuk field dalam tabel
Insert Into namatable values (‘nilaifield1’,’nilaifield2’,…)

29
2. SELECT

Berfungsi untuk Menampilkan record data yang


ada dalam table

Select * from namatabel

Contoh

Select * from pegawai


(menampilkan data di semua field yang ada dalam table pegawai)

Simbol * bermaksud ‘all’ atau ‘semua’, dan digunakan untuk mewakili


semua atribut dalam satu tabel

30
Menampilkan sebagian field beserta
recordnya yang ada pada tabel

Select namafield,namafield from namatabel

Contoh

Select nip,alamat from pegawai

Menampilkan baris record tertentu


berdasarkan pilihan field yang diberikan
Select * from namatabel where namafield=‘nilaifield’

Contoh

Select * from pegawai where alamat=‘seutui’


31
Menampilkan beberapa field beserta recordnya
yang sama tidak akan berulang

Select distinct namafield1,namafield2 from namatabel

Contoh

Select distinct alamat,status from pegawai

satu baris nip [03] tidak dipaparkan kerana berulang


32
Menggunakan Ungkapan Aritmatik dalam
Pernyataan +, -, /, *

Select namafield ungkapan aritmatik from namatabel

Contoh

Select nama,gaji/2 from pegawai

33
◼ Kita boleh menamakan semula suatu atribut
(walaupun telah mempunyai nama) dengan
menggunakan AS

SELECT nama, gaji/2 AS gajisetengah


FROM pegawai

34
• Kita dapat membuat dan mengubah judul
field yang akan di tampilkan

Select namafield As namafieldbaru from namatabel

Contoh

Select nama As namalengkap from pegawai

menampilkan nama dari tabel pegawai dimana field nama


pada hasil SQL di ubah menjadi namalengkap

35
Menggunakan Simbol perbandingan <, >, =
untuk membuat pemilihan

Select namafield from namatabel where simbol perbandingan

Contoh

Select nama,gaji from pegawai where gaji > 1000000

Select nama,gaji from pegawai where gaji < 900000

Select nama,gaji from pegawai where gaji = 900000

36
Menggunakan operator Boolean Seperti And
OR dan Not

Select namafield1,namafield2 from namatabel where namafield1


operatorboolean namafield2

Contoh

Select alamat,gaji from pegawai where alamat=‘seutui’ and gaji >


1000000

Select alamat,gaji from pegawai where alamat=‘prada’ Or gaji >


900000

Select * from pegawai where alamat=‘seutui’ Or alamat=‘prada’

Select * from pegawai where Not alamat=‘seutui’


37
Jarak Nilai Sebagai Kriteria

Kita boleh mengunakan pernyataan BETWEEN

Select namafield from namatabel where namafield between


nilai and nilai

Contoh

Select nama,gaji from pegawai where gaji between 850000


and 1000000

38
Operator In

Pencocokan data kondisi pencarian dengan salah satu


data yang ada pada suatu daftar nilai

Select namafield from namatabel where namafield In


(nilaifield1,nilaifield2)

Contoh

Select * from pegawai where alamat In (‘seutui’,’prada’)

Select nama,alamat from pegawai where alamat In


(‘seutui’,’prada’)

39
Operator Like

-Untuk pencarian data


-Bekerja pada type data char, varchar, text

Select namafield from namatabel where namafield Like


‘%ekspresi%’

Contoh

Select * from pegawai where alamat Like ‘%andi%’

(menampilkan semua klolom dari tabel pegawai yang


namanya mengandung kata andi)

40
Fungsi Agregat
fungsi yang mengambil suatu kumpulan nilai-nilai sebagai
input dan mengembalikan satu nilai sebagai output

Select fungsi agregat SUM/AVG/MIN/MAX/COUNT (namafield)


As namafieldbaru from nama table

SQL menyediakan 5 fungsi

AVG : Rata-rata
MIN : Minimum
MAX : Maksimum
SUM : PenJumlahan isi record
COUNT : menjumlahkan data
41
◼ Operasi MIN, MAX dan COUNT dapat
dilakukan dalam atribut yang mempunyai
jenis data rentetan (string) seperti Char, Text,
dan Varchar
◼ Operasi AVG dan SUM hanya boleh
dilakukan keatas atribut-atribut yang
mempunyai jenis data numerik yang berjenis
int, bigint, decimal, bit, numeric, real, smallint,
tinyint.

42
a) SUM → Penjumlahan dalam satu kolom

Select sum (tunjangan) As jlh_tunj from pegawai

Menampilkan jumlah keseluruhan dari tunjangan yang diberikan

43
b) Avg → menghitung nilai rata-rata dalam satu kolom

Select Avg (gaji) As rata_gaji from pegawai

44
c) Min → Untuk mencari atau menampilkan
nilai terendah

Select min (gaji) As Gaji_min from pegawai

(Menampilkan gaji terendah dari tabel pegawai)

Select min (gaji) As Gaji_min from pegawai where


status=‘nikah’

(Menampilkan gaji terendah dari tabel pegawai yang statusnya


telah menikah)

45
d) MAX → Untuk mencari atau menentukan nilai tinggi

Select max (gaji) As Gaji_max from pegawai

(Menampilkan gaji terendah dari tabel pegawai)

Select max (gaji) As Gaji_max from pegawai where


status=‘nikah’

(Menampilkan gaji terendah dari tabel pegawai yang statusnya


telah menikah)

46
e) COUNT → Menghitung jumlah record yang sesuai
dengan kondisi

Select count (nip) As jlh_peg from pegawai

(Menampilkan jumlah seluruh pegawai dari tabel pegawai)

Select count (nip) As jlh_peg from pegawai where


status=‘nikah’

(Menampilkan jumlah seluruh pegawai dari tabel pegawai yang


statusnya telah menikah)

47
Pengelompokan Record (Group by)

Pada kondisi tertentu, sekumpulan record dapat


dikelompokkan berdasarkan satu atau lebih field yang
terdapat pada sebuah tabel atau query.

Select namafield1,namafield2 from namatabel Group by field


pengacu

Contoh

Select jeniskelamin,count (*) as jumlah from mahasiswa


group by jeniskelamin
JenisKelamin jumlah
Hasil Laki-Laki 5
Perempuan 4

48
Pengurutan (Order by)
◼ Hasil dari query dapat di urutkan berdasarkan
pada satu atau lebih kolom.

Select namafield1 from namatabel where kriteria nim nama


order by namafield 2008 Ana
2009 Devi
Select nim,nama where jeniskelamin=’perempuan’
2010 July
order by nama
2011 Kiki
Select nim,nama where jeniskelamin=’perempuan’
order by nama asc

Select nim,nama where jeniskelamin=’perempuan’


order by nama desc

49
Pernyataan Having

-menampilkan kelompok-kelompok data tertentu


-having berbeda dengan where, pernyataan where digunakan
untuk memberikan criteria sebelum pengelompokan dan
melakukan penyaringan baris. Sedangkan having digunakan
untuk memberikan criteria setelah pengelompokan dilakukan,
menyaring kelompok, dan menentukan kondisi bagi Group By

Select namafield1,… from namatabel Group by field pengacu


Having kondisi

Contoh

Select barang, count (jumlah) As totalfaktur from Torder Group by


idbarang having idbarang=‘A009’

50
3. UPDATE

Berfungsi untuk mengubah satu atau lebih data


yang terdapat pada satu atau lebih kolom tabel

Update namatabel set namafield=nilai where kondisi

Contoh

Update pegawai set alamat=‘pango’ where nip=’01’

51
Menukar record dalam Tabel

Update namatabel set namafield=nilai

Contoh

Update pegawai set gaji=gaji+12000

pernyataan diatas akan menambah ‘gaji’ yang awal dengan


+12000 dalam tabel pegawai

52
4. DELETE

Berfungsi untuk menghapus satu atau beberapa


record dalam suatu tabel.

Delete from namatabel where kondisi

Contoh

Delete from pegawai where nip=’01’

53
sekian

54

Anda mungkin juga menyukai