Tải bản đầy đủ (.doc) (99 trang)

Lý thuyết về cơ sở dữ liệu quan hệ1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (921.29 KB, 99 trang )

Đồ án tốt nghiệp

Quản lý thư viện

MỤC LỤC
LỜI NÓI ĐẦU.......................................................................................................4
Phần 1: CƠ SỞ LÝ THUYẾT...............................................................................6
Chương 1: LÝ THUYẾT CƠ SỞ DỮ LIỆU.........................................................6
I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU............................................................6
1.Khái niệm về cơ sở dữ liệu..........................................................................6
2.Sự cần thiết của cơ sở dữ liệu......................................................................6
3.Hệ quản trị cơ sở dữ liệu.............................................................................6
II.LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU QUAN HỆ...........................................7
1. Khái niệm cơ bản về cơ sở dữ liệu quan hệ................................................7
2. Thành phần của cơ sở dữ liệu.....................................................................7
a. Các trường dữ liệu (Data fields).............................................................7
b. Các bản ghi.............................................................................................7
c. Bản dữ liệu(DataTables).........................................................................7
d. Các quan hệ trong RelationShip.............................................................8
3. Lý thuyết thiết kế cơ sở dữ liệu quan hệ....................................................9
Chương 2. GIỚI THIỆU VB.NET......................................................................22
2.1 Nguồn gốc của.NET...................................................................................22
2.2 VB.NET.....................................................................................................23
2.3 Những khác biệt giữa VB.NET với VB6...................................................26
2.4 Namespaces................................................................................................27
2.5 Local và Global Namespaces.....................................................................29
2.6 Truy cập Variable/Class/Structure.............................................................36
2.7 Tạo một Class mới.....................................................................................47
Phần 2: XÂY DỰNG CHƯƠNG TRÌNH...........................................................53
Chương 1: Khảo sát hệ thống..........................................................................53
1. Lý do phát triển........................................................................................53


2. Khảo sát hiện trạng...................................................................................53
a) Đăng ký chờ mượn sách:......................................................................54
b)Mượn sách:............................................................................................54
c)Trả sách:.................................................................................................55
d)Phát sinh báo cáo thống kê:...................................................................55
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

1


Đồ án tốt nghiệp

Quản lý thư viện

3.Mẫu biểu liên quan........................................................................................55
a.Thẻ độc giả................................................................................................55
b.Thông tin sách...........................................................................................56
c.Danh sách của sách....................................................................................56
d.Phiếu mượn sách.......................................................................................56
Chương 2- Phân tích thiết kế...........................................................................57
I-Nhóm chức năng theo mạch cơng việc......................................................57
A. Nhóm quản lý..........................................................................................57
1. Quản lý đầu sách...................................................................................57
2.Quản lý phân loại sách...........................................................................57
6. Quản lý độc giả.....................................................................................57
7. Quản lý nhân viên.................................................................................57
8. Quản lý quyền và phân quyền...............................................................58
B. Nhóm thống kê, báo cáo..........................................................................58
II- Biểu đồ luồng dữ liệu..................................................................................58
1.1.Sơ đồ phân cấp chức năng của hệ thống.............................................59

1.2 Biểu đồ luồng dữ liệu mức 0...............................................................60
1.3 Biểu đồ luồng dữ liệu mức 1.0............................................................61
1.4 Biểu đồ luồng dữ liệu mức 2.0............................................................61
1.5 Biểu đồ luồng dữ liệu mức 3.0............................................................62
1.6 Biểu đồ luồng dữ liệu mức 4.0............................................................63
III- Phân tích cơ sở dữ liệu..............................................................................65
1.Các thực thể...............................................................................................65
2.Chuẩn hóa dữ liệu......................................................................................65
3.Sơ đồ quan hệ E-R.....................................................................................66
4.Sơ đồ vật lý................................................................................................66
5. Giao diện người dùng...............................................................................68
5.1 Kết Nối................................................................................................68
5.2 Độc giả................................................................................................68
5.3 Sách.....................................................................................................74
5.4 Phiếu mượn.........................................................................................81
5.5 Menu...................................................................................................85
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

2


Đồ án tốt nghiệp

Quản lý thư viện

5.6 Gia hạn thẻ..........................................................................................88
5.7 Tìm kiếm.............................................................................................90
5.8 Quản trị người sử dụng:......................................................................94
KẾT LUẬN.........................................................................................................95
TÀI LIỆU THAM KHẢO...................................................................................96


Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

3


Đồ án tốt nghiệp

Quản lý thư viện

1.

LỜI NÓI ĐẦU

