Nama
: Faris Febrianto
NIM
: 135150201111221
Mata Kuliah : Sistem Basis Data Kelas C Dosen
: Satrio Agung Wicaksono, S.Kom, M.Kom Ramakrishnan - Database Management Systems 3rd Edition Page 23-24
Exercise 1.1 Why would you choose a database system instead of simply storing data in operating system files? When would it make sense not to use a database system? Jawaban Karena dengan menggunakan DBMS memiliki beberapa keuntungan dibandingkan hanya sekedar menyimpan data dalam OS. Keuntungan tersebut antara lain: 1. Mengurangi waktu pengembangan aplikasi. DBMS menyediakan beberapa fungsi penting yang dibutuhkan oleh banyak aplikasi, seperti concurrency control dan crash recovery, fasilitas high level query dan lain-lain. 2. Data administration. Sebuah DBMS memfasilitasi pemeliharaan dan bertugas mengadministrasi data. Seorang DBA yang baik bisa melakukan tugas mengatur penyajian data, membackup data secara periodik dll. 3. Data independence dan efficient access. Program aplikasi database bergantung pada detail dari penyajian data dan penyimpanan. Skema conceptual dan external menyediakan independensi dari physical storage decision dan logical design decision dengan baik. DBMS juga menyediakan kemampuan mengefisiensi mekanisme penerimaan dan penyimpanan data, termasuk mendukung file yang sangat besar, struktur index dan pengoptimalan query. 4. Concurrent access dan crash recovery. DBMS menjalankan beberapa transaksi yang bisa diinterupt untuk menjaga performance agar tetap baik, tetapi menjadwal hal itu dalam beberapa hal untuk memastikan tidak ada operasi yang konflik yang diproses secara bersamaan. DBMS menjaga log dari perubahan data, dan jika terjadi system crash, database bisa di restore ke waktu transaksi yang konsisten. 5. Data integrity dan security. DBMS memberikan mekanisme akses control yang sangat baik dan proses update data bisa dideteksi dan ditolak oleh DBMS jika user tertentu memiliki batas hak akses untuk melakukannya.
Saat seseorang tidak memerlukan keuntungan diatas, lebih baik menggunakan penyimpanan data dalam OS karena alasan biaya terus meningkat dan pengeluaran tambahan untuk membeli dan memelihara DBMS. Exercise 1.2 What is logical data independence and why is it important? Jawaban Logical data independence berarti melindungi user untuk mengubah struktur logical data, contohnya merubah pilihan relasi yang akan disimpan. Mengapa sangat penting, karena misal jika relasi mahasiswa(NIM, nama, dan IPK) diganti menjadi mhsNama(NIM, nama) dan mhsIPK(NIM, IPK) karena suatu alasan, maka program aplikasi yang menjalankan relasi Mahasiswa bisa diproteksi dari pengubahan ini, yang bisa dilakukan hanyalah menambahkan jumlah mahasiwa yang akan disimpan. Exercise 1.3 Explain the difference between logical and physical data independence. Jawaban Logical data independence yaitu mencegah struktur logical data dari perubahan user, sedangkan physical data independence mengisolasi user dari mengubah data didalam physical storage. Kita bisa melihat contoh dari logical data independence dalam jawaban exercise 1.2. Anggap relasi mahasiswa dari contoh (dan sekarang asumsikan hal tersebut tidak lagi digantikan oleh dua relasi yang lebih kecil). Kita akan memilih menyimpan data mahasiswa dalam file heap, dengan index yang dicluster dalam field yang sama. Alternatifnya, kita bisa menyimpannya dalam index di gpa field, atau membuat index pada kedua field, atau menyimpan dalam file yang diurutkan gpa. Alternatif penyimpanan ini tidak dapat terlihat oleh user, kecuali dengan tujuan untuk meningkatkan performance, sejak awal semua terlihat secara sederhana, hubungan relasi sebagai kumpulan data. Inilah yang disebut dengan physical data independence. Exercise 1.4 Explain the difference between external, internal, and conceptual schemas. How are these different schema layers related to the concepts of logical and physical data independence? Jawaban Skema external mengijinkan akses data bisa dikustomisasi pada level individual user atau group user.
Skema internal menjelaskan gambaran hubungan dalam skema conseptual sebenarnya disimpan dalam disk (atau media lain). Skema conceptual mendeskripsikan semua data sebenarnya disimpan didalam database. Sedangkan pada prakteknya banyak macam DBMS yang digunakan, sebenarnya didalamnya hanya terdapat satu skema conceptual untuk semua user. Skema External memberikan data logical data independence, sedangkan skema conceptual menyediakan physical data independence. Exercise 1.5 What are the responsibilities of a DBA? If we assume that the DBA is never interested in running his or her own queries, does the DBA still need to understand query optimization? Why? Jawaban Tanggung jawab seorang DBA untuk: 1. Mendesign skema logical, physical, dan external. 2. Security dan pemberian hak akses. 3. Data availability dan recovery dari kerusakan. 4. Database tuning, DBA bertanggung jawab untuk mengembangkan database, terutama pada skema conceptual dan physical, untuk memastikan kecepatan yang sama sesuai perubahan kebutuhan user. Seorang DBA perlu memahami optimization bahkan jika dia tidak tertarik untuk menjalankan querynya sendiri karena beberapa dari tanggung jawab ini memiliki hubungan dalam query optimization. Terkecuali DBA mengerti kebutuhan performa dari sekian banyak query yang digunakan, dan bagaimana DBMS akan mengoptimalkan dan menjalankan query ini, maka keputusan mendesign dan tuning yang baik tidak bisa dibuat. Exercise 1.6 Scrooge McNugget wants to store information(names, addresses, descriptions of embarrassing moments, etc.) about the many ducks on his payroll. Not surprisingly, the volume of data compels him to buy a database system. To save money, he wants to buy one with the fewest possible features, and he plans to run it as a stand-alone application on his PC clone. Of course, Scrooge does not plan to share his list with anyone. Indicate which of the following DBMS features Scrooge should pay for; in each case, also indicate why Scrooge should (or should not) pay for that feature in the system he buys. 1. A security facility.
2. 3. 4. 5.
Concurrency control. Crash recovery. A view mechanism. A query language.
Jawaban 1. Fasilitas security sangat diperlukan karena Scrooge tidak berniat membagi daftarnya kepada siapapun. Meskipun dia menjalankannya dalam PC, pesaing usahanya bisa saja masuk kedalamnya dan mencoba untuk mengubah databasenya. Database security bisa menggagalkan penyusup. 2. Concurrency control tidak diperlukan karena yang digunakan hanyalah database. 3. Crash recovery sangat penting untuk semua hal, Scrooge tidak ingin kehilangan data saat storage system rusak maupun saat listrik mati saat dia menggunakannya. 4. Mekanisme view sangat dibutuhkan. Scrooge bisa menggunakannya untuk mengembangkan “custom screen” yang dengan mudah dilakukan tanpa menulis query berulang-ulang. 5. Query language juga dibutuhkan sejak Scrooge harus bisa menganalisa detail dari kliennya. Dalam hal lain, query language juga digunakan untuk menentukan gambaran apa yang akan digunakan. Exercise 1.7 Which of the following plays an important role in representing information about the real world in a database? Explain briefly. 1. The data definition language. 2. The data manipulation language. 3. The buffer manager. 4. The data model. Jawaban 1. Data definition language memiliki peranan untuk menggambarkan informasi karena digunakan untuk mendeskripsikan bagan external dan skema secara tidak langsung. 2. Data manipulation language digunakan untuk mengakses dan mengupdate data bukan untuk menggambarkan data. 3. Buffer manager tidak terlalu penting untuk dijabarkan karena hanya mengatur data dari disk kedalam memory utama secara dinamis, berdiri sendiri dari semua data representation.
4. Data model merupakan pokok untuk menggambarkan informasi. Data model menentukan mekanisme data representation apa yang didukung oleh DBMS. Data definition language hanyalah konstruksi set khusus bahasa yang tersedia untuk mendeskripsikan data aplikasi sebenarnya pada syarat data model. Exercise 1.8 Describe the structure of a DBMS. If your operating system is upgraded to support some new functions on as files (e.g., the ability to force some sequence of bytes to disk), which layer(s) of the DBMS would you have to rewrite to take advantage of these new functions? Jawaban : Arsitektur yang berhubungan dengan DBMS sebenarnya terdiri dari layer yang mengatur space dalam disk, layer yang mengatur ketersediaan memory dan membawa disk pages kedalam memory jika dibutuhkan, layer yang mendukung abstraksi files dan struktur index, layer yang mengimplementasikan hubungan operator, dan layer yang menguraikan dan memaksimalkan query dan menghasilkan rencana eksekusi dalam aturanhubungan operator. Sebagai tambahan, disitu juga ada dukungan untuk concurrency control dan recovery, yang masing-masing berinteraksi dengan buffer management dan metode akses layer. Layer managemen disk space yang harus ditulis ulang supaya bisa mendapatkan keuntungan fungsi baru pada file OS. Dalam hal ini layer managemen buffer juga terpengaruh. Exercise 1.9 Answer the following questions: 1. What is a transaction? 2. Why does a DBMS interleave the actions of different transactions instead of executing transactions one after the other? 3. What must a user guarantee with respect to a transaction and database consistency? What should a DBMS guarantee with respect to concurrent execution of several trans-actions and database consistency? 4. Explain the strict two-phase locking protocol. 5. What is the WAL property, and why is it important? Jawaban: 1. Transaksi adalah semua perintah yang dijalankan dari user program didalam DBMS yang merupakan bagian dasar dalam DBMS. 2. Suatu DBMS biasanya dishare untuk banyak user. Transaksi dari banyak user ini bisa disisipi untuk meningkatkan waktu eksekusi query user. Dengan menginterupsi query, user tidak perlu menunggu transaksi user lain selesai untuk memulai transaksinya sendiri. Tanpa penyisipan atau
interupsi, jika user X memulai transaksi dan selesai 10 detik, dan user Y ingin juga memulai transaksi, user Y harus menunggu user X selesai terlebih dahulu sebelum database memproses permintaan user Y. 3. Seorang user harus memastikan bahwa transaksi yang dilakukan tidak merusak data memasukkan hal-hal yang tidak penting kedalam database. Misalnya dalam database bank, harus memastikan bahwa penarikan uang secara akurat sesuai yang diambil nasabah akunnya. Aplikasi database menjadi tidak berguna bisa seseorang menarik 50.000 rupiah satu juta rupiah di ATM tetapi transaksi men-set rekeningnnya menjadi 0 rupiah!
atau user dari dari
Sebuah DBMS harus memastikan bahwa transaksi yang dijalankan secara penuh tidak terpengaruh maupun mempengaruhi transaksi lain. Hal penting dalam DBMS adalah transaksi harus dijalankan secara otomatis, atau hanya saat transaksi sedang berjalan. Juga, memastikan transaksi yang akan melakukan selesai penuh atau dibatalkan dan database akan kembali ke keadaan semula, hal ini untuk memastikan bahwa database tetap konsisten. 4. Penguncian dua tahap secara teliti menggunakan pembagian dan penguncian secara khusus untuk memproteksi data. Sebuah transaksi harus menahan semua penguncian yang diperlukan sebelum menjalankan transaksi, dan tidak melakukan penguncian apapun sebelum transaksi benar-benar selesai. 5. Sifat WAL akan mengakibatkan strategi logging dalam DBMS. WAL (write ahead log) mempunyai dasar bahwa setiap hal yang dilakukan harus dicatat ke dalam log didalam disk sebelum melakukan perubahan dalam database itu sendiri. Hal ini melindungi database dari system crash yang bisa terjadi selama transaksi dijalankan. Dengan mencatat dalam log sebelum melakukan perubahan sebenarnya, database bisa mengembalikan perubahan dari system crash, begitu juga sebaliknya.