Slide IST 102 2 Model Data Relational Data Model Database Schema DDL

Sistem Basis Data
Pertemuan 2
Model Data, Relational Data Model, Database Schema, DDL

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

1

Tujuan Pertemuan
• Mahasiswa akan mampu menjelaskan bahasa
yang digunakan di dalam DBMS .
• Mahasiswa akan mampu menjelaskan perbedaan
model data berbasis konseptual dan berbasis
fisik .
• Mahasiswa memahami relational model
database beserta komponennya
• Mahasiswa akan mampu membuat skema
database (DDL) dengan bahasa query (SQL)
AER – 2015/2016


Universitas Pembangunan Jaya – SIF

2

Data Model
• Data model: sekumpulan konsep yang dapat
digunakan untuk mendeskripsikan struktur dari
suatu database.
(referensi: Elmasri and Navathe, Fundamentals of Database Systems 6th Ed, Addison Wesley, 2010.)

• Seperti yang sudah dibahas pada pertemuan 1,
bahwa data model diantaranya adalah; Relational
Model, The Entity-Relationship Model, ObjectBased Data Model, Semistructured Data Model
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 3


What is a Data Model? (actually)
• Representasi secara matematis dari data.
– contoh:
relational model = tables;
semistructured model = trees/graphs.

• Representasi dari Operasi pada data.
• Constraints (kendala/batasan-batasan)
(referensi: Prof. Jennifer Widom Hand-out, stanford university.)

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 4

Relasi = Table
Relation name
(table name)


Attributes, each attribute has type (or domain)
(field or column headers)

tblMhs
Tuples
(rows)

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 5

Schemas
• Relation schema = nama relasi dan daftar attributenya (Optionally: disertai types dari attributes).
– Contoh:
tblMhs(nim, nama, jurusan) atau
tblMhs(nim: string, nama: string, jurusan: string)

• Database = kumpulan relasi.

• Database schema = Deskripsi terstruktur dari suatu
relasi dalam database
• Instance = actual content of a table at given point in
time
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 6

Database = kumpulan relasi
• Database schema = set
of all Relation schema
inside database.

• Database schema =
kumpulan lengkap skema
relasi di dalam database.

Database Akademik


Tabel Mahasiswa
Tabel Mata Kuliah

Tabel Jurusan

Database Akademik

tblMhs(nim: string, nama: string, jurusan:
string)
tblJurusan(kd_jur:string, nm_jur:string,
kd_fak:string, akreditasi:string)
tblMk(kodeMK:string, namaMK:string,
sks:number)

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 7


Mengapa menggunakan Relasi
• Model yang sangat simple & Implementasi yang
Efisien.
• Banyak digunakan oleh sistem database komersial.
• Representasi relasi sangat memudahkan kita
dalam memahami data.
• Model abstract yg mendasari SQL (bahasa
database yg paling penting saat ini).
• Query (ask question of database) dengan high
level language  simple & ekspresif
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 8

Contoh Relasi
Mahasiswa(nim, nama, thnMasuk)
Kelas(nid, kdmk)

MataKuliah(kdMk, namaMk, sks)
Nilai(nim, kdMk, grade)

Contoh constraint:
Kelas
Nid

kdmk

dsn001

IST101

dsn002

IST102

dsn001

IST102


dsn003

IST103

dsn001

IST101

• Underline = key (tuples/rows/baris-baris tidak
boleh memiliki memiliki nilai yang sama pada
semua atribut key).
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 9

Database Schemas in SQL
• Keutamaan penggunaan dari SQL adalah

bahasa query (bagian dari DML), untuk
mendapatkan informasi dari suatu database.
• Tapi pada SQL juga disertakan suatu
komponen data-definition (DDL) untuk
mendeskripsikan skema database
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 10

SQL – Definisi untuk Database

(CREATE DATABASE dan DROP DATABASE)

