UAS Sistem Basis Data Semester ganjil 2006-2007 Bagian A 1. Ketika terjadi …………….., maka lock-lock pada page dapat di-deeskalasi menjadi lock-lock pada item data. A. Recovery B. Dirty read C. Lock conflicts D. Commit E. Flashback Jawaban C Dirty Reads Sebuah transaksi membaca data yang telah di tulis oleh transaksi yang lain tetapi belum di commit oleh transaksi lain tersebut. 2. Untuk melakukan optimasi query pada parallel system ada dua alternative heuristic untk memilih parallel plans yaitu : A. No pipelining and inter-operation pipelining. First choose most efficient sequential plan and then choose how best to parallelize the operation in that plan. B. Explore pipelined parallelism as an option Interoperation pipelining C. Inter-operation pipelining First choose most efficient sequential plan and then choose how best to parallelize the operation in that plan. D. Pipelining First choose most efficient sequential plan and then choose how best to parallelize the operation in that plan. E. Choosing a good physical organization (portioning technique) speed up queries. Explore pipelined parallelism as an option Jawaban A Two alternative heuristics for choosing parallel plans: No pipelining and inter-operation pipelining; just parallelize every operation across all processors. Finding best plan is now much easier --- use standard optimization technique, but with new cost model Volcano parallel database popularize the exchange-operator model – exchange operator is introduced into query plans to partition and distribute tuples – each operation works independently on local data on each processor, in parallel with other copies of the operation First choose most efficient sequential plan and then choose how best to parallelize the operations in that plan. Can explore pipelined parallelism as an option 3. Jika sebuah relasi terdiri drai m disk blok dan ada n disk yang available pada system parallel, maka pengalokasian relasi tersebut dilakukan dengan cara : A. Min(m+1, n) disk B. Max (m,n) disks C. Min (m,n) disks D. Max (m+1, n) disk E. m/n disk Jawaban C If a relation contains only a few tuples which will fit into a single disk block, then assign the relation to a single disk. Large relations are preferably partitioned across all the available disks. If a relation consists of m disk blocks and there are n disks available in the system, then the relation should be allocated min(m,n) disks. 4. Pernyataan di bawah ini yang benar-bila coordinator site failed dan semua active site tidak memiliki record <ready T> dalam file lognya adalah : A. Semua active site lakukan undo (T) B. Semua active site lakukan <commit T> C. Semua active site lakukan redo (T) D. Pilih coordianator site baru. E. Semua active site lakukan <abort T> Jawaban E Recovery Setelah Terjadi Failure pada Satu Site • Jika kita mempunyai sebuah commit atau abort log record untuk transaksi T, tetapi tidak mempunyai end record, maka harus dilakukan undo/redo terhadap T. – Jika site ini adalah coordinator untuk T, maka teruslah mengirim commit/abort msg ke semua subordinat sampai semua ack diterima • Jika kita mempunyai sebuah prepare log record untuk transaksi T, tetapi tidak mempunyai commit/abort, maka site ini adalah subordinate untuk T – Secara berulang-ulang hubungi coordinator untuk menemukan status transaksi T, kemudian tulis commit/abort log record; redo/undo T; dan tulis end log record. • Jika kita tidak mempunyai bahkan sebuah prepare log record untuk T, langsung lakukan abort dan undo terhadap T. 5. Standar ODBC merupakan standar komunikasi antara client applications dan system basis data, berikut pernyataan yang sesuai dengan ODBC adalah : A. ODBC based on the SQL Call-Level Interface B. ODBC tidak support terhadap Two-phase commit C. ODBC memungkinkan client terhubung secara asimultan ke data sources D. A dan B benar E. A, B, dan C benar Jawaban D Transaction Servers Also called query server systems or SQL server systems; clients send requests to the server system where the transactions are executed, and results are shipped back to the client. Requests specified in SQL, and communicated to the server through a remote procedure call (RPC) mechanism. Transactional RPC allows many RPC calls to collectively form a transaction. Open Database Connectivity (ODBC) is a C language application program interface standard from Microsoft for connecting to a server, sending SQL requests, and receiving results. JDBC standard similar to ODBC, for Java 6. Diketahui sbb: Create role dosen Grant <privilege list> On <relation name or view name> to <user list> User list yang mungkin ada adalah A. Ufi, ade B. Dosen C. Ufi, dosen D. Public E. Semua benar Jawaban E Spesifikasi Security dalam SQL Statement grant digunakan untuk memberikan authorization grant <privilege list> on <relation name or view name> to <user list> • <user list> adalah: – suatu user-id – public, yang memungkinkan semua user yang valid memperoleh privilege (authorization) – • Suatu role (dibahas kemudian) Memberikan suatu privilege pada sebuah view tidak berarti memberikan privilege apapun terhadap relasi-relasi penyusun view tersebut. • Pemberi privilege harus sudah mempunyai privilege terhadap item yang akan diberikan privilege-nya (atau seorang database administrator) 7. Sifat connectionless dari Hypertext Transfer Protocol(HTTP) disebabkan oleh : A. Karena computer punya keterbatasan mengakomodasi koneksi dalam jumlah tertentu secara simultan B. Session membatasi seseorang ketika mekalukan log on ke computer C. Server baru bias mengirim Cookies setelah terjadinya autentifikasi D. Karena tidak ada koneksi yang kontinu antara clien-server E. Karena request HTTP harus disupport oleh servlet interface Jawaban A Ingat karakterikstik drai HTTP 8. Apa yang dimaksud dengan in-doubt transactions? A. Transaksi memiliki <ready T>, tapi tidak memiliki <commit T> atau <abort T> B. Transaksi yang selalu mengalami rollback(T) C. Transaksi memiliki ready (T), tapi mengalami <abort T> D. Transaksi dengan kemungkinan sukses < 50% E. Transaksi memiliki <ready T>, tapi mengalami <commit T> Jawab A Doubt secara bahasa berarti ragu-ragu. Dalam referensi Database system concept : In-doubt transactions have a <ready T>, but neither a <commit T>, nor an <abort T> log record. 9. Berikut yang tidak termasuk bagian front-end dari system client-server, adalah : A. forms B. application program interface C. report-writer D. graphical user interface E. SQL user interface Jawaban B Client-Server Systems Database functionality can be divided into: Back-end: manages access structures, query evaluation and optimization, concurrency control and recovery. Front-end: consists of tools such as forms, report-writers, and graphical user interface facilities. The interface between the front-end and the back-end is through SQL or through an application program interface. 10. Balanced range-partioning vector dapat dibuat dengan melakukan cara, kecuali : A. Create histogram B. Crate hash function C. Sorting D. Use virtual processor E. Bangun partition vector Jawaban B To create a balanced partitioning vector (assuming partitioning attribute forms a key of the relation): Sort the relation on the partitioning attribute. Construct the partition vector by scanning the relation in sorted order as follows. After every 1/nth of the relation has been read, the value of the partitioning attribute of the next tuple is added to the partition vector. n denotes the number of partitions to be constructed. Duplicate entries or imbalances can result if duplicates are present in partitioning attributes. Alternative technique based on histograms used in practice Balanced partitioning vector can be constructed from histogram in a relatively straightforward fashion Assume uniform distribution within each range of the histogram Histogram can be constructed by scanning relation, or sampling (blocks containing) tuples of the relation Skew in range partitioning can be handled elegantly using virtual processor partitioning: create a large number of partitions (say 10 to 20 times the number of processors) Assign virtual processors to partitions either in round-robin fashion or based on estimated cost of processing each virtual partition Basic idea: If any normal partition would have been skewed, it is very likely the skew is spread over a number of virtual partitions Skewed virtual partitions get spread across a number of processors, so work gets distributed evenly! 11. Perbedaan antara RAID 1 & RAID 5 adalah : A. RAID 1 required r+2w I/O operation per second, RAID 5 requires : r + 4 w I/O operations per second. B. RAID 5 requires 2 block reads and 2 block writes to write out one data block, RAID 1 didn’t. C. RAID 1 is useful only when data storage are very large and very “cold data” D. A dan B benar E. A, B dan C benar Jawab E A quick summary of the most commonly used RAID levels: Level Description Striped set without parity. Provides improved performance and additional storage but no fault tolerance. Any disk failure destroys the array, which becomes more likely with more disks in the array. A single disk failure destroys the entire array because when data is RAID 0 written to a RAID 0 drive, the data is broken into fragments. The number of fragments is dictated by the number of disks in the drive. The fragments are written to their respective disks simultaneously on the same sector. This allows smaller sections of the entire chunk of data Minimum # of disks 2 Image to be read off the drive in parallel, giving this type of arrangement huge bandwidth. When one sector on one of the disks fails, however, the corresponding sector on every other disk is rendered useless because part of the data is now corrupted. RAID 0 does not implement error checking so any error is unrecoverable. More disks in the array means higher bandwidth, but greater risk of data loss. Mirrored set without parity. Provides fault tolerance from disk errors and single disk failure. Increased read performance occurs when using a multi-threaded RAID 1 operating system that supports split seeks, very small performance reduction when writing. Array continues to operate so long as at least one drive is functioning. 2 Striped set with dedicated parity. This mechanism provides an improved performance and fault tolerance similar to RAID 5, but with a dedicated parity disk rather than rotated parity stripes. The RAID 3 single disk is a bottle-neck for writing since every write requires updating the parity data. One minor benefit is the dedicated parity disk allows the parity drive to fail and operation will continue without parity or performance penalty. 3 Identical to RAID 3 but does blockRAID 4 level striping instead of byte-level striping. 3 Striped set with distributed parity. Distributed parity requires all but one drive to be present to operate; drive failure requires replacement, but the array is not destroyed by a single drive failure. Upon drive failure, any subsequent reads can be calculated from the distributed RAID 5 parity such that the drive failure is masked from the end user. The array will have data loss in the event of a second drive failure and is vulnerable until the data that was on the failed drive is rebuilt onto a replacement drive. 3 Striped set with dual distributed parity. Provides fault tolerance from two drive failures; array continues to operate with up to two failed drives. This makes larger RAID groups more practical, especially for high availability systems. This becomes increasingly important because large-capacity drives RAID 6 lengthen the time needed to recover from the failure of a single drive. Single parity RAID levels are vulnerable to data loss until the failed drive is rebuilt: the larger the drive, the longer the rebuild will take. With dual parity, it gives time to rebuild the array without the data being volatile while the failed drive is being recovered. 12. Bagaimana caranya mendeteksi deadlock pada distributed lock manager? A. Terapkan Global Wait For Graph B. Lock manager yang satu dengan lock manager yang lain saling berkomunikasi C. Deadlock tidak dapat dideteksi locally pada setiap site D. Tidak bisa, oleh karena itu gunakan single lock manager saja E. Terapkan skema primary copy. Jawab B Distributed Deadlock Detection • Masing-masing site memelihara local waits-for graph. • Global deadlock bisa terjadi bahkan jika tidak terdapat cycles di local graph • Terdapat tiga solusi untuk mendeteksi deadlock: – Cetralized (mengirim semua local graph ke satu site) – Hierarchical (mengatur site-site menjadi suatu hierarki dan mengirim local graph ke site yang merupakan parent di hierarki tersebut) – Timeout (lakukan abort jika transaksi menunggu terlalu lama) 13. Pada majority protocol, untuk menangani lock request, jumlah message yang dikirimkan adalah 2(n/2 + 1). Mengapa rumusnya seperti itu? Karena…… A. Adanya komunikasi dua arah antara n/2 + 1 site dengan transaksi B. Jumlah minimal site yang harus diminta persetujuannya adalah n/2 C. Pesan dikirimkan lewat jaringan menggunakan protocol TCP/IP D. Jawaban A dan B benar E. Harus ada persetujuan dari coordinator site Jawab A Voting • Sebuah transaksi harus menulis terhadap mayoritas copy (setengah plus satu) untuk mengubah suatu objek (data) dan membaca beberapa copy (secukupnya) untuk menjamin bahwa sedikitnya salah satu copy yang paling kini ikut terbaca. • Misal: terdapat 10 replika (copy); 7 copy ditulisi pada saat melakukan update, maka sedikitnya 4 copy harus dibaca pada saat melakukan pembacaan terhadap data • Masing-masing copy mempunyai nomor versi, copy dengan nomor versi paling tinggi merupakan copy yang paling kini • Pendekatan seperti ini kurang diminati karena untuk membaca sebuah objek harus membaca beberapa copy objek tersebut. Padahal operasi baca lebih sering dilakukan daripada operasi update (menulis), sehingga performansi yang efisien terhadap operasi baca sangat penting. • Terdapat dua rentetan komunikasi: pertama, voting; kemudian, pemutusan. Keduanya diawalai oleh coordinator. • Sehingga untuk menangani lock request, jumlah message yang dikirimkan adalah 2(n/2 + 1) 14. ‘Server database di Telkom Japati terletak di lantai dengan penjagaan yang ketat. Server ini juga menggunakan teknologi yang handal ’. Dengan kondisi seperti diatas, maka level security manakah yang harus diperhatikan oleh Database Administartor? A. Database system level B. Human level C. Physical level D. Network Level E. Operating System Level Jawab B • Untuk melindungi database, ada beberapa tingkatan keamanan yang harus diperhatikan: – Database system level. Dilakukan dengan mekanisme authentication dan authorization – • Authentication? • Authorization? Operating system level. Dibutuhkan pembagian level security (authorization) operating system yang baik. • E.g. Hanya superuser operating system yang mempunyai hak yang tidak terbatas terhadap database. – Network level. Karena hampir semua sistem database memungkinkan akses jarak jauh melalui terminal atau jaringan, maka harus dilakukan pengamanan baik di level software maupun hardware pada internet ataupun private network. • Misalnya dilakukan dengan enkripsi, untuk mencegah: – Eavesdropping (pembacaan message oleh pihak yang tidak berhak) – Masquerading (berpura-pura sebagai authorized user atau mengirim pesan seolah-olah datangnya dari authorized user) – Physical level. Pengamanan tradisional (menggunakan kuci/gembok) terhadap tempat yang mengandung sistem komputer tetap diperlukan. • – Selain itu komputer harus terlindungi dari banjir, kebakaran, dll. Human level. Penjagaan terhadap data dilakukan oleh orang, contoh satpam. 15. Partioned parallelism dapat digunakan untuk operasi join seperti : A. Equi-join B. Natural join C. Outer join D. A dan B benar E. A, B dan C benar Jawaban A Parallel Join • Operasi join membutuhkan pasangan tuple-tuple untuk dites apakah mereka memenuhi kondisi join, dan jika mereka memenuhi kondisi tersebut, pasangan tersebut kemudian ditambahkan ke hasil join. • Algoritma parallel join mencoba memisahkan pasangan tersebut untuk dites di lebih dari satu prosesor. Masing-masing prosesor kemudian melakukan join secara lokal. • Pada langkah akhir, hasil dari masing-masing prosesor dapat digabungkan untuk memperoleh hasil akhir. • Parallel Join dilakukan dengan tiga cara: – Partitioned Join – Fragment and Replicate Join – Partitioned Parallel Hash Join – Parallel Nested Loop Join Partitioned Join • Untuk equi-join dan natural join, dimungkinkan untuk memisahkan (mempartisi) dua relasi input di seluruh prosesor, dan menghitung join secara lokal di masingmasing prosesor. • Misalkan r dan s merupakan relasi-relasi input, dan kita ingin menghitung r r.A=s.B s. • r dan s masing-masing dipartisi menjadi n partisi, dinyatakan oleh r0, r1, ..., rn-1 dan s0, s1, ..., sn-1. • Dapat menggunakan baik range partitioning ataupun hash partitioning. • r dan s harus dipartisi berdasarkan join atributnya (r.A dan s.B), menggunakan range-partitioning vector yang sama atau fungsi hash yang sama. • Partisi-partisi ri dan si dikirim ke prosesor Pi, • Masing-masing prosesor Pi secara lokal menghitung ri ri.A=si.B si. Dapat menggunakan metode join standar apa pun. Fragment-and-Replicate Join • Algoritma join yang dilakukan jika partitioned-join tidak bisa menangani join yang dimaksud – • e.g., kondisi-kondisi non-equijoin, seperti r.A > s.B. Untuk join di mana tidak bisa dilakukan algoritma partitioned-join ini join masih dapat diparalelkan dengan menerapakan teknik fragment and replicate – • Digambarkan dalam slide berikut Terdapat kasus khusus– asymmetric fragment-and-replicate: – Salah satu relasi, misalnya r, dipartisi; dapat menggunakan teknik partitioning yang manapun (termasuk round-robin) – Relasi yang lain, s, direplikasi ke seluruh prosesor. – Prosesor Pi kemudian secara lokal menghitung join ri dengan semua s menggunakan teknik join apa pun. Partitioned parallel hash join: • Asumsi s lebih kecil dari r sehingga s dipilih sebagai build relation. • Sebuah fungsi hash h1 mengambil nilai join atribut untuk masing-masing tuple pada s dan memetakan tuple ini ke salah satu dari n prosesor. • Masing-masing prosesor Pi membaca tuple-tuple s yang ada pada disknya Di, dan mengirimkan masing-masing tuple ke prosesor yang bersesuaian berdasarkan fungsi hash h1. Misalkan si menyatakan tuple-tuple relasi s yang dikirim ke prosesor Pi. • Pada saat tuple-tuple s diterima oleh prosesor-prosesor tujuan, mereka dipartisi lebih lanjut menggunakan fungsi hash yang lain, h2, yang digunakan untuk menghitung hash-join secara lokal.(lanjt.) Parallel Nested-Loop Join • Asumsi bahwa – Relasi s jauh lebih kecil dari relasi r dan r disimpan dengan partitioning. – Terdapat indeks pada atribut join untuk relasi r pada masing-masing partisi relasi r. • Menggunakan asymmetric fragment-and-replicate, dengan relasi s merupakan relasi yang direplikasi, dan menggunakan partisi relasi r yang sudah ada. • Masing-masing prosesor Pj di mana sebuah relasi s disimpan membaca tupeltupel relasi s yang disimpan di Dj, dan me-replikasi tupel-tupel ke setiap prosesor Pi. – Pada akhir fase ini, relasi s direplikasi di semua site yang menyimpan tupel-tupel relasi r. • Masing-masing prosesor Pi melakukan indexed nested-loop join terhadap relasi s dengan partisi ke-i dari relasi r. 16. Interquery Paralellism sulit untuk diimplementasikan pada arsitektur shared-disk dan shared-nothing, karena alas an berikut ini kecuali : A. Untuk melakukan locking harus dikoordinasikan terlebih dahulu dengan melakukan pertukaran message antar processor B. Untuk melakukan Logging harus dikoordinasikan terlebih dahulu dengan melakukan pertukaran message antar processor C. Data pada local buffe kemungkinan telah diupdate pada processor lain. D. Sulitnya melakukan pembagian resource untuk setiap proses yang ada. E. Harus terjaganya cache-coherency. Jawaban D Inter-query parallelism (scale-up) • Query-query/Transaksi-transaksi dijalankan secara paralel satu sama lain. • Meningkatkan throughput transaksi; digunakan utamanya untuk menambah (scale-up) sistem pemrosesan transaksi sehingga meningkatkan jumlah transaksi yang dapat diproses per satuan waktunya. • Merupakan bentuk paralelisme yang paling mudah diimplementasikan, khususnya pada basisdata paralel shared-memory, karena pada dasarnya sistem basisdata sequensial (konvensional) pun mendukung pemrosesan concurrent. • Lebih rumit jika diterapkan pada arsitektur shared-disk atau shared-nothing – Locking dan logging harus dikoordinasikan dengan cara saling bertukar pesan antar prosesor. – Data pada local buffer mungkin sedang/telah di-update oleh prosesor yang lain. – Harus menjaga Cache-coherency— pembacaan dan penulisan terhadap data harus dilakukan pada versi data paling akhir. 17. Sebuah site bisa meng-commit transaksi bila memenuhi dua kondisi : A. Site tersebut sudah menuliskan <ready T> di file lognya dan site yang lain telah melakukan <commit T> B. ……………(pilih opsi yang paling tepat dari lima pilihan di bawah ini) A. Site tersebut telah berkomunikasi dengan coordinator site B. coordinator site failed C. Site tersebut merupakan coordinator site D. Tidak ada kondisi kedua E. Jawaban A dan B benar Jawaban C Two-Phase Commit (2PC) • Pada saat terjadi suatu transaksi site di mana transaksi berawal di sebut coordinator, dan site yang lain yang terlibat karena transaksi tersebut disebut subordinat • Terdapat langkah-langkah yang dilakukan jika suatu transaksi akan commit: 1. Coordinator mengirimkan prepare msg ke masing-masing subordinat 2. Subordinate menuliskan sebuah abort atau prepare log record dan mengirim sebuah no atau yes msg ke coordinator. 3. Jika coordinator mendapat suara sepakat yes, maka tuliskan commit log record dan kirim commit msg ke semua subordinat. Jika tidak, tuliskan abort log record, dan kirimkan abort msg. 4. Subordinate menuliskan abort/commit log record berdasarkan msg yang mereka terima, kemudian mengirimkan ack msg ke coordinator. 5. Coordinator menuliskan end log record setelah mendapatkan semua ack. Komentar Mengenai 2PC • Terdapat dua rentetan komunikasi: pertama, voting; kemudian, pemutusan. Keduanya diawalai oleh coordinator. • Site manapun dapat memutuskan abort terhadap suatu transaksi. • Setiap msg mencerminkan sebuah keputusan dari pengirimnya; untuk menjaga agar keputusan ini tetap ada walaupun terjadi failure, maka pertama kali keputusan ini dituliskan di local log. • Semua log record untuk suatu transaksi mengandung id-transaksi dan idcoordinator. Record abort/commit coordinator juga mengandung semua id subordinat-nya Recovery Setelah Terjadi Failure pada Satu Site • Jika kita mempunyai sebuah commit atau abort log record untuk transaksi T, tetapi tidak mempunyai end record, maka harus dilakukan undo/redo terhadap T. – Jika site ini adalah coordinator untuk T, maka teruslah mengirim commit/abort msg ke semua subordinat sampai semua ack diterima • Jika kita mempunyai sebuah prepare log record untuk transaksi T, tetapi tidak mempunyai commit/abort, maka site ini adalah subordinate untuk T – Secara berulang-ulang hubungi coordinator untuk menemukan status transaksi T, kemudian tulis commit/abort log record; redo/undo T; dan tulis end log record. • Jika kita tidak mempunyai bahkan sebuah prepare log record untuk T, langsung lakukan abort dan undo terhadap T. 18. Untuk melakukan penelitian parallel DB, Lab Basdat memperbanyak jumlah servernya menjadi tiga kali lipat (N=3). Jika diketahui speedup= small system elapsed time Large system elapsed time Maka kapankah grafik speedup menjadi linear? A. Speedup is linear if N > 4 B. Speedup is linear if 3<N<10 C. Speedup is linear if equation equals 1/N D. Speedup is linear if equation equals N E. Speedup is linear if equation equals 1 Jawaban D Penjelasan Speedup: a fixed-sized problem executing on a small system is given to a system which is N-times larger. Measured by: speedup = small system elapsed time large system elapsed time Speedup is linear if equation equals N. Scaleup: increase the size of both the problem and the system N-times larger system used to perform N-times larger job Measured by: scaleup = small system small problem elapsed time big system big problem elapsed time Scale up is linear if equation equals 1. 19. Teknik portioning yang paling efisien untk mencari tuples yang punya nilai tertentu pada atribut yang spesifik (atribut partioning) adalah : A. Roud-robin B. Hash partitioning C. Range partitioning D. Partitioning vector E. Point partitioning Jawaban B Round-robin: Send the ith tuple inserted in the relation to disk i mod n. Hash partitioning: Choose one or more attributes as the partitioning attributes. Choose hash function h with range 0…n - 1 Let i denote result of hash function h applied to the partitioning attribute value of a tuple. Send tuple to disk i. Range partitioning: Choose an attribute as the partitioning attribute. A partitioning vector [vo, v1, ..., vn-2] is chosen. Let v be the partitioning attribute value of a tuple. Tuples such that vi vi+1 go to disk I + 1. Tuples with v < v0 go to disk 0 and tuples with v vn-2 go to disk n-1. E.g., with a partitioning vector [5,11], a tuple with partitioning attribute value of 2 will go to disk 0, a tuple with value 8 will go to disk 1, while a tuple with value 20 will go to disk2. Round robin: Advantages Best suited for sequential scan of entire relation on each query. All disks have almost an equal number of tuples; retrieval work is thus well balanced between disks. Range queries are difficult to process No clustering -- tuples are scattered across all disks Hash partitioning: Good for sequential access Assuming hash function is good, and partitioning attributes form a key, tuples will be equally distributed between disks Retrieval work is then well balanced between disks. Good for point queries on partitioning attribute Can lookup single disk, leaving others available for answering other queries. Index on partitioning attribute can be local to disk, making lookup and update more efficient No clustering, so difficult to answer range queries. Range partitioning: Provides data clustering by partitioning attribute value. Good for sequential access Good for point queries on partitioning attribute: only one disk needs to be accessed. For range queries on partitioning attribute, one to a few disks may need to be accessed Remaining disks are available for other queries. Good if result tuples are from one to a few blocks. If many blocks are to be fetched, they are still fetched from one to a few disks, and potential parallelism in disk access is wasted Example of execution skew. 20. Dari pernyataan berikut : “Remote backup system are simple and have lower overhead”, maka data yang dibackup ke remote site adalah : A. Log record dan data record B. Data record saja C. Semua isi database D. Data yang paling sering diakses E. Log records saja. Jawab E Remote backup systems provide high availability by allowing transaction processing to continue even if the primary site is destroyed. Detection of failure: Backup site must detect when primary site has failed to distinguish primary site failure from link failure maintain several communication links between the primary and the remote backup. Transfer of control: To take over control backup site first perform recovery using its copy of the database and all the long records it has received from the primary. Thus, completed transactions are redone and incomplete transactions are rolled back. When the backup site takes over processing it becomes the new primary To transfer control back to old primary when it recovers, old primary must receive redo logs from the old backup and apply all updates locally. Bagian B 1. Perhatikan kondisi dalam kasus user management berikut : A. Terdapat seorang super user database (root) yang meng-create user U1, U2, U3 dan U4. B. User U1 diberi privilege oleh root hanya untuk melakukan select pada relasi A dan meneruskan privilege tersebut ke user lain C. User U2 diberi privilege oleh root hanya untuk melakukan select dan insert pada relasi A. D. User U3 diberi privilege oleh root hanya untuk melakukan select, insert dan modifikasi pada relasi A. E. User U1 memberi privilege ke U4 hanya untuk melakukan select pada relasi A. F. Privilege U1 untuk melakukan select pada relasi A dicabut oleh root (cascade). Gambar authorization graph yang mendeskripsikan kondisi yang telah disebutkan. Tuliskan sintaks SQL yang menyatakan masing-masing aksi pada setiap kondisi tersebut. Apa yang terjadi setelah aksi terakhir dilakukan. Jawaban Gambar authorization graph Setelah dicabut sintaks SQL : <Kondisi B> Grant select on A to U1 with grant option; <Kondisi C> Grant select,insert on A to U2; <Kondisi D> Grant select,insert, update on A to U3; <Kondisi E> Grant select on A to U4;[U1 login] <Kondisi F> Revoke select on A from U1 cascade; Final condition after F Hanya U2 dan U3 yang memiliki privilege. Privilege U2 adalah select dan insert Privilege U3 adalah modify. U1 tidak memiliki privilege karena telah dicabut. Dikarenakan U4 mendapat privilege dari U1 dan privilege U1 dicabut secara cascade maka U4 juga kehilangan privilegenya. Jenis-jenis Privilege dalam SQL • select: Memungkinkan akses baca terhadap relasi, atau kemampuan untuk melakukan query menggunakan view – Contoh: Seorang DBA memberikan user U1, U2, dan U3 select authorization pada relasi branch: grant select on branch to U1, U2, U3 • insert: kemampuan untuk menyisipkan tuple-tuple • update: kemampuan untuk mengubah data menggunakan statement update SQL • delete: kemampuan untuk menghapus tuple-tuple. • references: kemampuan untuk mendeklarasikan foreign key pada saat membuat relasi-relasi. • usage: Dalam SQL-92; memberikan user hak untuk menggunakan suatu domain • all privileges: Digunakan sebagai kependekan dari semua privilege yang diizinkan Privilege untuk memberikan Privilege • with grant option: memungkinkan seorang pengguna yang diberikan privilege untuk memberikan privilege tersebut ke user yang lain. – Contoh: grant select on branch to U1 with grant option Memberikan U1 privilege select pada relasi branch dan memungkinkan U1 untuk memberikan privilege ini ke user lain. Role • Role memungkinkan privilege yang umum untuk sekelompok pengguna dapat dispesifikasikan hanya sekali dengan membuat “role” yang sesuai • Privilege dapat diberikan atau ditarik dari role, seperti berlaku kepada user • Role dapat diberikan kepada user, dan bahkan kepada role yang lain • SQL:1999 men-suport pendefinisian role create role teller create role manager grant select on branch to teller grant update (balance) on account to teller grant all privileges on account to manager grant teller to manager grant teller to alice, bob grant manager to avi Menarik (revoke) Authorization dalam SQL • Statement revoke digunakan untuk menarik authorization. revoke<privilege list> on <relation name or view name> from <user list> [restrict|cascade] • Contoh: revoke select on branch from U1, U2, U3 cascade • Penarikan sebuah privilege dari seorang user dapat menyebabkan user yang lain kehilangan privilegenya; hal ini disebut cascading revoke (penarikan berantai). • Kita dapat mencegah revoke berantai dengan memberikan perintah dengan option restrict : revoke select on branch from U1, U2, U3 restrict Dengan option restrict ini, perintah revoke akan gagal jika akan terjadi revoke berantai oleh perintah revoke yang saat ini dikeluarkan. • <privilege-list> dapat diisi oleh all untuk menarik semua privilege yang sedang dipegang oleh seorang user. • Jika <user-list> diisi dengan public maka semua user kehilangan privilege kecuali yang memperoleh privilege tersebut secara eksplisit • Jika privilege yang sama diberikan dua kali kepada user yang sama oleh pemberi yang berbeda, user mungkin dapat memegang privilege tersebut setelah penarikan. • Semua privilege yang bergantung terhadap privilege yang sedang dicabut juga ikut dicabut. Menarik (revoke) Authorization dalam SQL • Statement revoke digunakan untuk menarik authorization. revoke<privilege list> on <relation name or view name> from <user list> [restrict|cascade] • Contoh: revoke select on branch from U1, U2, U3 cascade • Penarikan sebuah privilege dari seorang user dapat menyebabkan user yang lain kehilangan privilegenya; hal ini disebut cascading revoke (penarikan berantai). • Kita dapat mencegah revoke berantai dengan memberikan perintah dengan option restrict : revoke select on branch from U1, U2, U3 restrict Dengan option restrict ini, perintah revoke akan gagal jika akan terjadi revoke berantai oleh perintah revoke yang saat ini dikeluarkan. 2. Isi bagian-bagian di dalam ini dengan proses/bagian dari shared memory yang sesuai. <Pada soal, peserta ujian mengisi bagian dari proses dibawah yang dikosongkan> A typical transaction server consists of multiple processes accessing data in shared memory. Server processes These receive user queries (transactions), execute them and send results back Processes may be multithreaded, allowing a single process to execute several user queries concurrently Typically multiple multithreaded server processes Lock manager process More on this later Database writer process Output modified buffer blocks to disks continually Log writer process Server processes simply add log records to log record buffer Log writer process outputs log records to stable storage. Checkpoint process Performs periodic checkpoints Process monitor process Monitors other processes, and takes recovery actions if any of the other processes fail n E.g. aborting any transactions being executed by a server process and restarting it Shared memory contains shared data Buffer pool Lock table Log buffer Cached query plans (reused if same query submitted again) All database processes can access shared memory To ensure that no two processes are accessing the same data structure at the same time, databases systems implement mutual exclusion using either Operating system semaphores Atomic instructions such as test-and-set