• Thứ Hai, 31/10/2005 15:20 (GMT+7)

    Relational Database

    Định nghĩa: Relational Database - Cơ sở dữ liệu quan hệ (CSDLQH) cho phép dữ liệu được lưu trữ trong nhiều bảng ở dạng tập tin đơn lẻ có quan hệ với nhau bằng các trường dữ liệu dùng chung gọi là khoá. CSDLQH cho phép truy cập các báo cáo chuyên dụng (tạo ra bằng SQL) dễ dàng hơn và nâng cao tính tin cậy nhờ không bị dư thừa dữ liệu.

    Mọi người đều đã biết đến loại cơ sở dữ liệu đơn giản: niên giám điện thoại, catalogue sản phẩm để đặt hàng, các loại từ điển v.v... Có thể xây dựng và tổ chức cơ sở dữ liệu theo nhiều cách khác nhau: tập tin đơn lẻ, dạng cấu trúc phân cấp hay nối mạng, hoặc những bảng quan hệ. Trong những cấu trúc này, cơ sở dữ liệu quan hệ được dùng để quản lý dữ liệu của hầu hết các tổ chức.

    Cơ sở dữ liệu có thể được mô tả như là một bảng dữ liệu gồm các hàng và cột, tương tự như bảng tính. Mỗi hàng chứa một bản ghi; mỗi cột sẽ chứa toàn bộ các trường hợp cụ thể của từng hàng về một loại dữ liệu nào đó. Ví dụ, niên giám điện thoại sẽ gồm những cột chứa số điện thoại, tên khách hàng thuê bao và địa chỉ của thuê bao. Mỗi hàng sẽ chứa số điện thoại, tên và địa chỉ. Hình thức đơn giản này được gọi là tập tin đơn lẻ vì bản chất hai chiều của nó và thực tế là tất cả dữ liệu được lưu trong một tập tin đơn lẻ.

    Trường hợp lý tưởng là cơ sở dữ liệu chỉ có một cột và một định danh duy nhất hay còn gọi là khoá. Ví dụ trong sổ ghi số điện thoại của bạn có thể có rất nhiều người trùng tên nhưng sẽ không có trường hợp nào trùng số điện thoại. Ở đây, số điện thoại đóng vai trò như một khoá.

    Trên thực tế, mọi chuyện không hoàn toàn đơn giản như vậy. Hai hay nhiều người dùng chung một số điện thoại, vì thế số điện thoại sẽ xuất hiện ở hai hay nhiều nơi, gây nên tình trạng có nhiều hàng mang khoá không phải là duy nhất.

    Dữ liệu gây nên vấn đề

    Trong những cơ sở dữ liệu đơn giản nhất, mỗi bản ghi (record) được hoàn tất trong một hàng duy nhất, nghĩa là công ty điện thoại cần một cột riêng để lưu thông tin về tài khoản; nói chung là mỗi cột cho một loại thông tin cần thiết. Như vậy mỗi bản ghi sẽ phải có đủ tất cả các cột, cho dù hầu hết những cột này không được dùng đến. Điều đó cũng có nghĩa là cơ sở dữ liệu sẽ phải được thiết kế và xây dựng lại mỗi khi bạn muốn đưa ra một dịch vụ mới. Ví dụ khi thêm vào dịch vụ định danh người gọi, bạn phải xây dựng lại cơ sở dữ liệu và thêm cột mới.

    Vào thập niên 1960, chỉ có những công ty lớn nhất mới có đủ khả năng trang bị máy tính để quản lý dữ liệu. Hơn nữa, cơ sở dữ liệu được xây dựng theo các mô hình dữ liệu tĩnh và ngôn ngữ lập trình dạng thủ tục như Cobol nên cần có chi phí cao để bảo trì và không phải luôn đáng tin cậy. Ngôn ngữ lập trình thủ tục chỉ rõ trình tự các sự kiện mà máy tính phải đi qua để hoàn tất công việc. Cách thức lập trình theo kiểu tuần tự như vậy rất khó khăn, đặc biệt là nếu bạn cần thay đổi cấu trúc của cơ sở dữ liệu hay tạo một kiểu báo cáo mới.

    Sức mạnh của mối quan hệ

    E.F. Codd là nhà nghiên cứu tại phòng thí nghiệm ở San Jose của IBM, chính là người đã tạo nên và định nghĩa khái niệm cơ sở dữ liệu quan hệ trong công trình "Mô hình quan hệ của dữ liệu đối với các ngân hàng dữ liệu dùng chung quy mô lớn" (Communications of the ACM, 06/1970).

    Codd đã tạo nên một mô hình cho phép các nhà thiết kế chia nhỏ cơ sở dữ liệu thành những bảng riêng biệt nhưng có quan hệ với nhau, giúp tăng hiệu năng trong khi vẫn duy trì được hình thức của cơ sở dữ liệu nguyên thủy đối với người dùng cuối. Từ đó Codd được coi là cha đẻ của cơ sở dữ liệu quan hệ.

    CSDLQH làm việc theo cách thức sau: công ty điện thoại có thể xây dựng bảng chính của họ dựa trên khoá chính, ví dụ là số điện thoại và lưu nó cùng với thông tin căn bản khác về khách hàng. Họ cũng có thể định ra một bảng dữ liệu khác với những cột để chứa thông tin khoá chính, các dịch vụ giá trị gia tăng như định danh người gọi, cuộc gọi chờ, v.v... Họ cũng có thể định ra bảng dữ liệu khác để theo dõi hoá đơn với khoá chính là SốĐiệnThoại và dữ liệu hoá đơn trong mỗi hàng (xem minh họa).

    Người dùng cuối có thể dễ dàng lấy thông tin theo những hình thức mong muốn, dù nó được lưu trong những bảng dữ liệu khác nhau. Vì thế người phụ trách dịch vụ khách hàng của công ty điện thoại có thể truy xuất thông tin về hoá đơn khách hàng thuê bao cũng như hiện trạng của những dịch vụ đặc biệt hay thông tin chi trả mới nhất trên cùng một màn hình.

    Codd là người đầu tiên đặc tả 12 quy tắc cho CSDLQH, hầu hết những quy tắc này giải quyết các phương diện liên quan đến tính nhất quán dữ liệu, việc cập nhật và truy cập.

    Quy tắc 1, quy tắc thông tin, bắt buộc mọi thông tin trong CSDLQH phải được trình bày ở dạng tập hợp giá trị được lưu trong bảng; quy tắc 2, quy tắc truy cập bảo đảm, bắt buộc mỗi loại dữ liệu trong CSDLQH phải được truy cập bằng tên của bảng, khoá chính và tên của cột. Nói đơn giản là mọi dữ liệu được lưu ở dạng bảng và nếu bạn biết được tên bảng, khoá chính và tên cột có chứa dữ liệu bạn cần thì có thể lấy thông tin cần thiết.

    Một trong những hệ quả từ công trình của Codd là CSDLQH sử dụng ngôn ngữ lập trình khai báo thay vì thủ tục. Ngôn ngữ khai báo như SQL cho phép người dùng "nói" với máy tính: "tôi cần dữ liệu từ tất cả các bản ghi thoả các điều kiện này". Máy tính sẽ tự tính toán các bước cần thiết phải thực hiện để lấy ra những dữ liệu đó từ cơ sở dữ liệu.

    Phần lớn những cơ sở dữ liệu công suất lớn dựa trên các phần mềm hệ thống CSDLQH đều đã được những nhà sản xuất như Oracle, Sybase, IBM và Microsoft đưa ra.

    Cùng với SQL, những Web site có hỗ trợ cơ sở dữ liệu ngày càng được dùng phổ biến. Người dùng cuối có thể sử dụng giao tiếp lập trình dễ hiểu giữa Web site và CSDLQH để thực hiện việc bổ sung, cập nhật và tạo báo cáo một cách linh hoạt phục vụ cho những nhu cầu trực tuyến đa dạng.

    Computerworld 8/01/2001

    ID: A0103_54