Vous êtes sur la page 1sur 19

Cấu trúc của Microsoft Access for Windows 95

Xem bai viet bang font ABC

    T rong các bài trước chúng ta đã xem qua về cấu trúc của Office 7.0,
Word 7.0 và Excel 7.0 dành cho Windows 95. Trong phạm vi bài báo
này chúng ta thử nghiên cứu về cấu trúc của Access 7.0. Cấu trúc MS
Access bao gồm các phần sau: phần ứng dụng (Aplication layer), phần
tập tin (File hay còn gọi như là Database container) và phần đối tượng
(Database objects).

    Phần ứng dụng lưu trữ các thành phần như menu, toolbar. Tại đây
cũng lưu cơ chế xử lý dữ liệu của Microsoft được biết đến dưới tên gọi
Microsoft Jet Database Engine (Jet Engine) và tất cả các phần bổ sung
(Add-ins) viết bằng Visual Basic cho ứng dụng.

    Phần tập tin chứa các đối tượng như table, query, form, report, macro
và module. Phần đối tượng lưu chính bản thân các dữ liệu, các điều
khiển OLE của người dùng, cũng như các thủ tục dùng để truy xuất dữ
liệu.

PHầN ứNG DụNG (APPLICATION LAYER)

    Trong Access thành phần này được dùng để điều khiển giao diện
người dùng, ngoài ra nó cũng cung cấp một môi trường làm việc cho Jet
Engine, cơ chế xử lý dữ liệu nòng cốt của Access. Bên cạnh đó phần ứng
dụng còn có bổn phận thực hiện các cuộc gọi đến những thư viện
(library database), đó là các tập hợp những thủ tục và add-in được viết
bằng Visual Basic chuyên cho một vài chức năng bổ sung nào đó.

    Khi sử dụng Access theo nhóm, các cấu hình riêng cũng như những
thông tin về bảo mật của người dùng được lưu trong một tập tin thông
tin nhóm (workgroup information file). Dưới đây chúng ta sẽ tìm hiểu
kỹ hơn về những phần nói trên.

Microsoft Access và Jet Database Engine


    Jet Database Engine cùng với Access hình thành một hệ thống quản lý
cơ sở dữ liệu (CSDL) hoàn chỉnh. Microsoft Access là một thành phần
của hệ thống này, chịu trách nhiệm về giao diện người dùng, cách người
dùng xem, chỉnh sửa và xử lý các dữ liệu của mình thông qua các form,
query, report, v.và. Jet Engine chịu trách nhiệm về truy xuất và lưu dữ
liệu vào các CSDL của người dùng (user database) và của hệ thống
(system database). Có thể nói Jet Engine là thành phần quản lý dữ liệu
của tổng thể của cả hệ thống.

Microsoft Access

    Đây là "điểm chứa" của giao diện người dùng, cũng như cho toàn bộ
các mã của ứng dụng bao gồm các cấu hình ngầm định cho menus,
toolbar, cho các đối tượng của CSDL, kể cả các thư viện đi theo với
Access.

    Các cấu hình ngầm định: Giao diện của Access có thể thay đổi thông
qua mục Options trong menu tools. Một vài thông số được lưu trong các
Registry của Windows 95 (hình 1), còn lại được lưu trong tập tin về
thông tin nhóm của người dùng system.mdw.

    Các thư viện: Những thư viện đi kèm với Access bao gồm các
Wizard, Add-in cũng như tập tin system.mdw ngầm định

Jet Database Engine

    Jet Engine là một cơ chế xử lý có tính quan hệ điều khiển tất cả việc
xử lý CSDL cho Access và cả cho Visual Basic. Với Acces, Jet Engine
còn cung cấp các dữ liệu để kết nối với những ứng dụng khác, tức qua
ODBC, Microsoft Open Database Connectivity. Jet Engine thực chất là
một nhóm các thư viện kiên kết động *.DLL. Ta hãy cùng tìm hiểu về
những thư viện này.

Các thư viện DLL của Jet Engine:

    Thư viện MSJT3032.DLL là chương trình chính đảm nhận việc thực
hiện các yêu cầu về dữ liệu. Khi gặp một yêu cầu về dữ liệu "chuẩn"
được lưu dưới dạng thức .MDB (Microsoft Access Database),
MSJT3032.DLL còn điều khiển cả quá trình đọc và ghi dữ liệu. Tuy
nhiên khi gặp các dữ liệu "không chuẩn", như của Excel hay Foxpro,
MSJT3032.DLL có bổn phận gọi ODBC32.DLL, thư viện điều khiển
các kết nối với những CSDL không phải của Access hoặc gọi một trong
các ISAM DLL ngoại trú. Chúng ta sẽ tìm hiểu sau về ISAM DLL, thư
viện liên kết động với lối truy cập dữ liệu trực tiếp theo chỉ mục (DLL
with Indexed Sequential Access Method).

