Tài liệu nhập môn cơ sở dữ liệu - Tin học chuyên ngành | Đại học Lâm Nghiệp

Tài liệu nhập môn cơ sở dữ liệu - Tin học chuyên ngành | Đại học Lâm Nghiệp được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

TRƯỜNG ĐẠI HỌC LÂM NGHIỆP
BỘ MÔN TIN HỌC
========= *** =========
BÀI GIẢNG
NHẬP MÔN CƠ SỞ DỮ LIỆU
Biên soạn: TRẦN HỒNG DIỆP
Mobile: 0904151388
Email: diepth18@yahoo.com
diepth18@gmail.com
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 1
CHƯƠNG 1: ĐẠI CƯƠNG.
1.1. Một số vấn đề tồn tại trong các hệ thống tệp truyền thống.
Các hệ thống thông tin truyền thống thường đáp ứng các yêu cầu của người sử
dụng bằng cách viết một chương trình mới. Mỗi chương trình này thường chỉ được thiết
kế để đáp ứng cho một vài yêu cầu cụ thể của một nhóm người cụ thể không kế
hoạch tổng thể hướng tới sự tăng trưởng ứng dụng mới trong tương lai.
Đối với mỗi chương trình mới này được thiết kế một cách điển hình kèm theo một
hệ thống các tệp dữ liệu riêng của nó. Như vậy có thể xảy ra việc các hệ thống tệp dữ liệu
của các chương trình khác nhau của cùng một xí nghiệp cùng lưu trữ nhiều thông tin trùng
lặp với nhiều cấu trúc khác nhau.
Với các hệ thống dữ liệu như vậy có thể có các nguy cơ:
+ Dư thừa và không nhất quán dữ liệu.
+ Khó khăn trong truy nhập dữ liệu: khi một yêu cầu truy xuất không nằm
trong thiết kế của ứng dụng.
+ Cô lập và hạn chế chia sẻ dữ liệu: mỗi chương trình mới thiết kế dòi hỏi một cấu
trúc của các tệp dữ liệu khác nhau, rất khó thể thiết kế để sử dụng chung dliệu với
các chương trình đã có trước đó.
+ Khi các thay đổi về các ràng buộc toàn vẹn thì chương trình không đáp ứng
được và khi đó đòi hỏi chương trình phải được viết lại, tệp dữ liệu phải được thiết kế lại.
+ Khó khăn trong đảm bảo an toàn dữ liệu khi các lỗi hệ thống, khi truy nhập
đồng thời, khi các cấp độ khác nhau trong việc cho phép những người sử dụng khác
nhau truy cập dữ liệu.
1.2. Hệ cơ sở dữ liệu.
Nhằm khắc phục những nhược điểm đã kể đến ở trên, người ta mong muốn tạo lập
được một bộ dữ liệu lớn được quản thống nhất, độc lập với các chương trình ứng dụng
và dùng chung cho nhiều chương trình ứng dụng kể cả những ứng dụng sẽ được phát triển
trong tương lai. Đó chính là những ý tưởng thiết kế ban đầu của một hệ thống gọi là Hệ cơ
sở dữ liệu, chúng ta sẽ lần lượt xét đến các vấn đề cơ bản của nó trong các mục sau.
1.2.1. Cơ sở dữ liệu là gì?
Mỗi một tổ chức (cơ quan, xí nghiệp, trường học…) trong hội đều các công
việc khác nhau liên quan đến việc sử dụng các dữ liệu cùng được lấy từ một nguồn chung.
Do đó cách tốt nhất tổ chức lưu trữ một hệ thống thống nhất toàn bộ các dữ liệu của cả
xí nghiệp đó lại để quản lý tập trung. Và khi đó tất cả các chương trình ứng dụng trong cơ
quan và cả những người sử dụng trực tuyến có thdùng chung và chia sẻ cùng một cơ sở
dữ liệu.
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 2
Cơ sở dữ liệu (Database) một bộ sưu tập các dữ liệu tác nghiệp được lưu trữ lại
theo một qui cách nào đó sau đó được các hệ ứng dụng của một xí nghiệp cụ thể sử
dụng.
Dữ liệu tác nghiệp đây là để chỉ các dữ liệu gốc, dữ liệu đầu vào phản ánh nội
tại nghiệp đó dụ như các dữ liệu về nguyên liệu, sản phẩm, khách hàng… của
nghiệp. Các dữ liệu đi từ bên ngoài vào có thể gây ra những ảnh hưởng đến dữ liệu tác
nghiệp của nghiệp dụ như các thông báo, qui định thì không phải dữ liệu tác
nghiệp. Các báo cáo được rút ra từ dữ liệu tác nghiệp cũng không bao hàm trong dữ liệu
tác nghiệp.
1.2.2. Hệ quản trị cơ sở dữ liệu.
Để tạo lập một sở dữ liệu, sau đó quản lý khai thác cũng cần một phần
mềm máy tính thực hiện các công việc này.
Hệ quản trị sở dữ liệu (Database Management System - DBMS) một hệ
thống phần mềm y tính cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối
với cơ sở dữ liệu đó.
Ở Việt Nam hiện nay có khá nhiều các phần mềm hệ quản trị cơ sở dữ liệu, một số
hệ quản trị sở dữ liệu thương mại thông dụng như : MS-Access, DB2, SQL Server,
Oracle…
1.2.3. Hệ cơ sở dữ liệu.
Hệ sở dữ liệu (Database System) một hệ thống thống nhất gồm 4 thành
phần :
+ Cơ sở dữ liệu: sở dữ liệu hợp nhất của toàn hệ thống phải đảm bảo hai
tính chất : tối thiểu hóa dư thừa và cho phép chia sẻ.
+ Hệ quản trị cơ sở dữ liệu tương ứng.
+ Phần cứng: các thiết bị nhớ thứ cấp được sử dụng để lưu trữ dữ liệu.
+ Người sử dụng: là những người truy nhập dữ liệu, bao gồm: người quản trị cơ sở
dữ liệu, người lập trình ứng dụng, người phân tích dữ liệu và người sử dụng cuối.
1.3. Các khả năng của hệ quản trị cơ sở dữ liệu.
Các ứng dụng đặc trưng của một hệ quản trị sở dữ liệu khi khối lượng dữ
liệu cần lưu trữ và xử lý là rất lớn và trong thời gian dài.
Hai khả năng quan trọng nhất phân biệt một hệ quản trị cơ sở dữ liệu với hệ thống
lập trình khác là:
+ . Một sở dữ liệu ra đời nhằm mục Khả năng quản dữ liệu tồn tại lâu dài
đích lưu trữ những dữ liệu dùng chung cho nhiều ứng dụng, cả những ng dụng hiện tại
và những ứng dụng sẽ phát triển trong tương lai. Do vậy cơ sở dữ liệu ấy phải được tồn tại
lâu dài phải được thay đổi cho phù hợp với từng thời điểm không làm loại trừ
những ứng dụng cũ. Và như vậy hệ quản trị cơ sở dữ liệu định nghĩa và khai thác cơ sở dữ
liệu cũng phải cung cấp khả năng tương ứng để quản lý cơ sở dữ liệu.
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 3
+ Khả năng truy nhập các khối lượng dữ liệu lớn hiệu quả. sở dữ liệu
một bộ dữ liệu hợp nhất của cả một cơ quan, do đó khối lượng dữ liệu lưu trữ trong đó
khổng lồ. Thông thường các phép xử trên các dữ liệu này độ phức tạp tính toán
không lớn, thậm chí đơn giản nhưng lại công việc lại khó khăn chỗ thao tác trên
khối lượng dữ liệu lớn. Như vậy để thao tác trên cơ sở dữ liệu một cách có hiệu quả thì hệ
quản trị sở dữ liệu cần cung cấp các công cụ cho phép truy nhập nhanh chóng đến các
bộ phận dữ liệu tùy ý.
Cụ thể hiện nay các sản phẩm phần mềm quản trị sở dữ liệu đã đưa ra thị
trường và được sử dụng rộng rãi thì hầu hết đều cung cấp các tính năng sau:
+ Hỗ trợ ít nhất một hình dữ liệu hay một sự trừu tượng toán học để qua đó
người sử dụng có thể quan sát dữ liệu.
+ Đảm bảo tính độc lập dữ liệu hay sự bất biến của chương trình ứng dụng đối với
các cấu trúc trong mô hình dữ liệu.
+ Hỗ trợ ngôn ngữ cấp cao cho phép người sử dụng định nghĩa dữ liệu, truy nhập
và thao tác dữ liệu.
+ Quản trị giao dịch: cung cấp các truy nhập đồng thời, đúng đắn đối với cơ sở dữ
liệu từ nhiều người sử dụng tại cùng một thời điểm.
+ Điều khiển truy nhập: hạn chế sự truy nhập đến các dữ liệu bởi những người sử
dụng không được cấp phép.
+ Kiểm tra tính đúng đắn của dữ liệu.
+ Phục hồi dữ liệu khi gặp các lỗi hệ thống.
1.4. Một số vấn đề lý thuyết cơ sở.
1.4.1. Sự trừu tượng hóa dữ liệu.
Để hệ thống có thể tra cứu hay tìm kiếm dữ liệu một cách có hiệu quả, thường dẫn
đến việc cấu trúc dữ liệu được thiết kế phức tạp. Tuy nhiên những người sử dụng hệ thống
lại có trình độ tin học khác nhau, và người phát triển hệ thống cần phải che giấu tính phức
tạp đối với người sử dụng thông qua một số mức trừu tượng nhằm đơn giản hóa các tương
tác của người sử dụng đối với hệ thống. Ở đây chúng ta phân biệt ba mức trừu tượng:
+ Mức vật lý: Đây là mức trừu tượng thấp nhất. Ở mức này dữ liệu cấu trúc dữ
liệu phức tạp được lưu trữ trên các thiết bị lưu trữ được mô tả một cách chính xác, chi tiết.
+ Mức logic: Thực chất đây mới là mức có sự trừu tượng về cấu trúc dữ liệu. Mức
này mô tả dữ liệu được lưu trữ trong cơ sở dữ liệu và các mối quan hệ tồn tại giữa chúng.
Toàn bộ sở dữ liệu được tả trong thuật ngữ của một số nhỏ các cấu trúc khá đơn
giản, mặc dù thực tế cấu trúc vật lý của nó rất phức tạp.
+ Mức khung nhìn: Đây là mức trừu tượng cao nhất. Ở đây cơ sở dữ liệu được mô
tả trực quan, gần với hình ảnh thực tế nhất bằng cấu trúc đơn giản hơn nhiều so với mức
logic. Việc thiết kế đơn giản hóa như vậy dành cho người sử dụng cuối, những người
trình độ tin học thấp. Thông thường họ được phân thành nhiều nhóm người những
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 4
quyền hạn khác nhau đối với cơ sở dữ liệu. Do đó ở mức này thường có nhiều khung nhìn
khác nhau nhằm cho phép những người sử dụng khác nhau chỉ cần và chỉ được phép truy
nhập đến một phần khác nhau nào đó trong cơ sở dữ liệu.
Ví dụ Khách hàng: Để lưu trữ dữ liệu về của một công ty bao gồm các thông tin về
tên, địa chỉ, số điện thoại. Tại mức vật lý mỗi khách hàng sẽ được tả là một khối nhớ
với những chi tiết phức tạp. Các chi tiết phức tạp này bị che giấu ở mức logic và được
mô tả bởi một bản ghi được định nghĩa :
Type khachhang = record
Tenkh : string ;
Diachi : string ;
Dt : integer ;
End ;
Và cuối cùng ở mức khung nhìn người sử dụng chỉ còn nhìn thấy các chương trình
ứng dụng không biết đến các chi tiết về kiểu dữ liệu. thực tế ngoài việc che giấu
các chi tiết của mức logic, các khung nhìn còn cung cấp chế ngăn chặn truy nhập dữ
liệu không được phép.
1.4.2. Các thể hiện và các sơ đồ.
Một thiết kế tổng thể về khuôn mẫu của toàn bộ cơ sở dữ liệu thì được gọi là sơ đồ
cơ sở dữ liệu (Database Schema). đồ của sở dữ liệu ít khi thậm chí hầu như không
thay đổi hoặc là thay đổi rất chậm theo thời gian.
Theo khuôn mẫu đã thiết kế, một tập hợp các thông tin được lưu trữ trong sở
dữ liệu tại một thời điểm được gọi một (Database Instance) của sở dữ liệu thể hiện
đó. Theo thời gian các thể hiện y thường xuyên các thay đổi khi các thông tin được
thêm, bớt, sửa chữa và khi đó chúng ta lại có một thể hiện mới.
1.4.3. Tính độc lập dữ liệu.
Khả năng thay đổi một định nghĩa đồ trong một mức mà không ảnh hưởng đến
định nghĩa đồ trong mức cao hơn tiếp theo thì được gọi tính độc lập dữ liệu. Một
sở dữ liệu luôn mang đặc trưng lịch sử khi ra đời. dụ khả năng của phần cứng, khả
năng của các công cụ toán học, khả năng của các phần mềm liên quan hoặc số các thuộc
tính cần có trong sở dữ liệu… đều ảnh hưởng trực tiếp đến cấu trúc của sở dữ liệu;
nhưng các yếu tố này lại luôn thay đổi theo thời gian. Do vậy để cơ sở dữ liệu có thể được
sử dụng trong tương lai xa buộc phải những thay đổi, bổ xung, loại bỏ phù hợp với
từng thời điểm. Tuy nhiên những sự thay đổi này nếu cũng kéo theo sự thay đổi cấu trúc
dữ liệu ở các mức trên thì sẽ làm cho các ứng dụng đã có không phù hợp với dữ liệu mới,
không truy cập được dữ liệu nữa. Như vậy để đảm bảo tính dùng chung cho nhiều ứng
dụng phát triển ở nhiều thời điểm khác nhau, thì việc đảm bảo tính độc lập dữ liệu là một
khả năng quan trọng của hệ quản trị cơ sở dữ liệu.
Có hai mức độc lập dữ liệu:
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 5
+ Độc lập dữ liệu mức vật lý: là khả năng thay đổi các đồ vật lý mà không dẫn
đến việc phải thay đổi đồ logic, các chương trình ứng dụng không phải viết lại. Những
thay đổi của sơ đồ vật lý là cần thiết khi người ta muốn tăng hiệu năng của hệ thống.
+ Độc lập dữ liệu mức logic: khả năng thay đổi các đồ logic không dẫn
đến việc các chương trình ứng dụng phải viết lại. Việc thay đổi sơ đồ logic là tất nhiên bởi
đến một lúc nào đó cấu trúc không đủ đáp ứng cho hệ thống tương lai. dụ như khi
hệ thống ngân hàng thêm các tài khoản tiền tệ chứng khoán trước đây hệ thống
chưa hề có hình thức tài khoản này. Sự độc lập dữ liệu ở mức này khó thực hiện hơn mức
vật do các chương trình ứng dụng được xây dựng trực tiếp căn cứ trên cấu trúc logic
của dữ liệu.
1.4.4. Ngôn ngữ cơ sở dữ liệu.
Một hệ quản trị cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau:
+ (Data Definition Language - DDL): ngôn ngữ Ngôn ngữ định nghĩa dữ liệu
cho phép đặc tả một sơ đồ cơ sở dữ liệu bằng một tập các định nghĩa. Dữ liệu mô tả về
đồ của cơ sở dữ liệu được gọi là (Metadata) và được lưu trữ trong một tệp đặc siêu dữ liệu
biệt gọi là (Data Dictionary). từ điển dữ liệu
+ (Data Manipulation Language - DML): ngôn ngữ Ngôn ngữ thao tác dữ liệu
cho phép người sử dụng truy cập thao tác dữ liệu được tổ chức bởi hình dữ liệu
thích hợp. Các thao tác trên dữ liệu bao gồm :
- Tìm kiếm thông tin trong cơ sở dữ liệu.
- Thêm thông tin mới vào cơ sở dữ liệu.
- Xóa thông tin trong cơ sở dữ liệu.
- Thay đổi thông tin trong cơ sở dữ liệu.
1.5. Kiến trúc của một hệ cơ sở dữ liệu.
Khi y dựng một hệ sở dữ liệu thường phải tuân theo hình đủ ba mức
trừu tượng dữ liệu. Mô hình này được coi là mô hình chuẩn nhằm đơn giản hóa các tương
tác với hệ thống, cho phép người sử dụng ở nhiều mức trình độ.
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 6
Trong mô hình, việc biểu diễn dữ liệu các mức thực chất các phép ánh xạ từ
các mức trừu tượng khác nhau.
Theo hình kiến trúc đã đề cập, sau đây sẽ hình các thành phần bản
của một hệ quản trị cơ sở dữ liệu điển hình
Tại đáy của kiến trúc (mức thấp nhất hay mức trong của kiến trúc) là biểu diễn các
dữ liệu và siêu dữ liệu được lưu trữ trên thiết bị nhớ ngoài.
Bộ quản lý lưu trữ nhiệm vụ lấy các thông tin được yêu cầu từ những thiết bị
lưu trữ dữ liệu thay đổi những thông tin này khi được yêu cầu từ các mức trên của
trong hệ thống.
…….
Hình 1.1. Kiến trúc ba mức trừu tượng dữ liệu của hệ cơ sở dữ liệu.
Cơ sở dữ liệu
Mô hình trong
(CSDL mức vật lí)
Mô hình quan niệm
(CSDL mức logic)
Mô hình ngoài 1
(CSDL mức khung nhìn 1)
Mô hình ngoài n
(CSDL mức khung nhìn n)
Người sử dụng cuối 1 Người sử dụng cuối n
MỨC NGOÀI
MỨC QUAN NIỆM
MỨC TRONG
Ánh xạ ngoài/quan niệm 1
Ánh xạ ngoài/quan niệm n
Ánh xạ quan niệm/trong
Dữ liệu
+
Siêu dữ liệu
Bộ quản lý lưu trữ
Bộ xử lý yêu cầu
Bộ quản trị giao dịch
Các truy vấn
Các thay đổi sơ đồ
Các thay đổi dữ liệu
Hình 1.2. Thành phần cơ bản của hệ quản trị cơ sở dữ liệu.
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 7
Bộ xử yêu cầu nhiệm vụ điều khiển việc đáp ứng các yêu cầu truy vấn kể cả
các yêu cầu thay đổi dữ liệu siêu dữ liệu. tìm ra một cách tốt nhất một thao tác
được yêu cầu và phát ra các lệnh đối với bộ quản lý lưu trữ để thực thi thao tác đó.
Bộ quản trị giao dịch trách nhiệm đảm bảo tính toàn vẹn của hệ thống này. Nó
đảm bảo các thao tác thực hiện đồng thời không cản trở mỗi thao tác khác và hệ thống sẽ
không bị mất dữ liệu khi có lỗi hệ thống xảy ra. Nó tương tác với bộ xử lý yêu cầu để biết
dữ liệu nào được thao c bởi các thao tác hiện thời và có thể làm trễ một số yêu cầu truy
vấn hay cập nhật nhát định nhằm tránh sự đụng độ. Bộ quản trị giao dịch cũng tương tác
với bộ quản lý lưu trữ biết được việc lưu trữ nhật các thay đổi đối với dữ liệu để mỗi
khi gặp lỗi hệ thống thì các thay đổi chưa được ghi vào đĩa có thể được thực hiện lại.
Đỉnh trên cùng chỉ ra ba loại thao tác của mức khung nhìn:
+ Các truy vấn: các thao tác hỏi đáp về dữ liệu được lưu trữ trong cơ sở dữ liệu.
bao gồm các truy vấn trực tiếp các truy vấn thông qua giao diện của một chương
trình ứng dụng.
+ Các cập nhật dữ liệu: là các thao tác thay đổi dữ liệu, tức là thay đổi thể hiện của
cơ sở dữ liệu như: thêm, xóa, sửa và cũng được thực hiện thông qua hai hình thức trực
tiếp và thông qua chương trình ứng dụng.
+ Các thay đổi sơ đồ: là những lệnh được đưa ra từ người sử dụng được cấp phép,
thường là người quản trị cơ sở dữ liệu.
1.6. Người quản trị và người sử dụng cơ sở dữ liệu.
1.6.1. Người quản trị cơ sở dữ liệu.
Một trong những do chính khi sử dụng một hệ quản trị sở dữ liệu là sự
điều khiển tập trung các dữ liệu và các chương trình truy nhập dữ liệu này. Một con người
có trách nhiệm điều khiển tập trung toàn bộ hệ thống được gọi người quản trị sở dữ
liệu. Nhiệm vụ của người quản trị hệ thống là:
+ Định nghĩa sơ đồ: Xác định sơ đồ cơ sở dữ liệu gốc bằng một tập các định nghĩa
tả các cấu trúc dữ liệu chúng được dịch bởi DDL thành một tập các khuôn mẫu
bảng và được lưu trữ lâu dài trong từ điển dữ liệu.
+ Xác định cấu trúc lưu trữ và phương pháp truy nhập.
+ y quyền truy nhập dữ liệu: qui định các bộ phận khác nhau của sở dữ liệu
được truy nhập bởi những người sử dụng khác nhau. Thông tin này được cất giữ trong
một hệ thống đặc biệt và được tra cứu bất kì khi có một truy nhập dữ liệu đi vào hệ thống.
+ Đặc tả các ràng buộc toàn vẹn.
1.6.2. Người lập trình ứng dụng.
những người chuyên nghiệp về y tính, họ thực hiện các tương tác với hệ
thống thông qua các lời gọi DML được nhúng trong một chương trình được viết bằng
ngôn ngữ chủ. Các chương trình này được gọi chung là các chương trình ứng dụng.
1.6.3. Người phân tích dữ liệu.
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 8
những người tương tác với hệ thống không thông qua các chương trình ứng
dụng. Các yêu cầu truy vấn dữ liệu được phát biểu bởi một ngôn ngữ truy vấn dữ liệu
được trực tiếp đưa đến bộ xử lý yêu cầu.
1.6.4. Người sử dụng cuối.
những người tương tác với hệ thống chỉ thông qua việc thực hiện một trong
những chương trình ứng dụng có sẵn.
1.7. Phân loại các hệ cơ sở dữ liệu.
Việc phân loại hệ cơ sở dữ liệu tùy thuộc vào tiêu chí phân loại.
Lấy tiêu chí phân loại là hình dữ liệu hệ hỗ trợ thì hiện nay thông dụng
nhất có hai loại mô hình dữ liệu: mô hình quan hệ và mô hình hướng đối tượng
Cũng có thể lấy tiêu chí phân loại số lượng người truy cập đồng thời, chúng ta
có hệ đơn người dùng và hệ đa người dùng.
Tuy nhiên hiện nay thông thường người ta phân loại các hệ sở dữ liệu căn cứ
vào việc sở dữ liệu của hệ được đặt tập trung tại một vị trí hay được chia thành nhiều
sở dữ liệu thành phần đặt tại nhiều vị trí địa lý khác nhau. Theo cách chia như vậy
chúng ta có hai loại hệ cơ sở dữ liệu: tập trung và phân tán.
Hệ cơ sở dữ liệu tập trung.
Với một hệ cơ sở dữ liệu tập trung, tất cả cả các dữ liệu được định vị tại một trạm
đơn lẻ. Những người sử dụng tại các trạm xa nói chung thể truy nhập sở dữ liệu
thông qua các công cụ truyền thông dữ liệu. Các hệ tập trung cung cấp một sự kiểm soát
chặt chẽ hơn trong việc truy nhập và cập nhật dữ liệu, song chúng lại dễ bị mắc lỗi hơn do
tính sẵn sàng của các tài nguyên.
Hệ cơ sở dữ liệu phân tán.
Đó một hệ cơ sở dữ liệu logic được trải ra về mặt vật lý trên nhiều trạm tại
các vị trí địa khác nhau được móc nối với nhau. Các hệ phân tán thường gặp rất
nhiều khó khăn trong việc đảm bảo sự đúng đắn, thống nhất của dữ liệu. dụ như các
trạm thường không có chung một mô hình dữ liệu, không sử dụng cùng một hệ quản trị cơ
sở dữ liệu hay hệ thống các ngữ nghĩa để biểu diễn các khoản mục mỗi nơi mỗi
khác… Tuy nhiên chúng ta cũng có thể thấy ngay rằng vấn đề này là không thể tránh khỏi
các trạm này trước đây vốn các hthống riêng biệt được phát triển các thời điểm
khác nhau mà ngày nay chúng thấy cần được chia sẻ, cần được hợp nhất.
1.8. Mô hình biểu diễn dữ liệu.
Việc biểu diễn đồ của sở dữ liệu để biểu thị một thiết kế cơ sở dữ liệu phải
được thông qua một ngôn ngữ đặc biệt nào đó. Thông thường, người ta sử dụng một
hình dữ liệu, tức là một sự hình thức hóa toán học với một tập hiệu để mô tả dữ liệu và
một tập các phép toán để thao tác trên các dữ liệu này.
nhiều hình dữ liệu khác nhau, sau đây một số hình được coi
thường được sử dụng nhất:
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 9
Mô hình thực thể - liên kết (Entity – Association Model):
Đây một hình dữ liệu khá đơn giản gần với duy trực quan, trong đó các
thông tin được xem xét theo cách phân nhóm về các đối tượng trong bài toán quản lý mà
được gọi là các thực thể. Ưu điểm chính của hình thực thể - liên kết là nó có khả năng
tả đồ khái niệm của một sở dữ liệu để một cái nhìn tổng thể chưa cần
quan tâm đến tính hiệu quả hay vấn đề thiết kế sở dữ liệu mức vật lý. Tuy nhiên cũng
vì thế với mô hình này là rất khó khăn trong việc xác định một sơ đồ sở dữ liệu đã
hiệu quả hay chưa hoặc đòi hỏi một sự hiểu biết sâu sắc của người thiết kế dữ liệu. Do
vậy thông thường, sau khi đưa ra đồ dữ liệu theo hình thực thể - liên kết, phải
được chuyển đổi về một mô hình khác làm mô hình đích (thường là mô hình quan hệ).
Mô hình quan hệ (Relation Model):
Là một hình dữ liệu có sự trừu tượng hóa cao, vẫn đảm bảo cung cấp cho
người sử dụng một cách nhìn khá tự nhiên, dễ hiểu. Với hình này người ta thể áp
dụng các công cụ toán học nhằm chứng minh được tính hiệu quả đúng đắn của một
thiết kế sở dữ liệu. hình quan hệ đã được đưa vào chuẩn ANSI-92, và cho đến nay
nó vẫn đang là hình dữ liệu chuẩn được hỗ trtrong hầu hết các hệ quản trị cơ sdữ
liệu có trên thị trường. Chúng ta sẽ xem xét kĩ về mô hình này trong các chương sau.
Mô hình hướng đối tượng (Object-Oriented Model):
Đây một hình khả năng nắm bắt bản chất của các ngôn ngữ truy vấn
hướng đối tượng. Đặc điểm của mô hình này là nó hỗ trợ định danh đối tượng, các thông
tin được xem xét theo cách qui về các đối tượng thực, mỗi đối tượng được xác định
duy nhất bởi định danh đối tượng. Các đối tượng ở đây thể được định nghĩa rất phức
tạp về cấu trúc, tính chất, hành động… của nó.
1.9. Ví dụ về một cơ sở dữ liệu.
Sau đây chúng ta hãy xem xét sở dữ liệu đơn giản: sở dữ liệu TRƯỜNG.
sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên, các môn học, điểm
trong một trường đại học. Cơ sở dữ liệu được tổ chức thành 4 bảng, mỗi bảng lưu trữ các
bản ghi dữ liệu cùng một kiểu. Bảng SINHVIÊN lưu dữ liệu về các sinh viên; bảng
MÔNHỌC lưu các dữ liệu về các môn học; bảng HỌCPHẦN lưu dữ liệu về các học
phần tức việc học một môn học nào đó của một lớp; bảng ĐIỂM lưu dữ liệu về điểm
của các sinh viên trong từng học phần.
Cấu trúc của CSDL và một vài mẫu dữ liệu ví dụ được trình bày ở hình 1.2.
SINHVIÊN
MãsốSV HọtênSV Lớp Chuyênngành
17 Nguyễn Nam K45T Tinhọc
8 Lê Bắc K45C CôngnghêTT
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 10
MÔNHỌC
MãsốMH TênMH Sốđvht Khoa
101 Tinhọc cơ sở 8 Công nghệ
102 Cấu trúc DLvàGT 5 Công nghệ
103 Toán rời rạc 5 Công nghệ
104 Cơ sở dữ liệu 3 Công nghệ
HỌCPHẦN
MãsốHP MãsốMH Họckỳ Năm Têngiáoviên
1011 101 1 2001 Vân
1031 103 1 2001 Hoàng
1032 103 2 2002 Hoàng
1020 102 3 2002 Lân
1040 104 4 2002 Huy
ĐIỂM
MãsốSV MãsốHP Điểm
17 1031 8
17 1020 6
8 1031 9
8 1011 10
8 1020 7
8 1040 9
Hình 1.3. Cơ sở dữ liệu TRƯỜNG
Việc đầu tiên định nghĩa sdữ liệu, nghĩa chúng ta phải xác định đồ
của cơ sở dữ liệu, chỉ ra cấu trúc của các bản ghi của mỗi bảng bằng cách đặc tả Số lượng
và kiểu dữ liệu của các phần tdữ liệu sẽ được lưu trữ trong mỗi bản ghi. Theo hình 1.3,
mỗi bản ghi SINHVIÊN bao gồm 4 phần tử dữ liệu để biểu diễn: MãsốSV, HọtênSV,
Lớp, ChuyênNgành; Mỗi bản ghi MÔNHỌC bao gồm 4 thành phần dữ liệu để biểu diễn:
MãsốMH, TênMH, Sốđvht, Khoa; Mỗi bản ghi HỌCPHẦN bao gồm 5 thành phần dữ liệu
để biểu diễn: MãsốHP, MãsốMH, Họckì, Năm, Têngiáoviên; Mỗi bản ghi ĐIỂM bao gồm
3 thành phần dữ liệu để biểu diễn: MãsốSV, TênHP, Điểm. Trong đó chúng ta phải chỉ
Nhập môn cơ sở dữ liệu – Đại cương
Trần Hồng Diệp – 2009. 11
một kiểu dữ liệu của mỗi phần tử dữ liệu bên trong các bản ghi. dụ, ta thể đặc t
HọtênSV là một dãy ký tự có độ dài không quá 30, MãsốSV là một số nguyên, ….
Để xây dựng sở dữ liệu TRƯỜNG, chúng ta lưu giũ các dữ liệu về mỗi sinh
viên, mỗi môn học,…vào các bảng thích hợp. Để ý rằng các bản ghi trong các bảng khác
nhau có thể có mối quan hệ với nhau. dụ, bản ghi đối với sinh viên có mã số 17 trong
bảng SINHVIÊN liên quan đến hai bản ghi trong bảng ĐIỂM. Sự liên hệ này chỉ ra
rằng sinh viên có mã số là 17 tên là Nguyễn Nam và có điểm hai học phần cụ thể là học
phần có mã số 1031 được điểm 8 và học phần có mã số 1020 được điểm 6. Tương tự như
vậy, các bản ghi trong bảng MÔNHỌC mối quan hệ với các bản ghi trong bảng
HỌCPHẦN; các bản ghi trong bảng HỌCPHẦN mối quan hệ với các bản ghi trong
bảng ĐIỂM. Như vậy, một sở dữ liệu thường bao gồm nhiều bảng dữ liệu có cấu trúc
khác nhau giữa chúng tồn tại các mối quan hệ, làm cho sở dữ liệu trở thành một
khối dữ liệu thống nhất không có bộ phận nào bị tách rời.
Sau khi đã xây dựng được cơ sở dữ liệu, các thao tác được thực hiện trên cơ sở dữ
liệu là để sử dụng nó. Các thao tác này bao gồm truy vấn cập nhật sở dữ liệu. Truy
vấn sở dữ liệu đưa ra các yêu cầu đối với sở dữ liệu để lấy ra các thông tin cần
thiết. dụ, chúng ta thể các truy vấn như : Liệt các môn học điểm thi của
sinh viên Nguyễn Nam”, Đưa ra danh sách các sinh viên thi trượt môn sở dữ liệu “.
Cập nhật sở dữ liệu bao gồm việc thêm vào sở dữ liệu bản ghi, xóa bỏ các bản ghi
hoặc sửa đổi các giá trị trong các bản ghi.
| 1/12

