MS Access - Dữ liệu liên quan
Trong chương này, chúng ta sẽ hiểu những điều cơ bản về dữ liệu liên quan. Trước khi nói về và tạo mối quan hệ giữa các dữ liệu khác nhau, chúng ta hãy xem lại lý do tại sao chúng ta cần nó. Tất cả trở lại bình thường.
Bình thường hóa
Chuẩn hóa cơ sở dữ liệu, hay đơn giản là chuẩn hóa, là quá trình tổ chức các cột (thuộc tính) và bảng (quan hệ) của cơ sở dữ liệu quan hệ để giảm thiểu dư thừa dữ liệu. Đây là quá trình chia nhỏ dữ liệu trên nhiều bảng để cải thiện hiệu suất tổng thể, tính toàn vẹn và tuổi thọ.
Chuẩn hóa là quá trình tổ chức dữ liệu trong cơ sở dữ liệu.
Điều này bao gồm việc tạo bảng và thiết lập mối quan hệ giữa các bảng đó theo các quy tắc được thiết kế vừa để bảo vệ dữ liệu vừa để làm cho cơ sở dữ liệu linh hoạt hơn bằng cách loại bỏ sự dư thừa và phụ thuộc không nhất quán.
Bây giờ chúng ta hãy xem bảng sau có chứa dữ liệu, nhưng vấn đề là dữ liệu này khá dư thừa, làm tăng khả năng mắc lỗi chính tả và cách viết không nhất quán trong quá trình nhập dữ liệu.
CustID | Tên | Địa chỉ | Bánh quy | Định lượng | Giá bán | Toàn bộ |
---|---|---|---|---|---|---|
1 | Ethel Smith | 12 Main St, Arlington, VA 22201 S | Bánh quy socola | 5 | $ 2,00 | $ 10,00 |
2 | Tom Wilber | 1234 Oak Dr., Pekin, IL 61555 | Choc Chip | 3 | $ 2,00 | $ 6,00 |
3 | Ethil Smithy | 12 Main St., Arlington, VA 22201 | Bánh quy socola | 5 | $ 2,00 | $ 10,00 |
Để giải quyết vấn đề này, chúng ta cần cấu trúc lại dữ liệu của mình và chia nhỏ nó thành nhiều bảng để loại bỏ một số dư thừa như thể hiện trong ba bảng sau.
Ở đây, chúng tôi có một bảng dành cho Khách hàng, bàn thứ 2 dành cho Đơn đặt hàng và bàn thứ 3 dành cho Cookie.
Vấn đề ở đây là chỉ bằng cách chia nhỏ dữ liệu trong nhiều bảng sẽ không giúp cho việc biết dữ liệu từ một bảng này có liên quan như thế nào với dữ liệu trong bảng khác. Để kết nối dữ liệu trong nhiều bảng, chúng tôi phải thêm khóa ngoại vàoOrders bàn.
Xác định mối quan hệ
Mối quan hệ hoạt động bằng cách khớp dữ liệu trong các cột chính, thường là các cột có cùng tên trong cả hai bảng. Trong hầu hết các trường hợp, mối quan hệ khớp với khóa chính từ một bảng, khóa này cung cấp một mã định danh duy nhất cho mỗi hàng, với một mục nhập trong khóa ngoại trong bảng khác. Có ba loại mối quan hệ giữa các bảng. Loại mối quan hệ được tạo phụ thuộc vào cách xác định các cột liên quan.
Bây giờ chúng ta hãy xem xét ba loại mối quan hệ -
Mối quan hệ một-nhiều
Mối quan hệ một - nhiều là loại mối quan hệ phổ biến nhất. Trong kiểu quan hệ này, một hàng trong bảng A có thể có nhiều hàng phù hợp trong bảng B, nhưng một hàng trong bảng B chỉ có thể có một hàng phù hợp trong bảng A.
Ví dụ, bảng Khách hàng và Đơn đặt hàng có mối quan hệ một-nhiều: mỗi khách hàng có thể đặt nhiều đơn đặt hàng, nhưng mỗi đơn đặt hàng chỉ đến từ một khách hàng.
Mối quan hệ nhiều-nhiều
Trong mối quan hệ nhiều-nhiều, một hàng trong bảng A có thể có nhiều hàng phù hợp trong bảng B và ngược lại.
Bạn tạo mối quan hệ như vậy bằng cách xác định bảng thứ ba, được gọi là junction table, có khóa chính bao gồm các khóa ngoại từ cả bảng A và bảng B.
Ví dụ: bảng Khách hàng và bảng Cookie có mối quan hệ nhiều-nhiều được xác định bởi mối quan hệ một-nhiều từ mỗi bảng này đến bảng Đơn hàng.
Mối quan hệ một-một
Trong mối quan hệ một đối một, một hàng trong bảng A không thể có nhiều hơn một hàng phù hợp trong bảng B và ngược lại. Mối quan hệ một-một được tạo nếu cả hai cột liên quan đều là khóa chính hoặc có các ràng buộc duy nhất.
Kiểu quan hệ này không phổ biến vì hầu hết thông tin liên quan theo cách này sẽ nằm trong một bảng. Bạn có thể sử dụng mối quan hệ 1-1 để -
- Chia một bảng thành nhiều cột.
- Cô lập một phần của bảng vì lý do bảo mật.
- Lưu trữ dữ liệu tồn tại trong thời gian ngắn và có thể dễ dàng xóa bằng cách xóa bảng.
- Lưu trữ thông tin chỉ áp dụng cho một tập hợp con của bảng chính.