Ngày nay công nghệ thông tin (CNTT) là ngành khoa học đã nhanh chóng
khẳng định vị trí của mình với những tính ưu việt mà khơng ai có thể phủ nhận
được. Từ những năm cuối thế kỷ 20, CNTT ở Việt Nam đã phát triển mạnh mẽ
và ứng dụng hầu hết các lĩnh vực khoa học kỹ thuật, kinh tế, văn hóa, xã hội.
Trong công cuộc đổi mới đất nước, cùng với các lĩnh vực khác, ngành
Giáo dục và đào tạo đã và đang từng bước áp dụng những tiến bộ khoa học kỹ
thuật của CNTT và ngành. Những phần mền quản lý, những phần mền hỗ trợ sự
dạy và học với sự trợ giúp của máy tính đã và đang phát huy hết tác dụng góp
phần khơng nhỏ vào sự nghiệp giáo dục nước nhà. Đặc biệt là trong công tác
quản lý tin học lam giảm nhẹ sức lực của người quản lý tin học và thuận tiện
hơn rất nhiều so với thực hiện công việc quản lý đặc biệt là thu hẹp không gian
lưu trữ, tránh được thất lạc dữ liệu từng bước tự động hóa và cụ thể hóa lượng
thơng tin theo u cầu của người quản lý, có thể tìm kiếm, tra cứu thơng tin
nhanh một cách đầy đủ và chính xác hơn.
Hiện nay việc quản lý thư viện là một trong những vấn đề gây ra nhiều
khó khăn cho việc quản lý cho mượn và nhập sách tại khác thư viện. Mơ hình

quản lý thư viện hiện tại khơng cịn phù hợp với sự phát triển của nền kinh tế và
xã hội hiện nay. Một trong những vấn đề gặp phải đó là vấn đề quản lý thư viện
và kèm theo quá nhiều giấy tờ gây rắc rối, khó quản lý. Điều này cấp thiết phải
được thay thế bằng một hình thức quản lý khác hợp lý và hiệu quả hơn.
Với đề tài này em mong muốn xây dựng được một hệ thống quản lý thư
viện một cách thật hiệu quả. Chương trình Quản lý thư viện này được viết dưới
dạng một phần mềm tin học để ứng dụng trong thư viện.
Chương trình Quản lý thư viện có các chức năng được phân cấp rõ ràng
theo từng cấp để bất cứ ai làm công tác quản lý cũng có thể sử dụng được, có
phần Help để giúp cho người sử dụng có thể tra cứu bất cứ lúc nào. Mặt khác,
chương trình cịn cho phép người sử dụng quản trị hệ thống mạnh, tìm kiếm
thơng tin nhanh chóng, chính xác. Song bên cạnh đó vì thời gian có hạn nên
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

4


Đồ án tốt nghiệp

Quản lý thư viện

chương trình này của em còn chứa đựng rất nhiều hạn chế mà em chưa có thời
gian khắc phục.
Nhờ sự tận tâm theo sát hướng dẫn của thầy Trần Văn Lộc, trong bước
đầu em đã nghiên cứu và vận dụng kiến thức đã học để xây dựng được chương
trình quản lý đáp ứng tương đối một số các yêu cầu đặt ra như trên. Tuy nhiên,
do kiến thức cịn hạn chế nên chương trình chắc chắn khơng tránh khỏi các thiếu
sót. Vì vậy, em rất mong nhận được sự đóng góp ý kiến của tất cả các thầy cơ và
các bạn để có thể từng bước xây dựng chương trình ngày càng hồn thiện và
hiệu quả hơn.

Em xin chân thành cảm ơn thầy giáo hướng dẫn Trần Văn Lộc và các thầy
cô giáo Khoa Cơng Nghệ Thơng Tin đã giúp em hồn thành đồ án này.
Hà nội, ngày 22 tháng 4 năm 2009
Sinh viên thực hiện

Nguyễn Hữu Thắng

Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

5


Đồ án tốt nghiệp

Quản lý thư viện

Phần 1: CƠ SỞ LÝ THUYẾT
Chương 1: LÝ THUYẾT CƠ SỞ DỮ LIỆU
I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1.Khái niệm về cơ sở dữ liệu
Cơ sở dữ liệu(CSDL) là một tập hợp sắp xếp các thông tin, dữ liệu về một vấn
đề nào đó, nhằm giúp cho người sử dụng dễ dàng tra cứu, sử dụng và cập nhật.
Đặc điểm chủ yếu của CSDL là cách tổ chức, sắp xếp thông tin, các dữ liệu có
liên quan với nhau sẽ được lưu trong các tệp tin hay trong các bảng. Nói cách
khác nhau nó là tập hợp các dữ liệu có quan hệ với nhau.
2.Sự cần thiết của cơ sở dữ liệu
Ngày nay, nhu cầu tích lũy, lưu trữ và xử lý dữ liệu đã có mặt trên mọi lĩnh vực,
trong mọi hoạt động của con người. Nhưng thông tin ngày càng lớn và phức
tạp, buộc con người phải sắp xếp các thông tin ssao cho nó khoa học, vì vậy địi
hỏi họ phải sử dụng CSDL.