Preview text:

TRƯỜNG ĐẠI HỌC LÂM NGHIỆP BỘ MÔN TIN HỌC
========= *** ========= BÀI GIẢNG
NHẬP MÔN CƠ SỞ DỮ LIỆU
Biên soạn: TRẦN HỒNG DIỆP Mobile: 0904151388 Email: diepth18@yahoo.com diepth18@gmail.com
Nhập môn cơ sở dữ liệu – Đại cương
CHƯƠNG 1: ĐẠI CƯƠNG.
1.1. Một số vấn đề tồn tại trong các hệ thống tệp truyền thống.
Các hệ thống thông tin truyền thống thường đáp ứng các yêu cầu của người sử
dụng bằng cách viết một chương trình mới. Mỗi chương trình này thường chỉ được thiết
kế để đáp ứng cho một vài yêu cầu cụ thể của một nhóm người cụ thể mà không có kế
hoạch tổng thể hướng tới sự tăng trưởng ứng dụng mới trong tương lai.
Đối với mỗi chương trình mới này được thiết kế một cách điển hình kèm theo một
hệ thống các tệp dữ liệu riêng của nó. Như vậy có thể xảy ra việc các hệ thống tệp dữ liệu
của các chương trình khác nhau của cùng một xí nghiệp cùng lưu trữ nhiều thông tin trùng
lặp với nhiều cấu trúc khác nhau.
Với các hệ thống dữ liệu như vậy có thể có các nguy cơ:
+ Dư thừa và không nhất quán dữ liệu.
+ Khó khăn trong truy nhập dữ liệu: khi có một yêu cầu truy xuất không nằm
trong thiết kế của ứng dụng.
+ Cô lập và hạn chế chia sẻ dữ liệu: mỗi chương trình mới thiết kế dòi hỏi một cấu
trúc của các tệp dữ liệu khác nhau, rất khó có thể thiết kế để sử dụng chung dữ liệu với
các chương trình đã có trước đó.
+ Khi có các thay đổi về các ràng buộc toàn vẹn thì chương trình không đáp ứng
được và khi đó đòi hỏi chương trình phải được viết lại, tệp dữ liệu phải được thiết kế lại.
+ Khó khăn trong đảm bảo an toàn dữ liệu khi có các lỗi hệ thống, khi truy nhập
đồng thời, khi có các cấp độ khác nhau trong việc cho phép những người sử dụng khác nhau truy cập dữ liệu.
1.2. Hệ cơ sở dữ liệu.
Nhằm khắc phục những nhược điểm đã kể đến ở trên, người ta mong muốn tạo lập
được một bộ dữ liệu lớn được quản lý thống nhất, độc lập với các chương trình ứng dụng
và dùng chung cho nhiều chương trình ứng dụng kể cả những ứng dụng sẽ được phát triển
trong tương lai. Đó chính là những ý tưởng thiết kế ban đầu của một hệ thống gọi là Hệ cơ
sở dữ liệu
, chúng ta sẽ lần lượt xét đến các vấn đề cơ bản của nó trong các mục sau.
1.2.1. Cơ sở dữ liệu là gì?
Mỗi một tổ chức (cơ quan, xí nghiệp, trường học…) trong xã hội đều có các công
việc khác nhau liên quan đến việc sử dụng các dữ liệu cùng được lấy từ một nguồn chung.
Do đó cách tốt nhất là tổ chức lưu trữ một hệ thống thống nhất toàn bộ các dữ liệu của cả
xí nghiệp đó lại để quản lý tập trung. Và khi đó tất cả các chương trình ứng dụng trong cơ
quan và cả những người sử dụng trực tuyến có thể dùng chung và chia sẻ cùng một cơ sở dữ liệu.
Trần Hồng Diệp – 2009. 1
Nhập môn cơ sở dữ liệu – Đại cương

