1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo đồ án cuối kì cơ sở dữ liệu nâng cao đề tài thiết kế cơ sở dữ liệu cho trang web bán hàng điện tử

44 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế cơ sở dữ liệu cho trang web bán hàng điện tử
Tác giả Phùng Duy Phước, Huỳnh Thị Thu Thảo, Vũ Đình Quang Minh, Nguyễn Tấn Vũ
Người hướng dẫn Ts. Văn Thế Thành
Trường học Đại học Sư phạm Thành phố Hồ Chí Minh
Chuyên ngành Cơ sở dữ liệu nâng cao
Thể loại Báo cáo đồ án cuối kì
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 44
Dung lượng 1,96 MB

Cấu trúc

  • 1. Chọn một project để thiết kế CSDL, mô tả tên đồ án, mục tiêu project (6)
    • 1.1. Chọn project (6)
    • 1.2. Mục tiêu đồ án (6)
  • 2. Thiết kế CSDL toàn cục cho project, tạo và nhập dữ liệu mẫu cho CSDL (6)
  • 3. Phân mảnh (ngang, dọc, hỗn hợp) từ CSDL toàn cục (Master DB) để tạo thành các (11)
    • 3.1. QLBHDT_ADMIN (12)
    • 3.2. QLBHDT_CUSTOMER (14)
    • 3.3. QLBHDT_LAPTOP (17)
    • 3.4. QLBHDT_PHONE (19)
    • 3.5. QLBHDT_THONGTINDONHANG (22)
    • 3.6. QLBHDT_THONGTINKHACHDATHANG (25)
  • 4. Tạo CSDL MongoDB tương ứng với các Slaver DB và thực hiện các thao tác trên MongoDB (26)
    • 4.1. QLBHDT_ADMIN (27)
    • 4.2. QLBHDT_CUSTOMER (28)
    • 4.3. QLBHDT_LAPTOP (30)
    • 4.4. QLBHDT_PHONE (32)
    • 4.5. QLBHDT_THONGTINDONHANG (35)
    • 4.6. QLBHDT_THONGTINKHACHDATHANG (36)
  • 5. Tạo CSDL đồ thị tương ứng với các CSDL MongoDB và thực hiện các thao tác (39)
    • 5.1. QLBHDT_ADMIN (39)
    • 5.2. QLBHDT_CUSTOMER (39)
    • 5.3. QLBHDT_PHONE (40)
    • 5.4. QLBHDT_LAPTOP (41)
    • 5.5. QLBHDT_THONGTINKHACHDATHANG (41)
    • 5.6. QLBHDT_THONGTINDONHANG (42)
    • 5.7. Các thao tác trên Neo4j (43)

Nội dung

Chọn một project để thiết kế CSDL, mô tả tên đồ án, mục tiêu project

Chọn project

Ngày nay với sự phát triển nhanh chóng của công nghệ 4.0 Việc áp dụng mua bán online ngày càng được nhiều người quan tâm Các trang thương mại điện tử cũng theo đó mà hình thành và phát triển Vì thế áp dụng những kiến thức được học trong bộ môn Cơ sở dữ liệu nâng cao, nhóm chúng em xin lựa chọn đề tài “Thiết kế cơ sở dữ liệu cho trang web bán hàng điện tử”.

Mục tiêu đồ án

Ở đề tài này, mục tiêu được đề ra:

Thiết kế CSDL toàn cục cho đồ án, xây dựng bộ dữ liệu mẫu cho CSDL.

Phân mảnh (ngang, dọc, hỗn hợp) từ CSDL toàn cục (Master DB) để tạo thành các CSDL thành phần (Slaver DB), thực hiện các thao tác trên Slaver DB (thêm, xoá, sửa, truy vấn) và tạo các Trigger, Store Procedure.

Tạo CSDL MongoDB tương ứng với các Slaver DB và thực hiện các thao tác trên

Tạo CSDL đồ thị tương ứng với các CSDL MongoDB và thực hiện các thao tác.

Thiết kế CSDL toàn cục cho project, tạo và nhập dữ liệu mẫu cho CSDL

 Lược đồ quan hệ CSDL toàn cục:

