Sử Dụng Các Điều Khiển Dữ Liệu Để Tạo Giao Diện Người Dùng

Cơ sở dữ liệu là yếu tố cốt lõi của nhiều ứng dụng phần mềm kinh doanh hiện đại. Chúng cho phép truy cập tập trung vào thông tin một cách nhất quán, hiệu quả và tương đối dễ dàng cho việc phát triển và bảo trì. Bài viết này sẽ đi sâu vào các khái niệm cơ bản để thiết lập và bảo trì cơ sở dữ liệu cho doanh nghiệp, bao gồm định nghĩa cơ sở dữ liệu, lợi ích và cách sử dụng chúng để tạo ra các giải pháp cho doanh nghiệp.

Nếu bạn đã có kinh nghiệm lập trình với cơ sở dữ liệu trong Visual Basic, một số nội dung có thể quen thuộc. Tuy nhiên, bài viết này sẽ cung cấp nền tảng vững chắc về hệ quản trị cơ sở dữ liệu nói chung.

Bộ máy (Engine) Cơ Sở Dữ Liệu Là Gì?

Chức năng cơ bản của cơ sở dữ liệu được cung cấp bởi một bộ máy cơ sở dữ liệu. Đây là hệ thống chương trình quản lý cách thức dữ liệu được lưu trữ và truy xuất.

Trong bài viết này, chúng ta sẽ tập trung vào Microsoft Jet. Jet không phải là một sản phẩm thương mại độc lập, mà là một hệ thống con được nhiều ứng dụng của Microsoft sử dụng. Microsoft lần đầu tiên giới thiệu bộ máy này với Visual Basic 3.0 và Access 1. Phiên bản Jet được sử dụng ở đây là Jet 3.51, đi kèm với Visual Basic và Access.

Ngoài Jet, còn có nhiều bộ máy cơ sở dữ liệu khác. Tuy nhiên, vì Visual Basic hỗ trợ Jet một cách tự nhiên, chúng ta sẽ ưu tiên tìm hiểu về Jet. Hơn nữa, Jet cũng hỗ trợ các bộ máy cơ sở dữ liệu khác.

Bảng và Trường trong Cơ Sở Dữ Liệu

Cơ sở dữ liệu được cấu tạo từ các bảng dùng để thể hiện các phân nhóm dữ liệu.

Ví dụ: Nếu bạn tạo một cơ sở dữ liệu để quản lý tài khoản kinh doanh, bạn cần tạo một bảng cho khách hàng, một bảng cho hóa đơn và một bảng cho nhân viên. Bảng có cấu trúc định nghĩa sẵn và chứa dữ liệu phù hợp với cấu trúc này.

  • Bảng: Chứa các mẩu tin, là các mục riêng rẽ bên trong phân nhóm dữ liệu.
  • Mẩu tin: Chứa các trường. Mỗi trường thể hiện một bộ phận dữ liệu trong một mẩu tin. Ví dụ: mỗi mẩu tin thể hiện một mục trong danh bạ địa chỉ, chứa các trường như Tên và họ, địa chỉ, thành phố, tiểu bang, mã ZIP và số điện thoại.

Bạn có thể sử dụng Visual Basic để tham chiếu và thao tác với cơ sở dữ liệu, bảng, mẩu tin và trường.

Thiết Kế Cơ Sở Dữ Liệu

Để tạo một cơ sở dữ liệu hiệu quả, bạn cần xác định thông tin cần theo dõi. Sau đó, thiết kế cơ sở dữ liệu bằng cách tạo bảng chứa các trường, định nghĩa kiểu dữ liệu cho mỗi trường. Khi cấu trúc cơ sở dữ liệu đã được tạo, bạn có thể thêm dữ liệu dưới dạng các mẩu tin. Bạn không thể nhập dữ liệu nếu không có bảng hoặc định nghĩa trường, vì dữ liệu sẽ không có chỗ chứa. Do đó, thiết kế cơ sở dữ liệu là vô cùng quan trọng và rất khó thay đổi sau khi đã hoàn thành.

Ví dụ về các bảng:

  • Bảng khách hàng (tblCustomer):
    • ID
    • FirstName
    • LastName
    • Company
    • Address
    • City
    • State
    • Zip
    • Phone
    • Fax
    • Email
  • Bảng vùng (tblRegion):
    • State
    • RegionName

Có mối quan hệ giữa hai bảng thông qua trường “State”. Đây là mối quan hệ một-nhiều: một vùng (tblRegion) có thể có không có hoặc nhiều khách hàng (tblCustomer).

  • Bảng hóa đơn (tblOrder):
    • ID
    • CustomerID
    • OrderDate
    • ItemID
    • Amount

Recordset là Gì?

Khi đã có khả năng tạo bảng, bạn cần biết cách thao tác với chúng.

