1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn học phần hệ quản trị cơ sở dữ liệu Đề tài thiết kế và xây dựng cơ sở dữ liệu quản lý siêu thị trên cơ sở dữ liệu oracle

62 0 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ế Và Xây Dựng Cơ Sở Dữ Liệu Quản Lý Siêu Thị Trên Cơ Sở Dữ Liệu Oracle
Tác giả Nguyễn Thị Thanh, Ngô Hồng Ngọc, Nguyễn Thu Huyền
Người hướng dẫn ThS. Giang Thị Thu Huyền
Trường học Học viện Ngân hàng
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 62
Dung lượng 2,9 MB

Cấu trúc

  • Chương 1: Giới thiệu đề tài (10)
    • 1.1. Đặt vấn đề (10)
    • 1.2. Tính cấp thiết của bài toán (10)
    • 1.3. Phạm vi bài toán (11)
    • 1.4. Mục tiêu bài toán (11)
  • Chương 2: Thiết kế cơ sở dữ liệu (12)
    • 2.1. Mô tả nghiệp vụ (12)
      • 2.1.1. Quản lý sản phẩm (12)
      • 2.1.2. Quản lý bán hàng (12)
      • 2.1.3. Quản lý nhân viên (13)
      • 2.1.4. Thống kê và báo cáo (14)
      • 2.1.5. Quản lý quyền truy cập (14)
    • 2.2. Thiết kế mức khái niệm (15)
      • 2.2.1. Xác định các thực thể và thuộc tính (15)
      • 2.2.2. Xác định các mối quan hệ giữa các thực thể (15)
      • 2.2.3. Mô hình thực thể liên kết (ERD) (16)
    • 2.3. Thiết kế mức logic (16)
      • 2.3.1. Các quan hệ (16)
      • 2.3.2. Mô hình dữ liệu quan hệ (17)
  • Chương 3: Các yêu cầu truy vấn và nghiệp vụ chức năng (18)
    • 3.1. Tạo các bảng cần thiết (18)
    • 3.2. Chèn dữ liệu vào các bảng (22)
    • 3.3. Các yêu cầu truy xuất dữ liệu (26)
      • 3.3.1. Thao tác dữ liệu với SQL (26)
      • 3.3.2. Thao tác dữ liệu với PL/ SQL (36)
  • Chương 4: Quản trị cơ sở dữ liệu (54)
    • 4.1. Quản lý tổ chức lưu trữ (54)
    • 4.2. Quản lý người dùng (55)
      • 4.2.1. Cấp quyền admin (55)
      • 4.2.2. Phân quyền cho quản lý (55)
      • 4.2.3. Phân quyền cho nhân viên (55)
    • 4.3. Sao lưu và phục hồi dữ liệu (56)
      • 4.3.1. Đề xuất phương án (56)
      • 4.3.2. Quy trình và code (56)
  • TÀI LIỆU THAM KHẢO (59)

Nội dung

Tính cấp thiết của bài toán Trong bối cảnh các giao dịch hàng ngày đang không nhừng gia tăng về số lượng và độ phức tạp thì việc có một hệ thống cơ sở dữ liệu có khả năng xử lý dữ liệu

Giới thiệu đề tài

Đặt vấn đề

Trong bối cảnh công nghệ bùng nổ, chuyển đổi số không chỉ là xu thế mà còn là yếu tố then chốt để nâng cao hiệu suất kinh doanh và đáp ứng nhu cầu khách hàng Việc ứng dụng công nghệ vào quản lý hoạt động kinh doanh giúp doanh nghiệp tối ưu hóa quy trình, nâng cao chất lượng dịch vụ và tạo ra trải nghiệm mua sắm tích cực cho khách hàng.

Sự phát triển nhanh chóng của ngành bán lẻ, đặc biệt trong lĩnh vực siêu thị, đang tạo ra sự cạnh tranh gay gắt trên thị trường Để tồn tại và phát triển, các doanh nghiệp bán lẻ cần điều chỉnh chính sách quản trị nhằm thích ứng với biến động thị trường, trong đó việc áp dụng công nghệ vào hoạt động kinh doanh là một yếu tố quan trọng.

Các siêu thị nhỏ đang phải đối mặt với thách thức lớn từ sự cạnh tranh và nhu cầu cao của người tiêu dùng Mặc dù quy mô không lớn, nhưng các doanh nghiệp bán lẻ này cần nỗ lực duy trì và mở rộng lượng khách hàng trong thị trường biến động Việc tối ưu hóa nghiệp vụ bán lẻ, bao gồm đặt hàng, quản lý hàng tồn kho và tương tác với khách hàng, có thể được thực hiện thông qua giải pháp số hóa.

Tính cấp thiết của bài toán

Trong bối cảnh giao dịch hàng ngày ngày càng gia tăng về số lượng và độ phức tạp, việc sở hữu một hệ thống cơ sở dữ liệu có khả năng xử lý dữ liệu lớn trở nên vô cùng quan trọng.

Chuyển đổi quy trình bán hàng truyền thống sang hệ thống số giúp doanh nghiệp tiết kiệm thời gian, giảm sai sót và tối ưu hóa giao dịch Việc thu thập và phân tích dữ liệu từ giao dịch hàng hóa và hành vi mua sắm của khách hàng cung cấp thông tin chi tiết, giúp doanh nghiệp hiểu rõ hơn về thị trường và xây dựng các chiến lược kinh doanh chính xác.

Thiết kế cơ sở dữ liệu đóng vai trò quan trọng trong quy trình xây dựng hệ thống quản lý bán hàng cho siêu thị, vì nó không chỉ đảm bảo lưu trữ thông tin một cách hiệu quả mà còn hỗ trợ việc truy xuất và quản lý dữ liệu một cách linh hoạt.

Việc xác định các tổ chức và mối quan hệ giữa các thành phần trong hệ thống giúp quản lý dữ liệu hiệu quả hơn Điều này tối ưu hóa truy vấn thông tin cần thiết và đảm bảo tính nhất quán trong toàn bộ hệ thống, từ đó giảm thiểu sai sót và nhầm lẫn trong quản lý.