Data Access Objects DLL.

    Thư viện các đối tượng dùng cho việc truy cập dữ liệu (Data Access
Ojects DLL) DAO32.DLL là một thành phần của Jet Engine. DAO tập
hợp các công cụ giúp cho những nhà lập trình tiếp cận với Jet Engine,
nhờ nó họ có thể tránh được các bước chi tiết của việc xử lý các quá
trình đọc, ghi dữ liệu khi lập trình.

Các thư viện ISAM DLL.

    Jet Encine cung cấp một loạt các thư viện liên kết động (ISAM) có
khả năng hiểu nhiều kiểu dữ liệu khác nhau. Những thư viện này có thể
cài đặt riêng khi có nhu cầu. Bảng dưới cho thấy một số dạng thức được
hổ trợ bởi ISAM:

Hổ trợ nhờ
Dạng thức ISAM
DLL
Xbase (dBase và Msxb3032.dll
FoxPro)
Paradox Mspx3032.dll
Lotus Mslt3032.dll
Microsoft Excel Msxl3032.dll
Text Mstx3032.dll
    Chính các DLL này điều khiển mọi quá trình đọc, ghi những dữ liệu
với dạng thức dBase, FoxPro, Paradox, Lotus, Microsoft Excel, hay
dạng Text.

Library Databases

    Thư viện là tập hợp các thủ tục mà Access dùng để thực hiện một số
thao tác nhất định. Các thư viện chỉ chứa mã được viết bằng Visual
Basic (cho ứng dụng) và được thực thi chỉ khi Access cần đến những
thao tác đấy. Trong thư viện không chứa bất kỳ đối tượng nào của CSDL
như table hay form. các thư viện này là những tập tin có phần mở rộng là
.MDA. Trước khi sử dụng chúng ta phải chỉ đến chúng qua mục
References trong menu Tools (khi ở trong cửa sổ Module). Nhờ những
reference này, trong một CSDL hiện hành, chúng ta có thể gọi bằng mã
(code) các thủ tục được viết trong các CSDL khác (hình 2).

Add-ins

    Add-in là những chương trình được viết bằng Visual Basic dùng để bổ
sung thêm một số chức năng đặc biệt cho Access. Các tập tin add-in,
tương tự như library database, có phần mở rộng là .MDA. Chúng ta có
thể thêm hoặc bớt các add-in bằng cách chọn Add-in Manager trong mục
Add-ins trên menu Tools. Thông thường các add-in được dùng để tự
động thực hiện các thao tác phức tạp hoặc có tính lặp lại. Trong Access
có ba nhóm add-in, đó là wizard, builder và menu add-in. Hai nhóm đầu
thay đổi tùy theo mục đích sử dụng (context specific) và được gọi trực
tiếp trong ứng dụng khi người dùng muốn thực hiện một thao tác cụ thể
nào đó, ví dụ như xây dựng một form, tạo bảng, hoặc tạo một query.
Riêng menu add-in phải được gọi qua Add-in Manager trong menu
Tools.

Wizards

    Wizard cho phép thực hiện nhiều thao tác nhanh và đơn giản, không
cần nhiều kiến thức sâu về Access. Một wizard thông thường là một
chuổi các hộp thoại hướng dẫn người dùng từng bước, từng bước thực
hiện các yêu cầu hay thủ tục phức tạp. Hình thức hộp thoại của Wizard
cho phép người dùng dễ dàng quyết định sự chọn lựa, và xác định được
hướng tiếp theo để giải quyết vấn đề. Bên cạnh các wizard của Access
chúng ta có thể tự viết các wizard theo ý riêng của mình. Access trực
tiếp hổ trợ cho một số dạng wizard, ví dụ nếu Bạn viết một wizard để
thực hiện thao tác tạo form, wizard của Bạn sẽ được hiện trên cùng một
danh sách với các wizard của Microsoft Form Wizard. Acces 7.0 hổ trợ
cho các dạng wizard sau:

 Wizard bảng và tra vấn (Table và query wizard)


 Wizard mẫu và báo cáo (Form và report wizard)
 Wizard thuộc tính (Property wizard)
 Wizard điều khiển (Control wizard)

Builders

    Builder có thể hiểu nôm na như công cụ xây dựng dữ liệu. Builder
đơn giản hơn wizard và thường được thể hiện dưới dạng một hộp thoại
hay một bảng mẫu (form) đơn có chức năng dẫn dắt Bạn đi suốt quá
trình thiết kế các biểu thức hay các thành phần dữ liệu đơn lẻ.
Expression Builder là một ví dụ về loại Add-in này (hình 3).

 Access 7.0 hổ trợ các dạng Builder sau:


 Builder thuộc tính (Property builders)
 Builder điều khiển (Control builders)
 Builder biểu thức (Expression builders)

    Tương tự như Wizard, nếu bạn tạo Builder mới thuộc một trong các
nhóm trên, tên của builder mới sẽ được thể hiện trên cùng một danh sách
với các builder khác của Access.

Menu Add-ins

    Có thể nói menu add-ins là những ứng dụng nhỏ đi kèm theo Access
