Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Xác định các mối quan hệ giữa các bảng trong cơ sở dữ liệu Microsoft Access

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:304466
Novice: Đòi hỏi kiến thức về giao diện người dùng trên đĩa đơn người dùng các máy tính.

Bài viết này chỉ áp dụng cho một cơ sở dữ liệu Microsoft Access (.mdb hay .accdb).
Đối với một phiên bản Microsoft Access 2000 của bài viết này, xem 304467.
Đối với một Microsoft truy cập 97 Phiên bản của bài viết này, xem 304468.
TÓM TẮT
Bài viết này mô tả cách để xác định các mối quan hệ trong một Microsoft Access cơ sở dữ liệu. Nó bao gồm các chủ đề sau:
  • Thế nào là bảng các mối quan hệ
  • Loại bảng các mối quan hệ
    • Các mối quan hệ một nhiều người
    • Các mối quan hệ rất nhiều rất nhiều
    • Một trong-một mối quan hệ
  • Làm thế nào để xác định các mối quan hệ giữa bàn
    • Làm thế nào để xác định một một trong rất nhiều hoặc một trong-một Mối quan hệ
    • Làm thế nào để xác định một Many-To-nhiều mối quan hệ
  • Toàn vẹn referential
  • Tầng Cập Nhật và xoá
  • Tham gia các loại
THÔNG TIN THÊM

Thế nào là bảng các mối quan hệ

Trong cơ sở dữ liệu quan hệ, mối quan hệ cho phép bạn để ngăn chặn dữ liệu dự phòng. Ví dụ, nếu bạn đang thiết kế cơ sở dữ liệu sẽ theo dõi thông tin về sách, bạn có thể có một bảng gọi là tiêu đề mà các cửa hàng thông tin về mỗi cuốn sách, chẳng hạn như tiêu đề của cuốn sách, ngày công bố, và nhà xuất bản. Đó cũng là thông tin mà bạn có thể muốn để lưu trữ về các nhà xuất bản, chẳng hạn như số điện thoại, địa chỉ và zip code của nhà xuất bản. Nếu bạn là lưu trữ tất cả các thông tin này trong tiêu đề, các nhà xuất bản của bảng số điện thoại sẽ được nhân đôi cho mỗi tiêu đề mà các nhà xuất bản in.

Một giải pháp tốt hơn là để lưu trữ thông tin nhà xuất bản chỉ một lần trong một bảng riêng biệt, các nhà xuất bản. Bạn sau đó sẽ đặt con trỏ trong các Tiêu đề bảng mà tài liệu tham khảo một mục trong bảng các nhà xuất bản.

Để Hãy chắc chắn rằng dữ liệu của bạn không phải ra khỏi đồng bộ, bạn có thể thi hành referential tích hợp giữa các tiêu đề và các nhà xuất bản bảng. Toàn vẹn referential các mối quan hệ giúp đảm bảo rằng thông tin trong một bảng phù hợp với thông tin trong khác. Ví dụ, mỗi tiêu đề trong tiêu đề bảng phải được kết hợp với một nhà xuất bản cụ thể trong bảng các nhà xuất bản. Một tiêu đề không thể được thêm vào các cơ sở dữ liệu cho một nhà xuất bản không tồn tại trong cơ sở dữ liệu.

Loại bảng các mối quan hệ

Một mối quan hệ làm việc bằng cách kết hợp dữ liệu trong cột chủ chốt, thường các cột có cùng tên trong cả hai bảng. Trong hầu hết trường hợp, các mối quan hệ phù hợp với các khóa chính từ một bảng, cung cấp một định danh duy nhất cho mỗi dòng, với một mục nhập trong chìa khóa nước ngoài trong bảng khác. Ví dụ, bán hàng có thể được kết hợp với các tiêu đề cụ thể được bán bằng cách tạo ra một mối quan hệ giữa cột title_id tiêu đề bảng (các khóa chính) và cột title_id bán hàng bảng (chìa khóa nước ngoài).

Có có ba loại của các mối quan hệ giữa các bảng. Loại mối quan hệ đó được tạo ra phụ thuộc vào cách các cột có liên quan được xác định.

Các mối quan hệ một nhiều người

