23
Database Design & Normalization UNIT-III

Database Design and Normalization Techniques

Embed Size (px)

Citation preview

Page 1: Database Design and Normalization Techniques

Database Design & NormalizationUNIT-III

Page 2: Database Design and Normalization Techniques

Determinant and Dependent

• The expression X → Y means 'if I know the value of X, then I can obtain the value of Y' (in a table or somewhere).

• In the expression X → Y, X is the determinant and Y is the dependent attribute.• The value X determines the value of Y.• The value Y depends on the value of X.

Page 3: Database Design and Normalization Techniques

Functional Dependencies (FD)• An attribute is functionally dependent if its value is determined by another attribute which is a key.

• That is, if we know the value of one (or several) data items, then we can find the value of another (or several).

• Functional dependencies are expressed as X → Y, where X is the determinant and Y is the functionally dependent attribute.

• If A →(B,C) then A → B and A → C.

• If (A,B) → C, then it is not necessarily true that A → C and B → C.

• If A → B and B → A, then A and B are in a 1-1 relationship.

• If A → B then for A there can only ever be one value for B.

Page 4: Database Design and Normalization Techniques

…• Functional dependency is a relationship that exists when one attribute uniquely determines another attribute.

• If R is a relation with attributes X and Y, a functional dependency between the attributes is represented as X->Y, which specifies Y is functionally dependent on X. Here X is a determinant set and Y is a dependent attribute. Each value of X is associated precisely with one Y value.

• Functional dependency in a database serves as a constraint between two sets of attributes. Defining functional dependency is an important part of relational database design and contributes to aspect normalization.

Example: In a table with attributes of employee name and Social Security number (SSN), employee name is functionally dependent on SSN because the SSN is unique for individual names. An SSN identifies the employee specifically, but an employee name cannot distinguish the SSN because more than one employee could have the same name.

Page 5: Database Design and Normalization Techniques

Transitive Dependencies (TD)• An attribute is transitively dependent if its value is determined by another attribute which is not a key.

• If X → Y and X is not a key then this is a transitive dependency.

• A transitive dependency exists when A → B → C but NOT A → C.

Page 6: Database Design and Normalization Techniques

Multi-Valued Dependencies (MVD)• A table involves a multi-valued dependency if it may contain multiple values for an entity.

• X→Y, i.e. X multi-determines Y, when for each value of X we can have more than one value of Y.

• If A→B and A→C then we have a single attribute A which multi-determines two other independent attributes, B and C.

• If A→(B,C) then we have an attribute A which multi-determines a set of associated attributes, B and C.

Page 7: Database Design and Normalization Techniques

Why Normalization: Redundancy Roll No. Name Age Branch Branch ID

1 Anmol 24 CSE 101

2 Ansh 23 CSE 101

3 Akshay 25 CSE 101

4 Bhuvnesh 26 CSE 101

Page 8: Database Design and Normalization Techniques

Anomalies of Database Update anomalies − If data items are scattered and are not linked to each other properly, then it could lead to strange situations. For example, when we try to update one data item having its copies scattered over several places, a few instances get updated properly while a few others are left with old values. Such instances leave the database in an inconsistent state.

In the above example if the branch code 101 is updated to 102, in that case we need to update all the rows.

Deletion anomalies − We tried to delete a record, but parts of it was left undeleted because of unawareness, the data is also saved somewhere else.

In the above slide example, when we delete all the record of students automatically the data of branch name and branch id is getting deleted, which is not required to delete. We are deleting student information because of which branch information is also being deleted.

Insert anomalies − We tried to insert data in a record that does not exist at all.

Page 9: Database Design and Normalization Techniques

Normalization Normalization is a method to remove all these anomalies and bring the database to a consistent state or we can say it is the process to remove redundancy.

It contains 4 ways to resolve anomalies using 4 normal forms.

1. First Normal Form

2. Second Normal Form

3. Third Normal Form

4. Boyce-Codd Normal Form

Page 10: Database Design and Normalization Techniques

First Normal Form First Normal Form is defined in the definition of relations (tables) itself. This rule defines that all the attributes in a relation must have atomic domains. The values in an atomic domain are indivisible units.

We re-arrange the relation (table), to convert it to First Normal Form.

Before Normalization

After Normalization

Page 11: Database Design and Normalization Techniques

Second Normal Form If we follow second normal form, then every non-prime attribute should be fully functionally dependent on prime key attribute. That is, if X → A holds, then there should not be any proper subset Y of X, for which Y → A also holds true. Prime Key Attributes: Stud_ID, Proj_ID

Non Key Attributes: Stu_Name, Proj_Name

As per rule: Non-key attributes, i.e. Stu_Name and Proj_Name must be dependent upon both and not on any of the prime key attribute individually.

But we find that Stu_Name can be identified by Stu_ID and Proj_Name can be identified by Proj_ID independently. This is called partial dependency, which is not allowed in Second Normal Form.