Nhận thức rõ tầm quan trọng của hệ thống số và cơ sở dữ liệu trong quản lý bán hàng, nhóm em đã chọn đề tài "Thiết kế và xây dựng cơ sở dữ liệu cho hệ thống bán hàng siêu thị" để nghiên cứu Mục tiêu của chúng em là phát triển một hệ thống cơ sở dữ liệu hiệu quả, hỗ trợ quá trình chuyển đổi số và mang lại lợi thế cạnh tranh cho doanh nghiệp bán lẻ trong thị trường khốc liệt hiện nay Đồng thời, việc tăng cường số lượng giao dịch và quản lý hàng loạt mặt hàng ngày càng phức tạp cũng là một yếu tố quan trọng trong nghiên cứu này.

Oracle làm nền tảng cơ sở dữ liệu đáp ứng khả năng xử lý dữ liệu lớn với hiệu suất vượt trội (Oracle, 2022).

Phạm vi bài toán

Nhóm nghiên cứu đã thực hiện đề tài "Thiết kế cơ sở dữ liệu cho hệ thống bán hàng siêu thị", tập trung vào việc phát triển giải pháp cơ sở dữ liệu phù hợp cho các siêu thị, đặc biệt là các doanh nghiệp bán lẻ nhỏ.

Trong dự án này, chúng tôi sẽ chú trọng đến những khía cạnh cơ bản nhưng vô cùng quan trọng, bao gồm quản lý nhân viên, quản lý sản phẩm và quản lý hóa đơn.

Mục tiêu bài toán

Mục tiêu của dự án là phát triển một hệ thống cơ sở dữ liệu hiệu quả, linh hoạt và dễ mở rộng nhằm hỗ trợ các siêu thị nhỏ trong việc quản lý thông tin sản phẩm và giao dịch Hệ thống này dự kiến sẽ nâng cao hiệu suất kinh doanh, giảm chi phí và tăng cường khả năng cạnh tranh cho các doanh nghiệp bán lẻ nhỏ.

Dự án tập trung vào việc nghiên cứu và triển khai các giải pháp cơ sở dữ liệu hiện đại, đặc biệt là ứng dụng Oracle, nhằm đảm bảo khả năng xử lý dữ liệu lớn và đạt được hiệu suất vượt trội.

Thiết kế cơ sở dữ liệu

Mô tả nghiệp vụ

Quản lý sản phẩm là quá trình điều hành các hoạt động liên quan đến sản phẩm trong doanh nghiệp, bao gồm thu thập, lưu trữ, cập nhật và theo dõi thông tin sản phẩm từ khi nhập kho cho đến khi bán ra hoặc sử dụng.

Quản lý sản phẩm là quá trình duy trì thông tin chính xác và hiệu quả về sản phẩm, đồng thời theo dõi và kiểm soát sản phẩm trong các giai đoạn sản xuất, vận chuyển, lưu trữ và bán hàng Mục tiêu chính của quản lý sản phẩm là nâng cao hiệu quả và hiệu suất trong các hoạt động liên quan, nhằm đáp ứng nhu cầu khách hàng và tối ưu hóa lợi nhuận cho tổ chức.

- Lưu trữ thông tin về sản phẩm bao gồm mã sản phẩm, tên, mô tả, giá, nhà cung cấp và các thuộc tính khác

- Hỗ trợ quản lý kho hàng, tồn kho và cập nhật thông tin về số lượng sản phẩm

- Xác định vị trí lưu trữ của sản phẩm trong kho và cập nhật khi có sự thay đổi

- Người dùng/nhân viên: Quản lý kho hàng, nhân viên nhập liệu, nhân viên quản lý sản phẩm

Nhân viên nhập liệu đảm nhiệm việc cung cấp thông tin sản phẩm mới và cập nhật tình trạng tồn kho Đồng thời, nhân viên quản lý sản phẩm theo dõi vị trí lưu trữ và thực hiện cập nhật khi có sự thay đổi.

Quản lý bán hàng là quá trình điều hành các hoạt động liên quan đến việc bán hàng trong tổ chức hoặc doanh nghiệp Mục tiêu chính của quản lý bán hàng là mang đến trải nghiệm mua sắm tốt cho khách hàng và đạt được doanh số bán hàng tối ưu.

Quản lý bán hàng là quá trình quan trọng bao gồm xử lý đơn đặt hàng, quản lý thanh toán, in hóa đơn và tính toán tổng số tiền Quy trình này đảm bảo rằng mọi giao dịch bán hàng diễn ra suôn sẻ và hiệu quả.

4 hiệu quả và hiệu suất, từ việc chăm sóc khách hàng, xử lý thanh toán cho đến giao hàng và hỗ trợ sau bán hàng

- Hỗ trợ quản lý quá trình bán hàng bao gồm tạo hoá đơn bán hàng, xử lý thanh toán, in hóa đơn

- Lưu trữ thông tin về hóa đơn bao gồm các mặt hàng đã mua, số lượng, giá bán, và các thông tin khác

- Tính toán tổng số tiền của hoá đơn bán hàng, bao gồm cả giá sản phẩm, thuế và chiết khấu

- Người dùng/nhân viên: Nhân viên bán hàng, quản lý bán hàng

Hệ thống cho phép tạo hóa đơn bán hàng, xác nhận và xử lý thanh toán một cách tự động Nó tính toán tổng số tiền và in hóa đơn cho khách hàng ngay lập tức Đồng thời, quản lý bán hàng có thể theo dõi hoạt động bán hàng và thống kê doanh thu hiệu quả.

Quản lý nhân viên là quá trình điều hành các hoạt động liên quan đến nhân sự trong tổ chức, nhằm tạo ra môi trường làm việc hiệu quả Mục tiêu chính là nâng cao hiệu suất làm việc của nhân viên, đồng thời đảm bảo sự phát triển cá nhân và chuyên môn cho họ.

Quản lý nhân viên là quá trình bao gồm tuyển dụng, đào tạo và phát triển nhân lực, quản lý lương bổng, đánh giá hiệu suất, theo dõi chấm công, và tạo dựng một môi trường làm việc tích cực nhằm khuyến khích sự phát triển của nhân viên.

- Lưu trữ thông tin về nhân viên bao gồm tên, địa chỉ, số điện thoại, email, vị trí công việc, mức lương và các thông tin liên quan khác

- Xác định vai trò và quyền truy cập của từng nhân viên trong hệ thống

- Người dùng/nhân viên: Quản lý nhân sự, nhân viên quản lý nhân viên

Hệ thống cho phép thêm và cập nhật thông tin nhân viên, đồng thời quản lý quyền truy cập Nhân viên quản lý có thể theo dõi hoạt động công việc, xác định lịch làm việc và quản lý các hoạt động liên quan đến nhân sự một cách hiệu quả.

2.1.4 Thống kê và báo cáo

Trong hệ thống quản lý siêu thị, thống kê và báo cáo đóng vai trò quan trọng trong việc thu thập, phân tích và biểu đồ hóa dữ liệu, nhằm cung cấp cái nhìn tổng quan về hoạt động kinh doanh Mục tiêu chính của quá trình này là cung cấp thông tin quan trọng và số liệu thống kê, hỗ trợ quyết định kinh doanh, đánh giá hiệu suất và khám phá cơ hội phát triển.

- Cung cấp chức năng thống kê và báo cáo về doanh thu, lợi nhuận, hàng tồn kho, xu hướng mua hàng và các chỉ số kinh doanh khác

- Tạo báo cáo đa dạng về hoạt động kinh doanh, tổng hợp thông tin về sản phẩm, khách hàng, nhân viên, v.v

- Định kỳ cập nhật và tự động tạo các báo cáo thông qua việc phân tích dữ liệu trong cơ sở dữ liệu

- Người dùng/nhân viên: Người quản lý siêu thị, nhân viên quản lý

Hệ thống cho phép tạo, xem và xuất báo cáo về các chỉ số kinh doanh như doanh thu, lợi nhuận, hàng tồn kho và xu hướng mua hàng Nhân viên quản lý sử dụng công cụ này để theo dõi hiệu suất kinh doanh, từ đó đưa ra quyết định chính xác nhằm tối ưu hóa hoạt động kinh doanh.

2.1.5 Quản lý quyền truy cập

Quản lý quyền truy cập là quá trình kiểm soát quyền truy cập vào thông tin và tài nguyên trong hệ thống hoặc mạng máy tính Mục tiêu chính của quản lý quyền truy cập là đảm bảo chỉ những người được ủy quyền mới có quyền truy cập và sử dụng thông tin hoặc tài nguyên cần thiết để thực hiện nhiệm vụ của họ.

- Xác định và quản lý các vai trò người dùng trong hệ thống như quản lý, nhânviên bán hàng và khách hàng

- Đặt các giới hạn quyền truy cập vào dữ liệu để đảm bảo an ninh thông tin và bảo vệ quyền riêng tư

- Theo dõi và ghi lại các hoạt động truy cập vào hệ thống để phát hiện và ngăn chặn các hành vi bất thường

- Người dùng/nhân viên: Quản lý hệ thống, người quản lý

Hoạt động này liên quan đến việc sử dụng hệ thống để xác định và cấu hình vai trò người dùng cùng quyền truy cập vào các chức năng và dữ liệu Quản lý hệ thống sẽ theo dõi và duy trì quyền truy cập của người dùng, đồng thời đảm bảo tính bảo mật cho toàn bộ hệ thống.

Thiết kế mức khái niệm

2.2.1 Xác định các thực thể và thuộc tính

- Nhân viên: Mã nhân viên, Tên nhân viên, Chức vụ, Ngày sinh, Ngày bắt đầu làm việc, Địa chỉ, Thành phố, Quốc gia, SĐT

- Nhà cung cấp: MaNCC, Tên công ty, Tên người đại diện, Chức vụ, SĐT, Địa chỉ, Thành phố, Quốc Gia

- Danh mục sản phẩm: Mã DM, Tên DM, Mô tả

- Sản phẩm: Mã SP, Tên SP, Đơn giá, SL tồn kho, SL đã bán

- Giao hàng: Mã người giao hàng, tên người giao hàng, sđt, ngày sinh

- Khách hàng: Mã KH, Tên Khách Hàng, Ngày sinh, SĐT, Địa chỉ, Thành phố, Quốc gia

Hóa đơn bao gồm các thông tin quan trọng như Mã HĐ, Ngày đặt, Ngày yêu cầu giao, Ngày giao hàng, Địa chỉ nhận, Thành phố nhận và Quốc gia nhận Ngoài ra, hóa đơn còn ghi rõ các chi tiết sản phẩm, bao gồm Mã SP, Tên sản phẩm, Đơn giá, Số lượng và mức Giảm giá nếu có.

2.2.2 Xác định các mối quan hệ giữa các thực thể

Nhân viên - - Nhân viên (n:1)

Nhân viên - - Hóa đơn (1:n)

Khách hàng - - Hóa đơn (1:n)

Người Giao Hàng - - Hóa đơn (1:n)

Nhà cung cấp - - Sản phẩm (1:n)

Danh mục - Sản phẩm (1:n)

Hóa đơn - - Sản phẩm (n:n)

2.2.3 Mô hình thực thể liên kết (ERD)

Hình 1 Mô hình thực thể liên kết

Mô hình này thể hiện các thực thể cùng với thuộc tính và mối quan hệ giữa chúng Bên cạnh các quan hệ cơ bản như Sản Phẩm thuộc Danh Mục và Nhà cung cấp cung cấp Sản phẩm, còn có những mối quan hệ quan trọng khác cần được chú ý.

- Thực thể Hóa đơn có tới 4 mối quan hệ: 1 hóa đơn bất kỳ khi được tạo lập sẽ được

