Tải bản đầy đủ (.pdf) (28 trang)

hệ thống quản lý cơ sở dữ liệu e commerce

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.05 MB, 28 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Mục lụcLời nói đầu</b>

<b>I.Đề tài nhóm</b>

<b>1. Khái quát về đề tài nhóm</b>

Thương mại điện tử (Electronic Commerce) là việc mua và bán hàng hóa và dịch vụ,hoặc chuyển tiền hoặc dữ liệu, qua một mạng điện tử, chủ yếu là internet. Các giao dịchkinh doanh này thường áp dụng dạng doanh nghiệp với doanh nghiệp hoặc doanh nghiệpvới người tiêu dùng, người tiêu dùng với người tiêu dùng hoặc người tiêu dùng với doanh nghiệp.Ưu điểm của thương mại điện tử:

- Khả dụng: Cho phép khách truy cập duyệt và mua sắm bất cứ lúc nào.- Tốc độ truy cập: Có tốc độ mua sắm, trao đổi hơn hẳn so với mua hàng truyền thống.

- Khả năng tiếp cận dễ dàng: Khách truy cập có thể duyệt qua các trang danh mục sản phẩm và sử dụng tính năng tìm kiếm trên trang web để tìm sản phẩm ngay lập tức.

- Tiếp cận quốc tế: việc bán hàng ít bị giới hạn bởi vị trí địa lý, người dùng có thể mua hàng chỉ với việc kết nối internet.

- Chi phí thấp hơn: Giảm bớt các chi phí liên quan đến cửa hàng thực như mặt bằng, kho bãi.

- Cá nhân hóa và đề xuất sản phẩm: có thể sử dụng dữ liệu truy cập của khách hàng để đưa ra các đề xuất sản phẩm hữu ích và được cá nhân hóa, đồng thời có được thơng tin chi tiết có giá trị về thị trường mục tiêu.

<b>2. Hệ thống quản lý cơ sở dữ liệu E-Commerce</b>

- Hệ thống quản lý cơ sở dữ liệu thương mại điện tử (EC-DBMS) là một hệ thống được thiết kế để lưu trữ, xử lý, truy xuất và phân tích thơng tin liên quan đến việc quản trị và quản lý hoạt động bán hàng được thực hiện bởi khách hàng trực tuyến tại nhà.

- Khách hàng có thể duyệt bất kỳ sản phẩm nào để biết giá, các thơng tin chi tiết khác và có thể đặt mua sản phẩm bằng tài khoản đã đăng ký của mình. Khách hàng phải thanh tốn số tiền đặt hàng tại thời điểm giao hàng.

<b>II.Cấu trúc cơ sở dữ liệu</b>

<i><b>1. Xác định và vẽ mơ hình thực thể liên kết</b></i>

- Bước đầu cho việc xây dựng cơ sở dữ liệu của bọn em sẽ tập trung vào quản lý 3 thơng tin chính và phát triển những thực thể khác dựa trên 3 thực thể:

+ Products (Sản phẩm)+ Users (Người dùng)

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

+ Orders (Đơn hàng)1.1 Thực thể Product

- Thực thể product sẽ có khóa chính là ProductID và có các thuộc tính như Tên sản phẩm, giá sản phẩm, danh mục, số lượng sản phẩm,…

<b>Quan hệ của thực thể Products</b>

<b>- Mỗi sản phẩm có nhiều đánh giá (reviews) của người dùng. - Mỗi sản phẩm được phụ trách bới một phịng ban(department).- Mỗi sản phẩm có nhiểu mã giảm giá(discount).</b>

<small>z</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Thực thể Reviews</b>

- Mỗi đánh giá sẽ có khóa chính là ReviewID, có Rating và chi tiết đánh giá của người dùng(CustomerReview).

<b>Thực thể Department </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

- Mỗi phòng ban đều có tên và contact .

<b>Thực thể Discount</b>