Cơ sở dữ liệu (Database) là một bộ sưu tập các dữ liệu tác nghiệp được lưu trữ lại
theo một qui cách nào đó và sau đó được các hệ ứng dụng của một xí nghiệp cụ thể sử dụng.
Dữ liệu tác nghiệp ở đây là để chỉ các dữ liệu gốc, dữ liệu đầu vào phản ánh nội
tại xí nghiệp đó ví dụ như các dữ liệu về nguyên liệu, sản phẩm, khách hàng… của xí
nghiệp. Các dữ liệu đi từ bên ngoài vào và có thể gây ra những ảnh hưởng đến dữ liệu tác
nghiệp của xí nghiệp ví dụ như các thông báo, qui định thì không phải là dữ liệu tác
nghiệp. Các báo cáo được rút ra từ dữ liệu tác nghiệp cũng không bao hàm trong dữ liệu tác nghiệp.
1.2.2. Hệ quản trị cơ sở dữ liệu.
Để tạo lập một cơ sở dữ liệu, sau đó quản lý và khai thác nó cũng cần một phần
mềm máy tính thực hiện các công việc này.
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) là một hệ
thống phần mềm máy tính cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối
với cơ sở dữ liệu đó.
Ở Việt Nam hiện nay có khá nhiều các phần mềm hệ quản trị cơ sở dữ liệu, một số
hệ quản trị cơ sở dữ liệu thương mại thông dụng như : MS-Access, DB2, SQL Server, Oracle…
1.2.3. Hệ cơ sở dữ liệu.
Hệ cơ sở dữ liệu (Database System) là một hệ thống thống nhất gồm 4 thành phần :
+ Cơ sở dữ liệu: là cơ sở dữ liệu hợp nhất của toàn hệ thống và phải đảm bảo hai
tính chất : tối thiểu hóa dư thừa và cho phép chia sẻ.
+ Hệ quản trị cơ sở dữ liệu tương ứng.
+ Phần cứng: các thiết bị nhớ thứ cấp được sử dụng để lưu trữ dữ liệu.
+ Người sử dụng: là những người truy nhập dữ liệu, bao gồm: người quản trị cơ sở
dữ liệu, người lập trình ứng dụng, người phân tích dữ liệu và người sử dụng cuối.
1.3. Các khả năng của hệ quản trị cơ sở dữ liệu.
Các ứng dụng đặc trưng của một hệ quản trị cơ sở dữ liệu là khi khối lượng dữ
liệu cần lưu trữ và xử lý là rất lớn và trong thời gian dài.
Hai khả năng quan trọng nhất phân biệt một hệ quản trị cơ sở dữ liệu với hệ thống lập trình khác là:
+ Khả năng quản lý dữ liệu tồn tại lâu dài. Một cơ sở dữ liệu ra đời nhằm mục
đích lưu trữ những dữ liệu dùng chung cho nhiều ứng dụng, cả những ứng dụng hiện tại
và những ứng dụng sẽ phát triển trong tương lai. Do vậy cơ sở dữ liệu ấy phải được tồn tại
lâu dài và phải được thay đổi cho phù hợp với từng thời điểm mà không làm loại trừ
những ứng dụng cũ. Và như vậy hệ quản trị cơ sở dữ liệu định nghĩa và khai thác cơ sở dữ
liệu cũng phải cung cấp khả năng tương ứng để quản lý cơ sở dữ liệu.
Trần Hồng Diệp – 2009. 2
Nhập môn cơ sở dữ liệu – Đại cương

