Các mô hình kiến ​​trúc cơ sở dữ liệu: Các mô hình phân cấp, mạng và quan hệ

Một số mô hình bảng của kiến ​​trúc cơ sở dữ liệu như sau:

Quá trình xác định thiết kế khái niệm của các yếu tố dữ liệu và mối quan hệ liên kết của chúng được gọi là mô hình hóa dữ liệu. Cách tiếp cận ứng dụng truyền thống để tổ chức dữ liệu xây dựng các mô hình khác nhau cho mỗi tệp dữ liệu.

Hình ảnh lịch sự: ysma.gr/static/images/6_4_DBinput.jpg

Sự đa dạng về cách thức mà các yếu tố dữ liệu khác nhau được liên kết và lưu trữ trong các tệp dữ liệu làm cho các tệp này chỉ phù hợp với các ứng dụng mà chúng được tạo ban đầu. Trong thực tế, các chi tiết liên quan đến vị trí chính xác của các yếu tố dữ liệu khác nhau trong một tệp phải được ghi lại rất cẩn thận.

Bất kỳ thay đổi nào theo thứ tự các yếu tố dữ liệu khác nhau được đặt đều dẫn đến thay đổi trong các chương trình ứng dụng sử dụng tệp dữ liệu. Cách tiếp cận cơ sở dữ liệu sử dụng một mô hình dữ liệu chung cho toàn bộ cơ sở dữ liệu và chương trình người dùng không liên quan đến vị trí của một yếu tố dữ liệu cụ thể. Hệ thống quản lý cơ sở dữ liệu (DBMS) hoạt động như một giao diện giữa cơ sở dữ liệu và các chương trình người dùng.

DBMS lấy dữ liệu từ cơ sở dữ liệu và cung cấp cho chương trình người dùng. Tính năng này cung cấp lợi thế của sự độc lập dữ liệu trong cách tiếp cận cơ sở dữ liệu.

Về mặt khái niệm, có ba tùy chọn rộng liên quan đến các mô hình cơ sở dữ liệu. Đó là:

a. Mô hình phân cấp

b. Mô hình mạng

c. Mô hình quan hệ

(a) Mô hình phân cấp:

Mô hình này trình bày dữ liệu cho người dùng theo hệ thống phân cấp các yếu tố dữ liệu có thể được biểu diễn trong một loại cây đảo ngược. Trong một hệ thống xử lý đơn đặt hàng, một khách hàng có thể có nhiều hóa đơn được gửi cho anh ta và mỗi hóa đơn có thể có các yếu tố dữ liệu khác nhau. Do đó, cấp độ gốc của dữ liệu là khách hàng, cấp thứ hai là hóa đơn và cấp cuối cùng là các chi tiết đơn hàng như số hóa đơn, ngày, sản phẩm, số lượng, v.v.

Cấu trúc này là khá tự nhiên khi nhìn từ quan điểm sự kiện. Tuy nhiên, các cấp thấp hơn được sở hữu bởi các yếu tố dữ liệu cấp cao hơn và các yếu tố ở cùng cấp không có mối liên kết nào cả. Do đó, truy vấn như sản phẩm nào được mua bởi khách hàng nào, trong ví dụ trên, sẽ khó thực hiện trong cấu trúc phân cấp.

Các truy vấn về việc khách hàng đã mua sản phẩm nào sẽ thuận tiện. Do đó, nơi có nhiều mối quan hệ nhiều-nhiều giữa hai thực thể, mô hình này sẽ không phù hợp. Hình 9.4 cho thấy mô hình phân cấp dữ liệu cho ứng dụng xử lý đơn đặt hàng.

(b) Mô hình mạng:

Trong mô hình mạng của cơ sở dữ liệu, không có cấp độ và bản ghi có thể có bất kỳ số lượng chủ sở hữu nào và cũng có thể có quyền sở hữu một số bản ghi. Do đó, vấn đề nêu trên trong xử lý đơn đặt hàng sẽ không phát sinh trong mô hình mạng.

Vì không có đường dẫn xác định được xác định để truy xuất dữ liệu, số lượng liên kết là rất lớn và do đó cơ sở dữ liệu mạng rất phức tạp, chậm và khó thực hiện. Theo quan điểm về khó khăn trong việc thực hiện, mô hình mạng chỉ được sử dụng khi tất cả các tùy chọn khác được đóng lại.

