fluency with information technology info100 and cse100 katherine deibel 2012-05-25katherine deibel,...
TRANSCRIPT
Designing DatabasesMore chaos… less chaos… red chaos… blue chaos
Fluency with Information Technology
INFO100 and CSE100
Katherine Deibel
2012-05-25 Katherine Deibel, Fluency in Information Technology 1
Monday is a Holiday
Ergo, no lab sections on Monday On Tuesday
Lab sections are optional
Attend any that you want
No attendance taken
Consider them to be "office hours"
2012-05-25 Katherine Deibel, Fluency in Information Technology 2
Project 3B
Instructions now up Be sure to follow directions
Multiple files to turn-in
Two WebQ quizzes▪ First quiz can be taken multiple times
▪ Second quiz can be taken just once
2012-05-25 Katherine Deibel, Fluency in Information Technology 3
Early Turn-In Extra Credit
Project 3B is due on Tueday, June 5 by 10pm… No late turn-ins!
Extra credit for early turn-in 4pts if by Monday, June 4 at 10pm
6pts if by Sunday, June 3 at 10pm
8pts if by Saturday, June 2 at 10pm
10pts if by Friday, June 1 at 10pm
2012-05-25 Katherine Deibel, Fluency in Information Technology 4
Designing DatabasesMore chaos… less chaos… red chaos… blue chaos
Fluency with Information Technology
INFO100 and CSE100
Katherine Deibel
2012-05-25 Katherine Deibel, Fluency in Information Technology 5
Making a Database
A database is made of … Physical database:
Tables actually stored on the hard disk
Logical databases:On-the-fly virtual tables created by queries
Queries:Commands written in SQL that define how to make a logical table from physical tables
How do we make each part?
2012-05-25 Katherine Deibel, Fluency in Information Technology 6
Design Steps
Describe the data physically What are major clusters/higher-level
notions of the data?
How do they interact/relate with each other?
Identify the logical structure Describe a role with the data
Identify what fields are needed
Write queries for just those fields
2012-05-25 Katherine Deibel, Fluency in Information Technology 7
Technologies for Design
There is a technology more powerful than computers when it comes to designing software, databases, etc.?
What is it? Pencil and paper
Whiteboards and markers
Blackboards and chalk
2012-05-25 Katherine Deibel, Fluency in Information Technology 8
Step Away From The Machine
Why not start directly with the database software? Application locks you in to working in a
certain order
Paper-pencil gives you some flexibility
Application will force you to attend to the details and not the general goals
2012-05-25 Katherine Deibel, Fluency in Information Technology 9
Database Design (on Paper)
Sketch relational structure using Entity-Relationship (ER) Diagrams Tables in boxes
Lines show relationship and type of relationship
Example: Specifying a 1-to-many relationship
FacultyStudent
∞1
2012-05-25 Katherine Deibel, Fluency in Information Technology 10
Database Design (on Paper)
Outline key fields and refine the relationships with the fields
2012-05-25 Katherine Deibel, Fluency in Information Technology 11
Faculty_IDFirstNameLastNameDepartmentDateHired
Faculty
Student_IDFirstNameLastNameMajorIDAdvisor
Student
∞
1
Database Design Paradigms
Build physical DB to avoid redundancy Each physical table represents one entity
from your ER diagram Expect that no physical table gives any
user their exact view To build view, build a query that
Joins tables together into a ‘super’ table
Trims out the items the user wants or needs
2012-05-25 Katherine Deibel, Fluency in Information Technology 12
Defining Physical Databases Two aspects:
Underlying data architecture
Database schemes
2012-05-25 Katherine Deibel, Fluency in Information Technology 13
Data Architecture
The underlying architecture shapes how the data is stored on the computer and how it is accessed Concerns efficiency in both speed and storage
space
Depends greatly on the purpose of and usage of the database
Not a concern for most users since DBMSs designers made these decisions already
2012-05-25 Katherine Deibel, Fluency in Information Technology 14
Database Schemes
Database schemes (schema) are metadata specification that describes the database design
Includes Selecting data types (boolean, date, etc.)
Selecting formats (YYYY-MM-DD)
2012-05-25 Katherine Deibel, Fluency in Information Technology 15
The Idea of Relationship
A relationship is a correspondence between rows of one table and the rows of another table
key Student_ID is used in each table, Find address for each student (Lives_At)
Find the student for each address (Home_Of)
2012-05-25 Katherine Deibel, Fluency in Information Technology 17
One-to-One Relationship
When one entry of one table can be linked with exactly one entry in another table
Example:Each US State has exactly one capitol city
2012-05-25 Katherine Deibel, Fluency in Information Technology 19
StateIDNameCapitolCityJoinDatePopulation
US_State
CityIDNamePopulationMayorArea
City
1
1
One-to-Many Relationship
When one entry of one table can be linked with multiple entries in another table
Example: Faculty can advise multiple students
2012-05-25 Katherine Deibel, Fluency in Information Technology 20
Faculty_IDFirstNameLastNameDepartmentDateHired
Faculty
Student_IDFirstNameLastNameMajorIDAdvisor
Student
∞
1
Many-to-Many Relationship When multiple entries of one table can be linked
with multiple entries in another table This is usually accomplished by using an
intermediary table Example:
A writer can be the author of multiple books and a book can have multiple authors
2012-05-25 Katherine Deibel, Fluency in Information Technology 21
Book_IDTitleYearPublisher
Book
∞Writer_IDFirstNameLastName
Writer
1Authors_IDWriter_IDBook_ID
Authors1
∞
Designing a DatabaseThe Initial Steps
2012-05-25 Katherine Deibel, Fluency in Information Technology 22
Katherine Deibel, Fluency in Information Technology 23
Premise
You have been contacted by a high school to build a database for the athletics program
What do you do?
2012-05-25
First Steps
CLIENTS
Staff Coach Players(?)
DATABASE DESIGNER
Interviews the experts/clients
Builds a list of design goals and rules for the database
2012-05-25 Katherine Deibel, Fluency in Information Technology 24
Initial Statement of Goals
Individuals are selected for a team Keep track of the points awarded to
each student for participating for the awarding of school letters
The Database has to keep track of student Athletes over five years with any given Athlete participating in multiple sports in a given year.
2012-05-25 Katherine Deibel, Fluency in Information Technology 25
Getting More Details
Each high school student can play for 1 to 4 years.
A player can play in 0, 1, or many sports each year
Each team has many players
2012-05-25 Katherine Deibel, Fluency in Information Technology 26
More Specific Rules
The high school has many teams.
The high school is in one division.
Each team has a gender. Each team is in a division. Each team has a coach. Each team has many
players. Each student earns points
for winning an event. Each student earns a
letter by earning x points in a sport in a season.
Each student may participate in zero, one, or many sports each year.
Each student may play in sports for 1-4 years.
Each student may play in zero, one, or many competitions at an event.
Each coach can coach one or many teams.
2012-05-25 Katherine Deibel, Fluency in Information Technology 27
Physical Database
Major data entities Teams
Athletes
2012-05-25 Katherine Deibel, Fluency in Information Technology 28
Fields
The HS has many teams The HS is in one division Each team has a gender Each team is in a
division Each team has a coach A team has many
players Each student earns
points for winning an event
team_name n/a team_gender n/a coach_name one-to-many student_points
team_winsevent_nameevent_outcome
2012-05-25 Katherine Deibel, Fluency in Information Technology 29
Physical Database
Major data entities Teams
Athletes
Events
2012-05-25 Katherine Deibel, Fluency in Information Technology 30
More Fields
student_id
student_result_at_event
student_points_to_date
student_points_at_event
student_first_name
letters_sport_code
student_middle_name
letters_awarded_date
student_last_name
team_gender
student_date_of_birth
event_location
team_name
student_gender
team_description
student_address
coach_name
student_other_details
team_other_details
division_description
sport_description
event_name
event_start_date
event_end_date
event_other_details 2012-05-25 Katherine Deibel, Fluency in Information Technology 31
Process Continues
You keep adding More fields
More relationships Perhaps you discover the need more
entities (tables) Once complete, you implement the
tables And then the logical begins
2012-05-25 Katherine Deibel, Fluency in Information Technology 32
Summary
Designing a database is more about thinking than typing Sketch out the relationships on paper
Identify the needs of the clients Key aspect is to separate the logical
and physical aspects Physical is about entities and their
relationships
Logical is about the user
2012-05-25 Katherine Deibel, Fluency in Information Technology 33