Mối quan hệ giữa các bảng trong Mô hình Dữ liệu

Lưu ý: Chúng tôi muốn cung cấp cho bạn nội dung trợ giúp mới nhất ở chính ngôn ngữ của bạn, nhanh nhất có thể. Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Vui lòng cho chúng tôi biết ở cuối trang này rằng thông tin có hữu ích với bạn không? Dưới đây là bài viết bằng Tiếng Anh để bạn tham khảo dễ hơn.

Trình duyệt của bạn không hỗ trợ video. Hãy cài đặt Microsoft Silverlight, Adobe Flash Player hoặc Internet Explorer 9.

Thêm nhiều power để phân tích dữ liệu của bạn bằng cách tạo mối quan hệ amogn bảng khác nhau. Mối quan hệ là kết nối giữa hai bảng có chứa dữ liệu: một cột trong mỗi bảng là cơ sở cho mối quan hệ. Để thấy vì sao mối quan hệ là có ích, hãy tưởng tượng bạn theo dõi dữ liệu về đơn đặt hàng của khách hàng trong công ty của bạn. Bạn có thể theo dõi tất cả dữ liệu trong một bảng duy nhất có cấu trúc như thế này:

CustomerID

Name

Email

DiscountRate

OrderID

OrderDate

Sản phẩm

Số lượng

1

Ashton

chris.ashton@contoso.com

,05

256

07-01-2010

Kỹ thuật số Nhỏ gọn

11

1

Ashton

chris.ashton@contoso.com

,05

255

03-01-2010

Camera SLR

15

2

Jaworski

michal.jaworski@contoso.com

,10

254

03-01-2010

Budget Movie-Maker

27

Các phương pháp này có thể hiệu quả, nhưng nó cũng lưu trữ nhiều dữ liệu dư thừa, chẳng hạn như địa chỉ email của khách hàng cho mọi đơn hàng. Việc lưu trữ không gây tốn kém nhiều, nhưng nếu địa chỉ email thay đổi, bạn phải đảm bảo cập nhật mọi hàng cho khách hàng đó. Một giải pháp cho vấn đề này là tách dữ liệu thành nhiều bảng và định nghĩa mối quan hệ giữa những bảng này. Đây là phương pháp được dùng trong cơ sở dữ liệu quan hệ như SQL Server. Ví dụ, cơ sở dữ liệu mà bạn nhập vào có thể biểu diễn dữ liệu đơn hàng bằng ba bảng quan hệ:

Khách hàng

[CustomerID]

Tên

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

,05

2

,10

Đơn hàng

[CustomerID]

OrderID

OrderDate

Sản phẩm

Số lượng

1

256

07-01-2010

Kỹ thuật số Nhỏ gọn

11

1

255

03-01-2010

Camera SLR

15

2

254

03-01-2010

Budget Movie-Maker

27

Mối quan hệ tồn tại trong mô hình dữ liệu — bạn tạo một cách rõ ràng, hoặc một mà Excel tự động tạo ra thay mặt bạn khi bạn đồng thời nhập nhiều bảng. Bạn cũng có thể dùng bổ trợ Power Pivot để tạo hoặc quản lý mô hình. Xem Tạo Mô hình Dữ liệu trong Excel để biết chi tiết.

Nếu bạn dùng bổ trợ Power Pivot để nhập các bảng từ cùng một cơ sở dữ liệu, Power Pivot có thể phát hiện mối quan hệ giữa các bảng dựa trên các cột có trong [ngoặc vuông] và bạn có thể tạo lại những mối quan hệ này trong Mô hình Dữ liệu được xây dựng ngầm. Để biết thêm thông tin, hãy xem Tự động Phát hiện và Suy luận Mối quan hệ trong bài viết này. Nếu bạn nhập các bảng từ nhiều nguồn, bạn có thể tạo các mối quan hệ thủ công như được mô tả trong Tạo mối quan hệ giữa hai bảng.

Các mối quan hệ được dựa trên các cột trong từng bảng chứa cùng dữ liệu. Ví dụ, bạn có thể liên kết bảng khách hàng với một bảng đơn hàng nếu mỗi chứa cột có lưu trữ một ID khách hàng. Trong ví dụ này, các cột có tên giống nhau, nhưng đây không phải là yêu cầu. Một cột có thể là CustomerID và cột kia là CustomerNumber, chỉ cần tất cả các hàng trong bảng Orders chứa ID mà cũng được lưu trữ trong bảng Customers.

