In: Computer Science
1. Please read the business statement below and draw ER, NER, and Table Schema diagrams for it.
Business Statement:
The project is about developing an auction Web site.
The details are as follows:
BA is an online auction Web site. People can buy and sell items in this Web site. Buyers are people who like to buy items, and sellers are people who like to sell items. Each seller can sell items
. Each item has a bidding start time, an end time, and an owner. Sellers are owners of their item. The start time and end time include the date as well.
Each seller has a name, contact information, and credit card information. They also have a user name and a password.
Contact information consists of an address, an email, and a telephone.
An address consists of a street number and name, city, state, and zip code.
Credit card information consists of owner name, card number, and expiration date.
Each item has a name, condition, an initial price, a description, quantity, one or more pictures, and an owner.
The condition could be New, Refurbished, or Explained. If the condition of an item is set to Explained, the seller should explain about the item condition in the item description.
Each buyer has a name, contact information, and credit card information. They also have a user name and a password.
When buyers’ login to Web site, they can go to the list of all available items and then go to the item detail page. Buyers can also search for an item. The application will search through item names for the search phrase.
Buyers can bid on items. Once a bid is made, buyers are accountable for their bid. In other words, buyers cannot simply remove their bid. If they change their mind, all they can do is to update their bid with the price of zero. Of course, they can do that before the auction expires.
After an auction expires, the buyer with the highest bid is the winner.
2. Please write SQL Query for each statement below.
BA likes to have a set of statistics about the system as
follows:
The most active seller (the one who has offered the most number of items)
The most active buyer (the one who has bought the most number of items)
The most expensive item sold ever
The most expensive item available
The cheapest item sold ever
The cheapest item available
ER Daigram for the given statements in the above question :
ER Diagram :
SQL Query for given statements in the above question :
1.The most active seller (the one who has offered the most number of items)
2.The most active buyer (the one who has bought the most number of items)
3.The most expensive item sold ever
4.The most expensive item available
5.The cheapest item sold ever
6.The cheapest item available
SQL Statements:
Ans 1- Most active seller (The one who has offered the most number of iteam ) : -
Lets assume we have a product table which has the seller Id and product_id as well
Product(product_id, product name,seller_id, list_out_date,cost)
SELECT Seller_id, COUNT(Seller_id) AS 'Count1'
FROM Product GROUP BY Seller_id ORDER BY count1 DESC LIMIT 1;
Ans 2- Most active Buyer (The one who has bought the most number of iteams) :
Consider we have a table Bidding_Info(Bidding_id,Buyer_id,Bidding_date,IsActive)
Query-
SELECT Buyer_id, COUNT(Buyer_id) AS 'Count1' FROM Bidding_Info GROUP BY Buyer_id ORDER BY count1 DESC LIMIT 1;
Ans 3- Expensive Item sold ever
Consider a table Items_Sold_Info( Product_id,seller_id,sold_date,buyer_id,cost_sold)
SELECT Seller_id, COUNT(Seller_id) AS 'Count1'
FROM Items_Sold_Info GROUP BY Seller_id ORDER BY count1 DESC LIMIT 1;
select product_id,product_name from Items_Sold_Info a join Product b
on a.product_id=b.product_id where a.cost_sold = (select max(cost_sold) from Items_Sold_Info);
Ans 4- Most Expensive item available :
Product(product_id, product_name,seller_id, list_out_date,cost)
select product_id, product_name from Product where cost=(select max(cost) from product);
And 5- Cheapest Item sold ever -
Consider a table Items_Sold_Info( Product_id,seller_id,sold_date,buyer_id,cost_sold)
select product_id,product_name from Items_Sold_Info a join Product b
on a.product_id=b.product_id where a.cost_sold = (select min(cost_sold) from Items_Sold_Info);
Ans 6- Cheapest item available-
Product(product_id, product_name,seller_id, list_out_date,cost)
select product_id, product_name from Product where cost=(select min(cost) from product);
Table schema diagrams :