Mối quan hệ một nhiều người là loại phổ biến nhất mối quan hệ. Trong loại mối quan hệ, một hàng trong bảng a có thể có nhiều người kết hợp các hàng trong bảng B, nhưng một hàng trong bảng b có thể có chỉ có một kết hợp hàng trong bảng A. Ví dụ, các nhà xuất bản và tiêu đề bảng có một một-cho-nhiều mối quan hệ: nhà xuất bản mỗi sản xuất nhiều tiêu đề, nhưng mỗi tiêu đề xuất phát từ nhà xuất bản chỉ có một.

Mối quan hệ một nhiều người được tạo ra nếu chỉ có một các cột có liên quan là một khóa chính hoặc có một hạn chế duy nhất.

Trong cận, phía chính quan trọng của mối quan hệ một nhiều người là biểu hiện bằng một biểu tượng chủ chốt. Phía nước ngoài chủ chốt của một mối quan hệ là biểu hiện bằng một vô cực biểu tượng.

Các mối quan hệ rất nhiều rất nhiều

Trong một mối quan hệ rất nhiều, rất nhiều, một hàng trong bảng a có thể có nhiều người phù hợp với các hàng trong bảng B, và ngược lại. Bạn tạo ra một mối quan hệ của xác định một bảng ba, gọi là một giao lộ bảng, mà khóa chính gồm các phím nước ngoài từ cả hai bảng a và bảng sinh Ví dụ, tác giả bàn và tiêu đề bảng có một mối quan hệ nhiều để nhiều người được xác định bởi một quan hệ một nhiều người từ mỗi của các bảng để bàn TitleAuthors. Khóa chính của bảng TitleAuthors là sự kết hợp của au_id cột (tác giả bảng khóa chính) và title_id cột (các tiêu đề của bảng khóa chính).

Một trong-một mối quan hệ

Một trong-một mối quan hệ, một hàng trong bảng a có thể có không có nhiều so với một kết hợp hàng trong bảng B, và ngược lại. Một mối quan hệ một-một là tạo ra nếu cả hai cột có liên quan là chìa khóa chính hoặc có duy nhất những hạn chế.

Loại mối quan hệ không phải là phổ biến vì hầu hết thông tin liên quan theo cách này sẽ là tất cả trong một bảng. Bạn có thể sử dụng một một trong-một mối quan hệ đến:
  • Phân chia một bảng với nhiều cột.
  • Cô lập một phần của một bảng cho lý do an ninh.
  • Lưu trữ dữ liệu đó là ngắn ngủi và có thể dễ dàng bị xóa bởi chỉ cần xóa bảng.
  • Lưu trữ thông tin chỉ áp dụng cho một tập hợp con của chính bảng.
Trong cận, phía chính quan trọng của mối quan hệ một-một là biểu hiện bằng một biểu tượng quan trọng. Phím bên nước ngoài cũng là biểu hiện bằng một biểu tượng quan trọng.

Làm thế nào để xác định các mối quan hệ giữa bàn

Khi bạn tạo ra một mối quan hệ giữa các bảng, các lĩnh vực có liên quan không cần phải có cùng tên. Tuy nhiên, các lĩnh vực có liên quan phải có cùng một dữ liệu loại trừ khi các lĩnh vực trọng điểm chính là một lĩnh vực AutoNumber. Bạn có thể phù hợp với một AutoNumber lĩnh vực với một số lĩnh vực chỉ khi các FieldSize bất động sản của cả hai lĩnh vực phù hợp là như nhau. Ví dụ, bạn có thể kết hợp một trường AutoNumber và một trường số nếu các FieldSize tài sản của cả hai lĩnh vực là số nguyên Long. Ngay cả khi kết hợp cả hai các lĩnh vực là số lĩnh vực, họ phải có cùng một FieldSize bất động sản thiết lập.

Làm thế nào để xác định một trong nhiều người hay một trong-một mối quan hệ

