UBND TỈNH BÀ RỊA – VŨNG TÀU
TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ
GIÁO TRÌNH
MƠN HỌC : CƠ SỞ DỮ LIỆU
NGHỀ: CƠNG NGHỆ THƠNG TIN
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành kèm theo Quyết định số: /QĐCĐKTCN
ngày…….tháng….năm ................... của Hiệu trưởng Trường Cao đẳng Kỹ
thuật Cơng nghệ BR – VT)
1
BÀ RỊAVŨNG TÀU, NĂM 2020
2
TUN BỐ BẢN QUYỀN
Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh viên
nghề Cơng nghệ thơng tin trong trường Cao đẳng Kỹ thuật Cơng nghệ Bà Rịa
– Vũng Tàu. Chúng tơi đã thực hiện biên soạn tài liệu Cơ sở dữ liệu này.
Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học tập,
lưu hành nội bộ trong nhà trường nên các nguồn thơng tin có thể được phép
dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh
thiếu lành mạnh sẽ bị nghiêm cấm.
3
LỜI GIỚI THIỆU
Cơ sở dữ liệu là mơn học cơ sở của ngành Cơng nghệ thơng tin. Là nền tảng
để xây dựng, tổ chức dữ liệu trong thực tế.
Giáo trình Cơ sở dữ liệu được biên soạn cho sinh viên ngành Cơng nghệ
thơng tin, dựa trên chương trình đào tạo của mơn học này. Cung cấp cho
người học kiến thức và kỹ năng về để phân tích và thiết kế cơ sở dữ liệu.
Giáo trình gồm 12 bài với các nội dung được trình bày từ nội dung cơ bản đến
nâng cao. Trang bị đầy đủ kiến thức để người học có thể xây dựng, tổ chức
dữ liệu cấu trúc cho phần mềm. Đây có thể coi là nền tảng lý thuyết để xây
dựng hệ quản trị cơ sở dữ liệu phù hợp, tối ưu. Nội dung các bài như sau:
Bài mở đầu: Giới thiệu cơ sở dữ liệu
Bài 1: Khái niệm cơ bản trong mơ hình cơ sở dữ liệu quan hệ
Bài 2: Phép hội, phép giao, phép trừ trên đại số quan hệ
Bài 3: Phép tích đề các và phép chia trên đại số quan hệ
Bài 4: Phép chiếu và phép chọn trong đại số quan hệ
Bài 5: Phép kết nối trong đại số quan hệ
Bài 6: Xác định RBTV trên bối cảnh 1 quan hệ
Bài 7: Xác định RBTV trên bối cảnh nhiều quan hệ
Bài 8: Phụ thc hàm và hệ tiên đề Amstrong cho các phụ thuộc hàm
Bài 9: Xác định Bao đóng của tập thuộc tính
Bài 10: Xác định Khóa của lược đồ CSDL
Bài 11: Xác định Phủ tối thiểu của lược đồ CSDL
Bài 12: Xác định Dạng chuẩn của lược đồ CSDL
Xin được gửi lời cảm ơn tới các thầy cơ, đặc biệt là các thầy cơ khoa Cơng
nghệ thơng tin trường Cao đẳng kỹ thuật cơng nghệ tỉnh BRVT đã nhiệt tình
góp ý để tác giả có thể hồn thiện giáo trình về mặt nội dung và hình thức
trình bày.
BRVT, ngày …..........tháng…........... năm 2020
Tham gia biên soạn
Trần Thị Thuỳ Dung
4
MỤC LỤC
TRANG
5
GIÁO TRÌNH MƠ ĐUN
Tên mơ đun: Cơ sở dữ liệu
Mã mơ đun: MĐ11
Vị trí, tính chất, ý nghĩa và vai trị của mơ đun:
Vị trí:
Đây là mơn học cơ sở và là mơn bắt buộc của trình độ cao đẳng nghề cơng
nghệ thơng tin được bố trí sau khi sinh viên học xong các mơn chung, anh văn,
tin học cơ sở, lập trình cơ bản, Hệ quản trị cơ sở dữ liệu Access.
Tính chất:
Là mơn học nền tảng về thiết kế và lưu trữ dữ liệu, kiến thức cơ bản để
học được các mơn hệ quản trị cơ sở dữ liệu sau này: MS SQL, Oracle, My
SQL …
Mục tiêu của mơ đun:
Trình bày được các khái niệm về: Cơ sở dữ liệu, Các mơ hình dữ liệu, các
ngơn ngữ định nghĩa và xử lý dữ liệu.
Trình bày được khái niệm về quan hệ, thuộc tính, các loại khóa, lược đồ
quan hệ, bộ giá trị và phụ thuộc hàm, ràng buộc tồn vẹn của mơ hình cơ sở
dữ liệu quan hệ.
Trình bày được khái niệm phép hội, giao, trừ, tích dề các, chia trong đại số
tập hợp.
Trình bày được khái niệm phép chiếu, chọn, kết trong đại số quan hệ.
Trình bày được khái niệm bao đóng và thuật tốn tìm bao đóng của tập thuộc
tính.
Trình bày được hệ tiên đề Amstrong đối với các phụ thuộc hàm.
Trình bày được khái niệm khóa và các thuật tốn tìm khóa của lược đồ
CSDL.
Trình bày được khái niệm tập phụ thuộc hàm tương đương và phủ tối thiểu.
Trình bày được thuật tốn tìm phủ tối thiểu.
Trình bày được khái niệm các dạng chuẩn 1,2,3,BC.
Trình bày được phương pháp chuẩn hóa CSDL về dạng chuẩn 3.
Trình bày được phương pháp tối ưu hóa câu hỏi bằng đại số quan hệ.
Thực hiện được các phép tốn hội, giao,trừ, tích đề các, chia trên đại số tập
hợp.
6
Thực hiện được các phép chiếu, chọn, kết trên đại số quan hệ.
Phân biệt được các loại ràng buộc tồn vẹn.
Xác định được các ràng buộc tồn vẹn trong 1 CSDL.
Xác định được các phụ thuộc hàm trong CSDL.
Xác định được bao đóng của các tập thuộc tính trong 1 CSDL.
Tìm được khóa của lược đồ CSDL bằng thuật tốn tìm 1 khóa và thuật tốn
tìm tất cả các khóa.
Tìm được phủ tối thiệu của lược đồ quan hệ bằng thuật tốn tìm phủ tối
thiểu.
Xác định được dạng chuẩn của các lược đồ CSDL.
Chuẩn hóa được lược đồ CSDL về dạng chuẩn 3.
Tối ưu hóa được câu hỏi bằng đại số quan hệ.
Nội dung của mơ đun:
7
BÀI MỞ ĐẦU: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU
Mã bài: 11.00
Giới thiệu:
Cơ sở dữ liệu là gì và tại sao cần phải có Cơ sở dữ liệu? Cơ sở dữ liệu
(CSDL) là một hệ thống các thơng tin có cấu trúc, các dữ liệu có liên quan với
nhau được lưu trữ trên các thiết bị lưu trữ nhằm thỏa mãn u cầu khai thác
thơng tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng
dụng với mục đích khác nhau. Một cơ sở dữ liệu biểu thị một khía cạnh nào
đó của thế giới thực như hoạt động của một cơng ty, một nhà trường, một
ngân hàng… Vì vậy Cơ sở dữ liệu rất cần thiết trong cuộc sống hiện nay.
Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc sử
dụng máy tính. Có thể nói rằng cơ sở dữ liệu đóng vai trị quan trọng trong
mọi
lĩnh vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học,
thư
viện,…. Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ dụng.
Bài này sẽ giới thiệu một cách tổng quan về các khái niệm: cơ sở dữ liệu,
hệ quản trị cơ sở dữ liệu, hệ thống cơ sở dữ liệu và mơ hình cơ sở dữ liệu;
Mục tiêu:
Phân biệt được hệ cơ sở dữ liệu với hệ thống tập tin cổ điển.
Phân biệt được các mơ hình dữ liệu mạng, phân cấp, quan hệ, thực thể liên
kết và mơ hình hướng đối tượng.
Nghiêm túc, tự giác trong học tập
Nội dung chính:
1. Một số khái niệm
1.1. Cơ sở dữ liệu
1.1.1. Dẫn nhập
Lưu trữ thơng tin là nhu cầu rất thơng dụng trong cuộc sống của con người.
Từ thời xa xưa con người đã biết sử dụng những vật dụng có sẵn để lưu trữ
thơng tin như in hình lên đá, in lên các gốc cây, thanh gỗ. Nhưng hiện nay thì
việc lưu trữ đó đã trở nên q lỗi thời. Thay vào đó cơng nghệ thơng tin phát
triển, mọi người đều có khả năng mua máy tính và lưu trữ thơng tin trên máy
tính.
Lưu trữ dữ liệu dưới dạng hệ thống tập tin
8
Hình 1. Hệ thống tập tin dữ liệu Microsoft Office
Khi sử dụng máy tính thơng thường ta sẽ lưu trữ thơng tin dưới dạng file, và
mỗi file ta sẽ đặt nó trong những folder có tên khác nhau nhằm mục đích dễ
dàng tìm đến. Với cách này ta sẽ có những ưu điểm và nhược điểm như sau:
* Ưu điểm:
Với việc lưu trữ này thì rõ ràng khi ta cần là lưu ngay nên tốc độ triển khai
sẽ nhanh
Rõ ràng và trực quan với người khơng có chun mơn cơng nghệ thơng tin
* Khuyết điểm:
Dữ liệu khơng nhất qn, đơi khi có trường hợp nhiều người sử dụng một
file và sẽ xảy ra hiện tượng lưu đè.
Trùng lặp dữ liệu nhiều.
Tính chia sẻ dữ liệu khơng cao (kém)
Hiện nay các cá nhân sử dụng máy tính đa số sử dụng cách lưu trữ này để lưu
trữ thơng tin cho riêng mình, nên nói về sự phổ biến thì cách này phổ biến
nhất, tuy nhiên với những hệ thống dữ liệu lớn thì sẽ có rất nhiều hạn chế
như việc truy xuất tìm kiếm dữ liệu sẽ chậm, khó bảo quản,... Với những
hạn chế trên thì khái niệm cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu được ra
đời.
1.1.2. Khái niệm Cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) là một hệ thống các thơng tin có cấu trúc, các dữ liệu
có liên quan với nhau được lưu trữ trên các thiết bị lưu trữ nhằm thỏa mãn
u cầu khai thác thơng tin đồng thời của nhiều người sử dụng hay nhiều
chương trình ứng dụng với mục đích khác nhau..
Ví dụ: Để quản lý việc học tập trong một trường học, các dữ liệu là các
thơng tin về sinh viên, về các mơn học, điểm thi….Chúng ta tổ chức các dữ
liệu đó thành các bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần
mềm máy tính để lưu giữ chúng trên máy tính. Ta có một tập các dữ liệu có
liên quan đến nhau và mang nhiều ý nghĩa, đó là một cơ sở dữ liệu.
9
1.1.3. Tính chất
Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt
động của một cơng ty, một nhà trường, một ngân hàng… Những thay đổi của
thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ
liệu. Những thơng tin được đưa vào trong cơ sở dữ liệu tạo thành một khơng
gian cơ sở dữ liệu hoặc là một “thế giới nhỏ” (miniworld) .
Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic
và mang một ý nghĩa cố hữu nào đó. Một cơ sở dữ liệu khơng phải là một tập
hợp tuỳ tiện.
Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng.
Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác
định phù hợp với mối quan tâm của người sử dụng. Nói cách khác, một cơ sở
dữ liệu có một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự
kiện trong thế giới thực và một nhóm người quan tâm tích cực đến các nội
dung của nó.
Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi. Có những
cơ sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc
quản lý lương ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng
rất lớn (như các cơ sở dữ liệu phục vụ cho việc tính cước điện thoại, quản
lý nhân sự trên một phạm vi lớn). Các cơ sở dữ liệu phải được tổ chức quản
lý sao cho những người sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và
lấy dữ liệu ra khi cần thiết. Một cơ sở dữ liệu có thể được tạo ra và duy trì
một cách thủ cơng và cũng có thể được tin học hố.
1.1.4. Ư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 và do đó bảo đảm được
tính nhất qn và tồn vẹn dữ liệu.
Đảm bảo dữ liệu có thể 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.
1.1.5. Những vấn đề Cơ sở dữ liệu cần giải quyết
Tính chủ quyền dữ liệu: được thể hiện ở phương diện an tồ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. Điều này có nghĩa là người khai thác CSDL phải có nhiệm 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 phép khai thác dữ liệu một cách đồng thời, nên cần thiết phải có
một cơ chế bảo mật và phân quyền hạn khai thác CSDL. Các hệ điều hành
nhiều người sử dụng hay hệ điều hành mạng cục bộ đều có cung cấp cơ chế
này
10
Tranh chấp dữ liệu: Nhiều người được phép truy nhập cùng một lúc vào tài
ngun dữ liệu của CSDL với những mục đích khác nhau, do đó cần thiết
phải có một cơ chế ưu tiên khi truy nhập dữ liệu. Cơ chế ưu tiên có thể được
thực hiện bằng việc cấp quyền ưu tiên cho từng người khai thác.
Đảm bảo dữ liệu khi có sự cố: Việc quản lý dữ liệu 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, hay một phần đĩa lưu trữ CSDL bị hư,… một số hệ điều hành mạng có
cung cấp dịch vụ sao lưu ảnh đĩa cứng, 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 bảo CSDL
ln ổn đị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ác sự cố bất ngờ xảy ra.
1.1.6. Đối tượng sử dụng Cơ sở dữ liệu
* Người quản trị CSDL: thực hiện các cơng việc quản lý và bảo trì CSDL như
sau:
Sự chính xác và tồn vẹn dữ liệu, và bảo mật dữ liệu.
Thực hiện các cơng việc sao lưu và phục hồi dữ liệu.
Giữ liên lạc thường xun với người lập trình, người dùng, người phát triển
ứng dụng để kịp thời cập nhật CSDL.
Bảo đảm sự hoạt động của CSDL và HQTCSDL.
* Người phát triển và lập trình ứng dụng là những người rành về máy tính có
trách nhiệm thiết kế và tạo các chương trình ứng dụng dành cho người dùng
cuối cùng.
* Người dùng cuối: là những người có thể khơng rành về máy tính nhưng
nắm rõ về các nghiệp vụ mà ứng dụng triển khai.
1.2. Hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu (HQTCSDL) là:
Một tập các phần mềm quản lý cơ sở dữ liệu và cung cấp các dịch vụ xử lý
cơ sở dữ liệu cho các những người phát triển ứng dụng và người dùng cuối.
HQTCSDL cung cấp một giao diện giữa người sử dụng và dữ liệu.
HQTCSDL biến đổi cơ sở dữ liệu vật lý thành cơ sở dữ liệu logic.
Hiện nay trên thị trường phần mềm đã có những hệ quản trị cơ sở dữ liệu hỗ
trợ được nhiều tiện ích như: MS Access, SQL Server, Oracle, …
Mỗi hệ quản trị cơ sở dữ liệu đều được cài đặt dựa trên một mơ hình dữ liệu
cụ thể. Dù là dựa trên mơ hình dữ liệu nào, một hệ quản trị cơ sở dữ liệu
cũng phải hội đủ các yếu tố sau:
Yếu tố 1: Ngôn ngữ giao tiếp giữa người sử dụng và CSDL, bao gồm :
11
Ngơn ngữ mơ tả dữ liệu (DDL – Data Definition Language): Để cho phép
khai báo cấu trúc của cơ sở dữ liệu, khai báo các mối liên hệ của dữ liệu và
các quy tắc quản lý áp đặt lên các dữ liệu đó.
Ngơn ngữ thao tác dữ liệu (DML – Data Manupulation Language): Cho phép
người sử dụng có thể cập nhật dữ liệu (thêm/sửa/xố)
Ngơn ngữ truy vấn dữ liệu ( Structure Querry Language): Cho phép người
khai thác sử dụng để truy vấn các thơng tin cần thiết trong cơ sở dữ liệu.
Ngơn ngữ quản lý dữ liệu (DCL – Data Control Language): Cho phép những
người quản trị hệ thống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo
mật thơng tin và cấp quyền hạn khai thác cơ sở dữ liệu cho người sử dụng.,
…
Yếu tố 2: Từ điển dữ liệu:
Dùng để mơ tả các ánh xạ liên kết, ghi nhận các thành phần cấu trúc của cơ
sở dữ liệu, các chương trình ứng dụng, mật mã, quyền hạn sử dụng,…
Yếu tố 3: Cơ chế giải quyết vấn đề tranh chấp dữ liệu:
Mỗi hệ quản trị cơ sở dữ liệu cũng có thể cài đặt một cơ chế riêng để giải
quyết các vấn đề này. Một số biện pháp sau đây thường được sử dụng: thứ
nhất: cấp quyền ưu tiên cho từng người sử dụng; thứ hai: Đánh dấu u cầu
truy xuất dữ liệu, phân chia thời gian, người nào có u cầu trước thì có
quyền truy xuất dữ liệu trước,…
Yếu tố 4: Hệ quản trị cơ sở dữ liệu cũng phải có cơ chế sao lưu
(backup) và phục hồi (restore) dữ liệu khi có sự cố xảy ra.
Điều này có thể thực hiện sau một thời gian nhất định hệ quản trị cơ sở dữ
liệu sẽ tự động tạo ra một bản sao cơ sở dữ liệu, cách này hơi tốn kém, nhất
là đối với cơ sở dữ liệu lớn.
Yếu tố 5: Hệ quản trị CSDL phải cung cấp một giao diện thân thiện,
dễ sử dụng.
Yếu tố 6: Tính độc lập giữa dữ liệu và chương trình:
Khi có sự thay đổi dữ liệu (như sửa đổi cấu trúc lưu trữ các bảng dữ liệu,
thêm các chỉ mục (Index) ...) thì các chương trình ứng dụng (Application) đang
chạy trên Cơ sở dữ liệu đó vẫn khơng cần phải được viết lại, hay cũng
khơng làm ảnh hưởng đến những người sử dụng khác.
* Các mức biểu diễn một cơ sở dữ liệu:
Mức trong: (mức vật lý – Physical) là mức lưu trữ cơ sở dữ liệu. Thể hiện
vấn để cần giải quyết, dữ liệu gì, lưu trữ như thế nào, ở đâu, cần các chỉ
mục gì, Truy xuất tuần tự hay ngẫu nhiên. Mức này dành cho người quản trị
và người sử dụng chun mơn.
12
Mức quan niệm: (Conception hay Logical) cần phải lưu trữ bao nhiêu loại
dữ liệu, là dữ liệu gì, mối quan hệ
Mức ngồi: của người sử dụng và các chương trình ứng dụng.
2. Các mơ hình dữ liệu
Mơ hình dữ liệu là sự trừu tượng hố mơi trường thực. Mỗi loại mơ hình dữ
liệu đặc trưng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân
tích thiết kế cơ sở dữ liệu. Mỗi loại mơ hình dữ liệu đều có những ưu điểm
và những mặt hạn chế của nó, nhưng vẫn có những mơ hình dữ liệu nổi trội
và được nhiều người quan tâm nghiên cứu.
2.1. Mơ hình dữ liệu mạng
Mơ hình dữ liệu mạng (Network Data Model) cịn được gọi tắt là mơ hình
mạng hoặc mơ hình lưới (Network Model) là mơ hình được biểu diễn bởi một
đồ thị có hướng. Trong mơ hình này người ta đưa vào các khái niệm: mẫu tin
hay bản ghi (Record), loại mẫu tin (Record Type) và loại liên hệ (Set Type).
* Mẫu tin: mơ tả 1 đối tượng trong thế giới thực.
Ví dụ: (‘NV001’,’Nguyen Lam’,’Nam’,’10/10/1970’,’Dong Nai’)
* Loại mẫu tin: Là 1 tập các mẫu tin có cùng tính chất.
Ví dụ: Tập hợp các mẫu tin về nhân viên trong cơng ty tạo thành NHANVIEN
Ký hiệu:
* Loại liên hệ: Mơ tả sự liên kết giữa 1 loại mẫu tin chủ và 1 loại mẫu tin
thành viên
Ví dụ: Nhân viên (tham gia) cơng việc
Ký hiệu: Hình elip bên trong được ghi tên
* Bản số: chỉ ra số lượng các mẫu tin tham gia trong mối liên hệ
(1:1) (onetoone): mỗi mẫu tin của loại mẫu tin chủ kết hợp v ới đúng 1
mẫu tin của loại mẫu tin thành viên.
(1:n) (onetomany): mỗi mẫu tin của loại mẫu tin chủ kết hợp với 1 hay
nhiều mẫu tin thành viên.
(n:1) (manytoone): nhiều mẫu tin của loại mẫu tin chủ kết hợp v ới đúng 1
mẫu tin của loại mẫu tin thành viên.
Recursive: một loại mẫu tin chủ cũng có thể đồng thời là loại mẫu tin thành
viên với chính nó. Loại liên hệ này là Đệ quy
13
Ví dụ:
Hình 2: Mơ hình dữ liệu mạng
Đặc điểm mơ hình dữ liệu mạng:
Tương đối đơn giản
Dễ sử dụng
Khơng thích hợp biểu diễn CSDL có quy mơ lớn
Khả năng diễn đạt ngữ nghĩa kém
2.2. Mơ hình phân cấp
Mơ hình dữ liệu phân cấp (Hierachical Data Model) được gọi tắt là mơ hình
phân cấp (Hierachical Model): Mơ hình là một cây (Tree), trong đó mỗi nút
của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với
nhau theo một mối quan hệ xác định.
* Loại mẫu tin:
(Recorde Type) là mẫu đặc trưng cho 1 loại đối tượng riêng biệt. Chẳng hạn
như trong việc quản lý nhân sự tại một đơn vị, đối tượng cần phản ảnh của
thế giới thực có thể là Phịng, Nhân viên, Cơng việc, lý lịch ... do đó có các
loại mẫu tin đặc trưng cho từng đối tượng này. Trong đồ thị biểu diễn mơ
hình mạng mỗi loại mẫu tin được biểu diễn bởi một hình chữ nhật, một thể
hiện (Instance) của một loại mẫu tin được gọi là bản ghi. Trong ví dụ trên
loại mẫu tin Phịng có các mẫu tin là các phịng, ban trong đơn vị; loại mẫu tin
nhân viên có các mẫu tin là các nhân viên đang làm việc tại các phịng ban của
cơ quan...
* Loại mối liên hệ:
Kiểu liên hệ là phân cấp, theo cách:
Mẫu tin thành viên chỉ đóng vai trị thành viên của một mối liên hệ duy nhất,
tức là nó thuộc một chủ duy nhất. Như vậy, mối liên hệ từ mẫu tin chủ tới
14
các mẫu tin thành viên là 1¸n, và từ mẫu tin (hay bản ghi record) thành viên
với mẫu tin chủ là 1¸1.
Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất.
* Ví dụ
Dưới đây là một ví dụ về mơ hình phân cấp quản lý nhân sự của một cơng ty
Hình.3: Mơ hình phân cấp quản lý nhân sự
2.3. Mơ hình quan hệ
Mơ hình này đượcc E.F Codd đưa vào đầu những năm 70, mơ hình này dựa
trên lý thuyết tập hợp và đại số quan hệ. Vì tính chất chặt chẽ của tốn học
về lí thuyết tập hợp nên mơ hình này đã mơ tả dữ liệu một cách rõ ràng, mềm
dẻo và là mơ hình thơng dụng nhất hiện nay. Hầu hết các hệ QT cơ sở dữ
liệu đều tổ chức dữ liệu theo mơ hình dữ liệu quan hệ. Trong đó dữ liệu
được tổ chức dưới dạng bảng các phép tốn thao tác trên dữ liệu dựa trên lý
thuyết tập hợp của tốn học. Tập dữ liệu được tổ chức theo cấu trúc của mơ
hình dữ liệu quan hệ gọi là cơ sở dữ liệu quan hệ.
Dữ liệu bảng được thể hiện như sau:
Hình 4: Thể hiện dữ liệu trong bảng
Ví dụ: Mơ hình cơ sở dữ liệu quan hệ
SINHVIEN (MASV, HOTENSV, NU, NGAYSINH, NOISINH, TINH,
MALOP)
LOP (MALOP,TENLOP, MAKHOA)
15
2.4. Mơ hình thực thể mối kết hợp (Entity Relationship Diagram ERD)
Mối liên hệ giữa các tập thực thể là một danh sách có thứ tự của các tập thực
thể. Một tập thực thể đặc biệt có thể xuất hiện nhiều lần trong danh sách.
Danh sách các tập thực thể này là khái niệm ở mức lược đồ của một mối liên
hệ.
Mơ hình thực thể quan hệ được CHEN giới thiệu năm 1976 và được ANSI
cơng nhận mơ hình chuẩn năm 1988. Mơ hình này được sử dụng nhiều trong
thiết kế dữ liệu mức khái niệm, dùng để mơ hình hố dữ liệu
Các khái niệm trong ERD gồm: Loại thực thể, thực thể, thuộc tính, mối kết
hợp, vai trị, bản số
a. Loại thực thể (Entity Type) là những loại đối tượng, sự vật của thế giới
thực tồn tại cụ thể cần được quản lý. Bắt buộc phải được đặt tên bằng Danh
từ hoặc cụm danh từ. Được biểu diễn bằng hình chữ nhật hoặc hình chữ
nhật được bo góc.
b. Thực thể (Entity) là một thể hiện của loại thực thể.
Ví dụ: Trong loại thực thể HOCSINH có thực thể:
(HS001, ‘Nguyễn Văn A’, ’20/11/1993’, ‘Nam’).
(HS002, ‘Trần Thị C’, ’02/10/1992’, ‘Nữ’).
* Lưu ý: Khái niệm Loại thực thể được sử dụng nhiều hơn hẳn khái niệm
Thực thể trong mơ hình này. Vì vậy, một số tài liệu sử dụng tên Thực thể
thay cho Loại thực thể để rút gọn.
c. Loại kết hợp (Mối quan hệ): là mối kết hợp, sự liên kết giữa hai hay
nhiều loại thực thể. Được biểu diễn bằng hình thoi. Tên mối quan hệ là
Động từ hoặc Cụm động từ
Ví dụ:
Hình 5: Minh hoạ mối kết hợp giữa thực thể Khachhang và nuocgiaikhat
Khách hàng và nước giải khát là Loại thực thể (Thực thể)
Đặt: Là mối quan hệ giữa 2 thực thể này
Có các loại mối quan hệ như sau: MQH đa phân, MDQ phản thân
Phản thân
Đa phân
Hình 6: Minh hoạ mối kết hợp đa phân và phản thân
16
d. Bản số của nhánh là số lượng tối thiểu và số lượng tối đa mà thực thể
tham gia vào mối kết hợp. Ký hiệu (min,max) – (1,n).
Hình 7: Minh hoạ mối kết hợp có bản số
e. Thuộc tính: là những tính chất đặc trưng của một loại thực thể/mối kết
hợp.
Ký hiệu:
Ví dụ:
Hình 8: Minh hoạ thuộc tính của thực thể
Thuộc tính nhận diện: là thuộc tính để phân biệt thực thể này với thực thể
kia trong tập thực thể.
Thuộc tính mơ tả: là thuộc tính cung cấp thơng tin chi tiết hơn về thực thể
trong tập thực thể.
Đơn trị (Simple): mỗi thực thể chỉ có một giá trị ứng với thuộc tính. Ví dụ:
MAHV, HOTEN
Đa trị (Multi Value): thuộc tính có thể có nhiều giá trị đối với một thực thể.
Với những thuộc tính này cần sử dụng bản số
Ví dụ:
Hình 9: Minh hoạ thuộc tính đa trị
Học vị là thuộc tính đa trị, một người có thể có nhiều học vị như tiến sĩ, giáo
sư, thạc sĩ,...
Đa hợp (Composite): thuộc tính được tạo từ nhiều thành phần.
Ví dụ: DIACHI (Sonha, tenduong, phuong, quan)
Chú ý: các thuộc tính đa trị và đa hợp có thể lồng nhau tùy ý. Ví dụ:
{BANGCAP(TRUONGCAP, KETQUA, CHUYENNGANH)}
Thuộc tính kết hợp: Là nhóm thuộc tính có liên hệ
17
Hình 10: Minh hoạ thuộc tính kết hợp
f. Khóa: Khóa của loại thực thể là thuộc tính để nhận dạng thực thể.Căn cứ
vào đó để xác định duy nhất một thực thể.
Ví dụ: Mỗi HOCSINH có một mã duy nhất để phân biệt học sinh này với
học sinh kia.
Việc thành lập mơ hình thực thể kết hợp cho một ứng dụng tin học có thể
tiến hành theo các bước sau:
Bước 1.Xác định danh sách các loại thực thể
Bước 2.Xác định các mối kết hợp giữa các loại thực thể để phác thảo
mơ hình.
Bước 3.Lập bản số của các mối kết hợp.
Ví dụ:
Bài tốn quản lý điểm của sinh viên được phát biểu sơ bộ như sau:
Mỗi sinh viên cần quản lý các thơng tin như: họ và tên (HOTENSV),ngày
tháng năm sinh (NGAYSINH), giới tính (NU), nơi sinh(NƠISINH), hộ khẩu
thường trú (TINH). Mỗi sinh viên được cấp một mã số sinh viên duy
nhất (MASV) để phân biệt với mọi sinh viên khác của trường, mỗi sinh viên
chỉ thuộc về một lớp nào đó.
Mỗi lớp học có một mã số lớp (MALOP) duy nhất để phân biệt với tất cả
các lớp học khác trong trường: có một tên gọi (TENLOP) của lớp, mỗi lớp
chỉ thuộc về một khoa.
Mỗi khoa có một tên gọi (TENKHOA) và một mã số duy nhất (MAKHOA)
để phân biệt với các khoa khác.
Mỗi mơn học có một tên gọi (TENMH) cụ thể, được học trong một số
đơn vị học trình (DONVIHT) ) và ứng với mơn học là một mã số duy
nhất (MAMH) để phân biệt với các môn học khác.
Mỗi giảng viên cần quản lý các thông tin: họ và tên (HOTENGV), cấp học
vị (HOCVI), thuộc một chuyên ngành (CHUYENNGANH) và được gán cho
một mã số duy nhất gọi là mã giảng viên(MAGV) để phân biệt với các
giảng viên khác.
Mỗi giảng viên có thể dạy nhiều mơn ở nhiều khoa, nhưng chỉ thuộc về
18
sự quản lý hành chính của một khoa.
Mỗi sinh viên với một mơn học được phép thi tối đa 3 lần, mỗi lần thi
(LANTHI), điểm thi (DIEMTHI).
Mỗi môn học ở mỗi lớp học chỉ phân công cho một giảng viên dạy (tất
nhiên là một giảng viên thì có thể dạy nhiều mơn ở một lớp).
Lập mơ hình thực thể kết hợp cho bài tốn trên.
Bài hướng dẫn giải
2.5. Cách chuyển đổi từ mơ hình thực thể kết hợp sang mơ hình quan hệ
Mỗi thực thể chuyển thành một quan hệ cùng tên và danh sách thuộc
tính. Thuộc tính khố trở thành khố chính của quan hệ
Hình 11: Minh hoạ chuyển đổi tập thực thể.
Mối kết hợp 1 – 1
Thuộc tính khố bên này làm khố ngoại bên kia hoặc ngược lại. Bên dưới
là ví dụ chuyển mối kết hợp 1 – 1
19
Hình 12: Minh hoạ mối quan hệ 1 – 1
Mối kết hợp 1 – n
Hình 13: Minh hoạ mối quan hệ 1 – n
Mối kết hợp n – n
Chuyển thành quan hệ mới có khố chính gồm 2 thuộc tính khố của 2 quan
hệ; thuộc tính mối kết hợp (nếu có) trở thành thuộc tính của quan hệ mới. Ví
dụ
Hình 14: Minh hoạ mối quan hệ n – n
Mối kết hợp 3 ngơi (Ba thực thể tham gia vào mối kết hợp)
20
Chuyển thành quan hệ mới, có khố chính gồm 3 thuộc tính khố của 3 thực
thể tham gia mối kết hợp. Thuộc tính mối kết hợp (nếu có) trở thành thuộc
tính của quan hệ mới. Ví dụ
Hình 15: Minh hoạ mối quan hệ 3 ngơi
Thuộc tính đa trị (Thuộc tính có nhiều giá trị cho một thể hiện)
Chuyển thành quan hệ mới có khố chính gồm thuộc tính đa trị và thuộc tính
khố của thực thể. Sau khi chuyển thành quan hệ mới, thuộc tính đa trị sẽ
biến mất khỏi thực thể cũ. Ví dụ
Hình 16: Minh hoạ thuộc tính đa trị
2.6. Mơ hình hướng đối tượng
Mơ hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đời từ cuối
những năm 80 và đầu những năm 90. Đây là loại mơ hình tiên tiến nhất hiện
nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương
pháp lập trình hướng đối tượng, nó sử dụng các khái niệm như lớp (class), sự
kế thừa (inheritance), kế thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi
inheritance). Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói
(encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (Reusability).
21
Lớp (class) là một kiểu dữ liệu có cấu trúc bao gồm các thành phần dữ liệu
và các phương thức xử lý thao tác trên cấu trúc dữ liệu đó. Nó là một kiểu
(hay cấu trúc) dữ liệu được trừu tượng hóa, bởi vì các tác động (cịn gọi là
các phương thức method) là để phục vụ hoặc thao tác trên kiểu dữ liệu này.
Dữ liệu và phương thức hịa quyện vào nhau thành một thể thống nhất: dữ
liệu cần có những cách thức xử lý thỏa đáng, và phương thức xử lý được đưa
vào trong kiểu dữ liệu đó là để phục vụ cho các đối tượng có cấu trúc như
thế. Người ta gọi sự thống nhất đó là sự đóng gói.
Phương pháp tiếp cận hướng đối tượng trong mơ hình dữ liệu mặc dù cịn
mới mẻ nhưng hiện nay đang được nhiều người quan tâm nghiên cứu phát
triển và áp dụng. Các hệ quản trị cơ sở dữ liệu hướng đối tượng hiện nay
vẫn chưa nhiều, một số cịn chưa thuần nhất (nghĩa là việc lập trình là hướng
đối tượng nhưng cơ sở dữ liệu vẫn chủ yếu dựa trên mơ hình quan hệ).
CÂU HỎI BÀI TẬP:
Câu hỏi:
1.1. Định nghĩa các thuật ngữ : cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ
sở dữ liệu, từ điển cơ sở dữ liệu, mơ hình cơ sở dữ liệu.
1.2. Nêu các tính chất của một cơ sở dữ liệu
1.3. Nêu các chức năng của một hệ quản trị cơ sở dữ liệu
1.4. Nêu các mơ hình dữ liệu.
1.5. Liệt kê những người có liên quan đến hệ cơ sở dữ liệu
1.6. Xây dựng mơ hình ER cho cơ sở dữ liệu:
1.7. Nêu quy tắc chuyển từ mơ hình ER sang mơ hình quan hệ.
Bài tập:
Bài số 1: QUẢN LÝ HỌC VIÊN Ở MỘT TRUNG TÂM TIN HỌC
Trung tâm tin học KTCT thường xun mở các lớp tin học ngắn hạn và dài
hạn. Mỗi lớp ngắn hạn có một hoặc nhiều mơn học (chẳng hạn như lớp Tin
học văn phịng thì có các mơn : Word, Power Point, Excel, cịn lớp lập trình
Pascal thì chỉ học một mơn Pascal). Các lớp dài hạn (chẳng hạn như lớp kỹ
thuật viên đồ hoạ đa truyền thơng, lớp kỹ thuật viên lập trình, lớp kỹ thuật
viên phần cứng và mạng,… ) thì có thể học nhiều học phần và mỗi học phần
có thể có nhiều mơn học.
Mỗi học viên có một mã học viên(MAHV) duy nhất và chỉ thuộc về một lớp
duy nhất (nếu học viên cùng lúc học nhiều lớp thì ứng với mỗi lớp, học viên
đó có một MAHV khác nhau). Mỗi học viên xác định họ tên (HOTEN), ngày
sinh (NGAYSINH),nơi sinh (NOISINH), phái nam hay nữ (PHAI), nghề
nghiệp (NGHENGHIEP) nghề nghiệp là SINH VIÊN, GIÁO VIÊN, KỸ
SƯ…
Trung tâm KTCT có nhiều lớp, mỗi lớp có một mã lớp duy nhất (MALOP),
mỗi lớp xác định các thơng tin: tên lớp (TENLOP), thời khố biểu, ngày khai
22
giảng (NGAYKG), học phí (HOCPHI).Chú ý rằng tại một thời điểm, trung
tâm có thể mở nhiều lớp cho cùng một chương trình học. Với các lớp dài hạn
thì ngày khai giảng được xem là ngày bắt đầu của mỗi học phần và HỌC PHÍ
là học phí của mỗi học phần, với lớp ngắn hạn thì HỌC PHÍ là học phí của
tồn khố học đó.
Trung tâm có nhiều mơn học, mỗi mơn học có mã mơn học (MAMH) duy
nhất, mỗi mơn học xác định tên môn học(TENMH), số tiết lý thuyết
(SOTIETLT), số tiết thực hành (SOTIETTH).
Mỗi học viên ứng với mỗi mơn học có một điểm thi(DIEMTHI) duy nhất.
Mỗi lần đóng học phí, học viên sẽ được trung tâm giao cho một phiếu biên lai
thu tiền, mỗi biên lai có một số biên lai duy nhất để quản lý.
Bài số 2: QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN
Một thư viện tổ chức việc cho mượn sách như sau:
Mỗi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các
quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có
nhiều tập thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các
thơng tin khác như : tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất
bản (NHAXB), năm xuất bản (NAMXB).
Mỗi độc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã
độc giả (MAĐG), cùng với các thơng tin khác như : họ tên (HOTEN), ngày
sinh (NGAYSINH), địa chỉ (ĐIACHI), nghề nghiệp(NGHENGHIEP).
Cứ mỗi lượt mượn sách, độc giả phải đăng ký các quyển sách cần mượn vào
một phiếu mượn, mỗi phiếu mượn có một số phiếu mượn (SOPM) khác
nhau, mỗi phiếu mượn xác định các thông tin như: ngày mượn sách
(NGAYMUON), mã độc giả. Các các quyển sách trong cùng một phiếu mượn
khơng nhất thiết phải trả trong một lần. Mỗi quyển sách có thể thuộc nhiều
phiếu mượn khác nhau (tất nhiên là tại các thời điểm khác nhau).
Bài số 3: QUẢN LÝ TỔ CHỨC THI TỐT NGHIỆP
Việc tổ chức kỳ thi tốt nghiệp của một khoa như sau:
Mỗi thí sinh có một Mã số sinh viên duy nhất (MASV), mỗi MASV xác định
được các thơng tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), nơi sinh,
nữ,phái, dân tộc. Mỗi lớp có một mã lớp (MALOP) duy nhất , mỗi mã lớp xác
định các thơng tin: tên lớp (TENLOP), mỗi lớp chỉ thuộc sự quản lý của một
khoa nào đó. Mỗi khoa có một mã khoa duy nhất (MAKHOA), mỗi mã khoa
xác định tên khoa (TENKHOA). Mỗi thí sinh đều phải dự thi tốt nghiệp ba
mơn. Mỗi mơn thi có một mã mơn thi (MAMT) duy nhất, mỗi mã mơn thi xác
định các thơng tin: tên mơn thi (TENMT), thời gian làm bài – được tính bằng
phút (PHUT), ngày thi (NGAYTHI), buổi thi (BUOITHI), mơn thi này là mơn
lý thuyết hay thực hành (LYTHUYET). Chú ý rằng, nếu một mơn học được
23
cho thi ở nhiều hệ thì được đặt MAMT khác nhau (chẳng hạn cả trung cấp và
cao đẳng ngành cơng nghệ thơng tin đều thi mơn Cơ Sở Dữ Liệu), để diễn tả
điều này, mỗi mã mơn học cần phải được ghi chú (GHICHU) để cho biết
mơn thi đó dành cho khối nào trung cấp, hay cao đẳng). Mỗi thí sinh ứng với
một mơn thi có một điểm thi (DIEMTHI) duy nhất.
Trong một phịng thi có thể có thí sinh của nhiều lớp. Trong một kỳ thi, mỗi
thí sinh có thể thi tại những phịng thi (PHONGTHI) khác nhau, chẳng hạn
một thí sinh thi tốt nghiệp ba mơn là Cơ sở dữ liệu, Lập trình C và Visual
Basic thì mơn Cơ Sở Dữ Liệu và Lập Trình C thi tại phịng A3.4, cịn mơn
thực hành Visual Basic thi tại phịng máy H6.1.
Bài số 4: Cho mơ hình thực thể kết hợp sau. u cầu: Chuyển ERD sang mơ hình
dữ liệu quan hệ
24
BÀI 1: CÁC KHÁI NIỆM CƠ BẢN TRONG MƠ HÌNH
CƠ SỞ DỮ LIỆU QUAN HỆ
Mã bài: 11.01
Giới thiệu:
Mơ hình dữ liệu quan hệ (Ralational Data Model) gọi tắt là mơ hình quan hệ,
do EF.Codd đề xuất năm 1970. Nền tảng lý thuyết của nó là khái niệm lý
thuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị.
Mơ hình dữ liệu quan hệ là mơ hình được nghiên cứu nhiều nhất, và thực tiễn
đã cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất. Mơ hình dữ liệu này
cùng với mơ hình thực thể kết hợp đang được sử dụng rộng rãi trong việc
phân tích và thiết kế cơ sở dữ liệu hiện nay.
Bài này sẽ giới thiệu một cách tổng quan về các khái niệm cơ bản trong mơ
hình cơ sở dữ liệu quan hệ như: Thuộc tính, khóa, quan hệ, bộ giá trị, phụ
thuộc hàm.
Mục tiêu:
Nêu được khái niệm về quan hệ, thuộc tính, các loại khóa, lược đồ quan hệ,
bộ giá trị và phụ thuộc hàm.
Lấy được ví dụ trong thực tế để minh họa.
Nội dung chính:
1. Thuộc tính
Thuộc tính là các đặc điểm riêng của một đối tượng (đối tượng được hiểu
như là một loại thực thể ở mơ hình thực thể kết hợp), mỗi thuộc tính có một
tên gọi và phải thuộc về một kiểu dữ liệu nhất định.
Kiểu dữ liệu (data type)
Các thuộc tính được phân biệt qua tên gọi và phải thuộc một kiểu dữ liệu
nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…). Kiểu dữ liệu ở đây có
thể là kiểu vơ hướng hoặc là kiểu có cấu trúc. Nếu thuộc tính có kiểu dữ liệu
là vơ hướng thì nó được gọi là thuộc tính đơn hay thuộc tính ngun tố, nếu
thuộc tính có kiểu dữ liệu có cấu trúc thì ta nói rằng nó khơng phải là thuộc
tính ngun tố
Chẳng hạn với sinh viên Nguyễn Văn Thành thì các thuộc tính họ và tên, mã
số sinh viên thuộc kiểu chuỗi, thuộc tính ngày sinh thuộc kiểu ngày tháng, hộ
khẩu thường trú kiểu chuỗi, thuộc tính hình ảnh kiểu hình ảnh,…
Miền giá trị (domain of values)
Thơng thường mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu
dữ liệu và tập hợp con đó gọi là miền giá trị của thuộc tính đó. Chẳng hạn
25