Trong một cơ sở dữ liệu quan hệ, không có một số loại phím. Phím thông thường là cột với thuộc tính đặc biệt. Hiểu mục đích của từng khóa có thể giúp bạn quản lý Mô hình Dữ liệu nhiều bảng cung cấp dữ liệu cho PivotTable, PivotChart hoặc Power View.

Mặc dù không có nhiều loại phím, đây là quan trọng nhất cho mục đích của chúng tôi ở đây:

  • Khóa chính: dạng duy nhất một hàng trong bảng, chẳng hạn như CustomerID trong bảng khách hàng .

  • Khóa thay thế ứng viên phím (hoặc): cột không phải là khóa chính là duy nhất. Ví dụ, bảng Employees có thể lưu trữ ID nhân viên và số bảo hiểm xã hội, cả hai đều mang tính duy nhất.

  • Khóa ngoại: cột tham chiếu đến một cột duy nhất trong một bảng khác, chẳng hạn như CustomerID trong bảng đơn hàng , tham chiếu đến CustomerID trong bảng khách hàng.

Trong Mô hình Dữ liệu, khóa chính hoặc khóa thay thế được gọi là cột quan hệ. Nếu bảng có cả khóa chính và khóa thay thế, bạn có thể dùng một trong hai khóa này làm cơ sở cho mối quan hệ của bảng. Khóa ngoài được gọi là  cột nguồn hay chỉ là cột. Trong ví dụ của chúng tôi, mối quan hệ nào được xác định giữa CustomerID trong bảng đơn hàng (cột) và ID khách hàng trong bảng khách hàng (cột tra cứu). Nếu bạn nhập dữ liệu từ cơ sở dữ liệu quan hệ, theo mặc định Excel chọn khóa ngoài từ một bảng và khóa chính tương ứng từ bảng kia. Tuy nhiên, bạn có thể dùng bất kỳ cột nào có giá trị duy nhất cho cột tra cứu.

Mối quan hệ giữa một khách hàng và một thứ tự là quan hệ một-nhiều. Mọi khách hàng có thể có nhiều đơn hàng, nhưng một đơn hàng không thể có nhiều khách hàng. Quan hệ bảng quan trọng khác là một đối một. Trong ví dụ của chúng tôi ở đây, bảng CustomerDiscounts , xác định một mức chiết khấu duy nhất cho mỗi khách hàng, có mối quan hệ một-một bảng khách hàng.

Bảng này hiển thị mối quan hệ giữa ba bảng(khách hàng, CustomerDiscountsđơn hàng):

Mối quan hệ

Loại

Cột Tra cứu

Cột

Customers-CustomerDiscounts

một với một

Customers.CustomerID

CustomerDiscounts.CustomerID

Khách hàng-Đơn hàng

một với nhiều

Customers.CustomerID

Orders.CustomerID

Lưu ý: Mô hình Dữ liệu không hỗ trợ mối quan hệ nhiều-đến-nhiều. Một ví dụ về mối quan hệ nhiều-đến-nhiều là mối quan hệ trực tiếp giữa Products và Customers, ở đó một khách hàng có thể mua nhiều sản phẩm và cùng một sản phẩm có thể có nhiều khách hàng mua.

Sau khi đã tạo bất kỳ mối quan hệ, Excel thường phải tính toán lại bất kỳ công thức sử dụng cột từ bảng trong mối quan hệ mới được tạo. Việc xử lý có thể mất thời gian, tùy thuộc vào lượng dữ liệu và độ phức tạp của mối quan hệ. Để biết thêm chi tiết, hãy xem Tính toán lại công thức.

Mô hình Dữ liệu có thể có nhiều mối quan hệ giữa hai bảng. Xây dựng các phép tính chính xác, Excel cần một đường dẫn duy nhất từ một bảng đến tiếp theo. Vì vậy, chỉ một mối quan hệ giữa từng cặp bảng hoạt động tại một thời điểm. Mặc dù những người khác sẽ không hoạt động, bạn có thể chỉ định một mối quan hệ không hoạt động trong công thức và truy vấn.

Trong dạng xem sơ đồ, mối quan hệ hiện hoạt là đường liền và những người không hoạt động là đường nét đứt. Ví dụ, trong AdventureWorksDW2012, bảng DimDate chứa một cột DateKey, có liên quan đến ba cột khác nhau trong bảng FactInternetSales: OrderDate, vícột ShipDate. Nếu mối quan hệ hoạt động giữa DateKey và OrderDate, đó là mối quan hệ mặc định trong các công thức trừ khi bạn chỉ định mối quan hệ khác.

Có thể tạo mối quan hệ khi đáp ứng các yêu cầu sau đây:

Tiêu chí

Mô tả

Mã định danh Duy nhất cho Từng Bảng

Mỗi bảng phải có một cột đơn định danh duy nhất từng hàng trong bảng. Cột này thường được gọi là khóa chính.

Cột Tra cứu Duy nhất

Các giá trị dữ liệu trong cột tra cứu phải mang tính duy nhất. Nói cách khác, cột đó không được chứa các mục trùng lặp. Trong Mô hình Dữ liệu, chuỗi null và rỗng tương đương với chuỗi trống, đó là giá trị dữ liệu riêng biệt. Điều này có nghĩa là bạn không thể có nhiều giá trị null trong cột tra cứu.

Loại Dữ liệu Tương thích

Các kiểu dữ liệu của cột nguồn và cột tra cứu phải tương thích với nhau. Để biết thêm thông tin về các kiểu dữ liệu, hãy xem kiểu dữ liệu được hỗ trợ trong mô hình dữ liệu.

Trong Mô hình Dữ liệu, bạn không thể tạo mối quan hệ bảng nếu là khóa kết hợp. Bạn cũng bị giới hạn chỉ tạo các mối quan hệ một-một và một-đến-nhiều. Các kiểu mối quan hệ khác không được hỗ trợ.

Cột Tra cứu và Khoá Tổng hợp

Khóa tổng hợp được tạo từ nhiều cột. Mô hình dữ liệu không thể sử dụng khoá tổng hợp: bảng phải luôn có chính xác một cột dạng duy nhất mỗi hàng trong bảng. Nếu bạn nhập các bảng có một mối quan hệ hiện có, dựa trên một khoá phức hợp, hướng dẫn nhập bảng trong Power Pivot sẽ bỏ qua mối quan hệ vì nó không được tạo trong mô hình.

Để tạo mối quan hệ giữa hai bảng có nhiều cột xác định các khoá chính và khoá ngoại, trước hết hãy kết hợp các giá trị để tạo một cột khóa duy nhất trước khi tạo mối quan hệ. Bạn có thể làm điều này trước khi bạn nhập dữ liệu, hoặc bằng cách tạo một cột được tính toán trong mô hình dữ liệu bằng cách dùng Power Pivot bổ trợ.

Mối quan hệ Nhiều-đến-Nhiều

Mô hình Dữ liệu không thể có mối quan hệ nhiều-đến-nhiều. Bạn không thể thêm một cách đơn giản bảng nối vào mô hình. Tuy nhiên, bạn có thể dùng các hàm DAX để mô hình hóa mối quan hệ nhiều-đến-nhiều.

Tự kết hợp và Vòng lặp

Mô hình Dữ liệu không cho phép mối quan hệ tự liên kết. Mối quan hệ tự liên kết là mối quan hệ lặp giữa một bảng và chính bảng này. Mối quan hệ tự liên kết thường được dùng để định nghĩa cấu trúc phân cấp mẹ-con. Ví dụ, bạn có thể liên kết bảng Employees với chính bảng này để tạo ra cấu trúc phân cấp để hiển thị chuỗi quản lý tại công ty.

Excel không cho phép tạo vòng lặp giữa các mối quan hệ trong sổ làm việc. Nói cách khác, không được phép có các tập hợp mối quan hệ sau.

Bảng 1, cột a đến Bảng 2, cột f    

Bảng 2, cột f đến Bảng 3, cột n    

Bảng 3, cột n đến Bảng 1, cột a    

Nếu bạn cố tạo một mối quan hệ sẽ dẫn đến việc tạo một vòng lặp, thao tác này sẽ tạo ra lỗi.

Một trong những lợi ích đối với việc nhập dữ liệu bằng bổ trợ Power Pivot là đôi khi Power Pivot có thể phát hiện ra các mối quan hệ và tạo mối quan hệ mới trong Mô hình Dữ liệu mà nó tạo trong Excel.

Khi bạn nhập nhiều bảng, Power Pivot tự động phát hiện bất kỳ mối quan hệ hiện có nào giữa các bảng. Đồng thời khi bạn tạo PivotTable, Power Pivot phân tích dữ liệu trong các bảng. Nó phát hiện các mối quan hệ có thể có chưa được xác định và đề xuất các cột thích hợp để đưa vào các mối quan hệ đó.