bởi 1 nhân viên, 1 khách hàng, bởi 1 người giao hàng, và

từ ít nhất 1 sản phẩm cho tới rất nhiều sản phẩm

Nhân viên phải báo cáo cho một nhân viên khác, nghĩa là mỗi nhân viên sẽ được quản lý bởi một người và một nhân viên có thể quản lý nhiều nhân viên khác.

Thiết kế mức logic

- Nhân viên (Mã nhân viên, Tên nhân viên, Chức vụ, Ngày sinh, Ngày bắt đầu làm việc, Địa chỉ, Thành phố, Quốc gia, SĐT)

- Nhà cung cấp (MaNCC, Tên công ty, Tên người đại diện, Chức vụ, SĐT, Địa chỉ, Thành phố, Quốc Gia)

- Danh mục SP (Mã DM, Tên danh mục, Mô tả)

- Sản phẩm (Mã SP, Tên SP, Mã DM, Đơn giá, SL tồn kho, SL đã bán, MãNCC)

- Giao hàng (Mã người GH, tên người giao hàng, sđt, ngày sinh)

- Khách hàng (Mã KH, Tên Khách Hàng, Ngày sinh, SĐT, Địa chỉ, Thành phố, Quốc gia)

- Hóa đơn (Mã HĐ, Ngày đặt, Ngày yêu cầu giao, Ngày giao hàng, Địa chỉ nhận, Thành phố nhận, Quốc gia nhận, Mã KH, Mã NV, Mã người GH)

- Chi tiết hóa đơn (Mã HĐ, Mã SP, Đơn giá, SL, Giảm Giá)

2.3.2 Mô hình dữ liệu quan hệ

Hình 2 Mô hình dữ liệu quan hệ

Sau khi thực hiện các bước chuẩn hóa, bảng ChiTietHoaDon đã được tách ra từ bảng HoaDon, vì một hóa đơn có thể chứa nhiều sản phẩm và một sản phẩm có thể xuất hiện trong nhiều hóa đơn Để đảm bảo tính nhất quán dữ liệu giữa các bảng, các thông tin còn lại trong bảng ChiTietHoaDon như đơn giá, số lượng mua và giảm giá sẽ được xác định giá trị duy nhất dựa trên hai thuộc tính khóa chính là MaHoaDon và MaSP, được tham chiếu từ bảng HoaDon và bảng SanPham.

Các yêu cầu truy vấn và nghiệp vụ chức năng

Tạo các bảng cần thiết

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaNV Char(7) Primary key Mã nhân viên

TenNV Varchar(20) Not null Tên nhân viên

ChucVu Varchar(20) Not null Chức vụ

NgaySinh Date Not null Ngày sinh

NgayBDLV Date Not null Ngày bắt đầu làm việc

DiaChi Varchar2(30) Not null Địa chỉ

TP Varchar2(20) Not null Thành phố

QG Varchar2(20) Not null Quốc gia

SDT Varchar2(10) Not null Số điện thoại

Baocaocho Char(7) Not null Báo cáo cho (người quản lý)

