1 Mục lục 1 2 Làm quen với visual basic 0 9



tải về 1.69 Mb.
trang24/39
Chuyển đổi dữ liệu09.10.2016
Kích1.69 Mb.
#32631
1   ...   20   21   22   23   24   25   26   27   ...   39

11.4Bài tập


Dùng trình tạo ứng dụng tự động tạo ứng dụng kiểu Explorer.

Dùng trình xây dựng dữ liệu tự động tạo biểu mẫu Master/Detail.


12Những khái niệm cơ bản về CSDL


  • Cơ sở dữ liệu là gì ?

  • Sử dụng cửa sổ xem dữ liệu

  • Tạo trình thiết kế môi trường dữ liệu

  • Sử dụng các điều khiển dữ liệu để tạo giao diện người sử dụng

Cơ sở dữ liệu là phần cốt lõi của nhiều ứng dụng phần mềm kinh doanh. Cơ sở dữ liệu rất phổ biến trong thế giới kinh doanh vì chúng cho phép truy cập tập trung đến các thông tin theo một các 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ì. Chương này tìm hiểu về các khái niệm cơ bản để thiết lập và bảo trì một cơ sở dữ liệu cho một doanh nghiệp, bao gồm cơ sở dữ liệu là gì, tại sao cơ sở dữ liệu hữu dụng và dùng cơ sở dữ liệu như thế nào để tạo ra các giải pháp cho doanh nghiệp.

Nếu bạn đã từng dùng Visual Basic và từng lập trình với cơ sở dữ liệu. Bạn sẽ thấy chương trình này khá cơ bản, tuy nhiên nó sẽ giúp bạn có được một nền tảng tổt của một hệ quản trị cơ sở dữ liệu nói chung.

Mặc dù các khái niệm cơ sở dữ liệu gần như tương tự giữa các hệ quản trị cơ sở dữ liệu, các nhà cung cập các hệ quản trị cơ sở dữ liệu thường có các tên gọi khác nhau cho các sản phẩm riêng của họ. Ví dụ, nhiều nhà lập trình Client / Server đề cập đến truy cấn chứa trong cơ sở dữ liệu như là View ; trong khi các nhà lập trình Access và Visual Basic lại gọi truy vấn là QueryDef. Cả hai khái niệm này đều là như nhau.

Nếu bạn đã từng dùng phiên bản cũ của VB - nhất là Visual Basic 3, ta cần biết một vài điểm mới trong lập trình cơ sở dữ liệu. Visual Basic chứa phiên bản mới nhất của Bộ máy cơ sở dữ liệu Jet ( Visual Basic chia sẻ với Microsoft Access ). Phiên bản này của Jet đưa ra các bổ sung cho bộ máy cơ sở dữ liệu sẽ được trình bày trong chương này. Ngoài ra, việc bổ sung ADO (Đối tượng dữ liệu ActiveX –ActiveX Data Object ), cũng như các công cụ liên quan trong môi trường phát triền, thể hiện những thay đổi cho các nhà lập trình Visual Basic. Nếu đã quen với phát triển dữ liệu 32 bit trong Visual Basic, Bạn có thể nhảy thẳng đến chương “Đối tượng dữ liệu ActiveX – ADO”.


12.1Cơ sở dữ liệu là gì?


Cơ sở dữ liệu là một kho chứa thông tin. Có nhiều loại cơ sở dữ liệu, nhưng ta chỉ đề cập đến cơ sở dữ liệu quan hệ, là kiểu cơ sở dữ liệu phổ biến nhất hiện nay.

Một cơ sở dữ liệu quan hệ:



  • Chứa dữ liệu trong các bảng, được cấu tạo bởi các dòng còn gọi là các mẩu tin, và cột gọi là các trường.

  • Cho phép lấy về ( hay truy vấn ) các tập hợp dữ liệu con từ các bảng

  • Cho phép liên kết các bảng với nhau cho mục đích truy cập các mẩu tin liên quan với nhau chứa trong các bảng khác nhau.

12.1.1Bộ máy (Engine) cơ sở dữ liệu là gì?


Chức năng cơ bản của một cơ sở dữ liệu được cung cấp bởi một bộ máy cơ sở dữ liệu, là hệ thống chương trình quản lý cách thức chứa và trả về dữ liệu.
Bộ máy cơ sở dữ liệu trình bày trong tài liệu này là Microsoft Jet, Jet không phải là một thương phẩm, thay vào đó, nó 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 đưa bộ máy này vào sử dụng với Visual Basic 3.0 và Access 1. Sau nhiều lần nâng cấp, phiên bản Jet dùng với quyển sách này là Jet 3.51, đi kèm với Visual Basic và Access.

Chú ý : Ngoài Jet, còn nhiều bộ máy cơ sở dữ liệu khác, như vì Visual Basic hỗ trợ Jet một các nội tại nên quyển sách này ưu tiên nói về Jet. Hơn nữa Jet còn hỗ trợ các bộ máy cơ sở dữ liệu khác. Trong chương “Làm quen với SQL Server “ giới thiệu một bộ máy hoàn toàn khác SQL Server 6.5


12.1.2Bản và trường


Các 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 ta tạo một cơ sở dữ liệu để quản lý tài khoản trong công việc kinh doanh ta phải tạo một bảng cho khách hàng, một bảng cho Hoá đơ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ẩu riêng rẽ bên trong phân nhóm dữ liệu.

