mc0067 set 1

Upload: sulendra-kumar

Post on 05-Apr-2018

222 views

Category:

Documents


0 download

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