+ Khả năng truy nhập các khối lượng dữ liệu lớn có hiệu quả. Cơ sở dữ liệu là
một bộ dữ liệu hợp nhất của cả một cơ quan, do đó khối lượng dữ liệu lưu trữ trong đó là
khổng lồ. Thông thường các phép xử lý trên các dữ liệu này có độ phức tạp tính toán
không lớn, thậm chí là đơn giản nhưng lại công việc lại khó khăn ở chỗ nó thao tác trên
khối lượng dữ liệu lớn. Như vậy để thao tác trên cơ sở dữ liệu một cách có hiệu quả thì hệ
quản trị cơ sở dữ liệu cần cung cấp các công cụ cho phép truy nhập nhanh chóng đến các
bộ phận dữ liệu tùy ý.
Cụ thể là hiện nay các sản phẩm phần mềm quản trị cơ sở dữ liệu đã đưa ra thị
trường và được sử dụng rộng rãi thì hầu hết đều cung cấp các tính năng sau:
+ Hỗ trợ ít nhất một mô hình dữ liệu hay một sự trừu tượng toán học để qua đó
người sử dụng có thể quan sát dữ liệu.
+ Đảm bảo tính độc lập dữ liệu hay sự bất biến của chương trình ứng dụng đối với
các cấu trúc trong mô hình dữ liệu.
+ Hỗ trợ ngôn ngữ cấp cao cho phép người sử dụng định nghĩa dữ liệu, truy nhập và thao tác dữ liệu.
+ Quản trị giao dịch: cung cấp các truy nhập đồng thời, đúng đắn đối với cơ sở dữ
liệu từ nhiều người sử dụng tại cùng một thời điểm.
+ Điều khiển truy nhập: hạn chế sự truy nhập đến các dữ liệu bởi những người sử
dụng không được cấp phép.
+ Kiểm tra tính đúng đắn của dữ liệu.
+ Phục hồi dữ liệu khi gặp các lỗi hệ thống.
1.4. Một số vấn đề lý thuyết cơ sở.
1.4.1. Sự trừu tượng hóa dữ liệu.
Để hệ thống có thể tra cứu hay tìm kiếm dữ liệu một cách có hiệu quả, thường dẫn
đến việc cấu trúc dữ liệu được thiết kế phức tạp. Tuy nhiên những người sử dụng hệ thống
lại có trình độ tin học khác nhau, và người phát triển hệ thống cần phải che giấu tính phức
tạp đối với người sử dụng thông qua một số mức trừu tượng nhằm đơn giản hóa các tương
tác của người sử dụng đối với hệ thống. Ở đây chúng ta phân biệt ba mức trừu tượng:
+ Mức vật lý: Đây là mức trừu tượng thấp nhất. Ở mức này dữ liệu và cấu trúc dữ
liệu phức tạp được lưu trữ trên các thiết bị lưu trữ được mô tả một cách chính xác, chi tiết.
+ Mức logic: Thực chất đây mới là mức có sự trừu tượng về cấu trúc dữ liệu. Mức
này mô tả dữ liệu được lưu trữ trong cơ sở dữ liệu và các mối quan hệ tồn tại giữa chúng.
Toàn bộ cơ sở dữ liệu được mô tả trong thuật ngữ của một số nhỏ các cấu trúc khá đơn
giản, mặc dù thực tế cấu trúc vật lý của nó rất phức tạp.
+ Mức khung nhìn: Đây là mức trừu tượng cao nhất. Ở đây cơ sở dữ liệu được mô
tả trực quan, gần với hình ảnh thực tế nhất bằng cấu trúc đơn giản hơn nhiều so với mức
logic. Việc thiết kế đơn giản hóa như vậy là dành cho người sử dụng cuối, những người
có trình độ tin học thấp. Thông thường họ được phân thành nhiều nhóm người có những
Trần Hồng Diệp – 2009. 3
Nhập môn cơ sở dữ liệu – Đại cương

