Chương 2: Bảng dữ liệu
1. THIẾT KẾ CƠ SỞ DỮ LIỆU
Một CSDL được thiết kế tốt cho
phép người sử dụng truy cập nhanh chóng đến những thông tin cần tham khảo, giúp
tiết kiệm được thời gian truy xuất thông tin. Một CSDL thiết kế tốt giúp người
sử dụng rút ra được những kết quả nhanh chóng và chính xác hơn.
Để thiết kế một CSDL tốt chúng ta
phải hiểu cách mà một Hệ QTCSDL quản trị các CSDL như thế nào. MS Access hay bất
kỳ một Hệ QTCSDL nào có thể cung cấp các thông tin cho chúng ta một cách chính
xác và hiệu quả nếu chúng được cung cấp đầy đủ mọi dữ kiện về nhiều đối tượng
khác nhau lưu trữ trong các bảng dữ liệu. Ví dụ ta cần một bảng để chứa thông
tin về lý lịch của cán bộ, một bảng khác để chứa các đề tài nguyên cứu khoa học
của các cán bộ...
Khi bắt tay thiết kế CSDL, chúng
ta phải xác định và phân tích các thông tin muốn lưu trữ thành các đối tượng
riêng rẽ, sau đó báo cho Hệ QTCSDL biết các đối tượng đó liên quan với nhau như
thế nào. Dựa vào các quan hệ đó mà Hệ QTCSDL có thể liên kết các đối tượng và
rút ra các số liệu tổng hợp cần thiết.
1. CÁC BƯỚC THIẾT KẾ CSDL
Bước 1: Xác định mục tiêu khai thác
CSDL của chúng ta. Điều này quyết định các loại sự kiện chúng ta sẽ đưa vào MS Access.
Bước 2: Xác định các bảng dữ liệu cần thiết. Mỗi đối tượng thông tin sẽ hình thành một bảng trong CSDL của chúng ta.
Bước 3: Sau khi đã xác định xong các bảng cần thiết, tiếp đến ta phải chỉ rõ thông tin nào cần quản
lý trong mỗi bảng, đó là xác định các trường. Mỗi loại thông tin trong bảng gọi
là trường. Mọi mẫu in trong cùng một bảng đều có chung cấu trúc các trường. Ví
dụ: Trong lý lịch khoa học cán bộ, những trường (thông tin) cần quản lý là: “HỌ
VÀ TÊN”, “CHUYÊN MÔN”, “HỌC VỊ”, “HỌC HÀM”,...
Bước 4: Xác định các mối quan hệ giữa các bảng. Nhìn vào mỗi bảng dữ liệu và xem xét dữ liệu trong bảng này liên hệ thế nào với dữ liệu trong bảng
khác. Thêm trướng hoặc tạo bảng mới để làm rõ mối quan hệ này. Đây là vấn đề hết
sức quan trọng, tạo được quan hệ tốt sẽ giúp chúng ta nhanh chóng truy tìm tìm
và kết xuất dữ liệu.
Bước 5: Tinh chế, hiệu chỉnh lại thiết kế. Phân tích lại thiết kế ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi, thử xem CSDL đó phản ánh thế
nào với những yêu cầu truy xuất của chúng ta, có rút được kết quả đúng từ những
bảng dữ liệu đó không. Thực hiện các chỉnh sửa thiết kế nếu thấy cần thiết.
2. KHÁI NIỆM VỀ BẢNG
Bảng là nơi chứa dữ liệu về một đối tượng thông tin
nào đó như SINH VIÊN, HÓA ĐƠN,...
Mỗi hàng trong bảng gọi là một bản ghi
(record) chứa các nội dung riêng của đối tượng đó. Mỗi bản ghi của một bảng đều
có chung cấu trúc, tức là các trường
(field). Ví dụ: Cho bảng dưới đây để quản lý lý lịch khoa học cán bộ trong trường
đại học, có các trường MACB (Mã cán bộ), TRINHDOVH (Trình độ văn hóa),
CHUYENMON (Chuyên môn),...
Trong
một CSDL có thể chứa nhiều bảng, thường mỗi bảng lưu trữ nhiều thông tin (dữ liệu)
về một đối tượng thông tin nào đó, mỗi một thông tin đều có những kiểu đặc trưng
riêng, mà với Access nó sẽ cụ thể thành những kiểu dữ liệu của các trường
3. TẠO BẢNG MỚI TRONG CƠ SỞ DỮ LIỆU
Trong MS Access có hai cách để tạo
bảng, một là cách dùng Table Wizard, nhưng các trường ở đây MS Access tự động đặt
tên và không có bàn tay can thiệp của người sử dụng. Ở đây, sẽ đưa ra cách tạo
mới bảng hoàn toàn do người sử dụng.
3.1. Tạo bảng không dùng Table Wizard
Trong cửa sổ Database, chọn tab Table (hoặc Lệnh View/Daatbase object - Table) Chọn nút New, xuất hiện hộp thoại
Datasheet View: Trên màn
hình sẽ xuất hiện một
bảng trống
với các trường (tiêu đề cột) lần lượt Field1, field2
Design
View: Trên màn hình xuất hiện cửa sổ thiết kế bảng, người sử dụng tự thiết kế
bảng.
Table Wizard: Thiết kế bảng với sự trợ giúp của MS Access
Import
table: Nhập các bảng và các đối tượng từ các tập tin khác vào CSDL hiện
thời.
Link table: Tạo bảng bằng cách nối vào CSDL
hiện thời các bảng của CSDL khác.
Chọn chức
năng Design View, chọn OK.
3.2. Sử dụng Design View
Field Name: Tên trường cần đặt (thông tin cần quản lý)
Data Type: Kiểu dữ liệu của trường
Desciption: Mô tả trường, phần này chỉ mang
ý nghĩa
làm rõ
thông tin quản lý, có thể bỏ qua trong khi thiết kế bảng.
Field properties: Các thuộc
tính của trường
Xác định
khoá chính của bảng (nếu có)
Xác định
thuộc tính của bảng, Lưu bảng dữ liệu
Đặt tên trường
Tên trường ở đây không nhất thiết
phải có độ dài hạn chế và phải sát nhau, mà ta có thể đặt tên trường tùy ý nhưng
không vượt quá 64 ký tự kể cả ký tự trắng. Lưu ý rằng, tên trường có thể đặt
dài nên nó dẽ mô tả được thông tin quản lý, nhưng sẽ khó khăn hơn khi ta dùng
các phát biểu SQL và lập trình Access Basic. Do đó khi đặt tên trường ta nên đặt
ngắn gọn, dễ gợi nhớ và không chứa ký tự trắng.
Kiểu dữ liệu
Kiểu dữ liệu
|
Dữ liệu vào
|
Kích thước
|
|
|
|
Text
|
Văn bản
|
Tối đa 255 byte
|
|
|
|
Memo
|
Văn bản nhiều dòng, trang
|
Tối đa 64000 bytes
|
|
|
|
Number
|
Số
|
1,2,4 hoặc 8 byte
|
|
|
|
Date/Time
|
Ngày giờ
|
8 byte
|
|
|
|
Currency
|
Tiền tệ (Số)
|
8 byte
|
|
|
|
|
ACCESS tự động tăng lên một
|
|
Auto number
|
khi một bản ghi được tạo
|
4 byte
|
|
|
|
Yes/No
|
Lý luận (Boolean)
|
1 bit
|
|
|
|
OLE Object
|
Đối tượng của phần mềm khác
|
Tối đa 1 giga byte
|
|
|
|
|
|
Trường nhận giá
trị do
|
Lookup Wizard
|
|
người dùng chọn từ 1 bảng
|
|
|
khác hoặc 1 danh sách giá
|
|
|
trị định
trước
|
|
|
|
Hyper link
|
Liên kết các URL
|
|
|
|
|
Quy định thuộc tính, định dạng cho trường
Đặt thuộc tính là một phần không kém quan trọng, nó quyết định đến dữ liệu
thực sự lưu giữa trong bảng, kiểm tra độ chính xác dữ liệu khi nhập vào, định dạng
dữ liệu nhập vào ... Mỗi một kiểu dữ liệu sẽ có các thuộc tính và các đặc
trưng và khác nhau. Sau đây là các thuộc tính, định dạng của các kiểu dữ liệu.
Để tăng thêm tốc độ xử lý khi nhập dữ liệu cũng như
các công việc tìm kiếm sau này thì việc quy định dữ liệu rất quan trọng.
Các trường
trong ACCESS có các thuộc tính sau:
3.2.1.
Field Size
Quy định
kích thước của trường và tùy thuộc vào từng kiểu dữ liệu
Kiểu Text: Chúng ta quy định độ dài tối đa của chuỗi.
Kiểu Number: Có thể chọn một trong các loại sau:
Byte:
0..255
Integer:
-32768..32767
Long
Integer: -3147483648.. 3147483647
Single:-3,4x1038..3,4x1038 (Tối đa
7 số lẻ)
Double:
-1.797x10308 ..1.797x10308 (Tối đa
15 số lẻ)
Decimal Places
Quy định
số chữ số thập phân ( Chỉ sử dụng trong kiểu Single và Double)
Đối với
kiểu Currency mặc định decimal places là 2
3.2.2.
Format
Quy định
dạng hiển thị dữ liệu, tùy thuộc vào từng kiểu dữ liệu.
Kiểu chuỗi: Gồm 3 phần
<Phần
1>;<Phần 2>;<Phần 3>Trong đó:
<Phần
1>: Chuỗi định dạng tương ứng trong trường hợp có chứa văn bản.
<Phần
2>: Chuỗi định dạng tương ứng trong trường hợp không chứa văn bản.
<Phần
3>: Chuỗi định dạng tương ứng trong trường hợp null
Các ký tự dùng để định dạng chuỗi
|
Ký tự
|
|
Tác dëch vuû du lëchụng
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@
|
|
|
Chuỗi
ký tự
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
Đổi tất
cả ký tự nhập vào thành in hoa
|
|
|
|
|
|
|
|
|
|
|
<
|
|
|
Đổi tất
cả ký tự nhập vào thành in thường
|
|
|
|
|
|
|
|
|
|
|
|
“Chuỗi ký tự “
|
|
Chuỗi
ký tự giữa 2 dấu nháy
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\<ký tự>
|
|
Ký tự nằm
sau dấu \
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[black] [White] [red]
|
|
Màu
|
|
|
|
|
Hoặc [<số>]
|
|
|
|
|
|
|
|
|
Trong đó 0<=số<=56
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ví dụ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cách định
dạng
|
|
Dữ liệu
|
|
Hiển thị
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@@-@@@@
|
|
123456
|
|
|
123-456
|
|
|
|
|
|
|
abcdef
|
|
abc-def
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
Tinhoc
|
|
TINHOC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
|
|
|
TINHOC
|
|
Tinhoc
|
|
|
|
|
|
|
|
|
|
|
|
@;”Không có”;”Không biết”
|
Chuỗi bất kỳ
|
|
Hiển thị chuỗi
|
|
|
|
|
Chuỗi rỗng
|
|
Không có
|
|
|
|
|
|
Giá trị trống (Null)
|
|
Không biết
|
|
|
|
|
|
|
|
|
|
|
|
|
Kiểu Number
|
|
|
|
|
|
|
|
Định dạng
do ACCESS cung cấp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dạng
|
|
Dữ liệu
|
|
|
Hiển thị
|
|
|
|
|
|
|
|
|
|
|
|
|
General Number
|
|
1234.5
|
|
|
1234.5
|
|
|
|
|
|
|
|
|
|
|
|
|
Currency
|
|
1234.5
|
|
|
$1.234.50
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixed
|
|
1234.5
|
|
|
1234
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2.3.
Input mask (Mặt nạ)
Thuộc tính này dùng để quy định mặt nạ nhập dữ liệu
cho một trường. Các ký tự định dạng trong input mask
4. THIẾT LẬP KHOÁ CHÍNH (primary key)
|
|
4.1. Khái niệm khoá chính
|
|
Sức mạnh của một Hệ QTCSDL như
Microsoft Access, là khả năng mau chóng truy tìm và rút dữ liệu từ nhiều bảng
khác nhau trong CSDL. Để hệ thống có thể làm được điều này một cách hiệu quả, mỗi
bảng trong CSDL cần có một trường hoặc một nhóm các trường có thể xác định duy
nhất một bản ghi trong số rất nhiều bản ghi đang có trong bảng. Đây thường là một
mã nhận diện như Mã nhân viên hay Số Báo Danh của học sinh. Theo thuật ngữ CSDL
trường này được gọi là khóa chính
(primary key) của bảng. MS Access dùng trường khóa chính để kết nối dữ liệu
nhanh chóng từ nhiều bảng và xuất ra kết quả yêu cầu.
Nếu trong bảng chúng ta đã có một
trường sao cho ứng với mỗi trị thuộc trường đó chúng ta xác định duy nhất một bản
ghi của bảng, chúng ta có thể dùng trường đó làm trường khóa của bảng. Từ đó
cho ta thấy rằng tất cả các trị trong trường khóa chính phải khác nhau. Chẳng hạn
đừng dùng tên người làm trường khóa vì tên trường là không duy nhất.
Nếu không tìm được mã nhận diện
cho bảng nào đó, chúng ta có thể dùng một trường kiểu Autonunter (ví dụ Số Thứ Tự) để làm trường khóa chính.
Khi chọn
trường làm khóa chính chúng ta lưu ý mấy điểm sau:
MS Access không chấp nhận các giá
trị trùng nhau hay trống (null) trong trường khóa chính.
Chúng ta sẽ dùng các giá trị
trong trường khóa chính để truy xuất các bản ghi trong CSDL, do đó các giá trị
trong trường này không nên quá dài vì khó nhớ và khó gõ vào.
Kích thước của khóa chính ảnh hưởng
đến tốc độ truy xuất CSDL. Để đạt hiệu quả tối ưu, dùng kích thước nhỏ nhất để
xác định mọi giá trị cần đưa vào trường.
4.2. Cách đặt khoá chính
Ta có thể
tự chọn trường làm khóa chính cho bảng bằng các bước sau đây:
Mở bảng ở
chế độ Design View
Nhắp chọn
trường cần đặt
Thực hiện lệnh Edit
- Primary Key hoặc nhắp chọn nút trên
thanh công cụ của mục này .
)chú ý: Không phải
mọi trường đều có thể làm khóa chính, mà chỉ
có các trường có các kiểu dữ
liệu không phải là Memo và OLE Object., Hyper Link.
Để hủy bỏ khóa chính hoặc các đã thiết lập thì thực
hiện lệnh View - Indexes, trong hộp
thoại này chọn và xóa đi những trường khóa đã thiết lập:
5. LƯU BẢNG
Sau khi thiết kế xong, ta tiến hành lưu bảng vào
CSDL, có thể thực hiện một trong hai thao tác sau:
Thực hiện
lệnh File - Save.
Nhắp chọn
nút trên
thanh công cụ của mục này (Table Design)
6. HIỆU CHỈNH BẢNG
6.1. Di chuyển trường: Các
thao tác để di chuyển thứ tự các trường
Đưa con
trỏ ra đầu trường đến khi con trỏ chuột chuyển thành ¨ thì nhắp chọn.
Đưa con
trỏ ra đầu trường vừa chọn, nhấn và kéo đếnvị trí mới.
6.2. Chen trường : Các
thao tác lần lượt như sau
Chọn trường hiện thời là trường sẽ nằm sau trường được chen vào Thực hiện
lệnh Insert/ Row
6.3. Xóa trường: Các thao tác lần lượt như sau Chọn trường cần xóa
Thực hiện
lệnh Edit - Delete Rows
6.4. Quy định thuộc tính của bảng
Mở bảng ở
chế độ Design View, chọn View/Properties
Description:
Dòng mô tả bảng
Validation
Rule: Quy tắc hợp lệ dữ liệu cho toàn bảng.
Validation
Text: Thông báo lỗi khi dữ liệu không hợp lệ