3.Hệ quản trị cơ sở dữ liệu
Là một công cụ cho phép quản lý và tương tác với cơ sở dữ liệu như cho phép
xử lý, thay đổi, truy xuất CSDL. Theo nghĩa này, hệ quản trị CSDL có nhiệm vụ
rất quan trọng như là một bộ phận diễn dịch với ngôn ngữ bậc cao nhằm giúp
người sử dụng có thể dùng được hệ thống mà ít nhiều khơng cần quan tâm đến
thuật tốn chi tiết hoặc biểu diễn dữ liệu trong máy tính. Hầu hết các hệ quản trị
CSDL đều thực hiện các chức năng sau:
- Lưu trữ dữ liệu
- Tạo và duy trì cấu trúc dữ liệu
- Hỗ trợ bảo mật và riêng tư
- Cho xem và xử lý các dữ liệu lưu trữ
- Cung cấp một cơ chế chỉ mục(index) hiệu quả để truy cập nhanh các dữ liệu
lựa chọn.
- Cung cấp tính nhất quán giữa các bản ghi khác nhau.

Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

6


Đồ án tốt nghiệp

Quản lý thư viện

- Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi
dữ liệu(recovery).
Trong hệ quản trị CSDL quan hệ giữa các bảng được tổ chức thành các bảng,
các bảng bao gồm các trường và các trường chứa các bản ghi. Mỗi trường tương
ứng với một mục dữ liệu, hai hay nhiều bảng có thể liên kết nếu chúng có một
hay nhiều trường chung.

II.LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU QUAN HỆ
1. Khái niệm cơ bản về cơ sở dữ liệu quan hệ
Khái niệm CSDL quan hệ: là loại CSDL cho phép ta truy cập đến dữ liệu thông
qua mối quan hẹ đến các dữ liệu khác giống như các bảng tính. Để truy cập
thơng tin ta có thể dùng một ngơn ngữ đặc biệt để truy vấn, đó là SQL(Structure
Query Language) nó là ngơn ngữ truy vấn có cấu trúc.
2. Thành phần của cơ sở dữ liệu
a. Các trường dữ liệu (Data fields)
Trường dữ liệu chứa dữ liệu nhỏ nhất(dữ liệu ngun tố), ví dụ bảng HSSV chứa
thơng tin về sinh viên: trường MSSV chứa mã sinh viên, trường ngaysinh chứa
thông tin về ngày tháng năm sinh của sinh viên trong trường…
Tất cả các trường tạo ra sẽ chứa một CSDL đơn. Tuy rằng ta có thể chứa hơn
một thành phần dữ liệu trong một trường(Field) đơn,nhưng gặp trở ngại khi cập
nhật hay sắp xếp thứ tự.
b. Các bản ghi
Các bản ghi dữ liệu (Record) là tập hợp các trường dữ liệu có liên quan. Một số
bản ghi sinh viên bao gồm các thông tin về sinh viên như: họ tên, ngày sinh, quê
quán, hộ khẩu thường trú, giới tính.
c. Bản dữ liệu(DataTables)
Bằng cách kết hợp field dữ liệu và record dữ liệu đã tạo ra nguyên tố chung nhất
của CSDL quan hệ là bảng dữ liệu. Nguyên tố này chứa nhiều bản ghi dữ liệu,
mỗi bản ghi chứa nhiều trường dữ liệu. Cũng như mỗi bản ghi chứa các trường
có quan hệ,mỗi bảng dữ liệu chứa các bản ghi có quan hệ. Các bảng dữ liệu nên
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

7


Đồ án tốt nghiệp


Quản lý thư viện

đặt tên theo đúng ý nghĩa để giúp người dùng dễ nhớ nội dung bản ghi và
trường.
Mơ hình CSDL quan hệ u cầu mỗi hang trong một bảng phải là duy nhất. Để
đảm bảo tính duy nhất cho một hang bằng cách tạo ra một khóa chính(primary
key) một cột hay kết hợp nhiều cột để xác định duy nhất một hang. Một bảng
ghi chỉ có thể có một khóa chính, mặc dù có thể có một số cột hay tổ hợp các cột
khác có thể tạo ra các giá trị duy nhất. Những cột hay tổ hợp các cột giá trị duy
nhất trong bảng được xem như là khóa dự tuyển của khóa chính. Cho đến nay,
khơng có một ngun tắc tuyệt đối nào để xác định khóa dự tuyển nào là tốt
nhất. Các tính chất đề nghị cả khóa dự tuyển tốt nhất là: nhỏ nhất.(minimality –
chọn một số cột cần thiết ít nhất) ổn định(stability – chọn khóa ít thay đổi nhất)
và đơn giản/ thân thiện(simplicity/familiaty – chọn một khóa vừa đơn giản vừa
quyen thuộc).
 Khóa ngoại lai(Foreign key): Mặc dù các khóa chính là thành phần
