Quan hệ trong mô hình quan hệ (P.1)

Quan hệ giữa các đối tượng

Quan hệ giữa các đối tượng là mối liên kết có thực giữa các đối tượng dựa trên một số nguyên tắc, ràng buộc có thể xuất hiện giữa các đối tượng với nhau. Quan hệ giữa các đối tượng là một khái niệm quan trọng của mô hình cơ sở dữ liệu quan hệ. Trong thực tế, rất hiếm các đối tượng đứng riêng rẽ một mình mà hầu như phải có ít nhất là một mối liên hệ nào đó với đối tượng khác. Ví dụ, giữa hai đối tượng: Khách hàngSản phẩm sẽ xuất hiện quan hệ: “khách hàng mua sản phẩm”. Thường thì quan hệ giữa các đối tượng rất đa dạng, có khi tưởng như chồng chéo nhau, nhưng thực ra giữa chúng đều có những nguyên tắc nhất định.

Chúng ta thử mô tả một số quan hệ có thể xuất hiện trong một tổ chức với các đối tượng quản lý:

  • “Phòng ban”, “Chức danh”, “Vị trí làm việc”, “Cá nhân”:
  • “Một cá nhân có thể đảm nhiệm một số vị trí làm việc”,
  • “Mỗi phòng ban sẽ có một hoặc nhiều vị trí làm việc”,
  • “Mỗi vị trí làm việc thường ứng với một chức danh quản lý nào đó”,
  • “Một cá nhân có thể có nhiều chức danh”,…

Mới đầu, chúng ta sẽ cảm thấy vướng mắc trước những quan hệ trông có vẻ chồng chéo và dường như không rõ ràng, nhưng khi chúng ta hiểu được đối tượng, nắm rõ được những ràng buộc giữa các đối tượng, việc mô tả lại những quan hệ đó sẽ trở nên đơn giản hơn. Đó cũng là một trong những công việc chính yếu của quá trình phân tích, thiết kế CSDL.

Có một số hình thức quan hệ giữa các đối tượng trong mô hình dữ liệu quan hệ, những hình thức quan hệ này thường được chúng ta mô tả bằng ngôn ngữ khá quen thuộc, ví như: “một người có thể có nhiều chức vụ”, “một công ty thì có một hoặc nhiều phòng ban”,…Các hình thức mô tả này rất quan trọng, bởi nó phản ánh được những nguyên tắc, ràng buộc giữa các đối tượng có thật trong thực tế. Giả sử có 2 đối tượng là A và B, trong quan hệ giữa 2 đối tượng này có thể sẽ xuất hiện một trong ba nguyên tắc như sau:

  • Một A chỉ có một B và B chỉ có một A, thường được gọi là quan hệ 1-1 (one-to-one)
  • Một A có thể có nhiều B, gọi là quan hệ 1-n (one-to-many)
  • Nhiều A có thể có nhiều B và nhiều B có thể có nhiều A, gọi là quan hệ n-n (many-to-many)

Cụm từ: “chỉ có” ở đây, chỉ là để minh họa cho ý nghĩa của các hình thức quan hệ, thực tế, những từ ngữ dùng để chỉ các nguyên tắc quan hệ giữa các đối tượng rất đa dạng và được thể hiện tùy theo điều kiện ngữ cảnh và yêu cầu quản lý thực tế.

Một số khái niệm và nguyên tắc quan hệ

Đối tượng liên quan (Participant).

Quan hệ không đứng một mình nó phải gắn với ít nhất một đối tượng, khi đó, những đối tượng được nối vào quan hệ được gọi là đối tượng liên quan. Ví dụ: Với quan hệ: “Khách hàng mua sản phẩm”, thì sẽ có ít nhất 2 đối tượng liên quan: “Khách hàng” và “Sản phẩm”.

  • Đối tượng liên quan trực tiếp: là đối tượng được nối kết trực tiếp với quan hệ. Ví dụ: 2 đối tượng: “Cá nhân” và “Tôn giáo” là 2 đối tượng liên quan trực tiếp với quan hệ “Cá nhân thuộc tôn giáo nào”.
  • Đối tượng liên quan gián tiếp: là đối tượng có sự liên lạc với quan hệ nhưng thông qua một hoặc nhiều đối tượng và quan hệ khác.

Cấp quan hệ (Degree)

Số lượng đối tượng liên quan trực tiếp với một quan hệ được gọi là cấp của quan hệ.

  • Quan hệ nhị phân (Binary Relationship)
  • Quan hệ tự liên kết (Unary Relationship)
  • Quan hệ ba đối tượng (Ternary Relationship)

Các hình thức quan hệ: gồm các hình thức: 1-1, 1-n, n-n

Quan hệ bắt buộc và tùy chọn:

Quan hệ bắt buộc là quan hệ cần phải có giữa hai đối tượng, hiểu đơn giản là thuộc tính định danh của đổi tượng này luôn phải có mặt trong đối tượng kia.

Quan hệ tùy chọn là thuộc tính định danh của đối tượng này có thể có mặt hoặc không trong đối tượng kia mà không ảnh hưởng lắm đến cấu trúc dữ liệu của đối tượng.

Đối tượng độc lập và đối tượng phụ thuộc

Q1

Ký hiệu mô tả quan hệ

Q2

Mô hình hóa các quan hệ

Quan hệ giữa hai đối tượng sau khi đã được mô tả, thì thuộc tính khóa của đối tượng này sẽ có mặt trong danh sách thuộc tính của đối tượng kia với tư cách là khóa ngoại.

Q3

Chúng ta thử xét các đối tượng và những quan hệ có thể có giữa chúng: Phòng ban (Departments),  Chức danh (Titles) và Nhân viên (Employees)

  • Một phòng ban có nhiều chức danh
  • Một chức danh có thể có ở nhiều phòng ban
  • Một người có thể làm việc ở nhiều phòng trong cùng một thời gian hoặc ở những thời điểm khác nhau
  • Một người có thể đảm nhiệm một hoặc nhiều chức danh khác nhau ở cùng một thời gian hoặc ở những thời điểm khác nhau.

Quá trình một nhân viên làm việc ở một phòng ban với một chức danh nào đó luôn mang tính lịch sử, nghĩa là theo thời gian, có thể anh ta sẽ chuyển đến làm việc ở phòng khác với chức vụ khác, hoặc có thể không còn làm việc ở công ty nữa. Nhưng khoảng thời gian anh ta làm việc và những công việc của anh ta sẽ không mất đi mà vẫn còn đó. Vì thế, phải ghi nhận và lưu trữ được những thông tin liên quan đến quá trình làm việc của một nhân viên,…

Những quan hệ trên cùng với các ràng buộc thực tế, nếu mô tả bằng các câu văn, đọc lên, chúng ta có thể cảm thấy bối rối, Nhưng sẽ dễ hiểu hơn khi được diễn đạt bằng mô hình sau:

Z2

Với các đối tượng và quan hệ được mô tả theo lược đồ trên, những yêu cầu và ràng buộc mà chúng ta đã nêu đều được đáp ứng một cách rõ ràng thông qua hai đối tượng được mô tả thêm: Chức vụ (JobTitles – Chức danh gán cho một phòng ban nào đó thì thành chức vụ) và Vị trí làm việc (Postions – Nhân viên làm việc với chức vụ gì, nghĩa là nhân viên làm việc ở phòng nào, với chức danh gì, trong khoảng thời gian nào).

Một trong những ràng buộc có anh hưởng đến quá trình mô tả các đối tượng và quan hệ đó là vấn đề thời gian cùng với những trạng thái thay đổi của quan hệ theo thời gian. Trong thực tế, một nhân viên không thể tự dưng có mặt và làm việc trong công ty của bạn và hình thức làm việc của anh ta cũng có thể thay đổi: từ nhân viên thử việc sang làm việc chính thức, rồi thôi việc. Thôi việc rồi có khi anh này lại quay về làm việc,…Hay một ví dụ khác: tình trạng hôn nhân của một người phụ nữ có thể thay đổi theo thời gian như sau: chưa bao giờ lập gia đình, có chồng, ly hôn, góa phụ, có chồng lần nữa,… Có rất nhiều sự thay đổi tương tự như thế, nhiệm vụ của việc mô hình hóa các đối tượng và quan hệ, không chỉ là chỉ ra các đối tượng, mô tả quan hệ, ràng buộc giữa các đối tượng tại một thời điểm mà cần phải xét chúng trong những khoảng thời gian, không gian thực tế.

Quay lại ví dụ về các trạng thái công việc của một người: Chưa làm việc -> Tham gia ứng tuyển -> Thử việc -> Làm việc chính thức -> Nghỉ việc. Chúng ta có thể mô tả sự biến đổi trạng thái đó bằng mô hình thay đổi sau:

Q4

Với sơ đồ mô tả các trạng thái thay đổi tình trạng làm việc của một cá nhân như trên, chúng ta có thể dễ dàng nắm rõ hơn là việc mô tả chúng bằng những câu văn dài dòng. Theo đó, mỗi đường thẳng đứng từ hình chữ nhật nhằm chỉ ra một giá trị có thực của trạng thái. Các đoạn thẳng có mũi tên nối giữa các trạng thái thể hiển cho nội dung khiến cho sự thay đổi xảy ra…

 

Mai Thế Hùng

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s