Ví dụ điển hình của cơ sở dữ liệu mạng có thể là nhân viên và bộ phận mà anh ấy / cô ấy đã làm việc hoặc có thể làm việc trong tương lai. Hình 9.5 cho thấy mô hình mạng dữ liệu cho một hệ thống thông tin nhân viên.

(c) Mô hình quan hệ:

Mô hình cơ sở dữ liệu gần đây và phổ biến nhất là mô hình cơ sở dữ liệu quan hệ. Mô hình này được phát triển để khắc phục các vấn đề về độ phức tạp và tính không linh hoạt của hai mô hình trước đó trong việc xử lý cơ sở dữ liệu với mối quan hệ nhiều-nhiều giữa các thực thể.

Những mô hình này không chỉ đơn giản mà còn mạnh mẽ. Trong cơ sở dữ liệu quan hệ, mỗi tệp được coi là một tệp phẳng (bảng hai chiều) bao gồm nhiều dòng (bản ghi), mỗi bản ghi có (các) mục dữ liệu chính và không khóa. Mục chính là (các) thành phần dữ liệu xác định bản ghi. Hình 9.6 cho thấy các tệp và các trường mà mỗi bản ghi sẽ có trong hệ thống lập hóa đơn của khách hàng.

Trong các tệp này, các mục dữ liệu chính là id khách hàng, số hóa đơn và mã sản phẩm. Mỗi tệp có thể được sử dụng riêng để tạo báo cáo. Tuy nhiên, dữ liệu cũng có thể được lấy từ bất kỳ tổ hợp tệp nào vì tất cả các tệp này có liên quan với nhau với sự trợ giúp của các mục dữ liệu chính được chỉ định ở trên.

Đây là lợi thế cơ bản của mô hình cơ sở dữ liệu quan hệ cùng với sự đơn giản và mạnh mẽ của nó.

Mô hình quan hệ dựa rất nhiều vào công việc của EF Codd, người xác định các tính năng của cơ sở dữ liệu quan hệ tốt như sau:

a) Tất cả thông tin được biểu diễn một cách hợp lý dưới dạng bảng và việc truy cập dữ liệu có thể bằng tên của các trường. Do đó, thứ tự, vị trí hoặc liên kết tệp không phải là vấn đề quan tâm của người dùng.

b) Từ điển dữ liệu có thông tin liên quan đến cấu trúc cơ sở dữ liệu bao gồm kiểu dữ liệu; kích thước, vv, định nghĩa, mối quan hệ và quyền truy cập. Người dùng được ủy quyền có thể tìm hiểu về môi trường cơ sở dữ liệu và thay đổi môi trường bằng ngôn ngữ mô tả dữ liệu (DDL).

c) Ngôn ngữ thao tác dữ liệu (DML) có sẵn cho người dùng bao gồm các lập trình viên để tạo, chèn, sửa đổi, truy xuất, tổ chức và xóa bất kỳ phần nào của cơ sở dữ liệu. Các thao tác này có thể ở cấp độ bản ghi cũng như cho toàn bộ tệp, cho phép linh hoạt trong việc xác định quyền truy cập cho các loại người dùng khác nhau.

d) Bất kỳ sửa đổi nào trong cấu trúc cơ sở dữ liệu về mặt phân chia bảng theo chiều ngang hoặc chiều dọc sẽ không có bất kỳ tác động nào đến logic của chương trình sử dụng cơ sở dữ liệu. Sự độc lập dữ liệu này là lợi thế cốt lõi của mô hình cơ sở dữ liệu quan hệ.

e) Tính độc lập phân tán của dữ liệu là một tính năng khác của cơ sở dữ liệu quan hệ tốt. Các chương trình người dùng không yêu cầu bất kỳ thay đổi khi dữ liệu được phân phối hoặc phân phối lại lần đầu tiên. Vị trí vật lý thực tế của dữ liệu không quan trọng đối với người dùng miễn là trường đó xuất hiện trong từ điển dữ liệu dưới dạng cục bộ.

Như có thể được lưu ý trong hình 9.6, không có trường nào là phổ biến trong bất kỳ hai tệp nào ngoại trừ mục chính. Vì vậy, sự dư thừa dữ liệu có thể tránh được trong mô hình này. Với mục đích này, một quá trình chuẩn hóa dữ liệu được thực hiện trong khi thiết kế cấu trúc của cơ sở dữ liệu.