Mẩu tin: Chứa các môi 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ụ như mỗi mẩu tin thể hiện một mục trong danh bạ địa chỉ chứa trong trường Tên và họ, địa chỉ, thành phố, tiểu bang, mã ZIP và số điện thoại.

Ta có thể dùng chương trình Visual Basic để tham chiếu và thao tác với cơ sở dữ liệu, bảng, mẩu tin và trường.


12.1.2.1Thiết kế cơ sở dữ liệu


Để tạo một cơ sở dữ liệu, trước hết ta phải xác định thông tin gì cần theo dõi. Sau đó, ta thiết kế cơ sở dữ liệu, tạo bảng chứa các trường định nghĩa kiểu dữ liệu sẽ có. Sau khi tạo ra cấu trúc cơ sở dữ liệu, tạo bảng chứa các trường định nghĩa kiểu dữ liệu sẽ có. Sau khi tạo ra cấu trúc cơ sở dữ liệu, cơ sở dữ liệu có thể chứa dữ liệu dưới dạng mẩu tin. Ta không thể đưa dữ liệu vào mà không có bảng hay đị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 cực kỳ quan trọng, nhất là rất khó thay đổi thiết kế một khi ta đã tạo xong nó.
Ví dụ ta tạo một bảng sau :

Bảng khách hàng

Bảng tblRegion

tblCustomer

TblRegion

ID

State

FirstName

RegionName

LastName




Company




Address




City




State




Zip




Phone




Fax




Email



Có quan hệ giữa 2 bảng thông qua trường State (Trạng thái ). Đây là mối quan hệ một - nhiều, đối với một mẩu tin trong tblRegion, có thể không có, hoặc có nhiều mẩu tin tương ứng trong bảng tblCustomer.

Cụm từ “tbl” thể hiện tên bảng, tên trường hiển thị đầy đủ, không chứa khoảng trắng hay những ký tự đặc biệt khác như dấu gạch dưới.
Bảng hoá đơn :


TblOrder

ID

CustomerID

OrderDate

ItemID

Amount



12.1.3Recordset là gì ?


Một khi ta có khả năng tạo bảng, ta cần phải biết cách thao tác chúng.
Thao tác trên các bảng liên quan đến việc nhập và lấy về dữ liệu từ các bảng khác cũng như việc kiểm tra và sửa đổi cấu trúc bảng. Để thao tác với cấu trúc bảng, ta dùng các câu lệnh đinh nghĩa dữ liệu hoặc một đối tượng TableDef (được giới thiệu trong chương “ Các đối tượng truy cập dữ liệu” ). Để thao tác dữ liệu, trong một bảng, ta dùng Recordset.

Một 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 lấy về từ cơ sở dữ liệu. Về khái niệm, nó tương tự một bảng, nhưng có thêm một vài thuộc tính riêng biệt quan trọng.

Các RecordSet được thể hiện như là các đối tượng, về khái niệm tương tự như là các đối tượng giao diện người sử dụng ( như là các nút lệnh và hộp văn bản ) mà ta đã làm quen với Visual Basic trong các chương trước. Cũng như các kiểu đối tượng khác trong Visual Basic, các đối tượng Recordset có các thuộc tính và phương thức riêng.

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


12.1.4Các kiểu cơ sở dữ liệu


Cơ sở dữ liệu nội tại của Visual Basic, Jet, cung cấp 21 kiểu dữ liệu khác nhau.


Kiểu dữ liệu

Mô ta

Binary

Dùng để chứa các khối dữ liệu lớn như là đồ hoạ và các tập tin âm thanh số hoá.

Boolean

Giá trị logic đúng hoặc sai

Byte

Giá trị số nguyên một byte từ 0 đến 255

Currency

Trường số có thuộc tính đặc biệt để chứa các trí trị tiền tệ

Date/Time

Giá trị 8 byte thể hiện ngày hoặc giờ từ ngày 1/1/100 đến ngày 31/12/9999

Double

Kiể dữ liệu số 8 byte dấu phẩy động

GUID

Là một số 128 bye, cũng được gọi là định danh toàn thể duy nhất. Ta dùng số này để nhận dạng duy nhất các mẩu tin. Số này được dùng trong các bản sao

Integer

Số 2 byte đầu đủ từ -32768 đến 32767

Long

Số 4 byte đầy đủ từ -2,147,483,648 đến 2,147,483,647

Long binary

Trường giá trị lớn nhất có thể chứa các giá trị thập phân như là hình ảnh hay tập tin

( OLE Object )

Kiểu OLE Object nhúng trong cơ sở dữ liệu có thể lên tới 1 gigabyte.

Meno

Trường gí trị lớn có thể chứa đến 65,535 ký tự. Ta không cần thiết phải khai báo trước chiều dài của trường này.

Single type

Dữ liệu số 4 byte, dấu phẩy đơn

Text

Kiểu dữ liệu cáo chiều dài cố định, đòi hởi ta phải khai báo chiều dài của trường khi ta khai báo kiểu dữ liệu. Trường văn bản có thể dài từ 1 đến 255 ký tự.

VarBinary