quyền hạn khác nhau đối với cơ sở dữ liệu. Do đó ở mức này thường có nhiều khung nhìn
khác nhau nhằm cho phép những người sử dụng khác nhau chỉ cần và chỉ được phép truy
nhập đến một phần khác nhau nào đó trong cơ sở dữ liệu.
Ví dụ: Để lưu trữ dữ liệu về Khách hàng của một công ty bao gồm các thông tin về
tên, địa chỉ, số điện thoại. Tại mức vật lý mỗi khách hàng sẽ được mô tả là một khối nhớ
với những chi tiết phức tạp. Các chi tiết phức tạp này bị che giấu ở mức logic và nó được
mô tả bởi một bản ghi được định nghĩa :
Type khachhang = record Tenkh : string ; Diachi : string ; Dt : integer ; End ;
Và cuối cùng ở mức khung nhìn người sử dụng chỉ còn nhìn thấy các chương trình
ứng dụng mà không biết đến các chi tiết về kiểu dữ liệu. Và thực tế ngoài việc che giấu
các chi tiết của mức logic, các khung nhìn còn cung cấp cơ chế ngăn chặn truy nhập dữ liệu không được phép.
1.4.2. Các thể hiện và các sơ đồ.
Một thiết kế tổng thể về khuôn mẫu của toàn bộ cơ sở dữ liệu thì được gọi là sơ đồ
cơ sở dữ liệu (Database Schema). Sơ đồ của cơ sở dữ liệu ít khi thậm chí hầu như không
thay đổi hoặc là thay đổi rất chậm theo thời gian.
Theo khuôn mẫu đã thiết kế, một tập hợp các thông tin được lưu trữ trong cơ sở
dữ liệu tại một thời điểm được gọi là một thể hiện (Database Instance) của cơ sở dữ liệu
đó. Theo thời gian các thể hiện này thường xuyên có các thay đổi khi các thông tin được
thêm, bớt, sửa chữa và khi đó chúng ta lại có một thể hiện mới.
1.4.3. Tính độc lập dữ liệu.
Khả năng thay đổi một định nghĩa sơ đồ trong một mức mà không ảnh hưởng đến
định nghĩa sơ đồ trong mức cao hơn tiếp theo thì được gọi là tính độc lập dữ liệu. Một cơ
sở dữ liệu luôn mang đặc trưng lịch sử khi nó ra đời. Ví dụ khả năng của phần cứng, khả
năng của các công cụ toán học, khả năng của các phần mềm liên quan hoặc số các thuộc
tính cần có trong cơ sở dữ liệu… đều ảnh hưởng trực tiếp đến cấu trúc của cơ sở dữ liệu;
nhưng các yếu tố này lại luôn thay đổi theo thời gian. Do vậy để cơ sở dữ liệu có thể được
sử dụng trong tương lai xa buộc nó phải có những thay đổi, bổ xung, loại bỏ phù hợp với
từng thời điểm. Tuy nhiên những sự thay đổi này nếu cũng kéo theo sự thay đổi cấu trúc
dữ liệu ở các mức trên thì sẽ làm cho các ứng dụng đã có không phù hợp với dữ liệu mới,
không truy cập được dữ liệu nữa. Như vậy để đảm bảo tính dùng chung cho nhiều ứng
dụng phát triển ở nhiều thời điểm khác nhau, thì việc đảm bảo tính độc lập dữ liệu là một
khả năng quan trọng của hệ quản trị cơ sở dữ liệu.
Có hai mức độc lập dữ liệu:
Trần Hồng Diệp – 2009. 4
Nhập môn cơ sở dữ liệu – Đại cương