của các bảng riêng biệt, nếu ta chỉ dùng các bảng độc lập mà khơng
có quan hệ, ta rất ít sử dụng khóa chính để trở nên thiết yếu khi ta
tạo ra các quan hệ để liên kết các bảng trong CSDL quan hệ.
Một trường được gọi là khóa ngoại lai của một bảng A nếu nó khơng phải là
khóa chính của bảng A và liên kết với một bảng B qua khóa chính của bảng B
để xác định duy nhất một bản ghi của bảng B.
d. Các quan hệ trong RelationShip
Trong CSDL quan hệ, quan hệ được xác lập rên từng cặp bảng,những cặp bảng
này quan hệ với nhau theo từng một trong 3 loại sau 1-1,1-∞, ∞-∞.
 Quan hệ 1-1(one - to - one)
Hai bảng được gọi là quan hệ 1-1 nếu với mọi hang trong bảng thứ nhất chỉ có
nhiều nhất một hàng trong bảng thứ hai. Trên thực tế quan hệ này ít xảy ra. Loại
quan hệ này thường được tạo ra để khắc phục một số giới hạn của các phần mền
quản lý CSDL hơn là mơ hình hóa một trạng thái của thế giới thực. Trong


Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

8


Đồ án tốt nghiệp

Quản lý thư viện

Microsoft Access, các quan hệ 1-1 có lẽ cần thiết trong một CSDL quan hệ khi
tách một bảng thành hai hay nhiều bảng do tính bảo mật hay hiệu quả.
 Quan hệ 1-∞(one – to – many )
Hai bảng có quan hệ một nhiều (one – to – many ) nếu đối với bảng thứ nhất có
thể khơng có, hay có một hay nhiều trong bảng thứ hai. Quan hệ một nhiều còn
được gọi là quan hệ cha con hay là quan hệ chính phục. Loại quan hệ này được
dùng rất nhiều trong CSDL quan hệ.
 Quan hệ ∞-∞.(many – to – many )
Hai bảng có quan hệ many – to – many khi đối với mọi hàng trong bảng thứ
nhất có thể có nhiều hàng trong bảng thứ hai và đối với mọi bảng trong bảng thứ
hai có thể có nhiều hàng trong bảng thứ nhất. Các quan hệ ∞-∞ khơng thể mơ
hình hóa trong nhiều phần mềm CSDL trong đó có cả Microsoft Assecc. Những
quan hệ này cần được tách ra thành nhiều quan hệ 1- ∞.
3. Lý thuyết thiết kế cơ sở dữ liệu quan hệ
Trong phần lớn các ứng dụng chúng ta đều phải tạo ra CSDL. Do các nguyên
nhân đặc biệt có một số ứng dụng khơng thể xây dựng được CSDL từ đầu hoặc
phải sử dụng một số cơ sở có sẵn khơng ở dạng thích hợp cho cơ sở dữ liệu quan
hệ. Một trong những dạng thường gặp nhất của ta là chuyển dữ liệu chứa ở dạng
dữ liệu bảng tính thành các bảng của CSDL quan hệ.
Có 3 bước thiết kế CSDL:

- Tạo ra các lớp thực thể
- Chuẩn hóa các CSDL
- Thực hiện phi chuẩn
Mơ hình cơ sở dữ liệu quan hệ
* Quan hệ
Quan hệ là một tập hợp con của tích Đề - Các của một hay nhiều miền Di. Như
vậy miền quan hệ là vô hạn. Luôn luôn giả thiết rằng, quan hệ là một tập hữu
hạn.
Một hàng của quan hệ gọi là một bộ.
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

9


Đồ án tốt nghiệp

Quản lý thư viện

Quan hệ là tập con của tích Đề - Các D1*D2…..D3 gọi là quan hệ n.
Khi đó mối quan hệ có n thành phần (n cột). Các tiêu đề cột của quan hệ
là thuộc tính. Ta có thể định nghĩa quan hệ như sau:
Cho R = { a1,a2,….an } là một tập hợp hữu hạn, khơng rỗng các thuộc tính.
Mỗi thuộc tính ai có một miền giá trị là D ai. Khi đó r – một tập hợp các bộ
{ h1,h2,….hm } được gọi là một quan hệ trên R với hj (j = 1,2…., m) là một hàm:
Hj : R ->  Dai
Ai  R
Sao cho : hj (ai)  Dai
* Phụ thuộc hàm
Khái niệm về phụ thuộc hàm trong một quan hệ là một quan niệm có tầm quan
trọng rất lớn đối với việc thiết kế mơ hình dữ liệu.

Định nghĩa: Cho R(U) là một lược đồ quan hệ với U = { A 1,….,An } là tập hợp
thuộc tính.X và Y là tập con của U.
Nói rằng X->Y (đọc là X xác định Y hoặc Y phụ thuộc vào hàm
X),nếu r là một quan hệ xác định trên R(U) sao cho bất kỳ hai bộ t1, t2 thuộc r
mà t1 [X] = t2 [ X] th× t1[Y] = t2 [ Y ].
*Hệ tiêu đề Armstrong trong phụ thuộc hàm :
Gọi F là tất cả các phụ thuộc hàm với lược đồ quan hệ R (U) và X->Y là
một phụ thuộc hàm,trong đó X,Y  U. Khi đó ta có F+ là tập hợp tất cả các phụ
thuộc hàm được sinh ra từ F khi sử dụng tiêu đề Armstrong được gọi là bao
đóng của F.
Hệ tiêu đề Armstrong : Gọi R(U) là lược đồ quan hệ với U = { A 1,….,An }
là tập tất cả các thuộc tính X,Y, X,T  U .Khi đó ta có :
- Tính phản xạ : nếu Y  X thì X->Y
-

Tính tẳng trưởng : nếu Z  U và X->Y thì XZ -> YZ,trong đó XZ
là tập của hai tập X và Y,YZ là tập hợp của hai tập Y và Z.

-

Tính bắc cầu : nếu X->Y và Y->Z thì X->Z.

*Khóa
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

10


Đồ án tốt nghiệp


Quản lý thư viện

a) Định nghĩa
Khóa của quan hệ r trên tập thuộc tính U = { A1, A2….,An } là tập con của
K  U sao cho bất kỳ hai bộ khác nhau, 1, t2  r luôn thỏa mãn t1 (K) ≠ t2 (K).
Tập K là siêu khóa (khóa tối thiểu) của quan hệ r nếu K là một khóa của quan hệ
r và mọi tập con thực sự K’ của K đều không phải là tập khóa.
b)Các thuật tốn tìm khóa tối tiểu
* Thuật tốn tìm khhoas tối thiểu của một sơ đồ quan hệ:
Vào: Sơ đò quan hệ s = < R,F > trong đó:
R = { A1, A2….,An } là tập hợp các thc tính.
F là tập các phụ thuộc hàm.

 A1  B1

F  ...
A  B
t
 t
Ra là một khóa tối tiểu.
Thuật toán thực hiện như sau:
+Bước 1: K0 = R = { A1, …..….,An }
+Bước i:

A i-1 - Ai {Ai-1 - Ai }+ = R

K i
...
i=1,2,...,n


Ai-1 ngư ợcưlại

Thay đổi thứ tự các thuộc tính R bằng thuật tốn trên chúng ta có thể tìm
được một khóa tối tiểu khác.
 Thuật tốn tìm khóa tối tiểu của quan hệ:
Cho trước R = { h1, …..….,hm } là một quan hệ trên tập thuộc tính.
R = { a1, …..….,an }. Thuật tốn thực hiện như sau:
+ Bước 1:
Tìm Er = { Eij, 1 ≤ i ≤ j ≤ m }
+Bước 2:
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

11


Đồ án tốt nghiệp

Quản lý thư viện

B0 = R = { a1, …..….,nn }
+Bước 3:

Bi-1 - Bi {Bi-1 - Bi }+ = R

F
...

Bi-1 ngư ợcưlại

+Bc 4:

K = Bn l khóa tối tiểu
Cũng như thuật tốn trên , nếu ta thay đổi thứ tự các thuật toán của R
bằng thuật tốn này chúng ta có thể tìm được một khó tối tiểu khác.
*Các dạng chuẩn
* Dạng chuẩn 1(1 – NF):
Giả sử r = { h1, …..….,hm } là File dữ liệu trên tập cột R = { a1, …..….,an }.
Khi đó r là 1 – NF nếu các giá trị hi (ai) là sơ cấp với mọi i,j.
Khái niệm sơ cấp hiểu ở đây là giá trị hi (aj) (i = - 1,….., m ; j = 1,…, n)
Không phân loại chi được nữa.
* Dạng chuẩn 2 (2 – NF):
Quan hệ r được gọi là dạng chuẩn 2 nếu :
- Quan hệ r là dạng chuẩn 1.
- Với mọi khóa tối tiểu K:
A - > { a }  Fr với A  K và a là thuộc tính thứ cấp.
* Dạng chuẩn 3 (3-NF)
Quan hệ r là dạng chuẩn 3 nếu:
A- > { a}  Fr , đối với A+  R, a  A, a   K.
Có nghĩa là:
- K là một khóa tối tiểu.
- a thuộc tính thứ cấp.
- A khơng là khóa .
- A-> {a } không đúng trong r.

Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

12


Đồ án tốt nghiệp


Quản lý thư viện

* Các phép tính toán trên cơ sở dữ liệu
- Phép chèn: là phép them một bộ t {d1, ..., d n} vào quan hệ r { A1,….An}. Ký
hiệu r  t. Trong đó Ai với i=1,…,n là tên các thuộc tính và d1  dom (Ai) là
các giá trị thuộc miền giá trị tương ứng của thuộc tính Ai.
- Phép loại bỏ: là phép xóa một bộ ra khỏi một quan hệ cho trước ký hiệu r- t,
tuy nhiên không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin về cả bộ
cần loại bỏ.
* Giới thiệu về SQL(Structure Query Language) ngơn ngữ hỏi có cấu trúc, là
một cơng cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu được lưu trữ
trong các cơ sở dữ liệu. SQL là môt hệ thống ngôn ngữ bao gồm tập các câu
lệnh sử dụng để tương tác với CSDL quan hệ.
Tên gọi ngơn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến một
công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu. Thực
sự mà nói,
khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây
là mục
đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là
một trong
những chức năng quan trọng của nó. SQL được sử dụng để điều khiển tất cả
các chức
năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ
liệu,các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành
phần dữ liệu.
• Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực
hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở
dữ liệu.
• Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các

thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

13


Đồ án tốt nghiệp

Quản lý thư viện

• Đảm bảo tồn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ
sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao
tác cập nhật cũng như các lỗi của hệ thống.
Như vậy, có thể nói rằng SQL là một ngơn ngữ hoàn thiện được sử dụng trong
các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ
quản trị cơ sở dữ liệu. Mặc dù SQL khơng phải là một ngơn ngữ lập trình như C,
C++, Java,...song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong
các ngơn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu.
Khác với các ngơn ngữ lập trình quen thuộc như C, C++, Java,... SQL là ngơn
ngữ có tính khai báo. Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải
thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các
u cầu như thế nào. Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng.
* Vai trị của SQL
Bản thân SQL khơng phải là một hệ quản trị cơ sở dữ liệu, nó khơng thể tồn tại
độc lập. SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện
trong các hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp
giữa người sử dụng và hệ quản trị cơ sở dữ liệu. Trong hầu hết các hệ quản trị cơ
sở dữ liệu quan hệ, SQL có những vai trị như sau:
• SQL là ngơn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng
thơng qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQL đến

cơ sở dữ liệu và nhận kết quả trả về từ cơ sở dữ liệu
• SQL là ngơn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng
các câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương
trình ứng dụng giao tiếp với cơ sở dữ liệu
• SQL là ngơn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản trị cơ
sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ
liệu, điều khiển truy cập cơ sở dữ liệu,...
• SQL là ngơn ngữ cho các hệ thống khách/chủ (client/server): Trong các
hệ thống cơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giao
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

14


Đồ án tốt nghiệp

Quản lý thư viện

tiếp giữa các trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu.
• SQL là ngơn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết các
máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trị là
ngơn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu.
• SQL là ngơn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ
liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác
trên mạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau.
• SQL là ngơn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong
một hệ thống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL
thường được sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản
trị cơ sở dữ liệu.
* Tổng quan về cơ sở dữ liệu quan hệ

a. Mơ hình dữ liệu quan hệ
Mơ hình dữ liệu quan hệ được Codd đề xuất năm 1970 và đến nay trở thành mơ
hình được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại. Nói
một cách đơn giản, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu trong đó tất
cả dữ liệu được tổ chức trong các bảng có mối quan hệ với nhau. Mỗi một bảng
bao gồm các dòng và các cột: mỗi một dòng được gọi là một bản ghi (bộ) và
mỗi một cột là một trường (thuộc tính).
b.Bảng (Table)
Như đã nói ở trên, trong cơ sở dữ liệu quan hệ, bảng là đối tượng được sử dụng
để tổ chức và lưu trữ dữ liệu. Một cơ sở dữ liệu bao gồm nhiều bảng và mỗi
bảng được xác định duy nhất bởi tên bảng. Một bảng bao gồm một tập các dòng
và các cột: mỗi một dòng trong bảng biểu diễn cho một thực thể (trong hình 1.1,
mỗi một dịng trong bảng SINHVIEN tương ứng với một sinh viên); và mỗi một
cột biểu diễn cho một tính chất của thực thể (chẳng hạn cột NGAYSINH trong
bảng SINHVIEN biểu diễn cho ngày sinh của các sinh viên được lưu trữ trong
bảng).Như vậy, liên quan đến mỗi một bảng bao gồm các yếu tố sau:
• Tên của bảng: được sử dụng để xác định duy nhất mỗi bảng trong cơ sở dữ
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

15


Đồ án tốt nghiệp

Quản lý thư viện

liệu.


Cấu trúc của bảng: Tập các cột trong bảng. Mỗi một cột trong bảng được


xác định bởi một tên cột và phải có một kiểu dữ liệu nào đó (chẳng hạn cột
NGAYSINH trong bảng SINHVIEN ở hình trên có kiểu là DATETIME).Kiểu
dữ liệu của mỗi cột qui định giá trị dữ liệu có thể được chấp nhận trên cột đó.
• Dữ liệu của bảng: Tập các dịng (bản ghi) hiện có trong bảng.
c. Khóa của bảng
Trong một cơ sở dữ liệu được thiết kế tốt, mỗi một bảng phải có một hoặc một
tập các cột mà giá trị dữ liệu của nó xác định duy nhất một dòng trong một tập
các dòng của bảng. Tập một hoặc nhiều cột có tính chất này được gọi là khố
của bảng. Việc chọn khố của bảng có vai trò quan trọng trong việc thiết kế và
cài đặt các cơ sở dữ liệu quan hệ. Các dòng dữ liệu trong một bảng phải có giá
trị khác nhau trên khố. Bảng MONHOC trong hình dưới đây có khố là cột
MAMONHOC
Một bảng có thể có nhiều tập các cột khác nhau có tính chất của khố (tức là giá
trị của nó xác định duy nhất một dịng dữ liệu trong bảng). Trong trường hợp
này, khoá được chọn cho bảng được gọi là khố chính (primary key) và những
khố cịn lại được gọi là khoá phụ hay là khoá dự tuyển (candidate key/unique
key).

Mối quan hệ và khóa ngồi
Các bảng trong một cơ sở dữ liệu không tồn tại độc lập mà có mối quan hệ mật
thiết với nhau về mặt dữ liệu. Mối quan hệ này được thể hiện thông qua ràng
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

16


Đồ án tốt nghiệp

Quản lý thư viện


buộc giá trị dữ liệu xuất hiện ở bảng này phải có xuất hiện trước trong một
bảng khác. Mối quan hệ giữa các bảng trong cơ sở dữ liệu nhằm đàm bảo được
tính đúng đắn và hợp lệ của dữ liệu trong cơ sở dữ liệu.Này đòi hỏi giá trị cột
MAKHOA của một dòng (tức là một lớp) trong bảng LOP phải được xác định từ
cột MAKHOA của bảng KHOA.

Mối quan hệ giữa các bảng trong một cơ sở dữ liệu thể hiện đúng mối quan hệ
giữa các thực thể trong thế giới thực. Trong hình 1.3, mối quan hệ giữa hai bảng
LOP và KHOA khơng cho phép một lớp nào đó tồn tại mà lại thuộc vào một
khoa khơng có thật.Khái niệm khố ngoài (Foreign Key) trong cơ sở dữ liệu
quan hệ được sử dụng để biểu diễn mối quan hệ giữa các bảng dữ liệu. Một hay
một tập các cột trong một bảng mà giá trị của nó được xác định từ khóa chính
của một bảng khác được gọi là khố ngồi. Trong hình trên, cột MAKHOA của
bảng LOP được gọi là khố ngồi của bảng này, khố ngồi này tham chiếu đến
khố chính của bảng KHOA là cột MAKHOA.
e. Sơ lược về SQL
SQL chuẩn bao gồm khoảng 40 câu lệnh. Bảng 1.1 liệt kê danh sách các câu
lệnh thường được sử dụng nhất trong số các câu lệnh của SQL. Trong các hệ
quản trị cơ sở dữ liệu khác nhau, mặc dù các câu lệnh đều có cùng dạng và cùng
mục đích sử dụng song mỗi một hệ quản trị cơ sở dữ liệu có thể có một số thay
đổi nào đó. Điều này đơi khi dẫn đến cú pháp chi tiết của các câu lệnh có thể sẽ
khác nhau trong các hệ quản trị cơ cơ sở dữ liệu khác nhau.
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

17


Đồ án tốt nghiệp


Câu lệnh

Quản lý thư viện

Chức năng

Thao tác dữ liệu
SELECT

Truy xuất dữ liệu

INSERT

Bổ sung dữ liệu

UPDATE

Cập nhật dữ liệu

DELETE

Xố dữ liệu

TRUNCATE

Xố tồn bộ dữ liệu trong bảng

Định nghĩa dữ liệu
CREATE TABLE


Tạo bảng

DROP TABLE

Xoa bảng

ALTER TABLE

Sửa đổi bảng

CREATE VIEW

Tạo khung nhìn

ALTER VIEW

Sửa đổi khung nhìn

DROP VIEW

Xố khung nhìn

CREATE INDEX

Tạo chỉ mục

DROP INDEX

Xoá chỉ mục


CREATE SCHEMA

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

DROP SCHEMA

Xoá lược đồ cơ sở dữ liệu

CREATE

Tạo thủ tục lưu trữ

PROCEDURE

Sửa đổi thủ tục lưư trữ

ALTER

Xoá thủ tục lưu trữ

PROCEDURE

Tạo hàm (do người sử dụng định nghĩa)

DROP PROCEDURE

Sửa đổi hàm

CREATE FUNCTION Xoá hàm
ALTER FUNCTION


Tạo trigger

DROP FUNCTION

Sửa đổi trigger

CREATE TRIGGER

Xoá trigger

ALTER TRIGGER
DROP TRIGGER

Cấp phát quyền cho người sử dụng

Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

18


Đồ án tốt nghiệp

Quản lý thư viện

Điều khiển truy cập

Thu hồi quyền từ người sử dụng

GRANT

REVOKE

Uỷ thác (kết thúc thành công) giao tác

Quản lý giao tác

Quay lui giao tác

COMMIT

Đánh dấu một điểm trong giao tác

ROLLBACK
SAVE

Khai báo biến hoặc định nghĩa con trỏ

TRANSACTION

Mở một con trỏ để truy xuất kết quả truy vấn

Lập trình

Đọc một dịng trong kết quả truy vấn (sử dụng

DECLARE

con trỏ)

OPEN


Đóng một con trỏ

FETCH

Thực thi một câu lệnh SQL

CLOSE
EXECUTE
Các câu lệnh của SQL đều được bắt đầu bởi các từ lệnh, là một từ khoá
cho biết chức năng của câu lệnh (chẳng hạn SELECT, DELETE, COMMIT).
Sau từ lệnh là các mệnh đề của câu lệnh. Mỗi một mệnh đề trong câu lệnh cũng
được bắt đầu bởi một từ khố (chẳng hạn FROM, WHERE,...).
Ví dụ 1.1: Câu lệnh:
SELECTmasv,hodem,ten
FROM sinhvien
WHERE malop=’C24102’
dùng để truy xuất dữ liệu trong bảng SINHVIEN được bắt đầu bởi từ lệnh
SELECT, trong câu lệnh bao gồm hai mệnh đề: mệnh đề FROM chỉ định tên của
bảng cần truy xuất dữ liệu và mệnh đề WHERE chỉ định điều kiện truy vấn dữ
liệu.
f. Kiểu dữ liệu
Chuẩn ANSI/ISO SQL cung cấp các kiểu dữ liệu khác nhau để sử dụng trong

Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

19


Đồ án tốt nghiệp


Quản lý thư viện

các cơ sở dữ liệu dựa trên SQL và trong ngôn ngữ SQL. Dựa trên cơ sở các kiểu
dữ liệu do chuẩn ANSI/ISO SQL cung cấp, các hệ quản trị cơ sở dữ liệu thương
mại hiện nay có thể sử dụng các dạng dữ liệu khác nhau trong sản phẩm của
mình. Bảng dưới đây liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong
SQL.
CHAR (n) Kiểu chuỗi với độ dài cố định
NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE
VARCHAR (n) Kiểu chuỗi với độ dài chính xác
NVARCHAR (n) Kiểu chuỗi với độ dài chính

xác hỗ trợ

UNICODE
INTEGER Số nguyên có giá trị từ -231đến 231 - 1
INT Như kiểu Integer
TINYTINT Số nguyên có giá trị từ 0 đến 255.
SMALLINT Số nguyên có giá trị từ -215đến 215 – 1
BIGINT Số nguyên có giá trị từ -263đến 263-1
NUMERIC (p,s) Kiểu số với độ chính xác cố định.
DECIMAL (p,s) Tương tự kiểu Numeric
FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308
REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38
MONEY Kiểu tiền tệ
BIT Kiểu bit (có giá trị 0 hoặc 1)
DATETIME Kiểu ngày giờ (chính xác đến phần trăm của giây)
SMALLDATETIME Kiểu ngày giờ (chính xác đến phút)
TIMESTAMP

BINARY Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes)
VARBINARY Dữ liệu nhị phân với độ dài chính xác (tối đa 8000
bytes)
f. Giá trị NULL
Sinh viên thực hiện: Nguyễn Hữu Thắng - MSSV:505101046

20



×