Database
Design Methodology
Copyright © 2003 ProsoftTraining. All rights reserved.
Lesson 1:
Introduction to Databases
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
Define a database
Identify and discuss file-based data systems
Define relational database
Define and describe DBMSs, and identify their
advantages and disadvantages
• Choose the correct type of database
• Discuss the origins of relational databases
What Is
a Database?
• File-based databases
– Flat-file databases
• The evolution of databases
Relational Databases
and DBMSs
•
•
•
•
•
Relational databases
Structured Query Language
Database administrator
Advantages and disadvantages of DBMSs
Choosing the correct database type
The Origins of
Relational Databases
• Codd first proposed the relational data model
in 1970
• System R
• Development of SQL
• INGRES
• IBM UK Scientific Center
Summary




Define a database
Identify and discuss file-based data systems
Define relational database
Define and describe DBMSs, and identify their
advantages and disadvantages
 Choose the correct type of database
 Discuss the origins of relational databases
Lesson 2:
Relational
Database Fundamentals
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Define and discuss multitier database
architecture
• Define relational model terminology
• Describe different relational table types
• Explain primary and foreign keys
• Discuss data models and data relationships
• Define database languages
Multitier
Database Architecture
• Two-tier client-server architecture
– Fat client
• Three-tier client-server architecture
– Thin client
• n-tier architecture
Relational
Model Terminology
• Relational data
structure
• Rows (tuples)
• Columns (attributes)
•
•
•
•
Domains
Degrees
Cardinality
Normalization
Using Tables
to Represent Data
•
•
•
•
•
Entities
Characteristics of relations
Types of tables
Primary keys
Foreign keys
Data
Models
• Components
– Structural information
– Manipulative information
– Integrity information
Entities and
Data Relationships
• Entity-Relationship modeling
• Strong entities
• Weak entities
Relational Integrity
•
•
•
•
Domain constraints
Entity integrity
Referential integrity
Views
Database Languages
•
•
•
•
Data definition language
Data manipulation language
Data control language
Data dictionaries
Summary
 Define and discuss multitier database
architecture
 Define relational model terminology
 Describe different relational table types
 Explain primary and foreign keys
 Discuss data models and data relationships
 Define database languages
Lesson 3:
Database Planning
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
Explain the database design life cycle
Discuss database planning
Describe a database requirements document
Discuss the criteria for selecting a DBMS
Discuss the criteria for selecting an
application interface
Database
Design Life Cycle
• Create a database
strategy
• Define database
application scope
• Create a database
requirements
document
• Design the database
• Select a DBMS
• Design the database
application
• Create database
prototypes
• Test the database
application
• Implement the
database
application
• Convert legacy
data
• Maintain the
database
Database
Requirements Document
• Conducting interviews
• Requirements document information
Selecting a DBMS
• Selection criteria
– Data definition functionality
– Physical criteria
– Access criteria
– Transactions
– Utilities
– Development tools
– Miscellaneous features
Selecting an
Application Interface
• GUI considerations
– Descriptive page titles
– Clear instructions
– Consistent grouping of input fields
– Logically labeled fields
– Consistent color use
– Properly sized data entry fields
– Logical cursor movement
– Error messages
– Clearly indicated optional fields
– Completion message
Summary





Explain the database design life cycle
Discuss database planning
Describe a database requirements document
Discuss the criteria for selecting a DBMS
Discuss the criteria for selecting an
application interface
Lesson 4:
Overview of Database
Design Methodology
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Describe relational database design
methodology
• Identify the effects of poor design practices
• Create Entity-Relationship models
• Identify entities and relationship types
• Identify entity attributes and domains
• Determine primary and candidate keys
Effects of
Poor Database Design
• Insertion anomalies
• Deletion anomalies
• Update anomalies
Database
Design Phases
• Conceptual phase
• Logical phase
• Physical phase
Conceptual
Database Design
• Identifying entities
• Identifying attributes and attribute domains for
entities
• Identifying relationships
• Identifying candidate and primary keys for
entities
• Creating an Entity-Relationship diagram
• Reviewing the ER model by the user and
design team
Entity-Relationship Models
•
•
•
•
Creating ER models
Defining domains
Common SQL data types
Determining data relationships
– Recursive relationships
Summary
 Describe relational database design
methodology
 Identify the effects of poor design practices
 Create Entity-Relationship models
 Identify entities and relationship types
 Identify entity attributes and domains
 Determine primary and candidate keys
Lesson 5:
Normalization
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
•
•
Define normalization
Explain normal forms
Define and discuss 1NF
Define and discuss 2NF
Define and discuss 3NF
Define and discuss BCNF
Explain the normalization process
What Is
Normalization?
• Normal forms
• First normal form
– First normal form anomalies
• Second normal form
– Second normal form anomalies
• Third normal form
• Boyce-Codd normal form
Related Concepts
•
•
•
•
•
Decomposition
Atomic value
Partial functional dependency
Transitive dependency
Denormalization
Summary







