177 Access gồm một công cụ rất mạnh mà bạn có thể sử dụng để phân tích dữ liệu trong một hoặc nhiều bảng. Mục đính của việc phân tích là xác định nếu có ít dư thừa trong việc lưu trữ dữ liệu trong bảng. “Ít dư thừa” ở đây có nghĩa là Access cố gắng loại bỏ bất kỳ dữ liệu nào mà được lưu trữ trong bảng nhiều hơn một lần. Ví dụ, trường “company name” nên được đưa ra ngoài bảng gốc và được thay thế bằng một bảng mới. Mặc dù kết quả sẽ là 2 bảng (bảng gốc và bảng mới), nhưng cơ sở dữ liệu sẽ hiệu quả hơn vì thông tin không bị nhân đôi trong bảng gốc. Một ví dụ có lẽ là cách tốt để chứng minh quá trình phân tích. Ví dụ trong phần này dựa trên cơ sở dữ liệu Accounts.mdb. Cơ sở dữ liệu này chứa một bảng tên là Invoices, có trên 1000 hóa đơn trong đó. Một số trường tối thiểu được duy trì trong bảng nhưng có khá nhiều sự dư thừa trong dữ liệu.
Bắt đầu phân tích
Với cơ sở dữ liệu Accounts, kích chuột vào nút Tables trong cửa sổ Database. Kích chọn bảng Invoices. Sau đó, chọn Analyze từ thực đơn Tools. Access hiển thị một trình đơn phụ từ việc chọn bảng như hình sau:
Hình 1: Hộp thoại Table Analyzer Wizard.
Việc đầu tiên trên màn hình Wizard là việc giải thích mục đích của Table Analyzer Wizard. Bạn có thể đọc hết các thông tin nếu muốn, sau đó kích chuột vào nút Next khi đã sẵn sàng Hộp thoại hiển thị như hình sau:
178 Hình 2: Chọn bảng để phân tích
Hầu hết các cơ sở dữ liệu có thể có nhiều hơn một bảng. Thật may là cơ sở dữ liệu này chỉ chứa một bảng có tên Invoices. Vì đây là bảng đã mặc định được chọn, kích chuột vào nút Next. Access hiển thị hộp thoại tiếp theo:
Hình 3: Bắt đầu quá trình phân tích
Ở bước này bạn cần quyết định là mình muốn cho phép Wizard lựa chọn các trường trong bảng chọn hay bạn muốn thực hiện theo cách thủ công. Vì công việc của một Wizard thực hiện khá dễ dàng, ta chọn Yes, let the wizard decide. Thậm chí nếu Wizard thực hiện lựa chọn không tốt, bạn có thể hủy bỏ quyết định ở bước tiếp theo.
179
Xác nhận việc tách bảng
Khi bạn đã sẵn sàng, kích chuột vào nút Next. Access hiển thị như hình sau:
Hình 4: Xác minh việc tách bảng
Chú ý: Table Analyzer Wizard thiết lập các mối quan hệ giữa các bảng. Bạn sẽ tìm hiểu rõ hơn mối liên hệ được thực hiện như thế nào ở chương 13 “Tìm hiểu mối quan hệ dữ liệu”
Ở phần này, Wizard cho bạn thấy những gì nó đề ra để làm. Đối với bảng Invoices gốc, Wizard dự định chia thành 3 bảng. Hãy xem các trường mà Wizard gợi ý chuyển thành mỗi bảng, rất dễ để thấy mỗi bảng chứa thông tin các hóa đơn giao dịch, các khách hàng, và các sản phẩm. Sử dụng hộp thoại này, bạn có thể đặt tên cho các bảng.
Để thấy cách thực hiện như thế nào, phải chắc chắn Table1 được chọn (hình 4). Sau đó kích chuột vào nút Rename (ở gần phía góc trên bên phải hộp thoại). Access hiển thị một hộp thoại nhỏ cho phép bạn xác định tên bảng mới. Đối với Table1, tên nên được đặt là Invoice
Transactions. Sau đó, kích chuột vào nút OK. Access cập nhật tên như trong thanh tiêu đề đối với bảng có tên mới.
Bạn nên lặp lại công việc này để đặt tên cho Table2 và Table3 là Customers và Products. Kích chuột lên thanh tiêu đề mỗi bảng và sau đó đổi tên. Khi hoàn thành, các bảng sẽ xuất hiện như hình sau:
180 Hình 5: Các bảng đã được đổi tên.
Những việc khác bạn có thể làm trong hộp thoại này (ngoài việc đặt tên cho các bảng) là ghi đè cách Wizard chia bảng. Khi thực hiện phân tích, bạn sẽ muốn chắc chắn rằng mỗi bảng được đưa ra phải chứa các trường liên quan từ bảng gốc. Trong ví dụ này, Wizard đã thực hiện rât tốt, nó chỉ ra rằng chúng ta đã có tên bảng Customers cần có một CustomerID duy nhất cũng như CustomerName và Discount.
Nếu bạn cần ghi đè việc phân chia của Wizard, tất cả cần làm là kích chuột vào một tên trường và kéo nó từ một bảng tới bảng khác. Tuy nhiên, trong ví dụ này không thật sự cần thiết phải làm như vậy.
Xác nhận khóa chính
181 Hình 6: Thiết lập khóa chính
Hộp thoại này tương tự như hộp thoại đã sử dụng trong phần trước. Tuy nhiên, khác nhau ở các nút điều khiển phía trên cùng hộp thoại. Wizard sẽ hỏi để xác nhận mỗi bảng phải có một khóa chính. Những khóa chính cho các bảng Customers và Products được tạo bởi Wizard. Tuy nhiên, Wizard quên rằng trường ID sẽ là một khóa chính trong bảng Invoice Transactions.
Để xác định trường ID là một khóa, đầu tiên kích chọn tên trường. Sau đó kích chọn công cụ mà biểu thị chiếc khóa. Access đáp lại bằng cách đặt một khóa nhỏ ở phía bên trái trường ID trong bảng Invoice Transaction.
Lỗi Correcting Typographical
Khi kích chuột vào nút Next, Wizard sẽ phân tích dữ liệu trong bảng được gợi ý và hiển thị những gì có thể được cho là lỗi. Access thực hiện điều này với mỗi bảng mới được tạo bởi Wizard. Vì hai bảng mới (Customerds và Products) được tạo bởi Wizard trong ví dụ này, điều này có nghĩa Access hiển thị hai hộp thoại typographical correction. Hộp thoại đầu tiên cho bảng Customer như hình sau:
182 Hình 7: Lỗi Correcting typographical đối với bảng Customers
Đây là hộp thoại đã hiển thị 5 tên khách hàng mà cho rằng có thể bị lỗi. Nó đưa ra kết quả này bằng cách sử dụng một thuật giải bên trong. Nếu chính tả của dữ liệu đúng với dữ liệu trong bảng thì nó được cho là lỗi tiềm ẩn. Tất cả bạn cần làm là sử dụng danh sách kéo xuống trong cột Correction để chọn chính tả đúng hoặc thiết lập (Leave As Is).
Chú ý: Nếu bạn đang phân tích một bảng lớn mà đã làm việc với nhiều người trong một thời gian dài, rất có thể bạn sẽ gặp nhiều lỗi trong tài liệu. Phải chắc chắn bạn dành thời gian để sửa những lỗi cần thiết trong bước này; nó sẽ dễ hơn là kiểm tra lỗi sau đó.
Trong ví dụ bảng Customers này, không có lỗi chính tả. Bạn nên thay đổi cột Corrections bằng tất cả các bản ghi (Leave As Is) mà thiết lập được chọn. Khi hoàn thành, kích chuột vào nút Next. Wizard sau đó hiển thị bảng Products như hình 8.
183 Hình 8: Lỗi Correcting typographical đối với bảng Customers.
Nó chỉ xảy ra như vậy khi một bản ghi được xác định là có thể bị lỗi.Tất nhiên, trong bảng riêng của bạn thì có thể có lỗi. Bạn nên xuyên suốt quá trình sửa lỗi thật chính xác như làm với bảng Customers. Trong trường hợp này, bạn chọn tùy chọn Leave As Is cho cột Correction.
Kết thúc việc phân tích.
Khi kích chuột vào nút Next, Wizard hiển thị bước cuối cùng như hình sau
184 Bước cuối cùng trong Table Analysis Wizard là nơi bạn xác định nếu muốn tạo một truy vấn trông như bảng gốc. Nếu không muốn tạo truy vẫn bạn có thể tích chọn No, don’t create the query và kích nút Finish để kết thúc quá trình phân tích bảng. Trong trường hợp bạn muốn tạo truy vấn, nó có nghĩa rằng Wizard tạo một truy vấn là sự pha trộn của 3 bảng, được kết hợp như bảng gốc.
Kích chọn Yes, create the query và kích nút Finish để hoàn thành quá trình phân tích bảng. Access hiển thị truy vấn mới lên màn hình như hình 10.