Mẫu dữ liệu nhị phân biến đổi ( dùng với ODBCDirect )

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ụ, ta không thể quy định một trường cơ sở dữ liệu là kiểu định nghĩa bởi người dùng hay biến Object của Visual Basic. Hơn nữa nếu ta dùng Microsoft Access để tạo cơ sở dữ liệu sử dụng trong các ứng dụng Visual Basic, lưu ý rằng một số kiểu dữ liệu hữu dụng trong ứng dụng Visual Basic không xuất hiện trong thiết kê bảng của Microsoft Access. Bởi vì Visual Basic hỗ trợ lập trình cơ sở dữ liệu khác với những gì tạo bằng Microsoft Access.


12.1.5Tạo lược đồ cơ sở dữ liệu


Mặc dù việc tạo danh sách các bảng và trương là cách tốt nhất để xác định cấu trúc cơ sở dữ liệu, ta còn có một cách để xem các bảng và tường dưới dạng đồ hoạ. Sau đó, không chỉ xem được các bảng và trường hiện có mà còn thấy được mối quan hệ giữa chúng. Để làm được điều này, ta tạo lược đồ.

Lược đồ là sơ đồ các con đường trong cơ sở dữ liệu. Lược đồ thể hiện các bảng, trường và mối quan hệ trong cơ sở dữ liệu. Có lược đồ cơ sở dữ liệu là phần quan trọng trong thết kế phần mềm bởi vì nó cho ta một cách nhìn nhanh về những gì trong cơ sở dữ liệu.

Các lược đồ vẫn có vị trí quan trọng lâu dài sau khi quá trình thiết kế cơ sở dữ liệu hoàn tất. Ta sẽ cần đến lược đồ để thi hành các câu truy vấn trên nhiều bảng. Một lược đồ tốt sẽ trả lời được các câu hỏi như là, “ Những bảng nào cần nối với nhau để đưa ra danh sách các hoá đơ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 đồ, mặc dù cũng có nhiều công cụ để thực hiện. Công cụ vẽ Visio rất uyển chuyển, nhanh và dễ dùng. Hơn nữa nó tích hợp với các ứng dụng Windows khác, nhất là Microsoft Office.

Phần này xem visio như một công cụ vẽ để ghi chếp về cơ sở dữ liệu. Nhung ta còn có thể dùng Visio như một công cụ phát triển. Với Visio Professional, ta có thể thiết kế cơ sở dữ liệu bằng đồ hoạ. Sản phẩm có khả năng lấy thiết kế đồ hoạ và tạo ra cơ sở dữ liệu thực sự. Tham khảo thông tin về Visio tại địa chỉ http://WWW.Visio.Com

12.1.6Dùng Visual Basic để tạo một cơ sở dữ liệu


Sau khi tạo xong lược đồ và chỉnh sửa thiết kế, đã đến lúc ta phải tạo cơ sở dữ liệu thực sự. Đạo cơ sở dữ liệu Jet dùng Visual Basic, ta có thể dùng tiện ích gọi là Visual Data Manager. Tiện ích này trong ấn bản Visual Basic Professional và Enterprise cho phép ta tạo các cơ sở dữ liệu tương thích với Microsoft Access.
Lưu ý : Do Visual Basic và Access 97 chia sẻ cùng bộ máy cơ sở dữ liệu ta có thể hoặc là dùng Visual Basic hoặc là dùng Access để tạo một cơ sở dữ liệu. Cơ sở dữ liệu cuối cùng đều như nhau.

Để chạy Visual Data Manager, ta theo các bước sau :



  1. Từ menu của Visual Basic chọn mục Add-ins, Visual Data Manager, cửa sổ Visual Data Manager sẽ xuất hiện.

  2. Từ menu của Visual Data Manager, chọn File, New. Từ menu con, chọn Microsoft Access, Version 7.0 MDB. Một hộp thoại tập tin xuất hiện :

Lưu ý : “ Version 2.0 MDB “ là phiên bản của Jet tương thích với phiên bản 16 –bit của Access và Visual Basic

  1. Chọn thư mục ta muốn lưu cơ sở dữ liệu cơ sở dữ liệu mới rồi gõ tên. ( Vì mục đích minh hoạ cho cuốn sách này, bạn có thể chọn tên cơ sở dữ liệu là novelty.mdb )

  2. Nhấn chuột vào nút Save. Cơ sở dữ liệu mới được tạo và Visual Data Manager sẽ hiển thị một vài cửa sổ cho phép ta làm việc với cơ sở dữ liệu được hiển thị như hình dưới đây.




Cửa sổ Visual Data Manager

12.1.6.1Sử dụng cửa sổ cơ sở dữ liệu


Cửa sổ DataBase của Visual Data Manager chứa tất cả các thành phần của cơ sở dữ liệu. Trong cửa sổ này ta có thể xem các thuộc tính, kiểm tra các bảng và các phần tử khác và thêm các thành phần mới vào cơ sở dữ liệu.

Để xem các thuộc tính ta vừa tạo, nhấn chuột vào dấu cộng ở bên trái của mục Properties. Mục này sẽ mở ra như hình dưới đây.



Xem các thuộc tính của cơ sở dữ liệu mới.


12.1.6.2Tạo bảng


Một đặc tính của Visual Data Manager là nó không thể cho ta cách rõ ràng để tạo bảng mới trong cơ sở dữ liệu mà ta vừa tạo. Bởi vì các phần từ xuất hiện trong cửa sổ Database của Visual Data Manager rất nhạy với việc nhấn chuột phải. Nhưng một khi ta dùng nút chuột phải việc tạo một bảng mới thật là đơn giản.