+ Độc lập dữ liệu mức vật lý: là khả năng thay đổi các sơ đồ vật lý mà không dẫn
đến việc phải thay đổi sơ đồ logic, các chương trình ứng dụng không phải viết lại. Những
thay đổi của sơ đồ vật lý là cần thiết khi người ta muốn tăng hiệu năng của hệ thống.
+ Độc lập dữ liệu mức logic: là khả năng thay đổi các sơ đồ logic mà không dẫn
đến việc các chương trình ứng dụng phải viết lại. Việc thay đổi sơ đồ logic là tất nhiên bởi
đến một lúc nào đó cấu trúc cũ không đủ đáp ứng cho hệ thống tương lai. Ví dụ như khi
hệ thống ngân hàng có thêm các tài khoản tiền tệ chứng khoán mà trước đây hệ thống
chưa hề có hình thức tài khoản này. Sự độc lập dữ liệu ở mức này khó thực hiện hơn mức
vật lý do các chương trình ứng dụng được xây dựng trực tiếp căn cứ trên cấu trúc logic của dữ liệu.
1.4.4. Ngôn ngữ cơ sở dữ liệu.
Một hệ quản trị cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau:
+ Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): là ngôn ngữ
cho phép đặc tả một sơ đồ cơ sở dữ liệu bằng một tập các định nghĩa. Dữ liệu mô tả về sơ
đồ của cơ sở dữ liệu được gọi là siêu dữ liệu (Metadata) và được lưu trữ trong một tệp đặc biệt gọi là (Data Dictionary).
từ điển dữ liệu
+ Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): là ngôn ngữ
cho phép người sử dụng truy cập và thao tác dữ liệu được tổ chức bởi mô hình dữ liệu
thích hợp. Các thao tác trên dữ liệu bao gồm :
- Tìm kiếm thông tin trong cơ sở dữ liệu.
- Thêm thông tin mới vào cơ sở dữ liệu.
- Xóa thông tin trong cơ sở dữ liệu.
- Thay đổi thông tin trong cơ sở dữ liệu.
1.5. Kiến trúc của một hệ cơ sở dữ liệu.
Khi xây dựng một hệ cơ sở dữ liệu thường phải tuân theo mô hình có đủ ba mức
trừu tượng dữ liệu. Mô hình này được coi là mô hình chuẩn nhằm đơn giản hóa các tương
tác với hệ thống, cho phép người sử dụng ở nhiều mức trình độ.
Trần Hồng Diệp – 2009. 5
Nhập môn cơ sở dữ liệu – Đại cương
Người sử dụng cuối 1 Người sử dụng cuối n Mô hình ngoài 1 Mô hình ngoài n (CSDL mức khung nhìn 1)
……. (CSDL mức khung nhìn n) MỨC NGOÀI
Ánh xạ ngoài/quan niệm 1
Ánh xạ ngoài/quan niệm n Mô hình quan niệm (CSDL mức logic) MỨC QUAN NIỆM Ánh xạ quan niệm/trong Mô hình trong MỨC TRONG (CSDL mức vật lí) Cơ sở dữ liệu
Hình 1.1. Kiến trúc ba mức trừu tượng dữ liệu của hệ cơ sở dữ liệu.
Trong mô hình, việc biểu diễn dữ liệu ở các mức thực chất là các phép ánh xạ từ
các mức trừu tượng khác nhau.
Theo mô hình kiến trúc đã đề cập, sau đây sẽ là mô hình các thành phần cơ bản
của một hệ quản trị cơ sở dữ liệu điển hình Các thay đổi sơ đồ Các truy vấn Các thay đổi dữ liệu Bộ xử lý yêu cầu Bộ quản trị giao dịch Bộ quản lý lưu trữ Dữ liệu + Siêu dữ liệu
Hình 1.2. Thành phần cơ bản của hệ quản trị cơ sở dữ liệu.
Tại đáy của kiến trúc (mức thấp nhất hay mức trong của kiến trúc) là biểu diễn các
dữ liệu và siêu dữ liệu được lưu trữ trên thiết bị nhớ ngoài.
Bộ quản lý lưu trữ có nhiệm vụ lấy các thông tin được yêu cầu từ những thiết bị
lưu trữ dữ liệu và thay đổi những thông tin này khi được yêu cầu từ các mức trên của nó trong hệ thống.
Trần Hồng Diệp – 2009. 6
Nhập môn cơ sở dữ liệu – Đại cương

