Académique Documents
Professionnel Documents
Culture Documents
Getting Started
with Designing a
Relational Database
ITS@PennState
23 Willard Building
University Park, PA 16802
itstraining@psu.edu
http://its.psu.edu/training
version 091906
Alternative Format Statement
This publication is available in alternative media upon request.
Statement of NonDiscrimination
The Pennsylvania State University is committed to the policy that all persons shall have
equal access to programs, facilities, admission, and employment without regard to
personal characteristics not related to ability, performance, or qualifications as
determined by University policy or by state or federal authorities. It is the policy of the
University to maintain an academic and work environment free of discrimination,
including harassment. The Pennsylvania State University prohibits discrimination and
harassment against any person because of age, ancestry, color, disability or handicap,
national origin, race, religious creed, sex, sexual orientation, or veteran status.
Discrimination or harassment against faculty, staff, or students will not be tolerated at
The Pennsylvania State University. Direct all inquiries regarding the nondiscrimination
policy to the Affirmative Action Director, The Pennsylvania State University, 328
Boucke Building, University Park, PA 168025901; Tel 8148654700/V, 814863
1150/TTY.
Table of Contents
Objectives ........................................................................................................2
Database Definition and Terminology ..............................................................3
Relational Database Definition.........................................................................4
Database Management Systems .....................................................................5
Steps for Database Design ..............................................................................5
1) Formulate a Solution.........................................................................5
2) Gather Information ............................................................................6
3) Develop Fields ..................................................................................6
4) Organize Tables................................................................................7
5) Define Table Relationships .............................................................10
6) Test and Improve ............................................................................12
7) Develop Queries, Forms, and Reports............................................12
Signs of Good Database Design....................................................................13
MultiUser Considerations..............................................................................13
Additional Resources .....................................................................................14
Objectives
· Define basic database terminology
· Describe a database management system (DBMS)
· Consider possible database use
· Understand the basics of database normalization
· Recognize the types of table relationships
· Practice the steps involved in relational database design
Designing a Relational Database 2
Getting Started with Designing
a Relational Database
What is a Database?
A database is a collection of data that is stored for a specific purpose. This
collection is arranged in a fixed structure.
Everyday Examples of Simple (NonElectronic) Databases
· Address book
· Telephone book
· Encyclopedia
Basic Database Terminology
· Table: contains data about a specific topic or subject; holds records
Ex. students, courses, supplies
· Record: contains data about one specific entity within a table; holds fields
Ex. one student, one course, one supply resource
· Field: contains data about a specific object or thing described in a record
Ex. id of student, number of course, cost of supply resource
· Data Value: specific instance of data kept in a field
Ex. 5 4327 2910, ENG101, $6.25
Overview of Database Structure
Database
Tables
Records
Fields
Data Values
Designing a Relational Database 3
Comparing a Database to a File Cabinet
A Database is like a file cabinet because it holds the data in an
organized way.
Tables are like the drawers of the cabinet because they hold related
pieces of data or lists of records.
Records are like the file folders because they hold sets of related data.
Fields are like the sheets of paper in the file folders because they
contain specific pieces of categorized data that make up the related sets.
Data values are like the words on the paper because they are the
specific pieces of data.
What is a Relational Database?
A relational database contains tables that are related. Related tables contain
fields that match.
Example: A Course Enrollment table is related to a Student table because
they both contain a field for Student ID.
Why use a Relational Database?
The purpose of a database is to organize data so it can be easily selected, sorted,
managed, and updated. By using a relational database, each piece of information
only needs to be stored once.
The benefit is that if a piece of data is updated it needs to be updated in only one
place and the update will then be recognized throughout the database.
Otherwise, several updates would need to be made in several different places,
which can be cumbersome and lead to a messy situation if not done accurately.
Example: An update for a student’s address is made in the Student table and
is now recognized by all related tables.
Designing a Relational Database 4
Database Management Systems (DBMS)
A Database Management System is an extra layer of software, or a collection of
programs, that enables a user to store, modify, and extract data kept in a
database. A DBMS allows users to have different access rights in entering,
manipulating, and retrieving data from different views. It allows for multiple user
access and concurrent usage. Record locking can be incorporated using a
DBMS to ensure data integrity when multiple users are entering data. A DBMS
can also be used to apply customization and simple security features. The DBMS
provides a useful user interface.
There are many different types of DBMS applications, ranging from small systems
that run on personal computers to large systems that run on mainframe
computers. One DBMS can differ widely from another, based on the way it
organizes information internally.
Examples of Database Management Systems
Small Large
· Microsoft Access · SQL Server
· FileMaker Pro · Oracle
· Lotus Approach · DB2
The Database Design Process
1) Formulate an idea for a solution
§ Identify an existing problem that could be improved with a database.
§ Have a clear purpose in mind.
Identify the problem: The Imaginary Department of the Fictional College
currently has a spreadsheet to store student data. Every school year a new
spreadsheet is created. Data has to be copied and pasted for existing students
that are still enrolled in the new year. Various reports have to be created each
semester as well as any time data is requested for analysis. Additional
spreadsheets exist for course enrollment, faculty teaching schedules, and room
assignments.
Describe existing difficulties: _______________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Designing a Relational Database 5
Propose a solution: Describe what can be done to make this data easier to
utilize. Should anything else be a focus here?
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
2) Gather information and clarify needs.
§ Talk to people currently involved with the data and anyone else who may
have the potential to be a user of the application.
*WHY: Users will know what they need/want to be able to do. Knowing requirements
ahead of time will help ensure that the database design meets the needs of users.
§ Ask questions such as:
ü What information is available? Is it adequate to meet needs?
ü How is the available information being used?
ü Who maintains current data?
§ Sketch out formatting of possible forms and/or reports (mailing labels,
rosters, course offerings list, etc.) to make sure they are useful to users
List some people to speak to and possible points to clarify: ______________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
3) Develop a list of all useful fields.
§ List all of the possible attributes that will be available within the database
§ Break down information into the smallest meaningful units possible
(Ex. use First Name and Last Name fields instead just one Name field)
§ Eliminate redundancy (Ex. don’t need both age and birth date)
*REMINDER: Redundancy may be necessary in certain (yet infrequent) cases. For
instance, if a course title changes it does not mean that all records with the previous title
and the same course number need to be changed to eliminate redundancy.
§ Determine if all proposed fields will be needed (used to calculate, show up
on a report later), but also be as thorough as possible in field creation
*NOTE: It is easier to create a field now and remove it if it is unused later than it is to
create an additional field in an already existing and utilized table.
Designing a Relational Database 6
List fields: Create a list of possible fields needed in the database. No grouping
is necessary at this point.
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
4) Organize the fields into logical tables.
§ Divide fields into categories or subjects. Each of these categories will
represent a table.
*NOTE: Be sure that each table has only one focus. If fields do not directly belong with
that focus, consider moving them to a different table. (Ex. The Courses table is not
necessarily the best place to keep detailed faculty information.)
§ Assign key fields. A key field or primary key is a unique identifier for a
record/entity (Ex. ID numbers, Course codes). These identifiers help to
associate tables. They are not necessary, but highly recommended.
*HINT: A primary key can also be made of multiple fields if needed.
Example of a table with primary key field: Students Table
StudentID
In this case, StudentID is the primary key FirstName
field. This means that each student record LastName
in the database has a unique identifier that Address
both sets it apart and may help it to relate to City
records in other tables. State
PhoneNumber
Designing a Relational Database 7
§ Consider normalization rules.
Normalization Rules: There are 5+ normalization rules (5 Normal
Forms and BoyceCodd), but most daytoday database creation
focuses on the first three. These rules are used to help create
flexible, adaptable tables that have no redundancy and are easy to
query. In other words, they ensure that there is “a place for
everything and everything in its place.”
1) First Normal Form:
Each field contains the smallest meaningful data value possible (no
fields with multiple values listed).
Ex. First Name and Last Name as separate fields
There are NO repeating groups of fields.
Ex. One field called Month instead of 12 fields called Jan, Feb, etc.
2) Second Normal Form
Each nonkey field in the table must relate to the entire Primary Key
value.
Ex. In this table, StudentID & CourseID make up the Compound
Primary Key
This table does not satisfy the Second Normal Form
because not all fields are related directly to entire the primary key.
The table now satisfies the Second Normal Form
because all fields relate directly to entire the primary key.
Designing a Relational Database 8
3) Third Normal Form
Each nonkey field in the table must relate directly to the singlefield
Primary Key value.
Ex. In this table, Course ID is the singlefield Primary Key
This table does not satisfy the Third Normal Form
because not all fields are related directly to the primary key.
The table now satisfies the Third Normal Form because all
fields relate directly to the primary key.
310.001 1 001
110.003 1 001
Organize fields into tables: Create table names and list fields for each table.
Designing a Relational Database 9
*Reminder: Before moving to step 5, it is a good idea to check back on the information
previously gathered to ensure that all requirements are included in the tables.
5) Determine and define table relationships.
§ Identify fields that match among tables
§ Decide how data is related based on these matching fields (Ex. Student
table is a primary table with related records in Course Enrollment table,
which is called the related table)
§ Define relationships between the primary key of one table and the related
or foreign key of another. These matching fields can have the exact
same name or slightly different names, yet hold the same data.
Students Table Course Enrollment
primary key field StudentID Table
FirstName CourseID
LastName Student ID foreign key field
Address Grade
City Semester
State Year
PhoneNumber
§ Add new fields and/or tables as needed to clarify relationships.
§ Consider how relationships may be used to make queries and reports
more efficient.
§ Focus on the three types of table relationships.
Three Types of Table Relationships: There are three types of table
relationships. Each has its own unique purpose in helping to organize
the data within the database. These relationships can be used to
determine joins in queries as well.
1) OnetoOne Relationships: one record in table is related to one
record in a related table; creates equally dependent tables
Ex. one student has only one PSU ID
*NOTE: This type of relationship is rarely used.
Designing a Relational Database 10
2) OnetoMany Relationships: one record in a primary table is
related to many records in a related table; however, a record in the
related table has only one related record in the primary table
Ex. a student can live in one residence hall at a given time, but
many students can live in a residence hall at a given time
*NOTE: This is the most common type of relationship.
3) ManytoMany Relationships: several records in the primary table
are related to several records in a related table
Ex. one student can be enrolled in many courses and each course
can have many students enrolled
Define relationships among tables: Draw lines to connect primary and foreign
key fields on related tables. This diagramming is referred to as Entity
Relationship diagramming because it connects entities based on similarities.
Designing a Relational Database 11
6) Test, refine and improve.
§ Analyze the overall database design to check for errors as well as to see
that needs are being met.
§ Review table structure to make sure all needed fields are present and
existing relationships are valid and useful.
§ Test table design by adding records and observing functionality.
List points to consider when testing, refining, and improve design: Describe
possible issues and resolutions.
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
7) Develop queries, forms, and reports.
§ Look back at information gathered to get ideas for what type of queries,
forms, and reports are needed.
§ Consider table relationships and how they can be utilized.
§ Try drafts of queries, forms, and reports to see if they show the expected
data results.
§ Modify as needed to meet needs.
§ Consider this development process as on going throughout the use of the
database.
Describe possible queries, forms, and reports that may be needed:
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Designing a Relational Database 12
Signs of Good Database Design
thoughtfully planned
works for the intended situation and purpose
streamlines a process
shows consistency among data (Fall 05 vs. fall 2005)
eliminates redundancy as much as possible (i.e. tables are normalized)
provides users with an easy way to enter, store, and retrieve data
does NOT promote deleting data, but rather making designations or archiving it
provides unique identifiers (primary keys) for records
grows, changes, and improves as needed
Considerations for Implementation in a MultiUser Environment
Who will administer the database? An individual? A group or committee?
Are shared folders being used?
Is server space needed? If so, is it available and where?
Are web capabilities required (intranet and/or internet)? If so, is web space
available?
Is security an issue? If so, how will that be handled?
*Caution: Various DBMSs have a variety of features concerning these issues and all of
them may operate differently depending on the environment.
Designing a Relational Database 13
Additional Resources
Training
· https://register4its.psu.edu
Reference Books
· Relational Database Design Clearly Explained, Second Edition by Jan L. Harrington
· Database Design Using EntityRelationship Diagrams by Sikha Bagui and Richard
Earp
· Handbook of Relational Database Design by Candace C. Fleming and Barbara von
Halle
· Database Design for Mere Mortals: A HandsOn Guide to Relational Database
Design by Michael J. Hernandez
· Information Modeling and Relational Databases: From Conceptual Analysis to
Logical Design by Terry Halpin, T. A. Halpin
Websites
· http://proquest.safaribooksonline.com
· http://db.ittoolbox.com/
· http://databases.about.com/
· http://www.geekgirls.com/menu_databases.htm
· http://www.informit.com/articles
Phone Numbers
· Help Desks
o 2 Willard Bldg: (814) 8631035
o 215 Computer Bldg: (814) 8632494
· ITS Training Services: (814) 8639522
Designing a Relational Database 14