In: Computer Science
Acme 3-D Printing Co. custom produces products for customers by using computerized 3D printing. An employee (clerk) at Acme takes orders from customers, each order contains the specifications for one “print job”: one custom 3D object to be manufactured. When the order is received, the employee immediately collects cash payment – no credit is extended to customers. The order takes about one week to put into production as a print job. The print job is a manufacturing process consisting of the application of different colored plastics which are shaped and milled into a single 3-dimensional object using various machine processes. Acme maintains information about its cash accounts, orders, print jobs, the employees (machinists) who perform each print job, customers, the quantities of different colored plastics used in each print job, and the processes that are performed on each print job. Each print job is manufactured by one employee who performs all the processes that are necessary for that print job. Print jobs manufactured for customers require one or more colored plastics, and one or more processes. Each customer could have many orders and many print jobs throughout the year; each print job requires a new order. All company data is currently contained in the following database:
CASH (ACCOUNT-NO, ACCT-TYPE, CASH-BALANCE)
ORDERS (ORDER-NO, ORDER-DATE, SPECS, ACCOUNT-NO*)
PRINT_JOB (JOB-NO, JOB-DATE, EMPLOYEE-NO, EMPLOYEE-NAME, MFG-TIME, CUSTOMER-NO, CUSTOMER-NAME, CUSTOMER-ADDRESS, PROCESS-NO*, ORDER-NO*)
COLORED_PLASTICS (JOB-NO*, CP-NO, CP-DESCRIPTION, QUANTITY-USED)
PROCESSES (PROCESS-NO, PROCESS-DESCRIPTION)
Definitions of some fields: Any -NO field is the unique identifier of a database entity SPECS is a text field that contains all the print job specifications taken during the order CP stands for “colored plastic” QUANTITY-USED field indicates the quantity of each colored plastic used on each print job. JOB-DATE is the date on which the print job is manufactured MFG-TIME is the amount of manufacturing time the entire print job takes
(1a.) Does this database contain a transitive dependency? If yes, describe ONE transitive dependency by naming the fields and how they create the dependency.
(1b.) Does this database contain a partial dependency? If yes, describe ONE partial dependency by naming the fields and how they create the dependency.
(1c.) Does this database contain a potential repeating group? If yes, describe ONE repeating group by naming a field that would repeat.
Question:
1a.) Does this database contain a transitive dependency? If yes, describe ONE transitive dependency by naming the fields and how they create the dependency.
Yes the database contains transitive dependency.
For example in the Print_Job relation
PRINT_JOB (JOB-NO, JOB-DATE, EMPLOYEE-NO, EMPLOYEE-NAME, MFG-TIME, CUSTOMER-NO, CUSTOMER-NAME, CUSTOMER-ADDRESS, PROCESS-NO*, ORDER-NO*)
In the above relation CUSTOMER-NO is functionally dependent on JOB-NO.
And is CUSTOMER-NAME functionally dependent on CUSTOMER-NO .
Thus CUSTOMER-NAME is transitively dependent on JOB-NO.
Question 1b:
Does this database contain a partial dependency? If yes, describe ONE partial dependency by naming the fields and how they create the dependency.
Yes partial dependency exist in the relation
PRINT_JOB (JOB-NO, JOB-DATE, EMPLOYEE-NO, EMPLOYEE-NAME, MFG-TIME, CUSTOMER-NO, CUSTOMER-NAME, CUSTOMER-ADDRESS, PROCESS-NO*, ORDER-NO*)
Another partial dependency holds as EMPLOYEE-NAME is dependent on EMPLOYEE-NO
Question 1c:
Does this database contain a potential repeating group? If yes, describe ONE repeating group by naming a field that would repeat.
Yes the database contain potential repeating group. In the PRINT_JOB relation
PRINT_JOB (JOB-NO, JOB-DATE, EMPLOYEE-NO, EMPLOYEE-NAME, MFG-TIME, CUSTOMER-NO, CUSTOMER-NAME, CUSTOMER-ADDRESS, PROCESS-NO*, ORDER-NO*)
Repeating group = (CUSTOMER-NO, CUSTOMER-NAME, CUSTOMER-ADDRESS)
A single customer may place multiple orders. And the above group of information will repeat.