Bộ xử lý yêu cầu có nhiệm vụ điều khiển việc đáp ứng các yêu cầu truy vấn kể cả
các yêu cầu thay đổi dữ liệu và siêu dữ liệu. Nó tìm ra một cách tốt nhất một thao tác
được yêu cầu và phát ra các lệnh đối với bộ quản lý lưu trữ để thực thi thao tác đó.
Bộ quản trị giao dịch có trách nhiệm đảm bảo tính toàn vẹn của hệ thống này. Nó
đảm bảo các thao tác thực hiện đồng thời không cản trở mỗi thao tác khác và hệ thống sẽ
không bị mất dữ liệu khi có lỗi hệ thống xảy ra. Nó tương tác với bộ xử lý yêu cầu để biết
dữ liệu nào được thao tác bởi các thao tác hiện thời và có thể làm trễ một số yêu cầu truy
vấn hay cập nhật nhát định nhằm tránh sự đụng độ. Bộ quản trị giao dịch cũng tương tác
với bộ quản lý lưu trữ biết được việc lưu trữ nhật kí các thay đổi đối với dữ liệu để mỗi
khi gặp lỗi hệ thống thì các thay đổi chưa được ghi vào đĩa có thể được thực hiện lại.
Đỉnh trên cùng chỉ ra ba loại thao tác của mức khung nhìn:
+ Các truy vấn: là các thao tác hỏi đáp về dữ liệu được lưu trữ trong cơ sở dữ liệu.
Nó bao gồm các truy vấn trực tiếp và các truy vấn thông qua giao diện của một chương trình ứng dụng.
+ Các cập nhật dữ liệu: là các thao tác thay đổi dữ liệu, tức là thay đổi thể hiện của
cơ sở dữ liệu như: thêm, xóa, sửa và cũng được thực hiện thông qua hai hình thức là trực
tiếp và thông qua chương trình ứng dụng.
+ Các thay đổi sơ đồ: là những lệnh được đưa ra từ người sử dụng được cấp phép,
thường là người quản trị cơ sở dữ liệu.
1.6. Người quản trị và người sử dụng cơ sở dữ liệu.
1.6.1. Người quản trị cơ sở dữ liệu.
Một trong những lý do chính khi sử dụng một hệ quản trị cơ sở dữ liệu là có sự
điều khiển tập trung các dữ liệu và các chương trình truy nhập dữ liệu này. Một con người
có trách nhiệm điều khiển tập trung toàn bộ hệ thống được gọi là người quản trị cơ sở dữ
liệu. Nhiệm vụ của người quản trị hệ thống là:
+ Định nghĩa sơ đồ: Xác định sơ đồ cơ sở dữ liệu gốc bằng một tập các định nghĩa
mô tả các cấu trúc dữ liệu mà chúng được dịch bởi DDL thành một tập các khuôn mẫu
bảng và được lưu trữ lâu dài trong từ điển dữ liệu.
+ Xác định cấu trúc lưu trữ và phương pháp truy nhập.
+ Ủy quyền truy nhập dữ liệu: qui định các bộ phận khác nhau của cơ sở dữ liệu
được truy nhập bởi những người sử dụng khác nhau. Thông tin này được cất giữ trong
một hệ thống đặc biệt và được tra cứu bất kì khi có một truy nhập dữ liệu đi vào hệ thống.
+ Đặc tả các ràng buộc toàn vẹn.
1.6.2. Người lập trình ứng dụng.
Là những người chuyên nghiệp về máy tính, họ thực hiện các tương tác với hệ
thống thông qua các lời gọi DML được nhúng trong một chương trình được viết bằng
ngôn ngữ chủ. Các chương trình này được gọi chung là các chương trình ứng dụng.
1.6.3. Người phân tích dữ liệu.
Trần Hồng Diệp – 2009. 7
Nhập môn cơ sở dữ liệu – Đại cương

Là những người tương tác với hệ thống không thông qua các chương trình ứng
dụng. Các yêu cầu truy vấn dữ liệu được phát biểu bởi một ngôn ngữ truy vấn dữ liệu và
được trực tiếp đưa đến bộ xử lý yêu cầu.
1.6.4. Người sử dụng cuối.
Là những người tương tác với hệ thống chỉ thông qua việc thực hiện một trong
những chương trình ứng dụng có sẵn.
1.7. Phân loại các hệ cơ sở dữ liệu.
Việc phân loại hệ cơ sở dữ liệu tùy thuộc vào tiêu chí phân loại.
Lấy tiêu chí phân loại là mô hình dữ liệu mà hệ hỗ trợ thì hiện nay thông dụng
nhất có hai loại mô hình dữ liệu: mô hình quan hệ và mô hình hướng đối tượng
Cũng có thể lấy tiêu chí phân loại là số lượng người truy cập đồng thời, chúng ta
có hệ đơn người dùng và hệ đa người dùng.
Tuy nhiên hiện nay thông thường người ta phân loại các hệ cơ sở dữ liệu căn cứ
vào việc cơ sở dữ liệu của hệ được đặt tập trung tại một vị trí hay được chia thành nhiều
cơ sở dữ liệu thành phần đặt tại nhiều vị trí địa lý khác nhau. Theo cách chia như vậy
chúng ta có hai loại hệ cơ sở dữ liệu: tập trung và phân tán.
Hệ cơ sở dữ liệu tập trung.
Với một hệ cơ sở dữ liệu tập trung, tất cả cả các dữ liệu được định vị tại một trạm
đơn lẻ. Những người sử dụng tại các trạm xa nói chung có thể truy nhập cơ sở dữ liệu
thông qua các công cụ truyền thông dữ liệu. Các hệ tập trung cung cấp một sự kiểm soát
chặt chẽ hơn trong việc truy nhập và cập nhật dữ liệu, song chúng lại dễ bị mắc lỗi hơn do
tính sẵn sàng của các tài nguyên.
Hệ cơ sở dữ liệu phân tán.
Đó là một hệ cơ sở dữ liệu logic mà được trải ra về mặt vật lý trên nhiều trạm tại
các vị trí địa lý khác nhau và được móc nối với nhau. Các hệ phân tán thường gặp rất
nhiều khó khăn trong việc đảm bảo sự đúng đắn, thống nhất của dữ liệu. Ví dụ như các
trạm thường không có chung một mô hình dữ liệu, không sử dụng cùng một hệ quản trị cơ
sở dữ liệu hay là hệ thống các ngữ nghĩa để biểu diễn các khoản mục ở mỗi nơi mỗi
khác… Tuy nhiên chúng ta cũng có thể thấy ngay rằng vấn đề này là không thể tránh khỏi
vì các trạm này trước đây vốn là các hệ thống riêng biệt được phát triển ở các thời điểm
khác nhau mà ngày nay chúng thấy cần được chia sẻ, cần được hợp nhất.
1.8. Mô hình biểu diễn dữ liệu.
Việc biểu diễn sơ đồ của cơ sở dữ liệu để biểu thị một thiết kế cơ sở dữ liệu phải
được thông qua một ngôn ngữ đặc biệt nào đó. Thông thường, người ta sử dụng một mô
hình dữ liệu, tức là một sự hình thức hóa toán học với một tập kí hiệu để mô tả dữ liệu và
một tập các phép toán để thao tác trên các dữ liệu này.
Có nhiều mô hình dữ liệu khác nhau, sau đây là một số mô hình được coi là
thường được sử dụng nhất:
Trần Hồng Diệp – 2009. 8
Nhập môn cơ sở dữ liệu – Đại cương

