CHUẨN HÓA DỮ LIỆU

Một phần của tài liệu Giáo trình Lập trình web với PHP (Ngành/Nghề: Công nghệ thông tin) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019) (Trang 65 - 67)

1. THIẾT KẾ CSDL:

Trước khi tạo 1 cơ sở dữ liệu, chúng ta phải thiết lập cấu trúc của nó. Thiết kế CSDL cịn được gọi là thiết lập mơ hình dữ liệu, rất cần cho việc quản lý thông tin trong một thời gian dài. Bằng việc sử dụng q trình được gọi là chuẩn hóa dữ liệu, chúng ta sẽ loại được các phần dư thừa .

Chương này sẽ giới thiệu các kỹ thuật giúp đảm bảo tính bền vững, tính vận hành và tính hiện thực cho cơ sở dữ liệu.

Ví dụ: Trong quá trình quản lý điểm số của sinh viên, chúng ta cần các thông tin như sau:STT, Mã SV, Tên SV, Ngày Sinh, Nơi Sinh, Môn Học, Điểm số. Và khi nhập dữ liệu chúng ta có được bảng 2.3.1:

Mã SV

Tên SV Ngày Sinh Nơi Sinh Môn Học

12345 Nguyễn Văn A 12/01/1989 Vĩnh Long Tin Học, Triết, AV1 12348 Nguyễn Thị T 22/12/1989 Vĩnh Long AV1, Hóa, Lý 12349 Nguyễn Văn

18/10/1988 Quảng Nam Tin Học, Triết, AV1

 Chúng ta thấy rõ ràng 1 điều: Thông tin đang bị dư thừa mà trong khi đó trên thực tế chúng ta có thể hạn chế điều này rất nhiều nếu chúng ta thêm bảng mới.

2. QUAN HỆ:

Nói đến quan hệ là nói đến việc dữ liệu của bảng này có quan hệ như thế nào với dữ liệu trong một bảng khác. Trong quan hệ giữa hai bảng có thể có quan hệ một – một, một – nhiều, nhiều – nhiều.

Quan hệ được gọi là một – một khi một và chỉ một mục trong bảng A có quan hệ với duy nhất một mục trong bảng B. Ví dụ: một cơng dân Việt Nam chỉ có một và chỉ một số chứng minh nhân dân. Đồng thời, một số chứng minh chỉ được sử dụng cho một công dân Việt Nam. Khơng có trường hợp một cơng dân mang hai số chứng minh nhân dân và ngược lại, cũng khơng có một số chứng minh nhân dân được cấp cho hai công dân.

Quan hệ được gọi là một – nhiều khi một mục trong bảng A có quan hệ với nhiều mục trong bảng B. Ví dụ: giới tính nam – nữ có thể áp dụng cho nhiều người nhưng một người chỉ có thể mang một giới tính mà thơi. Quan hệ này là quan hệ phổ biến nhất.

Quan hệ được gọi là nhiều – nhiều khi một mục trong bảng A có thể áp dụng cho nhiều mục trong bảng B, và ngược lại, một mục trong bảng B cũng có thể áp dụng cho nhiều mục trong bảng A. Ví dụ: một album nhạc chứa các bài hát của nhiều nhạc sĩ và một nhạc sĩ cũng có thể tạo ra nhiều album. Đây là mối quan hệ phức tạp, chúng ta nên tránh các quan hệ như thế này. Nếu trong trường hợp bất khả kháng phải dùng đến quan hệ này thì chúng ta có thể biến nó thành hai quan hệ một nhiều, tức tạo thêm một bảng mới cùng có quan hệ một nhiều với hai bảng trên.

3. DẠNG CHUẨN HÓA THỨ 1 (1NF-FIRST NORMAL FORM):

Dạng chuẩn này quy định: Mỗi một cột chỉ chứa một giá trị. Một bảng có một cột chứa nhiều giá trị sẽ vi phạm dạng chuẩn này. Ví dụ: Trong trường điện thoại có thể chứa điện thoại bàn, điện thoại di động, số Fax… là vi phạm dang chuẩn 1.

Ví dụ: Tạo một cơ sở dữ liệu tuân theo dạng chuẩn 1NF: 1. Xác định các trường có thể chứa nhiều giá trị:

Ví dụ: Ta thấy các thơng tin trong bảng 2.3.1 có cột mơn học mang nhiều dữ liệu mà đáng ra mỗi môn học chỉ ở một dịng mà thơi.

2. Tách các trường vừa tìm thấy trong bước 1 thành các trường riêng biệt (xem bảng 2.3.2)

Bảng 2.3.2 tương thích với dạng chuẩn 1:

Mã SV Tên SV Ngày Sinh Nơi Sinh Môn Học 12345 Nguyễn Văn A 12/01/1989 Vĩnh Long Tin Học 12348 Nguyễn Thị T 22/12/1989 Vĩnh Long AV1 12349 Nguyễn Văn Tí 18/10/1988 Quảng

Nam Tin Học

Trong ví dụ trên ta có thể liệt kê nhiều môn học khác nhau bằng cách đưa các mẫu tin vào một bảng khác và cho quan hệ với bảng trên

3. Kiểm tra lại để đảm bảo các trường được tạo ra trong bước 2 đáp ứng được yêu cầu của dạng chuẩn 1.

4. DẠNG CHUẨN HÓA THỨ 2 (2NF-SECOND NORMAL FORM):

Để một cơ sở dữ liệu đáp ứng dạng chuẩn hai (2NF) thì trước tiên nó phải thỏa mãn dạng chuẩn 1NF . Dạng chuẩn 2NF yêu cầu tất cả các cột có giá trị giống nhau trong nhiều mẫu tin phải được chuyển qua bảng khác và quan hệ ngược lại với bảng hiện tại. Để chuyển cơ sở dữ liệu tương thích với dạng chuẩn 2NF, chúng ta cần tách các cột có vấn đề thành bảng riêng, trong đó các giá trị chỉ xuất hiện một lần. Trong thực tế, việc chuẩn hóa sẽ dán đến quá trình tạo các bảng cho đến khi các thơng tin dư thừa được loại bỏ hồn tồn.

Ví dụ: Tạo cơ sở dữ liệu tương thích với chuẩn 2NF theo các bước sau:

1. Xác định các trường có giá trị lập lại: Như ví dụ trên, chúng ta thấy trường Nơi Sinh và Môn Học lập lại nhiều lần trên nhiều mẫu tin.

2. Tạo các bảng mới như bảng 2.3.3:

Mã SV Tên SV Ngày Sinh Nơi Sinh Môn Học

Mã SV Tên SV Ngày Sinh Nơi Sinh Mã Môn Học Môn Học Mã SV Tên SV Ngày Sinh Nơi Sinh Mã Nơi Sinh Nơi Sinh Mã Môn Học Môn Học Mã SV Tên SV Ngày Sinh Nơi Sinh Môn Học Mã Nơi Sinh Nơi Sinh 3. Gán hoặc tạo khóa chính như bảng 2.3.4:

4. Tạo các khóa để liên kết 2 bảng như bảng 2.3.5:

5. DẠNG CHUẨN HÓA THỨ 3 (3NF-THIRD NORMAL FORM):

Để cơ sở đáp ứng dạng chuẩn 3 (3NF) thì trước tiên nó phải thỏa dạng chuẩn 2NF và các cột khơng phải là khóa đều phụ thuộc khóa chính. Nếu theo q trình chuẩn hóa 1NF và 2NF một cách chính xác thì bạn khơng cần phải thực hiện bất kỳ sự thay đổi nào trong giai đoạn này. Nhưng nếu bạn có thay đổi trong bước này thì đây là bước kiểm tra cuối cùng.

Ví dụ: Tiếp tục ví dụ ở trên thực hiện chuẩn hóa 3NF:

1. Xác định các trường không quan hệ trực tiếp với khóa chính. Như ta thấy trường Mơn Học khơng hề phụ thuộc với mã nơi sinh. 2. Tạo các bảng mới như hình 2.3.6:

3. Gán và tạo khóa chính

4. Tạo các khóa ngoại cần thiết để tạo ra quan hệ

Một phần của tài liệu Giáo trình Lập trình web với PHP (Ngành/Nghề: Công nghệ thông tin) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019) (Trang 65 - 67)

Tải bản đầy đủ (PDF)

(108 trang)