• CREATE DATABASE ;
• DROP DATABASE ;
• Contoh:
 CREATE DATABASE latihan;
Perintah pada contoh di atas akan menghasilkan database

dengan nama latihan.

 DROP DATABASE latihan;
Perintah pada contoh di atas akan menghapus database
dengan nama latihan.
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 11

SQL – Definisi untuk Table

(CREATE TABLE dan DROP TABLE)
• CREATE TABLE (

[atribut_kolom] , … … …

, [definisi_key] () );


, Merupakan tipe dari data yang akan diisikan pada kolom.
[atribut_kolom] ,
NOT NULL : isi kolom ini tidak boleh NULL (atau tidak diisi).
AUTO_INCREMENT : kolom ini berisi angka yang merupakan penambahan dari angka record
sebelumnya, dan penambahan ini otomatis dilakukan oleh MySQL.
[definisi_key] ,
PRIMARY KEY : digunakan untuk mendefinisikan suatu kolom sebagai primary key. Kita bisa
mendefinisikan lebih dari satu kolom sebagai primary key (dengan menggunakan koma sebagai
pemisah kolom).

• DROP TABLE ;
Perintah di atas untuk menghapus table.
Contoh: DROP TABLE Mahasiswa
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 12

SQL – Definisi untuk Table
• Contoh:
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL,
nama varchar(100) NOT NULL,
thnMasuk year,
Tipe_kolom
Tipe_kolom yang
yang umum
umum adalah:
adalah:
PRIMARY KEY (nim) INT

angka
bilangan
bulat
INT  angka bilangan bulat atau
atau INTEGER.
INTEGER.
DOUBLE
DOUBLE  angka
angka dengan
dengan desimal.
desimal.
CHAR(n
CHAR(n ))  fixed-length
fixed-length string
string of
of nn characters.
characters.
);
VARCHAR(n )  variable-length string of up to n characters.

VARCHAR(n )  variable-length string of up to n characters.
DATE
DATE  tipe
tipe tanggal.
tanggal.
YEAR

tipe
tahun.
YEAR  tipe tahun.

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 13

SQL – Nilai pada SQL
• Tipe Kolom Angka:
• Angka bilangan bulat






TINYINT  -128 sampai 127
SMALLINT  -32,768 sampai 32,767
MEDIUMINT  -8,388,608 sampai 8,388,607
INT  -2,147,483,648 sampai 2,147,483,647
BIGINT  -9,223,372,036,854,775,808 sampai
9,223,372,036,854,775,807

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 14

SQL – Nilai pada SQL
• Tipe Kolom Angka:
• Angka dengan desimal
 DECIMAL  angka dengan desimal
Contoh penulisan:
lebar DECIMAL(5, 2)

Artinya:
Kolom lebar akan menyimpan nilai angka desimal dengan format
nnn.nn (misal: 562.50)

 DOUBLE  angka bilangan real.
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 15

SQL – Nilai pada SQL
• Tipe Kolom String:
 CHAR(n )  menyimpan teks dengan jumlah karakter tetap sebanyak n
karakter.
 VARCHAR(n )  menyimpan teks dengan jumlah karakter yang bervariasi
sampai paling banyak n karakter.
Contoh penulisan:
id char(5)
kode varchar(5)

Artinya:
id akan menyimpan nilai berupa string sebanyak 5 karakter.
kode akan menyimpan nilai berupa string dengan maksimum 5 karakter

Perbedaan char(n) dengan varchar(n):
Jika id diisi dengan nilai ‘123’ maka akan tersimpan string ‘123 ‘ (terdapat 2 space kosong di akhir string)
Jika kode diisi dengan nilai ‘123’ maka akan tersimpan string ‘123’

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 16

SQL – Nilai pada SQL
• Tipe Kolom tanggal:
 DATE  tipe tanggal
Penjelasan:
Jika kolom dengan tipe DATE ini akan diisi nilai, maka format
penulisannya adalah:
yyyy-mm-dd (contoh: 2016-02-10).

 YEAR  tipe tahun
