mc0067 set 1
TRANSCRIPT
-
7/31/2019 MC0067 SET 1
1/17
1. Write about:
Linear Search :
Linear search, also known as sequential search, means starting at the beginning of the data and checking each item in
turn until either the desired item is found or the end of the data is reached. Linear search is a search algorithm, also known as
sequential search that is suitable for searching a list of data for a particular value. It operates by checking every
element of a list one at a time in sequence until a match is found. The Linear Search, or sequential search, is simplyexamining each element in a list one by one until the desired element is found. The Linear Search is not very efficient. If theitem of data to be found is at the end of the list, then all previous items must be read and checked before the item that matches
the search criteria is found. This is a very straightforward loop comparing every element in the array with the key. As soon as
an equal value is found, it returns. If the loop finishes without finding a match, the search failed and -1 is returned. For small
arrays, linear search is a good solution because it's so straightforward. In an array of a million elements linear search on average
will take500, 000comparisons to find the key. For a much faster search, take a look at binary search.
Algorithm
For each item in the databaseif the item matches the wanted info
exit with this item
Continue loopwanted item is not in database
Complexity of Linear search algorithm
Linear search provide complexity for finding an element in an array because linear search is a step-by-
step process, in which specific element is compared with each element of array.
In linear search complexity is due to two cases.
It is possible that required element occurs at the end of the array. So linear search consumes
more time.
It is also possible that required element is not present in the given array, this is the worst case.
In this case the algorithm requires f(n)=n+1 comparisons.
If the element is at first position in array then only one comparison will be needed
Collision Chain:
In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known
as keys (e.g., a person's name), to their associated values (e.g., their telephone number). Thus, a hash table implements anassociate array. The hash function is used to transform the key into the index (the hash) of an array element (the
slot orbucket) where the corresponding value is to be sought.
Ideally, the hash function should map each possible key to a unique slot index, but this ideal is rarely achievable in practice
(unless the hash keys are fixed; i.e. new entries are never added to the table after it is created). Instead, most hash table designs
assume that hast collisionsdifferent keys that map to the same hash value - will occur and must be accommodated in some
way.
Page1
-
7/31/2019 MC0067 SET 1
2/17
2. Write about:
Integrity Rules
Relational Operators with examples for each
Linear Search
Collision Chain
Ans:2
2.1 Integrity Rules:
These are the rules which a relational database follows in order to stay accurate and
accessible. These rules govern which operations can be performed on the data and on the
structure of the database. There are three integrity rules defined for a relational
databse,which are:-
Distinct Rows in a Table - this rule says that all the rows of a table should be distinct to
avoid in ambiguity while accessing the rows of that table. Most of the modern database
management systems can be configured to avoid duplicate rows.
Entity Integrity (A Primary Key or part of it cannot be null) - this rule says that 'null' is
special value in a relational database and it doesn't mean blank or zero. It means the
unavailability of data and hence a 'null' primary key would not be a complete identifier.
This integrity rule is also termed as entity integirty.
Referential Integrity - this rule says that if a foreign key is defined on a table then a value
matching that foreign key value must exist as th e primary key of a row in some other
table.
The following are the integrity rules to be satisfied by any relation.
No Component of the Primary Key can be null.
The Database must not contain any unmatched Foreign Key values. This is
called the referential integrity rule.
Unlike the case of Primary Keys, there is no integrity rule saying that no component ofthe foreign key can be null. This can be logically explained with the help of the
following example:
Consider the relations Employee and Account as given below.
Employee
Emp# EmpName EmpCity EmpAcc#
X101 Shekhar Bombay 120001
X102 Raj Pune 120002
X103 Sharma Nagpur Null
X104 Vani Bhopal 120003
Account
ACC# OpenDate BalAmt
12000130-Aug-
19985000
12000229-Oct-
19981200
12000301-Jan-
19993000
12000404-Mar-
1999500
Page2
-
7/31/2019 MC0067 SET 1
3/17
EmpAcc# in Employee relation is a foreign key creating reference from Employee to Account.
Here, a Null value in EmpAcc# attribute is logically possible if an Employee does not have a
bank account. If the business rules allow an employee to exist in the system without opening an
account, a Null value can be allowed for EmpAcc# in Employee relation.
In the case example given, Cust# in Ord_Aug cannot accept Null if the business rule insists that
the Customer No. needs to be stored for every order placed.
2.2 Relational Operators:
In the relational model, the database objects seen so far have specific names:
Name Meaning
Relation Table
Tuple Record(Row)
Attribute Field(Column)
Cardinality Number of Records(Rows)
Degree(or Arity) Number of Fields(Columns)
View Query/Answer table
On these objects, a set of operators (relational operators) is provided to manipulate them:
1. Restrict
2. Project
3. Union
4. Difference
5. Product
6. Intersection
7. Join
8. DivideRestrict:
Restrict simply extract records from a table.it is also known as Select, but not the same SELECT as defined in SQL.
Project:
Project selects zero or more fields from a table and generates a new tablethat contains all of the records and only the selected fields (with no duplications).
Union:
Union creates a new table by adding the records of one table to another
Page3
-
7/31/2019 MC0067 SET 1
4/17
tables, must be compatible: have the same number of fields and each of the field pairs has to have valuesin the same domain.
Difference:
The difference of two tables is a third table which contains the records which appear in the first BUT
NOT in the second.
Product:The product of two tables is a third which contains all of the records in the first one added to each of the
records in the second.
Intersection:
The intersection of two tables is a third tables which contains the records which are common to both.
Join:
The join of two tables is a third which contains all of the records in the first and the second which are
related.
Divide:
Dividing a table by another table gives all the records in the first which have values in their fieldsmatching ALL the records in the second.
The eight relational algebra operators are
1. SELECT To retrieve specific tuples/rows from a relation.
Ord# OrdDate Cust#
101 02-08-
94
002
104 18-09-
94
002
2. PROJECT To retrieve specific attributes/columns from a relation.
Page4
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image00634.gifhttp://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image00427.gif -
7/31/2019 MC0067 SET 1
5/17
Description Price
Power Supply 4000
101-Keyboard 2000 2000Mouse 800 800
MS-DOS 6.0 5000 5000
MS-Word 6.0 8000 8000
2. PRODUCT To obtain all possible combination of tuples from two relations.
Ord# OrdDate O.Cust# C.Cust# CustName City
10102-08-
94002 001 Shah Bombay
10102-08-
94002 002 Srinivasan Madras
10102-08-
94002 003 Gupta Delhi
10102-08-
94002 004 Banerjee Calcutta
10102-08-
94002 005 Apte Bombay
10211-08-
94003 001 Shah Bombay
10211-08-
94 003 002 Srinivasan Madras
4. UNION To retrieve tuples appearing in either or both the relations participating in the UNION.
Page5
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image00823.gif -
7/31/2019 MC0067 SET 1
6/17
Eg: Consider the relation Ord_Jul asfollows
(Table: Ord_Jul)
Ord# OrdDate Cust#
10103-07-
94001
10227-07-
94003
10102-08-
94002
10211-08-
94003
10321-08-
94003
10428-08-
94002
10530-08-
94005
Note: The union operation shown above logically implies retrieval of records of Orders placed in July or
in August
5. INTERSECT To retrieve tuples appearing in both the relations participating in the INTERSECT.
Eg:
To retrieve Cust# of Customers whove placed orders
in July and in August
Cust#
003
Page6
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image01220.gifhttp://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image01027.jpg -
7/31/2019 MC0067 SET 1
7/17
6. DIFFERENCE To retrieve tuples appearing in the first relation participating in the DIFFERENCEbut not the second.
Eg: To retrieve Cust# of Customers whove placed orders in July but
not in August
Cust#
001
7. JOIN To retrieve combinations of tuples in two relations based on a common field in both the
relations.
Eg:
ORD_AUG join CUSTOMERS (here, the common
column is Cust#)
Ord# OrdDate Cust# CustNames City
101 02-08-94 002 Srinivasan Madras
102 11-08-94 003 Gupta Delhi
103 21-08-94 003 Gupta Delhi
104 28-08-94 002 Srinivasan Madras
105 30-08-94 005 Apte Bombay
Note: The above join operation logically implies retrieval of details of all orders and the details of the
corresponding customers who placed the orders. Such a join operation where only those rows having
corresponding rows in the both the relations are retrieved is called the natural join or inner join. This is
the most common join operation.
Consider the example of EMPLOYEE and ACCOUNT relations.
EMPLOYEE
EMP EmpName EmpCity Acc#
Page7
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image01613.gifhttp://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image01414.gif -
7/31/2019 MC0067 SET 1
8/17
#
X101 Shekhar Bombay 120001
X102 Raj Pune 120002
X103 Sharma Nagpur Null
X104 Vani Bhopal 120003
ACCOUNT
Acc# OpenDate BalAmt
120001 30. Aug. 1998 5000
120002 29. Oct. 1998 1200
120003 1. Jan. 1999 3000
120004 4. Mar. 1999 500
A join can be formed between the two relations based on the common column Acc#. The result of the(inner) join is :
Emp# EmpName EmpCity Acc# OpenDate BalAmt
X101 Shekhar Bombay 12000130. Aug.
19985000
X102 Raj Pune 12000229. Oct.
19981200
X104 Vani Bhopal 120003 1. Jan 1999 3000
Note that, from each table, only those records which have corresponding records in the other table appear
in the result set. This means that result of the inner join shows the details of those employees who hold an
account along with the account details.
The other type of join is the outer join which has three variations the left outer join, the right outer join
and the full outer join. These three joins are explained as follows:
The left outer join retrieves all rows from the left-side (of the join operator) table. If there are
corresponding or related rows in the right-side table, the correspondence will be shown. Otherwise,
columns of the right-side table will take null values.
EMPLOYEE left outer join ACCOUNT gives:
Page8
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image01812.gif -
7/31/2019 MC0067 SET 1
9/17
Emp# EmpName EmpCity Acc# OpenDate BalAmt
X101 Shekhar Bombay 12000130. Aug.
19985000
X102 Raj Pune 12000229. Oct.
19981200
X103 Sharma Nagpur NULL NULL NULL
X104 Vani Bhopal 1200031. Jan1999
3000
The right outer join retrieves all rows from the right-side (of the join operator) table. If there arecorresponding or related rows in the left-side table, the correspondence will be shown. Otherwise,
columns of the left-side table will take null values.
EMPLOYEE right outer join ACCOUNT gives:
Emp# EmpName EmpCity Acc# OpenDate BalAmt
X101 Shekhar Bombay 12000130. Aug.
19985000
X102 Raj Pune 12000229. Oct.
19981200
X104 Vani Bhopal 1200031. Jan
19993000
NULL NULL NULL 1200044. Mar.
1999500
(Assume that Acc# 120004 belongs to someone who is not an employee and hence the details of the
Account holder are not available here)
The full outer join retrieves all rows from both the tables. If there is a correspondence or relation betweenrows from the tables of either side, the correspondence will be shown. Otherwise, related columns will
take null values.
EMPLOYEE full outer join ACCOUNT gives:
Page9
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image02016.jpghttp://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image0192.jpg -
7/31/2019 MC0067 SET 1
10/17
Emp# EmpName EmpCity Acc# OpenDate BalAmt
X101 Shekhar Bombay 12000130. Aug.
19985000
X102 Raj Pune 12000229. Oct.
19981200
X103 Sharma Nagpur NULL NULL NULL
X104 Vani Bhopal 120003 1. Jan 1999 3000
NULL NULL NULL 1200044. Mar.
1999500
8. DIVIDE
Consider the following three relations:
R1 divide by R2 per R3 gives:
a
Thus the result contains those values from R1 whose corresponding R2 values in R3 include all R2
values.
2.3 Linear Search
Linear search, also known as sequential search, means starting at the beginning of the data and checking
each item in turn until either the desired item is found or the end of the data is reached. Linear search is a
search algorithm, also known as sequential search that is suitable for searching a list of data for a
particular value. It operates by checking every element of a list one at a time in sequence until a match is
found. The Linear Search, or sequential search, is simply examining each element in a list one by one
until the desired element is found. The Linear Search is not very efficient. If the item of data to be found
is at the end of the list, then all previous items must be read and checked before the item that matches the
search criteria is found. This is a very straightforward loop comparing every element in the array with the
key. As soon as an equal value is found, it returns. If the loop finishes without finding a match, the search
failed and -1 is returned. For small arrays, linear search is a good solution because it's so straightforward.
In an array of a million elements linear search on average will take500, 000 comparisons to find the key.
For a much faster search, take a look at binary search.
Page10
http://train-srv.manipalu.com/wpress/wp-content/uploads/2009/06/clip-image0212.jpg -
7/31/2019 MC0067 SET 1
11/17
Algorithm
For each item in the database
if the item matches the wanted info
exit with this item
Continue loop
wanted item is not in database
2.4 Collision Chain:
In computer science, a hash table or hash map is a data structure that uses a hash function to map
identifying values, known as keys (e.g., a person's name), to their associated values (e.g., their telephonenumber). Thus, a hash table implements an associate array. The hash function is used to transform the
key into the index (the hash) of an array element (theslotorbucket) where the corresponding value is to
be sought.
Ideally, the hash function should map each possible key to a unique slot index, but this ideal is rarely
achievable in practice (unless the hash keys are fixed; i.e. new entries are never added to the table after it
is created). Instead, most hash table designs assume that hast collisionsdifferent keys that map to the
same hash valuewill occur and must be accommodated in some way.
3. Discuss the correspondences between the ER model constructs and the relational model constructs.
Show how each ER model construct can be mapped to the relational model, and discuss any alternative
mappings.
Ans: 3
Relational Data Model:
The model uses the concept of a mathematical relation-which looks somewhat like a table of values-as its
basic building block, and has its theoretical basis in set theory and first order predicate logic.
The relational model represents the database a collection of relations. Each relation resembles a table of
values or, to some extent, a flat file of records. When a relation is thought of as a table of values, eachrow in the table represents a collection of related data values. In the relation model, each row in the table
represents a fact that typically corresponds to a real-world entity or relationship. The table name and
column names are used to help in interpreting the meaning of the values in each row. In the formal
relational model terminology, a row is called a tuple, a column header is called an attribute, and the tableis called a relation. The data type describing the types of values that can appear in each column is
represented by domain of possible values.ER Model:
An entity-relationship model (ERM) is an abstract and conceptual representation of data. Entity-
relationship modeling is a database modeling method, used to produce a type of conceptual schema or
semantic data model of a system, often a relational database, and its requirements in a top-down fashion.
Diagrams created by this process are called entity-relationship diagrams, ER diagrams, or ERDs.
The first stage of information system design uses these models during the requirements analysis to
describe information needs or the type of information that is to be stored in a database. In the case of the
design of an information system that is based on a database, the conceptual data model is, at a later stage
(usually called logical design), mapped to a logical data model, such as the relational model; this in turn
Page11
-
7/31/2019 MC0067 SET 1
12/17
is mapped to a physical model during physical design. We create a relational schema from an entity-relationship(ER) schema.
In the case of the design of an information system that is based on a database, the conceptual data model
is, at a later stage (usually called logical design), mapped to a logical data model, such as the relational
model; this in turn is mapped to a physical model during physical design. Sometimes, both of these
phases are referred to as "physical design". Key elements of this model are entities, attributes, identifiers
and relationships.
Correspondence between ER and Relational Models:
ER Model Relational Model
Entity type Entity relation
1:1 or 1:N relationship type Foregin key
M:N relationship type Relationship relation and two foreign
keys
n ary relationship type Relationship relation and n foreign keys
Simple attributes Attributes
Composite attributes Set of simple component attributes
Multivalued attributes Relation and foreign key
Value set Domain
Key attribute Primary key or secondary key
Page12
-
7/31/2019 MC0067 SET 1
13/17
Lets take COMPANY database example:
The COMPANY ER schema is below:
1
1 N
N
N
Page13
EMPLOYEE
addre
ss
salar
ysex
Lnam
e
Initialnam
Nam
e
END
DOB
DEPARTMENT
LocationName
Numbe
r
NoOfEmpl
oyee
WORKS_FOR
MANAGES
DEPENDENTS_OF
CONTROL
S
WORKSO
N
SUPERVISION
StartDat
e
HOURS
PROJECT
Nam
e
Numbe
r
Locatio
n
Relationshi
p
DOB
SexNam
e
DEPENDENT
-
7/31/2019 MC0067 SET 1
14/17
Result of mapping the company ER schema into a relational database schema:
EMPLOYEE
FN
A
M
E
IN
I
T
IA
L
LN
A
M
E
EN
O
DO
B
AD
D
R
ESS
SE
X
SA
L
A
RY
SUPE
RE
NO
DN
O
DEPARTMENT
DNAME DNUMBER MGRENO MGRSTARTDATE
DEPT_LOCATIONS
DNUMBER DLOCATION
PROJECT
PNAME PNUMBER PLOCATION DNUM
WORKS_ON
EENO PNO HOURS
Page14
-
7/31/2019 MC0067 SET 1
15/17
DEPENDENT
EENO DEPENDENT_NAME SEX DOB RELATIONSHIP
Mapping of regular entity types:
For each regular entity type E in the ER schema, create a relation R that includes all the simple attributes
of E. Include only the simple component attributes of a composite attribute. Choose one of the key
attributes of E as primary key for R. If the chosen key of E is composite, the set of simple attributes that
form it will together the primary key of R.
If multiple keys were identified for E during the conceptual design, the information describing the
attributes that form each additional key is kept in order to specify secondary (unique) keys of relation R.
Knowledge about keys is also kept for indexing purpose and other types of analyses.
We create the relations EMPLOYEE, DEPARTMENT, and PROJECT in to correspond to the regular
entity types EMPLOYEE, DEPARTMENT, and PROJECT. The foreign key and relationship attributes,
if any, are not include yet; they will be added during subsequent steps. These, include the attributes
SUPERENO and DNO of EMPLOYEE, MGRNO and MGRSTARTDATE of DEPARTMENT, andDNUM of PROJECT. We choose ENO, DNUMBER, and PNUMBER as primary keys for the relations
EMPLOYEE, DEPARTMENT, and PROJECT, respectively. Knowledge that DNAME of
DEPARTMENT and PNAME of PROJCET are secondary keys is kept for possible use later in the
design.
The relation that is created from the mapping of entity types are sometimes called entity relations
because each tuyple represents an entity instance.
4. Define the following terms: disk, disk pack, track, block, cylinder, sector, interblock gap,
read/write head.
Ans: 4
Disk:
Disk s are used for storing large amounts of data. The most basic unit of data on the disk is a single bit of
information. By magnetizing a area on disk in certain ways, one can make it represent a bit value of
either 0 or 1. To code information, bits are grouped into bytes. Byte sizes are typically 4 to 8 bits,
depending on the computer and the device. We assume that one character is stored in a single byte, and
we use the terms byte and character interchangeably. The capacity of a disk is the number of bytes it canstore, which is usually very large. Small floppy disks used with microcomputers typically hold from 400
kbytes to 1.5 Mbytes; hard disks for micros typically hold from several hundred Mbytes up to a few
Gbytes. Whatever their capacity, disks are all made of magnetic material shaped as a thin circular disk
and protected by a plastic or acrylic cover. A disk is single-sided if it stores information on only one ofits surface and double-sided if both surfaces are used.
Disk Packs:
To increase storage capacity, disks are assembled into a disk pack, which may include many disks and
hence many surfaces. A Disk pack is a layered grouping of hard disk platters (circular, rigid discs coated
with a magnetic data storage surface). Disk pack is the core component of a hard disk drive. In modern
hard disks, the disk pack is permanently sealed inside the drive. In many early hard disks, the disk pack
was a removable unit, and would be supplied with a protective canister featuring a lifting handle.
Page15
-
7/31/2019 MC0067 SET 1
16/17
Track and cylinder:
The (circular) area on a disk platter which can be accessed without moving the access arm of the drive is
called track. Information is stored on a disk surface in concentric circles of small width, for each having a
distinct diameter. Each circle is called a track. For disk packs, the tracks with the same diameter on the
various surfaces are called cylinder because of the shape they would form if connected in space. The set
of tracks of a disk drive which can be accessed without changing the position of the access arm are called
cylinder.
The number of tracks on a disk range from a few hundred to a few thousand, and the capacity of each
track typically range from tens of Kbytes to 150 Kbytes.
Sector:
A fixed size physical data block on a disk drive.
A track usually contains a large amount of information; it is divided into smaller blocks or sectors. The
division of a track into sectors is hard-coded on the disk surface and cannot be changed. One type ofsector organization calls a portion of a track that subtends a fixed angle at the center as a sector. Several
other sector organizations are possible, one of which is to have the sectors subtend smaller angles at the
center as one moves away, thus maintaining a uniform density of recording.
Block and Interblock Gaps:
A physical data record, separated on the medium from other blocks by inter-block gaps is called block.
The division of a track into equal sized disk blocks is set by the operating system during disk formatting.
Block size is fixed during initialization and cannot be changed dynamically. Typical disk block sizes
range from 512 to 4096 bytes. A disk with hard coded sectors often has the sectors subdivided into
blocks during initialization.
An area between data blocks which contains no data and which separates the blocks is called
interblock gap.
Blocks are separated by fixed size interblock gaps, which include specially coded control information
written during disk initialization. This information is used to determine which block on the track follows
each interblock gap.
Read/write Head:
A tape drive is required to read the data from or to write the data to a tape reel. Usually, each group ofbits that forms a byte is stored across the tape, and the bytes themselves are stored consecutively on the
tape. A read/write head is used to read or write data on tape. Data records on tape are also stored in
blocks-although the blocks may be substantially larger than those for disks, and interblock gaps are also
quite large. With typical tape densities of 1600 to 6250 bytes per inch, a typical interblock gap of 0.6
inches corresponds to 960 to 3750 bytes of wasted storage space.
Page16
-
7/31/2019 MC0067 SET 1
17/17