Anda di halaman 1dari 84

Database II

:: Referensi

◼ http://www.mysql.com/
◼ MySQL Manual
◼ Mailing List
◼ Google.com
◼…
:: Tool Yang Digunakan

◼ DOS Prompt
◼ Telnet/SSH Client
◼ UNIX Shell
◼…
:: Database Dasar

◼ Definisi Database
Kumpulan data yang atur sedemikan
rupa sehingga mudah untuk diakses,
diolah dan diperbarui.

◼ Contoh
Database Universitas
Berisi data:
- nama mahasiswa, dosen
- alamat mahasiswa, dosen
:: Komponen Database

Database

SQL

Table
SQL
Column1 Column2
Data
Row1 Field
Row2 Record
:: Komponen Database

◼ Database
- Flat File
Single tabel

- Relational
Multi tabel
Relational

- Distributed
Tersebar
:: Komponen Database

◼ Database Management System


(DBMS)
Software/program yang didesain untuk
mengolah dan mengatur informasi
(data) di dalam database

◼ Contoh
MySQL, Ms. Access, Ms. SQL, ORACLE,
PostgreSQL,…
:: Komponen Database

◼ Tabel, Data, Record

Kolom/Column

Tabel_Buku_Alamat
no nama alamat
Baris/Row 1 arief solo
2 denny bandung
3

Record Data
:: Istilah-Istilah Database

◼ Database

◼ Data-Entry
Proses memasukkan data ke database

◼ DBMS

◼ Field
Komponen tunggal tiap member tabel
- field nama pada tabel tabel_buku_alamat
:: Istilah-Istilah Database

◼ Index
Elemen untuk mempermudah pencarian
- Nama, NIM
- Daftar index pada buku

◼ Key Field
Field untuk mempermudah pencarian
- Nama, NIM
- Untuk membuat index
:: Istilah-Istilah Database

◼ Primary Key
- Unique identifier
- NIM lebih unik daripada nama

◼ Record
- Single member dari tabel
- Nama dan alamat

◼ Tabel
- Berisi record, field, row, column
:: Tugas

Buat database terdiri dari satu


tabel untuk menampung data
mahasiswa
:: Structured Query Language

◼ Dasar dari semua database


◼ Bahasa untuk memberikan
perintah untuk pengolahan data
dalam database
:: Structured Query Language

◼ Operasi Database
- CREATE DATABASE
- SHOW DATABASES
- USE DATABASE
- DROP DATABASE
- CREATE TABEL
- DROP TABEL
- ALTER TABEL
:: CREATE DATABASE

CREATE DATABASE Nama_Database

Syarat pemberian nama database:


•Maksimum 64 karakter
•Karakter yang diperbolehkan:
- nama direktori kecuali “\”, “/”, dan “.”.
:: SHOW DATABASES

SHOW DATABASES
:: USE DATABASE

USE DATABASE Nama_Database


:: DROP DATABASE

DROP DATABASE Nama_Database


:: CREATE TABLE

CREATE TABLE Nama_Tabel (


Nama_Kolom Tipe_Data Atribut,
... ...)

Syarat pemberian nama tabel:


•Maksimum 64 karakter
•Karakter yang diperbolehkan:
- nama file kecuali “\”, “/”, dan “.”.
:: CREATE TABLE

Syarat pemberian nama kolom:


•Maksimum 64 karakter
•Semua karakter diperbolehkan
:: Tipe Data Numerik

1. TINYINT
2. INT
3. MEDIUMINT
4. SMALLINT
5. INT
6. BIGINT
7. FLOAT
8. DOUBLE
9. DOUBLEPRECISION
10. DECIMAL
:: Tipe Data Tanggal dan Jam

TIMESTAMP Tipe Kolom Format Tampilan

TIMESTAMP(14) YYYYMMDDHHMMSS

TIMESTAMP(12) YYMMDDHHMMSS

TIMESTAMP(10) YYMMDDHHMM

TIMESTAMP(8) YYYYMMDD

TIMESTAMP(6) YYMMDD

TIMESTAMP(4) YYMM

TIMESTAMP(2) YY
:: Tipe Data Tanggal dan Jam

DATE
YYYY-MM-DD

TIME
HH:MM:SS

YEAR
YYYY-MM-DD HH:MM:SS

DATETIME
YYYY
:: Tipe Data String
1. CHAR (Lebar)
2. VARCHAR (Lebar)
3. TINYTEXT (Lebar)
4. TINYBLOB (Lebar)
5. MEDIUMTEXT
6. MEDIUMBLOB
7. TEXT
8. BLOB
9. LONGTEXT
10. LONGBLOB
11. ENUM (elemen1, ...)
12. SET (“member1”, ..)
:: Atribut

