You are on page 1of 6

RDBMS- II 1603870

Practical 1

Case study of normalization up to highest NF.


1. Health History Report

PET ID PET NAME PET TYPE PET AGE OWNER VISIT DATE PROCEDURE
246 ROVER DOG 12 SAM COOK JAN 13/2002 01 - RABIES VACCINATION
MAR 27/2002 10 - EXAMINE and TREAT WOUND
APR 02/2002 05 - HEART WORM TEST

298 SPOT DOG 2 TERRY KIM JAN 21/2002 08 - TETANUS VACCINATION


MAR 10/2002 05 - HEART WORM TEST

341 MORRIS CAT 4 SAM COOK JAN 23/2001 01 - RABIES VACCINATION


JAN 13/2002 01 - RABIES VACCINATION

519 TWEEDY BIRD 2 TERRY KIM APR 30/2002 20 - ANNUAL CHECK UP


APR 30/2002 12 - EYE WASH

UNF: pet_details (pet_id, pet_name, pet_type, pet_age, owner, visit_date, procedure_id,procedure_name)

1NF: pet_details (pet_id, pet_name, pet_type, pet_age, owner)


visit_details (pet_id, visit_date, procedure_id, procedure_name)

2NF: pet_details (pet_id, pet_name, pet_type, pet_age, owner)


visit_details (pet_id, visit_date, procedure_id)
procedure_details (procedure_id, procedure_name)

3NF: pet_details (pet_id, pet_name, pet_type, pet_age, owner)


visit_details (pet_id, visit_date, procedure_id)
procedure_details (procedure_id, procedure_name)

2. Invoice

HILLTOP ANIMAL HOSPITAL DATE: JAN 13/2002


INVOICE # 987

MR. RICHARD COOK


123 THIS STREET
MY CITY, ONTARIO
Z5Z 6G6

PET PROCEDURE AMOUNT

ROVER RABIES VACCINATION 30.00


MORRIS RABIES VACCINATION 24.00

Page 1
RDBMS- II 1603870

TOTAL 54.00
TAX (8%) 4.32

AMOUNT OWING 58.32

UNF: invoice (invoice_no, date, cust_id, cust_name, cust_add, pet_id, pet_name, procedure_name,
amount, cust_add_zip)

1NF: invoice (invoice_no, date, cust_id, cust_name, cust_add_hno, cust_add_street, cust_add_city,


cust_add_state, cust_add_zip)
pet_visit (invoice_no, pet_id, procedure_name, pet_name, amount)

2NF: invoice (invoice_no, date, cust_id, cust_name, cust_add_hno, cust_add_city, cust_add_state,


cust_add_zip)
pet_visit (invoice_no, pet_id, procedure_name, amount)
pet (pet_id, pet_name)

3NF: invoice (inv_no, date, cust_id)


cust (cust_id, cust_name, cust_add_hno, cust_add_street, cust_add_zip)
cust_zip (cust_add_zip, cust_add_city, cust_add_state)
pet_visit (inv_no, pet_id, procedure_name, amount)
pet (pet_id, pet_name)

3. ABC Manufacturing, Customer Order and Product Application


The ABC Manufacturing company has a completely automated application system. The system, however,
resides on index files and does not allow for decision support at all. In order to move to ad hoc queries,
and "what if" queries, the company has decided to convert the existing system to a database.
Initially, the only criterion for the application is to replace the existing system with a database system. No
ad hoc screen or reports have been anticipated. You will see the reports and screens that exist currently.
Use this case to perform the task that the module has asked of you.
Customer Order and Product Application Considerations
1. Each customer must be on file before an order can be placed. The name, address(s), phone
number(s), and credit limit must be recorded. All other data items are optional. If there is no shipping
address, then the mailing address is used instead. Since customers can have identical names, a customer id
has been assigned to each customer.
2. Each order will have a computer generated id number. The order can have up to 10 line items.
Discounts can be given to preferred customers and this discount amount will be recorded on the customer's
record. Customers without a discount amount will not be given a discount.
3. Each product listed on the order will show the standard price for that product. Discounts will be
shown at the bottom of the order form.
4. Orders that can be filled or partially filled are shipped immediately, and the product data is updated
accordingly. Orders, or partial orders that cannot be filled will be backordered.
5. As products are manufactured the product data is updated accordingly along with the part
inventory data.
6. A customer can place numerous orders. Products can be ordered by many different customers.
The same part can be used in numerous products. (eg. a screw can be used in a chair, bar stool etc.)