<small>z</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>- Mỗi mã giảm giá có DiscountID là khóa chính, có thuộc tính </b>

DiscountPrecent và Expiredate. Ngồi ra cịn có thuộc tính liên kết Requirement.

<b>1.2 Users</b>

<b>- Thực thể users có khóa chính là UserID và có các thuộc tính cơ bản như </b>

USER_TYPE, Password, DateCreated, Name.

<b>Quan hệ của thực thể Products</b>

<b>- Mỗi người dùng có nhiều địa chỉ(adress) .</b>

<b>- Mỗi người dùng được đều thuộc nhóm người mua(buyers) hoặc </b>

<b>- Mỗi người mua(buyers) có một membership.</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>- Mỗi loại người dùng đều phải cung cấp thông tin cơ bản.Thực thể Membership</b>

<b>- Mỗi người dùng có một Membership riêng.</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>- Mỗi đơn hàng có nhiều phương thức thanh toán(Payment).</b>

<b>- Với phương thức thanh toán bằng thẻ, hệ thống sẽ lưu lại thông tin vào </b>

bảng .payment_creditcard.

<b>- Mỗi đơn hàng có chứa nhiều sản phẩm(Products).</b>

<small>z</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Thực thể shippers</b>

<b>- Mỗi shipper sẽ có một ShipperID, tên liên hệ(ContactName), số điện </b>

thoại(Phone) và trạng thái giao hàng(Status).

<b>Thực thể Payment và payment_creditcard</b>

<b>- Mỗi đơn hàng có khi thanh tốn sẽ có mã thanh tốn(PaymentID), </b>

phương thức thanh toán(Payment), số tiền(InvoiceAmount) và ngày thanh toán(PaymentDate).

<b>- Với phương thức thanh tốn bằng creditcard, thơng tin thẻ sẽ được lưu </b>

<i><b>2.Chuẩn hóa dữ liệu</b></i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b><small>-</small></b> Trong quá trình xây dựng cơ sở dữ liệu, bọn em đã chuẩn hóa dữ liệu lên mức 3NF để giảm thiểu dư thừa dữ liệu và loại bỏ bất thường khi cập nhập cơ sở dữ liệu

<b>2.1 Chuẩn hóa 2NF</b>

- Dưới đây là một ví dụ cơ sử dữ liệu của bọn em trước và sau khi chuẩn hóa

+ Trước khi chuẩn hóa:

+ Sau khi chuẩn hóa: Sinh ra bảng trung gian là orders_has_product và có thuộc tính trung gian là Quantity

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

+ Sau khi chuẩn hóa: Sinh ra bảng Shipper, đưa các thuộc tính phụ thuộc vào ShipperID vào bảng Shipper

<b>III. Truy vấn dữ liệu<small>3.1. Các câu lệnh truy vấn</small></b>

<small>3.1.1. Tại sao phải sử dụng truy vấn dữ liệu?</small>

Ta có thể dùng cơng cụ truy vấn(Query) để đặt những câu hỏi liên quan đến những dữ liệu chứa trong các bảng của cơ sở dữ liệu mà ta đang sử dụng. Từ những câu hỏi mà chúng ta đặt ra, với cách thiết kế một truy vấn, chúng ta có thể rút những thơng tin cần thiết.

<small>3.1.2. Lợi ích của truy vấn</small>

<small>• Chọn ra những mẫu tin thoả mãn những điều kiện mà chúng ta quy định.</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>• Lựa chọn những vùng dữ liệu cần thiết trong một hay nhiều bảng ra trên cùng một bảngtruy vấn.</small>

<small>• Trong bảng truy vấn chúng ta cũng có thể xếp thứ tự các mẫu tin theo một thứ tự nào đó.• Trong bảng truy vấn chúng ta có thể tạo vùng bảng tính. Trên vùng tính tốn chúng ta cóthể chứa những kết quả được thực hiện từ những phép toán trên các dữ liệu.</small>