Define normalization
Explain normal forms
Define and discuss 1NF
Define and discuss 2NF
Define and discuss 3NF
Define and discuss BCNF
Explain the normalization process
Lesson 6:
Logical Database Design
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Identify logical database design issues
• Identify the cardinality of data relationships
• Create a logical data model from a conceptual
data model
• Use a database definition language
• Define integrity constraints
• Create and validate an enterprise data model
Logical
Database Design
• Logical data models
– One-to-one
– One-to-many
– Many-to-many
Creating a
Logical Data Model
Logical data model creation
Logical data model creation
Normalization
Normalization
DataData
model
refinement
model
refinement
Using a Database
Definition Language
• Data dictionaries
• Validating the logical data model
Defining
Integrity Constraints
•
•
•
•
•
Necessary data
Domain constraints
Entity integrity
Referential integrity
Enterprise constraints
Creating an
Enterprise Data Model
• User views
• Normalization
• Validating data operations
Summary
 Identify logical database design issues
 Identify the cardinality of data relationships
 Create a logical data model from a conceptual
data model
 Use a database definition language
 Define integrity constraints
 Create and validate an enterprise data model
Lesson 7:
Physical Database Design
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Identify physical database design issues
• Describe how to create base relations for a
target DBMS using a DDL
• Identify and create enterprise constraints for a
target DBMS
• Define secondary indexes
• Define denormalization
• Create user views
• Design database access rules
Physical
Database Design
• Creating base relations for a target DBMS
• Data definition language
Creating
Enterprise Constraints
• Determining referential constraints
Using
Secondary Indexes
• A secondary index is a mechanism that
creates an additional key for a relation
Denormalization
• The process of reuniting relations that were
split during the normalization process to
improve performance
Creating
User Views
• Determine the appropriate data to be included
with each particular view
Designing
Database Access Rules
• Identifiers
• Privileges
– SELECT
– UPDATE
– DELETE
Summary
 Identify physical database design issues
 Describe how to create base relations for a
target DBMS using a DDL
 Identify and create enterprise constraints for a
target DBMS
 Define secondary indexes
 Define denormalization
 Create user views
 Design database access rules
Lesson 8:
Structured Query Language
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
Define and use SQL
Identify SQL commands and syntax
Use DDL statements
Use DML statements
Use DCL statements
SQL Basics
• Subsets of SQL
• SQL features
• Data types
Data
Definition Language
• Creating a schema
• Altering and dropping relations, domains and
views
Data
Manipulation Language
•
•
•
•
•
Inserting values into relations
Deleting records from relations
Updating values in relations
Retrieving data from relations
SQL special operators and ORDER BY clauses
Data
Control Language
• Granting privileges
• Revoking privileges
Summary





Define and use SQL
Identify SQL commands and syntax
Use DDL statements
Use DML statements
Use DCL statements
Lesson 9:
Relational Algebra
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Define and describe relational algebra
• Explain and use selection, projection,
Cartesian product, union, set difference and
intersection operations
• Explain and use various types of joins
Defining
Relational Algebra
• Selection
• Projection
• Cartesian
product
•
•
•
•
Union
Difference
Intersection
Joins
Summary
 Define and describe relational algebra
 Explain and use selection, projection,
Cartesian product, union, set difference and
intersection operations
 Explain and use various types of joins
Lesson 10:
Transactions and
Database Security
Copyright © 2003 ProsoftTraining. All rights reserved.
Objectives
• Define transactions, concurrency control, and
serializability
• Explain locking techniques
• Define timestamps
• Explain optimistic concurrency
• Define database security and identify the
types of security threats
• Explain the types of protection techniques
Transactions
• Commit
• Rollback
• ACID properties
– Atomicity
– Consistency
– Isolation
– Durability
Concurrency Control
•
•
•
•
•
Lost updates
Uncommitted updates
Unrepeatable query results
Serializability
Concurrency control methods
– Locking
– Timestamps
• Optimistic concurrency control
Database
Security
• The scope of database security
• Types of security threats
• Types of protection techniques
Summary
 Define transactions, concurrency control, and
serializability
 Explain locking techniques
 Define timestamps
 Explain optimistic concurrency
 Define database security and identify the
types of security threats
 Explain the types of protection techniques
Database
Design Methodology





Introduction to Databases
Relational Database Fundamentals
Database Planning
Overview of Database Design Methodology
Normalization
Database
Design Methodology





Logical Database Design
Physical Database Design
Structured Query Language
Relational Algebra
Transactions and Database Security