Class 8: Data Management(7/20/2011)

Class 8: Data Management
July 20th, 2011
 Grades
are posted:
http://www.u.arizona.edu/~jjenkins/mis111
_summer2011/grades/grades.htm
 Check them often to make sure I haven't
made a mistake
 New Office Location (E-commerce Lab
conference room)
 Today I’ll be there only until 11:40
 Web sites looks great!
 I was hoping to give you the entire day of
Friday to work on your assignment 2, but I
might have to lecture a bit too.
 Define
the basic components of an ER
diagram
 Be able to construct a complete ER diagram
based on a simple business case
 Be able to critique ER diagrams
 Today:
Entity Relationship Diagrams
 Thursday:

Quiz
 Friday:

Relational Tables
Assignment #1
Meet in McClelland Hall 218
 Businesses
can live or die by the
management of their data
 Businesses, especially online
businesses, have a TON of data to
manage
 Peter Chen’s entity relationship
diagrams are an extremely
I <3
effective way to conceptualize ERD
data
 Happy
Hills High School has commissioned
us to keep track of its operations.
 They need to track information about
students, teachers, and courses.
 Where

we’ll start:
They need to keep track of students’ id
numbers, names, and email addresses.
 Entity
– a person, place, thing or event about
which information is maintained
 Entity
Class – an abstract representation of
ALL of a particular type of entity
STUDENTS
 Attribute
– a characteristic or quality of a
particular entity class
 Identifier– an attribute that uniquely
identifies an entity class (always underlined)
StudentID
StudentName
StudentEmail
STUDENTS
 We
want to represent all teachers and keep
track of their names, email addresses, and
salaries.
TeacherName
TeacherEmail
TeacherID
TeacherSalary
TEACHERS
 We
want to represent all courses and keep
track of course numbers and course names.
COURSES
CourseNo
CourseName
 We
have created the STUDENTS, TEACHERS,
and COURSES entity classes.
 We gave each entity class its own attributes.
 We also provided each entity class with a
unique identifier.
 What
more can we represent?
 STUDENTS
enroll in COURSES.
CourseNo
StudentID
enroll
in
STUDENTS
COURSES
CourseName
StudentEmail
StudentName
TEACHERS
teach COURSES.
TeacherName
TeacherEmail
TeacherSalary
TeacherID
TEACHERS
teach
COURSES
CourseNo
CourseName
TeacherEmail
TeacherName
StudentID
STUDENTS
TeacherSalary
TeacherID
TEACHERS
enroll
in
teach
COURSES
StudentEmail
StudentName
CourseNo
CourseName
 Cardinality
– defines a relationship between
two entity classes in terms of how many
instances of X are allowed for each
instance of Y
CourseNo
StudentID
enroll
in
STUDENTS
COURSES
CourseName
StudentEmail
StudentName
 Cardinality
is often defined by certain
business rules.
 For example, Happy Hills High School has the
following business rules:



A student must enroll in at least four classes to
be considered a full-time student.
A student may enroll in no more than six courses
at a time.
Course enrollment may not exceed thirty
students.
 In
a binary relationship, we must ask four
questions:
 1. For each COURSE, what is the minimum
number of STUDENTS I may have?
 2. For each COURSE, what is the maximum
number of STUDENTS I may have?
STUDENTS
[0:30]
enroll
in
COURSES
 3.
For each STUDENT, what is the minimum
number of COURSES I may have?
 For each STUDENT, what is the maximum
number of COURSES I may have?
STUDENTS
[0:30]
enroll
in
[4:6]
COURSES
 We
call this in general a “many-to-many”
relationship because each entity class may
have more than one instance.
 Many-to-many
STUDENTS
= [M:N]
[0:30]
enroll
in
[4:6]
COURSES
 1.
For each COURSE, what is the minimum
number of TEACHERS I may have?
 2. For each COURSE, what is the maximum
number of TEACHERS I may have?
TeacherID
TEACHERS
[0:1]
TeacherName
TeacherSalary
TeacherEmail
teach
CourseNo
COURSES
CourseName
 3.
For each TEACHER, what is the minimum
number of COURSES I may have?
 4. For each TEACHER, what is the maximum