Để tạo ra một một-cho-nhiều hoặc một trong-một mối quan hệ, làm theo các bước sau:
  1. Hãy đóng bất kỳ bảng mà bạn đã mở. Bạn không thể tạo hoặc Sửa đổi các mối quan hệ giữa mở bảng.
  2. Vào năm 2002 truy cập hoặc trong Access 2003, hãy làm theo các bước sau:
    1. Nhấn F11 để chuyển sang cửa sổ cơ sở dữ liệu.
    2. Trên các Công cụ trình đơn, nhấp vào Mối quan hệ.
    Trong Access 2007, nhấp vào Mối quan hệ trong các Hiện/ẩn nhóm vào các Cơ sở dữ liệu công cụ tab.
  3. Nếu bạn đã không được xác định bất kỳ mối quan hệ trong của bạn cơ sở dữ liệu, các Hiển thị bảng hộp thoại sẽ tự động được hiển thị. Nếu bạn muốn thêm các bảng mà bạn muốn liên quan, nhưng các Hiển thị bảng hộp thoại không được hiển thị, bấm vào Hiển thị bảng trên các Mối quan hệ trình đơn.
  4. Bấm đúp vào tên của các bảng mà bạn muốn có liên quan, và sau đó đóng các Hiển thị bảng hộp thoại. Để tạo ra một mối quan hệ giữa một bảng và riêng của mình, thêm rằng bảng hai lần.
  5. Kéo các lĩnh vực mà bạn muốn liên quan từ một bảng để lĩnh vực liên quan trong bảng khác. Kéo nhiều lĩnh vực, giữ CTRL, bấm vào mỗi lĩnh vực, và sau đó kéo chúng.

    Trong hầu hết trường hợp, bạn kéo các tiểu học chính trường (trong đó sẽ được hiển thị trong văn bản in đậm) từ một bảng cho một tương tự trường (thường có cùng tên) gọi là chìa khóa nước ngoài trong bảng khác.
  6. Các Chỉnh sửa các mối quan hệ hộp thoại sẽ được hiển thị. Đảm bảo rằng các trường tên hiển thị trong hai cột là chính xác. Bạn có thể thay đổi chúng nếu cần thiết.

    Thiết lập tùy chọn mối quan hệ nếu cần thiết. Nếu bạn cần thông tin về một cụ thể mục trong các Chỉnh sửa các mối quan hệ hộp thoại hộp, bấm vào nút dấu hỏi và sau đó bấm các khoản mục. Các tùy chọn này sẽ được giải thích chi tiết sau này trong điều này bài viết.
  7. Nhấp vào Tạo để tạo mối quan hệ.
  8. Lặp lại bước 5 qua 8 cho mỗi cặp của các bảng mà bạn muốn liên quan.

    Khi bạn đóng các Chỉnh sửa các mối quan hệ hộp thoại, Microsoft Access sẽ hỏi nếu bạn muốn lưu các bố trí. Cho dù bạn lưu bố trí hay không, các mối quan hệ mà bạn tạo ra được lưu trong cơ sở dữ liệu.

    CHÚ Ý: Bạn có thể tạo ra các mối quan hệ trong truy vấn cũng như bảng. Tuy nhiên, tính toàn vẹn referential không áp dụng với truy vấn.

Làm thế nào để xác định một Many-To-nhiều mối quan hệ

Để tạo ra một mối quan hệ rất nhiều, rất nhiều, hãy làm theo các bước sau:
  1. Tạo hai bảng sẽ có một nhiều-để-nhiều mối quan hệ.
  2. Tạo ra một bảng thứ ba, gọi là bàn giao lộ, và sau đó thêm để việc bàn giao lộ mới các lĩnh vực với các định nghĩa tương tự như khóa chính các lĩnh vực từ mỗi hai bàn khác. Trong bảng giao lộ, tiểu học các lĩnh vực trọng điểm hoạt động như là chìa khóa nước ngoài. Bạn có thể thêm các lĩnh vực giao lộ bảng, cũng giống như bạn có thể đến bất kỳ bảng khác.
  3. Trong bảng giao lộ, thiết lập các khóa chính để bao gồm các lĩnh vực quan trọng tiểu học từ hai bàn khác. Ví dụ, trong một TitleAuthors giao lộ bảng, khóa chính sẽ được tạo thành từ OrderID và ProductID các lĩnh vực.

    LƯU Ý: Để tạo ra một khóa chính, hãy làm theo các bước sau:
    1. Mở một bảng trong thiết kế giao diện.
    2. Chọn trường hoặc các lĩnh vực mà bạn muốn định nghĩa như là khóa chính. Để chọn một lĩnh vực, bấm bộ hàng chọn cho mong muốn lĩnh vực.

      Để chọn nhiều lĩnh vực, giữ phím CTRL, và sau đó Nhấp vào công cụ chọn hàng cho mỗi lĩnh vực.
    3. Vào năm 2002 truy cập hoặc trong Access 2003, nhấp vào Khóa chính trên thanh công cụ.

      Trong Access 2007, nhấp vào Khóa chính trong các Công cụ nhóm vào các Thiết kế tab.

      Chú ý Nếu bạn muốn đặt hàng của các lĩnh vực trong một tiểu học nhiều lĩnh vực chìa khóa để thể khác với thứ tự của các lĩnh vực này trong bảng, hãy nhấp vào Chỉ số trên thanh công cụ để hiển thị các Chỉ số hộp thoại hộp, và sau đó sắp xếp lại trường cho chỉ mục được đặt theo tên PrimaryKey.
  4. Xác định mối quan hệ một nhiều giữa mỗi hai tiểu học bảng và bàn giao lộ.