Page 2
RDBMS- II 1603870

SAMPLE REPORTS AND SCREENS

ABC MANUFACTURING ORDER FORM DATE: AUG 30, 2002

ORDER # 9932
MR. S.D. KURTZ SHIPPING ADDRESS: 456 NO STREET
123 THAT STREET HAMILTON, ONTARIO
TORONTO, ONTARIO L6K 5J4
A9B 8C7

PHONE: (416) 879-0045 (416) 786-3241 CUSTOMER DISCOUNT: 3%

ITEM # PRODUCT CODE DESCRIPTION QTY BACKORDERED FILLED PRICE/UNIT AMOUNT


1 FR223 HALF SIZE REFRIGERATOR 2 0 2 750.99 1501.98
2 TB101 PATIO TABLE 5 2 3 150.00 450.00
3 CH089 PATIO CHAIRS 20 0 20 35.00 700.00

TOTAL 2651.98
DISCOUNT AMT 79.56

AMOUNT OWING 2572.42

UNF: shipment (order_id, date, cust_id, cust_name, cust_add, ship_add, phone_no, alt_phone_no,
cust_disc, product_id, product_desc, qty, filled, price)

1NF: shipment (order_id, date, cust_id, cust_name, cust_add, ship_add, phone_no, alt_phone_no,
cust_disc)
order_details (order_id, product_id, product_desc, qty, filled, price)

2NF: shipment (order_id, date, cust_id, cust_name, cust_add, ship_add, phone_no, alt_phone_no,
cust_disc)
order_details (order_id, product_id, qty, filled)
product (product_id, product_desc, price)

3NF: shipment (order_id, date, cust_id)


customer (cust_id, cust_name, cust_add, ship_add, phone_no, alt_phone_no, cust_disc)
order_details (order_id, product_id, qty, filled)
product (product_id, product_desc, price)

PRODUCTS INVENTORY AS AT: AUG 30, 2002

PRODUCT CODE DESCRIPTION QTY ON HAND QTY BACKORDERED PRICE


CH089 PATIO CHAIRS 140 0 35.00
FR223 HALF SIZE REFRIGERATOR 10 0 750.99
TB101 PATIO TABLE 0 2 35.00
.

Page 3
RDBMS- II 1603870

.
.

UNF: product_inventory (product_code, product_description, quantity, quantity_backordered, price, date)

1NF: product_inventory (product_code, product_description, quantity, quantity_backordered, price, date)


End of normalization

ABC MANUFACTURING
PRODUCT EXPLOSION REPORT

PRODUCT CODE DESCRIPTION PART NUMB. PART DESCRIPTION QTY REQUIRED


CH089 PATIO CHAIRS WOOD223 1 X 2 - 30" WOOD 8
SCRW110 1.25" SCREWS 26
.
.
.

TB101 PATIO TABLE WOOD995 2 X 4 - 48" WOOD 12


SCRW110 1.25" SCREWS 34
.
.
.

UNF: product_explosion (product_code, product_description, part_number, part_description,


quantity_required)

1NF: product_explosion (product_code, product_description)


partwise_quantity (product_code, part_number, part_description, quantity_required)

2NF: product_explosion (product_code, product_description)


partwise_quantity (product_code, part_number, quantity_required)
parts_details (part_number, part_description)

3NF: product_explosion (product_code, product_description)


partwise_quantity (product_code, part_number, quantity_required)
parts_details (part_number, part_description)

4. The Gill Art Gallery

The Gill Art Gallery wishes to maintain data on their customers, artists and paintings. They may have
several paintings by each artist in the gallery at one time. Paintings may be bought and sold several times.
In other words, the gallery may sell a painting, then buy it back at a later date and sell it to another
customer.

