Sample Soal UTS PDL (IF4040)

Soal contoh UTS dari dosen (2 halaman). Disalin apa adanya dari _Materi/PDL/ppt-baru/1791441166170_IF4040_UTS_sample.pdf. Belum ada jawaban di file ini.

Deskripsi Soal Studi Kasus

Deskripsi berikut digunakan untuk semua soal di bawahnya.

Diketahui bagian dari model ER basis data sebuah aplikasi sosial media sebagai berikut. Nama-nama diasumsikan dapat dipahami dengan mudah.

Isi diagram (untuk memudahkan pencarian teks):

Entity setAtribut
Useremail (kunci), phone_number, name, gender, date_of_birth, city, country, address, job, { hobbies } (multivalued)
Postingposting_id (kunci), posting_type, ts_posting (komposit: date, time), IP, text_message
Mediaid_media (kunci), media_type, file_size, created_at
Image (ISA dari Media)resolution, dimension, color_space, camera_info
Video (ISA dari Media)resolution, frame_rate, codec, duration
PDF_File (ISA dari Media)title, author
RelationshipMenghubungkanCatatan di diagram
postUser dan PostingPosting berpartisipasi total (garis ganda); panah ke User
ownUser dan MediaMedia berpartisipasi total (garis ganda); panah ke User
followUser (followee) dan User (follower)Punya atribut ts_follow
replyPosting (replyee) dan Posting (replier)Relasi rekursif
containPosting dan Media-
ISA (disjoint)Media menjadi Image, Video, PDF_FileSpesialisasi disjoint

Beberapa informasi tambahan:

  • Alamat (address), hobi, dan pekerjaan (job) pengguna (user) boleh tidak diisi (fleksibel). Atribut lain terkait pengguna wajib diisi.
  • Atribut media_type di entity set Media bernilai: image, video, pdf file, dll. (dimungkinkan ada jenis lain).
  • Atribut posting_type adalah: normal dan reply (posting yang merupakan reply/tanggapan dari posting lain). Tidak diketahui ada jenis posting yang lain.

Beberapa informasi penting terkait query yang sering terjadi di aplikasi ini:

  1. Atribut user berikut sering diambil bersama-sama: email, name, phone_number, gender, date_of_birth, dan daftar followers dari user (email, nama). Data lain tidak sering ditampilkan bersamaan.
  2. Seluruh data dari berbagai jenis media sering ditampilkan bersama-sama, walaupun terdapat perbedaan atribut pada jenis media tertentu.
  3. Posting tertentu dari seorang pengguna ditampilkan bersama dengan semua media terkait (atribut standar: id_media, media_type, file_size, created_at) berikut semua posting_id dari reply terhadap posting tersebut.

Soal

Soal 1. Buatlah model basis data relasional (murni, bukan objek relasional) untuk persoalan di atas dan berikan penjelasan ringkas tentang reasoning desain Anda. Anda boleh (tidak harus) mengajukan model yang dioptimasi jika diperlukan, tetapi sertai dengan penjelasan dan asumsi yang lengkap.

Soal 2. Untuk setiap teknologi basis data NoSQL pada soal 2.a. s.d. 2.c. berikut: buatlah desain lojikal dari basis data untuk persoalan di atas dan berikan penjelasan ringkas tentang reasoning desain Anda. Tuliskan tambahan asumsi jika ada.

  • a) Model berbasis dokumen. Tambahkan penjelasan penggunaan strategi embedding dan/atau referencing.
  • b) Model berbasis column-family. Jika tidak memberikan keterangan apa pun, diasumsikan Anda menggunakan pendekatan Big-Table-like seperti materi kuliah. Jika Anda ingin menggunakan pendekatan lain (misalnya Cassandra-like atau columnar murni), berikan penjelasan selengkapnya.
  • c) Model berbasis graf.

Soal 3. Berikan 1 (satu) contoh use case penggunaan basis data key-value berdasarkan persoalan di atas.

Soal 4. Anda diminta untuk melakukan transfer data hasil dari query no. 3 dalam bentuk XML.

  • a) Buatlah desain XML Schema atau DTD (pilih salah satu saja) untuk keperluan tersebut.
  • b) Berdasarkan desain XML 4.a, tuliskan XQuery untuk mendapatkan data posting dari pengguna dengan email fazat@informatika.org.

Materi yang Diuji (Peta ke Catatan)

SoalTopikCatatan terkait
1ER ke relasional (termasuk ISA, multivalued, relasi rekursif)13_ER_Modeling, 14_Relational_Data_Model
2aDesain document database: embedding vs referencing17_Document_Database
2bDesain column family (Big-Table-like)18_Column_Family_Database
2cDesain graph database19_Graph_Database
3Use case key-value16_Key_Value_Database, 21_Choosing_a_Database
4aXML Schema / DTD20_XML_Database
4bXQuery (FLWOR)20_XML_Database