Download presentation
Presentation is loading. Please wait.
1
Database Management Systems
Dr. Mohamed Khafagy
2
Overview of Database Design Process
Two main activities: Database design Applications design To design the conceptual schema for a database application Applications design focuses on the programs and interfaces that access the database
3
Overview of Database Design Process
draw the entity Relationship diagram converting the entity relationship diagram into tables executing the tables in an actual DBMS software file
4
Example COMPANY Database
We need to create a database schema design based on the following (simplified) requirements of the COMPANY Database: The company is organized into DEPARTMENTs. Each department has a name, number and an employee who manages the department. We keep track of the start date of the department manager. A department may have several locations. Each department controls a number of PROJECTs. Each project has a unique name, unique number and is located at a single location.
5
Example COMPANY Database (Contd.)
We store each EMPLOYEE’s social security number, address, salary, sex, and birthdate. Each employee works for one department but may work on several projects. We keep track of the number of hours per week that an employee currently works on each project. We also keep track of the direct supervisor of each employee. Each employee may have a number of DEPENDENTs. For each dependent, we keep track of their name, sex, birthdate, and relationship to the employee.
6
ER Model Concepts Entities and Attributes
Entities are specific objects or things in the mini-world that are represented in the database. For example the EMPLOYEE John Smith, the Research DEPARTMENT, the ProductX PROJECT Attributes are properties used to describe an entity. For example an EMPLOYEE entity may have the attributes Name, SSN, Address, Sex, BirthDate A specific entity will have a value for each of its attributes. For example a specific employee entity may have Name='John Smith', SSN=' ', Address ='731, Fondren, Houston, TX', Sex='M', BirthDate='09-JAN-55‘ Each attribute has a value set (or data type) associated with it – e.g. integer, string, subrange, enumerated type, …
7
Types of Attributes (1) Simple Composite Multi-valued
Each entity has a single atomic value for the attribute. For example, SSN or Sex. Composite The attribute may be composed of several components. For example: Address(Apt#, House#, Street, City, State, ZipCode, Country), or Name(FirstName, MiddleName, LastName). Composition may form a hierarchy where some components are themselves composite. Multi-valued An entity may have multiple values for that attribute. For example, Color of a CAR or PreviousDegrees of a STUDENT. Denoted as {Color} or {PreviousDegrees}.
8
Types of Attributes (2) In general, composite and multi-valued attributes may be nested arbitrarily to any number of levels, although this is rare. For example, PreviousDegrees of a STUDENT is a composite multi-valued attribute denoted by {PreviousDegrees (College, Year, Degree, Field)} Multiple PreviousDegrees values can exist, each has four subcomponent attributes: College, Year, Degree, Field
9
Example of a composite attribute
10
Entity Types and Key Attributes (1)
Entities with the same basic attributes are grouped or typed into an entity type. For example, the entity type EMPLOYEE and PROJECT. An attribute of an entity type for which each entity must have a unique value is called a key attribute of the entity type. For example, SSN of EMPLOYEE.
11
Entity Types and Key Attributes (2)
A key attribute may be composite. VehicleTagNumber is a key of the CAR entity type with components (Number, State). An entity type may have more than one key. The CAR entity type may have two keys: VehicleIdentificationNumber (popularly called VIN) VehicleTagNumber (Number, State), aka license plate number. Each key is underlined
12
Keys Let K R K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) by “possible r ” we mean a relation r that could exist in the enterprise we are modeling. Example: {customer_name, customer_street} and {customer_name} are both superkeys of Customer, if no two customers can possibly have the same name In real life, an attribute such as customer_id would be used instead of customer_name to uniquely identify customers, but we omit it to keep our examples small, and instead assume customer names are unique.
13
Keys (Cont.) K is a candidate key if K is minimal Example: {customer_name} is a candidate key for Customer, since it is a superkey and no subset of it is a superkey. Primary key: a candidate key chosen as the principal means of identifying tuples within a relation Should choose an attribute whose value never, or very rarely, changes. E.g. address is unique, but may change
14
Foreign Keys A relation schema may have an attribute that corresponds to the primary key of another relation. The attribute is called a foreign key. E.g. customer_name and account_number attributes of depositor are foreign keys to customer and account respectively. Only values occurring in the primary key attribute of the referenced relation may occur in the foreign key attribute of the referencing relation. Schema diagram
15
Displaying an Entity type
In ER diagrams, an entity type is displayed in a rectangular box Attributes are displayed in ovals Each attribute is connected to its entity type Components of a composite attribute are connected to the oval representing the composite attribute Each key attribute is underlined Multivalued attributes displayed in double ovals See CAR example on next slide
16
Entity Type CAR with two keys and a corresponding Entity Set
17
Initial Design of Entity Types for the COMPANY Database Schema
Based on the requirements, we can identify four initial entity types in the COMPANY database: DEPARTMENT PROJECT EMPLOYEE DEPENDENT Their initial design is shown on the following slide The initial attributes shown are derived from the requirements description
18
Initial Design of Entity Types: EMPLOYEE, DEPARTMENT, PROJECT, DEPENDENT
19
Refining the initial design by introducing relationships
The initial design is typically not complete Some aspects in the requirements will be represented as relationships ER model has three main concepts: Entities (and their entity types and entity sets) Attributes (simple, composite, multivalued) Relationships (and their relationship types and relationship sets) We introduce relationship concepts next
20
Relationships and Relationship Types (1)
A relationship relates two or more distinct entities with a specific meaning. For example, EMPLOYEE John Smith works on the ProductX PROJECT, or EMPLOYEE Franklin Wong manages the Research DEPARTMENT. Relationships of the same type are grouped or typed into a relationship type. For example, the WORKS_ON relationship type in which EMPLOYEEs and PROJECTs participate, or the MANAGES relationship type in which EMPLOYEEs and DEPARTMENTs participate. The degree of a relationship type is the number of participating entity types. Both MANAGES and WORKS_ON are binary relationships.
21
Relationship instances of the WORKS_FOR N:1 relationship between EMPLOYEE and DEPARTMENT
22
Relationship instances of the M:N WORKS_ON relationship between EMPLOYEE and PROJECT
23
Relationship type vs. relationship set (1)
Is the schema description of a relationship Identifies the relationship name and the participating entity types Also identifies certain relationship constraints Relationship Set: The current set of relationship instances represented in the database The current state of a relationship type
24
Relationship type vs. relationship set (2)
Previous figures displayed the relationship sets Each instance in the set relates individual participating entities – one from each participating entity type In ER diagrams, we represent the relationship type as follows: Diamond-shaped box is used to display a relationship type Connected to the participating entity types via straight lines
25
Refining the COMPANY database schema by introducing relationships
By examining the requirements, six relationship types are identified All are binary relationships( degree 2) Listed below with their participating entity types: WORKS_FOR (between EMPLOYEE, DEPARTMENT) MANAGES (also between EMPLOYEE, DEPARTMENT) CONTROLS (between DEPARTMENT, PROJECT) WORKS_ON (between EMPLOYEE, PROJECT) SUPERVISION (between EMPLOYEE (as subordinate), EMPLOYEE (as supervisor)) DEPENDENTS_OF (between EMPLOYEE, DEPENDENT)
26
ER DIAGRAM – Relationship Types are: WORKS_FOR, MANAGES, WORKS_ON, CONTROLS, SUPERVISION, DEPENDENTS_OF
27
Recursive Relationship Type
A relationship type with the same participating entity type in distinct roles Example: the SUPERVISION relationship EMPLOYEE participates twice in two distinct roles: supervisor (or boss) role supervisee (or subordinate) role Each relationship instance relates two distinct EMPLOYEE entities: One employee in supervisor role One employee in supervisee role
28
Weak Entity Types An entity that does not have a key attribute
A weak entity must participate in an identifying relationship type with an owner or identifying entity type Entities are identified by the combination of: A partial key of the weak entity type The particular entity they are related to in the identifying entity type Example: A DEPENDENT entity is identified by the dependent’s first name, and the specific EMPLOYEE with whom the dependent is related Name of DEPENDENT is the partial key DEPENDENT is a weak entity type EMPLOYEE is its identifying entity type via the identifying relationship type DEPENDENT_OF
29
Many-to-one (N:1) Relationship
30
Many-to-many (M:N) Relationship
31
Displaying a recursive relationship
In a recursive relationship type. Both participations are same entity type in different roles. For example, SUPERVISION relationships between EMPLOYEE (in role of supervisor or boss) and (another) EMPLOYEE (in role of subordinate or worker). In following figure, first role participation labeled with 1 and second role participation labeled with 2. In ER diagram, need to display role names to distinguish participations.
32
A Recursive Relationship Supervision`
33
Recursive Relationship Type is: SUPERVISION (participation role names are shown)
34
Attributes of Relationship types
A relationship type can have attributes: For example, HoursPerWeek of WORKS_ON Its value for each relationship instance describes the number of hours per week that an EMPLOYEE works on a PROJECT. A value of HoursPerWeek depends on a particular (employee, project) combination Most relationship attributes are used with M:N relationships In 1:N relationships, they can be transferred to the entity type on the N-side of the relationship
35
Example Attribute of a Relationship Type: Hours of WORKS_ON
36
Alternative (min, max) notation for relationship structural constraints:
Specified on each participation of an entity type E in a relationship type R Specifies that each entity e in E participates in at least min and at most max relationship instances in R Default(no constraint): min=0, max=n (signifying no limit) Must have minmax, min0, max 1 Derived from the knowledge of mini-world constraints Examples: A department has exactly one manager and an employee can manage at most one department. Specify (0,1) for participation of EMPLOYEE in MANAGES Specify (1,1) for participation of DEPARTMENT in MANAGES An employee can work for exactly one department but a department can have any number of employees. Specify (1,1) for participation of EMPLOYEE in WORKS_FOR Specify (0,n) for participation of DEPARTMENT in WORKS_FOR Database Systems Data Models
37
The (min,max) notation for relationship constraints
Read the min,max numbers next to the entity type and looking away from the entity type
38
COMPANY ER Schema Diagram using (min, max) notation
39
Subclasses and Superclasses (1)
An entity type may have additional meaningful subgroupings of its entities Example: EMPLOYEE may be further grouped into: SECRETARY, ENGINEER, TECHNICIAN, … Based on the EMPLOYEE’s Job MANAGER EMPLOYEEs who are managers SALARIED_EMPLOYEE, HOURLY_EMPLOYEE Based on the EMPLOYEE’s method of pay EER diagrams extend ER diagrams to represent these additional subgroupings, called subclasses or subtypes Database Systems Data Models
40
Subclasses and Superclasses
Database Systems Data Models
41
Subclasses and Superclasses (2)
Each of these subgroupings is a subset of EMPLOYEE entities Each is called a subclass of EMPLOYEE EMPLOYEE is the superclass for each of these subclasses These are called superclass/subclass relationships: EMPLOYEE/SECRETARY EMPLOYEE/TECHNICIAN EMPLOYEE/MANAGER … Database Systems Data Models
42
Subclasses and Superclasses (3)
These are also called IS-A relationships SECRETARY IS-A EMPLOYEE, TECHNICIAN IS-A EMPLOYEE, …. Note: An entity that is member of a subclass represents the same real-world entity as some member of the superclass: The subclass member is the same entity in a distinct specific role An entity cannot exist in the database merely by being a member of a subclass; it must also be a member of the superclass A member of the superclass can be optionally included as a member of any number of its subclasses Database Systems Data Models
43
Subclasses and Superclasses (4)
Examples: A salaried employee who is also an engineer belongs to the two subclasses: ENGINEER, and SALARIED_EMPLOYEE A salaried employee who is also an engineering manager belongs to the three subclasses: MANAGER, It is not necessary that every entity in a superclass be a member of some subclass Database Systems Data Models
44
Representing Specialization in EER Diagrams
Database Systems Data Models
45
Attribute Inheritance in Superclass / Subclass Relationships
An entity that is member of a subclass inherits All attributes of the entity as a member of the superclass All relationships of the entity as a member of the superclass Example: In the previous slide, SECRETARY (as well as TECHNICIAN and ENGINEER) inherit the attributes Name, SSN, …, from EMPLOYEE Every SECRETARY entity will have values for the inherited attributes Database Systems Data Models
46
Specialization (1) Specialization is the process of defining a set of subclasses of a superclass The set of subclasses is based upon some distinguishing characteristics of the entities in the superclass Example: {SECRETARY, ENGINEER, TECHNICIAN} is a specialization of EMPLOYEE based upon job type. May have several specializations of the same superclass Database Systems Data Models
47
Specialization (2) Example: Another specialization of EMPLOYEE based on method of pay is {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}. Superclass/subclass relationships and specialization can be diagrammatically represented in EER diagrams Attributes of a subclass are called specific or local attributes. For example, the attribute TypingSpeed of SECRETARY The subclass can also participate in specific relationship types. For example, a relationship BELONGS_TO of HOURLY_EMPLOYEE Database Systems Data Models
48
Specialization (3) Database Systems Data Models
49
Generalization Generalization is the reverse of the specialization process Several classes with common features are generalized into a superclass; original classes become its subclasses Example: CAR, TRUCK generalized into VEHICLE; both CAR, TRUCK become subclasses of the superclass VEHICLE. We can view {CAR, TRUCK} as a specialization of VEHICLE Alternatively, we can view VEHICLE as a generalization of CAR and TRUCK Database Systems Data Models
50
Generalization (2) Database Systems Data Models
51
Generalization and Specialization (1)
Diagrammatic notation are sometimes used to distinguish between generalization and specialization Arrow pointing to the generalized superclass represents a generalization Arrows pointing to the specialized subclasses represent a specialization We do not use this notation because it is often subjective as to which process is more appropriate for a particular situation We advocate not drawing any arrows Database Systems Data Models
52
Generalization and Specialization (2)
Data Modeling with Specialization and Generalization A superclass or subclass represents a collection (or set or grouping) of entities It also represents a particular type of entity Shown in rectangles in EER diagrams (as are entity types) We can call all entity types (and their corresponding collections) classes, whether they are entity types, superclasses, or subclasses Database Systems Data Models
53
Constraints on Specialization and Generalization (1)
If we can determine exactly those entities that will become members of each subclass by a condition, the subclasses are called predicate-defined (or condition- defined) subclasses Condition is a constraint that determines subclass members Display a predicate-defined subclass by writing the predicate condition next to the line attaching the subclass to its superclass Database Systems Data Models
54
Constraints on Specialization and Generalization (2)
If all subclasses in a specialization have membership condition on same attribute of the superclass, specialization is called an attribute-defined specialization Attribute is called the defining attribute of the specialization Example: JobType is the defining attribute of the specialization {SECRETARY, TECHNICIAN, ENGINEER} of EMPLOYEE If no condition determines membership, the subclass is called user- defined Membership in a subclass is determined by the database users by applying an operation to add an entity to the subclass Membership in the subclass is specified individually for each entity in the superclass by the user Database Systems Data Models
55
Displaying an attribute-defined specialization in EER diagrams
Database Systems Data Models
56
Constraints on Specialization/Generalization
Specialization may consists of multiple subclasses (circle notation) or a single subclass (no circle notation). Disjointness Constraint. Entity must be a member of at most one of the subclasses. It uses (d) notation. Overlap Constraint. Entity may be a member of more than one subclass. It uses (o) notation. Total Specialization. Every entity in the superclass MUST be a member of some subclass. It uses double line notation. Partial Specialization. Entity does not have to belong to any of the subclasses. Employee does not belong to secretary, engineer, technician. Database Systems Data Models
57
Specialization/Generalization Constraints Types
Hence, we have four types of specialization/generalization: Disjoint, total Disjoint, partial Overlapping, total Overlapping, partial Note: Generalization usually is total because the superclass is derived from the subclasses. Database Systems Data Models
58
Example of disjoint partial Specialization
Database Systems Data Models
59
Example of overlapping total Specialization
Database Systems Data Models
60
Specialization/Generalization Hierarchies and Lattices
Specialization Hierarchy. A subclass participates as a subclass in only one class/subclass relationship. Specialization Lattice. A subclass can be a subclass in more than one class/subclass relationship. Leaf Node. Class that has no subclass of its own. Shared Subclass. Subclass with more than one superclass (Figure next slide). Multiple Inheritance Entity inherits attributes and relationships from multiple classes. Database Systems Data Models
61
Shared Subclass “Engineering_Manager”
Database Systems Data Models
62
Utilizing Specialization and Generalization in Conceptual Data Modeling
A top down conceptual refinement process In specialization, start with an entity type and then define subclasses of the entity type by successive specialization A bottom up conceptual synthesis process In generalization, start with many entity types and generalize those that have common properties In practice, a combination of both processes is usually employed Database Systems Data Models
63
Specialization / Generalization Lattice Example (UNIVERSITY)
Database Systems Data Models
64
Categories (UNION TYPES) (1)
All of the superclass/subclass relationships we have seen thus far have a single superclass A shared subclass is a subclass in: more than one distinct superclass/subclass relationships each relationships has a single superclass shared subclass leads to multiple inheritance In some cases, we need to model a single superclass/subclass relationship with more than one superclass Superclasses can represent different entity types Such a subclass is called a category or UNION TYPE Database Systems Data Models
65
Categories (UNION TYPES) (2)
Example: In a database for vehicle registration, a vehicle owner can be a PERSON, a BANK (holding a lien on a vehicle) or a COMPANY. A category (UNION type) called OWNER is created to represent a subset of the union of the three superclasses COMPANY, BANK, and PERSON A category member must exist in at least one of its superclasses Difference from shared subclass, which is a: subset of the intersection of its superclasses shared subclass member must exist in all of its superclasses Database Systems Data Models
66
Two categories (UNION types): OWNER, REGISTERED_VEHICLE
Database Systems Data Models
67
Alternative diagrammatic notations
ER/EER diagrams are a specific notation for displaying the concepts of the model diagrammatically DB design tools use many alternative notations for the same or similar concepts One popular alternative notation uses UML class diagrams see next slides for UML class diagrams and other alternative notations Database Systems Data Models
68
UML Example for Displaying Specialization / Generalization
Database Systems Data Models
69
Conceptual Object Modeling Using UML Class Diagrams
EER UML Entity Class Week Entity Qualified association/Qualified aggregation) Composite attribute Structured domain Multivalue attribute Separate class Relationship Associations (min, max) Multiplicities Database Systems Data Models
70
Alternative Diagrammatic Notations
Database Systems Data Models
71
Relational Database Domain
Integrity Constraints : ( PK, UK, NN, FK, Check) Data types
72
ER-to-Relational Mapping Tables
Step 1: Mapping of Regular Entity Types Step 2: Mapping of Weak Entity Types Step 3: Mapping of Binary 1:1 Relation Types Step 4: Mapping of Binary 1:N Relationship Types. Step 5: Mapping of Binary M:N Relationship Types. Step 6: Mapping of Multi-valued attributes. Step 7: Mapping of N-ary Relationship Types.
73
Step 1: Mapping of Regular Entity Types
Create table for each entity type Choose one of key attributes to be the primary key
74
Step 2: Mapping of Weak Entity Types
Create table for each weak entity. Add foreign key that correspond to the owner entity type. Choose the primary key : ( FK + weak entity Partial PK if any)
75
Step 3: Mapping of Binary 1:1 Relation Types
Merged two tables if both sides are Mandatory. Add FK into table with the total participation relationship to represent optional side. Create third table if both sides are optional.
76
Step 4: Mapping of Binary 1:N Relationship Types.
Add FK to N-side table Add any simple attributes of relationship as column to N-side table.
77
Step 5: Mapping of Binary M:N Relationship Types.
Create a new third table Add FKs to the new table for both parent tables Add simple attributes of relationship to the new table if any .
78
Step 6: Mapping of Multi-valued attributes.
Create new table for each multi-valued attribute Table will include two columns. one for multi-valued attribute + FK column.
79
Step 7: Mapping of N-ary Relationship Types.
If n > 2 then : Create a new third table Add FKs to the new table for all parent tables Add simple attributes of relationship to the new table if any .
81
Mapping Result
82
ERD Case Study An organization makes many models of cars, where a model is characterized by a unique name and a suffix (such as GL or XL) and an engine size. Each model is made up from many parts and Each part has a description , an id code, production year, and many images. each part may be used in the manufacturing of more than one model
83
ERD Case Study Each model must be produced at just one of the firm's factories, which are located in London, Birmingham, Bristol, Wolverhampton and Manchester - one in each city. Each factory has number of machines, capacity, and computer system used ( OS , DBMS, Internet). A factory produces many models of cars and many types of parts. Although the parts and model produced in the same factory. although each type of part is produced at one factory only and the model is produced in the same factory. Discuss Ternary relationship.
84
Ternary Relationship
85
ERD Case Study 2 A country bus company owns a number of buses. A bus is characterized by number, No. of Chairs, Options ( AC , Automatic, PS) , and brand-name Each bus is allocated to a particular route, although some routes may have several buses . Each route is described by KM, start point, end point and the duration.
86
ERD Case Study 2 Each route can passes through a number of towns.
A town may be situated along several routes. We keep track of unique name and station name in each town. One or more drivers are allocated to one route during a period of time. The system keep information about the driver name , mobile number , hire date, basic salary , job grade. The system keep information about any changes in the allocations of the drivers to the routes and the last route assigned to each driver. Oute
87
ERD Narrative A database for a banking system is used to control withdrawal, deposit and loan transactions with customers. Banks which use this system have many branches; each branch has a unique name, unique address and phone. The system stores information about customers as unique customer ID, name, address, and phones.
88
ERD Narrative ( Cont’d)
Each customer has one Account identified by unique Account number, amount, last transaction date (Day, Month and Year). The system records Transaction number, Transaction type, Transaction date, Transaction amount and time. The system records the branch name where the transaction occurred. A Customer can make any type of transactions (Withdrawal or Deposit) from any branch of the bank.
89
An Example A company is organized into departments. Each department has a unique name, a unique number, and a particular employee who manages the department. A department may have several locations. A department may control a number of projects, each of which has a unique name, a unique number, and a single location. A project must controlled by department
90
An Example (Cont’d) We store employee’s name, social security number, address, salary, gender and birth date. An employee must be assigned to one department and must work on one or more projects, which are not necessarily controlled by the same department. We keep track of the number of hours per week that an employee works on each project. We also keep track of the direct supervisor of each employee. We want to keep track of the dependents of each employee for insurance purposes. We keep each dependent’s first name, gender, birth date and relationship to that employee.
92
ERD Case Study An organization makes many models of cars, where a model is characterized by a unique name and a suffix (such as GL or XL) and an engine size. Each model is made up from many parts and Each part has a description , an id code, production year, and many images. each part may be used in the manufacturing of more than one model
93
ERD Case Study Each model must be produced at just one of the firm's factories, which are located in London, Birmingham, Bristol, Wolverhampton and Manchester - one in each city. Each factory has number of machines, capacity, and computer system used ( OS , DBMS, Internet). A factory produces many models of cars and many types of parts. although each type of part is produced at one factory only and the model is produced in the same factory.
94
ERD Case Study 2 A country bus company owns a number of buses. A bus is characterized by number, No. of Chairs, Options ( AC , Automatic, PS) , and brand-name Each bus is allocated to a particular route, although some routes may have several buses . Each route is described by KM, start point, end point and the duration.
95
ERD Case Study 2 Each route can passes through a number of towns.
A town may be situated along several routes. We keep track of unique name and station names in each town. One or more drivers are allocated to one route during a period of time. The system keep information about the driver name , mobile number , hire date, basic salary , job grade. The system keep information about any changes in the allocations of the drivers to the routes.
96
ERD Narrative: Lab A database for a banking system is used to control withdrawal, deposit and loan transactions with customers. Banks which use this system have many branches; each branch has a unique name, unique address and phone. The system stores information about customers as unique customer ID, name, address, and phones.
97
ERD Narrative ( Cont’d)
Each customer has one Account identified by unique Account number, amount, last transaction date (Day, Month and Year). The system records Transaction number, Transaction type, Transaction date, Transaction amount and time. The system records the branch name where the transaction occurred. A Customer can make any type of transactions (Withdrawal or Deposit) from any branch of the bank.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.