Aggregation là gì?

Phrase Programming

Aggregation là mối quan hệ mà ở đó thực thể có thể tồn tại độc lập với các thực thể khác. Ví dụ: một người nào đó có thể một địa chỉ hoặc không có địa chỉ, nếu người đó chết đi thì địa chỉ vẫn tồn tại. Bên dưới là code trong C# biểu thị mối quan hệ giữa lớp Person và Address.

public class Address  
{  
 . . .  
}  
public class Person  
{  
     private Address address;  
     public Person(Address address)  
     {  
         this.address = address;  
     }  
     . . .  
} 

Sau đó, Person sẽ được sử dụng như sau:

Address address = new Address();  
Person person = new Person(address);  

Hoặc

Person person = new Person( new Address() );  

Như bạn có thể thấy, Person không quản lý lifetime của Address. Nếu Person mất đi, Address vẫn tồn tại. Kịch bản này ánh xạ khá độc đáo với thế giới thực.

Noun Database
Kết tập

Trong mô hình thực thể liên kết (entity relationship model), kết tập (aggregation) là một quá trình trong đó một thực thể (entity) đơn lẻ không thể có ý nghĩa trong một mối liên kết (relationship) vì vậy mối liên kết của hai thực thể hoạt động như một thực thể. Tôi biết điều đó nghe có vẻ khó hiểu nhưng đừng lo lắng, ví dụ mà chúng ta sẽ lấy, sẽ xóa tan mọi nghi ngờ.

Trong thế giới thực, chúng ta biết rằng một người quản lý (manager) không chỉ quản lý nhân viên (employee) làm việc dưới quyền của họ mà còn phải quản lý cả dự án (project). Trong trường hợp như vậy nếu thực thể manager tạo mối liên kết manage với một mình thực thể employee hoặc project thì điều đó sẽ không có ý nghĩa gì vì anh ta phải quản lý cả hai. Trong những trường hợp này, mối liên kết của hai thực thể hoạt động như một thực thể. Trong ví dụ của chúng ta, mối liên kết Works-On giữa employee và project hoạt động như một thực thể có mối liên kết manage với thực thể manager.

Noun Database

Trong SQL, aggregation đề cập đến việc sử dụng các hàm tổng hợp (aggregate function) như AVG, SUM,...

Learning English Everyday