Mô hình thực thể - liên kết (Entity – Association Model):
Đây là một mô hình dữ liệu khá đơn giản gần với tư duy trực quan, trong đó các
thông tin được xem xét theo cách phân nhóm về các đối tượng trong bài toán quản lý mà
được gọi là các thực thể. Ưu điểm chính của mô hình thực thể - liên kết là nó có khả năng
mô tả sơ đồ khái niệm của một cơ sở dữ liệu để có một cái nhìn tổng thể mà chưa cần
quan tâm đến tính hiệu quả hay vấn đề thiết kế cơ sở dữ liệu mức vật lý. Tuy nhiên cũng
vì thế mà với mô hình này là rất khó khăn trong việc xác định một sơ đồ cơ sở dữ liệu đã
hiệu quả hay chưa hoặc là đòi hỏi một sự hiểu biết sâu sắc của người thiết kế dữ liệu. Do
vậy thông thường, sau khi đưa ra sơ đồ dữ liệu theo mô hình thực thể - liên kết, nó phải
được chuyển đổi về một mô hình khác làm mô hình đích (thường là mô hình quan hệ).
Mô hình quan hệ (Relation Model):
Là một mô hình dữ liệu có sự trừu tượng hóa cao, mà vẫn đảm bảo cung cấp cho
người sử dụng một cách nhìn khá tự nhiên, dễ hiểu. Với mô hình này người ta có thể áp
dụng các công cụ toán học nhằm chứng minh được tính hiệu quả và đúng đắn của một
thiết kế cơ sở dữ liệu. Mô hình quan hệ đã được đưa vào chuẩn ANSI-92, và cho đến nay
nó vẫn đang là mô hình dữ liệu chuẩn được hỗ trợ trong hầu hết các hệ quản trị cơ sở dữ
liệu có trên thị trường. Chúng ta sẽ xem xét kĩ về mô hình này trong các chương sau.
Mô hình hướng đối tượng (Object-Oriented Model):
Đây là một mô hình có khả năng nắm bắt bản chất của các ngôn ngữ truy vấn
hướng đối tượng. Đặc điểm của mô hình này là nó hỗ trợ định danh đối tượng, các thông
tin được xem xét theo cách qui về các đối tượng có thực, mỗi đối tượng được xác định
duy nhất bởi định danh đối tượng. Các đối tượng ở đây có thể được định nghĩa rất phức
tạp về cấu trúc, tính chất, hành động… của nó.
1.9. Ví dụ về một cơ sở dữ liệu.
Sau đây chúng ta hãy xem xét cơ sở dữ liệu đơn giản: Cơ sở dữ liệu TRƯỜNG.
Cơ sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên, các môn học, điểm …
trong một trường đại học. Cơ sở dữ liệu được tổ chức thành 4 bảng, mỗi bảng lưu trữ các
bản ghi dữ liệu cùng một kiểu. Bảng SINHVIÊN lưu dữ liệu về các sinh viên; bảng
MÔNHỌC lưu các dữ liệu về các môn học; bảng HỌCPHẦN lưu dữ liệu về các học
phần tức là việc học một môn học nào đó của một lớp; bảng ĐIỂM lưu dữ liệu về điểm
của các sinh viên trong từng học phần.
Cấu trúc của CSDL và một vài mẫu dữ liệu ví dụ được trình bày ở hình 1.2. SINHVIÊN MãsốSV HọtênSV Lớp Chuyênngành 17 Nguyễn Nam K45T Tinhọc 8 Lê Bắc K45C CôngnghêTT
Trần Hồng Diệp – 2009. 9
Nhập môn cơ sở dữ liệu – Đại cương
MÔNHỌC MãsốMH TênMH Sốđvht Khoa 101 Tinhọc cơ sở 8 Công nghệ 102 Cấu trúc DLvàGT 5 Công nghệ 103 Toán rời rạc 5 Công nghệ 104 Cơ sở dữ liệu 3 Công nghệ HỌCPHẦN MãsốHP MãsốMH Họckỳ Năm Têngiáoviên 1011 101 1 2001 Vân 1031 103 1 2001 Hoàng 1032 103 2 2002 Hoàng 1020 102 3 2002 Lân 1040 104 4 2002 Huy ĐIỂM MãsốSV MãsốHP Điểm 17 1031 8 17 1020 6 8 1031 9 8 1011 10 8 1020 7 8 1040 9
Hình 1.3. Cơ sở dữ liệu TRƯỜNG
Việc đầu tiên là định nghĩa cơ sở dữ liệu, nghĩa là chúng ta phải xác định sơ đồ
của cơ sở dữ liệu, chỉ ra cấu trúc của các bản ghi của mỗi bảng bằng cách đặc tả Số lượng
và kiểu dữ liệu của các phần tử dữ liệu sẽ được lưu trữ trong mỗi bản ghi. Theo hình 1.3,
mỗi bản ghi SINHVIÊN bao gồm 4 phần tử dữ liệu để biểu diễn: MãsốSV, HọtênSV,
Lớp, ChuyênNgành; Mỗi bản ghi MÔNHỌC bao gồm 4 thành phần dữ liệu để biểu diễn:
MãsốMH, TênMH, Sốđvht, Khoa; Mỗi bản ghi HỌCPHẦN bao gồm 5 thành phần dữ liệu
để biểu diễn: MãsốHP, MãsốMH, Họckì, Năm, Têngiáoviên; Mỗi bản ghi ĐIỂM bao gồm
3 thành phần dữ liệu để biểu diễn: MãsốSV, TênHP, Điểm. Trong đó chúng ta phải chỉ rõ
Trần Hồng Diệp – 2009. 10
Nhập môn cơ sở dữ liệu – Đại cương

một kiểu dữ liệu của mỗi phần tử dữ liệu bên trong các bản ghi. Ví dụ, ta có thể đặc tả
HọtênSV là một dãy ký tự có độ dài không quá 30, MãsốSV là một số nguyên, ….
Để xây dựng cơ sở dữ liệu TRƯỜNG, chúng ta lưu giũ các dữ liệu về mỗi sinh
viên, mỗi môn học,…vào các bảng thích hợp. Để ý rằng các bản ghi trong các bảng khác
nhau có thể có mối quan hệ với nhau. Ví dụ, bản ghi đối với sinh viên có mã số 17 trong
bảng SINHVIÊN có liên quan đến hai bản ghi trong bảng ĐIỂM. Sự liên hệ này chỉ ra
rằng sinh viên có mã số là 17 tên là Nguyễn Nam và có điểm ở hai học phần cụ thể là học
phần có mã số 1031 được điểm 8 và học phần có mã số 1020 được điểm 6. Tương tự như
vậy, các bản ghi trong bảng MÔNHỌC có mối quan hệ với các bản ghi trong bảng
HỌCPHẦN; các bản ghi trong bảng HỌCPHẦN có mối quan hệ với các bản ghi trong
bảng ĐIỂM. Như vậy, một cơ sở dữ liệu thường bao gồm nhiều bảng dữ liệu có cấu trúc
khác nhau và giữa chúng tồn tại các mối quan hệ, làm cho cơ sở dữ liệu trở thành một
khối dữ liệu thống nhất không có bộ phận nào bị tách rời.
Sau khi đã xây dựng được cơ sở dữ liệu, các thao tác được thực hiện trên cơ sở dữ
liệu là để sử dụng nó. Các thao tác này bao gồm truy vấn và cập nhật cơ sở dữ liệu. Truy
vấn cơ sở dữ liệu là đưa ra các yêu cầu đối với cơ sở dữ liệu để lấy ra các thông tin cần
thiết. Ví dụ, chúng ta có thể có các truy vấn như : “ Liệt kê các môn học và điểm thi của
sinh viên Nguyễn Nam”, “ Đưa ra danh sách các sinh viên thi trượt môn cơ sở dữ liệu “.
Cập nhật cơ sở dữ liệu bao gồm việc thêm vào cơ sở dữ liệu bản ghi, xóa bỏ các bản ghi
hoặc sửa đổi các giá trị trong các bản ghi.
Trần Hồng Diệp – 2009. 11