Sistem Basis Data
Pertemuan 2
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
Data Model
•
Data model
: sekumpulan konsep yang dapat
digunakan untuk mendeskripsikan struktur dari
suatu database.
(referensi: Elmasri and Navathe, Fundamentals of Database Systems 6
thEd, Addison Wesley, 2010.)
•
Seperti yang sudah dibahas pada pertemuan 1,
bahwa data model diantaranya adalah;
Relational
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)
Relasi = Table
Attributes
,
each attribute has type (or domain)
(field or column headers)
Tuples
(rows)
Relation name
(table name)
Schemas
•
Relation schema
= nama relasi dan daftar
attribute-nya (
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
Database = kumpulan relasi
•
Database schema =
set
of all Relation schema
inside database
.
Tabel Mahasiswa
Tabel Jurusan
•
Database schema =
kumpulan lengkap skema
relasi di dalam database.
Database Akademik
Tabel Mata Kuliah
Database Akademik
tblMhs(nim: string, nama: string, jurusan: string)
tblJurusan(kd_jur:string, nm_jur:string, kd_fak:string, akreditasi:string)
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
Contoh Relasi
Mahasiswa(nim, nama, thnMasuk)
Kelas(nid, kdmk)
MataKuliah(kdMk, namaMk, sks)
Nilai(nim, kdMk, grade)
•
Underline
= key (tuples/rows/baris-baris tidak
boleh memiliki memiliki nilai yang sama pada
semua atribut key).
Nid
kdmk
dsn001
IST101
dsn002
IST102
dsn001
IST102
dsn003
IST103
dsn001
IST101
Kelas
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
SQL – Definisi untuk Database
(CREATE DATABASE dan DROP DATABASE)
•
CREATE DATABASE
<nama database> ;
•
DROP DATABASE
<nama database> ;
•
Contoh:
CREATE DATABASE latihan;
Perintah pada contoh di atas akan
menghasilkan database
dengan nama
latihan
.
DROP DATABASE latihan;
SQL – Definisi untuk Table
(CREATE TABLE dan DROP TABLE)
•
CREATE TABLE
<nama_tabel>
(
<nama_kolom> <tipe_kolom> [atribut_kolom] , … … …
, [definisi_key] (<nama_kolom>)
);
<tipe_kolom>
, 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
<nama table> ;
SQL – Definisi untuk Table
•
Contoh:
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL,
nama varchar(100) NOT NULL,
thnMasuk year,
PRIMARY KEY (nim)
);
Tipe_kolom yang umum adalah:
INT
angka bilangan bulat atau INTEGER.
DOUBLE
angka dengan desimal.
CHAR
(n )
fixed-length string of n characters.
VARCHAR
(n )
variable-length string of up to n characters.
Tipe_kolom yang umum adalah:
INT
angka bilangan bulat atau INTEGER.
DOUBLE
angka dengan desimal.
CHAR
(n )
fixed-length string of n characters.
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
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)
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):
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:
SQL – Nilai pada SQL
•
Tipe Kolom waktu:
TIME
tipe waktu
Penjelasan:
Jika kolom dengan tipe TIME ini akan diisi nilai, maka
format penulisannya adalah:
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.
nim
kdMk
grade
2013081001
SIF102
C
2013081001
SIF204
A
2014081001
SIF204
B
2015081001
IST102
B
Nilai
kdMk
namaMk
sks
SIF102
Struktur Data
4
SIF204
Analisis Proses Bisnis
3
SIF204
Analisis Proses Bisnis
3
IST102
Sistem Basis Data
3
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 );
CREATE TABLE Mahasiswa ( nim char(10) NOT NULL, nama varchar(100) NOT NULL, thnMasuk year,
PRIMARY KEY (nim) );
nim
nama
thnMasuk
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)
nim
kdMK
grade
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
SQL – Modifikasi Table
(ALTER TABLE)
•
Modifikasi untuk enambah kolom/field pada tabel:
ALTER TABLE
<nama_tabel>
ADD
<
nama_kolom
> <
tipe_kolom
>
•
Modifikasi untuk menghapus kolom/field pada tabel:
ALTER TABLE
<
nama_tabel
>
DROP COLUMN
<
nama_kolom
>
•
Modifikasi untuk merubah tipe kolom pada tabel:
ALTER TABLE
<
nama_tabel
>
See You Next Session
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.