Download Materi

Document related concepts
no text concepts found
Transcript
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
Column1
Row1
Row2
Column2
Field
Record
SQL
Data
:: 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
Baris/Row
no
1
2
Tabel_Buku_Alamat
nama
alamat
arief
solo
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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TINYINT
INT
MEDIUMINT
SMALLINT
INT
BIGINT
FLOAT
DOUBLE
DOUBLEPRECISION
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
Nama_Tabel WHERE Kondisi
FROM
:: 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
- Fleksibel
Database
:: 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