Thuật toán phát hiện sử dụng dữ liệu thống kê về giá trị và siêu dữ liệu của các cột để đưa ra các suy luận về xác suất của các mối quan hệ.

  • Các kiểu dữ liệu trong tất cả các cột liên quan phải tương thích với nhau. Tính năng phát hiện tự động chỉ hỗ trợ các kiểu dữ liệu số nguyên và văn bản. Để biết thêm thông tin về các kiểu dữ liệu, xem Các kiểu dữ liệu được hỗ trợ trong Mô hình Dữ liệu.

  • Để phát hiện thành công mối quan hệ, số khóa duy nhất trong cột tra cứu phải lớn hơn các giá trị trong bảng ở bên nhiều. Nói cách khác, cột khóa ở bên nhiều của mối quan hệ không được chứa bất kỳ giá trị nào không có trong cột khóa của bảng tra cứu. Ví dụ, giả sử bạn có bảng liệt kê các sản phẩm cùng với ID của chúng (bảng tra cứu) và bảng bán hàng liệt kê các giao dịch bán hàng cho từng sản phẩm (bên nhiều của mối quan hệ). Nếu các bản ghi bán hàng của bạn chứa ID của một sản phẩm không có ID tương ứng trong bảng Products, chương trình không thể tạo tự động mối quan hệ, nhưng bạn có thể tạo mối quan hệ theo cách thủ công. Để Excel phát hiện được mối quan hệ, trước tiên bạn cần cập nhật bảng tra cứu Product với ID của các sản phẩm bị thiếu.

  • Hãy đảm bảo tên cột khóa ở bên nhiều tương tự như tên cột khóa trong bảng tra cứu. Tên không cần là chính xác giống nhau. Ví dụ, trong một thiết đặt doanh nghiệp, bạn thường có các biến thể trên tên cột có chứa thiết phải cùng dữ liệu: Emp ID, ID nhân viên, ID nhân viên, EMP_ID, v.v.. Các thuật toán phát hiện ra tương tự như tên và gán một xác suất cao hơn cho các cột này có tên tương tự hoặc trùng khớp chính xác. Do đó, để tăng xác suất của việc tạo một mối quan hệ, bạn có thể tìm cách đổi tên cột trong dữ liệu mà bạn nhập vào điều gì đó tương tự như cột trong bảng hiện có của bạn. Nếu Excel tìm thấy nhiều mối quan hệ có thể xảy ra, thì nó không tạo mối quan hệ.

Thông tin này có thể giúp bạn hiểu vì sao không phải tất cả các mối quan hệ đều được phát hiện và những thay đổi với siêu dữ liệu--như tên trường và kiểu dữ liệu--có thể cải thiện kết quả phát hiện tự động mối quan hệ như thế nào. Để biết thêm thông tin, xem Khắc phục sự cố cho Mối quan hệ.

Tự động Phát hiện Tệp có Tên

Các mối quan hệ không được phát hiện tự động giữa các Bộ có Tên và các trường liên quan trong PivotTable. Bạn có thể tạo các mối quan hệ này theo cách thủ công. Nếu bạn muốn dùng tính năng phát hiện tự động mối quan hệ, hãy loại bỏ từng Bộ có Tên và thêm trực tiếp các trường riêng rẽ từ Bộ có Tên vào PivotTable.

Suy luận Mối quan hệ

Trong một số trường hợp, mối quan hệ giữa các bảng được ghép nối tự động. Ví dụ, nếu bạn tạo một mối quan hệ giữa hai bộ bảng dưới đây, một mối quan hệ được suy luận là tồn tại giữa hai bảng khác và mối quan hệ được thiết lập tự động.

Sản phẩm và Thể loại -- được tạo theo cách thủ công

Sản phẩm và Thể loại con -- được tạo theo cách thủ công

Sản phẩm và Thể loại con -- mối quan hệ được suy ra

Để ghép nối tự động các mối quan hệ, các mối quan hệ phải đi theo một chiều, như được hiển thị ở trên. Nếu có các mối quan hệ ban đầu giữa Sales và Products, và Sales và Customers, không có mối quan hệ nào được suy luận. Đây là vì mối quan hệ giữa Products và Customers là quan hệ nhiều-đến-nhiều.

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×