Download pertemuan 2

Document related concepts
no text concepts found
Transcript
Basis data
• Basis data (atau database) adalah kumpulan
informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa
menggunakan suatu program komputer untuk
memperoleh informasi dari basis data
tersebut
DBMS
• DBMS (Database Management System)
merupakan suatu sistemperangkat lunak yang
memungkinkan user (pengguna) untuk
membuat,memelihara, mengontrol, dan
mengakses database secara praktis dan
efisien.
RDBMS
• RDBMS atau Relationship Database
Management System merupakan salah satu
jenis DBMS yang mendukung adanya
relationship atau hubungan antar tabel. Di
samping RDBMS, terdapat jenis DBMS lain,
misalnya Hierarchy DBMS, Object Oriented
DBMS, dsb.
Perangkat lunak DBMS
• DB2 - http://www-306.ibm.com/software/data/db2/
• Microsoft SQL Server http://www.microsoft.com/sqlOracle http://www.oracle.com
• Sybase - http://www.sybase.com/
• Interbase - http://www.borland.com/interbase
• Teradata - http://www.teradata.com/
• Firebird - http://www.firebirdsql.org/
• MySQL – http://www.mysql.com
• PostgreSQL - http://www.postgresql.org/
Istilah Database
• Table Sebuah tabel merupakan kumpulan data
(nilai) yang diorganisasikan ke dalam baris
(record) dan kolom (field). Masing-masing
kolom memiliki nama yang spesifik dan unik.
• Field Field merupakan kolom dari sebuah
table. Field memiliki ukuran type data tertentu
yang menentukan bagaimana data nantinya
tersimpan.
Istilah Database
• Record Field merupakan sebuah kumpulan
nilai yang saling terkait.
• Key Key merupakan suatu field yang dapat
dijadikan kunci dalam operasi tabel. Dalam
konsep database, key memiliki banyak jenis
diantaranya Primary Key, Foreign Key,
Composite Key, dll.
Istilah Database
• SQL SQL atau Structured Query Language
merupakan suatu bahasa (language) yang
digunakan untuk mengakses database. SQL
sering disebut juga sebagai query.
Hierarki Database
Fitur-fitur MySQL
• Relational Database System. Seperti halnya software
database lain yang ada di pasaran, MySQL termasuk
RDBMS.
• Arsitektur Client-Server. MySQL memiliki arsitektur clientserver dimana server database MySQL terinstal di server.
Client MySQL dapat berada di komputer yang sama dengan
server, dan dapat juga di komputer lain yang berkomunikasi
dengan server melalui jaringan bahkan internet.
• Mengenal perintah SQL standar. SQL (Structured Query
Language) merupakan suatu bahasa standar yang berlaku
di hampir semua software database. MySQL mendukung
SQL versi SQL:2003.
Fitur-fitur MySQL
• Mendukung Sub Select. Mulai versi 4.1 MySQL
telah mendukung select dalam select (sub
select).
• Mendukung Views. MySQL mendukung views
sejak versi 5.0
• Mendukung Stored Prosedured (SP). MySQL
mendukung SP sejak versi 5.0
• Mendukung Triggers. MySQL mendukung trigger
pada versi 5.0 namun masih terbatas.
Pengembang MySQL berjanji akan meningkatkan
kemampuan trigger pada versi 5.1.
Fitur-fitur MySQL
•
•
•
•
•
•
•
•
•
•
Mendukung replication.
Mendukung transaksi.
Mendukung foreign key.
Tersedia fungsi GIS.
Free (bebas didownload)
Stabil dan tangguh
Fleksibel dengan berbagai pemrograman
Security yang baik
Dukungan dari banyak komunitas
Perkembangan software yang cukup cepat.
Merancang Database
Tipe-tipe Tabel MySQL
• MyISAM,
• InnoDB dan
• HEAP
MyISAM
• Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil
dan mudah digunakan.
1.
2.
3.
MyISAM static. Jenis ini digunakan ketika semua kolom dalam tabel
didefinisikan dengan ukuran yang pasti (fixed). Dengan kata lain,
tidak ada kolom yang memiliki tipe seperti VARCHAR, TEXT dan
BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat,
aman dan stabil.
MyISAM dymanic. Jenis ini digunakan ketika terdapat kolom dengan
tipe yang dinamis, seperti tipe kolom VARCHAR. Keuntungan utama
dari jenis iniadalah ukuran yang dinamis. Jadi sifatnya lebih efektif
karena ukuran data (file) menyesuaikan isi dari masing-masing kolom
(field).
MyISAM Compressed. Kedua jenis MyISAM, static dan dynamic
dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed
dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari segi
ukuran. Tabel yang terkompresi tidak dapat dikenakan operasi
seperti INSERT, UPDATE danDELETE.
InnoDB
• Tipe tabel InnoDB merupakan tipe tabel
MySQL yang mendukung proses transaksi.
Tipe ini memiliki beberapa keunggulan, antara
lain:
a.
b.
c.
d.
Mendukung transaksi antar tabel.
Mendukung row-level-locking.
Mendukung Foreign-Key Constraints.
Crash recovery.
HEAP
• Tabel dengan tipe HEAP tidak menyimpan
datanya di hardisk, tetapi menyimpan di RAM
(memori). Tipe tabel ini biasanya digunakan
sebagai tabel sementara (temporary). Tabel
secara otomatis akan dihapus (hilang) dari
MySQL saat koneksi ke server diputus atau
server MySQL dimatikan.
Tipe Tabel yang Lain
a. BDB. Tipe tabel ini mirip tipe tabel InnoDB, namun
penggunaannya belum maksimal.
b. Archieve. Tipe ini tersedia sejak MySQL versi 4.1. Tipe ini
digunakan untuk menyimpan tabel yang terkompresi,
dimana biasanya digunakan dalam proses backup.
c. CSV. Tipe ini digunakan untuk menyimpan data dalam
bentuk file text yang dibatasi dengan koma (delimiter).
Tipe ini tersedia sejak MySQL versi 4.1.
d. NDB Table (MySQL Cluster). Tersedia sejak MySQL versi
4.1.
e. Federated (External Tables). Tipe ini tersedia sejak MySQL
versi 5.0.
Tipe-tipe Field (Kolom) MySQL
•
•
•
•
numerik,
string,
date-and time,
Kelompok himpunan (set dan enum)
Merancang Database yang Baik
1. Tabel dalam database tidak boleh mengandung record
(data) ganda, atau dengan kata lain tidak boleh ada
redudancy data. Jika terdapat data yang sama, maka perlu
dilihat kembali rancangan tabelnya.
2. Setiap tabel dalam database, harus memiliki field (kolom)
yang unik. Field ini disebut sebagai Primary Key.
3. Tabel harus sudah normal.
4. Besar atau ukuran database hendaknya dibuat seminimal
mungkin. Hal ini ditentukan oleh pemilihan tipe data yang
tepat.
5. Merancang database hendaknya memperhatikan apakah
rancangan dapat menampung data (record) sesuai yang
dibutuhkan oleh aplikasi.
Tips Penamaan Identifier
• Penamaan identifier (database, tabel, kolom) di MySQL
bersifat case-sensitive. Penamaan identifier hendaknya
konsisten untuk semua tabel dalamsuatu database.
Kita dapat menggunakan model lower-case, UPPERCASE, camelCase dll.
• Nama database, tabel dan kolom maksimal 64 karakter.
• Hindari penggunaan karakter khusus, seperti üàû,
karena bisa bermasalah dalam sistem operasi yang lain.
• Pilih nama untuk field (kolom) yang mencerminkan isi
dari data yang disimpan.
SQL
• Sql (Structured Query Language) juga sering
disebut sebagai query merupakan suatu
bahasa (language) yang digunakan untuk
mengakses database
Terdapat tiga jenis perintah SQL
1. DDL ( Data Definition Language) merupakan
perintah SQL yang berhubungan dengan
pendefinisian suatu struktur database, dalam
hal ini database dan table.
–
–
–
–
CREATE
ALTER
RENAME
DROP
2. DML (Data Manipulation Language)
merupakan perintah SQL yang berhubungan
dengan manipulasi atau pengolahan data
atau record dalam table.
–
–
–
–
SELECT
INSERT
UPDATE
DELETE
3. DCL (Data Control Language) merupakan
perintah SQL yang berhubungan dengan
manipulasi user dan hak akses (priviledges).
– GRANT
– REVOKE
Mengakses MySQL dari DOS
Prompt/Command Line
SHOW DATABASES;
Untuk keluar dari sistem MySQL, ketikkan
perintah “\q;” atau klik pada tombol close
Dasar-Dasar MySQL
Ketentuan Memberikan Perintah
• Perintah dalam MySQL mengenal case insensitive, perintah dapat ditulis dengan
huruf besar (uppercase), ataupun dengan huruf kecil (lowercase).
• Setiap perintah diakhiri dengan ; (tanda titik koma) atau dengan memberikan
perintah \g diakhir perintah
• Perintah dapat berupa perintah SQL atau perintah khusus MySQL
• Jika Prompt mysql> berganti dengan -> berarti prompt tersebut menunggu
kelengkapan perintah dari baris sebelumnya atau menunggu diberikan tanda ;
atau \g. Contoh : Perhatikan perintah dibawah ini ditulis tanpa tanda titik-koma
";".
mysql> create database latihan1
->
• Sistem MySQL akan menampilkan tanda panah '->' yang menyatakan bahwa
perintah MySQL tersebut dianggap belum selesai (karena belum diakhiri dengan
tanda titikkoma ';'). Sekarang kita lengkapi perintah sebelumnya dengan tanda
titik-koma ';'
mysql> create database latihan1
-> ;
Query OK, 1 row affected (0.02 sec)
Tipe Data pada MySQL
Misalnya Create Table. Pada tipe-tipe data tersebut terdapat
beberapa atribut yang memiliki arti sebagai berikut:
• M, menunjukkan lebar karakter maksimum. Nilai M
maksimum adalah 255.
• D, menunjukkan jumlah angka di belakang koma. Nilai
maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu
tidak boleh lebih besar daripada M-2.
• Atribut yang diberi tanda [ dan ] berarti pemakaiannya
adalah optional.
• Jika atribut ZEROFILL disertakan, MySQL akan otomatis
menambahkan atribut UNSIGNED.
• UNSIGNED adalah bilangan tanpa tanda di depannya
(misalnya tanda negatif).
Tugas Mandiri(1)
•
•
•
•
•
•
•
•
•
•
•
•
•
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
INT[(M)] [UNSIGNED] [ZEROFILL]
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
FLOAT(precision) [ZEROFILL]
FLOAT[(M,D)] [ZEROFILL]
DOUBLE[(M,D)] [ZEROFILL]
DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
DECIMAL[(M[,D])] [ZEROFILL]
NUMERIC(M,D) [ZEROFILL]
DATE
Tugas Mandiri(2)
•
•
•
•
•
•
•
•
•
•
•
•
DATETIME
TIMESTAMP[(M)]
TIME
YEAR[(2|4)]
CHAR(M) [BINARY]
VARCHAR(M) [BINARY]
TINYBLOB dan TINYTEXT
BLOB dan TEXT
MEDIUMBLOB dan MEDIUMTEXT
LONGBLOB dan LONGTEXT
ENUM('value1','value2',...)
SET('value1','value2',...)
Melihat User dan Versi MySQL
Melihat Tanggal dan Waktu
Mysql>select curdate();
Mysql>select curtime();
Mysql>select now();
MySQL Sebagai Kalkulator
Membuat Database Baru
Menghapus Database
Memilih dan Membuka Sebuah
Database
Melihat Isi Sebuah Database
Membuat Tabel Baru
• Kolom pertama adalah NOPEG dengan jenis data bilangan bulat (INTeger),
tanpa tanda negatif (UNSIGNED), yang akan bertambah nilainya secara
otomatis (AUTO_INCREMENT), kolom NOPEG adalah kolom utama (PRIMARY
KEY).
• Pada kolom kedua, NAMA akan menampung nama karyawan, dengan jenis
data VARiabel CHARacter, lebar datanya dapat menampung maksimal 50
karakter, dan tidak boleh dikosongkan (NOT NULL). Kurang lebih seperti itulah
ceritanya.. :)
Melihat Struktur Tabel
Menghapus Tabel
Constraint
• NOT NULL Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak
boleh berisi nilai NULL. Kolom yang befungsi sebagai kunci primer (primary
key) otomatis tidak boleh NULL.
• UNIQUE Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara
satu data dengan data lainnya namanya tidak boleh sama, misal alamat email.
• Constraint PRIMARY KEY membentuk key yang unik untuk suatu tabel.
• FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu
table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu
PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel.
Tugas(3)
Buat Database dengan nama dbmysql. Pilih dan buka database tersebut. Buat
tabel dengan nama peserta untuk menyimpan data peserta meliputi :
nomor, nama, email, alamat, kota.
Mengubah Struktur Sebuah Tabel
•
•
•
•
•
Penambahan kolom (ADD)
Pengubahan lebar dan jenis kolom (MODIFY)
Penghapusan kolom dan indeks (DROP)
Penggantian nama kolom (CHANGE)
Penggantian nama tabel (RENAME)
ALTER TABLE
Perintah MODIFY
Dalam pengubahan kolom ini sebaiknya 'sifat-sifat' kolom yang asli tetap ditulis ulang.
Misal bila kolom nopeg memiliki sifat 'auto_increment', maka selama sifat itu tetap
dipertahankan, maka dia (auto_increment ) harus ditulis ulang.
Mengisi data ke dalam tabel
Melihat Data Pada Tabel
Tambahkan kolom gaji
Meng-Update Data Pada Tabel
Pemasukan Data Secara Masal
Perhatikan di atas bahwa digunakan 2 garis miring (\\) sebagai pembatas nama
direktori, bukannya tunggal (\). Ini karena tanda '\' dianggap sebagai karakter
khusus oleh MySQL (disebut sebagai Escape Character).
Tugas(3)
• Buka database dbmysql yang telah Anda buat.
Kemudian buka struktur tabel peserta.
• Ganti field nomor dengan idPeserta, tipe data
sama
• Ganti lebar data field email menjadi 50
• Tambahkan field tempatlhr dan tgllhr
• Isikan data pada table tersebut, minimal 10
data.
Operator Pembanding
Operator Logika
Fungsi Statistik Dasar
Tugas (4)
1. Buka tabel peserta.
• Tambahkan field jnsKursus varchar (30) Not Null dan field Biaya INT(12) NOT
NULL default 0
• Isikan jnsKursus dan Biaya pada masing-masing record
2. Tampilkan seluruh data peserta dimana tanggal lahirnya sebelum 01 Januari 1985
urut berdasarkan nama
3. Tampilkan seluruh data peserta yang berasal dari kota Solo dan jenis kursus yang
diambil adalah Aplikasi Perkantoran.
4. Tampilkan data peserta yang mengambil jenis kursus Aplikasi Perkantoran atau
Multimedia dan berasal dari kota Solo
5. Tampilkan berapa jumlah peserta yang mengambil kursus aplikasi perkantoran
6. Tampilkan total pendapatan yang diterima dari biaya kursus
Operator Precedence
Operator LIKE
Operator REGEXP (singkatan dari
REGular EXPressions)
Tugas(5)
1. Buka tabel peserta.
2. Tampilkan nama peserta yang diawalai
dengan huruf A
3. Tampilkan nama peserta yang diawali dengan
huruf A dan diakhiri dengan huruf i
4. Tampilkan nama peserta yang berawalan d –
g dan panjang karakternya 10