Transcript nov09

CS 101 – Nov. 9
Text software issues (continued)
– Readability
– Fonts
• Database concepts
– Relationships
– Queries
Readability
• First, need to measure:
– Words per sentence
– Syllables per word
• How to Write Plain English by Flesch:
206.835 – 84.6*spw– 1.015*wps
90’s = fifth grade
30’s = college level
Fonts
• Font = style of printing
– Typeface
– Point size
– Ex. Times 10, Helvetica 12
• Fonts can be distinguished by
– Sarif or sans sarif
– Proportional or non-proportional
Font types
• Sarif = has feet
• Sans sarif = no feet
– Look at: i, h, n, r, … (but not t!)
• Proportional = width of characters changes
• Non-proportional = all have same width
Access review
• Purpose: Manage data
• Parts of a database
– If your database has only 1 table, you are better off
using Excel
• Relationship between tables?
–
–
–
–
None
One-to-one
One-to-many (most common)
Many-to-many
Table design
• What fields to we need?
– Age?  store birth date
– GPA?  store credits and quality points
– What year?  store date of admission
• Store data in its smallest parts (e.g. address)
• Calculated fields don’t belong in table!
Queries
• Usually we ask about info from 2+ tables.
• By default, a query will perform an operation
called a Cartesian Product, which gives all
possible combinations.
• Ex. Name and City tables:
Name
Bob
Mary
Ken
City
Miami
Pittsburgh
Cartesian Product
• Given 2 sets, find all possible ordered pairs.
– Analogously for more than 2 sets. 
• Great example: choosing a menu.
– Appetizer
– Entrée
– Dessert
• Unfortunately, most DB queries are not like
this! We get too many results.
Relationships
• We want to tell Access that there is a
relationship between the tables, so we can
create meaningful query.
• One-to-many is most common
– “Each city has one or more employees.”
– Now, query will return 3 results instead of 6:
Miami
Pittsburgh
Bob
Mary
Ken
One-to-One
Empl #
Name Position
Empl # Salary
101
Smith Welder
102
18,000
102
Jones carpenter
101
17,000
• Can be useful if some information is
confidential.
• What if we didn’t have any relationship?
1-1 Query
• When you combine tables that have a 1-1
relationship: Access will look for fields that
are the same, and use this as a filter.
– In previous example, we’ll have 2 results
instead of 4. 
Employee 101’s information
Employee 102’s information
– Let’s look at another example.
• What happens when we “join” these 1-1 tables?
First name
Bob
Bob
Bob
Alice
First name
Bob
Elena
Alice
Last name
Fuller
Daniels
Daniels
Andrews
Position
accountant
cashier
accountant
gardener
Last name
Salary
Daniels
51,000
Carlson
21,000
Andrews 81,000
City
Chicago
Greenville
Indianapolis
Greenville
Birthday
7/1/67
9/1/89
8/1/78
First name
Last name
Position
City
Bob
Fuller
accountant
Chicago
Bob
Daniels
cashier
Greenville
Bob
Daniels
accountant
Indianapolis
Alice
Andrews
gardener
Greenville
First name
Last name
Salary
Birthday
Bob
Daniels
51,000
7/1/67
Elena
Carlson
21,000
9/1/89
Alice
Andrews
81,000
8/1/78
First
Last
Bob Daniels
Bob Daniels
Position
City
Salary
cashier
Greenville
51,000
accountant Indianapolis 51,000
Alice Andrews gardener
Greenville
81,000
Birthday
7/1/67
7/1/67
8/1/78
Relationship summary
• When you have 2+ tables, there is almost always a
relationship
• They share one field in common.
– Can you tell what it is?
• Ex. Customers & Orders
• Ex. Publishers & books
• Ex. Students & Class roster
Example
One-many Relationships
• Referential integrity
– Keep related records consistent
– Cascade delete: allow deletion of “one”
– Cascade update: allow update of “one”
• For example, changing someone’s CustomerID.
Many-to-many
• Ex. Customers to products
• Implement as 2 one-to-one
• “Order details” table
• Think of possible queries based on the 5
tables given in handout.