Dokumen 4: MySQL - Database
Management System Relational
Pendahuluan
MySQL adalah sistem manajemen database relational (RDBMS) open-source yang paling
populer di dunia. Dikembangkan oleh MySQL AB dan sekarang dimiliki oleh Oracle Corporation,
MySQL digunakan oleh jutaan aplikasi web dan perusahaan besar.
Apa itu MySQL?
MySQL adalah database management system yang menggunakan Structured Query Language
(SQL) untuk mengakses dan mengelola data. MySQL menyimpan data dalam format tabular
(baris dan kolom) dan menggunakan relasi antar tabel.
Keunggulan MySQL
1. Open Source
MySQL tersedia secara gratis dengan lisensi GPL, meskipun ada juga versi enterprise
berbayar.
2. Performa Tinggi
MySQL dioptimalkan untuk kecepatan, terutama untuk operasi read-heavy.
3. Skalabilitas
MySQL dapat handle database dari yang kecil hingga sangat besar dengan jutaan records.
4. Keamanan
MySQL menyediakan sistem privilege dan password yang robust untuk keamanan data.
5. Cross-Platform
MySQL dapat berjalan di berbagai sistem operasi termasuk Windows, Linux, macOS, dan Unix.
6. Dukungan Komunitas
MySQL memiliki komunitas yang besar dan dokumentasi yang lengkap.
Konsep Dasar Database
Database
Kumpulan data yang terorganisir dan dapat diakses secara elektronik.
Table
Struktur yang menyimpan data dalam format rows dan columns.
Row (Record)
Satu entry data dalam table.
Column (Field)
Satu atribut atau properti dari data.
Primary Key
Column atau kombinasi columns yang uniquely identify setiap row dalam table.
Foreign Key
Column yang mereferensikan primary key di table lain, menciptakan relationship antar tables.
Tipe Data MySQL
Numeric Types
● INT: Integer numbers
● BIGINT: Large integers
● DECIMAL: Fixed-point numbers
● FLOAT, DOUBLE: Floating-point numbers
String Types
● CHAR: Fixed-length string
● VARCHAR: Variable-length string
● TEXT: Large text data
● ENUM: Enumeration
Date dan Time Types
● DATE: Date (YYYY-MM-DD)
● TIME: Time (HH:MM:SS)
● DATETIME: Date and time
● TIMESTAMP: Timestamp
● YEAR: Year
Binary Types
● BLOB: Binary large object
● BINARY: Fixed-length binary
SQL Commands
DDL (Data Definition Language)
Commands untuk mendefinisikan struktur database:
● CREATE: Membuat database atau table
● ALTER: Mengubah struktur table
● DROP: Menghapus database atau table
● TRUNCATE: Menghapus semua data dalam table
DML (Data Manipulation Language)
Commands untuk manipulasi data:
● INSERT: Menambah data baru
● UPDATE: Mengubah data existing
● DELETE: Menghapus data
DQL (Data Query Language)
● SELECT: Mengambil data dari database
DCL (Data Control Language)
● GRANT: Memberikan privileges
● REVOKE: Mencabut privileges
TCL (Transaction Control Language)
● COMMIT: Menyimpan perubahan
● ROLLBACK: Membatalkan perubahan
● SAVEPOINT: Set savepoint dalam transaction
Query Dasar
SELECT Statement
Digunakan untuk mengambil data dari table dengan berbagai klausa:
● WHERE: Filtering data
● ORDER BY: Sorting results
● GROUP BY: Grouping data
● HAVING: Filtering grouped data
● LIMIT: Membatasi jumlah results
JOIN Operations
Menggabungkan data dari multiple tables:
● INNER JOIN: Records yang match di kedua tables
● LEFT JOIN: Semua records dari left table
● RIGHT JOIN: Semua records dari right table
● FULL OUTER JOIN: Semua records dari kedua tables
● CROSS JOIN: Cartesian product
Indexes
Index meningkatkan kecepatan query dengan membuat struktur data tambahan. Types:
● Primary Index: Automatically created untuk primary key
● Unique Index: Ensures uniqueness
● Composite Index: Index pada multiple columns
● Full-text Index: Untuk text searching
Normalization
Proses organizing data untuk mengurangi redundancy:
1NF (First Normal Form)
● Setiap column berisi atomic values
● Tidak ada repeating groups
2NF (Second Normal Form)
● Memenuhi 1NF
● Tidak ada partial dependency
3NF (Third Normal Form)
● Memenuhi 2NF
● Tidak ada transitive dependency
Transactions
Transaction adalah unit of work yang terdiri dari satu atau lebih operasi database. Properties
(ACID):
● Atomicity: All or nothing
● Consistency: Database tetap consistent
● Isolation: Transactions tidak saling interference
● Durability: Changes are permanent
Stored Procedures dan Functions
Stored Procedures
Set of SQL statements yang disimpan dan dapat dieksekusi dengan call statement.
Functions
Similar dengan stored procedures tapi return value dan dapat digunakan dalam expressions.
Triggers
SQL code yang automatically execute ketika certain events occur pada table.
Views
View adalah virtual table yang berisi result dari query. Views tidak menyimpan data tetapi
menampilkan data dari tables lain.
Security
Aspek keamanan MySQL:
● User Management: Create dan manage users
● Privileges: Assign specific permissions
● Encryption: Encrypt data in transit dan at rest
● SQL Injection Prevention: Use prepared statements
● Regular Backups: Backup data secara regular
Performance Optimization
Query Optimization
● Use indexes effectively
● Avoid SELECT *
● Use appropriate JOIN types
● Optimize WHERE clauses
Database Configuration
● Configure buffer pool size
● Tune query cache
● Optimize table design
Monitoring
● Monitor slow queries
● Check index usage
● Track resource utilization
Backup dan Recovery
Backup Methods
● Logical Backup: mysqldump
● Physical Backup: Copy data files
● Binary Log: Point-in-time recovery
Recovery Strategies
● Full recovery dari backup
● Incremental recovery using binary logs
● Point-in-time recovery
MySQL dengan PHP
MySQL sering digunakan bersama PHP untuk web applications. Connection methods:
● MySQLi: MySQL Improved Extension
● PDO: PHP Data Objects
Kesimpulan
MySQL adalah database management system yang reliable, scalable, dan powerful. Dengan
features yang comprehensive dan performa yang excellent, MySQL tetap menjadi pilihan utama
untuk berbagai aplikasi, dari website personal hingga enterprise applications. Pemahaman yang
baik tentang MySQL adalah skill yang valuable untuk setiap developer.