HanungNP/Basis Data/Politel/2012
Bahasa Basis Data • Data Definition Language (DDL) • Interactive Data Manipulation Language (DML) • Transaction Control • Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc. • Authorization, untuk mendefinisikan hak akses spesifik terhadap objek-objek basis data. HanungNP/Basis Data/Politel/2012
Apa itu DDL & DML ? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :
• DDL - Data Definition Language merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database.
• DML - Data Manipulation Language merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
HanungNP/Basis Data/Politel/2012
DDL Seperti definisi yang telah dijelaskan di atas, DDL adalah kumpulan perintah SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus (drop) struktur dan definisi tipe data dari objek-objek database. Objek-objek database pada yang dimaksud - pada MySQL – adalah sbb: • Database • Table • View • Index • Procedure (Stored Procedure) • Function • Trigger
HanungNP/Basis Data/Politel/2012
Contoh • Perintah berikut akan membuat table pada database kita dengan nama "ms_karyawan" • CREATE TABLE ms_karyawan ( kode_cabang varchar(10) default NULL, kode_karyawan varchar(10) NOT NULL, nama_depan varchar(8) default NULL, nama_belakang varchar(9) default NULL, jenis_kelamin varchar(1) default NULL, ) HanungNP/Basis Data/Politel/2012
Daftar Perintah DDL pada MySQL (1)
• Pembuatan (CREATE) – CREATE DATABASE – CREATE FUNCTION – CREATE INDEX – CREATE PROCEDURE – CREATE TABLE – CREATE TRIGGER – CREATE VIEW HanungNP/Basis Data/Politel/2012
Daftar Perintah DDL pada MySQL (2)
Perubahan (ALTER & RENAME) • ALTER DATABASE • ALTER FUNCTION • ALTER PROCEDURE • ALTER TABLE • ALTER VIEW • RENAME TABLE
HanungNP/Basis Data/Politel/2012
Daftar Perintah DDL pada MySQL (3)
• Penghapusan (DROP) – DROP DATABASE – DROP FUNCTION – DROP INDEX – DROP PROCEDURE – DROP TABLE – DROP TRIGGER – DROP VIEW HanungNP/Basis Data/Politel/2012
Tipe-tipe Tabel MySQL • Salah satu kelebihan dari MySQL adalah Anda dapat mendefinisikan tipe untuk tiap tabel. MySQL mendukung beberapa tipe tabel, tergantung konfigurasi saat proses instalasi MySQL. MySQL memiliki 3 (tiga) tipe data utama, yaitu MyISAM, InnoDB dan HEAP.
HanungNP/Basis Data/Politel/2012
MyISAM • Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Jika kita akan menyimpan data sederhana yang tidak terlalu rumit, maka gunakanlah tipe tabel ini. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya
HanungNP/Basis Data/Politel/2012
InnoDB Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain: • a. Mendukung transaksi antar tabel. • b. Mendukung row-level-locking. • c. Mendukung Foreign-Key Constraints. • d. Crash recovery. HanungNP/Basis Data/Politel/2012
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.
HanungNP/Basis Data/Politel/2012
Tipe-tipe Field (Kolom) MySQL Tipe Numeric TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DOUBLE, REAL, DECIMAL, NUMERIC Tipe Date dan Time DATE, TIME, DATETIME, YEAR Tipe String (Text) CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT Tipe BLOB (Biner) BIT (sejak versi 5.0.3), TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB Tipe Data yang Lain ENUM, SET, HanungNP/Basis Data/Politel/2012
Implementasi DDL • Setiap mahasiswa dapat mempelajari banyak mata kuliah dan setiap mata kuliah dapat dipelajari oleh banyak mahasiswa. • Sebagai catatan penting adalah Penentuan derajat relasi tergantung dari aturan bisnis (business rule) yang ada ada di perusahaan/instansi.
HanungNP/Basis Data/Politel/2012
Model ERD
HanungNP/Basis Data/Politel/2012
Bentuk Tabel Tabel Mahasiswa NIM
NmMhs
Tgl_lhr
HanungNP/Basis Data/Politel/2012
Almt_Mhs
Bentuk Tabel Tabel Kuliah KdKul
NmKul
Sks
HanungNP/Basis Data/Politel/2012
Semester
Latihan 1 • Buatlah struktur tabel dengan sintax MySQL
HanungNP/Basis Data/Politel/2012
Model Class Diagram transaksi
HanungNP/Basis Data/Politel/2012
Primary key • Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key : • Lebih sering di jadikan acuan • Lebih ringkas • Jaminan keunikan key lebih baik
• Contoh dari primary key adalah Nim
HanungNP/Basis Data/Politel/2012
Contoh Primary Key • CREATE TABLE ms_karyawan ( kode_cabang varchar(10) default NULL, kode_karyawan varchar(10) NOT NULL, nama_depan varchar(8) default NULL, nama_belakang varchar(9) default NULL, jenis_kelamin varchar(1) default NULL, PRIMARY KEY (kode_karyawan) ) HanungNP/Basis Data/Politel/2012
Foreign Key • Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya.
HanungNP/Basis Data/Politel/2012
Contoh Foreign Key
HanungNP/Basis Data/Politel/2012
Sintax relasi • CREATE TABLE mhs ( nim CHAR(8) NOT NULL, nama VARCHAR(50) NOT NULL, alamat VARCHAR(60) NOT NULL, id_matkul CHAR(5), FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul) ); HanungNP/Basis Data/Politel/2012
Tabel Dosen Keterangan : PK = Kode Dosen;
Latihan 1 • Buatlah tabel berikut dalam format MySQL Tabel Dosen Kode
Nama
Telepon
JFA
Dosen
Keterangan : PK = Kode Dosen;
HanungNP/Basis Data/Politel/2012
Status
Latihan 2 Tabel Mata Kuliah
Kode
Nama
Mata
Mata
Kuliah
Kuliah
SKS
Semester
Keterangan : PK = Kode Mata Kuliah; FK = Kode Dosen
HanungNP/Basis Data/Politel/2012
Kode Dosen
• • • • •
Create table nama ( Id_nama INT auto_increment, Nama VARCHAR(20), Primary key(Id_nama) )
HanungNP/Basis Data/Politel/2012