MÔ HÌNH QUAN HỆ THỰC THỂ ENTITY – RELATIONSHIPMô hình dữ liệu quan hệ – Thực thể E – R nhìn thế giới thực như là một tập các đối tượng căn bản được gọi là các thực thể Entity, và các mối
Trang 1CHƯƠNG 0:
NHẬP MÔN HỆ THỐNG CƠ SỞ DỮ LIỆU
(DATABASE MANAGEMENT SYSTEM)
A Một hệ thống quản trị cơ sở dữ liệu (CSDL) gọi tắt là DBMS bao gồm:
Một sưu tập các dữ liệu liên quan được gọi là Cơ sở dữ liệu(DataBase)
Một sưu tập các chương trình ứng dụng được dùng để truy xuất, cập nhật và quản lý dữliệu Các chương trình này hình thành hệ thống quản trị dữ liệu (Management System)
B Mục tiêu của DBMS:
Là cung cấp một môi trường thuận tiện và hiệu qủa cho việc sử dụng dữ liệu theonghĩa:
Truy tìm thông tin từ CSDL
Lưu trữ thông tin vào CSDL
C Các CSDL thường được thiết kế để quản lý một lượng lớn thông tin Việc này liên quan tới :
Định nghĩa các cấu trúc lưu trữ thông tin
Cung cấp các cơ chế xử lý thông tin
Cung cấp an toàn cho thông tin trong cơ sở dữ liệu
Kiểm soát đồng thời nếu hệ thống chia sẽ bởi nhiều người dùng
Trang 2MÔ HÌNH QUAN HỆ THỰC THỂ (ENTITY – RELATIONSHIP)
Mô hình dữ liệu quan hệ – Thực thể (E – R) nhìn thế giới thực như là một tập các
đối tượng căn bản được gọi là các thực thể (Entity), và các mối quan hệ (Relationship) ở
giữa các đối tượng này Nó đã được phát triển để làm thuận tiện cho việc thiết kế CSDL
bằng cách đặt tả một lược đồ ( Enterprise Schema) Một lược đồ như vậy biểu diễn một
cấu trúc Logic tổng quát của CSDL
I NHỮNG KHÁI NIỆM CĂN BẢN.
tại và có thể phân biệt được với các đối tượng khác Một thực thể có một tập các
thuộc tính
VD: Thực thể Sinh viên, Sách, Môn học, con Mèo, Hóa đơn …
VD: Xét thực thể SINH VIEN thì Tên Sinh viên, MSSV, Giới tính, Ngày sinh, Quê
quán … được gọi là các thuộc tính của thực thể SINH VIEN
cách khác là cùng chung tập thuộc tính thường được gọi là bảng (Table)
VD: Tập thực thể SINH VIEN của một Trường Đại Học, Tập thực thể SACH của
một thư viện, Tập thực thể MATHANG của một Công ty …
thực thể hoặc các quan hệ trong một tập quan hệ đã cho là rất quan trọng Kháiniệm khóa cho phép ta thực hiện những phân biệt như vậy
a) Khóa lớn (Super Key): Là một tập gồm một hoặc nhiều thuộc tính mà khi chúng
ghép lại với nhau cho phép chúng ta xác định duy nhất một thực thể trong tập thựcthể
VD: Xét thực thể SINH VIEN (MSSV, Tên SV, Giới tính, Ngày sinh, Mã khoa, Quê
quán …) thì: MSSV được gọi là một khóa lớn MSSV kết hợp với Tên SV cũng là mộtkhóa lớn … Vậy một khóa lớn có thể chứa những thuộc tính dư thừa, và thường thì ta
chỉ quan tâm khóa lớn có số thuộc tính ít nhất được gọi là khóa đề nghị (Candidate
Key).
b) Khóa chính (Primary): Là một khóa đề nghị được chọn bởi người thiết kế CSDL
và được dùng như là một phương tiện chính để xác định các thực thể trong tập thựcthể
VD: Xét thực thể SINHVIEN thì MSSV là một khóa đề nghị.
II LƯỢC ĐỒ QUAN HỆ THỰC THỂ
Chúng ta có thể biểu diễn cấu trúc Logic tổng quát của một CSDL một cách đồ họa bằng
lược đồ quan hệ thực thể (E - R) Những qui ước trong lược đồ như sau:
Tên tập thực thể được viết hoa, không gõ dấu
Trước thuộc tính có dấu # thì thuộc tính đó tham gia làm khóa chính
Trước thuộc tính có dấu * thì thuộc tính đó bắt buộc phải có
Trước thuộc tính có dấu 0 thì thuộc tính đó là tùy chọn
VD: Xét tập thực thể SINHVIEN( # Mssv, * Tên Sv, * Giới tính, * Ngày sinh, * Mã khoa,
0 Quê quán,…)
Trang 3@ Để mô tả lược đồ quan hệ thực thể ta xét bài toán sau: Hãy thiết kế các tập thực thể (Các Bảng) và mối quan hệ giữa các tập thực thể đó cho một hệ thống cơ sở dữ liệu của
một trường Đại Học để quản lý việc đăng ký môn học và điểm của Sinh Viên
1) Ta có thể thiết kế các bảng chính như sau:
Bảng KHOA chứa thông tin về các khoa thuộc trường Đại Học Thông tin mỗi
khoa bao gồm: mã khoa (MAKHOA), tên khoa (TENKHOA) Các khoa khác nhau
sẽ có mã khoa khác nhau, mỗi khoa thì có nhiều Sinh Viên theo học Bảng KHOA
có cấu trúc cụ thể như sau (trong đó MAKHOA là khóa chính của bảng):
MAKHOA Mã khoa
TENKHOA Tên khoa
Bảng SINH VIEN chứa thông tin về các Sinh Viên Thông tin mỗi Sinh Viên bao
gồm: mã số Sinh Viên (MSSV), tên Sinh Viên (TENSV), giới tính (GIOITINH),ngày sinh (NGAYSINH), quê quán (QUEQUAN), ngoài ra một Sinh Viên phảithuộc vào một khoa duy nhất nên phải có thêm thông tin mã khoa (MAKHOA).Các Sinh Viên khác nhau thì có mã số Sinh Viên khác nhau Bảng SINHVIEN cócấu trúc cụ thể như sau (trong đó MSSV là khóa chính của bảng):
MSSV Mã số của Sinh Viên
TENSV Tên Sinh Viên
GIOITINH Giới tính của Sinh Viên
NGAYSINH Ngày sinh Sinh Viên
QUEQUAN Quê quán Sinh Viên
MAKHOA Mã khoa mà Sinh Viên theo học
Bảng MON HOC chứa thông tin về các môn học Thông tin mỗi môn học bao
gồm: mã môn học (MAMH), tên môn học (TENMH), số tín chỉ (SOTC) Các mônhọc khác nhau thì có mã môn học khác nhau Bảng MONHOC có cấu trúc cụ thểnhư sau (trong đó MAMH là khóa chính của bảng):
TENMH Tên môn học
SOTC Số tín chỉ
2) Ta xét mối quan hệ giữa các bảng trên:
Bảng KHOA và Bảng SINHVIEN, ta thấy một khoa thì có nhiều Sinh viên theohọc, ngược lại một Sinh Viên thì chỉ thuộc vào một khoa nào đó (Ứng với 1
MSSV) Đây là tượng trưng cho mối quan hệ Một – Nhiều (One to Many) Mô tả
sơ đồ như sau:
Trang 4 Bảng SINHVIEN và Bảng MONHOC, ta thấy một Sinh viên có thể đăng ký nhiềuMôn học, ngược lại một Môn học cũng được nhiều Sinh viên đăng ký học Đây là
tượng trưng cho mối quan hệ Nhiều – Nhiều (Many to Many) Mô tả sơ đồ như
sau:
@ Xét bài toán đăng ký kết hôn giữa một người Nam và một Người Nữ Ta thấy theo
luật hôn nhân tại một thời điểm xác định thì một người Nam chỉ đăng ký kết hôn với mộtngười Nữ, ngược lại một người Nữ cũng tại một thời điểm xác định chỉ đăng ký kết hôn
với một người Nam Đây là tượng trưng cho mối quan hệ Một – Một (One to One) Mô tả
sơ đồ như sau:
1
Trang 5 Chú ý: Đối với việc phân tích hệ thống CSDL nếu gặp những mối quan hệ: Nhiều – Nhiều hoặc Một – Một thì ta phải tìm cách phá vỡ những mối quan hệ này thành
những mối quan hệ Một – Nhiều (?)
III PHÁ VỠ CÁC MỐI QUAN HỆ MANY to MANY, HOẶC ONE to ONE:
Để phá vỡ giữa các tập thực thể có mối quan hệ Many to Many hoặc One to One taphải tìm cách xây dựng thêm một thực tập thực thể giao giữa các tập thực thể này Taxét các trường hợp cụ thể sau:
1) Phá vỡ mối quan hệ Many to Many: Xét lại mối quan hệ giữa hai tập thực thể
SINHVIEN và MONHOC ta thấy:
Để một Sinh viên có thể được đăng ký học nhiều Môn học và ngược lại để một Mônhọc có nhiều Sinh viên theo học ta thiết kế thêm tập thực thể giao như sau:
Ta có thể giải thích như sau: Đối với tập thực thể ĐANGKY là tập thực thể giao
nên ta phải lấy thuộc tính tham gia làm khóa chính của bảng 1 tham gia làm khóachính của bảng giao, những thuộc tính này được gọi là Khóa ngoại (Xem chi tiếtbài sau) Ngoài ra một Môn học, Sinh viên có thể bị học lại nhiền lần (do khôngđạt) nên có sự trùng lắp giữa MSSV và MAMH nên ta phải thêm thuộc tínhNGAYDK tham gia làm khóa chính của tập thực thể Ứng với một Môn học màSinh viên theo học sẽ có Điểm
2) Phá vỡ mối quan hệ One to One: Xét lại mối quan hệ kết hôn giữa hai tập thực thể người trưởng thành NAM và NU ta thấy tại một thời điểm nhất định thì một người
Nam cũng như người NU chỉ được kết hôn duy nhất với một người, nhưng xét một thờigian dài (cả đời người) thì một người NAM cũng như người NU có thể kết hôn được
với nhiều người hoặc tái hôn nếu điều kiện cho phép vì họ có thể kết hôn rồi ly dị, ly
dị xong thì có thể kết hôn với người khác hoặc lại đi tái hôn với người cũ Ta có thể
thiết kế tập thực thể DK KETHON là tập thực thể giao như sau:
MONHOC
# MAMH
* TENMH + SOTC
Trang 6CHƯƠNG I: TỔNG QUAN VỀ ACCESS
I Khái niệm cơ sở dữ liệu (CSDL: DataBase)
CSDL là tập hợp những dữ liệu liên quan tới một chủ đề, một phạm vi quản lý Nhằmthoả mãn nhu cầu khai thác thông tin nhanh chóng, chính xác, hiệu quả
(CSDL là tập hợp dữ liệu mang tính hệ thống, chứ không phải là dữ liệu rời rạc)
CSDL quan hệ (Relational DataBase): là tập hợp các bảng liên quan tới nhau, tạothành một hệ thống thông tin thống nhất, đảm bảo tính không được thiếu, không thừa củanguồn dữ liệu
Hệ quản trị CSDL (HQT CSDL: DataBase Management System)
Là phần mềm cho phép tạo, lưu trữ, quản lý và tương tác với CSDL
Các chức năng cơ bản của HQTCSDL
Một HQTCSDL phải có ngôn ngữ mô tả dữ liệu (Data Definition Language) cho
phép ta định nghĩa cấu trúc (tạo, sửa, xoá) và mô tả các mối liên hệ của dữ liệu cũng nhưnhững quy tắc quản lý trên dữ liệu đó
Một HQTCSDL phải có ngôn ngữ thao tác dữ liệu (Data Manipulation Language)
cho phép người sử dụng có thể cập nhật dữ liệu (thêm, sửa, xoá)
Một HQTCSDL phải có ngôn ngữ truy xuất dữ liệu (Data Receive Language) để
khai thác, trích rút dữ liệu trong CSDL khi có nhu cầu
Ngoài ra, một số HQTCSDL cung cấp cho người sử dụng những cơ chế bảo mật vàphục hồi dữ liệu khi có sự cố xảy ra
HQTCSDL quan hệ là hệ quản trị cơ sở dữ liệu theo mô hình quan hệ
Hệ quản trị cơ sở dữ liệu MS Access là HQTCSDL quan hệ có khá đầy đủ các chứcnăng trên Ngoài ra chương trình này còn có các chức năng khác như tạo Form, Report,Macro, Module,… cho phép xây dựng hoàn chỉnh một phần mềm quản lý CSDL
II Các thành phần trong cơ sở dữ liệu Access
(Nằm trên file có phần mở rộng *.mdb)
Trong cơ sở dữ liệu của Ms Access 2000 gồm có 7 thành phần, mỗi thành phần gồmnhiều đối tượng
Ví dụ: Trong thành phần Tables có nhiều đối tượng Table, trong thành phần Queries
có nhiều đối tượng Query,
Trang 7Từ các nguồn khác: có nghĩa là liên kết lấy dữ liệu từ các file dạng khác như *.xls
(Excel), hoặc dữ liệu trong các hệ quản trị cơ sở dữ liệu khác,
II.1 Table: là đối tượng lưu trữ dữ liệu.
Hình 1.1: Màn hình hiển thị dữ liệu bảng HoSo.
II.2 Query: tính toán, xử lý và khai thác dữ liệu trong Cơ sở dữ liệu.
Hình 1.2: Màn hình hiển thị dữ liệu truy vấn các thí sinh KV1.
II.3 Form: giao diện nhập và thể hiện dữ liệu, tạo hộp thoại giao tiếp giữa ứng dụng và
người sử dụng
Hình 1.3: Giao diện liệt kê các thí sinh theo từng khu vực.
II.4 Macro: tạo các hành động điều khiển và liên kết các đối tượng nằm trong các thành
phần của Access
Trang 8Ví dụ: tạo hành động mở mẫu biểu có tên sbfTest và chỉ hiển thị những thí sinh thuộcKV3.
Hình 1.4: Màn hình hiển thị phần thiết kế Macro.
II.5 Report: tạo mẫu báo cáo thể hiện dữ liệu phong phú, đẹp mắt Là khâu cuối cùng của
quá trình xử lý dữ liệu, để rồi in ra giấy
Hình 1.5: Báo cáo thống kê chi tiết các thí sinh theo từng khu vực
II.6 Module: môi trường để soạn thảo các hàm (Function), thủ tục (Sub) viết bằng ngôn ngữ
VBA (Visual Basic for Application) hay còn gọi là Access Basic Nhằm xử lý và điều khiểncác đối tượng phức tạp
Ví dụ: tạo thủ tục SuaNoiSinh để sửa dữ liệu trong cột (trường) NoiSinh Nếu là
“hanoi” thì đổi thành “Ha Noi “
Trang 9Hình 1.6: Màn hình soạn thảo mã lệnh chương trình.
II.7 Page: cho phép thể hiện dữ liệu trên trang dạng Web (*.htm) Người sử dụng có thể truy
cập vào CSDL thông qua trình duyệt Microsoft Internet Exploirer (IE)
Hình 1.7: Màn hình hiển thị danh sách khu vực từ cửa sổ IE.
Trang 10CHƯƠNG II: TABLE - BẢNG DỮ LIỆU
I Khái niệm
Table là thành phần quan trọng nhất trong CSDL, là nơi trực tiếp lưu trữ dữ liệu MỗiTable chứa thông tin về một thực thể xác định
Ví dụ:
Bảng MonHoc lưu trữ thông tin về các môn học như: Mã môn học, Số tiết,
Bảng NhanVien lưu trữ thông tin về cán bộ nhân viên như: Mã nhân viên, Họ tên,Ngày sinh, Quê quán, Lương,…
SR001 Nguyễn Phương Nam 14/12/1975 Hà Tây 650000
SR002 Trần Mạnh Hùng 03/09/1970 Thái Nguyên 800000
SR003 Vũ Phương Thảo 19/12/1978 Hải Phòng 720000
I.1 Cấu trúc của bảng: gồm các hàng và các cột giao nhau
Cột trong Table thì gọi Field (trường)
Mỗi Field ứng với một mục dữ liệu mà ta cần lưu trữ, và mỗi Field có một kiểu dữ liệuxác định
Mã NV, Họ tên, Quê quán: kiểu kí tự
Ngày sinh: kiểu ngày tháng
Lương: kiểu số
Hàng trong table thì gọi Record (bản ghi)
Là một thể hiện dữ liệu của các Field trong bảng
I.2 Khoá chính (Primary Key)
Trong bảng thường có khoá chính gồm một hoặc nhiều trường đảm bảo 2 tính chấtsau:
Dữ liệu trên đó là duy nhất, mục đích dùng để phân biệt bản ghi này với bản ghi kiaKhông được phép rỗng dữ liệu (phải nhập dữ liệu) Vì khi biết được giá trị củatrường khoá chính thì có thể suy ra giá trị của các trường khác
I.3 Khoá ngoại (Foreign Key)
Để tạo quan hệ giữa các bảng người ta lấy khoá chính đưa sang bảng quan hệ làmkhoá ngoại Dữ liệu trong khoá ngoại phải được tham chiếu lấy từ khoá chính
II Các phương pháp tạo Table
II.1 Tạo Table bằng Table Wizard
Đây là phương pháp tạo bảng theo các bước hướng dẫn để xây dựng các Table từtrong CSDL mẫu của Access
Cách 1: trong cửa sổ Database chọn New/ Table Wizard
Cách 2: chọn Create table by using wizard
Trang 11Hình 2.1: Cửa sổ tạo mới Table bằng trợ giúp.
Sample Tables: chọn các Table mẫu
Sample Fields: chọn các Fields trong Table mẫu Fields in my new table: các trường xuất hiện trong
bảng khi nó được tạo ra
(ta có thể chọn nút lệnh Rename Field… để đổi tên
trường)
Phương pháp này chỉ với mục đích tham khảo, vì cácTable mẫu thường không thích hợp với cách quản lý của ta(thường phải thiết kế lại)
II.2 Tạo Table bằng Datasheet View
Cách 1: trong cửa sổ Database chọn New/ Datasheet View
Cách 2: chọn Create table by entering data
Người dùng chỉ cần gõ dữ liệu trực tiếp vào bảng có dạng giống Excel
Hình 2.2: Cửa sổ tạo mới Table bằng Datasheet View.
Access sẽ tự động xác định:
Kiểu dữ liệu của trường tuỳ theo dữ liệu nhập
Số trường sẽ thu lại theo số cột có dữ liệu
Số bản ghi sẽ thu lại theo số hàng có dữ liệu nhập
II 3 Tạo Table bằng Design View
Đây là cách tạo bảng thường dùng nhất, với cách này ta trực tiếp tạo ra cấu trúc bảngtheo mong muốn
Cách 1: trong cửa sổ Database chọn New/ Design View
Cách 2: chọn Create table in Design View
Trang 12
Hình 2.3: Cửa sổ tạo mới Table.
Màn hình giao diện tạo bảng bằng Design View như sau:
Hình 2.4: Cửa sổ thiết kế Table.
Field Name: đặt tên trường.
Data Type: kiểu dữ liệu của trường.
Description: chú thích ý nghĩa của trường, nội dung sẽ hiện ở dòng trạng thái
(Status Line) để hướng dẫn nhập liệu khi mở Table ở chế độ Datasheet
Field Properties: các thuộc tính của trường.
Nếu tạo mới Table mà chưa tạo khoá chính thì khi thoát khỏi chế độ Design ViewAccess bắt ta phải đặt tên cho Table, rồi sau đó sẽ hỏi ta có muốn tạo khoá chính không? Tachọn No để không tạo khoá
Trang 13Hình 2.5: Hộp thoại hỏi khoá chính.
II.3.1 Tên trường (Field Name)
Các quy tắc đặt tên trường
Tên trường có thể chứa các kí tự chữ cái, chữ số, dấu cách, các kí tự đặc biệt (trừ các
Text (kiểu kí tự): tối đa 255 kí tự
Memo (kiểu kí ức): tối đa 64000 kí tự, thường được dùng để lưu trữ những văn bản lớn chẳng hạn như chú thích, tiểu sử cá nhân Number (kiểu số): gồm các kiểu có miền giá trị khác nhau khai báo trong Field size
Date/Time (kiểu ngày tháng): tối đa 8 byte dùng lưu trữ dữ liệu dạng ngày tháng
Currency (kiểu tiền tệ): tối đa 8 byte, đây cũng là một dạng kiểu Number nhưng có ký
hiệu tiền tệ
Yes/No (kiểu Logic): lưu dữ liệu chỉ trong 2 trạng thái
AutoNumber (kiểu số tự động): dữ liệu trong trường có kiểu này sẽ được tự động thêm vào
các giá trị tuần tự hay ngẫu nhiên mà không cần người sử dụng nhập vào
OLE Object (nhúng và liên kết đối tượng): lưu âm thanh, hình ảnh tối đa 1GB bộ nhớ
Hyperlink (kiểu siêu liên kết): lưu đường dẫn tới một máy khác trên mạng hay địa chỉ liên kết tới một trang Web, địa chỉ Email, tối đa 2048 kí tự.Lookup
wizard: tham chiếu tới danh sách các giá trị của một trường nào đó ở bảng khác.
Bảng các kiểu dữ liệu của một trường có thể nhận
II 3.2 Các thuộc tính của trường (Field Properties)
Phần Genernal: các thuộc tính chung
Field size: quy định độ rộng của dữ liệu trong trường.
Ví dụ: Đối với kiểu Text ở thuộc tính này ta quy định là 10 thì chỉ được nhập 10
kí tự Còn đối với kiểu Number ta chọn các kiểu với miền sau:
Format: định dạng các thể hiện của dữ liệu trong trường Với từng kiểu dữ liệu
(Data Type), ta có các kiểu định dạng khác nhau
Trang 14Đối với dạng Text
' < ': dữ liệu trong trường tự động chuyển thành chữ thường ' > ': dữ liệu trong trường tự động chuyển thành chữ hoa
@ [tên màu]: tự động định dạng màu chữ
Tên các màu: Black (đen), Blue (xanh lá cây), Green (xanh nước biển),Cyan (xanh nhạt), Red (đỏ), Magenta (tím cánh sen), Yellow (vàng), White
(trắng),
Đối với dạng Date/Time
Ta chọn các dạng có sẵn:
Hoặc ta dùng các kí tự d, m, y để thiết lập như sau:
dd/mm/yyyy: 19/12/2003 (với dd:day, mm: month, yyyy:year)
dd-mmm-yyyy: 19-Dec-2003
mm/dd/yy: 12/19/03
Đối với dạng số ta dùng các định dạng có sẵn
Giả sử ta có giá trị 3456.789
Đối với dạng dữ liệu Yes/No: có các dạng Yes/No, True/False, On/Off Nếu
không khai báo Format thì sẽ hiện các giá trị –1 (Yes), 0 (No)
Decimal Places: quy định số chữ số thập phân (chỉ có trong Number, Currency) Input Mask (mặt nạ nhập liệu): Trong trường hợp dữ liệu có cùng dạng thức ta
nên quy định mẫu nhập liệu, nhưng phải nhập đúng quy định đó
L Vị trí dành cho một kí tự A-Z (bắt buộc nhập)
? Vị trí dành cho một kí tự A-Z (không bắt nhập)
A Vị trí dành cho một ký tự chữ hoặc số (bắt buộc)
A Vị trí dành cho một ký tự chữ hoặc số (không bắt
buộc)
& Vị trí dành cho một kí tự bất kì (bắt buộc)
C Vị trí dành cho một kí tự bất kì (không bắt buộc)
Trang 15Ta phải thiết lập như sau 00/00/0000
Caption: chuỗi tiêu đề cột khi bảng ở chế độ Datasheet (chế độ cập nhật dữ liệu),
nếu bỏ qua thì Access lấy tên trường làm tiêu đề cột
Default Value: xác định giá trị định trước (dùng trong trường hợp nhập dữ liệu đó
là nhiều)
Validation Rule: xây dựng biểu thức kiểm tra dữ liệu (quy tắc hợp lệ)
Ví dụ: nếu > 0 thì dữ liệu nhập vào phải lớn hơn 0.
Validation Text: xâu kí tự hiện trong hộp thông báo lỗi nếu vi phạm điều kiện
trong Validation Rule
Required: có bắt buộc phải nhập dữ liệu không?
Yes: tương ứng với việc buộc nhập dữ liệu No: không buộc nhập dữ liệu
tại trường đó
Allow Zero Length: áp dụng cho Text, Memo, Hyperlink cho phép nhập hay
không nhập dữ liệu là giá trị rỗng
Indexed (chỉ số): Tạo chỉ số để sắp xếp và tăng tốc độ tìm kiếm dữ liệu
No: không tạo chỉ số Yes (Duplicates Ok): tạo chỉ số được phép trùng Yes (No Duplicates): tạo chỉ số không được phép trùng Lookup: các thuộc tính tham chiếu
Display Control: chọn cách hiển thị
Text Box: hộp văn bản Combo Box: hộp liệt kê thả List Box: hộp liệt kê danh sách Check Box: hộp kiểm tra (áp dụng cho Yes/No)
Nếu Display Control đặt là Text thì sẽ không có các tuỳ chọn tiếp theo, nếu DisplayControl đặt là List Box sẽ có thêm các phần tuỳ chọn như sau:
Row Source Type: kiểu nguồn dữ liệu Table/Query: lấy dữ liệu có sẵn trong Table hoặc Query.
Value List: tự đánh dữ liệu cho danh sách Field List: danh sách là tên các field trong Table hoặc query
Row Source: nguồn giá trị trong danh sách (có thể chọn tên của
Table/Query, hoặc tự liệt kê giá trị )
Bound Column: cột được lấy làm giá trị của Field Column Count: số cột hiển thị trong danh sách Column Heads: bật tắt dòng tiêu đề
Column Widths: độ rộng của từng cột trong danh sách
Nếu Display Control đặt là Combo Box sẽ có thêm những phần sau:
List Row: số dòng hiển thị trong danh sách List Width: độ rộng của danh sách (tổng độ rộng của các cột)
Trang 16Limit to List: giới hạn trong danh sách
Yes: chỉ được nhập dữ liệu lấy trong danh sách cho Field
No: có thể nhập dữ liệu ngoài danh sách cho Field
III Các hình thức tạo bảng khác
III Import Table (nhập khẩu bảng)
Lấy bảng đã có sẵn từ CSDL khác về CSDL hiện thời Bảng được tạo ra độc lập vớibảng nguồn
Cách 1: trong cửa sổ Database chọn New/ ImportTable Cách 2: vào thực đơn File/Get External Data/Import
Chỉ ra đường dẫn chọn file CSDL khác rồi chọn lệnh Import.
Hình 2.6: Cửa sổ Import Objects.
Chọn tên bảng cần Import rồi OK
Select All: chọn tất cả các bảng
Deselect All: huỷ chọn tất cả các bảng
Chú ý: Ta có thể dùng phương pháp Export Table (xuất khẩu bảng) để đưa bảng từ
CSDL hiện thời sang CSDL khác
Trang 17Cách 1: chọn bảng cần xuất khẩu rồi vào thực đơn File/Export
Cách 2: nhấn phải chuột vào bảng cần xuất khẩu /Export
III.2 Link Table (bảng liên kết)
Là cách tạo bảng bằng cách liên kết đến một bảng của CSDL khác Cách tạo bảng nàygần giống như cách tạo bảng bằng Import Table, chỉ khác là bảng không được lấy hẳn về nhưImport Table mà chỉ là liên kết tới bảng đó
Cách 1: trong cửa sổ Database chọn New/ LinkTable Cách 2: vào thực đơn File/Get External Data/ LinkTable
Chỉ ra đường dẫn CSDL chứa bảng cần liên kết đến rồi chọn lệnh Link
Lưu ý:
Biểu tượng của bảng liên kết có thêm hình mũi tên
Bảng liên kết chỉ được cập nhật dữ liệu, không được phép sửa thiết
kế
IV Các chế độ của Table
Có hai chế độ mở bảng, mở bảng ở chế độ cập nhật dữ liệu (Datasheet View) và mởbảng ở chế độ thiết kế (Design View)
IV.1 Mở bảng ở chế độ thiết kế (Design View)
Cho phép sửa đổi cấu trúc bảng Tại đây, chúng ta có thể chèn thêm trường, xoátrường đi, thay đổi kiểu dữ liệu hay thuộc tính của trường,
Cách thực hiện:
Bước 1: chọn Table Bước 2: nhấn Design trên thanh công cụ của cửa sổ Database Chèn thêm một trường vào trong Table
Cách 1: vào thực đơn Insert/Rows Cách 2: phải chuột /Insert Rows Xoá một hoặc nhiều trường trong Table
Bước a: chọn các trường muốn xoá Bước b: vào thực đơn Edit/Delete Rows hoặc phải chuột/ Rows Tạo khoá chính (Primary Key)
Bước a: chọn một hoặc nhiều trường làm khoá chính Bước b: thiết lập khoá chính
Cách 1: vào thực đơn Edit/Primary Key Cách 2: nhấn vào biểu tượng Primary Key (chìa khoá)
trên thanh công cụ
(Nếu muốn bỏ khoá chính ta thực hiện lại động tác trên)
IV.2 Mở bảng ở chế độ cập nhật dữ liệu (Datasheet View)
Cho phép xem và thêm, xoá, sửa dữ liệu của bảng
Trang 18Hình 2.7: Màn hình cho phép chỉ định loại đối tượng OLE.
Create New: tạo file ảnh, văn bản, bảng tính, bằng các chương trình trong Object Type.
Hình 2.8: Chọn đường dẫn đến file cho đối tượng OLE.
Create from File: lấy file ảnh, văn bản, bảng tính, đã lưu trong máy
(Bấm nút Browse chọn đường dẫn tới file đó)
Link: chỉ liên kết tới file đó.
Sửa hình ảnh
Cách 1: vào thực đơn Edit/Bitmap Image Object / Edit Cách 2: phải chuột/ Bitmap Image Object / Edit Điều chỉnh độ rộng, thay đổi vị trí cột (tham khảo sách bài tập)
Đổi tên, ẩn, hiện cột (tham khảo sách bài tập).
b Sắp xếp dữ liệu
Bước 1: Chọn cột cần sắp xếp
Bước 2: Chọn các cách
Cách 1: Record/Sort /{Ascending | Descending}
Cách 2: Nhấn biểu tượng trên thanh công cụ.
c Lọc dữ liệu
Trang 19Chức năng: Lọc những bản ghi thỏa mãn nhiều giá trị mà ta lựa chọn trên nhiều
cột (thỏa mãn nhiều điều kiện)
Bước 1: vào thực đơn Records/ Filter/ Filter By Form (hoặc chọn biểu tượng
Filter By Form trên thanh công cụ)
Bước 2: chọn giá trị cần lọc trên từng cột của bảng/Apply Filter
Sử dụng lọc Advanced Filter/Sort
Cho phép ta lọc dữ liệu và sắp xếp bằng cách sử dụng các phép toán (toán tử)
Bước 1: Chọn Records/ Filter/ Advanced Filter Sort xuất hiện
Field: Chọn trường cần lọc hoặc sắp xếp.
Sort: Chọn kiểu sắp xếp.
Criteria: nhập điều kiện lọc.
Or: Nhập điều kiện lọc hoặc.
Bước 2: Chọn Filter/ Apply Filter /Sort hoặc chọn Apply Filter trên thanh
công cụ
V Sao chép, xóa, đổi tên Table trong CSDL
Phải đóng các Table cần thực hiện và trở về cửa sổ Database
V.1 Sao chép
Bước 1: chọn Table Bước 2: vào thực đơn Edit/Copy Bước 3: vào thực đơn Edit/Paste xuất hiện hộp thoại
V.2 Đổi tên
Bước 1: chọn Table
Trang 20Bước 2: vào thực đơn Edit/Rename (hoặc phải chuột/Rename) Bước 3: gõ tên mới/Enter.
V.3 Xoá Table
Bước 1: chọn Table Bước 2: chọn các cách sau
Cách 1: phải chuột/ Delete Cách 2: nhấn phím Delete trên bàn phím Bước 3: xác nhận Yes để xoá.
VI Quan hệ giữa các bảng – Relationship
Với những cơ sở dữ liệu được tổ chức cẩn thận và bài bản, thường thì sau khi thiết
kế xong cấu trúc cho các table, người ta quy định luôn mối quan hệ giữa các table này
Khi tạo mối quan hệ thì tính nhất quán dữ liệu sẽ được đảm bảo và các bảng cóthể bổ xung thông tin cho nhau Để dễ hiểu ta xét quan hệ giữa hai Table
a Mối quan hệ một – một
Table A có quan hệ một – một với Table B nếu một giá trị trên trường quan hệ củaTable A chỉ xuất hiện một lần trên trường quan hệ của Table B và ngược lại
b Mối quan hệ một – nhiều
Table A có quan hệ một – nhiều với Table B nếu một giá trị trên trường quan hệ củaTable A có thể xuất hiện nhiều lần trên trường quan hệ của Table B nhưng giá trị trên trườngquan hệ của Table B chỉ xuất hiện một lần trên trường quan hệ của Table A
c Mối quan hệ nhiều – nhiều
Mối quan hệ này thể hiện rằng một giá trị trên trường quan hệ của Table A có thểxuất hiện nhiều lần trên trường quan hệ của Table B và ngược lại
Nếu trong thực tế có mối quan hệ này khi triển khai mô hình CSDL quan hệ phải tách
ra làm hai quan hệ một – nhiều bằng cách tạo ra Table thứ ba.
Ví dụ: ta có hai bảng gồm các trường sau:
SinhVien ( MaSV, TenSV, NgaySinh , QueQuan, Khoa )
MonHoc ( MaMH, TenMH, SoTiet )
Hai bảng này có quan hệ nhiều - nhiều vì “Một sinh viên phải thi nhiều môn học và
một môn học có nhiều sinh viên đăng ký thi”
Ta tạo Table thứ ba để giải toả mối quan hệ nhiều - nhiều như sau:
KETQUATHI (MaSV, MaMH, Diem)
VI.1 Tạo dây quan hệ
Bước 1: Hiện hộp thoại Relationships
Cách 1: Vào thực đơn Tools/Relationships Cách 2: Chọn biểu tượng thanh công cụ
Bước 2: Hiện hộp thoại Show Table
Cách 1: Relationships/ Show Table
Cách 2: Chọn biểu tượng trên thanh công cụ
Trang 21Hình 2.10: Màn hình thêm các Table vào cửa sổ quan hệ.
Add: để bổ xung thêm Table vào quan hệ
Close: đóng cửa sổ Show Table.
Hình 2.11: Các bảng trong file CSDL TuyenSinh.mdb.
Bước 3: Đặt quan hệ giữa 2 bảng (dùng phương pháp kéo thả)
Xuất hiện hộp thoại Edit Relationships
Trang 22Hình 2.12: Cửa sổ tạo các ràng buộc cho quan hệ
Enfore Referential Integrity
ép buộc tính toàn vẹn tham chiếu: đảm bảo sự đúng đắn của dữ liệu
Cascade Update Related Fields: Cập nhật liên hoàn: khi ta thay đổi giá trị của
khoá chính thì giá trị tương ứng trong tất cả các bảng liên hệ với nó cũng tự động thay đổitheo
Cascade Delete Related Records: Xoá liên hoàn: bản ghi ở bảng chính bị xoá thì
các bản ghi ở các bảng liên hệ cũng bị xoá theo
Lưu ý: Các chức năng Cascade Update Related Fields, Delete Related Records
chỉ có thể sử dụng được nếu ta chọn Enfore Referential Integrity.
Relationdhips Type: loại quan hệ
Trang 23One to One: là quan hệ một – một
One to Many: là quan hệ một – nhiều Chú ý: Nếu là quan hệ có ép buộc tính toàn vẹn tham chiếu thì dây quan hệ sẽ có
biểu diễn loại quan hệ (có đầu mút), còn nếu không thì dây quan hệ sẽ là đường trơn không cóbiểu diễn loại quan hệ (không có đầu mút)
Bước 4: Chọn nút lệnh Create.
Hình 2.13: Các quan hệ trong file CSDL TuyenSinh.mdb.
VI.2 Sửa dây quan hệ
Cách 1: Nhấn đúp chuột tại dây quan hệ Cách 2: Nhấn phải chuột tại dây quan hệ / Edit Relationship
VI.3 Xoá dây quan hệ
Cách 1: Chọn dây quan hệ / nhấn phím Delete Cách 2: Phải chuột dây quan hệ / Delete
VII Các phép toán
VII.1 Các phép toán số học
Chú ý: Thứ tự ưu tiên của các
phép toán là lũy thừa, nhân, chia, chia lấy
nguyên, cộng, trừ Ngoài ra có thể sử dụng
dấu ( ) để thay đổi thứ tự ưu tiên
VII.2 Các phép toán so sánh
Chú ý: Đối với giá trị kiểu
Date/Time thì ngày sau lớn hơn ngày
trước
Các phép toán so sánh tạo nên biểu thức Logic cho kết quả True (-1) hoặc False (0)
VII.3 Các phép toán Logic: AND, OR, NOT
Chú ý: Thứ tự ưu tiên của các phép toán Logic là NOT -> AND -> OR Ngoài ra có
thể sử dụng dấu ( ) để thay đổi thứ tự ưu tiên
VII.4 Phép toán ghép chuỗi
Cú pháp: <Biểu thức chuỗi 1> & <Biểu thức chuỗi 2>
Ví dụ: “Chao cac ban ” & ” hoc vien, sinh vien SaraCenter” trả về chuỗi
“Chao cac ban hoc vien, sinh vien SaraCenter”
Trang 24Chú ý: Nếu thay phép toán & bằng phép toán + thì có thể cho kết quả sai trong một
số trường hợp
VII.5 Phép lấy mẫu
Cú pháp: LIKE <mẫu dữ liệu>
So sánh chuỗi dữ liệu với mẫu dữ liệu được chỉ sau LIKE
Các kí tự đại diện sử dụng trong mẫu dữ liệu
*: đại diện cho nhiều kí tự
?: đại diện cho một kí tự
#: đại diện cho một chữ số (từ 0 đến 9)
Ví dụ: Tìm những thí sinh có tên bắt đầu bằng kí tự “H”
LIKE “H*” trả kết quả “Hữu”, “Hạnh”, “Hương”,
Ví dụ: Tìm những thí sinh có tên không bắt đầu bằng kí tự “T”
NOT LIKE “T*”
VII.6 Phép toán BETWEEN AND
Cú pháp: BETWEEN <giá trị 1> AND <giá trị 2>
Lấy giá trị trong đoạn từ giá trị 1 đến giá trị 2
Ví dụ: BETWEEN 1 AND 10 Û >=0 AND <=10
BETWEEN #01/01/1982# AND #30/12/1982#
Û >= #01/01/1982# AND <= #30/12/1982#
VII.7 Phép toán IN
Cú pháp: IN (<giá trị 1>, <giá trị 2>, , <giá trị N>)
Lấy giá trị rời rạc <giá trị 1> hoặc <giá trị 2>, ,<giá trị N>
Ví dụ:
IN(1,3,4,5) Û 1 OR 2 OR 4 OR 5IN(“Hà Nội”, “Thái Bình”,”Hà Tây”) Û “Hà Nội” OR “Thái Bình”
OR ”Hà Tây”
NOT IN (“Hà Nam”, “Hải Phòng”) Û <> “Hà Nam” AND <> “HảiPhòng”
VII.8 Phép toán IS NULL
Để lấy những giá trị rỗng (không có dữ liệu)
Ví dụ: Chọn ra những thí sinh chưa có thông tin về khu vực
MaKV is null
Chú ý chung:
Giá trị của kiểu Text nằm trong dấu nháy kép “…”
Giá trị của kiểu Date/Time nằm trong dấu thăng #… #
Có thể kết hợp các toán tử Logic với các toán tử khác như:
Not Like, Not Between, Not In, Is Not Null,
Trang 25CHƯƠNG 3: QUERY - TRUY VẤN
Có 2 phương thức tạo Query
Thiết kế thông qua cửa sổ đồ hoạ QBE (Query By Example)
Hình 3.1: Truy vấn thông tin các thí sinh KV1.
Viết bằng lệnh SQL (Structured Query Language)
Hình 3.2: Truy vấn thông tin các thí sinh KV1.
Trang 26Tuỳ theo kết quả cho ra bởi Query, người ta phân ra các loại sau:
Select Query: Dùng để chọn dữ liệu trên các bảng
sử dụng rất phổ biến, trong một chừng mực nào đó nó gần giống Filter nhưng tínhnăng cao hơn một mức Vì nó có khả năng:
Vấn tin trên nhiều Table
Tạo thêm các trường tính toán
Tóm lược và kết nhóm số liệu (Total Query)
Chọn các trường cần hiện hoặc ẩn, trình bày số liệu theo một trật tự mới theo yêucầu đặt ra
Tạo ra truy vấn hỏi đáp tại thời điểm chạy Query
Các bước tạo Query
Muốn tạo Select Query thì trong CSDL phải có Table chứa dữ liệu rồi.
Nếu truy vấn trên nhiều bảng thì phải thiết lập quan hệ giữa các bảng (RelationShips)
Ta có thể tạo Select Query bằng các cách
Simple Query Wizard: có trợ giúp.
Design View: tự thiết kế.
Chú ý:muốn tạo truy vấn ta phải vào Queries trên thanh Objects để tạo
I.1 Simple Query Wizard
Ta chỉ cần chọn bảng chứa các trường tham gia truy vấn theo các bước mà Wizard ướng dẫn
h-Cách 1: chọn Create query by using wizard trong cửa sổ Database
Cách 2: New/ Simple Query Wizard.
Hình 3.3: Cửa sổ tạo mới Query
Bước 1: Xác định các trường tham gia vào truy vấn
Trang 27Hình 3.4: Cửa sổ chọn các trường tham gia truy vấn.
Tables/Queries: chọn Table hoặc Query chứa trường cần lấy
Available Fields: liệt kê các trường có trong Table hoặc Query
Nhấn nút đưa một trường đã chọn
Nhấn nút đưa tất cả các trườngNhấn nút bỏ một trườngNhấn nút bỏ tất cả các trường
Selected Fields: liệt kê các trường tham gia truy vấn (hiển thị khi chạy truy vấn) Nhấn nút lệnh Next để chuyển tới bước sau
Bước 2: Lựa chọn việc hiển thị
Hình 3.5: Cửa sổ chọn cách hiển thị dữ liệu.
Chọn Detail: nếu muốn hiển thị chi tiết toàn bộ giá trị các trường đã chọn