Ví dụ : Để tạo một bảng mới ta theo các bước sau:



  1. Trong cửa sổ Database của Visual Data Manager, nhấn chuột phải vào Properties. Menu ngữ cảnh của cửa sổ sẽ xuất hiện.

  2. Chọn New Table. Hộp thoại Table Structure sẽ xuất hiện như hình dưới đây.

Hộp thoại Table Structure.


Trong hộp thoại Table Structure, ta có thể tạo cấu trúc bảng, chỉ định các trường, kiểu dữ liệu và chỉ mục. Ví dụ, ta sẽ tạo cấu trúc bảng để chứa khách hàng.

Để làm được điều này, theo các bước sau:



  1. Gõ tblCustomer trong ô Table Name.

  2. Nhấn chuột vào nút Add Field. Hộp thoại Add Field sẽ xuất hiện, được hiển thị như hình dưới đây.


Hộp thoại Add Field.


Hộp thoại Add field cho phép ta thêm một trường vào một bảng tạo bởi hộp thoại Table structure của Visual Data Manager.

  1. Trong ô Name gõ First Name. Đây sẽ là tên của trường mà ta tạo trong bảng khách hàng.

  2. Trong ô size gõ 25. Điều này chỉ ra rằng tên có thể lên đến 25 ký tự, nhưng không thể dài hơn. Điều này có nghĩa là cơ sở dữ liệu sẽ chứa các tên hiệu quả hơn.

  3. Chọn Fixed Field để chỉ ra rằng đâu không phải là trường có chiều dài biến đổi, rổi nhấn nút OK. ( Lưu ý rằng rất khó sửa đổi một trường một khi ta đã tạo xong nó.Vì vậy, phải chắc chắn rằng mọi thứ ta quy định là chính xác.) Trường được thêm vào cấu trúc cơ sở dữ liệu. Các hộp văn bản trong hộp thoại Add Field sẽ được xoá. Cho phép ta thêm vào một trường khác ngay lập tức.

  4. Bây giờ ta có thể thêm các trường khác vào cấu trúc bảng. Sử dụng Add Field, thêm các trường vào tblCustomer các trường sau đây :




Tên trường

Kiểu dữ liệu

Kích cỡ dữ liệu

Fixed

First Name

Text

25

Yes

ID

Long, AutoInerField=true

N/A

N/A

LastName

Text

45

Yes

Company

Text

100

Yes

Address

Text

100

Yes

City

Text

100

Yes

State

Text

2

Yes

Zip

Text

9

Yes

Phone

Text

25

Yes

Fax

Text

25

Yes

Email

Text

255

Yes




  1. Cần kiểm tra hộp AutoInerField khi tạo trường ID để đảm bảo rằng mọi khách hàng ta tạo đều có số hiệu duy nhất. Bởi vì bộ máy cơ sở dữ liệu tăng số trong trường một cách tự động, ứng dụng cơ sở dữ liệu sẽ không phải tự sinh ra số hiệu duy nhất.

  2. Khi ta hoàn tất việc nhập trường, nhấn nút bấm Close.

12.1.6.3Chỉ định chỉ mục và khoá chính


Đến đây ta vừa tạo xong một bảng cơ bản, phần còn lại là ta cần chỉ ra các chỉ mục. Một chỉ mục là một thuộc tính ta có thể gán cho một trường để tạo sự dễ dàng cho bộ máy cơ sở dữ liệu khi lấy về thông tin chứa trong trường đó. Ví dụ, trong cơ sở dữ liệu theo dõi khách hàng, ứng dụng có thể tìm kiếm các khách hàng theo họ, mã Zip và các số hiệu ID cá nhân. Do đó, cần thiết phải tạo các chỉ mục trên những trường này để giúp cho quy trình lấy mẩu tin dựa trên các trường này nhanh hơn.

Một khi ta đã nhận ra lợi ích của các chỉ mục trong việc thiết kế cơ sở dữ liệu, ta có thể tự đặt ra các câu hỏi như : Nếu các chỉ mục giúp việc tìm kiếm nhanh hơn, tại sao ta không đặt một chỉ mục trong tất cả các trường của mọi bảng ? Câu trả lời là các chỉ mục làm cho cơ sở dữ liệu của ta phình to hơn về mặt vật lý, vì vậy, nếu ta có quá nhiều chỉ mục, sẽ lãng phí bộ nhớ và làm cho máy tính của ta chạy chậm hơn. Điều này hiển nhiên làm mất đi các lợi thế ban đầu. Không có quy định về việc nên tạo bao nhiêu chỉ mục cho mỗi bảng, nhưng nói chung, ta nên tạo một chỉ mục dựa trên các trường mà ta nghĩ là dùng thường xuyên trong các câu truy vấn.



  1. Khoá chính Là kiểu chỉ mục đặc biệt. Một trường được coi là một khoá chính vủa bảng phục vụ cho việc xác định duy nhất mẩu tin. Vì vậy, không như các kiểu chỉ mục khác, sẽ không có hai mẩu tin trên cùng một bảng mà có cùng giá trị cho trường khoá chính. Tương tự, khi thiết kế một trường làm khoá chính, không có mẩu tin nào chứa giá trị rỗng, giá trị NULL ở trường này. Khi chỉ ra một trường làm khoá chính của bảng, ta có thể tạo mối quan hệ giữa bảng này với các bảng khác trong cơ sở dữ liệu.

