Lớp thành phần
• Multi-valued Attribute Class (MAC): một lớp đại
diện cho một thuộc tính đa giá trị
• Composite Attribute Class (CAC): một lớp đại diện cho một thuộc tính tổng hợp
Lớp quan hệ
• Regular Relationship Class (RRC): quan hệ giữa hai
Canonical Data Model (CDM)
Abstraction(abs): Một siêu lớp là trừu tượng (ví dụ, abs: = true) khi tất cả các đối tượng của nó là các thành viên của các đối tượng kiểu phụ của nó.
Attributes(Acdm): Một lớp C có một tập hợp các thuộc tính Acdm := {a | a := <an ,t, tag, l , n, d>}
Trong đó:
Thuộc tính a có tên an
Kiểu dữ liệu t và một tag (thẻ) Mỗi lớp a có thể có chiều dài l
Có thể có một giá trị mặc định d khi n chỉ ra có hay không phép Null (y | n)
Canonical Data Model (CDM)
Relationships (Rel): một lớp C có một tập các quan hệ Rel, mỗi quan hệ rel∈Rel giữa C và C’ định nghĩa trong C đại diện cho mối liên kết, tập hợp, hoặc kế thừa.
Rel := {rel | rel := <RelType, dirC, dir As, c, inv As>}
Trong đó:
• RelType: kiểu quan hệ (kết hợp, tập hợp, kế thừa)
• dirC: tên của lớp C’
• dirAs: biểu thị một tập hợp có chứa các tên thuộc tính đại diện cho các mối quan hệ từ phía C’
• invAs: biểu thị một tập hợp các thuộc tính nghịch đảo đại diện cho mối quan hệ nghịch đảo từ phía C, và c là hạn chế phần tử của rel từ phía C
Canonical Data Model (CDM)
Unique keys (UK): Một lớp C có thể có một bộ UK(s) được lưu giữ
UK := {δ | δ := {<ua, s>}}
Trong đó:
• δ là một khóa đại diện
• ua tên thuộc tính • s là số thứ tự