CHƯƠNG 1. GIỚI THIỆU VỀ NỘI DUNG ĐỀ TÀI 1.1 Tổng quan về đề tài Công ty Y cung cấp vải sỉ theo cuộn cho khách hàng của họ. Mỗi cuộn thuộc một danh mục cụ thể như: lụa, khaki, crewel, jacquard, lụa giả, và damask. Mỗi cuộn có một mã duy nhất trong một danh mục và một chiều dài.
Mỗi loại vải có một mã, tên, màu sắc, giá hiện tại (bao gồm giá và ngày giá đó được đưa ra), và số lượng (số cuộn của loại này trong kho). Công ty thu vải từ nhiều nhà cung cấp. Mỗi nhà cung cấp cung cấp nhiều loại vải khác nhau cho công ty. Tuy nhiên, mỗi loại chỉ xuất phát từ một nhà cung cấp duy nhất.
Cơ sở dữ liệu cần lưu trữ một số thông tin về nhà cung cấp như: một mã duy nhất, tên, địa chỉ, tài khoản ngân hàng, mã số thuế, số điện thoại.Khi nguồn vải được nhập vào kho, cần lưu trữ số lượng của mỗi loại, ngày nhập, giá mua vào cơ sở dữ liệu. Mỗi khách hàng có một mã duy nhất, tên (tên và họ), địa chỉ, số điện thoại, số nợ (nợ chưa thanh toán), và thanh toán theo đợt (bao gồm ngày và số tiền). Ví dụ, một khách hàng nợ $1000, được phép thanh toán một phần cho công ty (ví dụ, anh ấy hoặc cô ấy thanh toán $200 lần đầu, sau đó $300 cho lần tiếp theo, và cứ như vậy cho đến khi anh ấy hoặc cô ấy thoát khỏi nợ). Một khách hàng đặt hàng.
Mỗi đơn hàng chứa một hoặc nhiều cuộn và được xử lý bởi một nhân viên vào một ngày và giờ cụ thể. Một đơn hàng có một mã duy nhất và một tổng giá. Thông tin về nhân viên bao gồm một mã duy nhất, tên (tên và họ), giới tính, địa chỉ, và số điện thoại. Khi một khách hàng đặt hàng, hệ thống cần theo dõi tình trạng đơn hàng theo thời gian, bao gồm "mới", "đã đặt hàng", "đã thanh toán một phần", "đã thanh toán đầy đủ", hoặc "đã hủy".
Nếu đơn hàng bị hủy, nhân viên công ty cần nhập lý do cho việc hủy đó. 5 Hơn nữa, công ty muốn theo dõi lịch sử thanh toán của mỗi khách hàng cho mỗi đơn hàng anh ấy hoặc cô ấy đã đặt thành công. Trong trường hợp nợ nhiều hơn $2000, hệ thống phải đưa khách hàng đó vào chế độ "cảnh báo" và thông báo cho công ty. Nếu tình trạng này kéo dài hơn 6 tháng, số nợ sẽ được đánh dấu là "nợ xấu".
Công ty có các loại nhân viên khác nhau: quản lý, nhân viên đối tác, nhân viên vận hành và nhân viên văn phòng. Một nhân viên đối tác sẽ chăm sóc một hoặc nhiều nhà cung cấp trong khi một nhân viên văn phòng sẽ chịu trách nhiệm về một hoặc nhiều khách hàng. Một nhà cung cấp chỉ được chăm sóc bởi một nhân viên đối tác trong khi một khách hàng chỉ được chăm sóc bởi một nhân viên văn phòng. Nhân viên vận hành sẽ chịu trách nhiệm cho đơn đặt hàng của khách hàng.
Lưu ý: "Cuộn" là một đơn vị đo lường được sử dụng như một tiêu chuẩn trong ngành công nghiệp cho nhiều loại vật liệu từ gỗ đến bố, thường là các vật liệu được lưu trữ dưới dạng cuộn.2 Mục tiêu - Thiết kế một (E)ERD được đánh dấu đầy đủ theo mô tả về doanh nghiệp của bạn. Biểu đồ phải hiển thị các thực thể thích hợp (với các thuộc tính chính được gạch chân), mối quan hệ, tỷ lệ cardinality, và các lớp thành viên tùy chọn và bắt buộc. - Ánh xạ (E)ER diagram của bạn ở trên sang một lược đồ cơ sở dữ liệu quan hệ và xác định tất cả các ràng buộc không được hiển thị trong (E)ER diagram của bạn. - Xây dựng một ứng dụng với các yêu cầu sau: ● Tìm kiếm thông tin mua vật liệu: Kết quả tìm kiếm bao gồm tên, số điện thoại của các nhà cung cấp và thông tin về nguồn cung.
● Thêm thông tin cho một nhà cung cấp mới. ● Liệt kê chi tiết của tất cả các loại hàng mà một nhà cung cấp cung cấp. 6 ● Tạo một báo cáo cung cấp đầy đủ thông tin về đơn đặt hàng cho mỗi loại hàng của một khách hàng. - Chứng minh một trường hợp sử dụng hiệu suất chỉ mục.
- Giải quyết một trường hợp sử dụng bảo mật cơ sở dữ liệu. KIẾN THỨC NỀN TẢNG 2.1 Các kiến thức liên quan đến lược đồ ERD (Enhanced Entity-Relationship Diagram) Mô hình thực thể mối kết hợp (Entity Relationship Model) viết tắt là (ER) được CHEN giới thiệu vào năm 1976. Đây là một mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức quan niệm. Các thành phần của mô hình thực thể mối kết hợp: ● Thực thể (Entities): Thực thể là các đối tượng hoặc khái niệm có ý nghĩa độc lập trong hệ thống.
Chúng có thể là các đối tượng vật lý như người, sách, xe hơi, hoặc đối tượng trừu tượng như khách hàng, đơn hàng, sự kiện. Thực thể trong lược đồ ERD được biểu diễn bằng hình chữ nhật hoặc hình chữ nhật có 2 nét nếu là thực thể yếu. ● Quan hệ (Relationships): Quan hệ mô tả sự tương tác hoặc mối quan hệ giữa các thực thể trong hệ thống. Chúng xác định cách các thực thể liên kết với nhau và mối quan hệ giữa chúng.
Ví dụ, một quan hệ "Một đến Nhiều" (One-to-Many) giữa thực thể "Khách hàng" và "Đơn hàng" cho biết một khách hàng có thể có nhiều đơn hàng, trong khi một đơn hàng chỉ thuộc về một khách hàng. Quan hệ trong lược đồ ERD được biểu diễn bằng hình thoi hoặc hình thoi 2 nét nếu là quan hệ yếu. 7 ● Thuộc tính (Attributes): Thuộc tính là thông tin cụ thể về mỗi thực thể hoặc quan hệ. Chúng mô tả các đặc điểm, đặc tính hoặc thuộc tính của thực thể hoặc quan hệ đó.
Ví dụ, thuộc tính của thực thể "Sách" có thể bao gồm tiêu đề, tác giả, năm xuất bản, và ISBN. Các loại thuộc tính: - Thuộc tính đơn trị: mỗi thực thể có một giá trị nguyên tử duy nhất cho thuộc tính. - Thuộc tính phức hợp: thuộc tính có thể được tạo thành từ một số thành phần. - Thuộc tính đa trị: một thực thể có thể có nhiều giá trị cho thuộc tính đó.
- Thuộc tính dẫn xuất: thuộc tính đại diện cho một giá trị có thể tạo ra từ giá trị của một thuộc tính liên quan, hoặc từ một tập hợp các thuộc tính. - Thuộc tính phức tạp: vừa là thuộc tính phức hợp, vừa là thuộc tính đa trị. Khóa: một thuộc tính được gọi là khóa khi được dùng để phân biệt thể hiện của thực thể có cùng loại thực thể.Một thực thể có thể có nhiều hơn một khóa.Ngoài ra, EER bao gồm: - Subclasses and superclasses - Specialization and generalization - Category or union type - Attribute and relationship inheritance 8 2.2 Các kiến thức liên quan đến lược đồ quan hệ ● Bảng (Table): Mỗi bảng trong lược đồ quan hệ đại diện cho một thực thể hoặc một tập hợp các thực thể trong hệ thống. Mỗi bảng có một tên duy nhất và chứa các cột và dòng dữ liệu.
+ Ví dụ: trong một hệ thống quản lý sinh viên, có thể có một bảng "Students" đại diện cho thông tin sinh viên với các cột như "StudentID", "Name", "DateOfBirth", v. ● Cột (Column): Mỗi cột trong bảng đại diện cho một thuộc tính cụ thể của thực thể. Mỗi cột có tên duy nhất và định nghĩa kiểu dữ liệu của dữ liệu trong cột đó. + Ví dụ: trong bảng "Students", cột "StudentID" có thể là kiểu số nguyên, cột "Name" có thể là kiểu chuỗi ký tự, v.
● Khóa chính (Primary Key): Khóa chính là một hoặc nhiều cột trong bảng được sử dụng để duy nhất xác định mỗi hàng trong bảng. Khóa chính đảm bảo tính duy nhất và định danh cho dữ liệu trong bảng. + Ví dụ: trong bảng "Students", cột "StudentID" có thể được chọn làm khóa chính. ● Khóa ngoại (Foreign Key): Khóa ngoại là một cột trong bảng được sử dụng để thiết lập mối quan hệ giữa hai bảng.
Khóa ngoại tham chiếu đến khóa chính trong bảng gốc, tạo mối quan hệ giữa hai bảng. + Ví dụ:, trong bảng "Courses", có thể có một cột "StudentID" là khóa ngoại tham chiếu đến khóa chính "StudentID" trong bảng "Students". ● Ràng buộc (Constraint): Ràng buộc trong lược đồ quan hệ là các quy tắc được áp dụng để xác định các giới hạn và quy định về dữ liệu trong cơ sở dữ liệu. Các ràng buộc bao gồm: 9 - Ràng buộc duy nhất (Unique Constraint): Đảm bảo rằng giá trị trong một cột là duy nhất trong bảng.
- Ràng buộc khóa ngoại (Foreign Key Constraint): Đảm bảo rằng giá trị trong cột khóa ngoại phải tham chiếu đến giá trị hợp lệ trong bảng tham chiếu. - Ràng buộc kiểm tra (Check Constraint): Áp dụng một biểu thức hoặc điều kiện để kiểm tra tính hợp lệ của dữ liệu trong cột. - Ràng buộc khóa chính (Primary Key Constraint): Đảm bảo rằng giá trị trong cột khóa chính là duy nhất và không được phép để trống. ● Chuẩn hóa (Normalization): Hạn chế là quá trình tổ chức dữ liệu trong các bảng để đảm bảo tính nhất quán, hiệu quả và tránh sự trùng lặp dữ liệu.
Các hình thức chuẩn hóa giúp cải thiện cấu trúc và hiệu suất của cơ sở dữ liệu. Các dạng chuẩn hóa bao gồm Normal Form 1NF, 2NF, 3NF, BCNF và 4NF. ● Các bước chuyển từ lược đồ thực thể kết hợp sang lược đồ quan hệ: ○ Bước 1: Ánh xạ các loại thực thể mạnh ■ Thực thể --> Mối quan hệ ■ Thuộc tính của thực thể --> Thuộc tính của mối quan hệ ■ Khóa chính của thực thể --> Khóa chính của mối quan hệ ○ Bước 2: Ánh xạ các loại thực thể yếu (yếu) ■ Đối với mỗi loại thực thể yếu W trong lược đồ ER với loại thực thể chủ sở hữu E, tạo một mối quan hệ R và bao gồm tất cả các thuộc tính đơn (hoặc thành phần đơn của các thuộc tính hợp thành) của W. ■ Ngoài ra, bao gồm các thuộc tính khóa ngoại của R là các thuộc tính khóa chính của các mối quan hệ tương ứng với loại thực thể chủ sở hữu.
10 ■ Khóa chính của R là sự kết hợp giữa các khóa chính của thực thể mạnh sở hữu W và khóa chính của loại thực thể yếu W, nếu có.