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.. Thông tin về nhà cung cấp bao gồm name, address, phone numbe
Trang 1Họ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
Trang 2Xâ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 )
Trang 3- 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 )
Trang 43 Mô hình E-R
Invoice
Product
Services Provider
Customer
NameCusto
mer
Address
Phone
Number
NameCusto mer
Date in
NameProdu
ct
Date out
Name Price out
Date in
Price in Address
Name
Phone
Number
NameProduc
t
Product
s
Include source
Trang 54 Thiết kế cơ sở dữ liệu ở mức Logic
Mô hình cơ sở dữ liệu quan hệ:
NameCustomer
Trang 7Ví 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
Trang 8- 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
Trang 9NC: 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 )
Trang 10DO: 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:
PN
ĐC
Trang 113.Lược đồ quan hệ nhà cung cấp:
4.Lược đồ quan hê sản phẩm :
DT
PN
MP#
DO
DI
NP
Trang 12
PO
Trang 13Chuyể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
Trang 14FROM 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