Trường CĐ GTVT III NNT
CHƯƠ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 theo
nghĩ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.
Phần lý thuyết Trang 1
NNT Trường CĐ GTVT III
MÔ 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.
Thực thể (an Entity): Là một “sự vật” hoặc “đối tượng” hoặc “vật thể” mà nó tồ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
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 2 Phần lý thuyết
Trường CĐ GTVT III NNT
@ Để 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):
Tên vùng Ý nghĩa
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ải
thuộ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):
Tên vùng Ý nghĩa
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
+ SOGV
SINHVIEN
# MSSV
* TENSV
* GOITINH
* NGAYSINH
* MAKHOA
+ QUEQUAN
1
n
MONHOC
# MAMH
* TENMH
+ SOTC
+ GVPT
SINHVIEN
# MSSV
* TENSV
* GOITINH
* NGAYSINH
* MAKHOA
+ QUEQUAN
nn
ĐK KẾT HÔN
NAM
HO_TEN
# SO_CMND
* QUE_QUAN
* NGAY_SINH
+ NGHE_NGHIEP
gian 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:
Phần lý thuyết Trang 5
MONHOC
# MAMH
* TENMH
+ SOTC
+ GVPT
SINHVIEN
# MSSV
* TENSV
* GOITINH
* NGAYSINH
* MAKHOA
+ QUEQUAN
n
n
ĐANGKY
# MSSV
# MAMH
# NGAYĐK
* DIEM
1
1
1
NAM
HO_TEN
# SO_CMND
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ức
nă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ồm
nhiề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 6 Phần lý thuyết
Trường CĐ GTVT III NNT
Từ 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.
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ỗi
Table 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,…
Mã NV 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ệu
xá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ất
sau:
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 kia
Không được phép rỗng dữ liệu (phải nhập dữ liệu). Vì khi biết được giá trị của
trườ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àm
khoá 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
Cách 1: trong cửa sổ Database chọn New/ Design View
Cách 2: chọn Create table in Design View
Phần lý thuyết Trang 11
NNT Trường CĐ GTVT III
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 View
Access 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? Ta
chọn No để không tạo khoá.
Trang 12 Phần lý thuyết
Trường CĐ GTVT III NNT
Hì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
kí tự “.”, “!”, “[“, “]” )
Tên trường không được bắt đầu bằng dấu cách, không quá 64 kí tự. Trong một bảng
không có tên trường trùng nhau.
III.2. Kiểu dữ liệu của trường (Data Type)
Trường Giải thích
Text (kiểu kí tự): tối đa 255 kí tự
Long Integer số nguyên
(-2147483648→2147483647)
4
Single kiểu số thực(đơn)
(-3.4*10
38
→ 3.4*10
38
)
4
Double kiểu số thực(kép)
(-1.797*10
308
→ 1.797*10
308
)
8
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.
Phần lý thuyết Trang 13
NNT Trường CĐ GTVT III
Đố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:
. , : ; - /: Ngăn cách giữa các phần
Password Những kí tự đánh vào sẽ hiển thị dấu * (dạng mật
khẩu)
Ví dụ: Giá trị trong trường ngày sinh có dạng 19/12/1978 ta thấy rằng khung mặt nạ
nhập liệu là __ /__ /____
. Ta 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ả
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 16 Phần lý thuyết
Trường CĐ GTVT III NNT
Cá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ày
gầ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
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 18 Phần lý thuyết
Trường CĐ GTVT III NNT
Filter By Selection
Chức năng: Dùng để lọc các bản ghi thỏa mãn giá trị đã được chọn trong bảng dữ
liệu.
Bước 1: chọn giá trị cần lọc của cột trên bảng dữ liệu
Bước 2: chọn các cách sau
Cách 1: vào thực đơn Records/ Filter/ Filter By Selection
Cách 2: kích phải chuột/ Filter By Selection.
Để lọc những giá trị khác (ngược lại) với giá trị được chọn ta chỉ cần chọn Filter
Excluding Selection.
Để bỏ lọc ta chọn biểu tượng Remove Filter trên thanh công cụ (hoặc kích phải chuột /
Remove Filter).
Phần lý thuyết Trang 19
NNT Trường CĐ GTVT III
Bướ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ủa
Table 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ủa
Table 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ường
quan 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 )
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 đổi
theo.
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 22 Phần lý thuyết
Trường CĐ GTVT III NNT
One 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ú 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 5
IN(“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ải
Phò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: