Uploaded by temu.krab

UAS 2007

advertisement
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
Download