fp-sisop-D03-2021

Soal

Rincian Final Project

📖 Sistem Database Sederhana 📖

Bagaimana Program Diakses

  • Program server berjalan sebagai daemon
  • Untuk bisa akses console database, perlu buka program client (kalau di linux seperti command mysql di bash)
  • Program client dan utama berinteraksi lewat socket
  • Program client bisa mengakses server dari mana aja

Directory Structure
Struktur repo

  • Penamaan dari program bebas
    struktur server contoh struktur server
  • Bagaimana struktur data saat tersimpan di dalam file tabel dibebaskan.

Bagaimana Database Digunakan

📗 Autentikasi

  • Ada username dan password tertentu untuk bisa akses database yang dia punya hak. Jika root (sudo) bisa akses semua database (tidak perlu didefinisikan secara rinci haknya, hanya dia bisa akses atau nggak). autentikasi

  • Username, password, dan hak akses db disimpan di suatu database juga, tapi tidak ada user yang bisa akses database tersebut kecuali mengakses menggunakan root.

  • User root sudah ada dari awal
    root

  • Menambahkan user (Hanya bisa dilakukan user root)
    tambahuser

📗 Authorisasi

  • Untuk dapat mengakses database yang dia punya permission dengan command. Pembuatan tabel dan semua DML butuh untuk mengakses database terlebih dahulu.
    autorasi
  • Yang bisa memberikan permission atas database untuk suatu user hanya root. grant
  • User hanya bisa mengakses database dimana dia diberi permission untuk database tersebut.

📗 Data Definition Language

  • Input penamaan database, tabel, dan kolom hanya angka dan huruf.

  • Semua user bisa membuat database, otomatis user tersebut memiliki permission untuk database tersebut. create syntax

  • Root dan user yang memiliki permission untuk suatu database untuk bisa membuat tabel untuk database tersebut, tentunya setelah mengakses database tersebut. Tipe data dari semua kolom adalah string atau integer. Jumlah kolom bebas. create table

  • Bisa melakukan DROP database, table (setelah mengakses database), dan kolom. Jika sasaran drop ada maka didrop, jika tidak ada maka biarkan.
    drop table

📗 Data Manipulation Language

  • INSERT Hanya bisa insert satu row per satu command. Insert sesuai dengan jumlah dan urutan kolom. insert

  • UPDATE Hanya bisa update satu kolom per satu command. update

  • DELETE Delete data yang ada di tabel. delete

  • SELECT
    select

  • WHERE Command UPDATE, SELECT, dan DELETE bisa dikombinasikan dengan WHERE. WHERE hanya untuk satu kondisi. Dan hanya ‘=’. combined

📗 Logging

  • Setiap command yang dipakai harus dilakukan logging ke suatu file dengan format. Jika yang eksekusi root, maka username root. log format

📗 Reliability

  • Harus membuat suatu program terpisah untuk dump database ke command-command yang akan di print ke layar. Untuk memasukkan ke file, gunakan redirection. Program ini tentunya harus melalui proses autentikasi terlebih dahulu. Ini sampai database level saja, tidak perlu sampai tabel.
    reliability

Contoh hasil isi file database1.backup:
contoh hasil backup

  • Program dump database dijalankan tiap jam untuk semua database dan log, lalu di zip sesuai timestamp, lalu log dikosongkan kembali.

📗 Tambahan

  • Kita bisa memasukkan command lewat file dengan redirection di program client. command

📗 Error Handling

  • Jika ada command yang tidak sesuai penggunaannya. Maka akan mengeluarkan pesan error tanpa keluar dari program client.

📗 Extra

  • Program client dan dump berkomunikasi dengan socket ke program utama dan tidak boleh langsung mengakses file-file di folder program utama.
  • Requirement disini adalah requirement minimum, jika Anda mengerjakan melebihi requirement disini, maka akan mendapat nilai tambah.
  • Terapkan apa saja yang sudah kalian pelajari di praktikum sistem operasi ini untuk mengerjakan final project.