để thực hiện một số các chức năng tổng thể, không có tính thay đổi theo
ngữ cảnh như trường hợp của wizard và builder. Mỗi menu add-in
thường thực hiện trên nhiều đối tượng hoặc trên chính bản thân Access.
Access Documentor (hình 5) là một trong những ví dụ về menu add-ins
(xem mục Analyze\Documentor trong menu Tools). Chúng ta có thể
xem các menu add-in bằng cách chọn Add-ins trong menu Tools, gồm:
Switchboard Manager, Add-ins Manager, Database Splitter, Linked
Table Manager, Menu Builder (Hình 4).

Workgroup Information File

    Khi chúng ta sử dụng chức năng bảo mật nhóm hay cá thể trong
Access, các thông tin về cá thể hoặc nhóm được lưu trong tập tin
system.mdw, còn được gọi là workgroup information file, tập tin thông
tin nhóm. Trong tập tin này còn chứa các thông số về tùy chọn của mỗi
người dùng (như toolbar, option). Lưu ý tập tin system.mdw cần cho
Access khi khởi động.

    Những người dùng muốn làm việc chung trong nhóm để chia sẻ dữ
liệu, cần sử dụng Workgroup Administrator, wrkgadm.exe, để xác định
tập tin system.mdw nào trên mạng họ muốn dùng khi khởi động Access.
System.mdw này cũng lưu các mật mã của mỗi người dùng khi đăng ký
vào tài khoản. Trong trường hợp Bạn không thuộc một nhóm nào cả và
do đó không xác định tập tin system.mdw nào, Access sẽ sử dụng
system.mdw trên máy local với các cấu hình bảo mật ngầm định (xem
trong registry
Hkey_Local_Machine\Software\Microsoft\Access\7.0\Jet\3.0
\Engines\Jet, dòng giá trị cho SystemDB.

CƠ Sở Dữ LIệU(DATABASE LAYER)

    Trong Access dữ liệu được lưu trong các bảng của cùng một CSDL.
Tuy nhiên chúng ta có thể thực hiện nối kết với nhiều nguồn dữ liệu
ngoài như: dữ liệu từ bảng của một CSDL khác của Access, dữ liệu với
các dạng thức khác (như Excel, Dbase, paradox, v.và) hay dữ liệu từ một
nguồn ODBC như SQL Server. Những liêÔn kết này được lưu trong
phần tập tin và chúng hoạt động như những bảng bình thường khác của
CSDL.
ISAM DLL

    Trong Access những dữ liệu nằm ngoài CSDL chính được truy cập
thông qua các bảng dò tìm (lookup table) dưới sự chỉ đạo của các ISAM
DLL (DLL with Indexed Sequential Access Method), là các thư viện
liên kết động với lối truy cập dữ liệu trực tiếp theo chỉ mục. Với các thư
viện có thể cài đặt được này (Instalable ISAM DLL), Access xử lý
những dữ liệu "không Access" như những dữ liệu bình thường của nó.
Duới đây là danh sách các loại dữ liệu Access có thể hổ trợ thông qua
ISAM:

    Microsoft FoxPro, phiên bản 2.0, 2.5, 2.6. Riêng FoxPro 3.0 chỉ hổ trợ
nhập/xuất, không thực hiện được các liên kết (links)

 dBase III PLUS, dBase IV, và dBase V


 Paradox, phiên bản 3.x, 4.x, và 5.x
 Microsoft Excel, phiên bản 3.0, 4.0, 5.0 và 7.0
 Lotus 1-2-3, phiên bản 2.x, 3.x, và 4.0
 Các tập tin dạng text (với độ rộng cố định và kích thước vừa phải )

    Ngoài ra Access còn có thể sử dụng dữ liệu từ các nguồn khác như:

 Microsoft SQL Server, Sybase SQL Server, và Oracle Server (nói


chung dữ liệu của các ứng dụng hổ trợ Microsoft ODBC)
 Microsoft Access 1.x, 2.0, và 7.0 (dữ liệu của các CSDL khác với
CSDL đang được mở)

    Về chi tiết Access hổ trợ hai phương thức truy cập đến dữ liệu bên
ngoài: liên kết đến bảng và mở bảng trực tiếp.

Liên kết đến bảng (Linked Tables)

    Phương pháp này thường được hay sử dụng nhất để truy cập đến dữ
liệu bên ngoài. Bất kỳ thay đổi gì trong bảng đều ảnh hưởng ngay đến
bảng được kết nối. Khi dùng các bảng liên kết Access tạo một biểu
tượng trên cửa sổ CSDL, nhờ đó khi cần Bạn có thể truy xuất nhanh đến
chúng. Ưu điểm của phương pháp liên kết bảng là dữ liệu luôn được cập
nhật, các liên kết được duy trì không phụ thuộc dữ liệu lấy trực tiếp từ
bảng hay yêu cầu. Nếu các bảng được chuyển qua SQL server, ứng dụng
của Bạn vẫn có thể truy cập đến dữ liệu qua liên kết.

Mở bảng trực tiếp (Direct Table Opening)

    Khi làm việc với giao diện Access, Bạn không thể mở một bảng thuộc
CSDL khác với CSDL hiện hành. Access chỉ cho phép mở bảng của một
CSDL khác thông qua mã Visual Basic. Bằng cách này Bạn có thể truy
cập đến dữ liệu bên ngoài, tuy nhiên thường người ta chỉ áp dụng
phương pháp này cho những dữ liệu mà chỉ thỉnh thoảng mới cần đến.
Hạn chế của phương pháp này là sự phụ thuộc ứng dụng của Bạn vào dữ
liệu nguồn. Trong trường hợp bảng được chuyển qua SQL server, dữ
liệu không còn là dữ liệu có thể truy cập trực tiếp theo chỉ mục nữa, và
do đó ứng dụng sẽ gặp lỗi khi cố gắng mở bảng trực tiếp.

Kết nối ODBC(open database connectivity(kết nối dữ liệu mở))

    Access cho phép truy cập dữ liệu từ các nguồn hổ trợ ODBC. Chuẩn
kết nối theo phương pháp mở ODBC thường được sử dụng khi kết nối
với các hệ quản lý CSDL kiểu khách/chủ (client/server). Access 7.0 có
sẵn các driver này cho SQL Server. Ngoài ra chuẩn ODBC còn cho phép
kết nối đến các CSDL dạng non- server và đến các bảng tính
(worksheet). Thêm vào đó, trong ứng dụng Access, Bạn còn có thể sử
dụng các yêu cầu dạng SQL Pass-through (SPT) để truy xuất dữ liệu.
Những yêu cầu này cho phép làm việc trực tiếp với bảng trên máy chủ
mà không cần sử dụng đến các liên kết, hoặc chạy các thủ tục được lưu
trên máy chủ. Điểm bất tiện của ứng dụng dùng SPT là tính không cơ
động, ví dụ ứng dụng viết cho SQL server sẽ không chạy được khi cố
kết nối vào server của Oracle. Nếu muốn tạo các yêu cầu SPT, Bạn chọn
mục SQL Specific trên menu Query, sau đó chọn Pass-Through.

Tách rời dữ liệu khỏi


    ứng dụng viết bằng Access có thể được lưu rời với các dữ liệu. Một ví
dụ điển hình là hai CSDL Orders.mdb và Nwind.mdb có sẵn trong
Access (nếu khi cài đặt Bạn có chọn cài phần Sample). Các form, query,
report được lưu trong Orders.mdb, còn các bảng chứa dữ liệu cụ thể
được lưu trong Nwind.mdb.

    Đây là một phương pháp hay dùng khi phát triển các ứng dụng bằng
Access, nó cho phép dễ dàng quản lý cả ứng dụng lẫn dữ liệu khi cần
nâng cấp lên phiên bản mới, hoặc cho phép các người dùng với các
phiên bản khác nhau của Access sử dụng chung dữ liệu.

PHầN ĐốI TƯợNG (DATABASE OBJECTS)

    Các đối tượng của CSDL (table, form, query, report, macro và
module) được lưu trong phần tập tin, đây cũng chính là tập tin với phần
mở rộng .mdb. Dưới đây chúng ta thử tìm hiểu thêm về những đối tượng
này.

Bảng (Table)

    Bảng chính là chổ lưu trữ các dữ liệu của CSDL. Chúng ta có thể tạo
riêng từng bảng cho từng chuyên mục cầạn lưu dữ liệu. Ví dụ bảng
Company để lưu thông tin về các công ty, bảng Product để lưu thông tin
về các sản phẩm, v.và. Dữ liệu của bảng có thể thay đổi theo hai cách:
trực tiếp ngay trong bảng, thông qua biểu mẫu.

Yêu cầu (Query)

    Thông thường chúng ta lấy dữ liệu từ CSDL theo các yêu cầu khác
nhau, ở đây yêu cầu hiểu theo nghĩa đúng của nó. Còn trong Access Yêu
cầu hay Query là một khái niệm. Những query này được Jet Engine xử
lý. Dạng đơn giản nhất của query là Select Query, yêu cầu kiểu lựa
chọn. Chúng ta tự xác định các tiêu chuẩn cần thiết và Access lựa ra cho
chúng ta những dữ liệu đáp ứng các điều kiện này (hình 6). Các dữ liệu
này được gọi là dữ liệạu động (dynaset) được thể hiện dưới dạng bảng.
Như vậy, ở đây cần phân biệt hai loại "bảng": một là bảng Table chứa dữ
liệu thật sự của CSDL và bảng Datasheet, chỉ là kiểu thể hiện động
(dynamic view) của dữ liệu kết quả từ một query.

    Khi Bạn mở một query dưới dạng datasheet view, một form hay một
report trên nền query, Access sẽ tạo một tập hợp dữ liệu động dựa trên
thông tin lưu trong CSDL, nhờ đó Bạn có thể thay đổi, thêm bớt chúng.
Những thay đổi này sẽ có tác dụng với các bảng tương ứng.

Biểu mẫu (Form)

    Form là hình thức thường dùng nhất để nhập, trình bày và in ấn dữ
liệu trong Access. Form có thể chứa số liệu, văn bản, hình ảnh, màu sắc,
các điều khiển OLE, v.và (hình 7). Cách thể hiện của form được điều
khiển bởi các form template, biểu mẫu khuôn.

Các điều khiển OLE

    Nếu Bạn quen với các điều khiển OLE của Visual Basic (VBX) thì sẽ
dễ dàng nhận ra những điều khiển này trong Access, chúng có tên là
OCX. Những OCX này được dùng để thêm các tính năng phụ vào form
và được lưu thẳng trong form (hình 8). Access 7.0 có các điều khiển
OLE đi kèm như sau: Calendar (msacal70.ocx) , Spin Box (spin32.ocx),
Data Outline (msdbout.ocx), v.và . Để sử dụng các điều khiển OLE hãy
chọn trên menu Insert\Custom Control điều khiển OLE Bạn cần, Access
sẽ chèn điều khiển vào form. Trong trường hợp điều khiển chưa được
khai báo Bạn hãy khai báo chúng bằng cách chọn Tools\ Custom
Control, chọn tên của điều khiển và nhấn vào nút Register.

Báo cáo (Report).

    Báo cáo là hình thức trình bày dữ liệu theo ý muốn của người dùng
trước khi in ra. Dữ liệu được lấy từ bảng hoặc các yêu cầu. Thông
thường Bạn hay sử dụng yêu cầu để tổng hợp dữ liệu từ nhiều bảng khác
nhau, để cho ra những báo cáo có tính thuyết phục. Cách định dạng và tổ
chức của một báo cáo được các Report template điều khiển.

Macro.
    Macro là tập hợp những lệnh thường được dùng khi cần tự động hóa
một hay nhiều thao tác liên tiếp. Trong Access Bạn có thể dùng macro
để thực hiện thao tác trên form, query, report, trên các điều khiển.

Module.

    Module trong Access là một tập hợp các khai báo (declaration), các
câu lệnh (statement) hay các thủ tục (procedure). Bạn có thể lưu nhiều
thủ tục liên quan trong cùng một module. CSDL của Acces có các dạng
module như global, form và report (hình 9):

    Global module mang tính toàn cục, có thể sử dụng mọi nơi trong
CSDL. Những global module được nạp khi Bạn khởi động Access.

    Form module liên kết với form cụ thể và được nạp mỗi khi Bạn mở
form.

    Tương tự form module, report module liên kết với report cụ thể và
được nạp mỗi khi Bạn mở report.

Form và Report template

    Khi Bạn tạo một form hay report mà không dùng đến form, report
wizard, Access sử dụng một template để thiết đặt các giá trị ngầm định
ban đầu của form, report (kích thước, vị trí các thành phần, v.và).
Template này có tên là Normal template. Bên cạnh đó Bạn cũng có thể
sử dụng bất kỳ form hay report có sẵn nào như một template. Trong mục
Options chúng ta có thể chọn template để dùng khi tạo form hay report,
những thông số của template sẽ được lưu trong tập tin system.mdw và
nó sẽ có tác dụng với bất kỳ CSDL nào mà Bạn mở hoặc tạo mới.
Template có thể sao chép hoặc xuất (export) sang các CSDL khác.

    Tóm lại form và report template xác định các chi tiết sau:

 Vị trí các tiêu đề của form và report (form, report header và footer)
 Vị trí các tiêu đề của trang (page header, page footer).
 Kích thước các vùng trên form, report.
 Các thuộc tính điều khiển ngầm định (control default properties).

CáC THàNH PHầN CủA ACCESS LƯU ở ĐẤU?

    Các thành phần của Access được lưu cùng với phần ứng dụng, với
add-in hoặc trong registry của Windows 95. Bảng dưới cho thấy các
thành phần và vị trí của chúng:

Thành phần Vị trí lưu


Bảng (Table) Trên đĩa trong tập tin CSDL
(*.mdb)
Yêu cầu (Query) Trên đĩa trong tập tin CSDL
(*.mdb)
Biểu mẫu (Form) Trên đĩa trong tập tin CSDL
(*.mdb)
Báo cáo (Report) Trên đĩa trong tập tin CSDL
(*.mdb)
Macro Trên đĩa trong tập tin CSDL
(*.mdb)
Module Trên đĩa trong tập tin CSDL
(*.mdb)
Các điều khiển OLE Trong các form hoặc report sử dụng
những điều khiển này
Mật mã của người dùng (User Trong tập tin system.mdw
password)
Thông tin về quyền truy xuất đến
dữ liệu của người dùng có bảo
mật (Permissions for security Trên đĩa trong tập tin CSDL
accounts) (*.mdb)
Cấu hình của toolbar Trong tập tin system.mdw
Cấu hình của menu Trong tập tin system.mdw
Các tùy chọn của người dùng
trong mục Options trên
menuTools1 Trong registry của Windows 95
Cấu hình cho AutoCorrect Trong registry của Windows 95
Tự điển người dùng Trong tập tin Custom.dic
Các kiểu định dạng tự động của Trong AutoFormat Wizard
AutoFormat
Công cụ xây dựng biểu thức Trong tập tin Utility.mda
(Expression Builder)
Công cụ AutoDialer Trong tập tin Utility.mda
Normal template cho form và Trong tập tin Utility.mda
report
Công cụ Zoom Box Trong tập tin Utility.mda
Công cụ Save Output As Trong tập tin Utility.mda
1 Trong môi trường làm việc theo nhóm, những thông tin về tùy chọn
của người dùng còn được lưu trong tập tin System.mdw

Cấu hình bảo mật của CSDL được lưu ở đâu

    Các cấu hình bảo mật được lưu ở nhiều nơi khác nhau tùy thuộc người
dùng thiết lập cho CSDL của mình những chế độ bảo mật nào. Access
cho phép sử dụng hai chế độ sau: bảo mật bằng mật mã, bảo mật bằng
cách cấp quyền truy cập theo nhiều mức độ khác nhau.
    Bảo mật bằng mật mã (Password Security) Phương pháp này cho
phép truy cập hoàn toàn đến CSDL nếu Bạn biết mật mã của nó. Để thết
lập mật mã Bạn vào menu Tools chọn mục Security. Mật mã này được
lưu trong tập tin CSDL *.mdb

    Cấp quyền truy cập theo mức độ (User-level Security) Phương pháp
này cho phép Bạn dễ dàng thiết lập mức độ truy cập đến các đối tượng
khác nhau của CSDL cho nhiều người dùng khác nhau. Những thông tin
như tài khoản người dùng, mật mã kiểm tra, tên nhóm được lưu trong
tập tin system.mdw. Nếu người dùng tách khỏi nhóm, thông tin về họ
trong system.mdw sẽ bị xóa đi và do đó sẽ không còn quyền truy cập
đến CSDL.

    Các quyền thật sự trên những đối tượng khác nhau (form, table, query,
v.và) được lưu trong bản thân CSDL. Chúng được liên kết đến từng đối
tượng theo quy định của người quản lý CSDL (database security
administrator). Bạn có thể gán quyền cho từng người dùng riêng biệt
hoặc cho nhóm (hình 10).

CAáCH ACCESS GIAảI QUY?ếT CAáC XUNG ĐÔộT

    Trong Access 7.0, Microsoft cung cấp cho những nhà quản lý CSDL
một công cụ rất hữu ích: database replication, có thể hiểu như công cụ
tạo bản sao CSDL cho những mạng làm việc theo mô hình phân tán. Với
công cụ này, người quản lý có thể tạo những bản sao của CSDL hiện
hành, cho phép nhiều người dùng cùng một lúc làm việc với CSDL.
Trên thực tế mỗi người làm việc với bản sao CSDL (replica) của mình,
các replica này có thể nằm trên các máy khác nhau, trong những văn
phòng khác nhau và thậm chí tại những nước khác nhau mà vẫn duy trì
được sự đồng bộ trong dữ liệu. Việc đồng bộ dữ liệu giữa các replica có
thể thực hiện theo lịch sắp xếp của người dùng theo lệnh qua mạng hoặc
modem.

Tại sao cần đồng bộ CSDL?


    Xét theo một góc độ lý tuởng, các người dùng trong một công ty đều
muốn có khả năng truy xuất đến một CSDL trung tâm, ai cũng muốn sử
dụng những dữ liệu mới nhất, hoàn thiện nhất trên đó. Tất cả người dùng
khi đó có nhu cầu kết nối với máy chủ 24 tiếng mỗi ngày, 7 ngày mỗi
tuần. Và công ty khi ấy cần có một hệ thống mạng hoàn chỉnh với đầy
đủ chức năng bảo vệ và tự khắc phục mọi sự cố không những cho trung
tâm mà còn phải cho tất cả các chi nhánh của nó. Thế nhưng đâu phải
lúc nào chúng ta cũng có điều kiện tạo nên những điều "lý tuởng", trên
thực tế nhân viên trong công ty có thể công tác ở xa nhiều hơn tại văn
phòng, hệ thống mạng có thể không cho phép cùng lúc kết nối toàn bộ
các chi nhánh, hay không đủ khả năng làm việc ở mức độ "căng thẳng"
như vậy, CSDL trung tâm có thể hư hỏng, máy chủ có thể gặp trục trặc
vì virus, hoặc vì khả năng tài chính không đủ để trang bị một "siêu hệ
thống" như ý muốn nói trên, v.v. Để góp phần đạt được sự đồng bộ hóa
dữ liệu cho một thực tế dữ liệu "trung tâm hóa" và người dùng "phân
tán", Microsoft Jet Engine cung cấp cho chúng ta những công cụ với ít
nhất 6 ưu điểm như sau:

 Chia sẻ và đồng bộ dữ liệu giữa các văn phòng


 Chia sẻ và đồng bộ dữ liệu giữa các người dùng ở xa nhau
 Hạn chế truy cập đến dữ liệu tại trung tâm nhưng vẫn đảm bảo tính
đồng nhất của dữ liệu
 Dễ dàng trong việc phân phối các nâng cấp của ứng dụng
 Phân bổ hợp lý việc kết nối mạng với máy chủ
 Khả năng sao lưu dữ liệu

Công cụ thực hiện đồng bộ hóa

    Có tất cả bốn công cụ giúp Bạn thực hiện việc đồng bộ hóa dữ liệu:

    Briefcase replication Windows 95 cho phép sử dụng chức năng đồng
bộ hóa dữ liệu khi người dùng kéo và thả các tập tin vào biểu tượng
Briefcase trên desktop. Khi tập tin là một CSDL của Access nó sẽ được
chuyển sang dạng replica, tức bản sao của CSDL, còn bản gốc được gọi
với tên là Design Master thì vẫn còn nguyên ở chổ cũ. Người dùng có
thể mang bản sao này trên Laptop đi khắp nơi tùy theo nhu cầu công
việc, rồi sau đó họ sẽ đồng bộ hóa những thay đổi trong bản sao này với
bản gốc. Ngược lại những thay đổi về dữ liệu trên bản gốc trong thời
gian họ đi vắng cũng sẽ được cập nhật đồng thời khi họ vào briefcase.

    Như vậy những người dùng khác cũng có khả năng đồng bộ hóa dữ
liệu thông qua briefcase. Quá trình đồng bộ hóa dữ liệu có thể tiến hành
theo nhiều hướng: từ bản sao lên bản gốc (nếu Bạn được cấp quyền), từ
bản gốc lên bản sao hoặc từ cả hai phía (hình 11). CSDL sau khi chuyển
sang dạng replica thường có kích thước lớn hơn so với dạng thường vì
Access đưa thêm vào các đối tượng những trường bổ sung để phân biệt
đối tượng nào trong CSDL là replicated hay local, v.v.

    Đång bé hãa dữ liƯu trong Access for Windows 95. Để đồng bộ dữ
liệu trong Aceess 7.0 Bạn có thể chọn trực tiếp mục Replication trên
menu Tools. Lần đầu tiên Bạn cần tạo bản sao với "Create Replicaà",
sau đó có thể cập nhật dữ liệu với các bản sao khác trong Replica Set với
"Synchronize Nowà", giải quyết các xung đột nếu có giữa các bản sao
với "Resolve Conflictsà", hoặc tạo Design Master mới từ một replica với
"Recover Design Master". Ơở đây chúng ta cần phân biệt sự khác nhau
giữa từ "bản sao", "bản copy" thông thường (tức khi Bạn làm một bản
lưu dự phòng với thao tác copy hay backup bình thường trên đĩa) với từ
"bản sao", "replica" của Access với khả năng đồng bộ hóa dữ liệu giữa
chúng. Access for Windows 95 còn hổ trợ việc đồng bộ hóa dữ liệu khi
chạy trên nền Windows NT 3.51.

    Replication Manager. Trong trường hợp cần quản lý số lượng lớn
các replica, hổ trợ cho người dùng laptop tức những người không phải
luôn luôn nối với máy chủ, tạo replica từ nhiều CSDL khác nhau, thiết
lập thời gian biểu cho việc đồng bộ hóa dữ liệu, để theo dõi và can thiệp
kịp thời khi có sự cố, Bạn có thể dùng công cụ Replication Manager
trong Access Developer Toolkit. Công cụ này cho phép chuyển đổi
CSDL thành Design Master, tạo các replica mới, theo dõi quan hệ giữa
các replica (hình 12), thiết lập thuộc tính hoặc thời gian đồng bộ dữ liệu
giữa replica với Design Master (hình 13), v.v...
    Đồng bộ dữ liệu qua lập trình DAO. Hầu hết chức năng đồng bộ dữ
liệu qua briefcase đều có thể sử dụng thông qua lập trình DAO - data
access object. Nếu các nhà cung cấp phần mềm thiết kế các chương trình
quản lý CSDL cho Bạn có đi kèm công cụ đồng bộ dữ liệu, hẳn họ đã sử
dụng chức năng lập trình thông qua DAO để bổ sung những tính năng
này vào ứng dụng của họ. Bạn có thể tìm hiểu thêm về DAO qua các tài
liệu về xây dựng ứng dụng với Access for Windows 95.

Kiến trúc của việc đồng bộ hóa CSDL

    Để sử dụng có hiệu quả việc đồng bộ hóa dữ liệu của một CSDL Bạn
cần am hiểu về kiến trúc cũng như cách hoạt động của mỗi thành phần
trong quá trình đồng bộ. Cơ chế đồng bộ trong Jet Engine bao gồm bốn
thành phần chính như sau:

 CSDL không được đồng bộ hóa (Nonreplicable database)


 Tập hợp các bản sao (Replica Set)
 Thành viên của tập hợp (Members of Replica Set)
 Thành phần vận chuyển (Transporter)

    Có hai dạng xung đột trong việc đồng bộ hóa CSDL: các xung đột
phát sinh khi các replica trong CSDL được bắt đầu đồng bộ gọi là xung
đột đồng bộ (replication conflict), xung đột phát sinh khi nhiều người
dùng đồng thời muốn thay đổi sửa chửa cùng một record trong CSDL
được gọi là xung đột chế độ bảo vệ (locking conflict). Ta hãy cùng xem
xét các trường hợp này.

Xung đột đồng bộ

    Trong quá trình thiết lập replica, ví dụ khi Bạn kéo CSDL có sẵn và
thả vào Windows 95 briefcase, Jet Engine sẽ yêu cầu một hệ thống chỉ
mục thống nhất toàn cục từ phía hệ điều hành (Globally Unique ID,
GUID) liên kết với từng dòng dữ liệu trong Design Master (hình 14).
Các chỉ mục GUID này sẽ được chép cho từng replica trong CSDL. Nếu
có sự thay đổi về dữ liệu trong Design Master hoặc trong một replica
nào đó thì chỉ mục sẽ nhảy thêm một giá trị, và khi ấy Access dễ dàng
kiểm tra dòng nào có sự thay đổi bằng cách so sánh giá trị chỉ mục của
mỗi dòng, xác định nội dung thay đổi và sau đó cập nhật cho các replica
còn lại.

    Nếu cùng lúc trong hai replica có sự thay đổi trên cùng một dòng thì
Access sẽ chọn dựa trên nguyên tắc sau:

 Chọn replica có giá trị chỉ mục dòng bị thay đổi cao hơn. Bởi vì
mỗi khi dòng có sự thay đổi chỉ mục của nó sẽ nhảy như đã nêu ở
trên.
 Nếu hai dòng có cũng giá trị chỉ mục Access sẽ chọn ngẫu nhiên,
bởi vì theo logic đồng bộ Access không thể xác định dữ liệu trong
dòng nào sẽ là dữ liệu đúng. Trong trường hợp này người dùng có
dữ liệu bị "từ chối" sẽ được Access thông báo thông qua Conflict
Wizard, và họ có phương án chọn lựa: chấp nhận thay đổi hay
không chấp nhận.

Xung đột bảo vệ

    Một khi thuộc tính record được đặt là không bảo vệ hay không khóa
(No Locks) sẽ có khả năng xảy ra xung đột khi nhiều người dùng cùng
chỉnh sửa và lưu một record. Trong trường hợp này có thể khắc phục
bằng cách thiết lập các chế độ khóa record khác nhau như khóa toàn bộ
các record, khóa các record đang được hiệu chỉnh trong mục Options
trên menu Tools, chọn tab Advanced (hình 15). Chế độ No Locks cho
phép nhiều người cùng chỉnh sửa một record, nhưng record sẽ bị khóa
ngay tại thời điểm nó chuẩn bị được lưu, do đó dẫn đến thông báo xung
đột.

    Khi hai người cùng lưu record, Access sẽ gởi một thông báo cho
người thứ hai (tức người bị trễ hơn). Người này có thể loại bỏ những
thay đổi của họ trên record, copy nó vào clipboard hay chấp nhận thay
đổi từ phía người đầu tiên. Bằng cách này họ có thể sau đó ghi đè những
thay đổi của mình lên những thay đổi của người khác.
    Bên cạnh những điều đã nêu ở trên có thể nhận thấy một điểm như
sau: hầu hết những hệ dùng để thiết kế các ứng dụng quản lý CSDL, bao
gồm cả dBASE và Paradox, đều lưu những thành phần của CSDL như
bảng, báo cáo hoặc biểu mẫu dưới dạng những tập tin riêng biệt. Một
ứng dụng hoàn chỉnh có thể chứa đến hàng trăm tập tin lẻ như vậy.
Trong Access thì trái lại, tất cả các tập hợp của bảng, biểu mẫu, báo cáo,
macro hay các module đều được lưu trong cùng một tập tin .MDB. Và
chúng ta có thể đặt cho chúng những tên dài, dễ hiểu như Sale Report
For Current Month hay Productõs Inventory Report mà không sợ bị hạn
chế bởi giới hạn tên 8.3 của DOS. Tuy vậy Bạn vẫn có thể làm việc với
các đối tượng được lưu trữ trong các CSDL khác nhau, ví dụ như Bạn có
thể lưu bảng trong một CSDL và các biểu mẫu hay báo cáo trong một
CSDL khác.

    Trên đây chúng ta đã cùng xem qua một số đặc điểm về cấu trúc của
Access for Windows 95. Trong kỳ tới chúng ta sẽ tìm hiểu về cấu trúc
của Microsoft Powerpoint 7.0.

Vous aimerez peut-être aussi