Materi 14 - Programming dan Data Science

Database dan Query Fundamental

Cara simpan, ambil, dan kelola data persistent. Relational vs NoSQL.

Durasi 30 Menit Level intermediate Kurikulum 30 Materi

1. Database Relational

Data terstruktur dalam tabel dengan baris dan kolom. Tabel saling terhubung lewat foreign key. Contoh: MySQL, PostgreSQL. Normalisasi mengurangi duplikasi data.

2. Database NoSQL

Untuk data tidak terstruktur atau semi-terstruktur. Tipe: document (MongoDB), key-value (Redis), wide-column (Cassandra), graph (Neo4j). Pilih sesuai use case.

3. Schema Design

Plan tabel sebelum bikin. Tentukan kolom, tipe data, relasi. Foreign key untuk integritas referensial. Index untuk performa query. Pikirkan dari awal, mahal mengubah di kemudian hari.

4. Indexing

Akselerasi query lookup. Tanpa index, database scan semua baris. Dengan index, langsung ke posisi. Tapi ada cost: storage tambahan dan slow write. Index kolom yang sering di-filter.

5. ORM vs Raw Query

ORM (Object Relational Mapper): productivity tinggi, code readable. Tapi bisa lambat untuk query kompleks. Raw query: kontrol penuh dan performa. Pakai ORM untuk 80% case, raw untuk hot path.

Tugas Praktik

  1. Setup PostgreSQL dan buat 3 tabel related
  2. Insert sample data dan praktek query
  3. Tambah index dan ukur performance gain
  4. Implementasi 5 query bisnis (top customer, dst)
  5. Bandingkan ORM (Sequelize atau SQLAlchemy) vs raw

Rangkuman