Tải bản đầy đủ (.pdf) (152 trang)

Bài giảng cơ sở dữ liệu

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 (4.98 MB, 152 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA VIỄN THƠNG 1

Bài giảng
Học phần: CƠ SỞ DỮ LIỆU
Mã môn học: TEL 1343
( Lưu hành nội bộ )

Biên soạn
TS. Vũ Thị Thuý Hà
TS. Trần Hà Nguyên

Hà Nội, 12/2022


MỤC LỤC
MỤC LỤC ............................................................................................................ 2
DANH MỤC HÌNH ...............................................................................................5
DANH MỤC BẢNG ...............................................................................................8
LỜI MỞ ĐẦU .......................................................................................................11
CHƯƠNG 1. ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU ................................1
1.1.

Tổng quan về lý thuyết cơ sở dữ liệu..............................................................1

1.1.1.

Giới thiệu chung ..........................................................................................1

1.1.2.


Cơ sở dữ liệu và hệ cơ sở dữ liệu ................................................................4

1.1.3.

Hệ quản trị cơ sở dữ liệu và ưu nhược điểm .............................................13

1.1.4.

Các ngôn ngữ hệ CSDL ............................................................................19

1.2.

Kiến trúc của một hệ quản trị CSDL ...........................................................22

1.3.

Phân loại các hệ CSDL ..................................................................................24

1.3.1.

Các hệ cơ sở dữ liệu tập trung ...................................................................24

1.3.2.

Các hệ cơ sở dữ liệu phân tán ...................................................................25

1.4.

Kết luận chương 1. .........................................................................................27


CHƯƠNG 2. MƠ HÌNH DỮ LIỆU .....................................................................28
2.1.

Tổng quan về mơ hình dữ liệu ......................................................................28

2.2.

Mơ hình phân cấp ..........................................................................................29

2.3.

Mơ hình mạng ................................................................................................30

2.4.

Mơ hình hướng đối tượng .............................................................................32

2.5.

Mơ hình thực thể kết hợp ..............................................................................33

2.5.1.

Các bước của quá trình thiết kế .................................................................33

2.5.2.

Các khái niệm cơ bản ................................................................................35

2.5.3.


Các bước xây dựng mơ hình ER ...............................................................50

2.6.

Mơ hình quan hệ ............................................................................................54


2.6.1.

Các khái niệm cơ bản ................................................................................54

2.6.2.

CSDL quan hệ và cách tạo lập quan hệ ....................................................59

2.6.3.

Ánh xạ từ mơ hình thực thể liên kết sang mơ hình quan hệ .....................61

2.6.4.

Các phép toán trên CSDL quan hệ ............................................................68

2.7.

So sánh và đánh giá........................................................................................70

2.8.


Kết luận chương 2 ..........................................................................................71

CHƯƠNG 3.NGÔN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DỮ LIỆU ĐỐI VỚI
MƠ HÌNH QUAN HỆ
72
3.1.

Phân loại các ngôn ngữ truy vấn ..................................................................72

3.2.

Ngôn ngữ đại số quan hệ ...............................................................................72

3.2.1.

Các phép toán lý thuyết tập hợp ................................................................72

3.2.2.

Các phép toán đại số quan hệ ....................................................................75

3.2.3.

Các phép toán quan hệ bổ sung .................................................................79

3.3.

Ngôn ngữ truy vấn SQL ................................................................................82

3.3.1.


Giới thiệu chung về SQL ..........................................................................82

3.3.2.

Ngôn ngữ định nghĩa dữ liệu (DDL).........................................................83

3.3.3.

Ngôn ngữ thao tác dữ liệu (DDM) ............................................................90

3.3.4.

Ngôn ngữ truy vấn dữ liệu (DQL) ............................................................94

3.4.

Kết luận chương 3 ........................................................................................116

CHƯƠNG 4. LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ ............117
4.1.

Các vấn đề đối với CSDL ............................................................................117

4.1.1.

Ngữ nghĩa của các thuộc tính quan hệ ....................................................117

4.1.2.


Thông tin dư thừa trong các bộ và sự dị thường cập nhật.......................117

4.1.3.

Các giá trị không xác định trong các bộ..................................................119

4.2.

Phụ thuộc hàm..............................................................................................119

4.2.1.

Định nghĩa phụ thuộc hàm ......................................................................120

4.2.2.

Hệ tiên đề Amstrong ...............................................................................120


4.2.3.

Bao đóng và thuật tốn tìm bao đóng .....................................................121

4.2.4.

Khóa và các thuật tốn tìm khóa .............................................................124

4.2.5.

Các tập phụ thuộc hàm tối thiểu ..............................................................128


4.3.

Phép tách - kết nối........................................................................................130

4.3.1.

Khái niệm ................................................................................................130

4.3.2.

Phép tách-kết nối tự nhiên.......................................................................130

4.3.3.

Phép tách - kết nối không mất mát thơng tin ..........................................132

4.4.

Chuẩn hóa lược đồ quan hệ ........................................................................134

4.4.1.

Dạng chuẩn 1NF và chuẩn hóa về 1NF ..................................................134

4.4.2.

Dạng chuẩn 2NF và chuẩn hóa về 2NF ..................................................135

4.4.3.


Dạng chuẩn 3NF và chuẩn hóa về 3NF ..................................................135

4.4.4.

Dạng chuẩn BCNF và chuẩn hóa về BCNF ............................................137

4.4.5.

Chuẩn hố qua phép tách khơng làm mất thơng tin ................................137

4.5.

Kết luận chương 4: .......................................................................................140


DANH MỤC HÌNH
Hình 1.1: Tiếp cận tệp tin ........................................................................................7
Hình 1.2: Tiếp cận CSDL ........................................................................................8
Hình 1.3: Tính tự mơ tả ...........................................................................................9
Hình 1.4: Sự độc lập giữa chương trình và dữ liệu ...............................................10
Hình 1.5: Hỗ trợ các khung nhìn dữ liệu ...............................................................11
Hình 1.6: Kiến trúc ba mức của hệ CSDL .............................................................12
Hình 1.7: Ví dụ kiến trúc ba mức của hệ CSDL ....................................................13
Hình 1.8: Phần mềm quản trị CSDL ......................................................................14
Hình 1.9: Hệ cơ sở dữ liệu .....................................................................................15
Hình 1.10: Các thành phần chính của hệ quản trị CSDL ......................................22
Hình 1.11: Bộ quản lý lưu trữ ................................................................................23
Hình 1.12: Bộ xử lý câu hỏi ...................................................................................23
Hình 1.13: Hệ cơ sở dữ liệu cá nhân .....................................................................24

Hình 1.14: Hệ cơ sở dữ liệu trung tâm ..................................................................25
Hình 1.15: Hệ CSDL khách-chủ ............................................................................26
Hình 1.16: Cơ sở dữ liệu phân tán .........................................................................26
Hình 2.1: Lịch sử Mơ hình dữ liệu ........................................................................28
Hình 2.2: Mơ hình dữ liệu phân cấp ......................................................................29
Hình 2.3: Ví dụ mơ hình dữ liệu mạng ..................................................................30
Hình 2.4: Quá trình thiết kế và cài đặt cơ sở dữ liệu .............................................35
Hình 2.5: Sơ đồ ER: Thực thể và các thuộc tính ...................................................36
Hình 2.6: Liên kết và các ràng buộc ......................................................................36
Hình 2.7: Lược đồ E-R (ERD) mơ tả tình huống 1 ...............................................37
Hình 2.8: Lược đồ E-R (ERD) mơ tả tình huống 2 ...............................................37
Hình 2.9: Tập thực thể ...........................................................................................38
Hình 2.10: Biểu diễn các loại thuộc tính bằng sơ đồ .............................................39


Hình 2.11: Thuộc tính đơn .....................................................................................40
Hình 2.12: Thuộc tính kết hợp ...............................................................................41
Hình 2.13: Thuộc tính đa trị .................................................................................41
Hình 2.14: Thuộc tính suy diễn .............................................................................42
Hình 2.15: Thuộc tính khóa ...................................................................................42
Hình 2.16: Kiểu liên kết, tập liên kết .....................................................................43
Hình 2.17: Ví dụ kiểu liên kết, tập liên kết ............................................................43
Hình 2.18: Nhiều kiểu liên kết giữa cùng các kiểu thực thể ..................................44
Hình 2.19: Mối quan hệ 1 ngơi ..............................................................................44
Hình 2.20: Mối quan hệ 2 ngơi ..............................................................................45
Hình 2.21: Mối quan hệ 3 ngơi ..............................................................................45
Hình 2.22: Ví dụ liên kết 1-1 .................................................................................46
Hình 2.23: Liên kết 1-1 .......................................... Error! Bookmark not defined.
Hình 2.24: Liên kết 1-n ..........................................................................................47
Hình 2.25: Ví dụ liên kết 1-n .................................................................................47

Hình 2.26: Liên kết n-n ..........................................................................................47
Hình 2.27: Ví dụ liên kết n-n .................................................................................48
Hình 2.28: Thuộc tính của liên kết ........................................................................48
Hình 2.29: Ví dụ các liên kết .................................................................................48
Hình 2.30: Ký hiệu tập thực thể yếu ......................................................................49
Hình 2.31: Ví dụ tập thực thể yếu CHI TIET DH .................................................49
Hình 2.32: Ví dụ tập thực thể yếu CON ................................................................50
Hình 2.33: Ví dụ tập thực thể yếu THAN NHAN .................................................50
Hình 2.34: Kết quả thực thể sau bước 1 ................................................................51
Hình 2.35: Kết quả liên kết sau bước 2 .................................................................51
Hình 2.36: Kết quả thuộc tính của thực thể sau bước 3.........................................52
Hình 2.37: Sơ đồ ER của ví dụ 1 ...........................................................................52


Hình 2.38: Sơ đồ ER của ví dụ 2 ...........................................................................53
Hình 2.39: Lược đồ ER của trường học ................................................................65
Hình 2.40: Lược đồ ER của cơng ty ......................................................................66
Hình 2.41: Mơ hình quan hệ của CSDL cơng ty ...................................................68
Hình 3.1: Các phép tốn nối ngoài, hợp ngoài. .....................................................81


DANH MỤC BẢNG
Bảng 1.1: Ví dụ CSDL đào tạo trong trường đại học .............................................6
Bảng 2.1: Mơ hình hướng đối tượng. ....................................................................33
Bảng 2.2: Lược đồ quan hệ sinh viên ....................................................................56
Bảng 2.2:Thể hiện của quan hệ..............................................................................56
Bảng 2.4: Quan hệ HỌC PHẦN ............................................................................59
Bảng 2.5: Mơ hình quan hệ của CSDL đào tạo .....................................................69
Bảng 2.7: So sánh các mơ hình. .............................................................................71
Bảng 3.1: Ví dụ về quan hệ R và S ........................................................................72

Bảng 3.2: Kết quả phép hợp quan hệ R và S .........................................................73
Bảng 3.3: Kết quả phép giao quan hệ R và S ........................................................74
Bảng 3.4: Kết quả phép trừ quan hệ R và S...........................................................74
Bảng 3.5: Kết quả phép tích đề cát của quan hệ R và S ........................................75
Bảng 3.6: Kết quả phép chiếu ................................................................................76
Bảng 3.7: Kết quả phép chọn ................................................................................77
Bảng 3.8: Kết quả phép kết nối .............................................................................78
Bảng 3.9: Kết quả phép chia ..................................................................................79
Bảng 3.11: Hàm nhóm và phép nhóm.s .................................................................80
Bảng 3.12: Tạo một bảng.......................................................................................84
Bảng 3.13: Tạo bảng Nhà phân phối .....................................................................85
Bảng 3.14: Tạo bảng Sản phẩm. ............................................................................85
Bảng 3.15: Tạo bảng Phân phối sản phẩm. ...........................................................86
Bảng 3.16: Sửa đổi cấu trúc. ..................................................................................89
Bảng 3.17: Bổ sung trực tiếp một giá trị. ..............................................................90
Bảng 3.18: Thêm một hay nhiều bộ giá trị từ bảng CSDL. ...................................91
Bảng 3.19: Cập nhật dữ liệu ..................................................................................93
Bảng 3.20: Ngôn ngữ truy vấn dữ liệu. .................................................................94


Bảng 3.21: Bảng truy vấn dữ liệu. .........................................................................95
Bảng 3.22: Bảng mệnh đề From ............................................................................95
Bảng 3.23: Bảng truy vấn tất cả các cột trong CSDL. ...........................................96
Bảng 3.24: Truy vấn theo tên cột...........................................................................97
Bảng 3.25: Thay đổi tiêu đề các cột. .....................................................................98
Bảng 3.26: Sử dụng cấu trúc CASE trong danh sách truy vấn. .............................98
Bảng 3.27: Bảng truy vấn sử dụng CASE .............................................................99
Bảng 3.28: Bảng Hằng và biểu thức chọn. ..........................................................100
Bảng 3.28: Bảng giá trị Hằng xuất hiện ở một cột của tất cả các dòng. ..............100
Bảng 3.30: Bảng sau khi sử dụng Distinct. .........................................................101

Bảng 3.30: Chỉ định điều kiện truy vấn dữ liệu. ..................................................102
Bảng 3.31: Bảng thơng tin so sánh các tốn tử....................................................103
Bảng 3.32: Bảng kết quả truy vấn. ......................................................................103
Bảng 3.33: Kiểm tra giới hạn dữ liệu. .................................................................104
Bảng 3.35: Toán tử Like và các ký tự đại diện. ...................................................105
Bảng 3.35: Bảng sử dụng toán tử Like. ...............................................................105
Bảng 3.36: Bảng sử dụng toán tử Like và ký tự đại diện. ...................................106
Bảng 3.37: Sắp xếp kết quả truy vấn. ..................................................................107
Bảng 3.38: Bảng sắp xếp kết quả truy vấn. .........................................................108
Bảng 3.39: Phép hợp. ...........................................................................................109
Bảng 3.40: Phép hợp – Câu lệnh 1. .....................................................................109
Bảng 3.41: Phép hợp – Câu lệnh i .......................................................................109
Bảng 3.42: Bảng Table 1, Table2. .......................................................................110
Bảng 3.43: Bảng kết quả phép hợp. .....................................................................110
Bảng 3.44: Bảng kết quả phép hợp với ALL. ......................................................111
Bảng 3.45: Bảng Thông tin khoa phịng. .............................................................112
Bảng 3.46: Bảng thơng tin lớp học. .....................................................................112


Bảng 3.47: Bảng kết quả phép nối. ......................................................................113
Bảng 3.48: Bảng so sánh điều kiện toán tử của phép nối. ...................................115
Bảng 4.1: Bảng cơ sở thông tin nhân viên. ..........................................................118
Bảng 4.2: Thuật tốn xác định bao đóng. ............................................................123
Bảng 4.3: Khóa tối thiểu. .....................................................................................125
Bảng 4.4: Tìm khóa trong lược đồ quan hệ. ........................................................127
Bảng 4.5: Tập phụ thuộc hàm không dư thừa. ....................................................128
Bảng 4.6: Phủ tối thiểu của một tập phụ thuộc hàm. ...........................................129
Bảng 4.7: Phép tách - Kết nối tự nhiên. ...............................................................132
Bảng 4.8: Phép tách không làm mất mát thông tin. .............................................134
Bảng 4.9: Dạng chuẩn 3NF. ................................................................................136

Bảng 4.10: Chuẩn hóa về 3NF. ............................................................................137
Bảng 4.11: Chuẩn hóa qua phép tách khơng làm mất thơng tin. .........................139
Bảng 4.12: Ví dụ chuẩn hóa qua phép tách không làm mất thông tin. ................140


LỜI MỞ ĐẦU
Để đáp ứng nhu cầu học tập của sinh viên chuyên ngành Điện tử viễn thông của
Học viện Cơng nghệ Bưu chính Viễn thơng, bài giảng “Cơ sở dữ liệu” được biên soạn
theo chương trình đổi mới của sinh viên chuyên ngành Điện tử viễn thông, mục tiêu của
bài giảng cung cấp cho sinh viên những kiến thức nền tảng về Cơ sở dữ liệu, kiến thức
về các mức trừu tượng hóa Cơ sở dữ liệu, các mơ hình Cơ sở dữ liệu, các ngơn ngữ biểu
diễn và xử lý dữ liệu, lý thuyết về Cơ sở dữ liệu quan hệ, quy trình thiết kế Cơ sở dữ
liệu. Nội dung bài giảng gồm được chia làm 4 chương:
Chương 1: Đại cương về các hệ cơ sở dữ liệu
Giới thiệu tổng quan về lý thuyết cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở
dữ liệu, kiến trúc của một hệ quản trị CSDL, phân loại các hệ CSDL.
Chương 2: Mơ hình dữ liệu
Trình bày tổng quan về các loại mơ hình dữ liệu, đặc biệt đi sâu phân tích mơ hình
quan hệ thực thể E-R (Entity Relationship) để mơ hình hóa các hoạt động trong thế giới
thực, 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ể
và các mối quan hệ ở giữa các đối tượng này. Nội dung chương 2 cịn trình bày mơ hình
dữ liệu quan hệ, các quy tắc chuyển đổi cơ sở dữ liệu từ E-R sang mơ hình dữ liệu quan
hệ, các phép tốn trên CSDL quan hệ.
Chương 3: Ngơn ngữ định nghĩa và thao tác dữ liệu đối với mơ hình quan hệ
Trình bày các ngơn ngữ truy vấn trên cơ sở dữ liệu. Nội dung chương phân tích chi
tiết ngôn ngữ đại số quan hệ và ngôn ngữ truy vấn SQL.
Chương 4: Lý thuyết thiết kế cơ sở dữ liệu quan hệ
Trình bày các khái niệm liên quan đến phụ thuộc hàm, khóa, các thuật tốn tìm phủ
tối thiểu của tập phụ thuộc hàm, tìm khóa, phép tách và các dạng chuẩn hóa của lược đồ
quan hệ.

Mặc dù đã rất cố gắng trong quá trình biên soạn bài giảng, nhưng chắc chắn bài
giảng sẽ cịn nhiều thiếu sót và hạn chế. Rất mong nhận được sự đóng góp ý kiến quý
báu của sinh viên và các bạn đọc để bài giảng ngày một hoàn thiện hơn.
Hà nội, tháng 12 năm 2022


CHƯƠNG 1. ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DỮ LIỆU
Trong nhiều năm gần đây, thuật ngữ Cơ sở dữ liệu - Database đã trở nên quen
thuộc trong nhiều lĩnh vực. Các ứng dụng tin học vào quản lý ngày càng nhiều và đa
dạng, hầu hết các lĩnh vực kinh tế, xã hội… đều đã ứng dụng các thành tựu mới của tin
học vào phục vụ công tác chuyên môn của mình. Chính vì lẽ đó mà ngày càng nhiều
người quan tâm đến thiết kế, xây dựng và ứng dụng cơ sở dữ liệu (CSDL). Nội dung
chương 1 giới thiệu tổng quan về lý thuyết cơ sở dữ liệu, kiến trúc của một hệ quản trị
CSDL, phân loại các hệ CSDL.

1.1.

Tổng quan về lý thuyết cơ sở dữ liệu

Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các khái
niệm lý thuyết nền tảng của cơ sở dữ liệu truyền thống.
1.1.1. Giới thiệu chung
Ngày nay sự thành công của một tổ chức phụ thuộc vào khả năng thu thập dữ liệu
chính xác và kịp thời về các hoạt động của mình, để quản lý dữ liệu một cách hiệu quả
và sử dụng nó để phân tích, định hướng các hoạt động của mình. Các cụm từ như
“Information superhighway” đã trở nên phổ biến và việc xử lý thông tin là một ngành
công nghiệp trị giá hàng tỷ đô la đang phát triển nhanh chóng.
Lượng thơng tin có sẵn cho chúng ta đang bùng nổ theo đúng nghĩa đen và giá trị
của dữ liệu như một tài sản của tổ chức được cơng nhận rộng rãi. Tuy nhiên, nếu khơng
có khả năng quản lý lượng dữ liệu khổng lồ này và nhanh chóng tìm thấy thơng tin liên

quan đến một truy vấn nhất định, khi lượng thơng tin tăng lên, nó có xu hướng trở thành
một thứ gây mất tập trung và trách nhiệm pháp lý hơn là một tài sản. Nghịch lý này thúc
đẩy nhu cầu về các hệ thống quản lý dữ liệu ngày càng mạnh mẽ và linh hoạt.
Để tận dụng tối đa bộ dữ liệu lớn và phức tạp, người dùng phải có các cơng cụ giúp
đơn giản hóa các tác vụ quản lý dữ liệu và trích xuất thơng tin hữu ích kịp thời. Nếu
khơng, dữ liệu có thể trở thành một khoản nợ phải trả, với chi phí mua và quản lý nó
vượt xa giá trị thu được từ nó.
Từ những ngày đầu tiên – đi kèm với sự phát triển của máy tính, lưu trữ và thao
tác dữ liệu đã là một trọng tâm chính của ứng dụng.


Hệ thống DBMS đa năng đầu tiên được thiết kế bởi Charles Bachman tại General
Electric vào đầu những năm 1960 và được gọi là Kho dữ liệu tích hợp. Nó hình thành
nền tảng cho mơ hình dữ liệu mạng, được tiêu chuẩn hóa bởi Hội nghị về Ngơn ngữ Hệ
thống Dữ liệu (CODASYL) và ảnh hưởng mạnh mẽ đến các hệ thống cơ sở dữ liệu
trong suốt những năm 1960. Bachman là người đầu tiên nhận được giải thưởng ACM’s
Turing (giải thưởng khoa học máy tính tương đương với giải Nobel) trong lĩnh vực cơ
sở dữ liệu vào năm 1973.
Vào cuối những năm 1960, IBM đã phát triển Hệ thống Quản lý Thơng tin (IMS)
DBMS, thậm chí nó vẫn cịn được tối ưu đến ngày nay trong nhiều hệ thống lớn. IMS
đã hình thành cơ sở cho một khung biểu diễn dữ liệu thay thế được gọi là mơ hình dữ
liệu phân cấp. Hệ thống SABER để đặt chỗ của hãng hàng không được American
Airlines và IBM cùng phát triển vào khoảng thời gian đó và nó cho phép nhiều người
truy cập vào cùng một dữ liệu thông qua một mạng máy tính. Điều thú vị là ngày nay
cùng một hệ thống SABER được sử dụng để cung cấp cho các dịch vụ du lịch dựa trên
Web phổ biến như Travelocity.
Năm 1970, Edgar Codd, tại Phịng thí nghiệm nghiên cứu San Jose của IBM, đề
xuất một khung biểu diễn dữ liệu mới được gọi là mơ hình dữ liệu quan hệ. Điều này
đã được chứng minh là một bước ngoặt trong sự phát triển của các hệ thống cơ sở dữ
liệu: nó đã thúc đẩy sự phát triển nhanh chóng của một số DBMS dựa trên mơ hình quan

hệ, cùng với một khối lượng lớn các kết quả lý thuyết đã đặt lĩnh vực này trên một nền
tảng vững chắc. Codd đã giành được giải thưởng Turing năm 1981 cho tác phẩm nổi
tiếng của mình. Các hệ thống cơ sở dữ liệu đã phát triển thành một lĩnh vực học thuật
và sự phổ biến của các DBMS quan hệ đã thay đổi bối cảnh thương mại. Lợi ích của
chúng đã được công nhận rộng rãi và việc sử dụng DBMS để quản lý dữ liệu công ty
đã trở thành chuẩn hóa.
Trong những năm 1980, mơ hình quan hệ đã củng cố vị trí của nó như là mơ hình
DBMS thống trị và các hệ thống cơ sở dữ liệu tiếp tục được sử dụng rộng rãi. Ngôn ngữ
truy vấn SQL cho cơ sở dữ liệu quan hệ, được phát triển như một phần của dự án Hệ
thống R của IBM, hiện là ngôn ngữ truy vấn tiêu chuẩn. SQL được tiêu chuẩn hóa vào
cuối những năm 1980 và tiêu chuẩn hiện tại, SQL-92, đã được Viện Tiêu chuẩn Quốc
gia Hoa Kỳ (ANSI) và Tổ chức Tiêu chuẩn Quốc tế (ISO) thơng qua. Có thể nhận định
rằng, hình thức lập trình đồng thời được sử dụng rộng rãi nhất là thực hiện đồng thời
các chương trình cơ sở dữ liệu (được gọi là giao dịch).

2


Người dùng viết các chương trình như thể chúng được chạy bởi chính họ và DBMS
sẽ có trách nhiệm vận hành chúng hoạt động đồng thời. James Gray đã giành được giải
thưởng Turing năm 1999 cho những đóng góp của mình trong lĩnh vực quản lý giao
dịch trong DBMS.
Vào cuối những năm 1980 và những năm 1990, lĩnh vực cơ sở dữ liệu đã đạt được
nhiều thành tựu tiến bộ mới. Nghiên cứu quan trọng đã được thực hiện nhằm mục đích
phát triển các ngơn ngữ truy vấn mạnh mẽ hơn và các mơ hình dữ liệu phong phú hơn,
đồng thời nhấn mạnh vào việc hỗ trợ phân tích dữ liệu phức tạp từ tất cả các bộ phận
của doanh nghiệp. Một số nhà cung cấp (ví dụ: DB2 của IBM, Oracle 8, Informix UDS)
đã mở rộng hệ thống của họ với khả năng lưu trữ các kiểu dữ liệu mới như hình ảnh và
văn bản, cũng như khả năng yêu cầu các truy vấn phức tạp hơn. Các hệ thống chuyên
biệt đã được phát triển bởi nhiều nhà cung cấp để tạo kho dữ liệu, hợp nhất dữ liệu từ

một số cơ sở dữ liệu và để thực hiện phân tích cụ thể hóa.
Một hiện tượng thú vị là sự xuất hiện của một số gói lập kế hoạch tài nguyên doanh
nghiệp (ERP) và lập kế hoạch tài nguyên quản lý (MRP), bổ sung đáng kể các tính năng
hướng ứng dụng lên trên DBMS. Các gói được sử dụng rộng rãi bao gồm các hệ thống
của Baan, Oracle, PeopleSoft, SAP và Siebel. Các gói này xác định một tập hợp các
nhiệm vụ phổ biến (ví dụ: quản lý hàng tồn kho, lập kế hoạch nguồn nhân lực, phân tích
tài chính) mà một số lượng lớn các tổ chức gặp phải và cung cấp một lớp ứng dụng
chung để thực hiện các nhiệm vụ này. Dữ liệu được lưu trữ trong DBMS quan hệ và lớp
ứng dụng có thể được tùy chỉnh cho các công ty khác nhau, dẫn đến chi phí tổng thể
thấp hơn cho các cơng ty so với chi phí xây dựng ban đầu.
Đáng chú ý, DBMSs đã bước vào kỷ nguyên Internet. Trong khi thế hệ đầu tiên
của các trang Web lưu trữ riêng dữ liệu của chúng trong các tệp hệ điều hành, việc sử
dụng DBMS để lưu trữ dữ liệu được truy cập thông qua trình duyệt Web đang trở nên
phổ biến. Các truy vấn được tạo thơng qua các biểu mẫu có thể truy cập được trên Web
và các câu trả lời được định dạng bằng ngôn ngữ đánh dấu như HTML, để có thể dễ
dàng hiển thị trong trình duyệt. Tất cả các nhà cung cấp cơ sở dữ liệu đang thêm các
tính năng vào DBMS của họ nhằm mục đích làm cho nó phù hợp hơn để triển khai qua
Internet.
Quản lý cơ sở dữ liệu ngày càng trở nên quan trọng khi có nhiều dữ liệu được đưa
vào mạng và dễ tiếp cận hơn thơng qua mạng máy tính. Ngày nay, lĩnh vực này đang
được thúc đẩy và phát triển theo các hướng mới như cơ sở dữ liệu đa phương tiện, video
3


tương tác, thư viện kỹ thuật số, một loạt các dự án khoa học như nỗ lực lập bản đồ bộ
gen người và dự án hệ thống quan sát trái đất của NASA, và mong muốn của các công
ty hợp nhất việc ra quyết định của họ xử lý và khai thác kho dữ liệu của họ để có thơng
tin hữu ích về doanh nghiệp. Về mặt thương mại, hệ thống quản lý cơ sở dữ liệu đại
diện cho một trong những phân khúc thị trường lớn nhất và mạnh mẽ nhất. Vì vậy, việc
nghiên cứu các hệ thống cơ sở dữ liệu có thể được chứng minh là vơ cùng bổ ích theo

nhiều cách khác nhau.
1.1.2. Cơ sở dữ liệu và hệ cơ sở dữ liệu
Mục đích của chương 1 chỉ đơn giản là cung cấp các khái niệm cơ bản về CSDL
để sinh viên có một cái nhìn ban đầu về một cơ sở dữ liệu và một hệ quản trị CSDL.
Tuy nhiên để có thể đưa ra được định nghĩa về cơ sở dữ liệu, trước hết trong phần này
khái niệm về dữ liệu sẽ được chúng ta đề cập đầu tiên.
Dữ liệu là những số liệu rời rạc mô tả về sự kiện, sự vật, hiện tượng được chọn lọc
để lưu trữ với một mục đích nào đó. Hay nói cách khác, theo Elmasri Navathe dữ liệu
là những gì chúng ta biết có thể ghi lại được và có ý nghĩa. Một số ví dụ về dữ liệu có
thể kể đến như: Dữ liệu về nhân viên, q trình cơng tác và chun mơn trong một công
ty, dữ liệu về thời tiết, dữ liệu về công dân của một quốc gia,…
1.1.2.1. Định nghĩa cơ sở dữ liệu
Định nghĩa: Một cơ sở dữ liệu (tên tiếng Anh là Database), viết tắt là CSDL, là
một tập hợp dữ liệu có liên quan với nhau, được lưu trữ trên máy tính, có nhiều người
sử dụng và được tổ chức theo một mơ hình. Một cơ sở dữ liệu có những tính chất đặc
trưng như sau:
- Biểu diễn một vài khía cạnh nào đó của thế giới thực.
- Có liên hệ logic thống nhất
- Được thiết kế và bao gồm những dữ liệu phục vụ một mục đích nào đó.
- Là một tập các dữ liệu tác nghiệp được lưu trữ lại và được các hệ ứng dụng của
một doanh nghiệp cụ thể nào đó sử dụng.
- Tập ngẫu nhiên của các dữ liệu khơng thể xem là một CSDL
Ví dụ: Cơ sở dữ liệu trường đại học có thể chứa thông tin:
4


- Thực thể (Entity) – Bao gồm các thực thể như Sinh Viên, Giảng Viên, Môn Học,
Lớp Học, hay Học Phần.
- Liên kết (Relationships) - Các mối quan hệ giữa các thực thể, chẳng hạn như việc
ghi danh của sinh viên vào các lớp học, các giảng viên chủ nhiệm một số lớp học, hay

các học phần được giảng dạy bởi các giảng viên cụ thể.

5


Bảng 1.1: Ví dụ CSDL đào tạo trong trường đại học

Ví dụ trên mơ tả một phần nhỏ minh họa CSDL đào tạo của trường đại học bao
gồm các thực thể MÔN HỌC, GIẢNG VIÊN, HỌC PHẦN, LỚP HỌC,
SINH VIÊN.
1.1.2.2. Tiếp cận CSDL so với tập tin
Để hiểu nhu cầu về CSDL, chúng ta hãy xem xét một kịch bản: Một cơng ty có
một bộ sưu tập lớn (ví dụ: 500GB) dữ liệu về nhân viên, phòng ban, sản phẩm, doanh
số bán hàng, v.v. Dữ liệu này được truy cập đồng thời bởi một số nhân viên. Các câu
hỏi về dữ liệu phải được trả lời nhanh chóng, các thay đổi đối với dữ liệu của những
người dùng khác nhau phải được áp dụng nhất quán và quyền truy cập vào các phần
nhất định của dữ liệu (ví dụ: tiền lương) phải bị hạn chế. Có thể cố gắng giải quyết vấn
đề quản lý dữ liệu này bằng cách lưu trữ dữ liệu trong một bộ sưu tập các tệp hệ điều
hành. Cách tiếp cận này có nhiều nhược điểm:
- Có thể khơng có bộ nhớ chính 500GB để chứa tất cả dữ liệu. Do đó, chúng ta phải
lưu trữ dữ liệu trong một thiết bị lưu trữ ngoài như ổ đĩa hoặc băng từ và đưa các bộ
phận liên quan vào bộ nhớ chính để xử lý khi cần thiết.
6


- Ngay cả khi chúng ta có 500 GB bộ nhớ chính, trên các hệ thống máy tính có địa
chỉ 32 bit, chúng ta không thể tham chiếu trực tiếp đến 4GB dữ liệu. Chúng ta phải lập
trình một số phương pháp xác định tất cả các chỉ mục dữ liệu.
- Chúng ta phải viết các chương trình đặc biệt để giải quyết các vấn đề mà người
dùng có thể gặp phải về dữ liệu. Các chương trình này có thể phức tạp vì khối lượng

lớn dữ liệu cần tìm kiếm.
- Chúng ta phải bảo vệ dữ liệu khỏi những thay đổi không đồng nhất do những
người dùng khác nhau thực hiện đồng thời kiểm tra dữ liệu. Nếu các chương trình truy
cập dữ liệu được viết với tính năng truy cập đồng thời như vậy, điều này làm tăng thêm
độ phức tạp của chúng.
- Chúng ta phải đảm bảo rằng dữ liệu được khôi phục về trạng thái ban đầu nếu hệ
thống gặp sự cố trong khi thực hiện các thay đổi.

Hình 1.1: Tiếp cận tệp tin

- Hệ điều hành chỉ cung cấp một cơ chế mật khẩu để bảo mật. Điều này không đủ
linh hoạt để thực thi các chính sách bảo mật trong đó những người dùng khác nhau có
nhiệm vụ truy cập các tập con dữ liệu khác nhau.
Tóm lại việc quản lý theo giải pháp hệ thống tệp tin như hình 1.1 có rất nhiều
nhược điểm. Thứ nhất, đó là sự dư thừa thơng tin: cùng một thơng tin được lưu trữ
nhiều. Điều đó gây ra việc lãng phí bộ nhớ và dễ gây sai sót trong khi cập nhật dữ liệu,
dễ sinh ra các dữ liệu khơng đúng đắn. Thứ hai, đó là việc phụ thuộc giữa chương trình
ứng dụng và dữ liệu. Mỗi khi có sự thay đổi cấu trúc tệp và các dữ liệu trong tệp, chương
trình ứng dụng khai thác thơng tin trên tệp đó cũng thay đổi theo. Điều đó gây ra khó
khăn lớn cho việc bảo trì.
7


Hình 1.2: Tiếp cận CSDL

Hệ quản trị CSDL là một phần mềm được thiết kế để làm cho các tác vụ trước đó
dễ dàng hơn. Bằng cách lưu trữ dữ liệu trong CSDL, thay vì dưới dạng một tập hợp các
tệp hệ điều hành, chúng ta có thể sử dụng các tính năng của Hệ quản trị CSDL để quản
lý dữ liệu một cách chặt chẽ và hiệu quả. Việc tiếp cận CSDL được mơ tả như ở hình
1.2 có một số các ưu điểm.

Ưu điểm của cơ sở dữ liệu:
- Giảm sự trùng lặp thông tin xuống mức thấp nhất, do đó bảo đảm được tính nhất
qn và tồn vẹn dữ liệu
- Dữ liệu có thể được truy xuất theo nhiều cách khác nhau
- Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau
Để đạt được những ưu điểm CSDL đặt ra những vấn đề cần giải quyết, đó là:
Tính chủ quyền của dữ liệu: Do sự chia sẻ của CSDL nên tính chủ quyền của dữ
liệu có thể bị lu mờ và làm mờ nhạt tinh thần trách nhiệm, được thể hiện trên vấn đề an
toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác
của dữ liệu. Nghĩa là người khai thác CSDL phải có nghĩa vụ cập nhật các thơng tin
mới nhất của CSDL.
Tính bảo mật và quyền khai thác thơng tin của người sử dụng: Do có nhiều người
cùng khai thác CSDL một cách đồng nên cần phải có một cơ chế bảo mật và phân quyền
khai thác CSDL.

8


Tranh chấp dữ liệu: Nhiều người được phép truy cập vào cùng một tài nguyên dữ
liệu nguồn (data source) của CSDL với những mục đích khác nhau như hiển thị, thêm,
xóa, sửa dữ liệu. Như vậy cần phải có cơ chế ưu tiên truy nhập dữ liệu cũng như cơ chế
giải quyết tình trạng khóa chết trong q trình khai thác cạnh tranh.Cơ chế ưu tiên có
thể được thực hiện dựa trên: Cấp quyền ưu tiên cho người khai thác CSDL, người nào
có quyền ưu tiên cao hơn thì được ưu tiên cấp quyền truy nhập dữ liệu trước.Thời điểm
truy nhập, ai có u cầu truy xuất trước thì có quyền truy nhập dữ liệu trước. Hoặc dựa
trên cơ chế lập lịch truy xuất hay cơ chế khoá.
Đảm bảo dữ liệu khi có sự cố: Việc quản lý tập trung có thể làm tăng khả năng
mất mát hoặc sai lệch thơng tin khi có sự cố như mất điện đột xuất, một phần hay toàn
bộ đĩa lưu trữ dữ liệu bị lỗi… Một số hệ điều hành mạng có cung cấp dịch vụ sao lưu
đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra và khắc phục

lỗi khi có sự cố. Tuy nhiên bên cạnh dịch vụ của hệ điều hành, một CSDL nhất thiết
phải có một cơ chế khơi phục dữ liệu khi các sự cố bất ngờ xảy ra để đảm bảo CSDL
ln ổn định.
1.1.2.3. Một số đặc tính của CSDL

Hình 1.3: Tính tự mơ tả

Bản chất tự mơ tả của hệ cơ sở dữ liệu: Một đặc trưng cơ bản của giải pháp cơ sở
dữ liệu là hệ thống cơ sở dữ liệu khơng chỉ gồm có bản thân cơ sở dữ liệu mà cịn có cả
định nghĩa hoặc mơ tả đầy đủ về cấu trúc cơ sở dữ liệu và các ràng buộc. Định nghĩa
này được lưu trữ trong từ điển hệ thống, nó chứa các thơng tin như là cấu trúc của mỗi
tệp, kiểu và dạng lưu trữ của từng mục dữ liệu. Các thông tin được lưu giữ trong từ điển
gọi là siêu dữ liệu (metadata) và chúng mô tả cấu trúc của dữ liệu nguyên thuỷ.

9


Hình 1.3 minh họa bản chất tự mơ tả của CSDL. Phần mềm hệ quản trị cơ sở dữ
liệu và những người sử dụng cơ sở dữ liệu sử dụng từ điển để lấy thông tin về cấu trúc
của cơ sở dữ liệu.
Sự độc lập giữa chương trình và dữ liệu: Trong hệ thống tệp, cấu trúc của các tệp
cơ sở dữ liệu được nhúng vào trong các chương trình truy cập, vì vậy bất kỳ một thay
đổi nào về cấu trúc của một tệp cũng đòi hỏi phải thay đổi tất cả các chương trình truy
cập đến tệp đó. Ngược lại, các chương trình truy cập của hệ quản trị cơ sở dữ liệu khơng
địi hỏi việc thay đổi như thế. Cấu trúc của các tệp dữ liệu được lưu trữ trong từ điển
tách rời với các chương trình truy cập. Tính chất này gọi là sự độc lập dữ liệu – chương
trình nó được thể hiện qua hình 1.4.

Hình 1.4: Sự độc lập giữa chương trình
và dữ liệu


Hỗ trợ các khung nhìn dữ liệu nhiều thành phần: Một cơ sở dữ liệu có nhiều người
sử dụng, mỗi một người có thể địi hỏi một khung nhìn (view) khác nhau. Một khung
nhìn có thể là một tập con của cơ sở dữ liệu hoặc nó có thể chứa các dữ liệu ảo, đó là
các dữ liệu được trích ra từ các tệp cơ sở dữ liệu khác nhau nhưng không được lưu trữ
một cách rõ ràng. Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cung cấp
nhiều cơng cụ để định nghĩa các khung nhìn nhiều thành phần. Ví dụ như hình 1.6 minh
họa tính năng hỗ trợ các khung nhìn dữ liệu nhiều thành phần: cơ sở dữ liệu sinh viên
có nhiều người sử dụng, có người thì khai thác SINH VIÊN CHÍNH QUY, có người
dùng thì khai thác SINH VIÊN CAO HỌC.
Chia sẻ dữ liệu và nhiều người sử dụng: Một hệ quản trị cơ sở dữ liệu nhiều người
sử dụng phải cho phép nhiều người sử dụng truy cập đồng thời đến cơ sở dữ liệu.
Hệ quản trị cơ sở dữ liệu phải có phần mềm kiểm tra cạnh tranh để đảm bảo rằng
các người sử dụng cập nhật đến cùng một cơ sở dữ liệu phải được thực hiện theo cách
được kiểm tra để cho kết quả của các cập nhật là đúng đắn.
10


1.1.2.4. Mơ hình trừu tượng 3 lớp
Mơ tả của một CSDL bao gồm một lược đồ ở 3 mức độ trừu tượng: mức vật lý
(hay còn gọi là mức trong - physical schema), mức quan niệm (hay còn gọi là mức
logic - conceptual schema), mức ngồi (mức khung nhìn – external schema schema).
Hình 1.6 mơ tả chi tiết 3 mức độ trừu tượng.

Hình 1.5: Hỗ trợ các khung nhìn dữ liệu

Mức ngồi ( Mức khung nhìn): Đó là mức của người sử dụng và các chương
trình ứng dụng. Làm việc tại mức này có các nhà chun mơn, các kỹ sư tin học và
những người sử dụng không chuyên. Mỗi người sử dụng hay mỗi chương trình ứng
dụng có thể được "nhìn" CSDL theo một góc độ khác nhau. Có thể "nhìn" thấy tồn bộ

hay chỉ một phần hoặc chỉ là các thơng tin tổng hợp từ CSDL hiện có. Người sử dụng
hay chương trình ứng dụng có thể hồn tồn khơng được biết về cấu trúc tổ chức lưu
trữ thơng tin trong CSDL, thậm chí ngay cả tên gọi của các loại dữ liệu hay tên gọi của
các thuộc tính. Họ chỉ có thể làm việc trên một phần CSDL theo cách "nhìn" do người

11


quản trị hay chương trình ứng dụng quy định, gọi là khung nhìn (View). Ví dụ 1.7 hỗ
trợ 2 khung nhìn “View 1” và “View 2”. “View1”quản lý lương của nhân viên chỉ nhìn

Hình 1.6: Kiến trúc ba mức của hệ CSDL

thấy các dữ liệu như: sNo, fName, IName, age, salary. “View 2” quản lý nhân viên làm
ở chi nhánh nào, nên chỉ nhìn thấy các dữ liệu như: staffNo, IName, branchNo.
Mức quan niệm ( Mức logic): Tại mức này sẽ giải quyết cho câu hỏi CSDL cần
phải lưu giữ bao nhiêu loại dữ liệu? đó là những dữ liệu gì? Mối quan hệ giữa các loại
dữ liệu này như thế nào? Từ thế giới thực (Real Universe) các chuyên viên tin học qua
q trình khảo sát và phân tích, cùng với những người sẽ đảm nhận vai trò quản trị
CSDL, sẽ xác định được những loại thơng tin gì được cho là cần thiết phải đưa vào
CSDL, đồng thời mô tả rõ mối liên hệ giữa các thông tin này. Có thể nói cách khác,
CSDL mức quan niệm là một sự biểu diễn trừu tượng CSDL mức vật lý; hoặc ngược
lại, CSDL vật lý là sự cài đặt cụ thể của CSDL mức quan niệm. Ví dụ mơ hình quan hệ
thực thể mô tả dữ liệu ở mức quan niệm. Trong ví dụ 1.7 ở mức quan niệm tất cả các
loại dữ liệu và quan hệ đều được lưu giữ: staffNo, fName, IName, DOB, salary,
branchNo.

12



Mức trong ( Mức vật lý): Đây là mức lưu trữ CSDL. Tại mức này, vấn đề cần
giải quyết là, dữ liệu gì và được lưu trữ như thế nào? ở đâu (đĩa từ, băng từ, track,
sector ... nào)? Cần các chỉ mục gì? Việc truy xuất là tuần tự (Sequential Access) hay
ngẫu nhiên (Random Access) đối với từng loại dữ liệu. Những người hiểu và làm việc
với CSDL tại mức này là người quản trị CSDL , những người sử dụng chun mơn.

Hình 1.7: Ví dụ kiến trúc ba mức của hệ CSDL

1.1.3. Hệ quản trị cơ sở dữ liệu và ưu nhược điểm
1.1.3.1. Định nghĩa hệ quản trị CSDL
Để giải quyết tốt những vấn đề đặt ra cho một cơ sở dữ liệu thì cần có một hệ thống
các phần mềm, cơng cụ chun dụng hỗ trợ tích cực cho các nhà phân tích, thiết kế và
khai thác CSDL. Hệ thống này được gọi là hệ quản trị CSDL (Database Management
System - DBMS). Hệ quản trị cơ sở dữ liệu làm đơn giản hóa các thao tác trong quá
trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau, bao
gồm:
- Định nghĩa - một cơ sở dữ liệu bao gồm việc đặc tả bộ khung dữ liệu cùng với
các mô tả chi tiết về dữ liệu và khai báo các ràng buộc cho các dữ liệu sẽ được lưu trữ
trong cơ sở.
- Xây dựng - một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các phương tiện
lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.

13


- Thao tác - một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ liệu
để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế
giới nhỏ và tạo ra các báo cáo từ các dữ liệu.
- Chia sẻ - cho phép nhiều người dùng và ứng dụng truy cập đồng thời CSDL
- Bảo vệ - đảm bảo dữ liệu được lưu trữ an tồn từ các sự cố, ngăn cản truy cập

khơng được phép
Hiện nay có nhiều hệ quản trị CSDL trên thị trường như: Visual Foxpro, SQL
server, DB2, Microsoft Access, Oracle… Hệ quản trị cơ sở dữ liệu quan hệ (Relational
Database Management System - RDBMS) là một hệ quản trị cơ sở dữ liệu theo mơ hình
quan hệ.

Hình 1.8: Phần mềm quản trị CSDL

Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hố có thể
là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một tập các
phần mềm được tạo ra với một mục đích riêng). Hệ thống bao gồm cơ sở dữ liệu và hệ
quản trị cơ sở dữ liệu được gọi bằng một thuật ngữ chung là hệ cơ sở dữ liệu. Một hệ
cơ sở bao gồm 5 thành phần chính (Phần cứng, CSDL, Hệ quản trị CSDL, Phần mềm
ứng dụng, Người dùng), và được mơ tả theo lớp như hình vẽ dưới đây:
Ví dụ cơ sở dữ liệu về quản lý đào tạo, cơ sở dữ liệu này lưu giữ các thông tin liên
quan đến khóa học, lớp học, sinh viên, giáo viên, môn học,… trong một môi trường đại
học hay một hệ cơ sở dữ liệu đào tạo đại học. Ngoài các dữ liệu cơ bản trên, chúng ta
cần quan tâm đến thông tin về sinh viên (như thông tin cá nhân, thông tin học tập,…),
thông tin về môn học (khối lượng, giáo viên, lịch học,…).

14


×