Toàn vẹn referential

Referential toàn vẹn là một hệ thống các quy tắc mà Microsoft Access sử dụng để đảm bảo rằng mối quan hệ giữa các hồ sơ trong liên quan đến bảng là hợp lệ, và bạn không vô tình xóa hoặc thay đổi liên quan đến dữ liệu. Bạn có thể thiết lập tính toàn vẹn referential khi tất cả các điều kiện sau đây được đáp ứng:
  • Các trường phù hợp với từ bảng chính là một khóa chính hoặc có một chỉ mục duy nhất.
  • Các lĩnh vực có liên quan có dữ liệu cùng một loại. Có hai trường hợp ngoại lệ. Một lĩnh vực AutoNumber có thể liên quan đến một trường số với một FieldSize thiết đặt tài sản của số nguyên dài, và một lĩnh vực AutoNumber với một FieldSize thiết đặt tài sản của nhân rộng ID có thể liên quan đến một số trường với một FieldSize thiết đặt tài sản của nhân rộng ID.
  • Cả hai bảng thuộc về cơ sở dữ liệu Microsoft Access tương tự. Nếu các bảng được liên kết bảng, họ phải là bàn trong Microsoft Access định dạng, và bạn phải mở cơ sở dữ liệu trong đó chúng được lưu trữ để thiết lập referential tính toàn vẹn. Toàn vẹn referential không thể được áp dụng cho liên kết bảng từ cơ sở dữ liệu trong các định dạng khác.
Các quy tắc sau áp dụng khi bạn sử dụng referential toàn vẹn:

  • Bạn không thể nhập giá trị trong lĩnh vực chính nước ngoài các liên quan đến bảng mà không tồn tại trong khóa chính của bảng chính. Tuy nhiên, bạn có thể nhập một giá trị Null trong chìa khóa nước ngoài, xác định rằng các hồ sơ không liên quan gì. Ví dụ, bạn không thể có một đơn đặt hàng được phân công để một khách hàng mà không tồn tại, nhưng bạn có thể có một đơn đặt hàng được phân công để không ai bằng cách nhập một giá trị Null trong lĩnh vực CustomerID.
  • Bạn không thể xóa một hồ sơ từ một bảng chính nếu phù hợp với hồ sơ tồn tại trong một bảng có liên quan. Ví dụ, bạn không thể xoá một nhân viên ghi lại từ các nhân viên bảng nếu có những đơn đặt hàng được chỉ định cho nhân viên trong bảng đơn đặt hàng.
  • Bạn không thể thay đổi một giá trị khóa chính trong bảng chính, Nếu thế kỷ lục có liên quan đến hồ sơ. Ví dụ, bạn không thể thay đổi một nhân viên của ID trong bảng nhân viên nếu có các đơn đặt hàng được gán cho rằng nhân viên trong bảng đơn đặt hàng.

Tầng Cập Nhật và xoá

Đối với các mối quan hệ mà trong đó toàn vẹn referential thực thi, bạn có thể xác định xem bạn muốn truy cập vào Microsoft tự động thác Cập Nhật hoặc thác xóa hồ sơ liên quan. Nếu bạn thiết lập các tùy chọn, xóa và Cập Nhật đang hành bình thường sẽ được ngăn chặn bằng quy tắc toàn vẹn referential được cho phép. Khi bạn xóa bỏ hồ sơ hay thay đổi các giá trị quan trọng tiểu học trong một tiểu học bảng, Microsoft Access làm cho những thay đổi cần thiết để bàn liên quan đến bảo vệ tính toàn vẹn referential.