Hình 1 Lược đồ quan hệ CSDL toàn cục

 Đặc tả: Đặc tả dữ liệu cho bảng USERS:

Tên trường Kiểu dữ liệu

USERS_ID Int Khoá chính Số nguyên

USERS_EMAIL Varchar 40 ký tự Văn bản

USERS_PASS Varchar 20 kí tự Văn bản

FULLNAME Nvarchar 100 kí tự Văn bản

TYPE Int Số nguyên Đặc tả dữ liệu cho bảng USERS_INFOR:

Tên trường Kiểu dữ liệu

USERS_INFOR_ID Int Khóa chính Số nguyên

USERS_ID Int Khoá ngoại Số nguyên

ADDRESS Nvarchar 100 kí tự Văn bản

PHONENUM Varchar 9 kí tự Văn bản Đặc tả dữ liệu bảng CART:

Tên trường Kiểu dữ liệu

CART_ID Int Khoá chính Số nguyên

PRODUCT_ID Int Khoá ngoại Số nguyên

CAT_QUANTITY Int Số nguyên

USERS_ID Int Khoá ngoại Số nguyên Đặc tả dữ liệu bảng MESSAGE:

Tên trường Kiểu dữ liệu

MESSAGE Int Khóa chính Số nguyên

USERS_ID1 Int Khoá ngoại Số nguyên

USERS_ID2 Int Khoá ngoại Số nguyên

L Nvarchar 2000 kí tự Văn bản Đặc tả dữ liệu bảng ORDERS:

Tên trường Kiểu dữ liệu

Ràng buộc toàn vẹn Khuôn dạng Ghi chú

ORDERS_ID Int Khoá chính Số nguyên

USERS_ID Int Khoá ngoại Số nguyên

ADRESS Nvarchar 100 kí tự Văn bản năm PAYMENT_METO

TOTAL_PRICE Int Số nguyên Đặc tả dữ liệu bảng ORDERS_DETAIL:

Tên trường Kiểu dữ liệu

D Int Khoá chính Số nguyên

ORDERS_ID Int Khoá ngoại Số nguyên

PRODUCT_ID Int Khoá ngoại Số nguyên

QUANTITY Int Số nguyên Đặc tả dữ liệu bảng PRODUCT:

Tên trường Kiểu dữ liệu

PRODUCT_ID Int Khoá chính Số nguyên

CAT_ID Int Khoá ngoại Số nguyên

PRODUCT_NAME Nvarchar 100 kí tự Văn bản

PRICE Int Số nguyên Đặc tả dữ liệu bảng PRODUCT_DETAIL:

Tên trường Kiểu dữ liệu

PRODUCT_DETAIL_ID Int Khóa chính Số nguyên

PRODUCT_ID Int Khoá ngoại Số nguyên

RAM Varchar 5 kí tự Văn bản

BATTERY Varchar 10 kí tự Văn bản

CHIP Varchar 100 kí tự Văn bản

ROM Varchar 10 kí tự Văn bản

COUNTRY Nvarchar 20 kí tự Văn bản Đặc tả dữ liệu bảng IMG:

Tên trường Kiểu dữ liệu

PRODUCT_ID Int Khoá ngoại Số nguyên

IMG_ID Int Số nguyên

PATH Varchar 1000 kí tự Văn bản Đặc tả dữ liệu bảng CAT_PRODUCT:

Tên trường Kiểu dữ liệu Kích thước

CAT_ID Int Khoá chính Số nguyên

CAT_NAME Nvarchar 50 kí tự Văn bản

 Nhập dữ liệu mẫu cho các bảng:

Hình 2 Dữ liệu mẫu cho bảng USERS

Dữ liệu mẫu cho bảng USERS_INFOR:

Dữ liệu mẫu cho bảng CART:

Dữ liệu mẫu cho bảng MESSAGE:

Hình 6 Dữ liệu mẫu cho bảng ORDERS:

Dữ liệu mẫu cho bảng ORDERS_DETAIL: Hình 8

Dữ liệu mẫu cho bảng PRODUCT