Mỗi bảng mà ta thiết kế phải có ít nhất một khoá chính, và nó phải được đánh số chỉ mục trên những trường mà ta mong đợi sẽ được truy vấn nhiều nhất. Trong trường hợp của bảng tblCustomer, cũng như với nhiều bảng cơ sở dữ liệu, khoá chính sẽ là trường ID. Các chỉ mục phụ là trường LastName và FirstName
Để tạo các chỉ mục và các khoá chính, theo các bước sau :

  1. Trong hộp thoại Table Structure, nhấn chuột vào nut Add Index. Hộp thoại Add Index xuất hiện

Hộp thoại Add Index.



Trước hết ta sẽ tạo khoá chính cho bảng.


  1. Gõ Primary Key trong hộp văn bản Name

  2. Nhấn đúp chuột vào trường ID trong danh sách các trường có sẵn. ID được thêm vào danh sách các trường có chỉ mục. Hộp đánh dấu Primary và Unique phải được chọn theo mặc định.

  3. Nhấn OK, Hộp văn bản bị xoá và khoá chính được thêm vào thiết kế bảng. Lưu ý rằng chỉ mục có tên như tên trường ( mặc dù đã quen với Microsoft Access m ta có thể không biết điều này, bởi vì Access che tên chỉ mục trên giao diện người sử dụng ). Truy cập đến tên của một trường chỉ mục thì thật thuận tiện cho một mục đính nào đó.

Giờ đây ta có thể tạo thêm hai chỉ mục cho các trường FirstName và LastName. Để làm được điều này ta làm theo các bước sau :

  1. Gõ tên chỉ mục FirstNameIndex trong hộp văn bản Name

  2. Nhấn đúp chuột trên trường FirstName trong danh sách các trường hiện có, FirstName được thêm vào trong danh sách các trường có chỉ mục.

  3. Bỏ chọn các hộp đánh dấu Primary và Unique, sau đó nhấn nut OK.

Cảnh Báo : Nếu ta để hộp đánh dấu Unique được chọn, ta sẽ không thể thêm hai người có cùng tên vào cơ sở dữ liệu.

  1. Lặp lại quy trình này với truờng LastName, tạo một chỉ mục là LastIndex.

  2. Nhấn nút chuột Close. Ta sẽ gặp lại hộp hội thoại Table Structure.

  3. Để tạo bảng, nhấn nút Build the Table. Bảng sẽ được tạo và thêm vào cửa sổ Database của Visual Data Manager


Tạo bảng cho cơ sở dữ liệu.

12.1.6.4Thay đổi thuộc tính của các trương có sẵn


Visual Data manager có vẻ hơi khó để sửa đổi phần lới các thuộc tính quan trọng của một bảng ( không giống như Microsoft Access cho phép ta thay hầu hết cấu trúc bảng mọi lúc ). Nói chung, khi ta muốn sửa đổi thuộc tính của trường bằng cách sử dụng Visual Data Manager ta phải xoá trường để tạo lại.
12.1.6.4.1Sửa đổi chiều dài của trường LastName

Giả định rằng ta muốn sửa đổi chiều dài của trường LastName. Để làm được điều này, theo các bước sau :

  1. Trong các cửa sổ Database của Visual Data Manager, nhấn chuột phải lên tblCustomer.

  2. Từ menu ngữ cảnh, chọn Design. Hộp thoại Table Structure xuất hiện.
12.1.6.4.2Xoá chỉ mục

Để xoá trường LastName, ta phải xoá chỉ mục của nó trước. Để làm được điều này, theo các bước sau :

  1. Chọn LastNameIndex trong danh sách các chỉ mục

  2. Nhấn nút RemoveIndex

  3. Khi một thông điệp hỏi ta muốn xoá chỉ mục này không, nhấn Yes. Chỉ mục được xoá
12.1.6.4.3Xoá trường LastName

Bây giờ ta có thể xoá trường này. Để làm được điều này, theo các bước sau:

  1. Chọn trường LastName trong danh sách các trường.

  2. Nhấn nút Remove Field. Khi xuất hiện thông điệp hỏi ta muốn xoá trường này hay không, nhấn Yes. Trường này sẽ bị xoá khỏi bảng.

Bây giờ thì ta có thể sửa đổi trường bằng cách thêm nó trở lại bảng, lần này với chiều dài 50. Đừng quên thêm chỉ mục cho trường này sau khi thêm nó trở lại bảng.

Mẹo vặt : Tiến trình sửa một trường có sẵn trong Visual Data Manager có vẻ khá phức tạp. Trong Microsoft Access, việc sửa đổi trên những trường cõ sẵn thật dễ dàng, vì lý do đó, các nhà lập trình cơ sở dữ liệu khéo léo trong Visual Basic sẽ giữ một bản sao của Access ở đâu đó để phòng hờ.

12.1.6.5Dùng Visual Data Manager để tạo giao diện


Một ưu điểm của Visual Data Manager so với Microsoft Access là khả năng tạo các biểu mẫu Visual Basic dựa trên cấu trúc dữ liệu được tạo.

Giả định rằng ta đã hoàn tất khâu thiết kế tblCustomer và muốn thêm một biểu mẫu Visual Basic vào đề án dựa trên thiết kế bảng . Để làm được điều này, theo các bước sau :



  1. Từ menu Visual Data Manager chọn Utility, Data Form Design. Hộp thoại Data Form Design xuất hiện.

  2. Trong hộp thoại văn bản Form name, gõ Customer

  3. Trong hộp kết hợp RecordSource, chọn tblCustomer, Data Form Design điền danh sách các trường tìm thấy trong tblCustomer vào Available Fields

