Solved Exercise - Reducing Entity Relationship Diagram into Tables, Convert ER diagram to tables, relational schemas, ER model to relational model, Descriptive attributes into relational schema, Weak entity set into relational schema - How to?
Entity Relationship Diagram Exercise 7
Question:
Convert/reduce the ER Diagram given
in figure 1 below;
| Figure 1 - ER diagram with Weak Entity set | 
Solution:
Given in the figure;
Entity
sets and relationship sets
| 
Name | 
Entity set /
  Relationship set | 
Type | 
| 
Manufacturer | 
Entity set | 
Strong entity set | 
| 
Part | 
Entity set | 
Strong entity set | 
| 
Order | 
Entity set | 
Weak entity set | 
| 
Customer | 
Entity set | 
Strong entity set | 
| 
Made-by | 
Relationship set | 
One-to-Many from Manufacturer
  to Part | 
| 
Contains | 
Relationship set | 
Many-to-Many
  between Order and Part with descriptive attribute Quantity | 
| 
Order | 
Weak Relationship
  set | 
One-to-Many from Customer
  to Order
   | 
Strong
Entity set Manufacturer
| 
Attributes | 
Attribute Type | 
Description | 
| 
Name | 
Simple and
  Primary key | 
Manufacturer name
  – Primary key | 
| 
Address | 
Composite | 
Manufacturer
  address with street and city as the component attributes | 
Strong
Entity set Part
| 
Attributes | 
Attribute Type | 
Description | 
| 
Part_num | 
Simple and
  Primary key | 
Part number –
  primary key | 
| 
Description | 
Simple | 
Part description | 
Strong
Entity set Customer
| 
Attributes | 
Attribute Type | 
Description | 
| 
ID | 
Simple and
  Primary key | 
Customer ID –
  primary key | 
| 
Name | 
Simple | 
Name of the
  customer | 
Weak Entity
set Order
| 
Attributes | 
Attribute Type | 
Description | 
| 
Order_num | 
Simple and Discriminator | 
Order number. It
  is the discriminator (primary key of weak entity set) | 
Reduction
into relational schema
I have explained the reduction of
the given ER diagram in the table given below. Each component like Strong
entity sets, relationship sets, composite attributes etc are converted into the
appropriate relational schemas and the fourth column shows the changes in the
schema at every stage. Final relational schema of an entity set is highlighted
in green
color and foreign keys in blue color.
| 
ER Component | 
Type | 
Reduction Rule | 
Relational schema after reduction | 
| 
Manufacturer | 
Strong Entity Set | 
Name of the entity set as name of the relation schema
  and attributes of entity set as attributes of relation schema | 
Manufacturer (name, address) | 
| 
address | 
Composite
  attribute of Manufacturer | 
Include the component attributes to the relation
  schema, and remove the composite attributes | 
Manufacturer (name, street,
  city) | 
| 
Part | 
Strong Entity Set | 
Refer above | 
Part (part_num,
  description) | 
| 
made-by  | 
One-to-many
  relationship | 
Include the primary key of one side as the foreign
  key of the other side | 
Hence, the many
  side relation schema Part becomes as follows; 
Part (part_num, description, name) 
Here, name is the
  foreign key and refers Manufacturer. | 
| 
Customer | 
Strong entity set | 
Refer above. | 
Customer (ID, Name) | 
| 
Order | 
Weak entity set | 
Relation schema for a weak entity set is created by
  including the primary key of strong entity set on which it depends. | 
Order depends on
  Customer. Hence, primary key of customer has to be included as the foreign
  key in Order as follow; 
Order (order_num, ID) 
Here, ID is
  foreign key and (order_num, ID) is the primary key. | 
| 
Contains | 
Many-to-many
  relationship between Part and Order. | 
For a many-to-many relationship, the relationship
  will be converted as a table with the primary keys of all participating
  entity sets as attributes. | 
Contains (order_num, part_num) | 
| 
Quantity | 
Descriptive
  attribute of the relationship set Contains | 
Descriptive attributes will become the part of the
  relationship table. | 
Hence, Contains
  become; 
Contains (order_num, part_num, Quantity) | 
| 
Total participation between Order (Weak ES) and Contains (M-M relationship) | 
Total
  participation. | 
The primary key of other side table, and descriptive
  attributes (if any) of the relationship should be included as attributes of
  table which totally participates on the given relationship. | 
The participation
  of weak entity set Order in the relationship Contains
  is total. 
Hence, the
  primary key of Part and the descriptive attribute of Contains have to be
  added with Order schema as follows; 
Order (order_num, ID, part_num,
  Quantity) | 
| 
order | 
One-to-many weak relationship | 
Need not be converted into table | 
- | 
Total
participation – “The participation of an entity
set E in a relationship set R is said to be total if every entity in E
participates in at least one relationship in R”. – Database System Concepts by
Silberschatz et al.
Final relational
schema after reduction is as follows;
Manufacturer (name, street,
city)
Part (part_num, description,
name)
Customer (ID, Name)
Order (order_num, ID, part_num,
Quantity)
*******************
Go to ER model - Solved Exercises page   
 
This is the good example!!!!!!!!!!!!!!
ReplyDeleteWhat about CONTAINS Relationship
ReplyDeleteupdated. thanks
Deletethank
ReplyDeleteWhy don't we make another table for contain also just like any other many to many relationship , can any one explain ?
ReplyDeleteContains(order_num, part_num, quantity). As order is a weak entity totally participated on contains relationship we included part_num with order table. Hence, it would be redundant. So we removed contains and instead retained order with all attributes of contains.
Deletewhy is ID a parts of the primary Keys in the order schema. shouldn't it be a foreign key?
ReplyDeleteID is both foreign key (as it is a key of strong entity set customer) and part of primary key (because ORDER is weak and depends on CUSTOMER, refer figure, 1-to-n relationship). As per the rule, the key for a weak entity set = Disciminator + Primary key of identifying strong entity set.
Delete