<small>• Sử dụng truy vấn làm nguồn dữ liệu cho biểu mẫu (Form), báo cáo (Report) hoặc một truyvấn khác.</small>

<small>3.1.3. Truy vấn dữ liệu bằng ngôn ngữ SQL</small>

<small>Thực hiện 10 câu truy vấn với mức độ truy vấn từ đơn giản đến phức tạp.</small>

<small>Câu 1.</small> <i><b><small>Viết truy vấn tìm ra số lượng bán ra của sản phẩm, phân loại theo danh mục sản phẩm </small></b></i>

<i><b><small>Câu 2. Tìm ra top 10 thành phố có số lượng người mua nhiều nhất.</small></b></i>

<small>z</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i><b><small>Câu 3 Đưa ra tên phẩm có giá bán > 50 và tổng số lượng của những đơn hàng > 5.</small></b></i>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i><b><small>Câu 4 Tổng doanh thu của từng loại sản phẩm bán được( yêu cầu doanh thu > 4502100)</small></b></i>

<i><b><small>Câu 5: Đưa ra thông tin những đơn hàng được đặt trong ngày khai trương.</small></b></i>

<i><b><small>Câu 6: Tìm ra tên phịng ban ứng với sản phẩm có độ đánh giá lớn hơn 3</small></b></i>

<small>z</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>2. Sử dụng mệnh đề Join từ bảng to sang bảng bé</small>

<small>3. Tránh sử dụng mệnh đề “Subqueries” trong mệnh đề WHERE</small>

<small>4. Một số cách khác</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>3.3 Ứng dụng vào Phân tích dữ liệu </b>

<small>Từ dữ liệu đã có trong các bảng của mơ hình E-commerce , chúng em đã hình thành nên 2 bài tốn phân tích dữ liệu.</small>

<b><small>Bài tốn 1 : Vẽ biểu đồ thể hiện số lượng mua các nhóm hàng ở các quý trong từng năm, </small></b>

<small>Nhận xét: Ở biểu đồ này, ta có thể thấy rõ số lượng bán hàng của từng nhóm sản phầm theo từng năm. Ta có thể xác định đâu là sản phẩm chủ lực cũng như sản phẩm bán kém hiệu quả.</small>

<b><small>Bài toán 2 : Vẽ biểu đồ thể hiện lợi nhuận của từng sản phầm và phân loại chúng theo vùng </small></b>

<small>z</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>Nhận xét : Dựa vào biểu đồ , ta có thể dễ dàng nhận ra sản phầm nào thuộc vùng nào có lợi nhuận âm hay lợi nhuận dương. Từ đó, ta sẽ có những chiến lược kinh doanh cụ thể với từng loại sản phầm đó.</small>

<b><small>Bài tốn 3 : Vẽ biểu đồ đưa ra doanh số của từng thành phố và sắp xếp theo chúng theo thứ tự</small></b>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Có tổng cộng 22 Procedure ( Insert, Update, Delete) cho các bảng:

4.1.1 Procedure Insert

Hàm thủ tục Insert của bảng Department

<small>z</small>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>4.1.2 Procedure Update</b>

<small>z</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>4.1.3 Procedure Delete </b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>4.2Thực hiện Giao dịch ( Transition)</b>

<small>4.2.1 Transaction là gì ?</small>

<small>Có thể hiểu Transaction là một tiến trình xử lý có xác định điểm đầu và điểm cuối, được chia nhỏ thành các operation (phép thực thi) , tiến trình được thực thi một cách tuần tự và độc lập các operation đó theo nguyên tắc hoặc tất cả đều thành công hoặc một operation thất bại thì tồn bộ tiến trình thất bại. Nếu việc thực thi một operation nào đó bị fail đồng nghĩa với việc dữ liệu phải rollback về trạng thái ban đầu.</small>

<small>4.2.2 Sử dụng Transition</small>