Hình 9 Dữ liệu mẫu cho bảng PRODUCT_DETAIL

Dữ liệu mẫu cho bảng IMG

Dữ liệu mẫu cho bảng CAT_PRODUCT

Phân mảnh (ngang, dọc, hỗn hợp) từ CSDL toàn cục (Master DB) để tạo thành các

QLBHDT_ADMIN

- Là server chứa CSDL thành phần để quản lý thông tin csủa tài khoản Admin (Phân mảnh ngang).

- CSDL thành phần này sẽ có 3 bảng lấy từ CSDL toàn cục nhưng chỉ chứa các thông tin của những người dùng có TYPE = 1 (Admin) 3 bảng đó bao gồm: + MESSAGE

Dữ liệu mẫu của bảng MESSAGE sau khi phân mảnh

Dữ liệu mẫu của bảng USERS sau khi phân mảnh

Dữ liệu mẫu của bảng USERS_INFOR sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Stored Procedure để thêm tài khoản Admin

+ Store Procedure để cập nhật thông tin tài khoản Admin

+ Store Procedure để xoá tài khoản Admin

+ Trigger để đảm bảo người dùng không sử dụng email trùng nhau

QLBHDT_CUSTOMER

- Là server chứa CSDL thành phần để quản lý thông tin của tài khoản khách hàng (Phân mảnh ngang).

CSDL thành phần này sẽ có 4 bảng lấy từ CSDL toàn cục nhưng chỉ chứa thông tin của những người dùng có TYPE = 0 (khách hàng) 4 bảng đó bao gồm: CART

Dữ liệu mẫu của bảng CART sau khi phân mảnh

Dữ liệu mẫu của bảng MESSAGE sau khi phân mảnh

Hình 24.Dữ liệu mẫu của bảng CART sau khi phân mảnh

Dữ liệu mẫu của bảng USERS_INFOR sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Store Procedure để thêm tài khoản khách hàng:

+ Store Procedure để cập nhật thông tin tài khoản khách hàng:

+ Strore Procedure để xoá tài khoản khách hàng:

+ Trigger để đảm bảo khách hàng không dùng email trùng nhau:

QLBHDT_LAPTOP

- Là server chứa CSDL thành phần để quản lý thông tin của sản phẩm thuộc danh mục Laptop (Phân mảnh ngang).

- CSDL thành phần này sẽ có 4 bảng lấy từ CSDL toàn cục nhưng chỉ chứa các thông tin của những sản phẩm có CAT_ID = 2 (laptop) 4 bảng đó bao gồm:

Dữ liệu mẫu bảng CAT_PRODUCT sau khi phân mảnh

Dữ liệu mẫu bảng CAT_PRODUCT sau khi phân mảnh

Hình 33.Dữ liệu mẫu bảng PRODUCT sau khi phân mảnh

Dữ liệu mẫu bảng PRODUCT_DETAIL sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Strore Procedure để thêm sản phẩm laptop:

+ Strore Procedure để chỉnh sửa thông tin sản phẩm laptop:

+ Strore Procedure để xoá sản phẩm laptop:

+ Trigger để đảm bảo không có 2 sản phẩm trùng tên nhau:

QLBHDT_PHONE

- Là server chứa CSDL thành phần để quản lý thông tin của sản phẩm thuộc danh mục “Điện thoại” (Phân mảnh ngang).

- CSDL thành phần này sẽ có 4 bảng lấy từ CSDL toàn cục nhưng chỉ chứa các thông tin của những sản phẩm có CAT_ID = 1 (điện thoại) 4 bảng đó bao gồm:

Dữ liệu mẫu cho bảng CAT_PRODUCT sau khi phân mảnh

Dữ liệu mẫu cho bảng IMG sau khi phân mảnh

Hình 41.Dữ liệu mẫu cho bảng PRODUCT sau khi phân mảnh

Hình 42.Dữ liệu mẫu cho bảng PRODUCT_DETAIL sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Strore Procedure để thêm sản phẩm điện thoại:

+ Strore Procedure để chỉnh sửa thông tin sản phẩm điện thoại:

+ Strore Procedure để xoá sản phẩm điện thoại:

+ Trigger để đảm bảo không có 2 sản phẩm trùng tên nhau:

QLBHDT_THONGTINDONHANG

- Là server chứa CSDL thành phần để quản lý thông tin của đơn hàng (Phân mảnh dọc).

- CSDL thành phần này sẽ có 2 bảng lấy từ CSDL toàn cục là bảng ORDERS và bảng ORDERS_DETAIL tuy nhiên bảng ORDERS chỉ có các trường chứa thông tin của đơn hàng:

Hình 48.Dữ liệu mẫu cho bảng ORDERS sau khi phân mảnh

Dữ liệu mẫu cho bảng ORDERS sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Strore Procedure để cập nhật thông tin đơn hàng:

+ Strore Procedure để xoá thông tin đơn hàng:

+ Truy vấn STATUS (trạng thái) của hoá đơn người dùng theo USERS_ID (mã người dùng):

Hình 52.Truy vấn trạng thái của đơn hàng.

QLBHDT_THONGTINKHACHDATHANG

- Là server chứa CSDL thành phần để quản lý thông tin của khách đặt hàng (Phân mảnh dọc).

- CSDL thành phần này sẽ có 2 bảng lấy từ CSDL toàn cục là bảng ORDERS và bảng ORDERS_DETAIL tuy nhiên bảng ORDERS chỉ có các trường chứa thông tin của khách đặt hàng:

Dữ liệu mẫu cho bảng ORDERS sau khi phân mảnh

Dữ liệu mẫu cho bảng ORDERS_DETAIL sau khi phân mảnh

- Các thao tác trên CSDL thành phần:

+ Strore Procedure để cập nhật thông tin của khách đặt hàng:

+ Strore Procedure để xoá thông tin của khách đặt hàng:

Tạo CSDL MongoDB tương ứng với các Slaver DB và thực hiện các thao tác trên MongoDB

QLBHDT_ADMIN

- Bao gồm 3 collections để quản lý tài khoản admin:

- Để xem các collections của database ta sử dụng lệnh: show collections

Hình 59.Tất cả collection của database QLBHDT_ADMIN

- Tiếp theo ta thực hiện nhập các document cho các collections của database bằng lệnh: db.collection_name.insert({“key”: value, “key”: value,… })

- Để xem tất cả document đã nhập cho 1 collection nào đó ta dùng lệnh: db.collection_name.find()

- Document nhập vào cho collection MESSAGE

Hình 60 Tất cả document của collection MESSAGE

- Document nhập vào cho collection USERS

Hình 61.Tất cả document của collection USERS

- Document nhập vào cho collection USERS_INFOR

Hình 62.Tất cả document của collection USERS_INFOR

QLBHDT_CUSTOMER

- Bao gồm 4 collections để quản lý tài khoản khách hàng: + CART

Hình 63.Tất cả collections của database QLBHDT_CUSTOMER

- Document nhập vào cho collection MESSAGE:

Hình 64.Tất cả document của collection MESSAGE

- Document nhập vào cho collection CART:

Hình 65.Tất cả document của collection CART

- Document nhập vào cho collection USERS:

Hình 66.Tất cả document của collection USERS

- Document nhập vào cho collection USERS_INFOR:

Hình 67.Tất cả document của collection USERS_INFOR

QLBHDT_LAPTOP

- Bao gồm 4 collections để quản lý thông tin sản phẩm thuộc danh mục laptop: + CAT_PRODUCT

Hình 68.Tất cả collections của database QLBHDT_LAPTOP

- Document nhập vào cho collection CAT_PRODUCT:

Hình 69.Tất cả document của collection CAT_PRODUCT

- Document nhập vào cho collection IMG:

Hình 70.Tất cả document của collection IMG

- Document nhập vào cho collection PRODUCT:

Hình 71.Tất cả document của collection PRODUCT

- Document nhập vào cho collection PRODUCT_DETAIL:

Hình 72.Tất cả document của collection PRODUCT_DETAIL

QLBHDT_PHONE