Bảng 1 Nhân Viên create table NhanVien(

*Tạo bảng Nhà Cung Cấp

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaNCC Char(7) Primary key Mã nhà cung cấp

TenCongTy Varchar2(20) Not null Tên công ty

TenNguoiDaiDien Varchar2(50) Not null Tên người đại diện của công ty

ChucVu Varchar2(30) Not null Chức vụ

SoDienThoai Varchar2(10) Not null Số điện thoại

DiaChi Varchar2(30) Not null Địa chi

ThanhPho Varchar2(20) Not null Thành phố

QuocGia Varchar2(20) Not null Quốc gia

Bảng 2 Nhà Cung Cấp create table NhaCungCap(

*Tạo bảng Danh Mục Sản Phẩm

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaDM Char(7) Primary key Mã danh mục

TenDM Varchar2(20) Not null Tên danh mục

Mota Varchar2(80) Not null Mô tả

Bảng 3 Danh Mục Sản Phẩm create table DanhMucSP(

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaSP Char(7) Primary key Mã sản phẩm

TenSP Varchar2(50) Not null Tên sản phẩm

MaDM Char(7) Foreign key Mã danh mục

DonGia Number(10,0) Not null Đơn giá

SLTonKho Number(5,0) Not null Số lượng tồn kho

SLDaBan Number(5,0) Not null Số lượng đã bán

MaNCC Char(7) Foreign key Mã nhà cung cấp

Bảng 4 Sản Phẩm create table SanPham( MaSP char(7) primary key,

MaNCC char(7) Foreign key, foreign key (MaDM) references DanhMucSP, foreign key (MaNCC) references NhaCungCap);

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaNGH Char(7) Primary key Mã người giao hàng

TenNGH Varchar2(50) Not null Tên người giao hàng

SDT Varchar2(10) Not null Số điện thoại

NgaySinh date Not null Ngày sinh

Bảng 5 Giao Hàng create table GiaoHang(MaNGH char(7) primary key,

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaKH Char(7) Primary key Mã khách hàng

TenKhachHang Varchar2(50) Not null Tên khách hàng

NgaySinh Date Not null Ngày sinh

SoDienThoai Varchar2(10) Not null Số điện thoại

DiaChi Varchar2(30) Not null Địa chỉ

ThanhPho Varchar2(20) Not null Thành phố

QuocGia Varchar2(20) Not null Quốc gia

Bảng 6 Khách Hàng create table Khach_Hang( MaKH char(7) primary key,

TenKhachHang varchar2(50) Not null, NgaySinh date Not null,

SoDienThoai varchar2(10) Not null, DiaChi varchar2(30) Not null, ThanhPho varchar2(20) Not null, QuocGia varchar2(20) Not null);

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaHD Char(7) Primary key Mã hóa đơn

MaKH Char(7) Foreign key Mã khách hàng

MaNV Char(7) Foreign key Mã nhân viên

NgayDat Date Not null Ngày đặt

NgayYCGiao Date Not null Ngày yc giao

MaNGH Char(7) Foreign key Mã người giao hàng

DiaChi Varchar2(30) Not null Địa chỉ

TP Varchar2(20) Not null Thành phố

QG Varchar2(20) Not null Quốc gia

13 create table HoaDon( MaHD char(7) primary key,

MaKH char(7) foreign key, MaNV char(7) foreign key, NgayDat date not null, NgayYCGiao date not null, NgayGiao date,

MaNGH char(7) foreign key, DiaChi varchar2(30) not null,

QG varchar2(20) not null, foreign key(MaKH) references Khach_Hang, foreign key(MaNV) references NhanVien, foreign key(MaNGH) references GiaoHang);

*Tạo bảng Chi Tiết Hóa Đơn

Thuộc tính Kiểu dữ liệu Ràng buộc Giải thích

MaHD Char(7) Foreign key Mã hóa đơn

MaSP Char(7) Foreign key Mã sản phẩm

DonGia Number(10,0) Not null Đơn giá

SoLuong Number(5,0) Not null Số Lượng

GiamGia Number(5,2) Not null Giảm Giá

Bảng 8 Chi Tiết Hóa Đơn create table ChiTietHD(

GiamGia number(5,2) Not null, foreign key(MaHD) references HoaDon, foreign key(MaSP) references SanPham);

Chèn dữ liệu vào các bảng

*Chèn dữ liệu vào bảng Nhân Viên

14 insert into NhanVien values('NV001', 'Tran Thi Binh', 'Nhan vien', to_date('27/05/1990','DD/MM/YYYY'), to_date('17/05/2015','DD/MM/YYYY'), 'Ha Dong', 'Ha Noi', 'Viet Nam', '0457635894', 'NV009');

Bảng nhân viên sau khi được thêm dữ liệu gồm 9 nhân viên

*Chèn dữ liệu vào bảng Nhà Cung Cấp insert into NhaCungCap values ('NCC001', 'VinaMilk', 'Mai Kieu Lien', 'Tong Giam Doc', '0973456784', '62 Le Duan', 'Ho Chi Minh', 'Vietnam');

Bảng nhà cung cấp sau khi được thêm dữ liệu gồm 10 nhà cung cấp

*Chèn dữ liệu vào bảng Danh Mục Sản Phẩm insert into DanhMucSP values ('1', 'Hang mat', 'sua chua, vang sua, bo, pho mai, do trang mieng, xuc xich');

Bảng danh mục sản phẩm sau khi được thêm dữ liệu gồm 12 danh mục

*Chèn dữ liệu vào bảng Sản Phẩm insert into SanPham values ('SP01','sua chua', '1', 24000, 37, 66, 'NCC001');

Bảng sản phẩm sau khi được thêm dữ liệu gồm 53 sản phẩm

*Chèn dữ liệu vào bảng Giao Hàng insert into GiaoHang values ('GH001', 'Nguyen Thi A', '123456789', to_date('04/11/2002','DD/MM/YYYY'));

Bảng sản phẩm sau khi được thêm dữ liệu gồm 24 người giao hàng

*Chèn dữ liệu vào bảng Khách Hàng insert into Khach_Hang values ('KH001,'Nguyen Phu Si',to_date('09/10/1981, 'DD/MM/YYYY'),'0983145578', '18 Hang Cau', 'Ha Noi', 'Vietnam');

Bảng sản phẩm sau khi được thêm dữ liệu gồm 16 khách hàng

To insert data into the Hoa Don table, use the following SQL command: `INSERT INTO HoaDon VALUES ('HD001', 'KH001', 'NV001', TO_DATE('02/10/2021', 'DD/MM/YYYY'), TO_DATE('20/10/2021', 'DD/MM/YYYY'), TO_DATE('21/10/2021', 'DD/MM/YYYY'), 'GH001', '36 Pho Hue', 'Ha Noi', 'Vietnam');` This command adds a new invoice record, including customer and employee IDs, order and delivery dates, as well as the shipping address in Hanoi, Vietnam.

Bảng hóa đơn sau khi được thêm dữ liệu gồm 20 hóa đơn

To insert data into the "ChiTietHD" table, use the following SQL commands: `INSERT INTO ChiTietHD VALUES ('HD001', 'SP01', 24000, 5, 0.3);`, `INSERT INTO ChiTietHD VALUES ('HD001', 'SP02', 50000, 4, 0.35);`, `INSERT INTO ChiTietHD VALUES ('HD001', 'SP05', 64000, 6, 0.28);`, `INSERT INTO ChiTietHD VALUES ('HD001', 'SP08', 230000, 1, 0);`, and `INSERT INTO ChiTietHD VALUES ('HD002', 'SP09', 240000, 2, 0.3);`.

Bảng chi tiết hóa đơn sau khi được thêm dữ liệu gồm 85 bản ghi

Các yêu cầu truy xuất dữ liệu

3.3.1 Thao tác dữ liệu với SQL

3.3.1.1 Hiển thị 10 sản phẩm bán chạy nhất

SELECT SanPham.MaSP, SanPham.TenSP, SUM(ChiTietHD.SoLuong) FROM SanPham JOIN ChiTietHD ON SanPham.MaSP = ChiTietHD.MaSP GROUP BY SanPham.MaSP, SanPham.TenSP

ORDER BY SUM(ChiTietHD.SoLuong) DESC

Hình 3 Hiển thị 10 sản phẩm bán chạy nhất

Truy vấn cung cấp thông tin chi tiết về các sản phẩm bán chạy nhất, giúp bộ phận quản lý và kinh doanh nắm bắt được sự phổ biến của từng sản phẩm Từ đó, họ có thể xây dựng các chiến lược kinh doanh hiệu quả và phù hợp với thị trường.

3.3.1.2 Hiển thị tổng số lượng tồn kho của mỗi danh mục sản phẩm

SELECT DanhMucSP.MaDM, DanhMucSP.TenDM, COALESCE (SUM (SanPham.SLTonKho),0)

FROM DanhMucSP JOIN SanPham ON DanhMucSP.MaDM = SanPham.MaDM

GROUP BY DanhMucSP.MaDM, DanhMucSP.TenDM;

Hình 4 Hiển thị tổng số lượng tồn kho của mỗi danh mục sản phẩm

Truy vấn thông tin về số lượng tồn kho của từng danh mục sản phẩm giúp đánh giá mức tồn kho hiện tại, từ đó đưa ra quyết định hợp lý về việc nhập thêm hàng khi số lượng sản phẩm quá ít hoặc giảm giá để kích thích tiêu thụ hàng tồn kho lớn.

3.3.1.3 Hiển thị tổng số lượng đơn hàng của mỗi khách hàng

SELECT Khach_Hang.MaKH, Khach_Hang.TenKhachHang,COUNT(MaHD)

FROM Khach_Hang JOIN HoaDon ON Khach_Hang.MaKH = HoaDon.MaKH

GROUP BY Khach_Hang.MaKH, Khach_Hang.TenKhachHang;

Hình 5 Hiển thị tổng số lượng đơn hàng của mỗi khách hàng

Truy vấn cung cấp thông tin chi tiết về số lượng hóa đơn của từng khách hàng, giúp theo dõi hoạt động mua bán và đánh giá mức độ tương tác Thông tin này hỗ trợ quản lý trong việc đưa ra quyết định chiến lược về tiếp thị, chăm sóc khách hàng và kế hoạch kinh doanh tổng thể.

3.3.1.4 Hiển thị giá trị trung bình các đơn hàng của mỗi khách hàng

SELECT KhachHang.MaKH,KhachHang.TenKhachHang, ROUND(avg((1-ChiTietHD.GiamGia)

* chitiethd.soluong * chitiethd.dongia),2) AS TrungBinh

FROM Khach_Hang JOIN HoaDon ON Khach_Hang.MaKH = HoaDon.MaKH

JOIN ChiTietHD ON HoaDon.MaHD = ChiTietHD.MaHD GROUP BY Khach_Hang.MaKH, Khach_Hang.TenKhachHang;

Hình 6 Hiển thị giá trị trung bình các đơn hàng của mỗi khách

Truy vấn cho phép xác định giá trị trung bình của mỗi hóa đơn mà khách hàng đã chi tiêu, từ đó giúp quản lý nắm bắt rõ hơn về thói quen chi tiêu của từng khách hàng.

Câu lệnh sử dụng hàm AVG để tính giá trị trung bình, hàm ROUND để làm tròn giá trị trung bình đến 2 chữ số sau dấu thập phân

3.3.1.5 Hiển thị tổng doanh thu của từng sản phẩm

SELECT SanPham.MaSP, SanPham.TenSP, COALESCE(SUM((1-

ChiTietHD.GiamGia)*chitiethd.soluong*chitiethd.dongia),0) AS DoanhThu

FROM SanPham JOIN ChiTietHD ON SanPham.MaSP = ChiTietHD.MaSP

GROUP BY SanPham.MaSP, SanPham.TenSP

Hình 7 Hiển thị tổng doanh thu của từng sản phẩm

Truy vấn thông tin doanh thu từ bán hàng của từng sản phẩm giúp quản lý đánh giá hiệu suất kinh doanh và mức độ ưa chuộng của sản phẩm trên thị trường, từ đó đưa ra chiến lược phù hợp cho từng mặt hàng cụ thể.

Câu lệnh sử dụng hàm SUM để tính tổng doanh thu, kết hợp hàm COALESCE để xử lý trường hợp tổng doanh thu là NULL với giá trị mặc định là 0, và sử dụng GROUP BY để nhóm kết quả theo MaSP và TenSP.

3.3.1.6 Hiển thị doanh số bán hàng của từng nhân viên trong tháng hiện tại

SELECT NhanVien.TenNV,SUM(SanPham.dongia*ChiTietHD.soluong-ChiTietHD.Giamgia) FROM NhanVien

JOIN Hoadon ON NhanVien.MaNV = HoaDon.MaNV

JOIN ChitietHD ON HoaDon.MaHD = ChiTietHD.MaHD

JOIN SanPham ON ChiTietHD.MaSP = SanPham.MaSP

WHERE TO_CHAR(HoaDon.NgayGiao, 'MM/YYYY') = TO_CHAR(SYSDATE, 'MM/YYYY')

Hình 8 Kết quả doanh số bán hàng của từng nhân viên trong tháng này

3.3.1.7 Hiển thị doanh thu từng ngày trong tuần

SELECT TO_CHAR(HoaDon.Ngaygiao, 'D') AS NgayTrongTuan,

SUM(SanPham.Dongia*ChiTietHD.SoLuong-ChiTietHD.giamgia) AS DThu

FROM hoadon JOIN chitiethd ON HoaDon.MaHD = ChiTietHD.MaHD

JOIN sanpham ON ChiTietHD.MaSp = SanPham.MaSP WHERE HoaDon.NgayGiao IS NOT NULL

GROUP BY TO_CHAR(HoaDon.NgayGiao, 'D')

Hình 9 Hiển thị doanh thu từng ngày trong tuần

Truy vấn cung cấp thông tin tổng doanh thu bán hàng của từng nhân viên trong tháng hiện tại, giúp quản lý đánh giá hiệu suất bán hàng và sử dụng dữ liệu này để thưởng hoặc đề xuất biện pháp cải thiện hiệu suất.

Câu lệnh TO_CHAR được sử dụng để định dạng ngày tháng và so sánh với tháng hiện tại Ngoài ra, hàm SUM được áp dụng để tính tổng doanh thu, trong khi GROUP BY giúp nhóm kết quả theo tên nhân viên (TenNV).

3.3.1.8 Hiển thị tổng doanh thu của mỗi danh mục sản phẩm

Sau khi kết nối các bảng Sản Phẩm, Danh Mục, Hóa Đơn và Chi Tiết HĐ, ta sử dụng hàm SUM để tính tổng doanh thu cho từng danh mục dựa trên giá sản phẩm, số lượng và mức giảm giá Kết quả được sắp xếp theo thứ tự giảm dần, giúp hiển thị danh mục sản phẩm có doanh thu cao nhất ở vị trí đầu tiên.

SELECT danhmucsp.tenDM, SUM(SanPham.Dongia * ChiTietHD.Soluong -

FROM danhmucsp JOIN Sanpham ON DanhMucsp.maDM = Sanpham.maDM

JOIN ChitietHD ON Sanpham.masp = chitietHD.Masp

JOIN HoaDon ON ChiTietHD.MaHD = HoaDon.maHD GROUP BY danhmucsp.tenDM

ORDER BY SUM(SanPham.dongia * ChiTietHD.soluong - ChiTietHD.Giamgia) DESC;

Hình 10 Hiển thị tổng doanh thu của mỗi danh mục sản phẩm

3.3.1.9 Hiển thị top 5 sản phẩm bán chạy nhất trong tháng hiện tại

SELECT SanPham.MaSP, SanPham.tenSP, SUM(ChiTietHD.soluong) AS SoluongBan FROM sanpham JOIN chitietHD ON SanPham.MaSP = ChiTietHD.MaSP

JOIN Hoadon ON ChiTietHD.maHD = HoaDon.MaHD WHERE TO_CHAR(HoaDon.Ngaygiao, 'MM/YYYY') = TO_CHAR(SYSDATE, 'MM/YYYY') GROUP BY Sanpham.maSP, Sanpham.tenSP

ORDER BY SUM(ChitietHD.Soluong) DESC

Hình 11 Hiển thị top 5 sản phẩm bán chạy nhất trong tháng hiện tại

Truy vấn cung cấp dữ liệu về tổng doanh thu từ việc bán hàng của từng sản phẩm, cho phép quản lý đánh giá mức độ ưa chuộng của các mặt hàng Thông qua đó, doanh nghiệp có thể xây dựng chiến lược thúc đẩy doanh số hiệu quả.

3.3.1.10 In ra danh sách số lượng đơn hàng của từng khách hàng xếp từ trên xuống

SELECT Khach_Hang.MaKH, Khach_Hang.tenKhachHang, COUNT(HoaDon.MaHD) AS

FROM khach_hang LEFT JOIN Hoadon ON Khach_Hang.MaKH = HoaDon.MaKH

GROUP BY Khach_Hang.maKH, Khach_Hang.tenKhachHang

ORDER BY COUNT(HoaDon.MaHD) DESC;

Hình 12 Danh sách số lượng đơn hàng của từng khách xếp từ trên xuống

3.3.1.11 Hiển thị tổng số lượng sản phẩm thuộc danh mục 8 và đã bán

SELECT SUM(ChiTietHD.SoLuong) AS TongSp8daBan

JOIN SanPham ON ChiTietHD.MaSP = SanPham.MaSP

Hình 13 Tổng số lượng sản phẩm thuộc danh mục 8 và đã bán

Sử dụng truy vấn COUNT để đếm số lượng đơn hàng (MaHD) cho từng khách hàng, kết hợp với LEFT JOIN nhằm lấy tất cả khách hàng, bao gồm cả những người không có đơn hàng Kết quả được nhóm theo MaKH và TenKhachHang, và sắp xếp theo số lượng đơn hàng giảm dần.

3.3.1.12 Các sản phẩm thuộc danh mục 1 được giảm giá hơn 20%, xếp giảm dần

Câu truy vấn lấy thông tin sản phẩm bao gồm mã sản phẩm, tên sản phẩm và mức giảm giá từ bảng SanPham và ChiTietHD Các điều kiện để lựa chọn sản phẩm được xác định rõ ràng.

- Sản phẩm thuộc danh mục có mã là '1' (SanPham.MaDM = '1')

- Mức giảm giá của sản phẩm lớn hơn 0.2 (ChiTietHD.GiamGia > 0.2)

SELECT SanPham.MaSP, SanPham.TenSP, ChiTietHD.GiamGia

FROM SanPham JOIN ChiTietHD ON SanPham.MaSP = ChiTietHD.MaSP

WHERE SanPham.MaDM = '1' AND ChiTietHD.GiamGia > 0.2

ORDER BY ChiTietHD.GiamGia DESC;

Hình 14 Sản phẩm thuộc danh mục 1 được giảm giá hơn 20% giảm dần

Kết quả sẽ được sắp xếp theo thứ tự giảm dần của mức giảm giá (ORDER BY ChiTietHD.GiamGia DESC), tức là sản phẩm có mức giảm giá cao nhất sẽ được hiển thị đầu tiên trong danh sách kết quả.

Truy vấn cho phép quản lý xác định các sản phẩm đang được giảm giá đặc biệt trong danh mục cụ thể, từ đó có thể áp dụng các chiến lược quảng cáo và khuyến mãi hiệu quả.

3.3.1.13 Hiển thị khách hàng có hóa đơn ngoài Việt Nam có tổng tiền lớn nhất

Sử dụng câu lệnh JOIN để kết hợp thông tin từ các bảng HoaDon, GiaoHang, Khach_Hang và ChiTietHD, nhằm lọc ra những khách hàng không đến từ Việt Nam và chỉ hiển thị thông tin cần thiết.

Quản trị cơ sở dữ liệu

Quản lý tổ chức lưu trữ

Việc tạo tablespace là một phần quan trọng trong quản lý dữ liệu, giúp phân loại dữ liệu theo tính chất của chúng Dữ liệu không thay đổi thường xuyên, như thông tin về nhân viên và người giao hàng, sẽ được lưu trữ trong một tablespace riêng biệt Ngược lại, các bảng liên quan đến danh mục sản phẩm, nhà cung cấp, khách hàng và hóa đơn sẽ được phân vào một tablespace khác để tối ưu hóa hiệu suất và quản lý.

Ta sẽ tạo 2 tablespace: tablespace_storage có ít sự thay đổi vì vậy dung lượng sẽ ít hơn so với tablespace_change

To create tablespaces in Oracle, use the following commands: for the tablespace named "space_storage," execute `CREATE TABLESPACE space_storage DATAFILE 'C:\app\oracle\oradata\ORCL\tablespace\tablespace_storage.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;` For the "space_change" tablespace, run `CREATE TABLESPACE space_change DATAFILE 'C:\app\oracle\oradata\ORCL\tablespace\tablespace_change.dbf' SIZE 500M AUTOEXTEND ON NEXT 500M MAXSIZE 4096M EXTENT MANAGEMENT LOCAL;`.

Để tối ưu hóa cơ sở dữ liệu, bạn cần di chuyển các bảng vào các tablespace phù hợp Cụ thể, sử dụng câu lệnh SQL như sau: `alter table NhanVien move tablespace space_storage;`, `alter table DanhMucSP move tablespace space_change;`, `alter table NhaCungCap move tablespace space_change;`, `alter table SanPham move tablespace space_change;`, `alter table GiaoHang move tablespace space_storage;`, `alter table Khach_Hang move tablespace space_change;`, `alter table HoaDon move tablespace space_change;`, và `alter table ChiTietHD move tablespace space_change;` Việc này giúp cải thiện hiệu suất truy xuất dữ liệu và quản lý không gian lưu trữ hiệu quả hơn.

Quản lý người dùng

Truy cập vào cơ sở dữ liệu của siêu thị phụ thuộc vào từng nhiệm vụ cụ thể; vì vậy, người quản trị cơ sở dữ liệu cần tạo một tài khoản người dùng với quyền truy cập toàn diện (Truong, 2023).

*Tạo User Admin có toàn quyền với cơ sở dữ liệu

CREATE USER c##admin identified BY admin_quantri;

GRANT CONNECT, dba, resource TO c##admin;

4.2.2 Phân quyền cho quản lý

Các quản lý của siêu thị được quyền gán quyền cho các nhân viên:

CREATE USER c##mgt IDENTIFIED BY mgt12345;

*Tạo Role cấp quyền cho quản lý

CREATE ROLE C##mgt_role IDENTIFIED BY mgt_role12345;

GRANT SELECT, UPDATE, INSERT ON NHANVIEN TO c##mgt_role;

GRANT SELECT, UPDATE, INSERT ON NhaCungCap TO c##mgt_role;

GRANT SELECT, UPDATE, INSERT ON DanhMucSP TO c##mgt_role;

GRANT SELECT, INSERT ON SanPham TO c##mgt_role;

GRANT SELECT, UPDATE, INSERT ON GiaoHang TO c##mgt_role;

GRANT SELECT, UPDATE, INSERT ON Khach_Hang TO c##mgt_role;

GRANT SELECT, UPDATE, INSERT ON HoaDon TO c##mgt_role;

GRANT SELECT, INSERT ON ChiTietHD TO c##mgt_role;

GRANT c##mgt_role TO c##mgt WITH ADMIN OPTION;

4.2.3 Phân quyền cho nhân viên

Các nhân viên của siêu thị sẽ được quyền tìm kiếm và cập nhật các thông tin về sản phẩm, khách hàng, hóa đơn và chi tiết hóa đơn:

CREATE USER c##NV IDENTIFIED BY nv12345;

CREATE ROLE c##NV_role IDENTIFIED BY nv_role12345;

*Cấp quyền cho nhân viên

GRANT SELECT ON SanPham TO c##NV_role;

GRANT SELECT,UPDATE, INSERT ON Khach_Hang TO c##NV_role;

GRANT SELECT, INSERT ON HoaDon TO c##NV_role;

GRANT SELECT, INSERT ON ChiTietHD TO c##NV_role;

Sao lưu và phục hồi dữ liệu

Trong trường hợp xảy ra sự cố với bộ lưu trữ hoặc bộ điều khiển đĩa, việc sử dụng bản sao lưu đã tạo ra sẽ giúp khôi phục dữ liệu vào cơ sở dữ liệu, từ đó ngăn chặn việc mất mát thông tin quan trọng.

Trong trường hợp có hàng triệu khách hàng thực hiện hàng triệu giao dịch và cơ sở dữ liệu gặp sự cố, việc yêu cầu tất cả khách hàng nhập lại dữ liệu là không khả thi Để đối phó với tình trạng mất mát dữ liệu lớn, chúng ta cần có các phương án hiệu quả nhằm đảm bảo tính vẹn toàn của dữ liệu trong cơ sở dữ liệu.

Phương án đề ra là Backup toàn bộ hệ thống vào 23h59 chủ nhật hàng tuần Cụ thể:

- Full backup vào 23h59 ngày chủ nhật hàng tuần, sẽ backup toàn bộ

- Increase backup vào 23h59 của các ngày trong tuần, chỉ backup tablespace_change là những dữ liệu thường xuyên thay đổi

- Sử dụng Command Prompt để backup

- Sử dụng Command Prompt để backup

2 Gõ lệnh sqlplus / as sysdba để kết nối với sqlplus

3 Check Database đang ở chế độ Archivelog mode hay NoArchivelog mode

Chạy từng câu lệnh sau để MOUNT với Database:

Khi sử dụng lệnh "Backup Validate Database;" trong Command Prompt, bạn có thể xác thực tất cả các tệp dữ liệu, tệp kiểm soát và tệp cấu hình tham số máy chủ nếu có Để thực hiện điều này, hãy nhập lệnh tại dấu nhắc RMAN.

Hình 29 Kết quả khi xác thực các tệp dữ liệu sao lưu

Hình 30 Kết quả kiểm tra dữ liệu sao lưu

Note: The file paths “D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\ DBF” refer to the locations of the backed-up data files, indicating the directory that contains these backup files.

Hình 31 Full backup đã kết thúc và file được lưu tại thư mục

Ngày đăng: 19/12/2024, 17:57

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

TÀI LIỆU LIÊN QUAN

w