PRIMARY KEY
PRIMARY KEY dapat dibuat langsung pada
saat pembuatan tabel atau pada saat lain
menggunakan perintah ALTER. PRIMARY
KEY merupakan batasan untuk menjaga
kesatuan data, oleh karena itu PRIMARY
KEY tidak boleh mempunyai duplikat dan
otomatis tidak NULL.
:: Atribut

FOREIGN KEY
FOREIGN KEY adalah kolom pada sebuah
tabel yang menunjukkan bahwa kolom itu
adalah PRIMARY KEY pada tabel yang lain.
:: Atribut

NULL dan NOT NULL


Jika sebuah kolom database tidak boleh kosong
(harus terisi), maka batasan NOT NULL harus
diberikan. Dengan demikian pada saat tabel diisi
dengan data (misalnya melalui instruksi
INSERT), maka kolom tersebut harus terisi, jika
tidak, sistem akan menolaknya.
Batasan NULL merupakan kebalikan dari NOT
NULL, dan kolom yang mempunyai batasan NULL
boleh kosong.
:: Atribut

UNIQUE
Batasan UNIQUE digunakan untuk menjamin
bahwa nilai kolom adalah tunggal (tidak
mempunyai duplikat). PRIMARY KEY dan
UNIQUE mempunyai arti sama. Batasan
UNIQUE boleh memiliki niali NULL sedang
Primary Key tidak boleh kosong (NOT NULL).
:: Atribut

DEFAULT
Nilai default sebuah kolom dapat diisi
otomatis oleh sistem jika tidak ada nilai
yang diberikan pada kolom tersebut.
DEFAULT tidak berlaku untuk kolom dengan
tipe data TIMESTAMP .
:: Atribut

AUTO_INCREMENT
Adalah nilai yang bertambah setiap kali
ada penambahan data dalam tabel.
Dimulai dari 0 dan ditambah 1 untuk baris
berikutnya.
:: Create Table
:: SHOW TABLES

SHOW TABLES
:: DESCRIBE TABLE

DESCRIBE TABLE Nama_Tabel


:: ALTER TABLE

ALTER TABLE Nama_Tabel


Spesifikasi [Spesifikasi]
:: ALTER TABLE
:: ALTER TABLE
:: ALTER TABLE
:: ALTER TABLE
:: DROP TABLE

DROP TABLE Nama_Tabel


:: Structured Query Language

◼ Manipulasi Database
- INSERT
- SELECT
- UPDATE
- DELETE
:: INSERT

INSERT INTO namaTabel


(NamaKolom1, NamaKolom2, ...
... ...) VALUES (‘nilai1’,
‘nilai2’, ... ... ...)
:: INSERT

INSERT INTO namaTabel VALUES


(‘nilai1’, ‘nilai2’, ... ...
...)
:: INSERT

INSERT INTO namaTabel


(NamaKolom2, NamaKolom1, ...
... ...)
VALUES
(‘nilai2’, ‘nilai1’, ... ...
...)
:: INSERT
:: SELECT

SELECT Nama_Kolom FROM


Nama_Tabel WHERE Kondisi
:: SELECT
Memilih Semua Record

SELECT * FROM Nama_Tabel


:: SELECT
Memilih Kolom Tertentu

SELECT Nama_Kolom1, Nama_Kolom2,


... FROM Nama_Tabel
:: SELECT
Mengurutkan Hasil Pemilihan

SELECT Nama_Kolom1, Nama_Kolom2,


... FROM Nama_Tabel ORDER BY
Kolom_acuan
:: SELECT
Mengurutkan Hasil Pemilihan Terbalik

SELECT Nama_Kolom1, Nama_Kolom2,


... FROM Nama_Tabel ORDER BY
Kolom_acuan DESC
:: SELECT
Menghitung Jumlah Rows

SELECT COUNT (*) FROM Nama_Tabel


:: SELECT
Memilih Row Tertentu

SELECT * FROM Nama_Tabel WHERE


Kondisi
:: SELECT
Mencari Record Dengan Awalan Tertentu

SELECT * FROM Nama_Tabel WHERE


Nama_Kolom LIKE ‘apa%’
:: SELECT
Mencari Record Dengan Akhiran Tertentu

SELECT * FROM Nama_Tabel WHERE


Nama_Kolom LIKE ‘%apa’
:: SELECT
Mencari Record Berisi Huruf/Angka
Tertentu
SELECT * FROM Nama_Tabel WHERE
Nama_Kolom LIKE ‘%apa%’
:: SELECT
Mencari Record Dengan Jumlah Huruf
Tertentu
SELECT * FROM Nama_Tabel WHERE
Nama_Kolom LIKE ‘_ _ _ _ _’
:: SELECT
Memilih Record Dari Beberapa Tabel