- Bao gồm 4 collections để quản lý thông tin sản phẩm thuộc danh mục điện thoại: + CAT_PRODUCT

Hình 73.Tất cả collections của database QLBHDT_PHONE

- Document nhập vào cho collection CAT_PRODUCT:

Hình 74.Tất cả document của collection CAT_PRODUCT

- Document nhập vào cho collection IMG:

Hình 75.Tất cả document của collection IMG

- Document nhập vào cho collection PRODUCT:

Hình 76.Tất cả document của collection PRODUCT

- Document nhập vào cho collection PRODUCT_DETAIL:

Hình 77.Tất cả document của collection PRODUCT_DETAIL

QLBHDT_THONGTINDONHANG

- Bao gồm 2 bảng ORDERS và ORDERS_DETAIL nhưng collection ORDERS sẽ chứa các trường cần thiết để quản lý thông tin của đơn hàng:

Hình 78.Tất cả collections của database QLBHDT_THONGTINDONHANG

- Document nhập vào cho collection ORDERS:

Hình 79.Tất cả document của collection ORDERS

- Document nhập vào cho collection ORDERS_DETAIL:

Hình 80.Tất cả document của collection ORDERS_DETAIL

QLBHDT_THONGTINKHACHDATHANG

- Bao gồm 2 collections ORDERS và ORDERS_DETAIL tuy nhiên collection ORDERS chỉ chứa các trường cần thiết để quản lý thông tin của khách đặt hàng.

Hình 81.Tất cả collections của database QLBHDT_THONGTINKHACHDATHANG

- Document nhập vào cho collection ORDERS:

Hình 82.Tất cả document của collection ORDERS

- Document nhập vào cho collection ORDERS_DETAIL:

Hình 83.Tất cả document của collection ORDERS_DETAIL

- 1 số thao tác trên mongoDB với các database trên:

+ Xem thông tin tất cả điện thoại có giá cao hơn hoặc bằng 13000 trong database QLBHDT_PHONE:

Hình 84.Truy vấn thông tin điện thoại theo giá (cao hơn hoặc bằng 13000)

+ Chỉnh sửa họ tên (FULLNAME) của khách hàng “Nguyễn Văn Vũ” thành

“Nguyễn Tấn Vũ” trong database QLBHDT_CUSTOMER:

Hình 85.Chỉnh sửa thông tin khách hàng

+ Xem thông tin đơn hàng đã thanh toán (STATUS = 1) trong database QLBHDT_THONGTINDONHANG:

Hình 86.Truy vấn thông tin hoá đơn đã thanh toán (STATUS = 1)

Tạo CSDL đồ thị tương ứng với các CSDL MongoDB và thực hiện các thao tác

QLBHDT_ADMIN

Hình 87.Cơ sở dữ liệu đồ thị QLBHDT_ADMIN

Cơ sở dữ liệu đồ thị QLBHDT_ADMIN trên gồm:

2 node (Huỳnh Thị Thu Thảo, Nguyễn Văn Minh) thuộc label (USERS).

2 node (4,3) thuộc label (USERS_INFOR).

Node (Huỳnh Thị Thu Thảo) có thông tin tài khoản ở node (4).

Node (Nguyễn Văn Minh) có thông tin tài khoản ở node (3).

Node (Nguyễn Văn Minh) nhận tin nhắn ở node (1).

QLBHDT_CUSTOMER

Hình 88.Cơ sở dữ liệu đồ thị QLBHDT_CUSTOMER

Node (Phùng Duy Phước) có thông tin tài khoản ở node (1).

Node (Nguyễn Văn Vũ) có thông tin tài khoản ở node (2).

Node (Phùng Duy Phước) có giỏ hàng ở node (1,1).

Node (Nguyễn Văn Vũ) có giỏ hàng ở node (2,2,2).

Node (Phùng Duy Phước) gửi tin nhắn ở node (1).

Node (3) chứa tin nhắn của người nhận là node (Phùng Duy Phước).

QLBHDT_PHONE

Cơ sở dữ liệu đồ thị QLBHDT_PHONE

Cơ sở dữ liệu đồ thị QLBHDT_PHONE trên gồm:

1 node (Điện Thoại) thuộc lable (CAT_PRODUCT).

3 node (Iphone 14 Promax, OppoReno8, BlachShark) thuộc label (PRODUCT).

2 node (1,3) thuộc lable (PRODUCT_DETAIL).

9 node (màu cam) thuộc lable (IMG).

Node (Điện thoại) có sản phầm là (Iphone 14 Promax, OppoReno8, BlachShark)

Node (Iphone 14 Promax) sở hữu chi tiết sản phẩm là node (3) và có 3 hình ảnh minh họa là node (img/anhdaidien14promax.jpg, img/14promax.jpg, img/14).

Tương tự cho 2 node (OppoReno8, BlachShark).

QLBHDT_LAPTOP

Hình 90.Cơ sở dữ liệu đồ thị QLBHDT_LAPTOP

Cơ sở dữ liệu đồ thị QLBHDT_LAPTOP trên gồm:

1 node (Laptop) thuộc lable (CAT_PRODUCT).

2 node (DELL E7450, Thinkpad X1 Carbon) thuộc label (PRODUCT).

2 node (4,5) thuộc lable (PRODUCT_DETAIL).

6 node (màu cam) thuộc lable (IMG).

Node (Laptop) có sản phầm là (DELL E7450, Thinkpad X1 Carbon).

Node (DELL E7450) sở hữu chi tiết sản phẩm là node (4) và có 3 hình ảnh minh họa là node (img/anhdaidiendell.jpg, img/DELL E7450.jpg, img/dell.jpg ).

Tương tự cho node (Thinkpad X1 Carbon).

QLBHDT_THONGTINKHACHDATHANG

2 node (2,3) thuộc label (ORDERS_DETAIL).

Node (Phùng Duy Phước) với các thuộc tính (ORDERS_ID, USERS_ID, ADRESS, FULLNAME, NUMBER) có thông tin chi tiết hóa đơn ở node (3) với các thuộc tính (OD_DETAIL_ID, ORDERS_ID, PRODUCT_ID, QUANTITY).

Node (Nguyễn Văn Vũ) với các thuộc tính (ORDERS_ID, USERS_ID, ADRESS,

FULLNAME, NUMBER) có thông tin chi tiết hóa đơn ở node (2) với các thuộc tính (OD_DETAIL_ID, ORDERS_ID, PRODUCT_ID, QUANTITY).

QLBHDT_THONGTINDONHANG

Hình 92.Cơ sở dữ liệu đồ thị QLBHDT_THONGTINDONHANG

Cơ sở dữ liệu đồ thị QLBHDT_THONGTINKHACHDATHANG trên gồm:

2 node (2,3) thuộc label (ORDERS_DETAIL).

Node (1) với các thuộc tính (ORDERS_ID, USERS_ID, DATES,

PAYMENT_METHOD, STATUS, TOTAL_PRICE) có thông tin chi tiết hóa đơn ở node (3) với các thuộc tính (OD_DETAIL_ID, ORDERS_ID, PRODUCT_ID, QUANTITY). Node (2) với các thuộc tính (ORDERS_ID, USERS_ID, DATES,

PAYMENT_METHOD, STATUS, TOTAL_PRICE) có thông tin chi tiết hóa đơn ở node(2) với các thuộc tính (OD_DETAIL_ID, ORDERS_ID, PRODUCT_ID, QUANTITY).

Các thao tác trên Neo4j

 Cập nhật thông tin của khách hàng:

Hình 93.Cú pháp cập nhật thông tin khách hàng

Sử dụng cấu trúc trên để chỉnh sửa thông tin khách hàng ‘Nguyễn Văn Vũ’ sang ‘Nguyễn Tấn Vũ’.

Hình 94.Kết quả cập nhật node

Hình 95.Cú pháp thêm node

Thêm node (Sạc Dự Phòng) thuộc label CAT_PRODUCT với các thuộc tính (CAT_ID 3, CAT_NAME = ‘Sạc Dữ Phòng’) theo cú pháp trên.

Ngày đăng: 02/08/2024, 16:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w