Gallery Customer History Form

Page 4
RDBMS- II 1603870

Customer Name

Jackson, Elizabeth Phone (206) 284-6783


123 – 4th Avenue
Fonthill, ON
L3J 4S4

Purchases Made

Artist Title Purchase Date Sales Price

03 - Carol Channing Laugh with Teeth 09/17/2000 7000.00


15 - Dennis Frings South toward Emerald Sea 05/11/2000 1800.00
03 - Carol Channing At the Movies 02/14/2002 5550.00
15 - Dennis Frings South toward Emerald Sea 07/15/2003 2200.00

UNF: art_history (customer_id, customer_name, cust_add_street, cust_add_city, cust_add_state,


cust_add_zip, cust_mobile, artist_id, artist_name, title, purchase_date, price)

1NF: art_history (customer_id, customer_name, cust_add_street, cust_add_city, cust_add_state,


cust_add_zip, cust_mobile)
customer_purchases (customer_id, artist_id, artist_name, title, purchase_date, price)

2NF: art_history (customer_id, customer_name, cust_add_street, cust_add_city, cust_add_state,


cust_add_zip, cust_mobile)
customer_purchases (customer_id, artist_id, title, purchase_date, price)
artist_details (artist_id, artist_name)

3NF: art_history (customer_id, customer_name, cust_add_street, cust_add_zip, cust_mobile)


customer_purchases (customer_id, artist_id, title, purchase_date, price)
artist_details (artist_id, artist_name)
zip_details (cust_add_zip, cust_add_city, cust_add_state)

5. Good News Grocers


User View 1 - Price Update List

Department Product Aisle Price Unit of Measure


Code Number

Produce 4081 1 0.35 lb


Produce 4027 1 0.90 ea
Produce 4108 1 1.99 lb

Butcher 331100 5 1.50 lb


Butcher 331105 5 2.40 lb
Butcher 332110 5 5.00 lb

Page 5
RDBMS- II 1603870

Freezer 411100 6 1.00 ea


Freezer 521101 6 1.00 ea
Freezer 866503 6 5.00 ea
Freezer 866504 6 5.00 ea

This report is used by the department managers to update the prices that are displayed in the grocery store for
these products.

Good News Grocers


User View 2: Product Cost Report

Supplier Product Cost Markup Price Dept


Code
21 – Very Veggie 4108 – tomatoes, plum 1.89 5% 1.99 PR
32 – Fab Fruits 4081 – bananas 0.20 75% 0.35 PR
32 – Fab Fruits 4027 – grapefruit 0.45 100% 0.90 PR
32 – Fab Fruits 4851 – celery 1.00 100% 2.00 PR
08 – Meats R Us 331100 – chicken wings 0.50 300% 1.50 BU
08 – Meats R Us 331105 – lean ground beef 0.60 400% 2.40 BU
08 – Meats R Us 332110 – boneless chicken breasts 2.50 100% 5.00 BU
10 – Jerry’s Juice 411100 – orange juice 0.25 400% 1.00 FR
10 – Jerry’s Juice 521101 – apple juice 0.25 400% 1.00 FR
45 – Icey Creams 866503 – vanilla ice cream 2.50 100% 5.00 FR
45 – Icey Creams 866504 – chocolate ice cream 2.50 100% 5.00 FR

This report is used by the grocery store manager to determine the final selling price of his products.

UNF: good_news_grocers (supplier_id, product_id, supplier_name, product_name, cost, markup,


department_id, department_name, aisle_number, measurement_unit)

1NF: good_news_grocers (supplier_id, product_id, supplier_name, product_name, cost, markup,


department_id, department_name, aisle_number, measurement_unit)

2NF: supplier_details (supplier_id, supplier_name)


product_details (product_id, product_name)
good_news_grocers (supplier_id, product_id, cost, markup, department_id, department_name,
aisle_number, measurement_unit)

3NF: supplier_details (supplier_id, supplier_name)


product_details (product_id, product_name)
good_news_grocers(supplier_id, product_id, cost, markup, aisle_number, measurement_unit)
department_details(department_id, department_name, product_id)

Page 6

You might also like