Hộp thoại Data Form Design




  1. Nhấn nút mũi tên phải cho tất cả các trường hiện có trừ ID để thêm chúng vào biểu mẫu. ( Không được thêm trường ID vào biểu mẫu vì người sử dụng không thể sử trường ID ).

  2. Chọn trường và nhấn mũi tên lên, xuống để sắp xếp các trường.

Sắp xếp các trường



  1. Nhấn nút Build the Form. Biểu mẫu được tạo trong Visual Basic.

  2. Nhấn Close.

Kế tiếp ta muốn thoát khỏi Visual Data Manager để xem biểu mẫu của ta như thế nào. Nhưng ta muốn quay trở lại để thêm các phần tử mới vào cơ sở dữ liệu hoặc muốn sử đổi những cái ta vừa làm. Để thông báo cho Visual Data Manager la ta muốn mở cơ sở dữ liệu lại trong lần kế tiếp, theo các nước sau :

  1. chọn Utility, Preferences. Từ Menu con, chọn Open Last Database từ Startup.

  2. Thoát Visual Data Manager bằng cách chọn File, Exit, Khi ta trở về Visual Basic m ta sẽ thấy biểu mẫu mới gọi là frmCustomer

Thiết kế biểu mẫu theo thiết kế bảng.


Để làm việc với biểu mẫu mới được tạo, ta sẽ phải đặt nó làm biểu mẫu khởi động của đề án. Để làm được điều này, theo các bước sau:

  1. Từ menu Project của Visual Basic, chọn Project1 Properties. Hộp thoại Project Properties xuất hiện.

Hộp thoại Project Properties.



  1. Trong hộp kết hợp StartUp Object, chọn frmCustomer và nhấn nút OK.

  2. Từ menu Run của Visual Basic, chọn Start. Ứng dụng thi hành, nó sẽ hiển thị giao diện nhập liệu trong frmCustomer.

Bây giờ ta có thể nhập liệu vào giao diện mà Visual Basic cung cấp cho ta. Để làm được điều này, theo các bước sau :

  1. Nhấn nút Add. Ta sẽ thấy rằng ứng dụng không có phản hồi một cách trực quan để cho thấy rằng một điều gì đó đã thay đổi . Tuy nhiên, phải tin rằng bạn đang sửa đổi một mẩu tin mới.

  2. Nhập dữ liệu vào mỗi hộp văn bản trong biểu mẫu.

  3. Khi ta làm xong, nhấn nút Update. Mẩu tin sẽ được lưu trữ. Chỉ có một thông tin phản hồi ta thấy là điều khiển dữ liệu hiển thị “Record 1 “

Chương trình lúc thi hành.

Giao diện nhập liệu cơ bản được tạo bởi Data Form Designer cho ta ý nghĩa của chương trình mà ta phải viết để có một ứng dụng mạnh mẽ bằng chách sử dụng điều khiển Data.Mặc dù điều khiển data được coi là một giải pháp “ Không cần lập trình “, nếu ta cần mởi rộng tính năng của nó ( như thi hành các hành động tìm kiếm, xoá các mẩu tin ) chương trình có thể không trực quan đối với những người mới học. Chúng ta sẽ tìm hiểu thêm thông tin về chương trình này, cách hoạt động và chỉnh sửa nó như thế nào để tạo ra một ứng dụng với đầy đủ tính năng hơn sau này.

12.1.7Các mối quan hệ


Mối quan hệ là một cách đinh nghĩa chính thức hai bảng liên hệ với nhau như thế nào . Khi ta định nghiẽa một mối quan hệ, ta đã thông báo với bộ máy cơ sở dữ liệu rằng hai trường trong hai bảng liên quan được nối với nhau.

Hai trường liên quan với nhau trong một mối quan hệ là khoá chính đã được giới thiệu ở phần trước và khoá ngoại. Khoá ngoại là khoá trong bảng kiên quan chứa bản sao của khoá chính của bảng chính.

Ví dụ, giả định rằng ra có các bảng cho phòng ban và Nhân viên. Có một mối quan hệ một - nhiều giữa một phòng ban và một nhóm nhân viên. Mỗi phòng ban có một ID riêng, tương tự với nhân viên. Tuy nhiên, để chỉ ra một nhân viên làm việc ở phòng ban nào, ta cần phải tạo một bản sao của ID của phòng ban cho mỗi mẩu tin của nhân viên. Vì vậy, để phân biệt mỗi nhân viên là một thành viên của một phòng ban, bảng Employees phải có một truờng gọi là DepartmentID để chứa ID của phòng ban mà nhân viên đó làm việc. Trường DepartmentID trong bảng Employees được tham chiếu như 1 khoá ngoại của bảng Employees bởi vì nó sẽ chứa bản sao của khoá chính của bảng Departments.
Sau đó mối quan hệ báo cho bộ máy cơ sở dữ liệu hai bảng liên quan với nhau trong mối quan hệ và khoá ngoại nào liên quan với khoá chính nào. Bộ máy Access/Jet không đòi hỏi ta phải khai báo tường minh các mối quan hệ này, nhưng sẽ có lợi hơn nếu làm điều này bởi vì nó làm đơn giản hoá công việc lấy về dữ liệu dựa trên các mẫu tin nối qua hai hay nhiều bảng.

