0% found this document useful (0 votes)
13 views

Individual

Uploaded by

khadijakennou04
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Individual

Uploaded by

khadijakennou04
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Individual Course Project

There are two projects available,You just need to choose one


of them. (Project 1or Project 2)

Project 1
Course Name:Database Systems
Type : Individual project
Report : E-report
Dead line:12 AM June 21,2024,Friday
Email to : [email protected]

1.Goal:
The goal of this project is to provide a realistic experience in the conceptual
design, logical design, implementation, operation, and maintenance of a relational
database and associated applications.
You will do this alone over several weeks. I have chosen to go with individual
rather than group projects because the goal of this project is for you to gain a personal
appreciation of the depth and breadth of issues that go into the design of a database
application, rather than to have you specialize in just one aspect (and rely on others
for the rest).
The project can go well beyond the minimal requirements I outline at the end. I
encourage such extensions. They could turn into a senior design project or other
independent work.
The description given here of the enterprise you are modeling is necessarily
somewhat vague and incomplete. This is by design | in real life, your "customers" are
managers in the enterprise whose degree of computer literacy is, to put it kindly,
variable. You will need to fill in the holes in this document in create a precise design
and concrete implementation of the interfaces and applications using the database.

1
2.Enterprise description:
The enterprise is a retailer, such as a department store, discount store, supermarket,
convenience store, etc.; each of you will choose a specific retailer (either use a real one as your
model or a made-up one). To keep the project within bounds, we'll ignore issues of employees,
corporate finance, etc., and focus on the retail sales activities.
Your retailer sells a large variety of products at multiple stores. Not all products are at all
stores. Pricing may be different at different stores. Each store has its own inventory of products
and needs to decide when to reorder and in what quantity. Customers may identify themselves by
joining your frequent-shopper program. Others may remain anonymous. Your retailer has a Web
site that accepts orders. From a database perspective it is just a special store that has no physical
location and has no anonymous customers.
The database tracks inventory at each store, customer purchases (by market basket and by
customer, where possible), sales history by store, etc. Various user interfaces and applications
access the database to record sales, initiate reorders, process new orders that arrive, etc.
(1)The enterprise: You may pick the enterprise that you will model.
(2)Products: Products come in a variety of sizes or means of packaging. Each product has its
own UPC code (universal production code,the bar code that is scanned at the checkout).
(3)Brands: A variety of products may be sold under the same brand (e.g. Pepsi and diet Pepsi).
For such applications as reorder, specific products and sizes matter. For other applications, data
may be aggregated by brand.
(4)Product types: A particular type of product may be sold in a variety of sizes and a variety
of brands. For example, cola is sold under such brands as Pepsi and Coke.
Product types form an specialization/generailzation hierarchy. For example cola is a type of soda,
which is a type of beverage, which is a type of food. Some products fit into multiple categories.
For example, baking soda is a cleaner, a food (since it is used for baking), and a drug (since it
may be used an an antacid), but it is not a type of soda.
(5)Vendors: Products are sold to stores by vendors. A vendor may sell many brands (e.g.
Pepsico sells Pepsi, Tropicana, Aqua_na, Gatorade, Lay's, Doritos, Quaker, and others).
(6)Stores: Stores sell certain products, each of which has a certain inventory amount at any
point in time. Stores have locations (addresses), hours at which they are open, etc.

2
(6)Customers: Customers who join a frequent-shopper program provide some personal
information based on what the enterprise requests. They may refuse to provide some information.
Customers come into a store (or go online) to buy a market basket of goods. Not only must this
data be stored, but also the system must be able to handle multiple customers buying goods at the
same time.

3.Data Generation:
For simplicity, I will not require perfectly realistic data so that you don't have to ensure that, for
example, if you are modeling an HEB Supermarket, it really does sell Shiner Bock beer. However,
you should strive for a good degree of realism in your data (and, yes, by the way, except in dry
counties, HEB sells Shiner Bock).
Where appropriate, randomly generated data are acceptable (and a good way to avoid having lots
of data entry to do).
Note the comments on collaboration below and that sharing data with others is acceptable as long
as appropriate credit is given to your source.

4.Client Requests:
4.1. E-R Model---conceptual model
(1) Construct an E-R diagram representing the conceptual design of the database.
(2) Be sure to identify primary keys, relationship cardinalities, etc.
4.2. Relational Model ---logical structure
(1) After creating an initial relational design from your E-R design, refine it based on the
principles of relational design .
• Create the relations in Oracle database or PostgeSQL database ,MS SQL
Server,MySQL,or other database any you like.
• Create indices and constraints as appropriate.
• If as you refine your design, you discover flaws in the E-R design, go back and change
it (even if the earlier design passed the checkpoint.) Your final E-R design must be
consistent with your relational design.
4.3. Populate Relations
• Include enough data to make answers to your queries interesting and nontrivial for test
purposes.
• You may find it helpful to write a program to generate test data.
4.4. Queries
3
Running a number of test queries to see that you have loaded your database in the way you
intended. The queries listed below are those that your clients (managers from the retail enterprise)
may find of interest. They may provide further hints about database design, so think about them
at the outset of your work on this project.
• Create the relations in Oracle database or PostgeSQL database or other database any you
like.
• What are the 20 top-selling products at each store?
• What are the 20 top-selling products in each state?
• What are the 5 stores with the most sales so far this year?
• In how many stores does Coke outsell Pepsi? (Or, a similar query for enterprises that don't
sell soda.)
• What are the top 3 types of product that customers buy in addition to milk? (Or similar
question for nonfood enterprises.)

5. Interfaces
There are several types of users who access the database, and several applications that run on
their own.
(1)The database administrator (you) may use SQL either via the command line or SQL Developer
or PL/SQL Developer or others.
(2)Markets run various OLAP queries.
(3) Online customers need an elegant Web interface to order products. However, for this project,
a command-line interface will suffice if your Web and/or GUI skills are not up to the challenge.
(After all, this is a database course, not the Web Apps course, nor the User Interface course.)
(4) Your system may generate reorders automatically using triggers. Or, you may have an
application that runs periodically to scan the database looking for items to reorder.
(5) Vendors periodically query the database to check for reorder requests, which they fill by
entering into the database a shipment, a delivery date, and the reorder purchase order or orders
that are satisfied by the shipment.
(6) An application records the increase in inventories resulting from the arrival of a shipment.
(For simplicity here, assume that shipments arrive at the time specified by the vendor for the
shipment.)
(7)Each checkout register runs an application that records the items in each market-basket,
updates inventory, and gathers frequent-shopper data.
These interfaces can be built as

4
• Web applications using Java applets or a scripting language.
• A standalone Java application using Swing to create a GUI
• Other GUI development tools you may know (but be sure they are platform independent, see
note below)
• Since this course is not a Java course, nor a GUI course, I will accept a simple command-line
interface. In fact, even if you are expert in GUI development, you may want to start with a
simple command-line and then upgrade later.

6. Concurrency
The company stock will go down rapidly if the database cannot support more than
one customer at a time making a purchase or if it cannot deal with more than one item
being reordered. Be sure the Oracle transaction mechanism is providing the needed
guarantees. By running the various queries and applications in separate sessions (you
can run multiple JBDC connections at once), you can simulate the real-life operation
of your enterprise. Test concurrency carefully: don't fire up several processes that
submit customer market baskets until you are sure things work (and don't scale this
up to hundreds of customers or the system is likely to crash or bog down.
7. What to turn in
I will accept paper for the E-R diagram since we are not covering drawing tools for these diagrams,
but Power Designer and Magic Draw does work fairly well for this purpose.
7.1 Drawing tools :You could Draw E-R diagram with MS Visio; Drawing logical diagram
with PowerDesigner or Magic Draw.
PowetDesigner is a professional database utility.
Do not Draw diagrams in MS word.
7.2. E-R diagram, plus any explanatory notes. At minimum you must include all the entity and
relationship sets implied by this handout. You may go beyond the minimum.
Remember that the manager who defined the specifications is not computer literate so the
specifications should not be viewed as necessarily being precise and complete.
7.3. Relational schema(Including logical diagram and DDL). It is likely for many of you that
your E-R design will be sufficiently extensive that we agree that only a part of the resulting
relational design will actually be implemented under Oracle or other DBMS . This is the point
where we cut implementation effort and data-entry time to something realistic for the course
time frame.

5
7.4 A set of sample queries.
7.5 . The code to implement the various interfaces. (By restricting your development to Java or
other programing languages, your code should be platform independent. I will accept quite
basic interfaces (command line with a modest command set), but encourage more elegant
interfaces.
Depending on the degree of sophistication you plan for each interface, we can agree to fewer
than the 7 interfaces requested by the client.
7.6. Please avoid platform-specific solutions. It is a bit hard for me to debug custom
installations in the time-frame I have to grade the projects. Please check with me before making
any design decisions that bind your application to a specific hardware or software platform.
Platform-specific solutions will become a nightmare in the data-integration phase.
.

8.Grading:
I shall use the following approximate template for grading:
8.1. Business description 5 points
Including enterprise organization structure, Data Flow Diagram(DFD) ,
8.2. E-R design---conceptual model: 20 points
8.3. Relational design---logical structure/logical model, including attributes name,data type
constraints and indices: 20 points
8.4. physical database design ----including DCL,DDL.DML Statements 15 points
Including :
(1)select a DBMS and OS platform
(2) Installation of the DBMS
(3) Create database according to Relational Model ---logical structure,
8.5. run queries according to the requirenments 15 points
8.6. database routines ---trigers.prodedures,functions etc. 15 points
8.7. User interfaces, including proper features, proper updating of the database, etc. 10 points
8.8. I reserve the right to give extra points for exception solutions to parts of the project.

9 Report Format

6
Project Report

< The report name you given >

Course Name:Database Systems


Project Category: Individual Project
Project Designer: <your name>
Student ID: <your ID>
E-mail: <your email>
End date: <ended date>

7
1.Enterprise description

1.1 Brief introduction


Brief introduction about enterprise , including main business, organization structure, business
process model, data flow diagram etc.
1.2 requirement on new information system

2. Conceptual Model design


Analyzing user requirement, extract all entity set to create relationship among of these entities
according to business requirements.
Including:
E-R Model---conceptual model
(1) Construct an E-R diagram representing the conceptual design of the database.
(2) Be sure to identify primary keys, relationship cardinalities, etc.
3. Logical Relational Model
After creating an initial relational design from your E-R design, refine it based on the principles
of relational design .
• Create the relations
• Create indices and constraints as appropriate.
• If as you refine your design, you discover flaws in the E-R design, go back and change
it (even if the earlier design passed the checkpoint.) Your final E-R design must be
consistent with your relational design.
4. Select DBMS
4.1 Select one software as DBMS, Oracle database or PostgeSQL database ,MS SQL
Server,My SQL, or other database any you like. and describing reason that you selected the
software.
4.2 installation
Installing software as DBMS
5. Populate Relations
• Using DDL, CREATE Statement to create all relations, and using
INSERT,UPDATE,DELETE statements to manipulate data on relations. Include
enough data to make answers to your queries interesting and nontrivial for test purposes.
• You may find it helpful to write a program to generate test data.
8
6. Queries
You should run a number of SELECT queries to see that you have loaded your database in
the way you intended. The queries listed below are those that your clients (managers from the
retail enterprise) may find of interest. They may provide further hints about database design, so
think about them at the outset of your work on this project.
• Create the relations in Oracle database or PostgeSQL database or other database any
you like.
• What are the 20 top-selling products at each store?
• What are the 20 top-selling products in each state?
• What are the 5 stores with the most sales so far this year?
• In how many stores does Coke outsell Pepsi? (Or, a similar query for enterprises that
don't sell soda.)
• What are the top 3 types of product that customers buy in addition to milk? (Or
similar question for nonfood enterprises.)
7. Interfaces
There are several types of users who access the database, and several applications that run on
their own.
(1)The database administrator (you) may use SQL either via the command line or SQL
Developer or PL/SQL Developer or others.
(2)Markets run various OLAP queries.
(3) Online customers need an elegant Web interface to order products. However, for this
project, a command-line interface will suffice if your Web and/or GUI skills are not up to the
challenge. (After all, this is a database course, not the Web Apps course, nor the User Interface
course.)
(4) Your system may generate reorders automatically using triggers. Or, you may have an
application that runs periodically to scan the database looking for items to reorder.
(5) Vendors periodically query the database to check for reorder requests, which they fill by
entering into the database a shipment, a delivery date, and the reorder purchase order or orders
that are satisfied by the shipment.
(6) An application records the increase in inventories resulting from the arrival of a shipment.
(For simplicity here, assume that shipments arrive at the time specified by the vendor for the
shipment.)
(7)Each checkout register runs an application that records the items in each market-basket,
updates inventory, and gathers frequent-shopper data.
9
These interfaces can be built as
• Web applications using Java applets or a scripting language.
• A standalone Java application using Swing to create a GUI
• Other GUI development tools you may know (but be sure they are platform independent,
see note below)
• Since this course is not a Java course, nor a GUI course, I will accept a simple command-
line interface. In fact, even if you are expert in GUI development, you may want to start
with a simple command-line and then upgrade later.
8. Database connection
Using JDBC or ODBC to connect to the database
9. summary

Project 2
is on the way……..

10

You might also like