Unit Three
Unit Three
Database Design
Database design is the process of coming up with different kinds of specification for the data to
be stored in the database. The database design part is one of the middle phases we have in
information systems development (DBS) where the system uses a database approach. Design is
the part on which we would be engaged to describe how the data should be perceived at different
levels and finally how it is going to be stored in a computer system.
The DBS has different development lifecycles. From which the design part is sub divided into
three sub-phases. These sub-phases are:
1. Conceptual Database Design
2. Logical Design Database, and
3. Physical Database Design
In developing a good design, one should answer such questions as:
What are the relevant Entities for the Organization
What are the important features of each Entity
What are the important Relationships
What are the important queries from the user
What are the other requirements of the Organization and the Users
Conceptual Design
Logical Design
Physical Design
Conceptual Database Design
Conceptual design is the process of constructing a model of the information used in an
enterprise, independent of any physical considerations.
1
It is the source of information for the logical design phase.
Mostly uses an Entity Relationship Model to describe the data at this level.
After the completion of Conceptual Design one has to go for refinement of the schema,
which is verification of Entities, Attributes, and Relationships.
NOTE:
In conceptual data model/Design
o Identify what are the entities/entity types
o Identify what are the attributes: - the information about entities and relationship should we store
in the database.
o Identify relationship types
o Identify what are the constraints/business rules that hold?
o Draw entity-relationship diagram: - representing the database in the ER model using pictorial
representation called ER diagram
In logical data model/Design
2
o Map the conceptual model to a logical model
o Mapping entities and relationships in ER-Diagram into tables
-Translate ER-diagram with constraints
o Derive relations from the logical data model
o Validate model using normalization
o Draw entity-relationship diagram
o Define integrity constraints
o Check for future growth
NB: Startng from this we are going to design database using the relational database model.
3
Attributes
o Represents the property used to describe an entity or a relationship
Relationships
o Represents the association that exist between entities
Constraints
o Represent the constraint in the data
Id Gpa
Students Courses
Age
Enrolled_In Semester
Academic
Year
Grade
5
Department will have an Id, Name, Location. Whenever an Employee is assigned in one
Department, the duration of his stay in the respective department should be registered.
1..1 0..1
Employee Manages Branch
One-To-Many Relationships
E.g.: Relationship Leads between STAFF and PROJECT
The multiplicity of the relationship is:
One staff may Lead one or more project(s)
One project is Lead by one staff
1..1 0..*
Employee Leads Project
Many-To-Many Relationship
E.g.: Relationship Teaches between INSTRUCTOR and COURSE
The multiplicity of the relationship
One Instructor Teaches one or more Course(s)
One Course Thought by Zero or more Instructor(s)
6
0..* 1..*
Instructor Teaches Course
Problem: Which car (Car1 or Car3 or Car5) is used by Employee 6. Emp6 working in Branch 1
(Bra1). Thus from this ER Model one can not tell which car is used by which staff since a branch
can have more than one car and also a branch is populated by more than one employee. Thus we
need to restructure the model to avoid the connection trap.
To avoid the Fan Trap problem we can go for restructuring of the E-R Model. This will result in
the following E-R Model.
1..1 Has 1..* 1..* Used By 1..*
Branch Car Employee
Semantics description of the problem;
Car1
Bra1 Emp1
Car2
Bra2 Emp2
Car3
Bra3 Emp3
Car4 8
Bra4 Emp4
Car5
Emp5
Car6
Emp6
2. Chasm Trap:
Occurs where a model suggests the existence of a relationship between entity types, but
the path way does not exist between certain entity occurrences.
May exist when there are one or more relationships with a minimum multiplicity on
cardinality of zero forming part of the pathway between related entities.
Example:
If we have a set of projects that are not active currently then we can not assign a project manager
for these projects. So there are project with no project manager making the participation to have
a minimum value of zero.
Problem:
How can we identify which BRANCH is responsible for which PROJECT? We know that
whether the PROJECT is active or not there is a responsible BRANCH. But which branch is a
question to be answered, and since we have a minimum participation of zero between employee
and PROJECT we can’t identify the BRANCH responsible for each PROJECT.
The solution for this Chasm Trap problem is to add another relationship between the extreme
entities (Branch and Project).
9
Object-oriented extensions to E-R model. EER is important when we have a relationship
between two entities and the participation is partial between entity occurrences. In such cases
EER is used to reduce the complexity in participation and relationship complexity. ER diagrams
consider entity types to be primitive objects. EER diagrams allow refinements within the
structures of entity types.
EER Concepts: In this part we will discuss the following basic EER concepts.
Generalization
Specialization
Sub classes
Super classes
Attribute Inheritance
Constraints on specialization and generalization
Generalization
Generalization occurs when two or more entities represent categories of the same real-world
object. Generalization is the process of defining a more general entity type from a set of more
specialized entity types. A generalization hierarchy is a form of abstraction that specifies that
two or more entities that share common attributes can be generalized into a higher level
entity type. Generalization is considered as bottom-up definition of entities.
Generalization hierarchies can be nested. That is, a subtype of one hierarchy can be a
supertype of another. The level of nesting is limited only by the constraint of simplicity.
Example: Account is a generalized form for Saving and Current Accounts.
Specialization
10
Specialization is the result of subset of a higher level entity set to form a lower level entity set.
The specialized entities will have additional set of attributes (distinguishing characteristics) that
distinguish them from the generalized entity. Is considered as Top-Down definition of entities.
Specialization process is the inverse of the Generalization process. Identify the distinguishing
features of some entity occurrences, and specialize them into different subclasses.
Subclass/Subtype
An entity type whose tuples have attributes that distinguish its members from tuples of the
generalized or Superclass entities. When one generalized Superclass has various subgroups with
distinguishing features and these subgroups are represented by specialized form, the groups are
called subclasses. Subclasses can be either mutually exclusive (disjoint) or overlapping
(inclusive). A single subclass may inherit attributes from two distinct superclasses. A mutually
exclusive category/subclass is when an entity instance can be in only one of the subclasses. E.g.:
An EMPLOYEE can either be SALARIED or PART-TIMER but not both.
An overlapping category/subclass is when an entity instance may be in two or more subclasses.
E.g.: A person who works for a university can be both employee and a student at the same time.
Superclass /Supertype
An entity type whose tuples share common attributes. Attributes that are shared by all entity
occurrences (including the identifier) are associated with the supertype. Superclass /Supertype Is
the generalized entity.
11
super-class entity. An entity cannot exist in the database merely by being a member of a
subclass; it must also be a member of the super-class. An entity occurrence of a sub class not
necessarily should belong to any of the subclasses unless there is full participation in the
specialization. The relationship between a subclass and a Superclass is an “IS A” or “IS PART
OF” type.
Subclass IS PART OF Superclass
Manager IS AN Employee
All subclasses or specialized entity sets should be connected with the superclass using a line to a
circle where there is a subset symbol indicating the direction of subclass/superclass relationship.
Attribute Inheritance
An entity that is a member of a subclass inherits all the attributes of the entity as a member of the
superclass. The entity also inherits all the relationships in which the superclass participates. An
entity may have more than one subclass categories. All entities/subclasses of a generalized entity
or superclass share a common unique identifier attribute (primary key). i.e. The primary key of
the superclass and subclasses are always identical.
12
Consider the EMPLOYEE supertype entity shown above. This entity can have several different
subtype entities (for example: HOURLY and SALARIED), each with distinct properties not
shared by other subtypes. But whether the employee is Hourly or Salaried, same attributes
(EmployeeId, Name, and DateHired) are shared. The Supertype EMPLOYEE stores all
properties that subclasses have in common. And HOURLY employees have the unique attribute
Wage (hourly wage rate), while SALARIED employees have two unique attributes, StockOption
and Salary.
13
The Partial Specialization Rule specifies that it is not necessary for all entity occurrences in the
superclass to be a member of one of the subclasses. Here we have an optional participation on
the specialization. Partial Participation of superclass instances on subclasses is diagrammed with
a single line from the Supertype to the circle. E.g.: If we have Manager and Secretary as
subclasses of a superclass Employee, then it is not the case that all employees are either manager
or secretary. Thus the participation of instances of employee in manager and secretary subclasses
will be partial.
2. Disjointness Constraints
Specifies the rule whether one entity occurrence can be a member of more than one subclasses.
i.e. it is a type of business rule that deals with the situation where an entity occurrence of a
Superclass may also have more than one Subclass occurrence. The Disjoint Rule restricts one
entity occurrence of a superclass to be a member of only one of the subclasses. Example: a
Employee can either be salaried or part-timer, but not the both at the same time. The Overlap
Rule allows one entity occurrence to be a member f more than one subclass. Example:
Employee working at the university can be both a Student and an employee at the same time.
This is diagrammed by placing either the letter "d" for disjoint or "o" for overlapping inside the
circle on the Generalization Hierarchy portion of the E-R diagram.
From the two types of constraints we can have four possible constraints
@ Disjoint AND Total :- E.g: Employee is always be salaried or part time, but it can’t be
both.
@ Disjoint AND Partial :- E.g: Employe can’t be manager and secretary, also can be none
of the two.
@ Overlapping AND Total :- E.g: Student is always be regular or extension, and it can be
both.
14
@ Overlapping AND Partial :- E.g: Person can be employee and student, also can be none
of the two.
15