SELECT Nama_Tabel1.Nama_Kolom,
Nama_Tabel2.Nama_Kolom … FROM
Nama_Tabel1, Nama_Tabel2… WHERE
Kondisi

SELECT Nama_Kolom_Tabel1,
Nama_Kolom_Tabel2,… FROM Nama_Tabel1,
Nama_Tabel2… WHERE Kondisi
:: SELECT
Tabel mahasiswa

Tabel telepon

Bagaimana cara mengambil semua nomor


telepon dan nama pemiliknya ?
:: SELECT
:: UPDATE

UPDATE FROM Nama_Tabel SET


Nama_Kolom=‘Nilai’ WHERE Kondisi
:: DELETE

DELETE FROM Nama_Tabel WHERE


Kondisi
TUGAS 2
Buat Database Mahasiswa
Meliputi data (tabel biodata):
NIM, Tempat lahir, Tanggal lahir, Nama,
Alamat, Kode Pos, Kota

Lengkap dengan query:


1.Memasukkan data (8 Data)
2.Memilih nama & NIM
3.Memilih nama, alamat, kota, kode pos
4.Update alamat salah satu data
5.Tambah field telepon
6.Update data telepon semua data
NORMALISASI DATABASE
:: ALASAN

◼ Mengurangi duplikasi (redundancy)


data
◼ Perencanaan ke depan
◼ Efisiensi
◼ Kemudahan
:: CONTOH

◼ Mengurangi duplikasi (redundancy) data


◼ Ada kesalahan data berulang efek:
update sekian kali data
◼ Jika ada penggantian nama kategori,
ganti/update semua record
:: ISTILAH YANG DIGUNAKAN

◼ Entity

Identitas umum dari suatu informasi


:: ISTILAH YANG DIGUNAKAN

◼ Primary Key
Mengidentifikasi tiap row dalam
tabel.
:: ISTILAH YANG DIGUNAKAN

◼ Foreign Key
Dasar relasi 1:M antar dua tabel.
Bisa merupakan Primary Key tabel
lain.
:: ISTILAH YANG DIGUNAKAN

◼ Relationship

- One to One (1:1)


- One to Many (1:M)
- Many to Many (M:M)
:: ISTILAH YANG DIGUNAKAN

◼ Relationship: One To One


:: ISTILAH YANG DIGUNAKAN

◼ Relationship: One To Many


:: ISTILAH YANG DIGUNAKAN

◼ Relationship: Many To Many


:: ISTILAH YANG DIGUNAKAN

◼ Entity Relationship Diagram


- ERD 1:1
- ERD 1:M
- ERD M:M
:: ISTILAH YANG DIGUNAKAN

◼ ERD 1:1
:: ISTILAH YANG DIGUNAKAN

◼ ERD 1:M
:: ISTILAH YANG DIGUNAKAN

◼ ERD M:M
:: NORMALISASI

◼ Optimalisasi tabel dengan


analisa relasi entity
◼ Kemungkinan
pengembangan, terutama
struktur tabel dalam
database
:: NORMALISASI

◼ Redundancy
:: NORMALISASI

◼ Pengembangan Database
- Fleksibel
:: THE THREE NORMAL FORMS

◼ Terdapat redundancy data


◼ Tidak mudah mengikuti
perkembangan
◼ Tabel ini perlu
dinormalisasi
:: THE THREE NORMAL FORMS

◼ First Normal Forms (1NF)


Eliminasi kelompok data yang berulang
melalui pembuatan tabel terpisah dari
data-data yang berhubungan
:: THE THREE NORMAL FORMS

◼ Second Normal Forms (2NF)


Eliminasi data yang berulang
:: THE THREE NORMAL FORMS

◼ Third Normal Forms (3NF)


Mencari dan mengeliminasi semua
atribut tabel yang tidak tergantung
dengan Primary Key
norm_mhs

norm_jurusan

norm_mhs_kursus norm_kursus

norm_trainer

norm_trainer_kursus
kode_trainer Kode_kursus
TUGAS 3
Buat Database
Katalog Buku Perpustakaan
Ternormalisasi Sampai Bentuk Ketiga

Meliputi data:
Kode Buku, Jenis Buku, Judul Buku, Nama
Pengarang, Ringkasan, Status Buku, Jumlah

Lengkap dengan query:


- Membuat tabel
- Memasukkan data (4 data)
- Memilih buku berdasarkan:
- Jenis
- Pengarang
- Judul dan Pengarang
- Kata kunci tertentu

Anda mungkin juga menyukai