1. RDBMS Concepts

download 1. RDBMS Concepts

of 73

description

RDMS concepts

Transcript of 1. RDBMS Concepts

  • Slide 1

    RDBMS Concepts

  • Slide 2

    Need for Relational Database Systems

    It will be nice if I could use my computer to write

    information about all my patients once and retrieve it

    anytime I need. I also would like to lock the information

    in a secured place.

    Why dont you try writing it in a word or a spread sheet document.

    Yeah I did try that. But at times I

    end up entering the same

    information twice!Oh! Then you should use relational

    database system- like MS Access!

    2

    Data important to us must be stored so that we can retrieve it when we need it.

  • Slide 3

    Limitation of file

    No mechanism to ensure non-redundant data.

    No mechanism to ensure data consistency.

    Maintenance of relationship is not possible.

    There is no mechanism for a recovery after system crash.

    To make the above features work with files, application has to be

    written and many may need complex code.

    3

  • Slide 4

    As an application programmer my focus should be more on business

    aspects of my customer. If I use files to store data, I find that common

    tasks like writing programs to store and retrieve related data and maintain

    consistency for every application takes most of my time and attention!

    We need a mechanism to save, retrieve

    and maintain data with minimal effort. In

    other words, a prewritten system which

    takes care of all of these and gives a

    simple interface for the application to

    interact with.

    4

  • Slide 5

    Activity

    How do you think data is arranged in the above picture?

    Can you identify the kind data? Is it easy to search and retrieve

    data?

    Is there anyway you could make lookup more easier?

    What have you done to make the data more approachable?

    5

    It is not just about storing information. It is about how to retrieve information effectively and efficiently. So the way we store the information is directly related to way we retrieve it. The key to this is the way we choose to organize the information.

  • Slide 6

    Relational Database

    Relational databases store information in tabular form- in rows and

    columns.

    Each column has data of same type and the row has data pertaining to

    one cause.

    A table has many rows of similar type.

    The table is also referred to as a relation.

    Database is a collection of meaningful and related data.

    The software that manages this data is database management system

    (DBMS) or database system.

    RDBMS (Relational database management system) is a type of DBMS.

    Go through the different database

    models and differences between them.6

    Relational database model was introduced by E. F. Codd, of IBM's San Jose Research Laboratory. For a given DBMS, depending on the structural description of the type of data the database stores (which is called Schema) the model is defined. There are 4 models: Hierarchical Model Data is organized into tree-like structure. Used by the older mainframe database systems like IMS by IBM. Parent-child relationship between the data. 1:N mapping. 2. Network Model Network model is very much like hierarchical model with the exception that it allows a record to have more than one parent N:M mapping (many to many relationship) 3. Relational Model Most database system use this model. The schema for relational model is a table (relation) which has a name, attributes or column or field and a type for each field. Relationship is maintained by the common attributes in the tables. Can be one-one or one to many or many to many. This is what we will be learning in this session.

  • 4. Object Model The new wave of database technologies use Object-oriented data model (OODM).

  • Slide 7

    Relationships

    With RDBMS, all types of relationships between entities can be be

    realized.

    Types of relationship

    One to one: Relationship between Employee and Permanent

    Address

    One to many: Relationship between Customer and Order

    Many to Many: Relationship between Customer and Bank

    Account

    Could you give another example for each of the above

    relationship?

    7

  • Slide 8

    RDBMS Table Example

    Attributes or fieldsStudent

    Stud Id Name

    1 Raghu R

    2 Mary Molle

    3 Henry F.Korth

    4 Jennifer Wisdom

    5 Uma R

    Tuples, records or rows

    Tables

    8

  • Slide 9

    RDBMS Products

    Oracle

    IBM DB2

    MySQL

    Ingres

    Sybase

    MS-SQL Server

    MS Access

    PostgreSQL

    9

  • Slide 10

    Types of database system

    Type of user:

    Desktop Database

    Multi-user Database

    Type of location

    Centralized database

    Distributed database

    Distributed database

    Transactional or Production DBMS

    Data warehousing and decision support system

    10

  • Slide 11

    Oracle Database Edition

    Oracle Database Standard Edition One

    Oracle Database Standard Edition

    Oracle Database Enterprise Edition

    Oracle Database Express Edition

    Oracle Database Personal Edition

    Edition that we will be working with

    Version 10g Release 2 (10.2)

    11

    Oracle Database Editions (Oracle Database 10g Release 2)

    Oracle Database Standard Edition One: Oracle Database Standard Edition One delivers unprecedented ease of use, power, and performance for workgroup, department-level, and Web applications. From single-server environments for small business to highly distributed branch environments, Oracle Database Standard Edition One includes all the facilities necessary to build business-critical applications. Oracle Database Standard Edition : Oracle Database Standard Edition delivers the unprecedented ease of use, power, and performance of Standard Edition One, with support for larger machines and clustering of services with Oracle Real Application Clusters (Oracle RAC). Oracle RAC is not included in the Standard Edition of releases prior to Oracle Database 10g, nor is it an available option with those earlier releases. Oracle Database Enterprise Edition: Oracle Database Enterprise Edition provides the performance, availability, scalability, and security required for mission-critical applications such as high-volume online transaction processing (OLTP) applications, query-intensive data warehouses, and demanding Internet applications. Oracle Database Enterprise Edition contains all of the components of Oracle Database, and can be further enhanced with the purchase of the options and packs described in Chapter 2, "Options and Packs". Oracle Database Express Edition: Oracle Database Express Edition (Oracle Database XE) is an entry-level edition of Oracle Database that is quick to download, simple to

  • install and manage, and is free to develop, deploy, and distribute. Oracle Database XE makes it easy to upgrade to the other editions of Oracle without costly and complex migrations. Oracle Database XE can be installed on any size machine with any number of CPUs, stores up to 4GB of user data, using up to 1GB of memory, and using only one CPU on the host machine. Support is provided by an online forum. Oracle Database Personal Edition : Oracle Database Personal Edition supports single-user development and deployment environments that require full compatibility with Oracle Database Standard Edition One, Oracle Database Standard Edition, and Oracle Database Enterprise Edition.

  • Slide 12

    Oracle Application Architecture

    Client-Server Architecture

    Client is the front-end that interacts with the user

    Server is the backend interacts with the Oracle

    Database software and handles concurrent requests

    Network

    12

    Client takes the request from the end user, sends the request to the server, gets the data from the server and presents in the form that end user wants to see.

  • Slide 13

    Database design- steps

    Requirement Analysis

    Conceptual Database Design : ER Diagram

    Logical Database Design : Converting ER Diagram into RDBMS tables

    etc.

    Additional design components like views, stored procedures, triggers

    etc.

    13

  • Slide 14

    ER Model

    ER data model allows us to conceptually understand the data of the real

    world that we intent to store them.

    This model is realized by diagrammatically representing the collection

    of entity and their relationship.

    There are two notations for entity relationship diagram (ERD):

    Chens notation

    Crows foot notation.

    As stated earlier, this is done in conceptual database design phase.

    A data dictionary is built to explain the details of the entities and

    attributes that is used in the ER diagram.

    14

  • Slide 15

    Defining Entity

    Entity: It is an object that is distinct and unique. Examples: a

    student, a an employee , a college etc.

    Entity set: A collection of similar entities is entity set. Examples :

    Students, Colleges

    Attributes: Properties that describe an entity is attribute. All

    entities in the entity set have same attributes (but the values of

    the attribute may be different). For example, a student will have

    registration number, name and address as attributes.

    15

  • Slide 16

    Primary Key

    A minimal set of attributes that uniquely identifies an entity is called a

    candidate key.

    An entity can have many candidate keys. For example, for a student

    entity, if we assume that students have unique names. In that case both

    registration number and name are candidate keys.

    One among the candidate keys is chosen to be a primary key. A primary

    key should not be null.

    A composite key is a primary key with more than one attribute.

    A super key is a set of attributes which contains the primary key.

    16

  • Slide 17

    Activity

    List out the entities for a hospital database.

    List out the attributes for each entity

    Identify the primary key.

    17

  • Slide 18

    Notations in ER diagram

    18

    Entity Set

    Attribute

    Relationship

  • Slide 19

    Representing an entity in Chens notation

    Students

    regNo

    name

    address

    Courses

    streamId

    title

    noOfSems

    Entity Set

    Attributes

    Primary key

    19

  • Slide 20

    Activity

    Represent the hospital database entities in the form of ER diagram.

    20

  • Slide 21

    Relationship

    Relationship is the association between entities or entity sets. For

    example between two entities student and course, the relationship is

    a course enrolls for many students.

    Relationships may or may not also have attributes. For example, if

    we were to maintain enrollment date, then the relation enrolls will

    have an attribute enrollment-date.

    Relationship set is a collection of similar relationships.

    Types:

    Binary

    Ternary

    Unary

    21

  • Slide 22

    Binary Relationship One to One

    Subject Is Taught Teacher

    teacherId

    nameaddresssubId

    title

    1 1

    Relationship Set

    Mapping/Connectivity

    22

  • Slide 23

    Binary Relationship One to Many

    Courses Have Students

    regNo

    nameaddress

    streamId title

    noOfSems

    1 N

    Relationship Set

    Mapping/Connectivity

    23

  • Slide 24

    Binary Relationship Many to Many

    Customer Bank Account

    acctNo

    acctTypebalance

    custId name

    address

    M N

    Mapping/Connectivity

    owns

    24

  • Slide 25

    Relationship with attributes

    Courses Have Students

    regNo

    nameaddressstreamId

    title

    noOfSems

    1 N

    Relationship Set

    enrollment-date

    Attribute of relationship

    25

  • Slide 26

    Activity

    Identify binary relationships between the entities of hospital

    database and represent them in the ER diagram.

    26

  • Slide 27

    Cardinality

    Courses Has Students

    regNo

    nameaddressstreamId

    title

    noOfSems

    enrollment-date

    (1,35)(1,6)

    Cardinality

    Cardinality is used to specify number of entity occurrences with one

    occurrence of related entity.

    A course can have a minimum of 1 and a maximum of 35 students. A

    student can take a maximum of 6 and a minimum of 1 course.

    27

  • Slide 28

    Example of a Ternary relationship

    Employees DepartmentsWorks-In

    Location

    dateOfJoining

    name

    deptId

    name

    empId

    address capacity

    locId

    N M

    P

    28

  • Slide 29

    Example of a Unary relationship

    CustomercustId

    name

    address

    referred

    byN

    1

    29

  • Slide 30

    Key Constraints on relationship

    Consider a restriction where a student can join only one course. This is an

    example of a key constraint.

    In the below diagram the directional arrow ensures that there is only one

    instance of student in the relationship set Has. In other words, given a

    student, has relationship can be uniquely determined.

    Courses Has Students

    regNo

    name

    address

    streamId

    title

    noOfSems

    1 N

    enrollment-date

    Directional arrow

    30

  • Slide 31

    Activity

    What is the relationship between customer and the plot he/she

    buys?

    Draw an ER diagram to represent the relationship.

    31

  • Slide 32

    Participation constraints

    Total participation: If all entities in an entity-set need to be in the

    relationship set then the entity is in total participation with respect to

    relationship.

    Example: Every employee works in at least one department. Each

    department has at least one employee. Therefore both Employee and

    Department entities in Works-In relationship is total.

    Partial participation: A participation that is not total is partial .

    32

  • Slide 33

    Example of a total participation

    Employees DepartmentsWorks-In

    location

    dateOfJoining

    name

    deptId

    name

    empId

    address capacity

    locIdIndicates total

    participation

    or

    33

  • Slide 34

    Modeling Attributes

    Single valued attributes the examples that we have seen so far

    consisted of single value attributes.

    Composite Attribute

    Multi-Valued Attribute

    Derived Attribute

    34

  • Slide 35

    Composite Attribute

    A composite attribute is an attributes that is made up of more than

    one attribute.

    For example address can be thought of as having more than one

    attribute.

    address

    house number street number

    area

    districtstate

    country

    Employees

    composite attribute

    35

    pin

  • Slide 36

    Multi-Valued Attribute

    A multi-value attribute is an attribute which can have multiple

    values.

    phone_numbers Employees

    multi-valued attribute

    36

  • Slide 37

    Derived Attribute

    A derived attribute is an attribute whose value is determined or computed

    using existing values of the other attributes (or otherwise also called

    stored attribute).

    While the value of the composite attribute for a row is computed as

    concatenation of the values of a set of attributes of the same row, the

    derived attribute can be calculated based on values of attributes in

    multiple rows also (example sum of gross salary of all entities in

    Employee entity set).

    37

    Employee

    deductionsgross_salary net_salary

    derived stored

    attribute

  • Slide 38

    Weak Entities

    A weak entity is an entity that cant be uniquely identified by its own

    attributes alone, and therefore must use as its primary key both its

    own attributes and the primary key of an entity it is related to.

    In other words, a weak entity cannot exist without the entity it is

    related to (owner entity).

    The relationship between owner entity and weak entity is one-to-

    many.

    38

  • Slide 39

    Orders Order-Itemscontains

    A weak entity set diagram

    itemNocustId

    orderDateorderNo

    noOfPieces

    partial key

    1 n

    contains

    Order-Items

    or

    or

    Identifying

    relationship

    The entity will be in total participation

    39

    Assume a shopping application. A customer orders for many items. We have 2 entities to maintain customer order. Orders entity: records the order details like order number, order date and customer id Order-Items: records the items pertaining to the order. Order-Items entity is a weak entity.

  • Slide 40

    Hierarchy

    The entities can be classified as general type and specific type.

    IS-A relationship.

    For example, an Employee can be a programmer or a manager.

    Employee

    nameempId

    IS-A

    Programmer Marketing Manager

    Current-Project

    Main-Role

    area

    num-of-contracts

    specia

    lizatio

    ngenera

    lization

    40

  • Slide 41

    Redundant relationship problem

    Consider a relationship where employee works on an assignment and

    may use machinery.

    Employee

    namejoiningDate

    works Project

    uses Computer

    machineID

    purchaseDateredundant relationships

    empId

    hours

    41

  • Slide 42

    Aggregation

    Solution is to use aggregation. Aggregation is a relationship between

    collection of entities and relationships.

    Aggregation allows us to indicate that a relationship set participates

    in another relationship set.

    Use aggregation when we need to have a relationship among

    relationship.

    42

  • Slide 43

    Employee

    namejoiningDate

    works Project

    uses MachinerymachineID

    purchaseDate

    aggregation

    empId

    hours

    43

  • Slide 44

    Exercises

    1. Draw an E-R diagram for the following application.

    a. A training institute conducts up to 6 courses.

    b. A course can have up to 30 students.

    c. A student can enroll for a particular course only once. However a

    student can enroll for any number of courses. The date of enrollment of

    the course is also maintained.

    d. A course is described by its course-id, title and duration, course-id

    being the primary key.

    e. A student is described by stud-id, name and address (house number,

    street or area, town, dist , city state). The stud-id is the primary key.

    f. There is no student who has not taken any course. There are however

    courses for which there are no students. (30 mins)44

  • Slide 45

    2. Draw an E-R diagram for the following application.

    a. A company maintains details of its Employees like empId, name, date

    of birth)

    b. Each Employee works for a single department.

    c. There are two types of employee- Contract and Permanent. Contract

    employees work for a period of time and are given temporary id. They

    are paid in per day basis. Permanent employees are paid every month

    and they have permanent id.

    d. Department is identified by deptId, name.

    e. Each department has one of the employees as manager.

    f. Company also needs the details of all the Employees Bank accounts.

    g. Bank Account details are acctNumber, Type of account, Name of the

    Bank and Branch.

    (30 mins)45

  • Slide 46

    3. Draw an ER diagram for a bus company with following specifications:

    a. A Country Bus Company owns a number of busses.

    b. Each bus is allocated to a particular route, although some routes may

    have several busses.

    c. Each route passes through a number of towns.

    d. One or more drivers are allocated to each stage of a route.

    e. A stage corresponds to a journey through some or all of the towns on a

    route.

    f. Some of the towns have a garage where busses are kept and each of the

    busses are identified by the registration number and can carry different

    numbers of passengers, since the vehicles vary in size and can be single or

    double-decked.

    g. Each route is identified by a route number and information is available on

    the average number of passengers carried per day for each route. 46

  • Slide 47

    4. Draw an ER diagram for application recording information about

    magazines, writers, and subscribers, including:

    a. For each magazine, its name, its writers, its editor, and the cities to

    which it is delivered are to be maintained.

    b. For each writer, their id, name is to be maintained. (Note: a writer

    can write for more than one magazine, but can only edit, at most, one

    magazine.)

    c. For each subscriber, their name, favorite writers, city or residence,

    and what magazines they receive are to be maintained.

    d. For all entities and relationships, select and specify keys.

    47

  • Slide 48

    Activity

    What are the problems if the data is repeated?

    Roll Number Name Degree

    20103001 V. Ravichandra M.C.A

    20103002 Usha Kritilal M.C.A

    20103003 Samkit Verma M.C.A

    20103001 V. Ravichandra M.C.A

    20103004 Guru Murthy M.C.A

    20103007 Jaya R M.C.A

    20105009 Vivek Sahoo B. Tech

    20105007 Booby Sharma B.Tech

    20103004 Guru Murthy M.C.A

    48

  • Slide 49

    Problems with a bad database design

    Redundant Storage

    Update Anomalies

    Insertion Anomalies

    Deletion Anomalies

    49

  • Slide 50

    Definition

    First proposed by Dr. Codd.

    Normalization is the process of breaking down a relation schema

    into smaller relations in order to achieve good database design.

    To achieve good design, several step by step decomposition rules

    are laid out in the form of NORMAL FORMS.

    There are 6 Normal forms.

    For most relational schema, good design is attained at 3 NF itself.

    50

    Take care : While normalizing we also pay attention to two important aspects: Lossless Join: There should be no loss of information when tables are split. Dependency Preservation: The dependency between the attributes must be preserved.

  • Slide 51

    1 NF

    First Normal Form

    There are no duplicated rows in the table.

    Each cell is single-valued (i.e., there are no repeating groups or arrays).

    Entries in a column (attribute, field) are of the same kind

    51

  • Slide 52

    Un-normalized data

    52

    Stud

    Id

    Stud

    Name

    Course

    No

    Course

    Name

    Staff

    ID

    Staff

    Name

    PaperNo Subject

    Name

    Grade

    1 Sita 1 JEE 2 Preeti 1 Java A

    2 JEE 2 Web A

    2 Jay 2 .NET 1 Guru 1 C# B

    3 Mani 3 A

    ASP.NET A

    4 Kim 4 SAP 3 Ravi 3 ABAP B

    5 Ram 5 A

  • Slide 53

    Into 1NF

    53

    Stud Id

    Stud

    Name

    Course

    No

    Course

    Name

    Staff ID Staff

    Name

    PaperNo Subject Name

    Grade

    1 Sita 1 JEE 2 Preeti 1 Java A

    1 Sita 1 JEE 2 Preeti 2 Web A

    2 Jay 2 .NET 1 Guru 1 C# B

    3 Mani 3 .NET 1 Guru 1 C# A

    3 Mani 3 .NET 1 Guru 2 ASP.NET A

    4 Kim 4 SAP 3 Ravi 3 ABAP B

    5 Ram 4 SAP 3 Ravi 3 ABAP A

    Here primary key is a composite key

  • Slide 54

    2 NF

    Second Normal Form:

    A table is in 2NF if it is in 1NF and if all non-key attributes are fully

    functionally dependent on all of the key attributes ( or prime

    Attribute).

    Key attribute or Prime attribute is an attribute that is a part of any

    candidate key.

    Functional Dependency: Let A and B be two attributes or set of

    attributes. B is functionally dependent on A if Bs value is determined

    by As value.

    A is the determinant.

    54

  • Slide 55

    Full Functional Dependency

    Full Functional Dependency (AB) : B is fully functionally dependent

    on A, if on removing any one of the attribute x from A, B cannot be

    determined.

    If B can still be determined on removal of x from A, the B is partially

    dependent A.

    55

  • Slide 56

    Into 2 NF

    56

    Stud Id

    Stud

    Name

    Course

    No

    Course

    Name

    Paper

    No

    Subject Name

    Grade

    1 Sita 1 JEE 1 Java A

    1 Sita 1 JEE 2 Web A

    2 Jay 2 .NET 1 C# B

    3 Mani 3 .NET 1 C# A

    3 Mani 3 .NET 2 ASP.NET A

    4 Kim 4 SAP 3 ABAP B

    5 Ram 4 SAP 3 ABAP A

    Student

  • Slide 57

    57

    Course

    No

    Course

    Name

    Staff

    ID

    Staff

    Name

    PaperNo Subject

    Name

    1 JEE 2 Preeti 1 Java

    1 JEE 2 Preeti 2 Web

    3 .NET 1 Guru 1 C#

    3 .NET 1 Guru 2 ASP.NET

    4 SAP 3 Ravi 3 ABAP

    Course

  • Slide 58

    3 NF

    Third Normal Form

    A table is in 3NF if it is in 2NF and if it has no transitive

    dependencies of a non-key attribute on the primary key.

    Transitive dependencies (AB, BC):

    Let A, B and C be three attributes or set of attributes. If B is

    functionally dependent on A and C functionally dependent on B

    (in other words C is indirectly dependent on A) then C is

    transitively dependent on A.

    58

  • Slide 59

    Into 3NF

    Transitive dependency:

    Student table

    StudID Course No

    Course No Course Name

    Course table

    CourseID StaffID

    StaffIDStaffName

    59

    Do we have transitive dependency between courseID , PaperNo and Subject Name

    No

  • Slide 60

    60

    Stud Id

    Stud

    Name

    Course

    No

    Paper

    No

    Grade

    1 Sita 1 1 A

    1 Sita 2 2 A

    2 Jay 2 1 B

    3 Mani 3 1 A

    4 Kim 4 3 B

    5 Ram 4 3 A

    Course

    No

    Paper

    No

    Subject Name

    1 1 Java

    2 2 Web

    2 1 C#

    3 2 ASP.NET

    4 3 ABAP

    Course

    No

    Course

    Name

    1 JEE

    2 .NET

    3 .NET

    4 SAP

  • Slide 61

    61

    Course

    No

    Course

    Name

    Staff

    ID

    PaperNo Subject

    Name

    1 JEE 2 1 Java

    1 JEE 2 2 Web

    3 .NET 1 1 C#

    3 .NET 1 2 ASP.NET

    4 SAP 3 3 ABAP

    Staff

    ID

    Staff

    Name

    2 Preeti

    1 Guru

    3 Ravi

  • Slide 62

    Boyce-Codd Normal Form

    A table is in BCNF if every determinant in the table is a candidate

    key.

    This happens when non-key attribute is a determinant of a key

    attribute.

    If the table has only one candidate key, then BCNF and 3 NF are

    same. Hence BCNF is sometimes referred to as a special case of 3

    NF.

    However a table that is in 3NF may be in BCNF.

    BCNF comes into picture only where there are two candidate keys.

    62

  • Slide 63

    Activity

    Tom has to compute the result based on the Grade. (A and B are

    Pass, C is fail)

    63

    Stud Id

    Stud

    Name

    Course

    No

    Paper

    No

    Grade Result

    1 Sita 1 1 A

    1 Sita 2 2 A

    2 Jay 2 1 B

    3 Mani 3 1 A

    4 Kim 4 3 B

    5 Ram 4 3 A

    TOM: Read Grade A

    JACK: Read Result

    Result is null,

    So update Grade to C

    TOM: Update the Result to Pass

    Can you identify the problem here? How do you propose to make sure that problem

    does not occur again?

    Problems with simultaneous access to same data

  • Slide 64

    Activity

    Alice and Akshay have a joint account in ABC Bank. The account

    has Rs.5000. Alice is in London visiting her parents and Akshay is at

    work. Both are in need for some money and they withdraw 3000

    rupees simultaneously.

    Do you foresee any problems that could happen if bank has not

    dealt with this situation?

    64

  • Slide 65

    Problems with concurrency

    Lost update

    Transaction A reads the data with the intention of updating it.

    Meanwhile another transaction B has already changed the data in

    between the read and update of transaction A.

    Dirty read

    transaction A reading data that has not yet been committed by

    transaction B

    Non repeatable read

    Transaction A tries to read the data it has already read and now finds

    that the data in the row(s) is/are changed or deleted by another

    transaction B.

    Phantom records

    Transaction A executes the same query twice to find that the both the

    queries return different result set. 65

  • Slide 66

    Transaction Processing

    Logical unit of program execution that takes a database from one

    consistent state to another consistent state.

    A transaction is a collection of SQL statements that are either

    committed completely or rolled back completely even if one statement

    in the transaction fails to execute.

    Oracle database engine creates unique transaction ID for all

    transactions.

    A transaction must comply to ACID properties

    66

    Concurrency techniques: Locking Time stamping

  • Slide 67

    ACID properties

    Atomicity

    Either all the sql statements that is part of the transaction, are

    committed or none

    Consistency

    The state of the database before and after the execution of

    transaction must be consistent

    Isolation

    Even though the transitions are executing simultaneously, the result

    of the simultaneous execution must be as if they are run in isolation

    or one after another.

    The result of the transaction must be visible only after the transaction

    has been committed.67

    Atomicity Example: if a transaction starts updating salaries for all the 1000 employees and database crashes after 999th record, then the database rolls back the all the changes to 1000 records. Consistency Example, transfer of money from one account to another account must not stop with debiting the amount in one account and not crediting in another. Isolation In the 1st example, imagine what would happen if the an employee sees his salary has increased and his colleague does not see it being reflected.

  • Slide 68

    Durability

    Changes made by the committed transactions which are

    temporarily held in the current in-memory database image are

    made permanent by recording them in the hard disk. Even while

    changes are being made, system crashes occur, the recovery

    mechanism ensure that the result of the transaction is not lost.

    68

  • Slide 69

    Exercises

    1. Normalize the given table to 2NF and 3NF.

    Happy Home Super market deals with groceries, household items,

    stationary products and gift items. They have announced a summer

    mela where, for every customer who holds a membership with

    Happy Home, any three items can be taken for free. The total price

    of the three items should be equal to or below Rs.1000. They record

    details of these free products given to their member customers in a

    table as below.

    69

    15 mins

  • Slide 70

    70

    2. Normalize the given table ensuring no data loss and data redundancy.

    15 mins

  • Slide 71

    3. Good Work Cooperation is the Computer Programming Services industry

    in DALLAS, TX. It has offices throughout North and South India.

    Employee fills in the following details at the time of joining : Name, Phone

    number, Hiredate, Salary, Commission and Address. He/She is given a

    unique ID.

    Employee is then allocated a project under a LOB. He/She reports to a

    Reporting Manager who is also an employee.

    Projects have a unique id, name, duration (in months), Project Manager

    who is an employee. Every project is under a LOB.

    Every LOB has a unique ID, Name and multiple locations(address) from

    where they operate.

    Design an appropriate set of Normalized Relations to represent this

    information

    71