Ngoài việc ghép các mẩu tin liên quan trong các bảng riêng biết, ta còn định nghĩa mối quan hệ để tận dụng thế mạnh của tính toàn vẹn tham chiếu, một thuộc tính của bộ máy cơ sở dữ liệu duy trì các dữ liệu trong một cơ sở dữ liệu nhiều bảng luôn luôn nhất quán. Khi tính toàn vẹn tham chiếu tồn tại trong một cơ sở dữ liệu, bộ máy cơ sở dữ liệu sẽ ngăn cản ta xoá một mẩu tin khi có các mẩu tin khác tham chiếu đến nó trong cơ sở dữ liệu.

Sau khi đã định nghĩa một mối quan hệ trong cơ sở dữ liệu, việc định nghĩa mối quan hệ này sẽ được lưu trữ cho đến khi ta xóa nó.
Lưu ý : Ta không thể tạo một mối quan hệ cơ sở dữ liệu bằng cách dùng Visual Data Manager tuy nhiên ta có thể tạo một mối quan hệ sử dụng Microsoft Access hay Lập trình.

12.1.7.1Sử dụng tính toàn vẹn tham chiếu để duy trì tính nhất quán


Khi các bảng nối kết với nhau thông qua mối quan hệ, dữ liệu trong mỗi bảng phải duy trì sự nhất quán trong các bảng liên kết. Tính toàn vẹn tham chiếu quản lý công việc này bằng cách theo dõi mối liên hệ giữa các bảng và ngăn cấm các kiểu thao tác nào đó trên các mẩu tin.

Ví dụ, giả định rằng ta có một bảng gọi là tblCustomer và một bảng khác là tblOrder. Hai bảng này quan hệ với nhau qua trường chung là ID.

Giả thiết ở đây là ta tạo các khách hàng chứa trong tblCustomer rồi tạo các hoá đơn trong tblOrder. Nhưng điều gì sẽ xảy ra nếu ta tiến hành xoá một khách hàng có hoá đơn chưa xử lý chứa trong bàng hoá đơn ? Hoặc là nếu ta tạo một hoá đơn mà không có một CustomerID hợp lệ gắn liền với nó ? Mục hoá đơn không có CustomerID thì không thể gửi đi, bởi vì địa chỉ gửi là một trường của mẩu tin trong tblCustomer. Khi dữ liệu tron các bảng quan hệ gặp phải rắc rối này, ta nói nó ở trọng thái không nhất quán.

Một điểu rất quan trọng là cơ sở dữ liệu không được trở nên không nhất quán, bộ máy cơ sở dữ liệu Jet cung cấp một cách để ta định nghĩa mối quan hệ trong các bảng. Khi ta định nghĩa một mối quan hệ chính thưc giữa hai bảng bộ máy cơ sở dữ liệu sẽ giám sát mối quan hệ mày và ngăn cấm bất kỳ thao tác nào vi phạm tính toàn vẹn tham chiếu. Hoạt động của cơ chế toàn vẹn tham chiếu là phát sinh ra lỗi mỗi khi ta thi hành một hành động nào đó làm cho dữ liệu rơi vào trạng thái không nhất quán. Ví dụ, trong cơ sở dữ liệu có tính toàn vẹn tham chiếu đang hoạt động, nếu ta cố tạo một hoá đơn chứa một ID của khách hàng đối với một khách hàng không tông tại, ta sẽ nhận một thông báo lỗi và hoá đơn sẽ không thể tạo ra.


12.1.8Chuẩn hoá


Chuẩn hoá là một khái niệm liên quan đến mối quan hệ. Về cơ bản, nguyên tắc của chuẩn hoá phát biểu rằng các bảng cơ sở dữ liệu sẽ loại trừ tính không nhất quán và giảm thiểu sự kém hiệu quả.

Các cơ sở dữ liệu được mô tả là không nhất quán khi dữ liệu trong một bảng không tương ứng với dữ liệu nhập vào trong bảng khác. Ví dụ, Nếu phân nửa số người nghĩ rằng A ở miền Trung Tây và một nửa nghĩ rằng nó nằm ở phía Nam và nếu cả hai nhóm nhân viên nhập liệu theo ý kiến riêng của họ, khi ấy báo cáo cơ sở dữ liệu trình bày những việc xảy ra ở miền Trung Tây là vô nghĩa.

Một cơ sở dữ liệu kém hiệu quả không cho phép ta trích ra csc dữ liệu chính xác mà ta muốn. Một cơ sở dữ liệu chứa toàn bộ dữ liệu trong một bảng có thể buộc ta phải vất vả duyệt qua một lượng lớn tên các khách hàng, địa chỉ và lịch sử liên hệ chỉ để lấy về 1 số điện thoại của một khách hàng nào đó. Mặt khác, một cơ sở dữ liệu được chuẩn hoá đầy đủ chứa từng mẩu thông tin của cơ sở dữ liệu trong bảng riêng và xa hơn, các định từng mẩu thông tin duy nhất thông qua khoá chính của nó.

Các cơ sở dữ liệu chuẩn hoá cho phép ta tham chiếu đến một mẩu thông tin trong một bảng bất kỳ chỉ bằng khoá chính của thông tin đó.