Nếu bạn bấm để chọn các Cascade Update lĩnh vực liên quan hộp kiểm tra khi bạn định nghĩa một mối quan hệ, bất kỳ thời gian mà bạn thay đổi khóa chính của một hồ sơ tại chính bàn, Microsoft Access tự động cập nhật các khóa chính với giá trị mới trong tất cả các hồ sơ liên quan. Ví dụ, nếu bạn thay đổi một khách hàng ID trong bảng khách hàng, các CustomerID field ở bảng đơn đặt hàng được cập nhật tự động cho mỗi một trong các mà khách hàng đơn đặt hàng do đó mối quan hệ không phải là bị hỏng. Microsoft Access Xếp hình thác bản cập nhật mà không hiển thị bất kỳ thư nào.

CHÚ Ý: Nếu khóa chính trong bảng chính là một lĩnh vực AutoNumber, lựa chọn các Cascade Update lĩnh vực liên quan hộp kiểm tra sẽ không có hiệu lực, bởi vì bạn không thể thay đổi các giá trị trong một lĩnh vực AutoNumber.

Nếu bạn chọn các Cascade xóa hồ sơ liên quan hộp kiểm tra khi bạn định nghĩa một mối quan hệ, bất kỳ thời gian mà bạn Xoá bản ghi trong bảng chính, Microsoft Access tự động xóa liên quan đến hồ sơ trong bảng có liên quan. Ví dụ, nếu bạn xóa một khách hàng thu âm từ bảng khách hàng, đơn đặt hàng của tất cả khách hàng tự động đã bị xóa khỏi bảng đơn đặt hàng (này bao gồm bản ghi trong bảng thứ tự chi tiết liên quan đến các bản ghi đơn đặt hàng). Khi bạn xóa bỏ hồ sơ từ một hình thức hoặc Datasheet với các Cascade xóa hồ sơ liên quan hộp kiểm chọn, Microsoft Access cảnh báo bạn rằng liên quan hồ sơ cũng có thể bị xóa bỏ. Tuy nhiên, khi bạn xóa bỏ hồ sơ bằng cách sử dụng một xóa truy vấn, Microsoft Access tự động xóa các hồ sơ liên quan đến bàn mà không cần hiển thị một cảnh báo.

Tham gia các loại

Có ba loại hình tham gia, như sau:

Lựa chọn 1 định nghĩa một tham gia bên trong. Một tham gia bên trong là tham gia một nơi mà các hồ sơ từ hai bảng được kết hợp trong một truy vấn kết quả chỉ khi các giá trị trong việc tham gia các lĩnh vực đáp ứng các điều kiện quy định. Trong một truy vấn, tham gia mặc định là một bên trong tham gia chọn hồ sơ chỉ khi các giá trị trong các lĩnh vực gia nhập phù hợp.

Tùy chọn 2 định nghĩa một tham gia bên ngoài bên trái. Một tham gia bên ngoài bên trái là một tham gia trong đó tất cả các hồ sơ từ phía bên trái của trái tham gia hoạt động trong các truy vấn Lệnh SQL được bổ sung vào các truy vấn kết quả, ngay cả khi không có không có phù hợp với các giá trị trong lĩnh vực gia nhập từ bảng bên phải.

Tùy chọn 3 định nghĩa một tham gia ngay bên ngoài. Tham gia ngay bên ngoài là một tham gia trong đó tất cả các bản ghi từ bên phải của các quyền tham gia hoạt động trong các truy vấn Lệnh SQL được bổ sung vào các truy vấn kết quả, ngay cả khi không có không có phù hợp với các giá trị trong lĩnh vực gia nhập từ bảng bên trái.
INF ACC2002 acc2003 acc2007

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 304466 - Xem lại Lần cuối: 09/17/2011 23:50:00 - Bản sửa đổi: 3.0

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbdesign kbdatabase kbhowto kbmt KB304466 KbMtvi
Phản hồi