Bài 1 Kiến thức nền tảng về Cơ sở dữ liệu
Mục tiêu của bài học:
Cuối bài học này, bạn có thể
Giải thích vì sao chúng ta cần có cơ sở dữ liệu
Giải thích sự phát triển của các hệ quản trị cơ sở dữ liệu
Liệt kê các mô hình cơ sở dữ liệu khác nhau
Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu
Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu quan hệ
• Toàn vẹn thực thể (entity integrity)
• Khóa chính (primary key)
• Khóa ngoại (foreign key)
• Các mối quan hệ và bậc của các mối quan hệ (relation and its degree)
Mô tả tóm tắt giới thiệu về SQL
Giới thiệu
Các tổ chức thường xuyên phải duy trì một khối lượng lớn dữ liệu, chúng là kết quả tạo ra từ các
hoạt động thường ngày. Một cơ sở dữ liệu (CSDL) là dạng được sắp xếp của các dữ liệu như
vậy. Một CSDL có thể chứa một hoặc nhiều mục thông tin có liên quan đến nhau gọi là các bản
ghi (record).
Bạn có thể hình dung CSDL là một tập hợp dữ liệu cho phép chúng ta đặt ra các câu hỏi với nó.
Ví dụ như, “Số điện thoại và địa chỉ của 5 bưu điện gần trường nhất là gì?”, hay “Chúng ta có
quyển sách nào về món ăn có lợi cho sức khỏe trong thư viện không? Nếu có thì chúng nằm ở
những tủ sách nào?”, hay “Hãy cho tôi xem hồ sơ nhân viên và các số liệu kinh doanh của 5 nhân
viên kinh doanh giỏi nhất trong quý này, nhưng không cần xem địa chỉ chi tiết của họ”.
Bài này sẽ đưa ra các khái niệm liên quan đến các CSDL và các hệ quản trị CSDL, khám phá các
mô hình CSDL khác nhau và giới thiệu ngôn ngữ SQL.
1.1.Vì sao Cơ sở dữ liệu là cần thiết?
Các CSDL được dùng để lưu trữ dữ liệu một cách có tổ chức và hiệu quả. Một CSDL cho phép
chúng ta quản lý dữ liệu một cách nhanh chóng và dễ dàng. Ví dụ, một công ty có thể lưu trữ
thông tin chi tiết về các nhân viên công ty trong nhiều CSDL khác nhau. Vào bất cứ thời điểm
nào, chúng ta có thể có thể truy xuất thông tin từ CSDL, thêm dữ liệu mới vào các CSDL và tìm
kiếm dữ liệu theo 1 số tiêu chí nào đó trong các CSDL này.
Quản lí cao cấp, ta chỉ cần sửa lại một nơi trong CSDL. Kết quả là, sự không nhất quán về dữ
liệu được giảm đi.
Dữ liệu được lưu trữ có thể được chia xẻ
Một CSDL trung tâm có thể đặt tại một máy chủ, chia xẻ cho một số người dùng chung. Theo
cách này, bất cứ lúc nào tất cả mọi người đều có thể truy cập đến thông tin dùng chung và
được cập nhật.
Có thể thiết lập và tuân theo các chuẩn mực
2 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
Việc giám sát tập trung đảm bảo việc có thể thiết lập và tuân theo một chuẩn mực nhất định
về cách biểu diễn thông tin. Ví dụ, tên của một nhân viên phải được biểu diễn dưới dạng ‘Mr.
Larry Finner’, trong đó
• Danh xưng (Mr.)
• Tên (Larry)
• Họ (Finner)
Chắc chắn rằng tất cả tên lưu trong CSDL sẽ theo cùng một định dạng nếu như các chuẩn
mực được thiết lập theo cách này.
Có thể duy trì được tính toàn vẹn dữ liệu
‘Duy trì tính toàn vẹn dữ liệu’ là đảm bảo sự chính xác trong CSDL. Ví dụ, khi một nhân
viên từ chức và rời khỏi cơ quan, xét trường hợp phòng Kế toán đã cập nhật CSDL của mình
nhưng phòng Nhân sự lại chưa cập nhật các hồ sơ của họ. Trong trường hợp này, dữ liệu
trong hồ sơ của cơ quan là không chính xác.
Việc giám sát tập trung CSDL giúp ta tránh được những sai sót này. Chúng ta có thể chắc
chắn là khi một bản ghi được xóa khỏi CSDL, tất cả các bản ghi liên quan trong các bảng
khác cũng được xóa.
Có thể thực hỉện việc bảo mật dữ liệu
Trong một hệ thống CSDL tập trung, không phải ai cũng được quyền được sửa đổi CSDL.
Quyền hạn này chỉ được giao cho một cá nhân có toàn quyền kiểm soát đối với CSDL. Người
này được gọi là Quản trị Cơ sơ dữ liệu hay DBA (Database Administrator).
DBA có khả năng thực hiện việc bảo mật bằng cách thiết đặt những giới hạn cho việc truy
cập dữ liệu. Tùy thuộc vào quyền được cấp cho mình, người sử dụng mới có thể thêm, sửa
Trong mô CSDL hình phân cấp, Department (phòng ban) được xem như là gốc, nốt cha cao nhất
của cây phân cấp. Các nốt dữ liệu Project và Employee là các nốt con, nốt lá trong mô hình cây
phân cấp. Một đường đi, xuất phát từ một nốt con bên trái qua nốt cha duyệt sang các nốt khác,
lặp đi lặp lại tiến trình này cho đến khi hết tất cả các nốt thì sẽ xác định được cấu trúc phân cấp
của cây.
Một nốt cha có thể có nhiều nốt con.
Một nốt con chỉ có một nốt cha.
Từ hình vẽ, ta có thể thấy rõ là trong một phòng ban, có thể có nhiều nhân viên và một phòng ban
có thể có nhiều dự án.
4 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
DEPARTMENT}D_NAMED_NUMBERMGRNAMEMGRSTARTDAT
E
PROJECT}PNAME}PNUMBER}
PLOCATION}}
EMPLOYEE}NAMESSNBDATEADD
RESS}
Ưu điểm của mô hình phân cấp
Các ưu điểm của mô hình phân cấp là:
1. Dữ liệu được giữ trong một CSDL dùng chung, do đó việc chia xẻ dữ liệu trở nên dễ dàng
hơn, và hệ quản trị CSDL sẽ cung cấp cũng như thắt chặt việc bảo mật
2. Hệ quản trị CSDL mang lại sự độc lập dữ liệu, điều làm giảm bớt nhân lực và chi phí trong
việc bảo trì chương trình.
3. Mô hình này rất hiệu quả khi CSDL chứa một khối lượng lớn dữ liệu. Ví dụ, một hệ thống tài
khoản khách hàng trong một ngân hàng là phù hợp với mô hình phân cấp bởi vì mỗi tài khoản
là đầu mối của một số giao dịch.
1.2.3 Mô hình CSDL mạng
Cùng với mô hình phân cấp, mô hình CSDL mạng (network model) là các mô hình dữ liệu chính
để hiện thực rất nhiều hệ quản trị CSDL thương mại. Trong mô hình CSDL mạng, cấu trúc dữ
liệu và ngôn ngữ truy vấn được định nghĩa và xây dựng bởi CODASYL (Conference on Data
Systems Language – Hội thảo về Ngôn ngữ của các hệ thống dữ liệu).
thường ngày của CSDL.
4. Ngôn ngữ Kiểm soát Dữ liệu (DCL) được dùng để quản lí quyền truy cập trên CSDL và các
thành phần của CSDL.
Cấu trúc cơ bản
Mô hình phân cấp là một trường hợp đặc biệt của mô hình mạng lưới. Tuy nhiên, thay vì dùng
cấu trúc cây chỉ có một nút cha, mô hình mạng lưới dùng lý thuyết tập hợp để đưa ra mô hình
phân cấp dạng cây với ngoại lệ là các bảng con được phép có nhiều hơn một cha.
Trong mô hình CSDL mạng, một mối quan hệ được gọi là một bộ (set). Mỗi bộ bao gồm ít nhất
hai loại bản ghi: bản ghi chủ, tương đương với nút cha trong mô hình phân cấp, và bản ghi thành
viên, tương đương với nút con trong mô hình phân cấp.
Các ưu điểm của một cấu trúc như vậy được chỉ ra như sau:
1. Việc thiết lập các mối quan hệ trong mô hình CSDL mạng lưới dễ hơn là trong mô hình phân
cấp.
2. Mô hình này tuân thủ chặt chẽ tính toàn vẹn dữ liệu của CSDL.
3. Mô hình này đủ để đạt được sự độc lập dữ liệu.
Các nhược điểm được chỉ ra như sau:
1. Khó thiết kế các CSDL theo mô hình này.
2. Lập trình viên phải rất quen thuộc với các cấu trúc bên trong để truy xuất CSDL.
3. Mô hình này cho ta một môi trường truy cập dữ liệu theo cách duyệt. Do đó, để di chuyển từ
A đến E trong chuỗi A-B-C-D-E, ta phải lần lượt đi qua B, C và D để đến được E.
6 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
1.2.4 Mô hình quan hệ
Một nhà khoa học tại trung tâm nghiên cứu của công ty IBM, Tiến sĩ E. F. Codd, không hài lòng
với cách thức mà các hệ quản trị CSDL thời đó xử lý các khối lượng dữ liệu lớn. Ông thấy cần
phải áp đặt các quy luật và nguyên tắc toán học để xử lý các vấn đề của các mô hình trước đó, ví
dụ như:
Sự toàn vẹn dữ liệu
Sự dư thừa dữ liệu
Vào tháng 6/1970, ông đăng bài báo với tựa đề ‘Một Mô hình Dữ liệu Quan hệ cho các Ngân
hàng Dữ liệu lớn được chia xẻ’ (‘A Relational Model of Data for large Shared Databanks’). Tại
điểm trên 50 trong bảng Điểm. Tiếp đó, so trùng mã sinh viên để tìm tên của các sinh viên trong
bảng Sinhviên. Kết quả được liệt kê trong bảng 1.3.
Mã Sinh viên Tên Sinh viên Điểm đạt được
2 John 87
4 Lisa 90
6 Peter 65
7 Joe 89
Bảng 1.3: Hiển thị Tên Sinh viên và Điểm
Chúng ta có thể thu được thông tin này nhờ vào hai sự việc: Thứ nhất, có một cột chung giữa hai
bảng, đó là Mã Sinh viên. Sau đó, dựa trên cột này, các bản ghi trong hai bảng khác nhau được
khớp lại và ta thu được thông tin được yêu cầu.
Trong mô hình quan hệ, dữ liệu được lưu trong các bảng. Mỗi bảng trong CSDL có một tên duy
nhất xác định nội dung của nó. Mỗi bảng có thể được định nghĩa là giao của các hàng và các cột.
Trong ví dụ trên đây, Mã sinh viên và Tên Sinh viên được lưu trong một bảng gọi là bảng Sinh
viên.
Ưu điểm của Mô hình Quan hệ
Mô hình CSDL quan hệ giúp lập trình viên có thời gian tập trung vào khía cạnh lô-gíc của CSDL
thay vì phải lưu tâm đến khía cạnh lưu trữ vật lý. Một trong các lý do khiến cho CSDL quan hệ
trở nên phổ biến là sự uyển chuyển trong việc truy vấn. Phần lớn các CSDL quan hệ sử dụng
ngôn ngữ truy vấn có cấu trúc (SQL). Các hệ quản trị CSDL quan hệ sử dụng SQL để dịch các
truy vấn của người dùng thành các đoạn mã cần thiết để lấy ra được các dữ liệu được yêu cầu. Mô
hình quan hệ dễ dùng đến mức ngay cả những người chưa được đào tạo cũng thấy dễ dàng để tạo
ra các câu truy vấn và các báo cáo tiện lợi, mà không cần phải suy nghĩ nhiều về nhu cầu phải
thiết kế một CSDL đúng đắn.
Nhược điểm của Mô hình Quan hệ
Mặc dù mô hình này che dấu đi tất cả những sự phức tạp bên trong của hệ thống, nhưng thao tác
với dữ liệu là chậm hơn các hệ thống CSDL khác.
1.3 Các khái niệm cơ bản về Cơ sở dữ liệu
Trước khi chúng ta thảo luận chi tiết về các hệ CSDL, chúng ta cần biết một số khái niệm cơ bản
này. Một hệ quản trị CSDL cho phép người dùng nhập, lưu trữ và quản lí dữ liệu.
1.3.5 Sự Dư thừa Dữ liệu và Tính toàn vẹn Dữ liệu
Ta có thể giảm bớt sự trùng lặp dữ liệu hay ‘dữ thừa dữ liệu’ bằng cách sử dụng một hệ quản trị
CSDL. Ví dụ, một hệ quản trị CSDL có thể đảm bảo mỗi bản ghi trong bảng là duy nhất thông
qua một trong các cột hay trường của bảng đó. Việc đảm bảo tính chính xác của dữ liệu trong
CSDL được gọi là duy trì tính toàn vẹn dữ liệu. Nếu một hoặc nhiều bảng có quan hệ với nhau
thông qua các dữ liệu mà chúng lưu giữ, thì mỗi khi có sự thay đổi dữ liệu trong một bảng, thì sự
thay đổi đó cũng phải được phản ánh sang bảng kia. Nếu không làm như vậy, dữ liệu được lưu trữ
sẽ không còn chính xác và CSDL sẽ mất đi tính toàn vẹn.
Ví dụ, trong một hệ thống thư viện, khi một hội viên không còn quyền hội viên nữa, xét trường
hợp chúng ta đã cập nhật bảng Hội viên (Member) nhưng chưa cập nhật bảng Chi tiết Sách (Book
Details), trong đó ghi lại các quyển sách đã cho hội viên mượn và trả lại. Như vậy, tuy là hội viên
đó không còn tham gia vào thư viện nữa, nhưng bảng Chi tiết Sách vẫn cho thấy những quyển
sách mà anh ta mượn.
Thậm chí có thể xảy ra việc vào cuối tháng, khi ta soạn báo cáo Thống kê tiền phạt (Fine or
Penalty Amount Collection), tên của hội viên đó vẫn nằm trong các báo cáo. Mâu thuẫn dạng này
có thể tránh được bằng cách phải đảm bảo tính toàn vẹn dữ liệu ngay từ đầu.
Kiến thức nền tảng về Cơ sở dữ liệu 9
1.4 Các Khái niệm Cơ bản về CSDL quan hệ
Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình quan hệ. Sau đây chúng ta sẽ thảo
luận các đặc tính của mô hình quan hệ.
Trước tiên, trong mô hình quan hệ, dữ liệu được lưu trong các mối quan hệ (relation). Để hiểu
được mối quan hệ, ta xét ví dụ sau đây. Dưới đây là hai danh sách khác nhau, một là danh sách
các quốc gia và thủ đô của chúng, danh sách kia liệt kê các quốc gia và loại tiền tệ mà các quốc
gia đó sử dụng.
Quốc gia Thủ đô
Greece Athens
Italy Rome
USA Washington
China Beijing
bảng thì được gọi là Khóa Chính (Primary Key).
Việc các bảng phải có một khóa chính là rất cần thiết. Một ví dụ thường dùng để nhấn mạnh tầm
quan trọng của khóa chính là ví dụ về học sinh trong một trường học. Nếu hai học sinh có tên
giống hệt nhau, giáo viên sẽ rất bối rối khi phải tính toán bảng điểm cho các học viên. Vì thế,
trong các trường hợp như thế này, mỗi học sinh sẽ được gán một mã số học sinh duy nhất sao cho
giáo viên không còn bối rối khi có hai học sinh trùng tên nhau. Mã số Học sinh (Roll Number)
trong trường hợp này là khóa chính và không được trùng lặp trong bất cứ hoàn cảnh nào.
Bảng 1.6: Khóa Chính
CSDL lưu giữ các tài nguyên rất quan trọng, đó là dữ liệu được toàn công ty sử dụng. Các dữ liệu
trong CSDL phải nhất quán trong mọi thời điểm. Có một số quy tắc toàn vẹn tổng quát và cụ thể
để duy trì sự nhất quán của CSDL. Các quy tắc toàn vẹn tổng quát thường có mặt trong phần lớn
các hệ quản trị CSDL, còn các quy tắc cụ thể chỉ áp dụng được cho một số CSDL. Khi dữ liệu
của một CSDL bị thay đổi, sự toàn vẹn dữ liệu trong CSDL có thể bị mất đi. Các ràng buộc toàn
vẹn dữ liệu sẽ giới hạn và kiểm tra tính hợp lệ của các giá trị dữ liệu được thêm vào hoặc sửa đổi
trong CSDL. Toàn vẹn thực thể (Entity Integrity) là một dạng của ràng buộc toàn vẹn dữ liệu.
Quy tắc Toàn vẹn Thực thể phát biểu rằng, không thành phần nào của khóa chính trong một
bảng được phép nhận giá trị NULL. Một khi thuộc tính của một quan hệ được định nghĩa là khóa
chính thì trách nhiệm của CSDL là từ chối giá trị NULL đối với thuộc tính đó.
Mỗi hàng trong bảng phải là duy nhất. Do đó khóa chính không thể chứa các giá trị NULL, vì các
hàng sẽ không còn là duy nhất nữa. Giá trị NULL là giá trị được điền vào cho thuộc tính khi ta
không nhập dữ liệu cho thuộc tính đó.
1.4.2 Toàn vẹn Tham chiếu và Khóa ngoại
Một Khóa ngoại là một cột hoặc sự kết hợp của một số cột mà giá trị của chúng là khóa chính
hoặc khóa duy nhất trong một bảng khác. Hai bảng được liên kết với nhau dùng một khóa ngoại.
Kiến thức nền tảng về Cơ sở dữ liệu 11
Mã số
Học sinh
Tên học sinh
1 Sam
2 John
6 65
7 89
Hình 1.3: Toàn vẹn Tham chiếu
Trong hình 1.3, khóa ngoại được chỉ ra bằng ký hiệu F.
Quy tắc Toàn vẹn Tham chiếu phát biểu rằng trong một CSDL không tồn tại bất kỳ một thuộc
tính khóa ngoại nào có giá trị không khớp với các giá trị tương ứng trong quan hệ mà thuộc tính
đó làm khóa chính. Hệ quản trị CSDL chịu trách nhiệm đảm bảo các giá trị trong thuộc tính khóa
ngoại là hợp lệ và có giá trị tương ứng trong quan hệ mà thuộc tính đó làm khóa chính. Một bản
ghi có thể được xóa khỏi bảng chính (Primary Table) chỉ nếu không còn các khóa ngoại tương
ứng trong bảng kia. Không được phép thêm các giá trị mới vào khóa ngoại.
1.4.3 Quan hệ và bậc
12 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
Mã
Sinh viên
Tên sinh viên
1 Sam
2 John
3 Jenny
4 Lisa
5 Penny
6 Peter
7 Joe
P
F
Theo mô hình quan hệ, mỗi quan hệ hoặc bảng được tạo từ nhiều bộ (tuple). Chúng còn được gọi
là các bản ghi hoặc các hàng - một thuật ngữ đã quen thuộc với chúng ta.
Dưới đây là một vài bộ là thành phần của bảng Tiền tệ (Currency).
CHN China Renminbi (Yuan)
FRN France Francs
Đặc tính của bộ được phản ánh thông qua các thuộc tính hay trường của bộ đó. Điều này đơn giản
1.5.2 Phân loại SQL
Các câu lệnh SQL có thể được chia thành nhiều loại khác nhau, được liệt kê như sau.
Kiến thức nền tảng về Cơ sở dữ liệu 13
DQL viết tắt của Ngôn ngữ Truy vấn Dữ liệu (Data Query Language), được dùng để lấy dữ
liệu từ CSDL và đặt thứ tự lên đó.
DML viết tắt của Ngôn ngữ Thao tác Cơ sở Dữ liệu (Database Manipulation Language).
Ngôn ngữ thao tác CSDL có các câu lệnh để thêm, xóa và sửa dữ liệu trong CSDL. Bộ tiền biên
dịch DML thông dịch các câu lệnh này và tương tác với bộ xử lý truy vấn để tạo ra mã thích hợp.
DCL hay Ngôn ngữ Điều khiển Dữ liệu (Data Control Language) được dùng để quản lí quyền
đối với CSDL và các đối tượng CSDL.
DDL hay Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language), các câu lệnh DDL được
chuyển thành một tập hợp các tập tin chứa thông tin về dữ liệu. Đây là CSDL hệ thống chứa các
thông tin về các tập tin được tạo, chúng chứa những trường nào, những người dùng nào có quyền
truy cập tập tin đó và các thông tin nào người dùng đó được truy cập. Thông tin này được lưu
trong từ điển dữ liệu, là nơi giữ thông tin về cấu trúc CSDL.
CCL hay Ngôn ngữ Ra lệnh Thông thường (Common Command Language) được dùng để tìm
kiếm một cách hiệu quả trong CSDL. Ta có thể dùng nó để xây dựng các thư viện trực tuyến, nơi
mà một khối lượng dữ liệu lớn phải được sàng lọc trong một khoảng thời gian ngắn.
Tổng kết
Quy trình bảo trì dữ liệu một cách thủ công là tẻ nhạt, tốn thời gian và có khả năng gây ra
sai sót.
Các CSDL được máy tính hóa cho ta những dữ liệu bền vững, đảm bảo tính toàn vẹn dữ liệu,
thiết lập các tiêu chuẩn, làm giảm sự thiếu nhất quán và dư thừa dữ liệu.
Một Hệ Quản trị Cơ sở dữ liệu có thể được định nghĩa như một tập hợp các bản ghi có quan
hệ với nhau và một bộ các chương trình để truy xuất và thao tác các bản ghi đó.
Chúng ta có thể phân biệt các CSDL dựa trên cách thức hoạt động và mô hình dữ liệu.
Một mô hình dữ liệu mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và cách
thức truy xuất dữ liệu từ vật chứa đó.
Có ba mô hình dữ liệu:
Kiểm tra mức tiến bộ của bạn
1._____________________ đề cập đến việc bảo đảm sự chính xác của dữ liệu trong CSDL.
2. Một __________________ mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và
cách thức truy xuất dữ liệu từ vật chứa đó.
3. Một _________________ có thể được định nghĩa như một tập hợp các bản ghi có quan hệ với
nhau và một bộ các chương trình dùng để truy cập và thao tác các bản ghi đó.
4. Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình __________.
5. Một cột hoặc một sự kết hợp của một số cột mà qua đó xác định duy nhất một bản ghi trong
một bảng thì được gọi là _________________.
6. Quy tắc ______________ phát biểu rằng không thành phần nào của khóa chính trong một bảng
được phép nhận giá trị NULL.
7. SQL là một ngôn ngữ ____________ tiêu chuẩn.
8. Hai bảng được liên kết với nhau bằng cách dùng khóa _________.
9. Khi dữ liệu đuợc thu thập và phân tích, nó mang lại _________________
10. ________ được sử dụng để quản lý quyền truy xuất vào cơ sở dữ liệu và những đối tượng trên
cơ sở dữ liệu.
16 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000