<small>Bài tốn : Khách hàng có mã ZZ5968 đặt mua 10 quả dâu và 10 quả cam </small>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>4.2.3 Bài toán phân khúc khách hàng SFM</small>

<i><b><small>Lý thuyết </small></b></i>

<small>Trong việc quản lý cơ sở dữ liệu về thương mại điện tử, phân khúc thị trường là quá trình phân chia một thị trường tiêu dùng thành các nhóm nhỏ người tiêu dùng (được gọi là phânkhúc) dựa trên một số loại đặc điểm chung.</small>

<small>RFM ( Recency , Frequency, Monetary)z</small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<small>Phân tích RFM dùng để xác định các nhóm khách hàng dựa vào 3 yếu tố Recency, Frequency và Monetary :</small>

<small> + Recency (R): Khách hàng nào mua hàng gần đây? Lần mua hàng gần đây nhất là khi nào ( cách đây bao nhiêu ngày )</small>

<small> + Frequency ( F) : Khách hàng nào mua hàng thường xuyên ? Tần suất mua hàng của khách hàng</small>

<small> + Monetary Value( M) : Khách hàng nào có tiềm năng mua hàng lớn ?</small>

<small>Về lý thuyết , mỗi yếu được xếp loại theo 4 cập độ ( quartile ) thường được gán trị từ 1 đến 4 ( 1 là tốt nhất ). Một khách hàng có RFM = 111 có nghĩa là ( mua hàng gần đây, thường xuyên mua hàng cũng như tổng tiền mua hàng lớn ) . </small>

<small>=>> Dựa vào 3 biến R, F, M ta có thể chia 64 nhóm khách hàng khác nhau</small>

<i><b><small>Quy trình triển khai RFM bằng SQL</small></b></i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<small>B5: Kết quả phân loại phân khúc khách hàng</small>

<b>V. KẾT LUẬN </b>

Qua quá trình học tập học phần Cơ sở dữ liệu nhóm chúng em đã có thể vận dũng được những kiến thức đã học để có thể hồn thành bài tập lớn này.

<i><b>Những điều làm được:</b></i>

• Hiểu rõ cách vận hành của mơ hình E-commerce

• Thực hiện các thao tác cơ bản trên hệ quản trị CSDL MySQL, thiết kế, chuẩn hóa CSDL.

• Thực hiện các câu lệnh truy vấn mang tính thực tế cao.

• Thực hiện tối ưu truy vấn dữ liệu sử dụng Index và sử dụng mệnh đề thay thế để tối ưu hơn mệnh đề cũ

• Thực hiện được bài tốn phân tích dữ liệu cơ bản

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

• Sinh tự động các stored procedure update, delete và insert cho các bảng nhằm tăng tính tái sử dụng và tiết kiệm thời gian viết tạo procedure.

• Đánh giá các lỗi có thể phát sinh trong q trình tạo stored procedure.

• Tạo các transaction áp dụng cho các nghiệp vụ thực tế.• Giải quyết được bài tốn thực tế RFM bằng SQL

– Nhóm đã được biết thêm về các ứng dụng của CSDL trong thực tế– Chúng em cũng trau dồi được từ thầy và các nhóm khác nhiều kỹ năng mới và thú vị như: sinh dữ liệu ngẫu nhiên bằng Mockaroo; viết các Procedure sinh ra câu Query tự động;sử dụng Google để tra cứu tài liệu và cách xử lý lỗi; kỹ năng trình bày slide vàthuyết trình rõ ràng, mạch lạc;...

- Nâng cao kĩ năng làm việc nhóm và thêm sự gắn bó giữa các thành viên.

<b>VI. Tài liệu tham khảo</b>

- Slide bài giảng của thầy Nguyễn Danh Tú- Trang www.mysql.tutorial.org

- Sách Nguyên lý của các hệ cơ sở dữ liệu của cô Nguyễn Kim Anh

<small>z</small>

</div>

×