Tugas 10 : Desain Database
Nama : Robby Ulung Pambudi
NRP : 5025211042
Kelas : PPL A
Pengertian Database
Basis data (database) adalah kumpulan data yang terorganisir secara sistematis sehingga mudah diakses, dikelola, dan diperbarui. Ini mencakup data yang disimpan dalam tabel yang terdiri dari baris dan kolom, serta dikelola oleh Sistem Manajemen Basis Data (DBMS) seperti MySQL, PostgreSQL, Oracle, dan Microsoft SQL Server. DBMS memungkinkan pengguna untuk melakukan operasi seperti membuat, membaca, memperbarui, dan menghapus data dalam database.
Desain basis data melibatkan pengklasifikasian data dan identifikasi hubungan timbal balik antar elemen data, yang diatur dalam model data. Representasi teoretis dari struktur dan hubungan data ini disebut ontologi. Basis data yang dirancang dengan baik memfasilitasi pemeliharaan, meningkatkan konsistensi data, dan hemat biaya dalam hal ruang penyimpanan disk, serta mendukung operasi, analisis, dan pengambilan keputusan dalam organisasi.
Database Instagram (Aplikasi Social media Foto Sharing)
a. Desain
Desain Database tersebut saya buat dengan "https://dbdiagram.io/d/" sebagai berikut :
b. Implementasi SQL
Untuk mengimplementasikan Desain Database tersebut, saya menggunakan MySQL sebagi berikut :
Berikut merupakan penjelasan untuk setiap tabel, fitur(kolom), dan relasinya:
1. Tabel app_user:
- Digunakan untuk menyimpan informasi tentang pengguna aplikasi (user).
- Kolom ID adalah primary key (kunci utama) yang secara otomatis bertambah nilai (auto increment).
- first_name, last_name, profile_name adalah kolom-kolom yang menyimpan nama dan nama profil pengguna.
- signup_date adalah tanggal dan waktu saat pengguna mendaftar.
2. Tabel post_type:
- Mengelola jenis-jenis postingan yang dapat dibuat oleh pengguna.
- ID adalah primary key.
- post_type_name adalah nama dari jenis postingan.
3. Tabel filter:
- Berisi daftar filter yang dapat digunakan untuk postingan gambar atau video.
- ID adalah primary key.
- filter_name adalah nama dari filter.
- filter_details berisi informasi tambahan tentang filter tersebut.
4. Tabel post:
- Menyimpan detail postingan yang dibuat oleh pengguna.
- ID adalah primary key.
- created_by_user_id adalah foreign key yang menghubungkan postingan ke pengguna yang membuatnya (app_user).
- created_datetime adalah tanggal dan waktu ketika postingan dibuat.
- caption adalah teks atau deskripsi dari postingan.
- post_type_id adalah foreign key yang menghubungkan postingan ke jenis postingan (post_type).
5. Tabel post_media:
- Berisi media (gambar, video) yang terkait dengan suatu postingan.
- ID adalah primary key.
- post_id adalah foreign key yang menghubungkan media ke postingan (post).
- filter_id adalah foreign key yang menghubungkan media ke filter yang digunakan (filter).
- media_file, position, longitude, latitude adalah kolom-kolom yang menyimpan informasi media.
6. Tabel effect:
- Menyimpan daftar efek atau filter tambahan yang dapat diterapkan pada media.
- ID adalah primary key.
- effect_name adalah nama efek atau filter.
7. Tabel comment:
- Menyimpan komentar yang dibuat oleh pengguna pada suatu postingan.
- ID adalah primary key.
- created_by_user_id adalah foreign key yang menghubungkan komentar ke pengguna yang membuatnya (app_user).
- post_id adalah foreign key yang menghubungkan komentar ke postingan yang dikomentari (post).
- created_datetime adalah tanggal dan waktu ketika komentar dibuat.
- comment adalah teks dari komentar itu sendiri.
- comment_replied_to_id adalah foreign key yang menghubungkan komentar balasan ke komentar yang dikomentari (comment).
8. Tabel reaction:
- Menyimpan reaksi atau respons pengguna terhadap suatu postingan.
- user_id adalah foreign key yang menghubungkan reaksi ke pengguna yang memberikan reaksi (app_user).
- post_id adalah foreign key yang menghubungkan reaksi ke postingan yang diberi reaksi (post).
9. Tabel post_media_user_tag:
- Menyimpan informasi tentang tag pengguna pada media postingan.
- post_media_id adalah foreign key yang menghubungkan tag ke media postingan (post_media).
- user_id adalah foreign key yang menghubungkan tag ke pengguna yang ditandai (app_user).
- x_coordinate, y_coordinate adalah koordinat di mana pengguna ditandai pada media tersebut.
10. Tabel post_effect:
- Mengelola efek tambahan yang diterapkan pada media postingan.
- post_media_id adalah foreign key yang menghubungkan efek ke media postingan (post_media).
- effect_id adalah foreign key yang menghubungkan efek ke jenis efek yang diterapkan (effect).
11. Tabel follower:
- Menyimpan informasi tentang pengguna yang mengikuti pengguna lain di aplikasi.
- following_user_id adalah foreign key yang menghubungkan pengguna yang melakukan pengikut (app_user).
- followed_user_id adalah foreign key yang menghubungkan pengguna yang diikuti (app_user).
Komentar
Posting Komentar