Học viện công nghệ bưu chính viễn thông
*
* *
BÁO CÁO
Môn học: Cơ sở dữ liệu
Đề tài: Quản lý Grocery store
Họ tên: Nguyễn Duy Tùng
Lớp: D10CN1
Xây dựng ý tưởng
Đề tài yêu cầu ở đây là quản lý Grocery store.
Yêu cầu quản lý bao gồm Services Provider, products, invoice, goods và
customer. Thông qua đó có thể lập các invoice. Từ các hóa đơn có thể tìm
thấy thông tin về products, Services Providervà customercũng nhưinvoice
và một số thông tin khác.
Các thông tin về khách hàng cần nắm được name, nickname, address ,
phone number.
Thông tin về nhà cung cấp bao gồm name, address, phone number, tình
trạng của nhà cung cấp ra sao và đơn đặt hàng với nhà cung cấp đó là gì.
Một hãng cũng có thể cùng lúc cung cấp nhiều loại mặt hàng.
Thông tin về sản phẩm phải nắm được là mô tả về goods, date in, date
out, price, profitproducts, Source.
Thông tin về hóa đơn bao gồm customer, date buy và các products, price,
products number
1. Mô tả bài toán
1.Customer ( Khách Hàng ): Thực thể khách hàng dùng để lưu thông tin
của các khách hàng, bao gồm các thuộc tính:
- NameCustomer(Tên khách hàng)
- Adress
- Phone number
2. Invoice ( Hóa đơn ) : Thực thể hóa đơn lưu thông tin để thể hiện các
yêu cầu trả tiền của khách hàng, bao gồm các thuộc tính như:
- NameCustomer(Tên khách hàng)
- Date ( Ngày mua )
- Name product ( Tên Sản Phẩm )
- Number ( Số lượng )
- Price
3. Services Provider ( Nhà Cung cấp ): Thực thể nhà cung cấp dùng để
lưu thông tin của các nhà cung cấp bao gồm các thuộc tính như:
- Name
- Address
- Phone number
4. Product ( Sản Phẩm ): Thực thể sản phẩm lưu thông tin về các mặt
hàng, bao gồm các thuộc tính chính như:
- NameProduct
- Date in ( Ngày Nhập )
- Date out (ngày bán )
- Price in ( Giá Nhập )
- Price out ( Giá Bán )
- Name (Tên Nhà Cung cấp )
3. Mô hình E-R
Invoice
Product
Services
Provider
Customer
NameCusto
mer
Address
Phone
Number
NameCusto
mer
Date in
NameProdu
ct
Number
Price
Date
out
Name
Price out
Date in
Price in
Address
Name
Phone
Number
NameProduc
t
Product
s
Include
source
4. Thiết kế cơ sở dữ liệu ở mức Logic
Mô hình cơ sở dữ liệu quan hệ:
NameCustomer
Address
Phone Number
NameCustomer
Date in
NameProduct
Price
Number
Name
Address
PhoneNumber
NameProduct
Date out
Name
Price out
Price in
Date in
Ví dụ truy vấn 1: Tìm tên của tất cả các custumer. Cách tiếp cận truy vấn này như sau:
- Đầu tiên chọn tất cả các khách hàng mà muốn mua sản phẩm
r =
(major = “Customer”)
(S)
- Tiếp đến chiếu kết quả trên lên thuộc tính name:
result =
(name)
(r)
Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
(major = “Customer”)
(S))
Ví dụ truy vấn 2: Tìm tên của tất cả các khách hàng mà muốn mua hơn 20 sản phẩm
và nhỏ hơn 80 . Cách tiếp cận truy vấn này như sau:
- Đầu tiên chọn tất cả các khách hàng đã mua 80 sp và ít hơn 20 sp
r =
((customer > 80) AND (product < 20))
(S)
- Tiếp đến chiếu kết quả trên lên thuộc tính tên sinh viên
result =
(name)
(r)
Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
((customer > 80) AND (product < 20))
(S))
Ví dụ truy vấn 3: Tìm tên của tất cả các giá hàng hóa mà nhà cung cấp cung cấp.
Cách tiếp cận truy vấn này như sau:
- Đầu tiên lựa chọn tất cả các sản phẩm được cung cấp
r =
((dept = price product) or (dept = produce))
(C))
- Tiếp đó chiếu kết quả trên lên thuộc tính tên
result =
(name)
(r)
Biểu thức truy vấn hoàn chỉnh là:
result =
(name)
(
((dept = price product) or (dept = Produce))
(C))
Ví dụ truy vấn 4: Tìm tên của tất cả tên sản phẩm đã cung cấp vào đợt mùa thu năm
2012. Cách tiếp cận truy vấn như sau:
- Đầu tiên đưa toàn bộ thông tin về giáo sư vào cùng với thông tin của khóa
học.
- Tiếp đến, lựa chọn chỉ những sản phẩm và nhà cung cấp và thỏa mãn điều
kiện.
- Cuối cùng, chiếu kết quả trên lên tên sản phẩm
Biểu thức truy vấn hoàn chỉnh là:
result =
(P.name)
(
((TE.term = Fall 2012) AND (P.p# = TE.p#))
(P TE))
Ví dụ truy vấn 5: Tìm tên của tất cả các khách hàng đã tham gia mua hàng trong đợt
mùa thu 2010 mà lấy với số lượng nhiều
Cách tiếp cận truy vấn này như sau:
- Đầu tiên ghép thông tin về số lượng và sản phẩm vào với nhau
- Tiếp đến, lựa chọn chỉ những khách hàng, sản phẩm và số lượng liên quan
và thỏa mãn điều kiện từ kết quả trên
- Cuối cùng, chiếu kết quả trên lên tên khách hàng.
Biểu thức truy vấn hoàn chỉnh là:
result =
(S.name)
(
((TA.term = Fall 2010) AND (P.yrs_number > 20) AND (S.s# = TA.s#) AND (P.p# = TE.p#)
AND (TA.c# = TE.c#) AND (TA.term
= TE.term))
(S P TA TE))
Ví dụ truy vấn 6: Tìm tên của tất cả các sản phẩm hoặc thuộc nhà cung cấp
Biểu thức truy vấn hoàn chỉnh là:
result = [
(name)
(
(dept = )
(P))] [
(name)
(P))] hoặc
result =
(name)
(
((dept = service product) OR (yrs_product > 20))
(P))
Ví dụ truy vấn 7: Tìm số điện thoại của các khách hàng chỉ đăng ký 2003.
Biểu thức truy vấn hoàn chỉnh như sau
result = [
(TA.s#)
(
(TA.term = 2003)
(TA))] [
(TA.s#)
(
(TA.term 2003))
(TA))]
Lưu ý biểu thức truy vấn sau đây không đúng cho câu truy vấn này
VI.Các phụ thuộc hàm F trên từng lược đồ:
1. Lược đồ quan hệ khách hàng
Ω(N#,NC,AD,PN ), trong đó:
N# : Mã khách hàng
NC : Name Customer
AD : Adress ( Địa chỉ )
PN : Phone Number ( Số điện thoại )
Khi đó các Phụ thuộc hàm là :
N# →NC
N# →AD
N# →PN
2. Lược đồ quan hệ Hóa Đơn
Ω(IN#,NC,DT,NP,NU,PR), trong đó :
IN#: Mã hóa đơn
NC: NameCustomer ( Tên khách hàng)
DT: Date ( Ngày mua )
NP: Name product ( Tên Sản Phẩm )
NU: Number ( Số lượng )
PR: Price ( Giá cả )
Khi đó các phụ thuộc hàm trên lược đồ là:
IN# →NC
IN# →DT
IN# →NU
IN# →PR
3. Lược đồ quan hệ nhà cung cấp:
Ω(SP#,NA,AD,PN), trong đó :
SP# : Mã nhà cung cấp
NA: Name Product ( tên nhà cung cấp)
AD: Adress Product ( địa chỉ nhà cung cấp )
PN: Phone Number ( Số đt nhà cung cấp )
Khi đó các phụ thuộc hàm trên lược đồ là:
SP# →NP
SP# →AP
SP# →PN
4. Lược đồ quan hệ Sản Phẩm:
Ω(MP#,NP,DI,DO,PI,PO,NA), trong đó :
MP#: Mã Sản Phẩm
NP: NameProduct ( Tên Sản Phẩm )
DI: Date in ( Ngày Nhập )
DO: Date out (ngày bán )
PI: Price in ( Giá Nhập )
PO: Price out ( Giá Bán )
NA: Name (Tên Nhà Cung cấp )
NP# → NP
NP# → DI
NP# → DO
NP# → PI
NP# → PO
NP# → NA
VII.Đưa các lược đồ về dạng chuẩn 3(3NF):
(Loại bỏ các phụ thuộc không đầy đủ và loại bỏ các phụ thuộc bắc cầu)
1.Lược đồ quan hệ Khách Hàng:
2.Lược đồ quan hệ Hóa đơn :
N#
NC
PN
ĐC
3.Lược đồ quan hệ nhà cung cấp:
4.Lược đồ quan hê sản phẩm :
IN#
NC
DT
SP#
NA
SP#
AD
PN
MP#
DO
DI
IN#
NU
NP
IN#
PR
MP#
NP
MP#
NA
MP#
PI
PO
Chuyển các câu truy vấn bằng phương pháp đại số sang ngôn ngữ MY SQL:
Ví dụ truy vấn 1: Tìm tên tất cả các khách hàng ở Hà Nội:
BIểu thức truy vấn hoàn chỉnh là:
SELECT name
FROM customer
WHERE địa chỉ ”%Hà Nội%”;
Ví dụ truy vấn 2: Tìm số hiệu khách hàng s# và tên của tất cả các khách hàng đã mua hơn 10 hóa
đơn:
SELECT Num, Customer name
FROM customera
WHERE number invoice
Truy vấn 3: Tìm tất cả những hóa đơn chưa thanh toán:
SELECT *
FROM invoce
WHERE trạng thái=”%chưa thanh toán%”;
Truy vấn 4: Tìm tên của tất cả các sản phẩm do nhà cung cấp ơ Hà Nội hoặc nhà cung cấp ở Hà
Tây sản xuất
SELECT Name product
FROM product
WHERE Adress=Hanoi OR Adress = HaTay
Truy vấn 5: Tìm tên tất cả các khách hàng đã mua hàng vào tháng 9/2012:
SELECT name customer
FROM invoice
WHERE date>=”01/9/2012”
AND date<=”31/9/2012”;
Truy vấn 6: Tìm tên của tất cả các khách hàng là nam trước năm 1992
SELECT name customer
FROM customer
WHERE sex=1 AND year(Birth)<1992
Truy vấn 7:Tìm tên tất cả các nhà sản xuất ở Hà Nội hoặc ở Bắc Ninh:
SELECT name
FROM prodution
WHERE địa chỉ LIKE ”%Hà Nội%”
OR địa chỉ LIKE ”%Bắc Ninh%”;
Truy vấn 8: Liệt kê hóa đơn có giá lớn hơn 5 triệu VNĐ:
SELECT *
FROM invoice
WHERE giá trị > 10.000.000;
Truy vấn 9: Tìm tất cả các nhà sản xuất có địa chỉ ở Hà Nội:
SELECT number
FROM production
WHERE địa chỉ LIKE ”%Hà Nội%”
Truy vấn 10: Tìm loại sản phẩm có giá từ 300000-700000
SELECT other product
FROM product
WHERE price>=300000 AND price<=700000