Thao tác trên bảng liên quan đến việc nhập và truy xuất dữ liệu, cũng như kiểm tra và sửa đổi cấu trúc bảng. Để thao tác với cấu trúc bảng, bạn sử dụng các câu lệnh định nghĩa dữ liệu hoặc đối tượng TableDef. Để thao tác với dữ liệu trong bảng, bạn sử dụng Recordset.

Recordset là một cấu trúc dữ liệu thể hiện một tập hợp con các mẩu tin được truy xuất từ cơ sở dữ liệu. Về mặt khái niệm, nó tương tự như một bảng, nhưng có thêm một vài thuộc tính riêng biệt quan trọng. Recordset được thể hiện dưới dạng các đối tượng, tương tự như các đối tượng giao diện người dùng mà bạn đã quen thuộc trong Visual Basic. Các đối tượng Recordset có các thuộc tính và phương thức riêng.

Bạn có thể lập trình để tạo và sử dụng recordset thông qua một trong ba thư viện truy cập dữ liệu: Đối tượng truy cập dữ liệu (DAO), Đối tượng truy cập dữ liệu từ xa (RDO) và Đối tượng dữ liệu ActiveX (ADO).

Các Kiểu Dữ Liệu Cơ Bản

Visual Basic, thông qua Jet, cung cấp 21 kiểu dữ liệu khác nhau.

Không có sự tương đương một-một giữa kiểu dữ liệu Visual Basic và kiểu dữ liệu trường cơ sở dữ liệu. Ví dụ, bạn không thể chỉ định một trường cơ sở dữ liệu là kiểu do người dùng định nghĩa hoặc biến Object của Visual Basic. Nếu bạn sử dụng Microsoft Access để tạo cơ sở dữ liệu dùng trong các ứng dụng Visual Basic, hãy lưu ý rằng một số kiểu dữ liệu hữu ích trong Visual Basic có thể không xuất hiện trong thiết kế bảng của Microsoft Access. Điều này là do Visual Basic hỗ trợ lập trình cơ sở dữ liệu khác với Microsoft Access.

Tạo Lược Đồ Cơ Sở Dữ Liệu

Mặc dù tạo danh sách các bảng và trường là cách tốt để xác định cấu trúc cơ sở dữ liệu, bạn cũng có thể xem các bảng và trường dưới dạng đồ họa bằng cách tạo lược đồ.

Lược đồ là sơ đồ các thành phần trong cơ sở dữ liệu, thể hiện các bảng, trường và mối quan hệ giữa chúng. Lược đồ cơ sở dữ liệu là một phần quan trọng trong thiết kế phần mềm vì nó cho phép bạn có cái nhìn tổng quan về cơ sở dữ liệu.

Lược đồ vẫn quan trọng sau khi quá trình thiết kế cơ sở dữ liệu hoàn tất. Bạn sẽ cần lược đồ để thực hiện các câu truy vấn trên nhiều bảng. Một lược đồ tốt sẽ giúp bạn trả lời các câu hỏi như: “Những bảng nào cần nối với nhau để đưa ra danh sách các hóa đơn trên $50.00 từ các khách hàng ở Minnesota trong 24 giờ qua?”

Không có phương pháp chính thức để tạo lược đồ, nhưng có nhiều công cụ hỗ trợ. Visio là một công cụ vẽ linh hoạt, nhanh chóng và dễ sử dụng, tích hợp tốt với các ứng dụng Windows khác, đặc biệt là Microsoft Office.

Bạn có thể sử dụng Visio để ghi chép về cơ sở dữ liệu, hoặc như một công cụ phát triển. Với Visio Professional, bạn có thể thiết kế cơ sở dữ liệu bằng đồ họa, sau đó tạo ra cơ sở dữ liệu thực sự từ thiết kế này.

Sử Dụng Visual Basic Để Tạo Cơ Sở Dữ Liệu

Sau khi tạo lược đồ và hoàn thiện thiết kế, bạn có thể tạo cơ sở dữ liệu thực sự bằng tiện ích Visual Data Manager trong Visual Basic Professional và Enterprise. Tiện ích này cho phép bạn tạo các cơ sở dữ liệu Jet tương thích với Microsoft Access.

Vì Visual Basic và Access 97 chia sẻ cùng bộ máy cơ sở dữ liệu, bạn có thể sử dụng Visual Basic hoặc Access để tạo cơ sở dữ liệu. Kết quả cuối cùng sẽ tương tự.

![Cửa sổ Visual Data Manager](https://lh3.googleusercontent.com/proxy/q1xVy85S-8vD-Y11fK1t8c51kP6wJ3_b1i5lH3jK_V7qO0o4v5rV6J5qQ8o0n3yD3o8lX2rZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU2xO3v5_w3yH2kZ5xU