Ta quyết định cách thức chuẩn hoá của một cơ sở dữ liệu khi ât thết kế và khởi tạo một cơ sở dữ liệu. Thông thường, mọi thứu về ứng dụng cơ sở dữ liệu - từ thiết kế bảng cho đến thiết kế truy vấn, từ giao diện người sử dụng đến cách hoạt động của báo cáo - đều xuất phát từ cách chuẩn hoá cơ sở dữ liệu.

Lưu ý : Là một lập trình viên cơ sở dữ liệu, thỉnh thoảng bạn sẽ chợt nảy ra ý nghĩ về cơ sở dữ liệu vẫn chưa được chuẩn hoá vì lý do này hay lý do khác. Sự thiếu chuẩn hoá có thể do chủ ý, hoặc có thể là do kết quả của sự thiếu kinh nghiệm hoặc sự khộng thận trọng trong việc thiết kế cơ sở dữ liệu ban đầu. Dù ở mức độ nào, nếu đã chọn chuẩn hoá một cơ sở dữ liệu đã tồn tại, ta nên thực hiện sớm ( bởi vì mọi thứ khác thực hiện trong cơ sở dữ liệu đều phụ thuộc vào cấu trúc bảng của cơ sở dữ liệu ). Hơn nữa, ta sẽ thấy những câu truy vấn hành động là công cụ rất hữu ích trong việc sắp xếp lại một cơ sở dữ liệu thiết kế thiếu sót. Truy vẫn là hành động cho phép ta đi chuyển các trường từ bảng này sang bảng khác chư là thêm, cập nhậtvà xoá mẩu tin từ các bảng dựa trên các tiêu chỉ nêu ra.

12.1.8.1Quan hệ Một - Một


Là loại quan hệ dễ hiểu và dễ thực hiện nhất, bởi vì trong những mối quan hệ như vậy, một bảng sẽ lấy vị trí của một trường trong một bảng khác, trường liên quan cũng dễ nhận dạng. Tuy nhiên, quan hệ một - một không phải là mối quan hệ thông dụng nhất trong ứng dụng cơ sở dữ liệu. Do 2 nguyên nhân:

  1. Hầu như ta không cần biểu diễn mối quan hệ một một với hai bảng. Ta có thể dùng nó để cải tiến khả năng hoạt động, ví dụ ta mất tính linh hoạt khi chứa các dữ liệu liên hệ trong một bảng tách biệt. Trong ví dụ trước, thay vì có các bảng nhân viên và công việc chứa trong bảng nhân viên.

  2. Thể hiện quan hệ một - nhiều thì cũng khá dễ ( nhưng linh hoạt hơn nhiều ) quan hệ một một.

12.1.8.2Quan hệ một - nhiều


Phổ biến hơn quan hệ một - một, trong đó, mối mẩu tin trong một bàng này không có, hoặc có một, hoặc nhiều mẩu tin trong một bảng liên hệ.

Ví dụ, ta gán từng khách hàng cho một người bán hàng. Để thực hiện điều này, ta cần một bảng cho người bán hàng :

Bởi vì một người bán hàng có trách nhiệm với nhiều khách hàng, ta có thể nói đã có mối quan hệ một - nhiều giữa người bán hàng và khách hàng.

Để thực hiện mối quan hệ này trong thiết kế cơ sở dữ liệu, ta phải copy khoá chính của phía một đến bảng chứa phía nhiều trong quan hệ.


Trong một thiết kế giao diện người sử dụng, ta thực hiện quá trình copy khoá chính của một bảng đến khoá ngoại của một bảng liên hệ nhờ một điều khiển hộp danh sách hay hộp kết hợp. Để tìm hiểu thêm thông tin về tổ chức giao diện.

12.1.8.3Quan hệ nhiều nhiều


Quan hệ nhiều - nhiều là bước phát triển của quan hệ một - nhiều ví dụ cổ điển của quan hệ nhiều nhiều là học sinh và lớp. Mỗi học sinh có nhiều lới, mỗi lớp có nhiều học sinh ( Tuy nhiên,có lớp không có hoặc chỉ có một học sinh, và có thể học sinh chỉ có một hoặc không có lớp ).

Để thiết lập quan hệ nhiều nhiều, ta có thể sửa lại ví dụ trước sao cho cơ sở dữ liệu có thể chứa nhiều người bán cho một người mua. Mỗi người bán có nhiều khách hàng, và mỗi khách hàng có nhiều người bán.

Giao diện người sử dụng phát triển trong Microsoft Access chủ yếu thực hiện quan hệ một - nhiều và quan hệ nhiều - nhiều bằng cách dùng biểu mẫu con. Đối với một nhà lập trình VB, một biểu mẫu con Access tương tự một biểu mẫu trong biểu mẫu : Biểu mẫu chính hiển thị phía một trong quan hệ một nhiều, trong khi biểu mẫu con hiển thị các mẩu tin ở phía nhiều . Thuận tiện của biểu mẫu con là nó không đòi hỏi phải dữ quan hệ giữa 2 bảng được nhất quán ; ta chỉ quy định thuộc tính để trình bày khoá chính và khoá ngoại.

Khác với Microsoft Access, VB không hỗ trợ biểu mẫu con để tự động hiển thị tất cả các mẩu tin liên quan với một mẩu tin nhất định . Thay vào đó, ứng dụng Visual Basic chủ yếu yêu cầu ta lập trình để thực hiện một giao diện người sử dụng dựa trên quan hệ nhiều nhiều.




tải về 1.69 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   20   21   22   23   24   25   26   27   ...   39




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương