LSP 121 Week 2 Normalization and Advanced Queries.

19
LSP 121 Week 2 Normalization and Advanced Queries

Transcript of LSP 121 Week 2 Normalization and Advanced Queries.

Page 1: LSP 121 Week 2 Normalization and Advanced Queries.

LSP 121

Week 2Normalization and Advanced Queries

Page 2: LSP 121 Week 2 Normalization and Advanced Queries.

Normalization

• Let’s create a database for a car club• What if one person owns multiple cars? (One

owner can have many cars, so this is 1:M relationship)

• Create a separate table for just the cars• How do you “relate” the two tables together?

Page 3: LSP 121 Week 2 Normalization and Advanced Queries.

Normalization ExampleCar Club (originally)Member ID (primary key)Member NameMember AddressMember CityMember StateMember ZipMember PhoneDues Paid?National Member?these fields repeat 1 to n times

Model of CarMake of CarYear of Car

Member TableMember ID (primary key)NameAddressCityStateZipPhoneDues Paid?National Member?

Car Table

Model of CarMake of CarYear of CarMember ID (nota primary key here!)

Primary Key in Member Table?Foreign Key in Car Table?1:M

Relationship

Page 4: LSP 121 Week 2 Normalization and Advanced Queries.

Another ExampleStudent Records

Student ID (primary key)NameAddressCityStateZipPhonethese fields repeat 1 to n times

Class NameGradeNumber Credits

MajorMinorDegree Sought

Student Info

Student IDNameAddressCityStateZipPhoneMajorMinorDegree Sought

Grades

Class NameGradeNumber CreditsStudent ID

Before

After

Page 5: LSP 121 Week 2 Normalization and Advanced Queries.

Let’s Consider the Following:Sales Transactions at a Clothing Store

Customer IDCustomer Last NameCustomer PhoneCustomer Cityfollowing fields repeat 1 to n times: Sales Transaction Date Sales Amount Item Clearance Item?

Let’s first create the two tables using paper and pencil.

Page 6: LSP 121 Week 2 Normalization and Advanced Queries.

Relationships

• If:– you create two tables, and– the first table has a primary key, and – you carry that primary key over to the second

table as a foreign key, and– the primary key and the foreign key are spelled

the same and have the same type• Then Access will automatically create a

relationship between the two tables

Page 7: LSP 121 Week 2 Normalization and Advanced Queries.

Relationships

• You can also create a relationship between the two tables by hand

• Go to the Tools drop-down menu and click on Relationships

• Add the two tables to the view, click on one of the Student IDs and drag it over to the other Student ID and un-click

• Check Enforce Referential Integrity (you don’t want children records without parents)

Page 8: LSP 121 Week 2 Normalization and Advanced Queries.

Why Relational?

• Eliminates redundancy• Makes adding data easier• Allows for more secure access to only parts of

the data

• Now let’s create our tables and enter our data into Access (data is on the next slide)

Page 9: LSP 121 Week 2 Normalization and Advanced Queries.

Data1 Smith 555-5555 Palos Heights2 Chen 666-6666 LaGrange3 Wilson 777-7777 Chicago

3/3/09 20.45 Shirt Y 13/3/09 5.99 Scarf N 13/4/09 29.99 Jeans Y 3

This is the foreign key

Page 10: LSP 121 Week 2 Normalization and Advanced Queries.

Simple Queries

• To create an Access query, don’t use the query wizard. Instead, create query in Design view

• Let’s see how Access does it• List all customer names and phone numbers• List customer name, sales date, sale price and

item name of all clearance items sold • List customer name, sales date, sale price and

item name of all clearance items sold on 3/3/09

Page 11: LSP 121 Week 2 Normalization and Advanced Queries.

Queries

• You can look for something after a certain date IF the data was stored as date/time and you say >1/1/2004

• Dates should be entered with # before and after the date, and can be in many different formats, ie #1/1/2004#, #January 1, 2004#, #1-Jan-2004#

Page 12: LSP 121 Week 2 Normalization and Advanced Queries.

Queries

• Logical OR - You can look for records in the state of Indiana or Illinois by saying “IL” OR “IN”

• You can also say: In (“IL”, “IN”, “OH”)• Logical AND - you can make multiple entries in

the query boxes. For example, in the State field enter “IL” and then in the Size field enter <3

Page 13: LSP 121 Week 2 Normalization and Advanced Queries.

Queries

• Logical AND - You can also use an AND in one field. For example, in the Size field you can enter >=3 AND <=9

• A slightly easier way of doing this is using the BETWEEN operator: Between 3 and 9

• Possible operators include =, <>, <, >, <=, >=• Let’s stop here for now and do Activity 3

Page 14: LSP 121 Week 2 Normalization and Advanced Queries.

Queries That Calculate

• When performing a query, you can aggregate the data

• You can perform a Count, Sum, Avg, Max, Min, StDev, Var(iance), First, and Last

• Count, First, and Last can be performed on types counter, number, currency, date/time, yes/no, text, memo, and OLE object

• Sum, Avg, Max, Min, StDev, Var can be performed on types on counter, number, currency, date/time, and yes/no

Page 15: LSP 121 Week 2 Normalization and Advanced Queries.

Example

• Say you have a database for a vet (the pets database on QRC website)

• If you want to find the average weight and height of all pets: (you may have to click on View / Totals)

Field: Pet ID Weight Height

Total: Count Avg Avg

Show: X X X

Page 16: LSP 121 Week 2 Normalization and Advanced Queries.

Example

• What if you want to find the average height and weight for all dogs?

Field: Weight Height Type of Animal

Total: Avg Avg Group By

Show: X X X

Criteria: “Dog”

Page 17: LSP 121 Week 2 Normalization and Advanced Queries.

Example

• What if you want to find the minimum and maximum weight for all dogs?

Field: Weight Weight Type of Animal

Total: Min Max Group By

Show: X X X

Criteria: “Dog”

Page 18: LSP 121 Week 2 Normalization and Advanced Queries.

More Examples

• You can also perform totals on groups of records.

• For example, suppose you want to count how many different types of pets the vet has on record

Field: Type of Animal Pet ID

Total: Group By Count

Show X X

Page 19: LSP 121 Week 2 Normalization and Advanced Queries.

Further Examples?

• Let’s play with the Pets database some more

• Now we can do Activity 4