Chương 2: Bảng (Table) I. Các khái niệm về CSDL Access  CSDL Access là một đối tượng bao gồm tập hợp các.

Download Report

Transcript Chương 2: Bảng (Table) I. Các khái niệm về CSDL Access  CSDL Access là một đối tượng bao gồm tập hợp các.

Chương 2: Bảng (Table)
I. Các khái niệm về CSDL Access

CSDL Access là một đối tượng bao gồm
tập hợp các bảng dữ liệu, các kết nối
giữa các bảng được thiết kế một cách
phù hợp để phục vụ lưu trữ dữ liệu cho
một ứng dụng quản lý dữ liệu nào đó.
I. Các khái niệm về CSDL Access

Ví dụ 1:

CSDL Quản lý học sinh bao gồm tập hợp
các bảng dữ liệu: HOCSINH, LOP, KHOI,
MONHOC, DIEM được kết nối với nhau một
cách phù hợp phục vụ lưu trữ dữ liệu cho
ứng dụng quản lý học sinh một trường
học. Toàn bộ cấu trúc CSDL quản lý học
sinh trên Access được mô tả như sau:
I. Các khái niệm về CSDL Access
I. Các khái niệm về CSDL Access

Ví dụ 2:

CSDL Quản lý bán hàng bao gồm tập hợp
các bảng dữ liệu: HANG, KHACH,
HOADON, HANGBAN được kết nối với nhau
một cách phù hợp, phục vụ ứng dụng quản
lý việc bán hàng tại một cửa hang. Sơ đồ
cấu trúc CSDL này như sau:
I. Các khái niệm về CSDL Access
Các bước xây dựng CSDL



Bước 1: Xác định mục tiêu khai thác
CSDL của chúng ta
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: Xác định các trường trong mỗi
bảng.
Các bước xây dựng CSDL


Bước 4: Xác định các mối quan hệ giữa
các bảng.
Bước 5: Tinh chế, hiệu chỉnh lại thiết
kế.
II. Bảng dữ liệu (Table)



Bảng dữ liệu (Tables) là một phần quan
trọng nhất của CSDL.
Là nơi lưu trữ những dữ liệu tác nghiệp
cho ứng dụng
Một CSDL có thể có rất nhiều bảng
II. Bảng dữ liệu (Table)


Các bảng phải được thiết kế sao cho có
thể lưu trữ được đầy đủ dữ liệu cần
thiết
Đảm bảo giảm tối đa tình trạng gây dư
thừa dữ liệu
II. Bảng dữ liệu (Table)

Các thành phần của một bảng




Tên bảng
Các trường dữ liệu (Field)
Các thuộc tính cần thiết cho mỗi trường dữ
liệu (Properties)
Các bản ghi (record)
II. Bảng dữ liệu (Table)
Xem bảng ở dạng datasheets
(xem, sữa, nhập dữ liệu)
Mỗi cột là một
trường
Mỗi dòng là một
bảng ghi (record)
II. Bảng dữ liệu (Table)
Xem bảng ở dạng design view, xây dựng cấu
trúc bảng.
Kiểu dữ liệu của
trường
Tên trường
Danh sách các
thuộc tính của
trường
II. Bảng dữ liệu (Table)

Tên bảng:


Được đặt sau khi tạo xong cấu trúc của
bảng
Cũng có thể sữa tên bảng như sữa tên tập
tin hay thư mục.
II. Bảng dữ liệu (Table) –
Trường (Field)



Mỗi cột dữ liệu của bảng sẽ tương ứng
với một trường dữ liệu.
Mỗi trường dữ liệu sẽ có một tên gọi và
tập hợp các thuộc tính miêu tả trường
dữ liệu đó ví dụ như: kiểu dữ liệu,
trường khoá, độ lớn, định dạng, ..
Mỗi trường dữ liệu phải được định kiểu
dữ liệu.
II. Bảng dữ liệu (Table) –
Bảng ghi (record)



Mỗi dòng dữ liệu của bảng được gọi
một bản ghi.
Mỗi bảng có một con trỏ bản ghi. Con
trỏ bản ghi đang nằm ở bản ghi nào,
người dùng có thể sửa được dữ liệu bản
ghi đó.
Đặc biệt, bản ghi trắng cuối cùng của
mỗi bảng được gọi EOF.
III. Các cách tạo bảng
Trong cửa sổ Database, chọn tab Table
Bấm nút new, cửa sổ new table xuất hiện
•
•


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.
III. Các cách tạo 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 OK.
III.1. Tạo bảng bằng design view


