Assignment 04
Assignment 04
Assignment # : 04
a) Fragmentation:
The process of dividing the database into a smaller multiple parts is
called as fragmentation.
These fragments may be stored at different locations.
The data fragmentation process should be carrried out in such a way
that the reconstruction of original database from the fragments is
possible.
Fragmentation is the task of dividing a table into a set of smaller tables.
The subsets of the table are called fragments. Fragmentation can be of
three types: horizontal, vertical, and hybrid (combination of horizontal and
vertical). Horizontal fragmentation can further be classified into two
techniques: primary horizontal fragmentation and derived horizontal
fragmentation.
Fragmentation should be done in a way so that the original table can be
reconstructed from the fragments. This is needed so that the original table
can be reconstructed from the fragments whenever required. This
requirement is called “constructiveness.”
Example:
Account (Acc_No, Balance, Branch_Name, Type).
In this example if values are inserted in table Branch_Name as Pune, Baroda,
Delhi.
Example:
For the above table we can define any simple condition like,
Branch_Name= 'Pune', Branch_Name= 'Delhi', Balance < 50,000
Fragmentation1:
SELECT * FROM Account WHERE Branch_Name= 'Pune' AND
Balance < 50,000
Fragmentation2:
SELECT * FROM Account WHERE Branch_Name= 'Delhi' AND
Balance < 50,000
Fragmentation1:
SELECT * FROM Account WHERE Branch_Name= 'Baroda' AND Balance <
50,000
Fragmentation2:
SELECT * FROM Account WHERE Branch_Name= 'Delhi' AND Balance <
50,000
2. Vertical Fragmentation:
Vertical fragmentation divides a relation(table) vertically into groups of
columns to create subsets of tables.
Example:
Fragmentation1:
SELECT * FROM Acc_NO
Fragmentation2:
SELECT * FROM Balance
Complete vertical fragmentation
The complete vertical fragmentation generates a set of vertical fragments,
which can include all the attributes of original relation.
Reconstruction of vertical fragmentation is performed by using Full Outer
Join operation on fragments.
3) Hybrid Fragmentation:
Hybrid fragmentation can be achieved by performing horizontal and vertical
partition together.
Mixed fragmentation is group of rows and columns in relation.
Fragmentation1:
SELECT * FROM Emp_Name WHERE Emp_Age < 40
Fragmentation2:
SELECT * FROM Emp_Id WHERE Emp_Address= 'Pune' AND Salary <
14000
b) Reasons for Fragmentation:
Fragmentation
should be done in a way so that the original table can be reconstructed
from the fragments. This is needed so that the original table can be
reconstructed from the fragments whenever required. This requirement is
called “reconstructiveness.”
Advantages of Fragmentation:
Since data is stored close to the site of usage, efficiency of the
database system is increased.
Local query optimization techniques are sufficient for most queries
since data is locally available.
Since irrelevant data is not available at the sites, security and privacy
of the database system can be maintained.
Disadvantages of Fragmentation:
When data from different fragments are required, the access speeds
may be very high.
In case of recursive fragmentations, the job of reconstruction will
need expensive techniques.
Lack of back-up copies of data in different sites may render the
database ineffective in case of failure of a site.
Vertical Fragmentation-
In vertical fragmentation, the fields or columns of a table are grouped into
fragments. In order to maintain reconstructiveness, each fragment should
contain the primary key field(s) of the table. Vertical fragmentation can be
used to enforce privacy of data.
For example, let us consider that a University database keeps records of
all registered students in a Student table having the following schema.
STUDENT
Horizontal Fragmentation-
Horizontal fragmentation groups the tuples of a table in accordance to
values of one or more fields. Horizontal fragmentation should also confirm
to the rule of reconstructiveness. Each horizontal fragment must have all
columns of the original base table.
For example, in the student schema, if the details of all students of
Computer Science Course needs to be maintained at the School of
Computer Science, then the designer will horizontally fragment the
database as follows −
CREATE COMP_STD AS
SELECT * FROM STUDENT
WHERE COURSE = "Computer Science";
Hybrid Fragmentation-
In hybrid fragmentation, a combination of horizontal and vertical
fragmentation techniques are used. This is the most flexible fragmentation
technique since it generates fragments with minimal extraneous
information. However, reconstruction of the original table is often an
expensive task.
Hybrid fragmentation can be done in two alternative ways −
At first, generate a set of horizontal fragments; then generate vertical
fragments from one or more of the horizontal fragments.
At first, generate a set of vertical fragments; then generate horizontal
fragments from one or more of the vertical fragments.