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