Mô hình dữ liệu là một tập các khái niệm và kí pháp dùng để mô tả dữ liệu, các mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức [7].
Như vậy, có thể xem như một mô hình dữ liệu có ba thành phần:
• Phần mô tả cấu trúc của CSDL;
• Phần mô tả các thao tác, định nghĩa các phép toán được phép trên dữ liệu;
• Phần mô tả các ràng buộc toàn vẹn để đảm bảo sự chính xác của dữ liệu.
1.2.2. Các mô hình dữ liệu cơ bản
Mô hình phân cấp và mô hình mạng được xếp vào thế hệ đầu của CSDL. Thế hệ thứ hai có mô hình quan hệ, mô hình thực thể liên kết. Các mô hình này được xem là mô hình cổ điển. Mô hình mới nhất được xếp vào thế hệ thứ ba của CSDL là mô hình hướng đối tượng, mô hình phân tán, mô hình suy diễn. Hình 1.15 mô tả các giai đoạn phát triển của mô hình dữ liệu.
Hình 1.15. Lịch sử phát triển của các mô hình dữ liệu
22
a. Mô hình dữ liệu phân cấp (Hierarchical Data Model)
Mô hình dữ liệu phân cấp được gọi tắt là mô hình phân cấp (Hierachical Model) hay mô hình CSDL dạng cây được đề xuất vào những năm 1960 – 1965 và được tổ chức theo cấu trúc từ trên xuống dưới. Mỗi nút tương ứng với một kiểu dữ liệu, có thể có một hoặc nhiều trường, mô tả thực thể và một nhánh cây tạo nên một liên kết giữa kiểu dữ liệu này với kiểu dữ liệu khác. Mỗi nút đều có một nút cha và nhiều nút con, trừ nút gốc là không có cha.
Tuy nhiên, mô hình chỉ thể hiện được quan hệ 1- n, tức là mô tả được trường hợp nút cha có nhiều nút con (ví dụ, một khoa thì có thể có nhiều lớp hay một lớp có thể có nhiều sinh viên), còn trường hợp ngược lại thì không (một lớp phải thuộc sự quản lý hành chính của một và chỉ một khoa). Điều này gây dư thừa dữ liệu và lãng phí không gian lưu trữ.
Điểm nổi bật trong các thủ tục truy xuất đến một đối tượng trong mô hình phân cấp là đường dẫn đi từ gốc đến phần tử cần xét trong cây phân cấp.
Hình 1.16 mô tả cây phân cấp của mô hình dữ liệu đối với CSDL Tổng điều tra số dân toàn quốc 0 giờ ngày 01 tháng 01 năm 1989.
Hình 1.16. Minh hoạ mô hình dữ liệu phân cấp [5]
23
Ví dụ 1.5. [5]. Trong cuộc Tổng điều tra số dân năm 1989, chương trình nhập phiếu điều tra được viết bằng ngôn ngữ CENS4 cho kết quả là các file dữ liệu nhập dạng văn bản được tổ chức như sau:
• Các dòng là các bản ghi có độ dài thay đổi.
• Có 6 loại bản ghi:
o Bản ghi đặc trưng cho tỉnh, thành phố gồm mã số tỉnh (thành phố), tên tỉnh (thành phố). Ví dụ: ‘02’ là mã số Thành phố Hồ Chí Minh.
o Bản ghi đặc trưng cho quận huyện gồm mã số tỉnh thành + mã số quận huyện, tên quận huyện trong tỉnh thành phố đó. Ví dụ: ‘0201’
là Mã số quận 1 của Thành phố Hồ Chí Minh.
o Bản ghi đặc trưng cho phường xã gồm mã số tỉnh thành + mã số quận huyện + mã số phường xã, tên phường xã thuộc quận huyện trong tỉnh thành phố đó. Ví dụ: ‘020101’ là Mã số phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh.
o Bản ghi đặc trưng cho địa bàn điều tra trong một phường xã. Ví dụ:
‘02010101’ là mã số địa bàn điều tra số 01 trong phường Bến nghé.
o Bản ghi đặc trưng cho hộ điều tra, gồm Mã số tỉnh + Mã số quận + Mã số phường + Mã số địa bàn + Số thứ tự hộ điều tra trong địa bàn, Tổng số nhân khẩu trong hộ, Trong đó: Nữ, Tổng số trẻ dưới 16 tuổi.
o Bản ghi đặc trưng cho nhân khẩu của hộ, gồm các thông tin xác định hộ điều tra, Số thứ tự nhân khẩu trong hộ, Quan hệ với chủ hộ (19), Giới tính (1, 2, 3), Tháng sinh, Năm sinh, Trình độ văn hóa, ...
Ở đây rõ ràng là một sự phân cấp trong tệp CSDL. Một tỉnh thành phố (thì) có nhiều quận (huyện), một quận (huyện) chỉ thuộc một tỉnh thành duy nhất. Một quận huyện (thì) có nhiều phường (xã) và một phường (xã) chỉ thuộc một quận (huyện) duy nhất. Mỗi phường (xã)được chia thành nhiều địa bàn điều tra, mỗi địa bàn chỉ thuộc một phường (xã) duy nhất...
b. Mô hình dữ liệu mạng (Network Data Model)
Mô hình dữ liệu mạng còn được gọi tắt là mô hình mạng hoặc mô hình lưới (Network Model) được đề xuất vào cuối những năm 1960 và được định nghĩa lại năm 1971; là mô hình thực thể - quan hệ trong đó các mối liên hệ bị hạn chế trong kiểu nhị phân và nhiều – một. Như vậy, ta có thể dùng một đồ thị có hướng cho các dữ liệu. Ở vị trí của các tập thực thể, mô hình mạng đưa ra kiểu bản ghi (record type). Một kiểu bản ghi là tên gán cho một tập các bản ghi (record). Bản ghi được cấu tạo bởi các trường (field) chứa các giá trị cơ bản như số nguyên, chuỗi kí tự,… Tập các tên trường và kiểu của chúng tạo nên khuôn dạng bản ghi (record format).
Kiểu bản ghi (Recorde Type) là kiểu đặc trưng cho một loại đối tượng riêng biệt. Ví dụ, trong quản lý đào tạo tại một trường đại học, đối tượng cần phản ánh của thế giới thực có thể là sinh viên, giảng viên, học phần, khoa, lớp,... do đó, có các loại
24
bản ghi đặc trưng cho từng đối tượng này. Trong đồ thị biểu diễn mô hình mạng mỗi kiểu bản ghi được biểu diễn bởi một hình chữ nhật, một thể hiện (Instance) của một kiểu bản ghi được gọi là bản ghi. Trong ví dụ 1.6. kiểu bản ghi sinh viên có các bản ghi là các sinh viên; kiểu bản ghi học phần có các bản ghi là các học phần được giảng dạy trong chương trình đào tạo...
Kiểu liên hệ (Set Type) là sự liên kết giữa một kiểu bản ghi chủ với một kiểu bản ghi thành viên. Trong đồ thị biểu diễn mô hình mạng mỗi kiểu liên hệ được biểu diễn bởi một hình bầu dục (oval) và sự liên kết giữa 2 kiểu bản ghi được thể hiện bởi các cung có hướng (các mũi tên) đi từ kiểu bản ghi chủ tới kiểu liên hệ và từ kiểu liên hệ tới kiểu bản ghi thành viên.
Trong kiểu liên kết người ta còn chỉ ra số lượng các bản ghi tham gia trong mối kết hợp. Có các kiểu liên hệ sau:
• 11 (Một – Một): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với đúng 1 bản ghi của kiểu bản ghi thành viên. Ví dụ, mỗi sinh viên viên thực hiện một và chỉ một khoá luận.
• 1N (Một – Nhiều): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với 1 hay nhiều bản ghi của kiểu bản ghi thành viên. Ví dụ, mỗi khoa có từ 1 đến nhiều lớp.
• N1 (Nhiều – Một): Nhiều bản ghi của kiểu bản ghi chủ kết hợp với đúng 1 bản ghi của kiểu bản ghi thành viên. Ví dụ, nhiều sinh viên cùng thuộc một lớp.
• Đệ quy (Recursive): Một kiểu bản ghi chủ cũng có thể đồng thời là kiểu bản ghi thành viên với chính nó. Ví dụ, một học phần (Cơ sở dữ liệu) là điều kiện tiên quyết của học phần khác (Hệ quản trị cơ sở dữ liệu).
Hình 1.17. Minh hoạ mô hình dữ liệu mạng
Ví dụ 1.6. Hình 1.17 biểu diễn một ví dụ về mô hình dữ liệu mạng đối với CSDL quản lý đào tạo của một trường. Trong đồ thị này, ta có
• 4 kiểu bản ghi: KHOA, LỚP, SINH VIÊN, KHOÁ LUẬN SINH VIÊN
LỚP KHOA
KHOÁ LUẬN
Gồm
Gồm Thực hiện
11
1N 1N
25
• 3 kiểu liên hệ: KHOA gồm 1 đến nhiều LỚP; LỚP gồm một hoặc nhiều SINH VIÊN, SINH VIÊN thực hiện có 1và chỉ 1 KHOÁ LUẬN;
Mô hình dữ liệu mạng tương đối đơn giản, dễ sử dụng nhưng nó không thích hợp trong việc biểu diễn các CSDL có quy mô lớn bởi trong một đồ thị có hướng khả năng diễn đạt ngữ nghĩa của dữ liệu, nhất là các dữ liệu và các mối liên hệ phức tạp của dữ liệu trong thực tế là rất hạn chế.
c. Mô hình quan hệ
CSDL quan hệ được xây dựng theo lý thuyết do E.F.Codd giới thiệu năm 1970, mô hình này dựa trên lý thuyết tập hợp và đại số quan hệ. Vì tính chất chặt chẽ của toán học về lí thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, mềm dẻo và từ năm 1980 đã trở thành mô hình được sử dụng rộng rãi.
Thuật ngữ “quan hệ” là do bảng dữ liệu hai chiều được Codd gọi là bảng quan hệ. Theo mô hình quan hệ, dữ liệu được thể hiện trong bảng hai chiều, gồm các dòng và cột. Các bảng gọi là các “quan hệ”, các dòng gọi là các “bộ” và cột là “thuộc tính”.
Theo cách nhìn của các mô hình trước thì mỗi dòng là một bản ghi, các thuộc tính cho biết ý nghĩa của các giá trị trong bản ghi.
CSDL quan hệ dùng các thuộc tính để liên kết dữ liệu giữa các bảng khác nhau thay vì dùng con trỏ để liên kết tập bản ghi như trong mô hình mạng.
Ta sẽ tìm hiểu kĩ về mô hình này trong chương 2 của tài liệu.
d. Mô hình thực thể mối quan hệ (Entity - RelationShip Model)
Mô hình dữ liệu thực thể - mối quan hệ do P.P.Chen đề xuất vào năm 1976. Mô hình này được xây dựng dựa trên nhận thức thế giới thực mà ta muốn phản ánh là một tập hợp các đối tượng cơ sở và các mối quan hệ (còn gọi là liên kết) giữa chúng. Mô hình này dùng các khái niệm thực thể (entity – E) và mối quan hệ (relationship – R).
Tập tất cả các thực thể thuộc cùng một kiểu và tập tất cả các mối quan hệ thuộc cùng một kiểu theo thứ tự được gọi là tập thực thể và tập mối quan hệ.
Ta sẽ tìm hiểu kĩ về mô hình này trong phần 1.3 của tài liệu.
e. Mô hình hướng đối tượng (Object Oriented Data Model)
Mô hình dữ liệu hướng đối tượng ra đời từ cuối những năm 80 và đầu những năm 90. Đây là loại mô hình tiên tiến nhất hiện nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương pháp lập trình hướng đối tượng, nó sử dụng các khái niệm như lớp (class), sự kế thừa (inheritance), kế thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi-inheritance). Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (Reusability).
26
Công nghệ CSDL hướng đối tượng dùng lược đồ gồm tập các “lớp”. Mỗi lớp được mô tả gồm tập các “thuộc tính” và “phương thức”. Mỗi đối tượng thuộc lớp đều mang đầy đủ các thuộc tính và phương thức của lớp đó.
Phương pháp tiếp cận hướng đối tượng trong mô hình dữ liệu mặc dù còn mới mẻ nhưng hiện nay đang được nhiều người quan tâm nghiên cứu phát triển và áp dụng.
Các hệ quản trị CSDL hướng đối tượng hiện nay vẫn chưa nhiều, một số còn chưa thuần nhất (nghĩa là việc lập trình là hướng đối tượng nhưng CSDL vẫn chủ yếu dựa trên mô hình quan hệ)