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 BobPittsburgh Mary
Ken
One-to-One
• Can be useful if some information is confidential.
• What if we didn’t have any relationship?
Empl # Name Position
101 Smith Welder
102 Jones carpenter
Empl # Salary
102 18,000
101 17,000
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 informationEmployee 102’s information
– Let’s look at another example.
• What happens when we “join” these 1-1 tables?
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 Position City Salary Birthday
Bob Daniels cashier Greenville 51,000 7/1/67
Bob Daniels accountant Indianapolis 51,000 7/1/67
Alice Andrews gardener Greenville 81,000 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
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.