Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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