Sau khi chọn design view trong cửa sổ new table
và chọn OK
Cửa sổ design table xuất hiện.
III.1. Tạo bảng bằ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
III.1.1. Đặ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.
III.1.1. Quy định kiểu dữ liệu

Trong Access, trường dữ liệu có thể nhận các
kiểu dữ liệu sau.
stt Kiểu dữ liệu
1 Number
Độ lớn
Lưu trữ..
Tuỳ thuộc kiểu cụ thể
Số: số thực, số
nguyên theo
nhiều kiểu
2
Autonumber
4 bytes
Số nguyên tự
động được đánh
số.
3
4
Text
Yes/No
tuỳ thuộc độ dài chuổi
Chuổi ký tự
1 bytes
Kiểu logic
III.1.1. Quy định kiểu dữ liệu
stt Kiểu dữ liệu
Độ lớn
Lưu trữ..
5
Date/Time
8 bytes
Lưu trữ ngày, giờ
6
Currentcy
7
Memo
tuỳ thuộc giá trị
8
Hyperlink
tuỳ thuộc dũ liệu
Lưu trữ các siêu liên
9
OLE
tuỳ thuộc dữ liệu
Âm thanh, hình
ảnh, đồ hoạ, …
(Objects)
Lưu trữ dữ liệu
kèm ký hiệu tiền
tệ
kết (hyperlink
)
III.1.2 Quy định thuộc tính
(Properties) 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
III.1.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.
III.1.2.1 Field Size
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ẻ)
III.1.2.2 Decimal place


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
III.1.2.3 Format

Quy định dạng hiển thị dữ liệu, tùy thuộc
vào từng kiểu dữ liệu.
III.1.2.4 Input Mask

Thuột tính input mask quy định dữ liệu
nhập vào phải tuân theo một quy tắc
nhất định
III.1.2.4 Các ký tự định dạng
trong input mask
Ký tự
Tác dụng
0
Bắt buộc nhập ký tự số
9
Không bắt buộc nhập, ký tự số
#
Không bắt buộc nhập, số 0-9, khoảng trắng,
dấu + và Bắt buộc nhập, ký tự chữ
L
?
Không bắt buộc nhập, ký tự chữ hoặc khoảng
trắng
III.1.2.4 Các ký tự định dạng
trong input mask
Ký tự
Tác dụng
A
Bắt buộc nhập, ký tự chữ hoặc số
a
Không bắt buộc nhập, ký tự chữ hoặc số
&
Bắt buộc nhập, ký tự bất kỳ
C
Không bắt buộc nhập ký tự bất kỳ
<
Các ký tự bên phải được đổi thành chữ
thường
III.1.2.4 Các ký tự định dạng
trong input mask
Ký tự
Tác dụng
>
Các ký tự bên phải được đổi thành chữ hoa
!
Dữ liệu được ghi từ phải sang trái
\<Ký
tự>
Ký tự theo sau \ sẽ được đưa thẳng vào
III.1.2.4 Các ký tự định dạng
trong input mask

Ví dụ:
Input mask
Dữ liệu nhập vào
(000)000-0000
(054)828-8282
(000)AAA-A
(123)124-E
III.1.2.5 Caption

Quy định nhãn là một chuỗi ký tự sẽ
xuất hiện tại dòng tiêu đề của bảng.
Chuỗi ký tự này cũng xuất hiện tại nhãn
các của các điều khiển trong các biểu
mẫu hoặc báo cáo.
III.1.2.6 Default Value

Quy định giá trị mặc định cho trường
trừ Auto number và OEL Object
III.1.2.7 Validation rule và
Validation Text


Quy định quy tắc hợp lệ dữ liệu
(Validation rule) để giới hạn giá trị nhập
vào cho một trường.
Khi giới hạn này bị vi phạm sẽ có câu
thông báo ở Validation text.
III.1.2.8 Required

Có thể quy định thuộc tính này để bặt
buộc hay không bắt buộc nhập dữ liệu
cho trường.


Yes: bắt buộc nhập
No: Không bắt buộc
III.1.2.9 AllowZeroLenght

Thuộc tính này cho phép quy định một
trường có kiểu Text hay memo có thể
hoặc không có thể có chuỗi có độ dài
bằng 0


Yes: Chấp nhận chuỗi rỗng.
No: Không chấp nhận chuỗi rỗng.
III.1.2.10 Index




Quy định thuộc tính này để tạo chỉ mục trên
một trường. Nếu chúng ta lập chỉ mục thì việc
tìm kiếm dữ liệu nhanh hơn và tiện hơn.
Yes( Dupplicate OK): Tạo chỉ mục, trùng lặp.
Yes(No Dupplicate ): Tạo chỉ mục, không
trùng lặp.
No : Không tạo chỉ mục
III.1.2.11 New Value



Thuộc tính này chỉ đối với dữ liệu kiểu
auto number, quy định cách thức mà
trường tự động điền số khi thêm bản
ghi mới vào.
Increase: Tăng dần
Random: Lấy số ngẫu nhiên
III.1.3 Khóa chính Primary Key




Phân biệt các record trong cùng một
bảng.
Trong trường khóa chính không có giá
trị trùng nhau hay null.
Khóa chính có thể được đặt từ một
hoặc tập hợp từ nhiều trường.
Tạo mối liên kết với các bảng khác để
truy xuất thông tin liên quan.
III.1.3 Khóa chính Primary Key


Dữ liệu được xắp xếp theo trường khóa
chính.
Tạo mối liên kết với các bảng khác để
truy xuất thông tin liên quan.
III.1.3.1 Cách đặt khóa chính



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 .
III.1.3.1 Cách đặt khóa chính

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.
III.1.4 Khóa phụ( Foreign key)


Trường có cấu trúc giống một trường là
khóa chính trong bảng khác.
Dùng để tạo mối liên kết với bảng khác
để truy xuất thông tin cần thiết
IV. 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)
V. HIỆU CHỈNH BẢNG

Di chuyển trường: Các thao tác để di chuyển thứ
tự các trường



Chèn trường : Các thao tác lần lượt như sau



Đư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.
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
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
VI. xem thông tin và bổ sung
record
Navigation buttons
VI.1 Xem thông tin ở chế độ
datasheet




Muốn xem thông tin trong một bảng chúng ta phải chuyển bảng
sang một chế độ hiển thị khác gọi là Datasheet. Trong chế độ
hiển thị này, mỗi record được thể hiện trên một hàng ngang,
hàng đầu tiên là các tên trường.
Sau đây là các cách để chuyển sang chế độ hiển thị Datasheet:
Trong của sổ Database của CSDL đang mở, nhấp chọn tab
Table. Trong mục này chọn bảng cần hiển thị rồi chọn nút
Open, bảng sẽ được mở để bổ sung và chỉnh sửa dữ liệu.
Ta có thể chuyển sang chế độ Datasheet ngay khi đang ở trong
chế độ Design, bằng cách nhắp chọn nút
thì bảng sẽ chuyển
sang chế độ Datasheet, để quay trở về chế độ Design, ta nhắp
chọn lại nút . Hoặc chọn lệnh View - /Design View.
VI.2 thêm mới, hiệu chỉnh
record

Sau khi hoàn thành công việc thiết kế cấu
trúc bảng, ta tiến hành nhập dữ liệu, tức là
bổ sung các record, cho bảng. Hiển thị bảng
ở chế độ hiển thị Datasheet, mỗi hàng đại
diện cho một record. Ở đây có các ký hiệu
chúng ta cần biết công dụng của chúng



Record hiện thời
Record đang nhập dữ liệu
Record mới
VI.2 thêm mới, hiệu chỉnh
record

Bổ sung record mới cho CSDL


Đang đứng tại một record nào đó (không
phải là record mới), chọn nút trên thanh
công cụ. Hoặc thực hiện lệnh Record - Go
To - New.
Di chuyển giữa các record

Ta có thể di chuyển qua lại giữ các record
bằng cách dùng công cụ navigation
buttons.
VI.3 Xoá record

Chọn các bản ghi cần xóa, sau đó thực
hiện lệnh Edit - Delete (hoặc nhấn phím
DELETE) .
VII. Thiết lập mối quan hệ
giữa các bảng (relationships).
VII.1 Các loại quan hệ trong
cơ sở dữ liệu ACCESS

VII.1.2 Quan hệ một -một (1-1)

Trong quan hệ một -một, mỗi bản ghi
trong bảng A có tương ứng với duy nhất
một bản ghi trong bảng B và ngược lại mỗi
bản ghi trong bảng B có tương ứng duy
nhất một bản ghi trong bảng A.
VII.1.2 Quan hệ một -một (1-1)


Ví Dụ:
Mối quan hệ giữa LyLich và SinhVien:


Là mối quan hệ 1-1.
Mỗi lý lịch thuộc về duy nhất một sinh
viên, mỗi sinh viên có duy nhất một lý lịch.
VII.1.3 Quan hệ một nhiều( 1-)

Là mối quan hệ phổ biến nhất trong
CSDL, trong quan hệ một nhiều : Một
bản ghi trong bảng A có thể có nhiều
bản ghi tương ứng trong bảng B, nhưng
ngược lại một bản ghi trong bảng B có
duy nhất một bản ghi tương ứng trong
bảng A.
VII.1.3 Quan hệ một nhiều( 1-)


Ví Dụ:
Mối quan hệ giữa Lop và SinhVien:


Là mối quan hệ 1- .
Mỗi lớp có thể có nhiều sinh viên theo học,
mỗi sinh viên chỉ theo học duy nhất một
lớp.
VII.1.4 Quan hệ nhiều nhiều( -)

Trong quan hệ nhiều nhiều, mỗi bản ghi
trong bảng A có thể nhiều bản ghi
tương ứng trong bảng B và ngược lại
mỗi bản ghi trong bảng B có thể có
nhiều bản ghi tương ứng trong bảng A.
VII.1.4 Quan hệ nhiều nhiều( -)


Ví dụ:
Mối quan hệ giữa Sinhvien và MonHoc:


Là mối quan hệ Nhiều – Nhiều.
Mỗi sinh viên học nhiều môn học và một
môn học được học bởi nhiều sinh viên
VII.1.4 Quan hệ nhiều nhiều( -)



Trong một CSDL không được phép tồn
tại mối quan hệ Nhiều – Nhiều.
Nếu có mối quan hệ ( -), Phải tách
thành hai mối quan hệ Một – Nhiều,
bằng cách thêm bảng thứ 3.
Bảng mới này có khoá là tổ hợp khóa
của hai bảng trước đó.
VII.1.4 Quan hệ nhiều nhiều( -)






Ví dụ:
Mối quan hệ giữa Sinhvien và MonHoc
Được xử lý như sau:
Thêm bảng SinhVien_MonHoc.
Mối quan hệ ( -) trước đó trở thành:
Mối quan hệ (1 -) giữa SinhViên với
SinhViên_MonHoc và mối quan hệ (1 -)
giữa MonHoc và SinhVien_MonHoc.
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).



Tại cửa sổ Database, thực hiện lệnh
Tools/Relationship hoặc bấm nút
trên thanh toolbars
Cửa sổ Show Table hiện ra.
Trong cửa sổ Show Table chọn Table và
chọn các bảng cần thiết lập quan hệ,
sau đó chọn Add và Close.
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).

Kéo trường liên kết của bảng quan hệ
vào trường của bảng được quan hệ
(Table related).
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).


Bật chức năng Enforce Referential
Integrity ( Nếu muốn quan hệ này bị
ràng buộc tham chiếu toàn vẹn), chọn
mối quan hệ (one-many) hoặc (oneone).
Chọn nút Create.
VII.2 Thiết lập mối quan hệ giữa các
bảng (relationships).

Chú ý

Quan hệ có tính tham chiếu toàn vẹn sẽ
đảm bảo các vấn đề sau:



Khi nhập dữ liệu cho trường tham gia quan hệ
ở bên nhiều thì phải tồn tại bên một.
Không thể xoá một record của bảng bên một
nếu trong quan hệ đã tồn tại những record
bên nhiều có quan hệ với record bên một đó.
Trường hợp vi phạm các quy tắc trên thì sẽ
nhận được thông báo lỗi.
Thiết lập thuộc tính tham
chiếu toàn vẹn trong quan hệ
VII.3

Cascade update related fields, khi dữ
liệu trên khoá chính của bảng bên một
thay đổi thì Access sẽ tự động cập nhật
sự thay đổi đó vào các trường tương
ứng (có quan hệ) trên các bảng bên
Nhiều, hay nói cách khác, dữ liệu ở
bảng bên nhiều cũng thay đổi theo.
Thiết lập thuộc tính tham
chiếu toàn vẹn trong quan hệ
VII.3

Cascade Delete related records, khi dữ
liệu trên bảng bên một bị xoá thì dữ
liệu trên bảng bên nhiều cũng sẽ bị
xoá.
Hiệu chỉnh, xóa một mối
quan hệ.
VII.4




Mở cửa sổ RelationShips
Nhấn chuột phải lên mối quan hệ.
Chọn edit Relationship để hiệu chỉnh
Chọn Delete để xóa