number of COURSES I may have?
TeacherID
TEACHERS
[0:1]
TeacherSalary
TeacherEmail
TeacherName
teach
CourseNo
[1:3]
COURSES
CourseName
 We
call this in general a “one-to-many”
relationship because one side may only have
up to one instance and the other may have
many.
TEACHERS
 One-to-Many
= [1:M]
[0:1]
teach
[1:3]
COURSES
 Prettiest
Puppies & Co. operates a chain of
pet stores that sell puppies to customers
looking for new furry friends. The
management would like to be able to keep
track of which puppies are bought by which
customers, as well as which stores in the
chain sell which puppies.
 Management would like to track puppy
breeds, ages when sold, and temperaments.
They would also like to keep track of each
customer’s last name, gender, and zip code.
Finally, they need to keep track of each
store’s name and location.
PupAgeWhenSold
PupBreed
PUPPIES
sell
[1:M]
[1:1]
STORES
[1:M]
PupTemp
PupID
StoreID
buy
StoreName
CustID
[0:1]
CUSTOMERS
CustGender
CustName
CustZip
StoreLoc
 There
are different types of entity classes.
 Strong
entity classes are entity classes that
can exist by themselves. They are existence
independent.
 Weak
entity classes, on the other hand, are
entity classes that are existence dependent.
In other words, they depend upon the
existence of one or more strong entities to
exist.
 DOCTORS
treat PATIENTS. When a PATIENT
sees the DOCTOR, a TREATMENT is
prescribed.
 Can
a TREATMENT exist without the presence
of a DOCTOR and PATIENT?
 Weak
entity classes are represented by
concentric rectangles.
DOCTORS
treat
TREATMENTS
PATIENTS
 What


information did we want to track???
Which STUDENTS are enrolled in which COURSES
Which TEACHERS are teaching which COURSES
QUESTION: Could each COURSE
have existed by itself?
ANSWER: Yes. The COURSE was
always in the catalog and did not
need either TEACHERS or
STUDENTS to exist.
STUDENTS
enroll
in
TEACHERS
teach
COURSES
 Rule:
The strong entity classes upon which
the weak entity class depends must have a
minimum cardinality of 1 or greater.
[1:
DOCTORS
[1:
treat
TREATMENTS
PATIENTS
 New
question: For every combination of
DOCTOR and PATIENT, what is the
minimum/maximum number of TREATMENTS
I may have?
[1:
DOCTORS
[1:
treat
[0:M]
TREATMENTS
PATIENTS
 Q3
& 4. For every combination of DOCTOR
and TREATMENT, what is the min/max
number of PATIENTS I may have?
[1:
DOCTORS
[1:1]
treat
[0:M]
TREATMENTS
PATIENTS
 Q5
& 6. For every combination of PATIENT
and TREATMENT, what is the min/max
number of DOCTORS I may have?
[1:1]
DOCTORS
[1:1]
treat
[0:M]
TREATMENTS
PATIENTS
 We
call this in general a “one-to-one”
relationship because both entity classes may
only have a maximum of one instance.
 One-to-one
= [1:1]
[1:1]
DOCTORS
[1:1]
treat
PATIENTS
 Weak
entity classes do NOT have
identifiers.
 Twinkle
Tones School of Music provides
private lessons only by musician request.
When a musician requests a private lesson,
the School finds an available instructor and
arranges a lesson schedule.
 The School would like to track these lessons
– the day of the week when they are
scheduled, as well as the time they begin.
 The School would also like to track musician
names and email addresses, as well as
instructor names and email addresses.
InsID
MusName
MusID
[1:1]
INSTRUCTORS
teach
[1:1]
InsEmail
MUSICIANS
MusEmail
InsName
[0:M]
Day
LESSONS
Time
 We
are going to take these entity
relationship diagrams and turn them into
relational tables!
 FYI: Microsoft Visio
 Quiz!
 Bring your computer with excel
 List
the three rules of the Long tail.
 Define Service Oriented Architecture (SOA)
 List 4 benefits of SOA
 List the four steps of Search Engine
Optimization
 List at least four HCI design principles for
Web sites
 List three examples of HCI applications today
 Be able to critique ER diagrams