Escolar Documentos
Profissional Documentos
Cultura Documentos
is defined as follows
The above functional dependencies are a sufficient condition for lossless join
decomposition; the dependencies are a necessary condition only if all
constraints are functional dependencies
select * from (select R1 from r) natural join (select R2 from r)
This is stated more succinctly in the relational algebra as:
PART-B
Computes the join and then adds tuples form one relation that does not match
tuples in the other relation to the result of the join.
Uses null values:
null signifies that the value is unknown or does not exist
All comparisons involving null are (roughly speaking) false by definition.
Consider the following schemas
Suppliers (sid: number,sname:sting)
Orders (oid:number,sid:number orderdate;date);
select s.sid,s.sname,o.orderdate
from suppliers s
join/left join/right join/full join
orders o
on s.sid=o.sid;
Defintion of FD
An FD is a relationship between an attribute "Y" and a determinant (1 or more
other attributes) "X" such that for a given value of a determinant the value of
the attribute is uniquely defined.
X is a determinant
X determines Y
Y is functionally dependent on X
To compute the closure of a set of functional dependencies F
F+=F
repeat for each functional dependency f in F+
apply reflexivity and augmentation rules on f add the resulting functional
dependencies to F +
for each pair of functional dependencies f1 and f2 in F +
if f1 and f2 can be combined using transitivity
then add the resulting functional dependency to F +
until F + does not change any further
14.a) What is hashing? Explain handling of buckets overflows.
Hashing is an effective technique to calculate direct location of data record on
the disk without using index structure.
It uses a function, called hash function and generates address when called
with search key as parameters. Hash function computes the location of desired
data on the disk.
Hash Organization
Bucket: Hash file stores data in bucket format. Bucket is considered a unit of
storage. Bucket typically stores one complete disk block, which in turn can
store one or more records.
Hash Function: A hash function h, is a mapping function that maps all set of
search-keys K to the address where actual records are placed. It is a function
from search keys to bucket addresses.
Operation:
Insertion: When a record is required to be entered using static hash, the hash
function h, computes the bucket address for search key K, where the record
will be stored.
Bucket address = h(K)
Search: When a record needs to be retrieved the same hash function can be
used to retrieve the address of bucket where the data is stored.
Delete: This is simply search followed by deletion operation.
BUCKET OVERFLOW:
The condition of bucket-overflow is known as collision. This is a fatal state for
any static hash function. In this case overflow chaining can be used.
Bucket overflow can occur because of Insufficient buckets .
Skew in distribution of records.
This can occur due to two reasons:
multiple records have same search-key value
chosen hash function produces non-uniform distribution of key values
Although the probability of bucket overflow can be reduced, it cannot be
eliminated; it is handled by using overflow buckets
Overflow Chaining: When buckets are full, a new bucket is allocated for the
same hash result and is linked after the previous one. This mechanism is
called Closed Hashing.
li
li
li
li
=
=
=
=
We are unable to swap instructions in the above schedule to obtain either the
serial schedule < T3, T4 >, or the serial schedule < T4, T3 >.
15. a)What is a time stamp? Write about time stamp based protocol.
The timestamp of a transaction denotes the time when it was first activated.
Each transaction is issued a timestamp when it enters the system. If an old
transaction Ti has time-stamp TS(Ti), a new transaction Tj is assigned timestamp TS(Tj) such that TS(Ti) <TS(Tj).
The protocol manages concurrent execution such that the time-stamps
determine the serializability order.
In order to assure such behavior, the protocol maintains for each data Q two
timestamp values:
W-timestamp(Q) is the largest time-stamp of any transaction that executed
write(Q) successfully.
R-timestamp(Q) is the largest time-stamp of any transaction that executed
read(Q) successfully
The timestamp ordering protocol ensures that any conflicting read and write
operations are executed in timestamp order.
Suppose a transaction Ti issues a read(Q)
If TS(Ti) W-timestamp(Q), then Ti needs to read a value of Q that was already
overwritten. Hence, the read operation is rejected, and Ti is rolled back.
If TS(Ti) W-timestamp(Q), then the read operation is executed, and Rtimestamp(Q) is set to max(R-timestamp(Q), TS(Ti)).
But the schedule may not be cascade-free, and may not even be recoverable.
15.b)Explain Graph based protocol
Graph-based protocols are an alternative to two-phase locking
Impose a partial ordering on the set D = {d1, d2 ,..., dh} of all data items.
If di dj then any transaction accessing both di and dj must access di before
accessing dj.
Implies that the set D may now be viewed as a directed acyclic graph, called a
database graph.
The tree-protocol is a simple kind of graph protocol
Armstrongs axioms are sound, because they do not generate any incorrect
functional dependencies.
Armstrongs axioms complete, because, for a given set F of functional
dependencies, they allow us to generate all F+.
List additional rules
Bitmap indices
Bitmap indices are a special type of index designed for efficient querying on
multiple keys.
In its simplest form a bitmap index on an attribute has a bitmap for each value
of the attribute Bitmap has as many bits as records
In a bitmap for value v, the bit for a record is 1 if the record has the value v for
the attribute, and is 0 otherwise
Bitmap indices are useful for queries on multiple attributes not particularly
useful for single attribute queries
Queries are answered using bitmap operations
Intersection (and) Union (or) Complementation (not)
Each operation takes two bitmaps of the same size and applies the operation
on corresponding bits to get the result bitmap
E.g. 100110 AND 110011 = 100010
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.
Heart-beat messages
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.
Time to recover: To reduce delay in takeover, backup site periodically proceses
the redo log records (in effect, performing recovery from previous database
state), performs a checkpoint, and can then delete earlier parts of the log.
Hot-Spare configuration permits very fast takeover:
Backup continually processes redo log record as they arrive, applying the
updates locally.
When failure of the primary is detected the backup rolls back incomplete
transactions, and is ready to process new transactions.
Alternative to remote backup: distributed database with replicated data.
Remote backup is faster and cheaper, but less tolerant to failure .