Databases

Databases
Part 2
Overview
•
•
•
•
•
4 easy pieces
When a database is needed
Complex data: normalizing
Referential Integrity
Queries: SQL
4 easy pieces
•
•
•
•
Tables
Queries
Forms
Reports
When a database is needed
• Multiple entities
• Redundancy and Errors
• Anomalies: Delete, Update, Insert
EmpFirst
Sue
Jack
Joe
Rebecca
Steve
Tom
April
Mary
EmpFirst
Sue
Jack
Joe
Rebecca
Steve
Tom
April
Mary
EmpLast
Black
Jackson
Jones
Roberts
Smith
Tuttle
White
White
EmpLast
Black
Jackson
Jones
Roberts
Smith
Tuttle
White
White
EmpPhone
591-5834
983-5832
523-2343
893-8765
123-4567
598-8999
589-5893
523-5235
EmpPhone
591-5834
983-5832
523-2343
893-8765
123-4567
598-8999
589-5893
523-5235
EmpEmail
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
EmpEmail
CoID
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Company
IBM
IBM
ABC Co.
Little Co.
ABC Co.
IBM
ABC Co.
ABC Co.
1
1
2
3
2
1
2
2
CoAddr
5 IBM Plaza
5 IBM Plaza
123 ABC St.
75 Main St.
123 ABC St.
5 IBM Plaza
123 ABC St.
123 ABC St.
CoCity
IBMtown
IBMtown
ABCville
Smalltown
ABCvilla
IBMtown
ABCville
ABCville
CoID Company
1 IBM
2 ABC Co.
3 Little Co.
CoState
PA
PA
CA
MO
CA
PA
CA
CA
CoAddr
5 IBM Plaza
123 ABC St.
75 Main St.
CoZip
54321
54321
12543
55111
12543
54321
12453
12453
CoCity
IBMtown
ABCville
Smalltown
CoState CoZip
PA
54321
CA
12543
MO
55111
Normalization
• 1st Normal Form
– No duplicate rows
• Primary Key
– Row and Column order doesn’t matter
– A field has 1 piece of data
• Separate First and Last name
– No repeating groups
No Repeating Groups
ID First
1 Joe
2 Mary
3 Bill
Last
Smith
Jones
Johnson
Phone
831-123-4567
831-765-4321
831-333-4444
Good
Bad
ID First
1 Joe
Last
Phone
Smith
831-123-4567, 831-321-3211
2 Mary Jones
3 Bill
ID First
1 Joe
2 Mary
3 Bill
831-765-4321
Johnson 831-333-4444, 831-545-5454, 831-223-2233
Last
Smith
Jones
Johnson
Phone1
Phone2
Phone3
831-123-4567 831-321-3211
831-765-4321
831-333-4444 831-545-5454 831-223-2233
ID First
1 Joe
2 Mary
3 Bill
Last
Smith
Jones
Johnson
ID Phone
1 831-123-4567
1 831-321-3211
2 831-765-4321
3 831-333-4444
3 831-545-5454
3 831-223-2233
More Normalization
•
•
•
•
•
•
•
2nd Normal Form
3rd Normal Form
Boyce-Codd Normal Form
4th Normal Form
5th Normal Form
Domain/key Normal Form
6th Normal Form
Referential Integrity
Friends
ID First
1 Joe
2 Mary
3 Bill
Last
Smith
Jones
Johnson
Phones
ID Phone
1 831-123-4567
1 831-321-3211
2 831-765-4321
3 831-333-4444
3 831-545-5454
3 831-223-2233
• If delete Mary, orphaned phone #?
• Cascade Deletes
• Cascade Updates
SQL
• What is an Access Query?
• Try it
Design View
Datasheet View
SQL View
SELECT Friends.Last, Friends.First, Phones.Phone
FROM Friends INNER JOIN Phones ON Friends.ID = Phones.ID
ORDER BY Friends.Last, Friends.First, Phones.Phone;
The End