Page 12: Database Design and Normalization Techniques

Page 13: Database Design and Normalization Techniques

Third Normal Form For a relation to be in Third Normal Form, and the following must satisfy −

• It must be in Second Normal form

• No non-prime attribute is transitively dependent on prime key attribute.

• Every non-prime attribute of R is non-transitively dependent on every key of R.

We find that in the above Student_detail relation, Stu_ID is the key and only prime key attribute. We find that City can be identified by Stu_ID as well as Zip itself. Neither Zip is a superkey nor is City a prime attribute. Additionally, Stu_ID → Zip → City, so there exists transitive dependency.

Page 14: Database Design and Normalization Techniques

Page 15: Database Design and Normalization Techniques

Boyce-Codd Normal Form Boyce-Codd Normal Form (BCNF) is an extension of Third Normal Form on strict terms. BCNF states that −

For any non-trivial functional dependency, X → A, X must be a super-key.

In the above image, Stu_ID is the super-key in the relation Student_Detail and Zip is the super-key to the relation ZipCodes. So,

Stu_ID → Stu_Name, Zip

and

Zip → City

Which confirms that both the relations are in BCNF.

Page 16: Database Design and Normalization Techniques

Loss-less join Decomposition• Decomposition – the process of breaking down in parts or elements.

• Decomposition in database means breaking tables down into multiple tables From Database perspective means going to a higher normal form.

• Important that decompositions are “good”,

• Two Characteristics of Good Decompositions

1) Lossless: Means functioning without a loss. In other words, retain everything after being break in two or more tables.

2) Preserve dependencies

Page 17: Database Design and Normalization Techniques

Lossless Decomposition Sometimes the same set of data is reproduced:

(Word, 100) + (Word, WP) (Word, 100, WP) (Oracle, 1000) + (Oracle, DB) (Oracle, 1000, DB) (Access, 100) + (Access, DB) (Access, 100, DB)

Name Price CategoryWord 100 WP

Oracle 1000 DB

Access 100 DB

Name PriceWord 100

Oracle 1000

Access 100

Name CategoryWord WP

Oracle DB

Access DB

Page 18: Database Design and Normalization Techniques

Lossy Decomposition Sometimes it’s not: (Word, WP) + (100, WP) = (Word, 100, WP) (Oracle, DB) + (1000, DB) = (Oracle, 1000, DB) (Oracle, DB) + (100, DB) = (Oracle, 100, DB) (Access, DB) + (1000, DB) = (Access, 1000, DB) (Access, DB) + (100, DB) = (Access, 100, DB)

Name Price CategoryWord 100 WP

Oracle 1000 DB

Access 100 DB

Category NameWP Word

DB Oracle

DB Access

Category PriceWP 100

DB 1000

DB 100

What’swrong?

Page 19: Database Design and Normalization Techniques

Column Name Data Type

supplierID(primary key) Int

suppliername varchar(20)

products varchar(20)

SupplierID Supplier Name Products

1 Yeki Inc. tshirt, shirt, jeans

Column Name Data Type

supplierID(primary key) Int

suppliername varchar(20)

Column Name Data Type

Productid Int

Productname varchar(20)

Supplierid Int

Suppliers

Suppliers

Products

1NFFirst Normal

Form

Page 20: Database Design and Normalization Techniques

Column Name Data Type

Productid Int

Productname varchar(20)

StoreName Varchar(20)

Price int

Products

ProductID ProductName StoreName Price

1 Blue Shirt Store1 2000

2 White Shirt Store2 2300

3 Grey Shirt Store5 2200

4 Blue Shirt Store4 2000

Column Name Data Type

Productid Int

Productname varchar(20)

Price int

Column Name Data Type

Storeid Int

StoreName varchar(20)

ProductName Varchar(20)

Products Stores

2NFSecond Normal

Form

1. There should not be any partial key dependencies. Attribute must be depended upon key.

2. Another principle is there should not be no derived data or calculated fields, such as total, while you have price and quantity in the table.

Here product is dependent on store but the attributes don’t have to be depend only on key, so product name in this case does depend on store, but it doesn’t only depend on store for its existence.

Page 21: Database Design and Normalization Techniques

Column Name Data Type

Productid Int

Productname varchar(20)

Price int

Column Name Data Type

Storeid Int

StoreName varchar(20)

Column Name Data Type

Storeid Int

Productid varchar(20)

Products Stores

Inventory3NF

Third Normal Form

Attribute must be solely dependent upon the key.

Third normal form essentially removes the transitive dependency.

Page 22: Database Design and Normalization Techniques

BCNFStudentID Name Course Duration

1 Tom Java 60

2 Jerry Database 90

3 Duck Database Adv 100

4 Donalds Database 100

Page 23: Database Design and Normalization Techniques

THANKS