Penjelasan:
Jika kolom dengan tipe YEAR ini akan diisi nilai, maka format
penulisannya adalah:
yyyy (contoh: 2016)
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 17

SQL – Nilai pada SQL
• Tipe Kolom waktu:
 TIME  tipe waktu
Penjelasan:
Jika kolom dengan tipe TIME ini akan diisi nilai, maka
format penulisannya adalah:
hh:mm:ss (contoh: 15:30:02).

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 18

SQL – Deklarasi Keys
• Key merupakan atribut atau sekumpulan atribut dimana
nilainya adalah unik (tidak boleh sama), dalam tiap tuple
atau sekumpulan attribute dimana kombinasi nilainya unik
• Suatu atribut atau sekumpulan atribut boleh
dideklarasikan PRIMARY KEY or UNIQUE.
MataKuliah
kdMk

namaMk

sks

Nilai
nim

kdMk

grade

SIF102

Struktur Data

4

2013081001

SIF102

C

SIF204

Analisis Proses Bisnis

3

2013081001

SIF204

A

SIF204

Analisis Proses Bisnis

3

2014081001

SIF204

B

IST102

Sistem Basis Data

3

2015081001

IST102

B

SIF102

Struktur Data

4

2013081001

SIF102

A

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 19

SQL – Deklarasi Keys – Single Attribute Key
• Tuliskan PRIMARY KEY atau UNIQUE setelah tipe atribut (kolom) pada deklarasi membuat tabel.
• Contoh:
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL UNIQUE,
nama varchar(100) NOT NULL,
thnMasuk year,
);
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL PRIMARY KEY,
nama varchar(100) NOT NULL,
thnMasuk year
);

nim


nama


thnMasuk


CREATE TABLE Mahasiswa (
nim char(10) NOT NULL,
nama varchar(100) NOT NULL,
thnMasuk year,
PRIMARY KEY (nim)
);

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 20

SQL – Deklarasi Keys – Multi Attribute Keys
• Deklarasi Key dapat juga dilakukan terhadap
sekumpulan atribut pada tabel
• Hal ini dilakukan jika memang tabel memerlukan key
multi-atribut (lebih dari satu atribut.
• Contoh:
CREATE TABLE Nilai(
nim char(10) NOT NULL,
kdMk char(6) NOT NULL,
grade char(1),
PRIMARY KEY (nim, kdMk)
);
AER – 2015/2016

nim


Universitas Pembangunan Jaya – SIF

kdMK


grade


IST102 - 21

SQL – PRIMARY KEY vs. UNIQUE
• Hanya boleh satu PRIMARY KEY untuk satu
tabel, tapi bisa boleh banyak UNIQUE untuk
satu tabel.
• Atribut suatu PRIMARY KEY tidak boleh berisi
nilai NULL dalam satu tuple/row/baris nilai,
tapi atribut suatu unique boleh bernilai null.

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 22

SQL – Modifikasi Table
(ALTER TABLE)

• Modifikasi untuk enambah kolom/field pada tabel:
ALTER TABLE
ADD
• Modifikasi untuk menghapus kolom/field pada tabel:
ALTER TABLE
DROP COLUMN
• Modifikasi untuk merubah tipe kolom pada tabel:
ALTER TABLE
MODIFY COLUMN
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 23

See You Next Session
• Thank’s

AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 24

tugas
• Buat suatu database dengan ketentuan:
– nama bebas,
– minimal berisi 3 table,
– diantara 3 table itu minimal terdapat 1 table dengan
multiattribute key.
– Buat skema relasinya (relation schema)
– kemudian buat SQL (Query Language) untuk membuat
database (skema database) tersebut.
– Masing-masing harus membuat database yang berbeda.
AER – 2015/2016

Universitas Pembangunan Jaya – SIF

IST102 - 25