HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ ---BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ BÁN HÀNG CHO CỬA HÀNG THÚ CƯNG Giảng viên hướng dẫn : Giang Thị Thu Huyền
GIỚI THIỆU ĐỀ TÀI
Lý do chọn đề tài
Trong bối cảnh kinh tế phát triển mạnh mẽ hiện nay, việc mua bán và trao đổi diễn ra đa dạng, trong đó mở cửa hàng là hình thức phổ biến nhất Sự yêu thích thú cưng ngày càng gia tăng, tạo ra nhu cầu lớn cho thị trường Để quản lý hiệu quả quá trình giao dịch giữa người mua, cửa hàng và nhà cung cấp, việc áp dụng các ứng dụng công nghệ thông tin là rất cần thiết, đặc biệt là hệ quản trị cơ sở dữ liệu Oracle.
Trong bài báo cáo này, nhóm chúng em đã chọn thiết kế một hệ thống bán hàng cho cửa hàng thú cưng Pet Shop Chúng em áp dụng kiến thức đã học để tối ưu hóa quy trình kinh doanh của cửa hàng Việc sử dụng hệ thống quản trị Oracle không chỉ nâng cao hiệu quả và độ chính xác trong quản lý mà còn xây dựng một cơ sở hạ tầng vững chắc, hỗ trợ sự phát triển bền vững của doanh nghiệp trong ngành thú cưng.
Mục tiêu và phạm vi
Việc áp dụng hệ quản trị Oracle trong quản lý cửa hàng thú cưng nhằm nâng cao hiệu suất và hiệu quả quản lý thông qua việc quản lý dữ liệu hiệu quả, bao gồm thông tin sản phẩm, khách hàng, nhân viên và đơn đặt hàng Điều này cho phép cửa hàng tìm kiếm, sắp xếp và truy xuất dữ liệu nhanh chóng và chính xác Hệ quản trị Oracle cũng hỗ trợ quản lý tồn kho chặt chẽ, từ theo dõi lượng tồn kho, dự báo nhu cầu đến quản lý nhập xuất hàng hóa, giúp tránh tình trạng tồn kho không cân đối, giảm rủi ro hết hạn và cung cấp thông tin chính xác về tình trạng tồn kho.
Quản lý thông tin khách hàng và chiến lược khuyến mãi là ưu tiên hàng đầu, giúp tăng cường tương tác với khách hàng, cá nhân hóa trải nghiệm mua sắm và tối đa hóa hiệu suất chiến dịch tiếp thị Đồng thời, việc tích hợp quản lý nhân sự vào hệ thống cho phép theo dõi thông tin nhân viên, lịch trực và tính lương, từ đó nâng cao hiệu quả quản lý nhân sự và giảm thiểu sai sót liên quan đến lịch làm việc và chi trả lương.
Bảo mật thông tin và tuân thủ các quy định pháp luật về bảo mật là yếu tố then chốt trong việc áp dụng hệ quản trị Oracle Điều này giúp bảo vệ dữ liệu quan trọng khỏi mất mát và truy cập trái phép, đảm bảo an toàn cho thông tin của cửa hàng.
Hệ quản trị Oracle tích hợp nhiều chức năng quan trọng như quản lý sản phẩm, nhà cung cấp, đơn đặt hàng, giao hàng, thanh toán và quản lý tài chính, đồng thời hỗ trợ tạo báo cáo và phân tích dữ liệu Việc tích hợp với các hệ thống khác như thanh toán trực tuyến, ứng dụng di động và nền tảng thương mại điện tử giúp tối ưu hóa trải nghiệm người dùng và quy trình làm việc Điều này mang lại sự linh hoạt và tính toàn diện cho hệ thống quản lý, giúp cửa hàng thú cưng hoạt động hiệu quả và đạt hiệu suất cao.
Ý nghĩa và lợi ích
Hệ thống quản lý cửa hàng thú cưng được thiết kế để tối ưu hóa và nâng cao hiệu quả trong việc điều hành các hoạt động của cửa hàng Một hệ thống quản lý hiệu quả sẽ cải thiện việc kiểm soát hàng hóa, quản lý nhân viên, bán hàng, chăm sóc khách hàng và quản lý tài chính, từ đó giúp cửa hàng hoạt động trơn tru hơn.
Hệ thống này cần một số dữ liệu chính bao gồm: danh mục sản phẩm với mã và tên danh mục, thông tin sản phẩm như mã, tên, đơn giá và đơn vị tính, khuyến mãi bao gồm mã, tên, ngày bắt đầu và ngày kết thúc, thông tin khách hàng với mã, tên, địa chỉ và số điện thoại, nhân viên với mã, tên và chức vụ, chi nhánh với mã, tên và địa chỉ, cùng với nhà cung cấp bao gồm mã và tên nhà cung cấp.
Hệ thống quản lý tổ chức siêu thị mang lại nhiều lợi ích cho những người tham gia vào hệ thống, bao gồm:
Hệ thống quản lý siêu thị hiệu quả cung cấp thông tin chính xác và liên tục, giúp tiết kiệm thời gian và công sức cho nhân viên Nhờ đó, họ có thể tập trung vào các nhiệm vụ quan trọng như lập kế hoạch chiến lược, quản lý nhân sự và nâng cao trải nghiệm khách hàng.
Quản lý hàng tồn kho hiệu quả là chìa khóa để theo dõi và kiểm soát hàng hóa một cách chính xác Hệ thống này giúp ngăn ngừa tình trạng thiếu hàng hoặc tồn kho quá mức, từ đó tối ưu hóa quy trình đặt hàng, giảm thiểu lãng phí và nâng cao khả năng cung cấp hàng hóa theo nhu cầu thị trường.
Hệ thống cung cấp dữ liệu và báo cáo kinh doanh chi tiết giúp quản lý cửa hàng thú cưng phân tích hiệu suất và xu hướng bán hàng, từ đó đưa ra quyết định thông minh và hiệu quả.
YÊU CẦU NGHIỆP VỤ CỦA HỆ THỐNG
Mô tả tổng quan về nghiệp vụ
Quản lý bán hàng tại cửa hàng thú cưng bao gồm nhiều hoạt động thiết yếu nhằm đáp ứng nhu cầu đa dạng của khách hàng và nâng cao trải nghiệm mua sắm Dưới đây là tổng quan về các nghiệp vụ quản lý bán hàng trong cửa hàng thú cưng.
Thứ nhất, Quản lý sản phẩm:
Danh mục sản phẩm: Xác định danh mục sản phẩm, bao gồm thức ăn, đồ chơi, phụ kiện và dịch vụ.
Quản lý nhà cung cấp: Thông tin về nhà cung cấp.
Sản phẩm: Thông tin về các sản phẩm của cửa hàng cung cấp.
Thứ hai, Quản lý bán hàng:
Quản lý giao dịch bán hàng trực tiếp: Ghi chép và quản lý thông tin về các giao dịch bán hàng.
Quản lý giao dịch bán hàng trực tuyến: Theo dõi đơn hàng và phản hồi của khách hàng.
Thứ ba, Quản lý chính sách giảm giá: Áp dụng và quản lý chính sách giảm giá để thúc đẩy doanh số bán hàng.
Thứ tư, Quản lý chương trình khuyến mãi: Tổ chức chương trình khuyến mãi để thu hút khách
Quản lý khách hàng là quá trình quan trọng trong việc duy trì hồ sơ khách hàng, bao gồm thông tin cá nhân, lịch sử mua sắm và các dịch vụ mà khách hàng đã trải nghiệm Việc nắm rõ những dữ liệu này giúp cải thiện chất lượng dịch vụ và tăng cường sự hài lòng của khách hàng.
Phân tích các chức năng chính của hệ thống
STT Nghiệp vụ Mô tả
Thêm, sửa, xóa sản phẩm từ danh mục sản phẩm.
Cập nhập hàng tồn của từng loại sản phẩm.
Cảnh báo khi lượng hàng tồn kho dưới mức quy định.
Sản phẩm Thêm, sửa, xóa thông tin về sản phẩm.
Cập nhập hàng tồn trong kho.
Quản lý nhà cung cấp
Thêm, sửa, xóa thông tin về nhà cung cấp.
Lịch sử giao dịch và hợp đồng với nhà cung cấp.
Bán hàng trực tiếp: Hóa đơn
Theo dõi các giao dịch thanh toán.
4 Quản lý chính sách giảm giá Thêm, sửa, xóa chính sách giảm giá. Điều kiện để áp dụng giảm giá.
5 Quản lý chương trình khuyến mãi
Thêm, sửa, xóa chương trình khuyến mãi. Điều kiện áp dụng chương trình khuyến mãi.
6 Quản lý khách hàng Thêm, sửa, xóa thông tin khách hàng.
Tích hợp lịch sử mua sắm của khách hàng.Tích hợp lịch sử sử dụng dịch vụ của cửa hàng.
Yêu cầu dữ liệu và ràng buộc
Bảng Ràng buộc thông tin Ràng buộc giá trị Ràng buộc khóa
ProductCategory Mã danh mục, Tên danh mục
Không có Khóa chính: Mã danh mục
Suppliers Mã NCC, Tên NCC,
Không có Khóa chính: Mã NCC
Products Mã Sản Phẩm, Tên
Giá không âm Khóa chính: Mã Sản
Danh Mục, Mã NCC Phẩm
Khóa ngoại: Mã Danh Mục liên kết với Mã Danh Mục trong bảng ProductCategory, Mã NCC liên kết với Mã NCC trong bảng Suppliers
Promotion Mã Sự Kiện, Tên Sự
Không có Khóa chính: Mã Sự
PromotionDetail Mã KM, Mã Sản
Phẩm, Mã Sự Kiện, Phần trăm giảm, Ngày bắt đầu, Ngày kết thúc
Ngày bắt đầu nhỏ hơn Ngày kết thúc
Khóa ngoại: Mã Sự Kiện liên kết với Mã
Sự Kiện trong bảng Promotion
Customers Mã KH, Tên KH, SĐT
KH, Địa chỉ KH, Ngày sinh KH
Ngày sinh nhỏ hơn ngày hiện tại
Department Mã Chức Vụ, Tên
Lương lớn hơn 0 Khóa chính: Mã Chức
Employee Mã NV, Tên NV, SĐT
Ngày sinh nhỏ hơn ngày hiện tại
Vụ liên kết với MãChức Vụ trong bảng
Invoice Mã HĐ, Thời gian thanh toán, Tổng tiền,
Tổng tiền không âm Khóa chính: Mã HĐ
Khóa ngoại: Mã KH liên kết với Mã KH trong bảng Customers,
Mã NV liên kết với
Mã NV trong bảng Employee
InvoiceDetail Mã HĐ, Mã SP, Số lượng, Đơn giá, Thành tiền, VAT Đơn giá, VAT, Thành tiền không âm
Khóa ngoại: Mã HĐ liên kết với Mã HĐ trong bảng Invoice,
Mã SP liên kết với MãSản Phẩm trong bảngProducts
Yêu cầu bảo mật và quản trị người dùng
2.5.1 Bảo vệ dữ liệu và quản lý quyền truy cập
Thứ nhất, Bảo vệ dữ liệu
Hệ thống lưu trữ đám mây cho phép người dùng truy cập dữ liệu mọi lúc, mọi nơi, đồng thời đảm bảo an toàn nhờ vào các công nghệ bảo mật tiên tiến.
Mã hóa dữ liệu là quá trình chuyển đổi thông tin thành định dạng không thể đọc được bằng mắt thường, nhằm bảo vệ dữ liệu khỏi các mối đe dọa từ kẻ tấn công.
Có chính sách thay đổi mật khẩu định kỳ: Mật khẩu của người dùng phải được thay đổi định kỳ, tối thiểu 6 tháng một lần.
Tạo và quản lý người dùng, nhóm quyền: Chỉ những người có quyền truy cập hợp lệ mới được phép truy cập dữ liệu của hệ thống.
Sử dụng xác thực hai yếu tố (2FA) là một cách hiệu quả để tăng cường bảo mật cho tài khoản của bạn 2FA yêu cầu người dùng nhập mã xác thực từ thiết bị di động, bên cạnh mật khẩu, tạo ra một lớp bảo mật bổ sung giúp bảo vệ thông tin cá nhân khỏi các mối đe dọa.
Sao lưu dữ liệu định kỳ: Dữ liệu của hệ thống sẽ được sao lưu định kỳ, giúp giảm thiểu rủi ro mất dữ liệu.
Thứ hai, Quản lý quyền truy cập
Quyền truy cập của người dùng được phân cấp thành các nhóm quyền, mỗi nhóm quyền có các quyền truy cập riêng biệt.
Nhóm quản trị: Nhóm này có quyền truy cập tất cả các chức năng của hệ thống.
Nhóm nhân viên bán hàng được cấp quyền truy cập vào các bảng dữ liệu quan trọng liên quan đến hoạt động bán hàng, bao gồm hóa đơn, sản phẩm, giảm giá, khuyến mãi và thông tin khách hàng.
2.5.2 Tạo và quản lý người dùng, nhóm quyền
Người dùng của hệ thống quản lý bán hàng của cửa hàng thú cưng sẽ được tạo và quản lý thông qua các bước sau:
Bước 1, Tạo người dùng: Người dùng có thể được tạo bởi quản trị viên hệ thống hoặc người dùng có quyền tạo người dùng.
CREATE USER ten_nguoi_dung IDENTIFIED BY 'mat_khau';
Với: ten_nguoi_dung: Tên của người dùng mới,
'mat_khau': Mật khẩu của người dùng
Bước 2, Xác định vai trò của người dùng: Vai trò của người dùng sẽ xác định quyền truy cập của người dùng vào dữ liệu của hệ thống.
ALTER USER ten_nguoi_dung
[PASSWORD 'mat_khau_moi' | ACCOUNT {LOCK|UNLOCK}
| DEFAULT TABLESPACE ten_kho_dl_moi
| TEMPORARY TABLESPACE ten_kho_dl_tam_thoi_moi];
Với: ACCOUNT {LOCK|UNLOCK}: Khóa hoặc mở khóa tài khoản người dùng.
DEFAULT TABLESPACE ten_kho_dl_moi: Đặt bảng không gian mặc định cho người dùng.
TEMPORARY TABLESPACE ten_kho_dl_tam_thoi_moi: Đặt bảng không gian tạm thời mặc định cho người dùng.
Bước 3, Gán quyền truy cập cho người dùng: Quyền truy cập của người dùng sẽ được gán theo vai trò của người dùng.
GRANT quyen ON doi_tuong TO ten_nguoi_dung;
Với: quyen: các quyền cụ thể như select, insert, update, delete,… doi_tuong: các bảng, view
Hệ thống quản lý bán hàng của cửa hàng thú cưng cho phép tạo và quản lý nhóm quyền thông qua các bước đơn giản Đầu tiên, nhóm quyền sẽ được tạo ra bởi quản trị viên hệ thống hoặc người dùng có quyền tạo nhóm quyền, đảm bảo tính linh hoạt và hiệu quả trong việc quản lý quyền truy cập.
Nhóm quản trị: CREATE ROLE nhom_quan_tri;
Nhóm bán hàng: CREATE ROLE nhom_ban_hang;
Thứ hai, Gán quyền truy cập cho nhóm quyền: Quyền truy cập của nhóm quyền sẽ được gán cho người dùng trong nhóm.
Nhóm quản trị: GRANT create table, create session, select, update table, delete table, insert, … TO nhom_quan_tri;
Nhóm bán hàng: GRANT select, update table, delete table, insert,… TO nhom_ban_hang; (Hiếu, 2020)
THIẾT KẾ CƠ SỞ DỮ LIỆU
Thiết kế mức khái niệm
3.1.1 Các hồ sơ liên quan tới việc xác định thông tin thực thể, mối quan hệ giữa các thực thể Biểu mẫu hóa đơn
Thông tin cửa hàng: Tên cửa hàng: Pet Shop Địa chỉ: Số 12 Chùa Bộc- Đống Đa- Hà Nội
Số điện thoại: 0987654321 Email: petshop@gmail.com
Thông tin khách hàng: Họ và tên: [Tên khách hàng] Địa chỉ: [Địa chỉ khách hàng]
Số điện thoại: [Số điện thoại khách hàng]
Thông tin sản phẩm/dịch vụ: Mã sản phẩm/dịch vụ: [Mã sản phẩm/dịch vụ]
Tên sản phẩm/dịch vụ: [Tên sản phẩm/dịchvụ]
Số lượng: [Số lượng] Đơn giá: [Đơn giá]
Tổng tiền: Tổng tiền hàng: [Tổng tiền hàng]
Ngày mua hàng: Ngày mua hàng: [Ngày mua hàng]
Thông tin cửa hàng: Thông tin cơ bản của cửa hàng, bao gồm tên cửa hàng, địa chỉ,số điện thoại và email.
Thông tin khách hàng: Thông tin cơ bản của khách hàng, bao gồm họ và tên, địa chỉ, số điện thoại và email.
Thông tin sản phẩm/dịch vụ bao gồm các chi tiết quan trọng về sản phẩm hoặc dịch vụ mà khách hàng đã mua Mỗi mục sẽ được cung cấp với mã sản phẩm/dịch vụ, tên gọi, số lượng, đơn giá và tổng thành tiền.
Tổng tiền là tổng hợp số tiền từ tất cả sản phẩm và dịch vụ mà khách hàng đã mua, trong khi ngày mua hàng ghi lại thời điểm mà khách hàng thực hiện giao dịch.
Tiêu đề: Nhập liệu đơn hàng
Các trường dữ liệu: Tên khách hàng Địa chỉ khách hàng
Số điện thoại khách hàng
Các nút lệnh: Thêm sản phẩm: Thêm một sản phẩm mới vào đơn hàng. Xóa sản phẩm: Xóa một sản phẩm khỏi đơn hàng.
Lưu đơn hàng: Lưu đơn hàng.
In đơn hàng: In đơn hàng.
Cách thức sử dụng màn hình nhập liệu:
Bước 1: Nhập thông tin của khách hàng.
Bước 2: Nhập thông tin của sản phẩm/dịch vụ.
Bước 3: Nhấn nút "Thêm sản phẩm" để thêm sản phẩm/dịch vụ vào đơn hàng.
Bước 4: Lặp lại các bước 2 và 3 cho đến khi thêm tất cả các sản phẩm/dịch vụ cần thiết.
Bước 5: Nhấn nút "Lưu đơn hàng" để lưu đơn hàng.
Bước 6: Nhấn nút "In đơn hàng" để in đơn hàng.
Tiêu đề: Quản lí nhân viên
Tìm kiếm: Họ và tên:
Danh sách nhân viên: Họ và tên: Nguyễn Văn A
Chức vụ: Nhân viên bán hàng
Ngày sinh: 1990-01-01 Địa chỉ: 123 Nguyễn Văn Cừ, Hà Nội
Họ và tên: Nguyễn Thị B
Chức vụ: Quản lí cửa hàng
Ngày sinh: 1988-02-02 Địa chỉ: 456 Lý Thường Kiệt, Hà Nội
Chức năng: Thêm nhân viên: Thêm một nhân viên mới. Sửa nhân viên: Sửa thông tin của một nhân viên.
Xóa nhân viên: Xóa một nhân viên.
Cách thức sử dụng màn hình quản lí nhân viên:
Bước 1: Sử dụng ô tìm kiếm để tìm kiếm nhân viên theo họ và tên, chức vụ, Bước 2: Chọn nhân viên cần quản lý từ danh sách nhân viên.
Bước 3: Sử dụng các chức năng để thực hiện các thao tác cần thiết.
3.1.2 Xây dựng danh mục hồ sơ dữ liệu
Tên hồ sơ Thuộc tính Từ rõ nghĩa Thực thể/ mối quan hệ
Danh sách khách mua hàng
Mã khách hàng Khách hàng
Họ tên Khách hàng Địa chỉ Khách hàng
Số điện thoại Khách hàng
Báo cáo sản phẩm trong kho
Mã sản phẩm Sản phẩm
Tên sản phẩm Sản phẩm
Số lượng Sản phẩm Đơn giá Đơn giá tại thời điểm thiết lập báo cáo
Sản phẩm danh mục sản phẩm
Ngày Ngày lập báo cáo
Danh mục sản phẩm Mã danh mục Danh mục sản phẩm
Tên danh mục Danh mục sản phẩm
Mô tả Mô tả các loại sản phẩm của cửa hàng
Mã sản phẩm Sản phẩm
Tên sản phẩm sản phẩm
Số lượng Số lượng tối thiểu Sản phẩm
Ngày Sản phẩm Đơn vị Sản phẩm danh mục sản phẩm
Số lượng Số lượng hàng tồn kho
Sản phẩm Đơn giá Sản phẩm
Thành tiền Khách hàng sản phẩm
Tổng cộng Khách hàng sản phẩm
Phiếu quản lí nhân viên
Mã nhân viên Nhân viên
Tên nhân viên Nhân viên
Số điện thoại Nhân viên Địa chỉ Nhân viên
Nhà cung cấp sản phẩm
Mã nhà cung cấp Nhà cung cấp
Tên nhà cung cấp Nhà cung cấp Địa chỉ Nhà cung cấp
Số điện thoại Nhà cung cấp
Danh sách chương trình khuyến mãi
Mã khuyến mãi Khuyến mãi
Tên khuyến mãi Khuyến mãi
Mô tả Mô tả thông tin khuyến mãi của các sản phẩm
Ngày bắt đầu Sản phẩm khuyến mãi
Ngày kết thúc Sản phẩm khuyến mãi
Tên sản phẩm Sản phẩm
Mã sản phẩm Sản phẩm
3.1.3 Thực thể và thuộc tính
Danh mục sản phẩm: Mã danh mục, Tên danh mục, Mô tả danh mục
Sản phẩm: Mã sản phẩm, Tên sản phẩm, Giá hàng, Đơn vị tính, Số lượng tối thiểu,
Nhà cung cấp: Mã nhà cung cấp, Tên nhà cung cấp, SĐT, Địa chỉ, Email
Sự kiện khuyến mãi: Mã sự kiện, Tên sự kiện,Mô tả sự kiện
Khách hàng: Mã khách hàng, Tên khách hàng, SĐT, Địa chỉ, email, Giới tính, Ngày sinh
Chức vụ: Mã chức vụ, Tên chức vụ, Lương
Nhân viên: Mã nhân viên, Tên nhân viên, Giới tính, Ngày sinh, SĐT
Danh mục sản phẩm Sản phẩm ( 1:M)
Sản phẩm Nhà cung cấp (M:1)
Sự kiện khuyến mãi Sản phẩm (M:N) (Mã khuyến mãi, Ngày bắt đầu, Ngày kết thúc, Giảm giá phần trăm)
Nhân viên Khách hàng (1: M)
Nhân viên Chức vụ (M:1)
Nhân viên Sản phẩm (1:M) (Mã hóa đơn, Số lượng, Đơn giá, Đơn vị tính, Thời gian thanh toán, Hình thức thanh toán, VAT, Tổng tiền, Thành tiền)
Thiết kế mức logic
Products (MaSanPham, TenSanPham, GiaHang, DonViTinh, SLTonKho,
Supplierss (MaNCC, TenNCC, SDT, DiaChi, Email)
PromotionDetail (MaKM, MaSanPham, GiamGiaPhanTram, NgayBD, NgayKT,
Customers (MaKH, TenKH, SDT, DiaChi, Email, GioiTinh, NgaySinh)
Employee (MaNV, TenNV, GioiTinh, NgaySinh, SDT, MaChucVu)
Invoice (MaHD, MaHH SoLuong, DonGia, DonViTinh, VAT, HinhThucTT, ThoiGianTT, TongTien, ThanhTien, MaNV, MaKH)
Ta thấy, đơn hàng chưa đạt dạng chuẩn 2, do thuộc tính không khóa ThoigianTT không phụ thuộc vào thuộc tính khóa MaHH Đưa về 3NF:
Invoice (MaHD, MaNV, MaKH, HinhthucTT, ThoigianTT, Tongtien )
InvoiceDetail (MaHD, MaHH, Soluong, Dongia,DonViTinh, VAT, ThanhTien) Các quan hệ sau khi đưa về dưới dạng 3NF:
Productss (MaSanPham, TenSanPham, GiaHang, DonViTinh, SLTonKho,
Suppliers (MaNCC, TenNCC, SDT, DiaChi, Email)
PromotionDetail (MaKM, MaSanPham, GiamGiaPhanTram,NgayBD,NgayKT,
Customers (MaKH, TenKH, SDT, DiaChi, Email, GioiTinh, NgaySinh)
Employee (MaNV, TenNV, GioiTinh, NgaySinh, SDT, MaChucVu)
Invoice (MaHD, HinhThucTT, ThoiGianTT, TongTien, MaKH, MaNV)
InvoiceDetail (MaHD, MaHH, SoLuong, DonGia, DonViTinh, VAT, ThanhTien)
3.2.2 Lược đồ quan hệ chuẩn hóa
Thiết kế mức vật lý
3.3.1 Đề xuất kiểu dữ liệu:
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
NgayKetThuc date check > ngày bắt đầu
Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc
NgaySinh date check 0 and GiaHang is not null), DonViTinh NVARCHAR2(10),
CONSTRAINT er_ck CHECK(SLTonKho > 0),
CONSTRAINT rt_fk FOREIGN KEY (MaDanhMuc) REFERENCES
CONSTRAINT yt_fk FOREIGN KEY (MaNCC) REFERENCES
CONSTRAINT y_pk PRIMARY KEY (MaSuKien),
CONSTRAINT u_pk PRIMARY KEY (MaKM, MaSanPham),
CONSTRAINT i_fk Foreign key (MaSanPham) References Products(MaSanPham), LuongGiamPhanTram int,
CONSTRAINT o_ck CHECK (LuongGiamPhanTram > 0 and
CONSTRAINT p_ch CHECK (NgayKetThuc > NgayBatDau),
CONSTRAINT a_fk FOREIGN KEY (MaSuKien) REFERENCES
CONSTRAINT s_pk PRIMARY KEY (MaKH), TenKH NVARCHAR2(50) not null,
CONSTRAINT d_ck CHECK (GioiTinhKH in (0,1)), NgaySinhKH date
CONSTRAINT h_pk PRIMARY KEY (MaChucVu), TenChucVu NVARCHAR2(50) not null,
CONSTRAINT l_pk PRIMARY KEY (MaNV), TenNV NVARCHAR2(50) not null,
CONSTRAINT z_ck Check (GioiTinhNV in (0,1)), NgaySinh date,
CONSTRAINT x_fk Foreign key (MaChucVu) REFERENCES
CONSTRAINT c_pk PRIMARY KEY (MaHD),
MaKH nvarchar2(10), constraint v_fk FOREIGN Key (MaKH) References Customers(MaKH), MaNV nvarchar2(10), constraint b_fk Foreign Key (MaNV) references Employee(MaNV) );
CONSTRAINT ne_pk PRIMARY KEY (MaHD, MaSP),
Constraint mf_fk Foreign key (MaHD) references Invoice(MaHD), SoLuong int,
CONSTRAINT mh_ck Check(SoLuong > 0),
CONSTRAINT mj_ck Check(DonGia > 0),
CONSTRAINT mk_ck CHECK(VAT>0),
CONSTRAINT md_ck CHECK(ThanhTien>0)
); alter table InvoiceDetail add constraint my_fk foreign key (MaSP) references Products(MaSanPham) b, Chèn dữ liệu
INSERT INTO ProductCategory VALUES ('dm001', 'Thức ăn cho chó', 'Danh sách thức ăn cho chó');
INSERT INTO ProductCategory VALUES ('dm002', 'Phụ kiện cho chó', 'Danh sách phụ kiện cho chó');
INSERT INTO ProductCategory VALUES ('dm003', 'Dụng cụ vệ sinh cho chó', 'Danh sách dụng cụ vệ sinh cho chó');
INSERT INTO ProductCategory VALUES ('dm004', 'Thức ăn cho mèo', 'Danh sách thức ăn cho mèo');
INSERT INTO ProductCategory VALUES ('dm005', 'Phụ kiện cho mèo', 'Danh sách phụ kiện cho mèo');
INSERT INTO ProductCategory VALUES ('dm006', 'Dụng cụ vệ sinh cho mèo', 'Danh sách dụng cụ vệ sinh cho mèo');
INSERT INTO Suppliers VALUES ('ncc01', N'Công ty TNHH Pet Mart', '0987654321', N'123 Đường ABC, Quận 1, TP.HCM', 'petmart@company.com');
INSERT INTO Suppliers VALUES ('ncc02', N'Happy Paws Pet Shop', '0123456789', N'456 Đường XYZ, Quận 2, TP.HCM', 'pawspet@gmail.com');
INSERT INTO Suppliers VALUES ('ncc03', N'Công ty TNHH NobiPet', '0369876543', N'789 Đường MNP, Quận 3, TP.HCM', 'nobipet@yahoo.com');
INSERT INTO Suppliers VALUES ('ncc04', 'Shop Pets Heaven', '0932108765', N'456 Đường ABC, Quận Ba Đình, Hà Nội', 'petsheaven@gmail.com');
INSERT INTO Suppliers VALUES ('ncc05', N'Cửa hàng Thú Cưng Happy','0765432109', N'354/159 Đường Trường Chinh, Quận Đống Đa, Hà Nội','happypets@company.com');
INSERT INTO Products VALUES ('sp001', N'Hạt cho mèo Whiskas', 150000, N'Gói',
INSERT INTO Products VALUES ('sp002', N'Dụng cụ chải lông cho chó', 30000, N'Cây', 50, 'dm003', 'ncc02');
INSERT INTO Products VALUES ('sp003', N'Bát ăn cho chó', 25000, N'Cái', 80, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp004', N'Pate cho mèo Me-O', 45000, N'Gói', 120, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp005', N'Đồ chơi cho mèo', 45000, N'Cây', 30, 'dm005', 'ncc02');
INSERT INTO Products VALUES ('sp006', N'Vòi sen vệ sinh cho mèo', 35000, N'Cái',
INSERT INTO Products VALUES ('sp007', N'Que chơi với chó', 20000, N'Cây', 60, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp008', N'Bàn chải lông cho mèo', 28000, N'Cái',
INSERT INTO Products VALUES ('sp009', N'Kính mắt cho mèo', 38000, N'Cái', 25, 'dm005', 'ncc01');
INSERT INTO Products VALUES ('sp010', N'Găng tay vệ sinh cho chó', 15000, N'Cặp',
INSERT INTO Products VALUES ('sp011', N'Đồ chơi nhựa cho chó', 25000, N'Cái', 70, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp012', N'Vòng cổ phản quang cho chó', 18000, N'Cái', 110, 'dm002', 'ncc03');
INSERT INTO Products VALUES ('sp013', N'Hạt cho mèo Me-O Gold', 195000, N'Gói', 80, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp014', N'Túi xách vận chuyển mèo', 150000, N'Cái', 30, 'dm005', 'ncc02');
INSERT INTO Products VALUES ('sp015', N'Lược chải lông cho chó', 32000, N'Cái',
INSERT INTO Products VALUES ('sp016', N'Đèn sưởi cho chó mùa đông', 300000, N'Cái', 20, 'dm002', 'ncc01');
INSERT INTO Products VALUES ('sp017', N'Xô vệ sinh cho mèo', 55000, N'Cái', 95, 'dm006', 'ncc02');
INSERT INTO Products VALUES ('sp018', N'Găng tay làm sạch cho mèo', 18000, N'Cặp', 50, 'dm006', 'ncc03');
INSERT INTO Products VALUES ('sp019', N'Bình nước tự động cho chó', 135000, N'Cái', 40, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp020', N'Thảm vệ sinh cho mèo', 28000, N'Cái', 65, 'dm006', 'ncc03');
INSERT INTO Products VALUES ('sp021', N'Dầu gội dành cho chó', 25000, N'Chai',
INSERT INTO Products VALUES ('sp022', N'Bánh thưởng cho mèo con', 12000, N'Gói', 100, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp023', N'Chậu vệ sinh cho mèo', 50000, N'Chậu',
INSERT INTO Products VALUES ('sp024', N'Gối êm cho chó', 45000, N'Cái', 30, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp025', N'Quần áo dành cho chó', 30000, N'Cái', 45, 'dm002', 'ncc03');
INSERT INTO Products VALUES ('sp026', N'Đồ chơi đèn cho mèo', 42000, N'Cái', 25, 'dm005', 'ncc01');
INSERT INTO Products VALUES ('sp027', N'Bình nước mèo tự động', 128000, N'Cái',
INSERT INTO Products VALUES ('sp028', N'Túi xách vận chuyển chó', 155000, N'Cái', 40, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp029', N'Thức ăn cho chó Royal Canin', 200000, N'Gói', 70, 'dm001', 'ncc03');
INSERT INTO Products VALUES ('sp030', N'Hạt mèo NeKo', 180000, N'Túi', 55,'dm004', 'ncc03');
INSERT INTO Products VALUES ('sp031', 'NXương Canxi cho chó VEGEBRAND ',
INSERT INTO Products VALUES ('sp032', N'Pate cho chó Iris Ohyama', 45000, 'Lon',
INSERT INTO Products VALUES ('sp033', N'Thức ăn hạt cho mèo Royal Canin',
INSERT INTO Products VALUES ('sp034', N'Pate cho mèo Cat Sea Fish', 45000, 'Lon',
INSERT INTO Products VALUES ('sp035', N'Bóng nhựa cho chó', 12000, N'Cái', 85, 'dm002', 'ncc02');
INSERT INTO Products VALUES ('sp036', N'Sữa bột cho chó BNN Goat’s Milk',
INSERT INTO Products VALUES ('sp037', N'Pate Pedigree vị thịt bò cho chó', 55000, 'Lon', 60, 'dm001', 'ncc02');
INSERT INTO Products VALUES ('sp038', N'Thức ăn hạt cho mèo Catidea Basic Meat All Ages', 128000, N'Gói', 70, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp039', N'Đồ chơi nhựa cho mèo con', 18000, N'Cái', 55, 'dm005', 'ncc02');
INSERT INTO Products VALUES ('sp040', N'Bánh thưởng cho chó Vegebrand', 45000, N'Gói', 95, 'dm001', 'ncc02');
INSERT INTO Products VALUES ('sp041', N'Pate Ciao vị cá ngừ nướng cho mèo',
INSERT INTO Products VALUES ('sp042', N'Que chơi với mèo', 15000, N'Cái', 25, 'dm005', 'ncc01');
INSERT INTO Products VALUES ('sp043', N'Bàn chải răng cho chó', 32000, N'Cái', 50, 'dm003', 'ncc03');
INSERT INTO Products VALUES ('sp044', N’Bộ trang phục cosplay nữ sinh cho mèo’,
INSERT INTO Products VALUES ('sp045', N'Thuốc bổ sung Vitamin cho chóVegebrand', 82000, 'Chai', 85, 'dm001', 'ncc02');
INSERT INTO Products VALUES ('sp046', N'Vòng cổ cho mèo', 22000, N'Cái', 60, 'dm005', 'ncc01');
INSERT INTO Products VALUES ('sp047', N'Xúc xích cho chó Bioline ', 32000, N'Gói',
INSERT INTO Products VALUES ('sp048', N'Bánh thưởng cho mèo Jerhigh Jinny Salmon', 25000, N'Gói', 50, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp049', N'Dụng cụ cắt móng mèo', 35000, N‘Bộ',
INSERT INTO Products VALUES ('sp050', N'Thảm vệ sinh cho mèo nhỏ', 18000, N'Cái', 55, 'dm006', 'ncc03');
INSERT INTO Products VALUES ('sp051', N'Pate cho chó vị vịt quay sốt nước thịt Jerhigh Roasted Duck Gravy', 50000, 'Lon', 80, 'dm001', 'ncc02');
INSERT INTO Products VALUES ('sp052', N'Thức ăn hạt cho mèo trưởng thành Royal Canin Indoor 27’, 158000, N'Gói', 50, 'dm004', 'ncc01');
INSERT INTO Products VALUES ('sp053', N'Dây dắt mèo đi dạo', 42000, N'Cái', 35, 'dm005', 'ncc02');
INSERT INTO Products VALUES ('sp054', N'Dây dắt chó đi dạo', 55000, N'Cái', 40, 'dm002', 'ncc03');
INSERT INTO Promotion VALUES ('sk001', N'Giáng sinh', N'Khuyến mãi đặc biệt trong dịp giáng sinh.');
INSERT INTO Promotion VALUES ('sk002', N'Khách mới', N'Ưu đãi dành cho khách hàng mới đăng ký tài khoản.');
INSERT INTO Promotion VALUES ('sk003', N'Tết Nguyên Đán', N'Chương trình khuyến mãi hấp dẫn nhân dịp Tết.');
INSERT INTO Promotion VALUES ('sk004', N'Black Friday', N'Giảm giá lớn trong ngày Black Friday');
INSERT INTO PromotionDetail VALUES ('km001', 'sp001', 15, TO_DATE('2023-12-12', 'YYYY-MM-DD'), TO_DATE('2023-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km002', 'sp002', 20, TO_DATE('2023-02- 01', 'YYYY-MM-DD'), TO_DATE('2023-02-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km003', 'sp003', 10, TO_DATE('2024-01- 27', 'YYYY-MM-DD'), TO_DATE('2024-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km004', 'sp004', 25, TO_DATE('2023-11- 18', 'YYYY-MM-DD'), TO_DATE('2023-11-26', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km005', 'sp005', 18, TO_DATE('2023-12- 15', 'YYYY-MM-DD'), TO_DATE('2023-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km006', 'sp006', 12, TO_DATE('2023-06- 01', 'YYYY-MM-DD'), TO_DATE('2023-06-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km007', 'sp007', 30, TO_DATE('2024-02- 01', 'YYYY-MM-DD'), TO_DATE('2024-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km008', 'sp008', 22, TO_DATE('2023-11- 20', 'YYYY-MM-DD'), TO_DATE('2023-11-30', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km009', 'sp009', 8, TO_DATE('2023-12- 01', 'YYYY-MM-DD'), TO_DATE('2023-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km010', 'sp010', 19, TO_DATE('2023-10- 01', 'YYYY-MM-DD'), TO_DATE('2023-10-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km001', 'sp001', 15, TO_DATE('2023-12- 18', 'YYYY-MM-DD'), TO_DATE('2023-12-17', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km002', 'sp002', 20, TO_DATE('2023-02- 01', 'YYYY-MM-DD'), TO_DATE('2023-02-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km003', 'sp003', 10, TO_DATE('2023-02- 01', 'YYYY-MM-DD'), TO_DATE('2023-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km004', 'sp004', 25, TO_DATE('2023-11- 20', 'YYYY-MM-DD'), TO_DATE('2023-11-30', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km005', 'sp005', 18, TO_DATE('2023-12- 10', 'YYYY-MM-DD'), TO_DATE('2023-12-29', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km006', 'sp006', 12, TO_DATE('2023-06-01', 'YYYY-MM-DD'), TO_DATE('2023-06-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km007', 'sp007', 30, TO_DATE('2023-02- 01', 'YYYY-MM-DD'), TO_DATE('2023-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km008', 'sp008', 22, TO_DATE('2023-11- 01', 'YYYY-MM-DD'), TO_DATE('2023-11-29', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km009', 'sp009', 8, TO_DATE('2023-12- 01', 'YYYY-MM-DD'), TO_DATE('2023-12-27', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km010', 'sp010', 19, TO_DATE('2023-10- 01', 'YYYY-MM-DD'), TO_DATE('2023-10-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km021', 'sp021', 15, TO_DATE('2024-12- 20', 'YYYY-MM-DD'), TO_DATE('2024-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km022', 'sp022', 20, TO_DATE('2024-12- 23', 'YYYY-MM-DD'), TO_DATE('2024-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km023', 'sp023', 10, TO_DATE('2024-11- 01', 'YYYY-MM-DD'), TO_DATE('2024-11-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km024', 'sp024', 25, TO_DATE('2024-01- 15', 'YYYY-MM-DD'), TO_DATE('2024-02-15', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km025', 'sp025', 18, TO_DATE('2024-11- 01', 'YYYY-MM-DD'), TO_DATE('2024-11-28', 'YYYY-MM-DD'), 'sk004);
INSERT INTO PromotionDetail VALUES ('km026', 'sp026', 12, TO_DATE('2024-02- 01', 'YYYY-MM-DD'), TO_DATE('2024-02-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km027', 'sp027', 30, TO_DATE('2024-03- 01', 'YYYY-MM-DD'), TO_DATE('2024-03-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km028', 'sp028', 22, TO_DATE('2025-04- 01', 'YYYY-MM-DD'), TO_DATE('2025-04-10', 'YYYY-MM-DD'), 'sk002);
INSERT INTO PromotionDetail VALUES ('km029', 'sp029', 8, TO_DATE('2025-02- 01', 'YYYY-MM-DD'), TO_DATE('2025-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km030', 'sp030', 19, TO_DATE('2025-06- 01', 'YYYY-MM-DD'), TO_DATE('2025-06-10', 'YYYY-MM-DD'), 'sk002');
INSERT INTO PromotionDetail VALUES ('km031', 'sp031', 15, TO_DATE('2024-02-01', 'YYYY-MM-DD'), TO_DATE('2024-02-10', 'YYYY-MM-DD'), 'sk003');
INSERT INTO PromotionDetail VALUES ('km032', 'sp032', 20, TO_DATE('2024-12- 09', 'YYYY-MM-DD'), TO_DATE('2024-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km033', 'sp033', 10, TO_DATE('2024-11- 19', 'YYYY-MM-DD'), TO_DATE('2024-11-29', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km034', 'sp034', 25, TO_DATE('2024-12- 11', 'YYYY-MM-DD'), TO_DATE('2024-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km035', 'sp035', 18, TO_DATE('2024-11- 10', 'YYYY-MM-DD'), TO_DATE('2024-11-28', 'YYYY-MM-DD'), 'sk004');
INSERT INTO PromotionDetail VALUES ('km036', 'sp036', 12, TO_DATE('2024-12- 15', 'YYYY-MM-DD'), TO_DATE('2024-12-31', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km037', 'sp037', 30, TO_DATE('2024-12- 15', 'YYYY-MM-DD'), TO_DATE('2024-12-25', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km038', 'sp038', 22, TO_DATE('2024-12- 20', 'YYYY-MM-DD'), TO_DATE('2024-12-30', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km039', 'sp039', 8, TO_DATE('2024-12- 25', 'YYYY-MM-DD'), TO_DATE('2025-01-05', 'YYYY-MM-DD'), 'sk001');
INSERT INTO PromotionDetail VALUES ('km040', 'sp040', 19, TO_DATE('2024-12- 30', 'YYYY-MM-DD'), TO_DATE('2025-01-10', 'YYYY-MM-DD'), 'sk001');
INSERT INTO Customers VALUES ('kh001', N'Trần Thị Minh', '0987654321', N'Kim Động - Hưng Yên', 'minh@gmail.com', 0, TO_DATE('01/02/2001', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh002', N'Nguyễn Trần An Khang', '0471846383', N'Phố Nối - Nam Định', '123@gmail.com', 1, TO_DATE('15/01/1998', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh003', N'Lê Văn Long', '0123456789', N'Thủy Nguyên - Hải Phòng', 'long@gmail.com', 1, TO_DATE('20/05/1987', 'DD/MM/YYYY'));
The SQL commands provided insert new customer records into the Customers database The first entry includes customer ID 'kh004', name 'Phạm Thùy Linh', phone number '0369876543', address 'Gia Lộc - Hải Dương', email 'linh@gmail.com', status '0', and birthdate '10/12/1995' The second entry adds customer ID 'kh005', name 'Vũ Minh Đức', phone number '0932108765', address 'Bình Giang - Hải Dương', email 'duc@gmail.com', status '1', and birthdate '05/03/2004'.
INSERT INTO Customers VALUES ('kh006', N'Nguyễn Thị Lan', '0765432109', N'Khoái Châu - Hưng Yên', 'lan@gmail.com', 0, TO_DATE('25/08/1993', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh007', N'Trần Văn Hùng', '0912345678', N'Cẩm Giàng - Hải Dương', 'hung@gmail.com', 1, TO_DATE('03/11/2002', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh008', N'Bùi Ngọc Anh', '0587654321', N'Quế
Võ - Bắc Ninh', 'anh@gmail.com', 0, TO_DATE('18/07/2002', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh009', N’Đỗ Thị Thu', '0956781234', N'Từ Sơn - Bắc Ninh', 'thu@gmail.com', 0, TO_DATE('12/09/2001', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh010', N'Phan Văn Tuấn', '0678901234', N'Tân Uyên - Bắc Giang', 'tuan@gmail.com', 1, TO_DATE('30/04/1997', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh011', N'Nguyễn Văn Khánh', '0987654321', N'Bắc Ninh - Bắc Ninh', 'khanh@gmail.com', 1, TO_DATE('01/02/1996', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh012', N'Trần Thị Hà', '0471846383', 'Hải Phòng', 'ha@gmail.com', 0, TO_DATE('15/01/2001', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh013', N'Lê Văn Hoa', '0123456789', 'Điện Biên-Điện Biên', 'hoa@gmail.com', 0, TO_DATE('20/05/2000', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh014', N'Phạm Minh Hiền', '0369876543', N’Quảng Ninh - Quảng Ninh', 'hien@gmail.com', 0, TO_DATE('10/12/1995', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh015', N'Nguyễn Văn Hoàng', '0932108765', N'Bình Dương - Bình Dương', 'hoang@gmail.com', 1, TO_DATE('05/03/1996', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh016', N'Lê Thị Hằng', '0765432109', Ntp.'Đà Nẵng - Đà Nẵng', 'hang@gmail.com', 0, TO_DATE('25/08/1993', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh017', N'Trần Văn Hiếu', '0912345678', N'Nha Trang - Khánh Hòa', 'hieu@gmail.com', 1, TO_DATE('03/11/1989', 'DD/MM/YYYY'));
The SQL commands provided insert new customer records into the Customers table, detailing essential information such as customer IDs, names, phone numbers, addresses, email addresses, loyalty status, and birthdates For instance, the first entry adds Bùi Ngọc Anh from Cần Thơ, born on July 18, 1991, while the second entry includes Đỗ Thị Thu from Đà Lạt, born on September 12, 1998.
INSERT INTO Customers VALUES ('kh020', N'Phạm Văn Tuấn', '0678901234', N'Tiền Giang - Tiền Giang', 'tuan@gmail.com', 1, TO_DATE('30/04/1999', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh021', N'Nguyễn Văn Hùng', '0587654321', N'Bà Rịa - Vũng Tàu', 'hung@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh022', N'Trần Thị Mai Hương', '0956781234', N'Trà Vinh - Trà Vinh', 'mai@gmail.com', 0, TO_DATE('12/09/1987', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh023', N'Phạm Tuấn Cường', '0678901234', N'Đống Đa - Hà Nội', 'cuong@gmail.com', 1, TO_DATE('30/04/1998', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh024', N'Đỗ Văn Quyết', '0123456789', N'Hai
Bà Trưng - Hà Nội', 'quyet@gmail.com', 1, TO_DATE('15/01/1998', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh025', N'Nguyễn Thị Thúy Hằng', '0369876543', N'Cầu Giấy - Hầ Nội', 'hang@gmail.com', 0, TO_DATE('10/12/1995', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh026', N'Trần Văn Huy', '0932108765', N'Kiên Giang', 'huy@gmail.com', 1, TO_DATE('05/03/2002', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh027', N'Phạm Thị Khánh Vân ', '0765432109', N'Ninh Thuận', 'khanh@gmail.com', 0, TO_DATE('25/08/1993', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh028', N'Lê Thị Thảo', '0912345678', N'Quảng Ngãi', 'thao@gmail.com', 0, TO_DATE('03/11/2003', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh029', N'Nguyễn Văn Luân', '0587654321', N'Bắc Giang', 'luan@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh030', N'Nguyễn Thị Tuyết Mai', '0956781234', N'Vĩnh Long', 'mai@gmail.com', 0, TO_DATE('12/09/1988', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh031', N'Nguyễn Văn Hoan', '0587654321', N'Đắk Lắk - Đắk Lắk', 'hoan@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh032', N'Trần Thị Ngọc Diệp', '0956781234',N'Đắk Nông - Đắk Nong', 'ngoc@gmail.com', 0, TO_DATE('12/09/1988','DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh033', N'Phạm Văn Hải', '0678901234', N'Phủ
Lý - Hà Nam', 'hau@gmail.com', 1, TO_DATE('30/04/2000', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh034', N'Đỗ Văn Thanh', '0123456789', N'Tam Đảo - Vĩnh Phúc', 'thanh@gmail.com', 1, TO_DATE('15/01/1998', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh035', N'Nguyễn Thị Huế', '0369876543', N'Lào Cai', 'hue@gmail.com', 0, TO_DATE('10/12/1995', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh036', N'Trần Văn Nhân', '0932108765', N'Lai Châu', 'nhan@gmail.com', 1, TO_DATE('05/03/1996’, 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh037', N'Phạm Thị Thủy', '0765432109', N'Lạng Sơn', 'thuy@gmail.com', 0, TO_DATE('25/08/1993', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh038', N'Lê Văn Khôi', '0912345678', N'Nam Định', 'khoi@gmail.com', 1, TO_DATE('03/11/1997', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh039', N'Nguyễn Văn Tài', '0587654321', N'Hoa
Lư - Ninh Bình', 'tai@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh040', N'Nguyễn Thị Nga', '0956781234', N'Tây Sơn - Phú Thọ', 'nga@gmail.com', 0, TO_DATE('12/09/1988', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh041', N'Nguyễn Văn Huy', '0587654321', N'Phú Hoà - Phú Yên', 'huy@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh042', N'Trần Thị Thảo', '0956781234', N'Quảng Trạch - Quảng Bình', 'thao@gmail.com', 0, TO_DATE('12/09/1988', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh043', N'Phan Văn Cường', '0678901234', N'Quảng Trị - Quảng Trị', 'cuong@gmail.com', 1, TO_DATE('30/04/1990', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh044', N'Đỗ Văn Quyết', '0123456789', N'Vĩnh Châu - Sóc Trăng', 'quyet@gmail.com', 1, TO_DATE('15/01/1998', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh045', N'Nguyễn Thị Hằng', '0369876543', N'tp.Sơn La - Sơn La', 'hang@gmail.com', 0, TO_DATE('10/12/1995', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh046', N'Trần Văn Huy', '0932108765', N'TânChâu - Tây Ninh', 'huy@gmail.com', 1, TO_DATE('05/03/1989', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh047', N'Phạm Văn Khanh', '0765432109', N'Kiến Xương - Thái Bình', 'khanh@gmail.com', 1, TO_DATE('25/08/1993', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh048', N'Lê Thị Thảo', '0912345678', N'Quảng Điền - Thừa Thiên Huế', 'thao@gmail.com', 0, TO_DATE('03/11/1990', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh049', N'Nguyễn Văn Luân', '0587654321', N'tp.Tuyên Quang - Tuyên Quang', 'luan@gmail.com', 1, TO_DATE('18/07/1991', 'DD/MM/YYYY'));
INSERT INTO Customers VALUES ('kh050', N'Nguyễn Thị Mai', '0956781234', N'tp.Vĩnh Long - Vĩnh Long', 'mai@gmail.com', 0, TO_DATE('12/09/1998', 'DD/MM/YYYY'));
INSERT INTO Department VALUES ('cv001', N'Quản lý', 20000000);
INSERT INTO Department VALUES ('cv002', N'Nhân viên bán hàng', 10000000); INSERT INTO Department VALUES ('cv003', N'Nhân viên thu ngân', 12000000); Bảng Employee
INSERT INTO Employee VALUES ('nv001', N'Nguyễn Văn An', 1, TO_DATE('01/02/1990', 'DD/MM/YYYY'), '0987654321', 'cv001');
INSERT INTO Employee VALUES ('nv002', N'Trần Thị Bình', 0, TO_DATE('15/01/1995', 'DD/MM/YYYY'), '0123456789', 'cv002');
INSERT INTO Employee VALUES ('nv003', N'Lê Văn Cường', 1, TO_DATE('20/05/1988', 'DD/MM/YYYY'), '0369876543', 'cv002');
INSERT INTO Employee VALUES ('nv004', N'Phạm Thị Dung', 0, TO_DATE('10/12/1992', 'DD/MM/YYYY'), '0932108765', 'cv003');
INSERT INTO Employee VALUES ('nv005', N'Vũ Văn Em', 0, TO_DATE('05/03/1985', 'DD/MM/YYYY'), '0765432109', 'cv002');
INSERT INTO Employee VALUES ('nv006', N'Nguyễn Thị Phương', 0, TO_DATE('25/08/1991', 'DD/MM/YYYY'), '0912345678', 'cv003');
INSERT INTO Employee VALUES ('nv007', N'Trần Văn Giang', 1,TO_DATE('03/11/1980', 'DD/MM/YYYY'), '0587654321', 'cv002');
INSERT INTO Employee VALUES ('nv008', N'Bùi Ngọc Hòa', 0, TO_DATE('18/07/1993', 'DD/MM/YYYY'), '0956781234', 'cv002');
INSERT INTO Employee VALUES ('nv009', N'Đỗ Thị Hương', 0, TO_DATE('12/09/1986', 'DD/MM/YYYY'), '0678901234', 'cv003');
INSERT INTO Employee VALUES ('nv010', N'Phan Văn Tùng', 1, TO_DATE('30/04/1997', 'DD/MM/YYYY'), '0543210987', 'cv002');
INSERT INTO Invoice VALUES ('hd001', N'Tiền mặt', TO_TIMESTAMP('2023-06-01 08:30:00','YYYY-MM-DD HH24:MI:SS'), 517000, 'kh001', 'nv004');
INSERT INTO Invoice VALUES ('hd002', N'QR thanh toán', TO_TIMESTAMP('2023- 07-15 14:45:00', 'YYYY-MM-DD HH24:MI:SS'), 27500, 'kh002', 'nv006');
INSERT INTO Invoice VALUES ('hd003', N'Quẹt thẻ', TO_TIMESTAMP('2023-06-20 10:00:00', 'YYYY-MM-DD HH24:MI:SS'), 330000, 'kh003', 'nv009');
INSERT INTO Invoice VALUES ('hd004', N'Tiền mặt', TO_TIMESTAMP('2023-06-25 16:20:00', 'YYYY-MM-DD HH24:MI:SS'), 55000, 'kh004', 'nv004');
INSERT INTO Invoice VALUES ('hd005', N'QR thanh toán', TO_TIMESTAMP('2023- 06-30 12:10:00', 'YYYY-MM-DD HH24:MI:SS'), 95700, 'kh005', 'nv006');
INSERT INTO Invoice VALUES ('hd006', N'Quẹt thẻ', TO_TIMESTAMP('2023-06-7 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 325280, 'kh006', 'nv009');
INSERT INTO Invoice VALUES ('hd007', N'Tiền mặt', TO_TIMESTAMP('2023-06-03 11:55:00', 'YYYY-MM-DD HH24:MI:SS'), 540100, 'kh007', 'nv004');
INSERT INTO Invoice VALUES ('hd008', N'QR thanh toán', TO_TIMESTAMP('2023- 06-10 18:40:00', 'YYYY-MM-DD HH24:MI:SS'), 396000, 'kh008', 'nv006');
INSERT INTO Invoice VALUES ('hd009', N'Quẹt thẻ', TO_TIMESTAMP('2023-06-15 15:15:00', 'YYYY-MM-DD HH24:MI:SS'), 312400, 'kh009', 'nv009');
INSERT INTO Invoice VALUES ('hd010', N'Tiền mặt', TO_TIMESTAMP('2023-06-28 13:05:00', 'YYYY-MM-DD HH24:MI:SS'), 54500, 'kh010', 'nv004');
INSERT INTO Invoice VALUES ('hd011', N'Tiền mặt', TO_TIMESTAMP('2023-07-01 09:15:00', 'YYYY-MM-DD HH24:MI:SS'), 330000, 'kh011', 'nv006');
INSERT INTO Invoice VALUES ('hd012', N'QR thanh toán', TO_TIMESTAMP('2023-07-05 14:30:00', 'YYYY-MM-DD HH24:MI:SS'), 165000, 'kh012', 'nv009');
INSERT INTO Invoice VALUES ('hd013', N'Quẹt thẻ', TO_TIMESTAMP('2023-07-10 11:45:00', 'YYYY-MM-DD HH24:MI:SS'), 30520, 'kh013', 'nv004');
INSERT INTO Invoice VALUES ('hd014', N'Tiền mặt', TO_TIMESTAMP('2023-07-15 16:55:00', 'YYYY-MM-DD HH24:MI:SS'), 91300, 'kh014', 'nv006');
INSERT INTO Invoice VALUES ('hd015', N'QR thanh toán', TO_TIMESTAMP('2023- 07-20 13:20:00', 'YYYY-MM-DD HH24:MI:SS'), 148500, 'kh015', 'nv009');
INSERT INTO Invoice VALUES ('hd016', N'Quẹt thẻ', TO_TIMESTAMP('2023-07-25 10:10:00', 'YYYY-MM-DD HH24:MI:SS'), 54500, 'kh016', 'nv004');
INSERT INTO Invoice VALUES ('hd017', N'Tiền mặt', TO_TIMESTAMP('2023-07-28 14:35:00', 'YYYY-MM-DD HH24:MI:SS'), 329680, 'kh017', 'nv009');
INSERT INTO Invoice VALUES ('hd018', N'QR thanh toán', TO_TIMESTAMP('2023- 07-12 17:45:00', 'YYYY-MM-DD HH24:MI:SS'), 261440, 'kh018', 'nv004');
INSERT INTO Invoice VALUES ('hd019', N'Quẹt thẻ', TO_TIMESTAMP('2023-07-18 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 133100, 'kh019', 'nv006');
INSERT INTO Invoice VALUES ('hd020', N'Tiền mặt', TO_TIMESTAMP('2023-07-30 12:05:00', 'YYYY-MM-DD HH24:MI:SS'), 330000, 'kh020', 'nv009');
INSERT INTO Invoice VALUES ('hd021', N'Tiền mặt', TO_TIMESTAMP('2023-08-01 10:30:00', 'YYYY-MM-DD HH24:MI:SS'), 363000, 'kh021', 'nv004');
INSERT INTO Invoice VALUES ('hd022', N'QR thanh toán', TO_TIMESTAMP('2023- 08-05 14:20:00', 'YYYY-MM-DD HH24:MI:SS'), 90200, 'kh022', 'nv006');
INSERT INTO Invoice VALUES ('hd023', N'Quẹt thẻ', TO_TIMESTAMP('2023-08-10 11:10:00', 'YYYY-MM-DD HH24:MI:SS'), 27500, 'kh023', 'nv009');
INSERT INTO Invoice VALUES ('hd024', N'Tiền mặt', TO_TIMESTAMP('2023-08-15 16:45:00', 'YYYY-MM-DD HH24:MI:SS'), 852500, 'kh024', 'nv004');
INSERT INTO Invoice VALUES ('hd025', N'QR thanh toán', TO_TIMESTAMP('2023- 08-20 13:30:00', 'YYYY-MM-DD HH24:MI:SS'), 34880, 'kh025', 'nv006');
INSERT INTO Invoice VALUES ('hd026', N'Quẹt thẻ', TO_TIMESTAMP('2023-08-25 10:20:00', 'YYYY-MM-DD HH24:MI:SS'), 896500, 'kh026', 'nv009');
INSERT INTO Invoice VALUES ('hd027', N'Tiền mặt', TO_TIMESTAMP('2023-08-2814:55:00', 'YYYY-MM-DD HH24:MI:SS'), 264000, 'kh027', 'nv004');
INSERT INTO Invoice VALUES ('hd028', N'QR thanh toán', TO_TIMESTAMP('2023- 08-12 17:35:00', 'YYYY-MM-DD HH24:MI:SS'), 597300, 'kh028', 'nv006');
INSERT INTO Invoice VALUES ('hd029', N'Quẹt thẻ', TO_TIMESTAMP('2023-08-18 09:15:00', 'YYYY-MM-DD HH24:MI:SS'), 32700, 'kh029', 'nv009');
INSERT INTO Invoice VALUES ('hd030', N'Tiền mặt', TO_TIMESTAMP('2023-08-30 12:50:00', 'YYYY-MM-DD HH24:MI:SS'), 16500, 'kh030', 'nv004');
INSERT INTO Invoice VALUES ('hd031', N'QR thanh toán', TO_TIMESTAMP('2023- 08-02 10:00:00', 'YYYY-MM-DD HH24:MI:SS'), 115500, 'kh031', 'nv006');
INSERT INTO Invoice VALUES ('hd032', N'Quẹt thẻ', TO_TIMESTAMP('2023-08-08 11:20:00', 'YYYY-MM-DD HH24:MI:SS'), 148500, 'kh032', 'nv009');
INSERT INTO Invoice VALUES ('hd033', N'Tiền mặt', TO_TIMESTAMP('2023-08-16 14:40:00', 'YYYY-MM-DD HH24:MI:SS'), 13200, 'kh033', 'nv004');
INSERT INTO Invoice VALUES ('hd034', N'QR thanh toán', TO_TIMESTAMP('2023- 08-22 15:25:00', 'YYYY-MM-DD HH24:MI:SS'), 262900, 'kh034', 'nv006');
INSERT INTO Invoice VALUES ('hd035', N'Quẹt thẻ', TO_TIMESTAMP('2023-08-26 08:50:00', 'YYYY-MM-DD HH24:MI:SS'), 247500, 'kh035', 'nv009');
INSERT INTO Invoice VALUES ('hd036', N'Tiền mặt', TO_TIMESTAMP('2023-09-01 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 272800, 'kh036', 'nv004');
INSERT INTO Invoice VALUES ('hd037', N'QR thanh toán', TO_TIMESTAMP('2023- 09-05 14:15:00', 'YYYY-MM-DD HH24:MI:SS'), 60500, 'kh037', 'nv006');
INSERT INTO Invoice VALUES ('hd038', N'Quẹt thẻ', TO_TIMESTAMP('2023-09-10 11:30:00', 'YYYY-MM-DD HH24:MI:SS'), 66000, 'kh038', 'nv009');
INSERT INTO Invoice VALUES ('hd039', N'Tiền mặt', TO_TIMESTAMP('2023-09-15 16:50:00', 'YYYY-MM-DD HH24:MI:SS'), 396000, 'kh039', 'nv004');
INSERT INTO Invoice VALUES ('hd040', N'QR thanh toán', TO_TIMESTAMP('2023- 09-20 13:40:00', 'YYYY-MM-DD HH24:MI:SS'), 34880, 'kh040', 'nv006');
INSERT INTO Invoice VALUES ('hd041', N'Quẹt thẻ', TO_TIMESTAMP('2023-09-25 10:25:00', 'YYYY-MM-DD HH24:MI:SS'), 206200, 'kh041', 'nv009');
INSERT INTO Invoice VALUES ('hd042', N'Tiền mặt', TO_TIMESTAMP('2023-09-2814:50:00', 'YYYY-MM-DD HH24:MI:SS'), 27500, 'kh042', 'nv004');
INSERT INTO Invoice VALUES ('hd043', N'QR thanh toán', TO_TIMESTAMP('2023- 09-12 17:30:00', 'YYYY-MM-DD HH24:MI:SS'), 19800, 'kh043', 'nv006');
INSERT INTO Invoice VALUES ('hd044', N'Quẹt thẻ', TO_TIMESTAMP('2023-09-18 09:20:00', 'YYYY-MM-DD HH24:MI:SS'), 157300, 'kh044', 'nv009');
INSERT INTO Invoice VALUES ('hd045', N'Tiền mặt', TO_TIMESTAMP('2023-09-30 12:45:00', 'YYYY-MM-DD HH24:MI:SS'), 76750, 'kh045', 'nv004');
INSERT INTO Invoice VALUES ('hd046', N'QR thanh toán', TO_TIMESTAMP('2023- 09-02 10:10:00', 'YYYY-MM-DD HH24:MI:SS'), 82500, 'kh046', 'nv006');
INSERT INTO Invoice VALUES ('hd047', N'Quẹt thẻ', TO_TIMESTAMP('2023-09-08 11:15:00', 'YYYY-MM-DD HH24:MI:SS'), 46200, 'kh047', 'nv009');
INSERT INTO Invoice VALUES ('hd048', N'Tiền mặt', TO_TIMESTAMP('2023-09-16 14:35:00', 'YYYY-MM-DD HH24:MI:SS'), 249100, 'kh048', 'nv004');
INSERT INTO Invoice VALUES ('hd049', N'QR thanh toán', TO_TIMESTAMP('2023- 09-22 15:20:00', 'YYYY-MM-DD HH24:MI:SS'), 253000, 'kh049', 'nv006');
INSERT INTO Invoice VALUES ('hd050', N'Quẹt thẻ', TO_TIMESTAMP('2023-09-26 08:45:00', 'YYYY-MM-DD HH24:MI:SS'), 49500, 'kh050', 'nv009');
INSERT INTO Invoice VALUES ('hd051', N'Tiền mặt', TO_TIMESTAMP('2023-10-01 09:45:00', 'YYYY-MM-DD HH24:MI:SS'), 173500, 'kh011', 'nv004');
INSERT INTO Invoice VALUES ('hd052', N'QR thanh toán', TO_TIMESTAMP('2023- 10-05 14:10:00', 'YYYY-MM-DD HH24:MI:SS'), 54500, 'kh022', 'nv006');
INSERT INTO Invoice VALUES ('hd053', N'Quẹt thẻ', TO_TIMESTAMP('2023-10-10 11:40:00', 'YYYY-MM-DD HH24:MI:SS'), 49500, 'kh023', 'nv009');
INSERT INTO Invoice VALUES ('hd054', N'Tiền mặt', TO_TIMESTAMP('2023-10-15 16:55:00', 'YYYY-MM-DD HH24:MI:SS'), 144100, 'kh044', 'nv004');
INSERT INTO Invoice VALUES ('hd055', N'QR thanh toán', TO_TIMESTAMP('2023- 10-20 13:25:00', 'YYYY-MM-DD HH24:MI:SS'), 132000, 'kh005', 'nv006');
INSERT INTO Invoice VALUES ('hd056', N'Quẹt thẻ', TO_TIMESTAMP('2023-10-25 10:15:00', 'YYYY-MM-DD HH24:MI:SS'), 73450, 'kh016', 'nv009');
INSERT INTO Invoice VALUES ('hd057', N'Tiền mặt', TO_TIMESTAMP('2023-10-2814:30:00', 'YYYY-MM-DD HH24:MI:SS'), 27250, 'kh047', 'nv004');
INSERT INTO Invoice VALUES ('hd058', N'QR thanh toán', TO_TIMESTAMP('2023- 10-12 17:25:00', 'YYYY-MM-DD HH24:MI:SS'), 156200, 'kh018', 'nv006');
INSERT INTO Invoice VALUES ('hd059', N'Quẹt thẻ', TO_TIMESTAMP('2023-10-18 09:10:00', 'YYYY-MM-DD HH24:MI:SS'), 190300, 'kh009', 'nv009');
INSERT INTO Invoice VALUES ('hd060', N'Tiền mặt', TO_TIMESTAMP('2023-10-30 12:55:00', 'YYYY-MM-DD HH24:MI:SS'), 105600, 'kh020', 'nv004');
INSERT INTO Invoice VALUES ('hd061', N'Tiền mặt', TO_TIMESTAMP('2023-11-01 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 176226, 'kh041', 'nv004');
INSERT INTO Invoice VALUES ('hd062', N'QR thanh toán', TO_TIMESTAMP('2023- 11-05 14:15:00', 'YYYY-MM-DD HH24:MI:SS'), 217800, 'kh032', 'nv006');
INSERT INTO Invoice VALUES ('hd063', N'Quẹt thẻ', TO_TIMESTAMP('2023-11-10 11:40:00', 'YYYY-MM-DD HH24:MI:SS'), 92400, 'kh043', 'nv009');
INSERT INTO Invoice VALUES ('hd064', N'Tiền mặt', TO_TIMESTAMP('2023-11-15 16:55:00', 'YYYY-MM-DD HH24:MI:SS'), 123750, 'kh014', 'nv004');
INSERT INTO Invoice VALUES ('hd065', N'QR thanh toán', TO_TIMESTAMP('2023- 11-20 13:25:00', 'YYYY-MM-DD HH24:MI:SS'), 103048, 'kh005', 'nv006');
INSERT INTO Invoice VALUES ('hd066', N'Quẹt thẻ', TO_TIMESTAMP('2023-11-25 10:15:00', 'YYYY-MM-DD HH24:MI:SS'), 89030, 'kh006', 'nv009');
INSERT INTO Invoice VALUES ('hd067', N'Tiền mặt', TO_TIMESTAMP('2023-11-28 14:30:00', 'YYYY-MM-DD HH24:MI:SS'), 554620, 'kh047', 'nv004');
INSERT INTO Invoice VALUES ('hd068', N'QR thanh toán', TO_TIMESTAMP('2023- 11-12 17:25:00', 'YYYY-MM-DD HH24:MI:SS'), 396000, 'kh028', 'nv006');
INSERT INTO Invoice VALUES ('hd069', N'Quẹt thẻ', TO_TIMESTAMP('2023-11-18 09:10:00', 'YYYY-MM-DD HH24:MI:SS'), 202400, 'kh019', 'nv009');
INSERT INTO Invoice VALUES ('hd070', N'Tiền mặt', TO_TIMESTAMP('2023-11-30 12:55:00', 'YYYY-MM-DD HH24:MI:SS'), 49050, 'kh020', 'nv004');
INSERT INTO Invoice VALUES ('hd071', N'QR thanh toán', TO_TIMESTAMP('2023- 11-02 10:10:00', 'YYYY-MM-DD HH24:MI:SS'), 197550, 'kh031', 'nv006');
INSERT INTO Invoice VALUES ('hd072', N'Quẹt thẻ', TO_TIMESTAMP('2023-11-0811:15:00', 'YYYY-MM-DD HH24:MI:SS'), 165000, 'kh042', 'nv009');
INSERT INTO Invoice VALUES ('hd073', N'Tiền mặt', TO_TIMESTAMP('2023-11-16 14:35:00', 'YYYY-MM-DD HH24:MI:SS'), 140800, 'kh013', 'nv004');
INSERT INTO Invoice VALUES ('hd074', N'QR thanh toán', TO_TIMESTAMP('2023- 11-22 15:20:00', 'YYYY-MM-DD HH24:MI:SS'), 234150, 'kh004', 'nv006');
INSERT INTO Invoice VALUES ('hd075', N'Quẹt thẻ', TO_TIMESTAMP('2023-11-26 08:45:00', 'YYYY-MM-DD HH24:MI:SS'), 252680, 'kh045', 'nv009');
INSERT INTO Invoice VALUES ('hd076', N'Tiền mặt', TO_TIMESTAMP('2023-12-01 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 329750, 'kh036', 'nv004');
INSERT INTO Invoice VALUES ('hd077', N'QR thanh toán', TO_TIMESTAMP('2023- 12-05 14:15:00', 'YYYY-MM-DD HH24:MI:SS'), 66000, 'kh027', 'nv006');
INSERT INTO Invoice VALUES ('hd078', N'Quẹt thẻ', TO_TIMESTAMP('2023-12-10 11:40:00', 'YYYY-MM-DD HH24:MI:SS'), 38150, 'kh048', 'nv009');
INSERT INTO Invoice VALUES ('hd079', N'Tiền mặt', TO_TIMESTAMP('2023-12-15 16:55:00', 'YYYY-MM-DD HH24:MI:SS'), 134200, 'kh029', 'nv004');
INSERT INTO Invoice VALUES ('hd080', N'QR thanh toán', TO_TIMESTAMP('2023- 12-20 13:25:00', 'YYYY-MM-DD HH24:MI:SS'), 42350, 'kh030', 'nv006');
INSERT INTO InvoiceDetail VALUES ('hd001', 'sp001', 3, 150000, N'Gói', 45000, 450000);
INSERT INTO InvoiceDetail VALUES ('hd001', 'sp007', 1, 20000, N'Cây', 2000, 20000);
INSERT INTO InvoiceDetail VALUES ('hd002', 'sp003', 1, 25000, N'Cái', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd003', 'sp001', 2, 150000, N'Gói', 30000, 300000);
INSERT INTO InvoiceDetail VALUES ('hd004', 'sp041', 1, 50000, N'Cái', 5000, 50000);
INSERT INTO InvoiceDetail VALUES ('hd005', 'sp041', 1, 50000, N'Cái', 5000, 50000);
INSERT INTO InvoiceDetail VALUES ('hd005', 'sp022', 1, 12000, N'Gói', 1200, 12000);
INSERT INTO InvoiceDetail VALUES ('hd005', 'sp031', 1, 25000, N'Gói', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd006', 'sp015', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd006', 'sp016', 1, 264000, N'Cái', 26400, 264000);
INSERT INTO InvoiceDetail VALUES ('hd007', 'sp028', 1, 155000, N'Cái', 15500, 155000);
INSERT INTO InvoiceDetail VALUES ('hd007', 'sp032', 5, 45000, N'Lon', 22500, 225000);
INSERT INTO InvoiceDetail VALUES ('hd007', 'sp035', 1, 15000, N'Cái', 1500, 15000);
INSERT INTO InvoiceDetail VALUES ('hd007', 'sp047', 3, 32000, N'Gói', 9600, 96000);
INSERT INTO InvoiceDetail VALUES ('hd008', 'sp030', 2, 180000, N'Túi', 36000, 360000);
INSERT INTO InvoiceDetail VALUES ('hd009', 'sp044', 2, 142000, N'Cái', 28400, 284000);
INSERT INTO InvoiceDetail VALUES ('hd010', 'sp023', 1, 50000, N'Ch?u', 4500, 50000);
INSERT INTO InvoiceDetail VALUES ('hd010', 'sp030', 3, 180000, N'Túi', 54000, 540000);
INSERT INTO InvoiceDetail VALUES ('hd011', 'sp001', 2, 150000, N'Gói', 30000, 300000);
INSERT INTO InvoiceDetail VALUES ('hd012', 'sp041', 3, 50000, N'Lon', 15000, 150000);
INSERT INTO InvoiceDetail VALUES ('hd013', 'sp008', 1, 28000, N'Cái', 2520, 28000);
INSERT INTO InvoiceDetail VALUES ('hd014', 'sp005', 1, 45000, N'Cây', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd014', 'sp009', 1, 38000, N'Cái', 3800, 38000);
INSERT INTO InvoiceDetail VALUES ('hd015', 'sp019', 1, 135000, N'Cái', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd016', 'sp023', 1, 50000, N'Ch?u', 4500, 50000);
INSERT INTO InvoiceDetail VALUES ('hd017', 'sp032', 2, 45000, N'Lon', 9000, 90000);
INSERT INTO InvoiceDetail VALUES ('hd017', 'sp043', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd017', 'sp045', 1, 82000, N'Chai', 8200, 82000);
INSERT INTO InvoiceDetail VALUES ('hd017', 'sp047', 3, 32000, N'Gói', 9600, 96000);
INSERT INTO InvoiceDetail VALUES ('hd018', 'sp018', 2, 18000, N'C?p', 3240, 36000);
INSERT INTO InvoiceDetail VALUES ('hd018', 'sp034', 4, 45000, N'Lon', 18000, 180000);
INSERT INTO InvoiceDetail VALUES ('hd018', 'sp046', 1, 22000, N'Cái', 2200, 22000);
INSERT INTO InvoiceDetail VALUES ('hd019', 'sp005', 1, 45000, N'Cây', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd019', 'sp009', 2, 38000, N'Cái', 7600, 76000);
INSERT INTO InvoiceDetail VALUES ('hd020', 'sp016', 1, 300000, N'Cái', 30000, 300000);
INSERT INTO InvoiceDetail VALUES ('hd021', 'sp024', 1, 45000, N'Cái', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd021', 'sp028', 1, 155000, N'Cái', 15500, 155000);
INSERT INTO InvoiceDetail VALUES ('hd021', 'sp031', 3, 25000, N'Gói', 7500, 75000);
INSERT INTO InvoiceDetail VALUES ('hd021', 'sp054', 1, 55000, N'Cái', 5500, 55000);
INSERT INTO InvoiceDetail VALUES ('hd022', 'sp045', 1, 82000, N'Chai', 8200, 82000);
INSERT INTO InvoiceDetail VALUES ('hd023', 'sp048', 1, 25000, N'Gói', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd024', 'sp028', 5, 155000, N'Cái', 77500, 775000);
INSERT INTO InvoiceDetail VALUES ('hd025', 'sp043', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd026', 'sp028', 1, 155000, N'Cái', 15500, 155000);
INSERT INTO InvoiceDetail VALUES ('hd026', 'sp033', 3, 220000, N'Gói', 66000, 660000;
INSERT INTO InvoiceDetail VALUES ('hd027', 'sp013', 1, 195000, N'Gói', 19500, 195000);
INSERT INTO InvoiceDetail VALUES ('hd027', 'sp024', 1, 45000, N'Cái', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd028', 'sp039', 1, 18000, N'Cái', 1800, 18000);
INSERT INTO InvoiceDetail VALUES ('hd028', 'sp013', 1, 195000, N'Gói', 19500, 195000);
INSERT INTO InvoiceDetail VALUES ('hd028', 'sp025', 1, 30000, N'Cái', 3000, 30000);
INSERT INTO InvoiceDetail VALUES ('hd028', 'sp016', 1, 300000, N'Cái', 30000, 300000);
INSERT INTO InvoiceDetail VALUES ('hd029', 'sp002', 1, 30000, N'Cây', 2700, 30000);
INSERT INTO InvoiceDetail VALUES ('hd030', 'sp042', 1, 15000, N'Cái', 1500, 15000);
INSERT INTO InvoiceDetail VALUES ('hd031', 'sp054', 1, 55000, N'Cái', 5500, 55000);
INSERT INTO InvoiceDetail VALUES ('hd031', 'sp023', 1, 50000, N'Ch?u', 5000, 50000);
INSERT INTO InvoiceDetail VALUES ('hd032', 'sp032', 3, 45000, N'Lon', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd033', 'sp035', 1, 12000, N'Cái', 1200, 12000);
INSERT INTO InvoiceDetail VALUES ('hd034', 'sp046', 2, 22000, N'Cái', 4400, 44000);
INSERT INTO InvoiceDetail VALUES ('hd034', 'sp013', 1, 195000, N'Gói', 19500, 195000);
INSERT INTO InvoiceDetail VALUES ('hd035', 'sp024', 2, 45000, N'Cái', 9000, 90000);
INSERT INTO InvoiceDetail VALUES ('hd035', 'sp034', 3, 45000, N'Lon', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd036', 'sp038', 1, 128000, N'Gói', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd036', 'sp025', 4, 30000, N'Cái', 12000, 120000);
INSERT INTO InvoiceDetail VALUES ('hd037', 'sp037', 1, 55000, N'Lon', 5500, 55000);
INSERT INTO InvoiceDetail VALUES ('hd038', 'sp035', 5, 12000, N'Cái', 6000, 60000);
INSERT INTO InvoiceDetail VALUES ('hd039', 'sp016', 1, 300000, N'Cái', 30000, 300000);
INSERT INTO InvoiceDetail VALUES ('hd039', 'sp022', 5, 12000, N'Gói', 6000, 60000);
INSERT INTO InvoiceDetail VALUES ('hd040', 'sp043', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd041', 'sp027', 1, 128000, N'Cái', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd041', 'sp010', 4, 15000, N'C?p', 5400, 60000);
INSERT INTO InvoiceDetail VALUES ('hd042', 'sp011', 1, 25000, N'Cái', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd043', 'sp039', 1, 18000, N'Cái', 1800, 18000);
INSERT INTO InvoiceDetail VALUES ('hd044', 'sp042', 1, 15000, N'Cái', 1500, 15000);
INSERT INTO InvoiceDetail VALUES ('hd044', 'sp038', 1, 128000, N'Gói', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd045', 'sp021', 1, 25000, N'Chai', 2250, 25000);
INSERT INTO InvoiceDetail VALUES ('hd045', 'sp024', 1, 45000, N'Cái', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd046', 'sp031', 3, 25000, N'Gói', 7500, 75000);
INSERT INTO InvoiceDetail VALUES ('hd047', 'sp026', 1, 42000, N'Cái', 4200, 42000);
INSERT INTO InvoiceDetail VALUES ('hd048', 'sp043', 1, 32000, N'Gói', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd048', 'sp028', 1, 32000, N'Cái', 3200, 32000);
INSERT INTO InvoiceDetail VALUES ('hd048', 'sp019', 1, 135000, N'Cái', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd048', 'sp020', 1, 28000, N'Cái', 2520, 28000);
INSERT INTO InvoiceDetail VALUES ('hd049', 'sp042', 1, 15000, N'Cái', 1500, 15000);
INSERT INTO InvoiceDetail VALUES ('hd049', 'sp028', 1, 155000, N'Cái', 15500, 155000);
INSERT INTO InvoiceDetail VALUES ('hd049', 'sp022', 5, 12000, N'Gói', 6000, 60000);
INSERT INTO InvoiceDetail VALUES ('hd050', 'sp034', 1, 45000, N'Lon', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd051', 'sp027', 1, 128000, N'Cái', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd051', 'sp002', 1, 30000, N'Cây', 2700, 30000);
INSERT INTO InvoiceDetail VALUES ('hd052', 'sp023', 1, 50000, N'Ch?u', 4500, 50000);
INSERT INTO InvoiceDetail VALUES ('hd053', 'sp005', 1, 45000, N'Cây', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd054', 'sp009', 2, 38000, N'Cái', 7600, 76000);
INSERT INTO InvoiceDetail VALUES ('hd054', 'sp054', 1, 55000, N'Cái', 5500, 55000);
INSERT INTO InvoiceDetail VALUES ('hd055', 'sp024', 1, 45000, N'Cái', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd055', 'sp011', 3, 25000, N'Cái', 7500, 75000);
INSERT INTO InvoiceDetail VALUES ('hd056', 'sp026', 1, 42000, N'Cái', 4200, 42000);
INSERT INTO InvoiceDetail VALUES ('hd056', 'sp021', 1, 25000, N'Chai', 2250, 25000);
INSERT INTO InvoiceDetail VALUES ('hd057', 'sp021', 1, 25000, N'Chai', 2250, 25000);
INSERT INTO InvoiceDetail VALUES ('hd058', 'sp044', 1, 142000, N'Cái', 14200, 142000);
INSERT INTO InvoiceDetail VALUES ('hd059', 'sp024', 1, 45000, N'Cái', 4500, 45000);
INSERT INTO InvoiceDetail VALUES ('hd059', 'sp038', 1, 128000, N'Gói', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd060', 'sp047', 3, 32000, N'Gói', 9600, 96000);
INSERT INTO InvoiceDetail VALUES ('hd061', 'sp049', 3, 35000, N'B?', 9450, 105000);
INSERT INTO InvoiceDetail VALUES ('hd061', 'sp018', 4, 14040, N'C?p', 5616, 56160);
INSERT INTO InvoiceDetail VALUES ('hd062', 'sp033', 1, 198000, N'Gói', 19800, 198000);
INSERT INTO InvoiceDetail VALUES ('hd063', 'sp053', 2, 42000, N'Cái', 8400, 84000);
INSERT INTO InvoiceDetail VALUES ('hd064', 'sp014', 1, 112500, N'Cái', 11250, 112500);
INSERT INTO InvoiceDetail VALUES ('hd065', 'sp031', 1, 25000, N'Gói', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd065', 'sp008', 2, 21840, N'Cái', 4368, 43680);
INSERT INTO InvoiceDetail VALUES ('hd065', 'sp011', 1, 25000, N'Cái', 2500, 25000);
INSERT INTO InvoiceDetail VALUES ('hd066', 'sp015', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd066', 'sp035', 5, 9840, N'Cái', 4920, 49200);
INSERT INTO InvoiceDetail VALUES ('hd067', 'sp028', 1, 155000, N'Cái', 15500, 155000);
INSERT INTO InvoiceDetail VALUES ('hd067', 'sp034', 3, 45000, N'Lon', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd067', 'sp025', 2, 24600, N'Cái', 4920, 49200);
INSERT INTO InvoiceDetail VALUES ('hd067', 'sp037', 3, 55000, N'Lon', 16500, 165000);
INSERT INTO InvoiceDetail VALUES ('hd068', 'sp030', 2, 180000, N'Túi', 36000, 360000);
INSERT INTO InvoiceDetail VALUES ('hd069', 'sp044', 2, 142000, N'Cái', 18400, 184000);
INSERT INTO InvoiceDetail VALUES ('hd070', 'sp023', 1, 45000, N'Ch?u', 4050, 45000);
INSERT INTO InvoiceDetail VALUES ('hd071', 'sp019', 1, 135000, N'Cái', 13500, 135000);
INSERT INTO InvoiceDetail VALUES ('hd071', 'sp023', 1, 45000, N'Ch?u', 4050, 45000);
INSERT INTO InvoiceDetail VALUES ('hd072', 'sp041', 3, 50000, N'Lon', 15000, 150000);
INSERT INTO InvoiceDetail VALUES ('hd073', 'sp027', 1, 128000, N'Cái', 12800, 128000);
INSERT INTO InvoiceDetail VALUES ('hd074', 'sp010', 10, 15000, N'C?p', 1350, 15000);
INSERT INTO InvoiceDetail VALUES ('hd074', 'sp033', 1,198000, N'Gói', 19800, 198000);
INSERT INTO InvoiceDetail VALUES ('hd075', 'sp015', 1, 32000, N'Cái', 2880, 32000);
INSERT INTO InvoiceDetail VALUES ('hd075', 'sp033', 1,198000, N'Gói', 19800, 198000);
INSERT INTO InvoiceDetail VALUES ('hd076', 'sp054', 1, 55000, N'Cái', 5500, 55000);
INSERT INTO InvoiceDetail VALUES ('hd076', 'sp021', 1, 25000, N'Chai', 2250, 25000);
INSERT INTO InvoiceDetail VALUES ('hd076', 'sp033', 1, 220000, N'Gói', 22000, 220000);
INSERT INTO InvoiceDetail VALUES ('hd077', 'sp022', 5, 12000, N'Gói', 6000, 60000);
INSERT INTO InvoiceDetail VALUES ('hd078', 'sp049', 1, 35000, N'B?', 3150, 35000);
INSERT INTO InvoiceDetail VALUES ('hd079', 'sp032', 2, 36000, N'Lon', 7200, 72000);
INSERT INTO InvoiceDetail VALUES ('hd079', 'sp041', 1, 50000, N'Lon', 5000, 50000);
INSERT INTO InvoiceDetail VALUES ('hd080', 'sp037', 1, 38500, N'Lon', 3850, 38500);
THỰC HÀNH VÀ LIÊN HỆ
Tạo và quản lý người dùng
4.2.1 Tạo tài khoản người dùng mới ( 4 người)
CREATE USER quanly IDENTIFIED BY quanly123;
CREATE USER thungan IDENTIFIED BY thungan123;
CREATE USER banhang1 IDENTIFIED BY banhang1;
CREATE USER banhang2 IDENTIFIED BY banhang2;
4.2.2 Gán quyền cho người dùng
Quản lý: đăng nhập, SELECT, INSERT, UPDATE, DELETE trên tất cả các bảng và thực thi trên các thủ tục.
GRANT CREATE SESSION TO quanly;
GRANT SELECT, INSERT, UPDATE, DELETE ON ProductCategory TO quanly;
GRANT SELECT, INSERT, UPDATE, DELETE ON Suppliers TO quanly; GRANT SELECT, INSERT, UPDATE, DELETE ON Products TO quanly;
GRANT SELECT, INSERT, UPDATE, DELETE ON Promotion TO quanly;
GRANT SELECT, INSERT, UPDATE, DELETE ON PromotionDetail TO quanly;
The user 'quanly' has been granted comprehensive permissions, including SELECT, INSERT, UPDATE, and DELETE, on the following database tables: Customers, Department, Employee, and Invoice.
GRANT SELECT, INSERT, UPDATE, DELETE ON InvoiceDetail TO quanly; GRANT EXECUTE ON your_procedure_name TO quanly;
Gán quyền DBA (Database Administrator) cho quản lý: GRANT DBA TO quanly
Nhân viên thu ngân: đăng nhập, SELECT (Invoice và InvoiceDetail), INSERT
(Invoice và InvoiceDetail ), UPDATE (Invoice và InvoiceDetail)
GRANT CREATE SESSION TO thungan;
GRANT SELECT ON Invoice TO thungan;
GRANT SELECT ON InvoiceDetail TO thungan;
GRANT INSERT ON Invoice TO thungan;
GRANT INSERT ON InvoiceDetail TO thungan;
GRANT DELETE ON Invoice TO thungan;
GRANT DELETE ON InvoiceDetail TO thungan;
Nhân viên bán hàng: đăng nhập, SELECT (Products và Customers)
GRANT CREATE SESSION TO banhang1;
GRANT SELECT ON Products TO banhang1;
GRANT SELECT ON Customers TO banhang1;
GRANT CREATE SESSION TO banhang2;
GRANT SELECT ON Products TO banhang2;
GRANT SELECT ON Customers TO banhang2;
4.2.3 Tạo nhóm quyền và thêm người dùng vào nhóm
Tạo nhóm quyền: CREATE ROLE QuanLyRole;
Thêm người dùng vào nhóm: GRANT QuanLyRole TO quanly;
4.2.4 Phân quyền cho người dùng trong nhóm
GRANT SELECT, INSERT, UPDATE, DELETE ON ProductCategory TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Suppliers TO QuanLyRole; GRANT SELECT, INSERT, UPDATE, DELETE ON Products TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Promotion TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON PromotionDetail TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Customers TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Department TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Employee TO QuanLyRole;GRANT SELECT, INSERT, UPDATE, DELETE ON Invoice TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON InvoiceDetail TO QuanLyRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON Invoice TO ThuNganRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON InvoiceDetail TO ThuNganRole;
GRANT SELECT ON Products TO BanHangRole;
GRANT SELECT ON Customers TO BanHangRole;
REVOKE SELECT ON Customers FROM banhang2;
REVOKE SELECT ON Products FROM banhang2;
Xóa Quyền Từ Role: REVOKE BanHangRole FROM banhang2;
Đề xuất chiến lược và thực hiện nhiệm vụ sao lưu/ phục hồi dữ liệu
4.3.1 Chiến lược sao lưu (tạo các câu lệnh)
Tạo thư mục lưu trữ sao lưu:
CREATE DIRECTORY backup_directory AS '/path/to/your/backup/directory';
Tạo công việc sao lưu tự động:
The DBMS_SCHEDULER.create_job function is used to create an automated backup job named 'AUTO_BACKUP_JOB' This job is defined as a PLSQL_BLOCK and executes a data pump export job called 'EXPORT_JOB' for the 'EXPORT_SCHEMA' using the 'DATA_PUMP_DIR' It is scheduled to start at the current timestamp and is set to repeat daily at 1 AM, ensuring regular backups The job is enabled, allowing it to run as planned.
Kiểm tra các sao lưu đã tạo:
Bảng V$BACKUP_SET cung cấp thông tin chi tiết về các tập sao lưu.
Bảng USER_BACKUPS để xem thông tin về các sao lưu đã tạo bởi người dùng hiện tại.
Nếu có quyền DBA, có thể kiểm tra tất cả các sao lưu trong cơ sở dữ liệu bằng cách sử dụng bảng
Bảng V$BACKUP_PIECE cung cấp thông tin chi tiết về các phần của các tập sao lưu.
4.3.2 Thực hiện nhiệm vụ phục hồi
Phục hồi toàn bộ database từ sao lưu:
Tạo cơ sở dữ liệu mới:
Mở SQL Plus thực hiện: impdp username/password@new_db DIRECTORYckup_directoryDUMPFILEckup_file.dmp REMAP_SCHEMA=username:new_username
Với: username là tên đăng nhập SQL Plus password là mật khẩu đăng nhập SQL Plus new_db là tên cơ sở dữ liệu mới
Phục hồi đến một thời điểm cụ thể:
Kiểm tra tính năng Flashback đã được kích hoạt hay chưa.
SELECT FLASHBACK_ON FROM V$DATABASE;
Nếu kết quả trả về là YES thì tính năng đã được kích hoạt
Nếu kết quả trả về là NO thì cần kích hoạt tính năng Flashback: alter database flashback on;
Xác định thời điểm phục hồi:
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2023-12-21 12:12:12', 'YYYY-MM-DD HH24:MI:SS');
Phục hồi các đối tượng cụ thể: (VD: Bảng, thuộc tính)
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
SELECT table_name, flashback_on
FLASHBACK TABLE tên_bảng TO TIMESTAMP TO_TIMESTAMP('2023-12-
21 hh24:mi:ss', 'YYYY-MM-DD HH24:MI:SS');
Xác định thời điểm phục hồi cần thiết:
Xác định thời điểm hiện tại:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS CURRENT_TIMESTAMP FROM DUAL;
Lựa chọn thời điểm cần phục hồi:
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('yyyy-mm-dd hh24:mi:ss', 'YYYY-MM-DD HH24:MI:SS');
Với yyyy-mm-dd hh24:mm:ss là thời điểm mà mình muốn phục hồi đến
4.3.3 Sao lưu phục hồi thủ công
Tạo sao lưu bằng RMAN:
Kết nối với RMAN: Sử dụng câu lệnh rman target /
Tạo sao lưu đầy đủ: Dùng câu lệnh Backup database:
Xem danh sách các bản sao lưu:
Để đảm bảo tính toàn vẹn của cơ sở dữ liệu đã sao lưu, bạn cần kiểm tra rằng dữ liệu sao lưu là hợp lệ và có thể khôi phục mà không gặp vấn đề Sử dụng câu lệnh BACKUP VALIDATE DATABASE để thực hiện kiểm tra này.
Kết thúc phiên RMAN: Sử dụng câu lệnh EXIT;
Tất cả các bản sao lưu đã được lưu trong thư mục.
Kết nối với RMAN: Sử dụng câu lệnh rman target /
Chọn bản sao lưu: (Xem danh sách các bản sao lưu: Sử dụng câu lệnh LIST BACKUP;)
Chọn bản sao lưu thích hợp Như bài của nhóm mới chỉ có 1 bản sao lưu nên chọn luôn bản này
Chọn thời điểm phục hồi (nếu cần):
SET UNTIL TIME '2023-12-21 12:12:12'; – Có thể thay đổi thời gian tùy thích RESTORE DATABASE;
Thực hiện quá trình phục hồi:
Sử dụng câu lệnh: RUN {
Kiểm tra trạng thái phục hồi:
Sử dụng câu lệnh: SHOW RECOVERY;
Kiểm tra trạng thái phục hồi: SHOW RECOVERY;
Mở cơ sở dữ liệu với resetlogs: ALTER DATABASE OPEN RESETLOGS;
Sử dụng Enterprise Manager Express:
Truy cập EM Express: Sử dụng địa chỉ IP của máy hoặc tên máy chủ và cổng mà
EM Express đang lắng nghe để truy cập EM Express:
Để đăng nhập vào EM Express, hãy truy cập vào địa chỉ https://192.168.102.5:5500/em và sử dụng tên người dùng (username) cùng mật khẩu (password) của quản trị viên cơ sở dữ liệu.
Trang chủ EM Express cung cấp một bảng điều khiển tổng quan về cơ sở dữ liệu, hiển thị thông tin quan trọng như tình trạng hiện tại, mức tiêu thụ tài nguyên và các thống kê cần thiết.
Quản lý cơ sở dữ liệu trong EM Express cho phép bạn thực hiện nhiều tác vụ quan trọng như tạo bảng, chỉnh sửa dữ liệu, quản lý người dùng và thực hiện các câu lệnh SQL một cách hiệu quả.
Backup và Phục Hồi: EM Express cung cấp các tùy chọn để thực hiện sao lưu và phục hồi cơ sở dữ liệu (Huy, 2021)