Giáo trình Cơ sở dữ liệu (Tập 1) trình bày các kỹ thuật tổ chức dữ liệu ở dạng mô hình liên kết thực thể, hay mô hình quan hệ, chuẩn hóa mô hình cơ sở dữ liệu quan hệ, cũng như sử dụng các phép toán đại số quan hệ hoặc SQL để truy vấn thông tin từ cơ sở dữ liệu. Giáo trình kết cấu gồm 3 chương và chia thành 2 phần, phần 1 trình bày những nội dung về: tổng quan cơ sở dữ liệu; cơ sở dữ liệu quan hệ;... Mời các bạn cùng tham khảo!
Trang 1ỉĩm \ TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
Trang 3TRƯỜNG ĐẠI HỌC THƯƠNG MẠI Chủ biên: TS Nguyễn Thị Thu Thuỷ
(PHẨN1)
Trang 5LỜI NÓI ĐÀU
Cơ sở dữ liệu có thể coi là nguồn tài nguyên vô cùng quý giả của
mỗi tổ chức trong xã hội vì nó chứa đựng nhiều thông tin cần thiết và là
nền tảng khai thác cho các ứng dụng trợ giúp người dùng Để có thể xây dựng và thiết kế được cơ sở dữ liệu hiệu quả, chúng ta cần nắm vững được các phương pháp và các lã thuật then chốt trong việc tổ chức dữ
liệu một cách logic cũng như cách thức cài đặt vật lý dữ liệu này Để đạt được điều đó, tập thể giảng viên của Bộ môn Tin học, Khoa Hệ thống
thông tin kỉnh tế biên soạn và trân trọng giới thiệu cuốn “Giảo trình
Cơ sở dữ liệu (phần 1) Đây là cuốn giáo trình về cơ sở dữ liệu cơ bản
trình bày các lã thuật tổ chức dữ liệu ở dạng mô hình liên kết thực thể, hay mô hình quan hệ, chuẩn hóa mô hĩnh cơ sở dữ liệu quan hệ, cũng
như sử dụng các phép toán đại sổ quan hệ hoặc SQL để truy vẩn thông tin từ cơ sở dữ liệu.
Giáo trĩnh Cơ sở dữ liệu (phần 1) được biên soạn làm giáo trình
cho sinh viên hệ đại học chuyên ngành quản trị hệ thống thôỵig tin thuộc Khoa Hệ thống thông tin kinh tể của Trường Đại học Thương mại Giáo trình này đồng thời là tài liệu tham khảo cho các giảng viên trong quả
trình giảng dạy môn học, hoặc làm tài liệu tham khảo cho các sinh viên các chuyên ngành khác có liên quan đến cơ sở dữ liệu.
Nội dung giáo trình gồm 3 chương như sau:
Chương 1: Tổng quan về cơ sở dữ liệu Chương này trình bày các
khái niệm cơ bản về cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu,
Chương 2: Cơ sở dữ liệu quan hệ Chương này đi sâu trĩnh bày về
cơ sở dữ liệu quan hệ, toàn vẹn dữ liệu, phụ thuộc hàm
và chuẩn hóa dữ liệu quan hệ, mô hình thực thể liên kết, chuyển đổi sang mô hình quan hệ, cũng như quy
trình thiết kế cơ sở dữ liệu.
Trang 6Chương 3: Ngôn ngữ khai thác cơ sở dữ liệu quan hệ Chương
này trình bày các kiến thức về các phép toán đại số quan hệ và ngôn ngữ SQL.
Tập thể tác giả biên soạn đã bám sát với đề cương được soạn theo
chương trĩnh khung của Bộ Giảo dục và Đào tạo ban hành, đồng thời có tham khảo và biên soạn lại để sao cho nó có tính cập nhật các kiến thức
theo chuyên ngành và đặc thù của khối trường kinh tế Hơn thế nữa, giáo
trình còn được biên soạn cho phù hợp với tình hình thực tiễn của xã hội Tham gia biên soạn giáo trình gồm các tác giả:
• TS Nguyễn Thị Thu Thủy, chủ biên và biên soạn chương 1.
• Ths Ngô Duy Thắng, Ths Nguyễn Hưng Long biên soạn chương 2.
• Ths Nghiêm Thị Lịch, Ths Cù Nguyên Gỉảp, Ths Đinh Thị Hà và
Ths Nguyễn Hằng Giang biên soạn chương 3.
• Ngoài ra, còn có sự đỏng góp các ỷ kiến, nhận xét của các giảng
viên khác và tham gia phản biện trong bộ môn.
Trong quá trình biên soạn chúng tôi xỉn cảm ơn các đồng nghiệp
đã công bố các giáo trình, sách và tài liệu liên quan để chủng tôi cỏ thể
tham khảo cho giáo trình của mình Mặc dù chúng tôi đã cổ gắng hoàn
chinh giảo trình, tuy nhiên không thể tránh khỏi thiếu sót Rất mong các đồng nghiệp, sinh viên đỏng góp ỷ kiến để giảo trình ngày càng hoàn
thiện hơn.
CÁC TÁC GIẢ
Trang 7MỤC LỤC
Chương 1: TỔNG QUAN VÈ cơ SỞ DỮ LIỆU 7 1.1 Các khái niệm cơ bản về CSDL 7
1.1.1 Khái niệm về CSDL và vai trò của cơ sờ dữ liệu
1.4 Ngôn ngữ quàn trị cơ sở dữ liệu 36
Chương 2: Cơ Sở Dữ LIỆU QUAN HỆ 41 2.1 Các khái niệm cơ bàn 41
2.1.4 Liên kết (Mối quan hệ - relationships) 49
Trang 82.3 Phụ thuộc hàm 65
2.4 Chuẩn hoá các lược đồ quan hệ 85
2.4.1 Các dạng chuẩn của lược đồ quan hệ 86 2.4.2 Phương pháp xác định dạng chuẩn cao nhất 93
2.5 Tách các lược đồ quan hệ 96
2.5.2 Phép tách - kết nổi bào toàn thông tin 96 2.5.3 Thuật toán kiểm tra phép tách - kết nối bào toàn thông tin 98
2.6 Quy trình phân tích, thiết kế cơ sở dữ liệu quan hệ 102
2.6.1 Quá trình phân tích, thiết kế cơ sở dữ liệu 102 2.6.2 Thiết kế mô hình thực thể liên kết
(Mô hình ER (Entity Relationship Model)) 103 2.6.3 Các qui tắc chuyển đỗi từ mô hình ER sang mô hình quan hệ 112
Chương 3: NGÔN NGỮ KHAI THÁC CSDL QUAN HỆ 125 3.1 Các phép toán quan hệ 125
3.1.2 Các phép toán đặc biệt trên quan hệ 132
Tài liệu tham khảo 179
Trang 9Chương 1 TỔNG QUAN VỀ cơ SỞ DỮ LIỆU
1.1 Các khái niệm cơ bản về CSDL
7.7.7 Khải niệm về CSDL và vai trò của cơ sở dữ liệu trong các
hệ thống thông tin
Cơ sở dữ liệu đóngvai trò quantrọngttongviệc xử lý cácthông tin
bằng máy tính, chúng được sử dụng rộng rãi trong tất cả các lĩnh vực khác nhau của đời sống con người
Bản chất của dữ liệu trong máy tính là cácsự kiện có ý nghĩa trong các lĩnh vực của đời sổng vàxã hội mà có thể ghi lại được để xử lý Vìthế, cơ sở dữ liệu có thể được xem như một tập hợp có cấu trúc các dữ
liệu được lưutrữ ở máy tính cho mục đíchnào đó của người sử dụng như
xửlý,thamchiếu, thống kê,
Theotừ điển Cambridge1, cơ sở dữ liệu làmột lượng lớncác thông
tin được lưutrữ trong máy tính saocho chúngcóthểdễdàng truy xuất vàthay đổi khi cầnthiết Còn theo Thomas& Carolyn (2005), cơ sởdữ liệu
là một tập họp các dữ liệucó liên quan với nhau một cách logic, chúng đượcmiêu tả, thiết kế sao chochúng có thể kết xuất ra các thôngtin cần
thiết cho yêucầunàođó của doanh nghiệp
1 http://dictionary.cambridge.org/
Nhưvậy, tacó thể thấy, cơ sở dữ liệu là mộttập họp các dữ liệu có
liênquan với nhau, được tổ chức, cài đặt và lưu trữ trênmáytínhsao cho
có nhiều người có thể sử dụng theo yêu cầu của mình
Ví dụ như chúng ta có thể mô hình hóa cácphòng trong một khách
sạn bằng việc lưutrữ các thôngtin về phòng, thông tin về việcđặt và trảphòng, sao cho việc lưu trữcác thôngtin này sẽ dễ dàng hỗ trợ được
Trang 10việc tìm và đặt phòng của các khách du lịch Hay như việc tổ chức lưutrữ cácdữ liệu bao gồm các thôngtinvề sinh viên, điểm thi các môn học
(học phần), phục vụ cho việc ưa cứu điểm thi, lưu trữ, để làm mọicông việcliên quan đếnkếtquả họctập của sinh viên Đây chính là việc
tổ chức lưu trữ dữ liệu về sinh viên và các kết quả học tập để phục vụ cho các mục đích khác nhau cùanhàtrường
Tập họp cácdữ liệunóiưêncóthểđượcghi lại bằngviệctạora các
bảng biểu, hay sử dụng các phần mềm của máy tính như MS Access,
Excel, hay MS SQL, Tập các dữ liệu liên quan có ý nghĩa này cònđượccoi là mộtcơ sở dữ liệu
Để dễ hình dung hơn chúngtacóthể xem xétmộtcơ sở dữ liệu củatrường đại học bao gồm các thông tin về sịnh viên, môn học và điểm
ưong môi trườngđại học Các bảng dữ liệu dưới đây sẽ thểhiệncấutrúccủa cơ sở dữ liệu và một số dữ liệu mẫu Cơ sở dữ liệusẽ đượctổ chức ở
5 tệp riêngbiệtmà mỗi tệp sẽ lưutrữ cácdữ liệucó cùngkiểu Ví dụtệpsinh viên sẽ lưu trữdữ liệu làcác thông tinvề sinh viên, tệp môn học sẽlưu trữ thông tin về các học phần, còn tệp điểm sẽ lưu trữ các thông tin
vềđiểmcủa sinh viên tươngứng với cácmôn học,
Đê định nghĩa cơ sở dữ liệunày, chúng ta cần phải chỉ ra cấu trúccủa các bản ghi cho mỗi tệp bằng cách chi tiết hóa các kiểu thông tin
khác nhau để lưu trữ ưên một bản ghi Ví dụ, ở bảng SINHVIEN bao
gồm các bản ghi sinh viênlà tập các dữ liệuphàn ánh về đối tượng sinh viên,và bao gồm: MaSV, HoTen, LOP, KHOA Hay như ở bảng ghi các
TENMON, SOTC, BOMON, KHOA, Ngoài ra, chúng ta còn phải chỉ
ra các kiểu dữ liệucho mỗi bản ghi, ví dụ như Họ tên sinh viên (HoTen)
phải làmột chuỗi các kí tự,Mã sinh viên (MaSV) phải là chuỗi kí tự bao gồm số và chữcái, điểm phải là kiểu số,
Lưu ý đó là các bản ghi ởcác tệpkhác nhau có thể có mối quanhệlẫn nhau, ví dụ như dòng dữ liệu của tệp Sinh viên của sinh viên
“Nguyễn Chí Dũng” có liên quan đến bốn dòng dữ liệu ở bàng điểm để
Trang 11chỉ ra điểm của sinh viên này Hoặc mỗi bản ghi của tệp điều kiện tiên
quyết có mối quan hệ với các bảnghi củakhóahọc, cụ thể là: một giátrịthể hiệnkhóa học và một giá trị thể hiện điều kiện để học khóa học đó Nếu bỏ trống cột MaDK để chỉ ra rằng môn học đó không có điều kiệnhọctrướcmônnàocả,sinh viên có thể đăng kí học ngay từ năm thứ nhất
SINHVIEN
Nguyễn DuyTrung Anh 2014S0081 1401INFO0111 HTTTKT
MONHOC
INFO1611 INFO0111
Vai trò của CSDL trong hệ thống thông tin
Trong một hệ thống thông tin, CSDL đóng vai trò rất quan trọng
Nó còn được coi là “kho chứadữ liệu”bao gồm các thông tin “thô” đểhệ
Trang 12thống sử dụng các công cụ khác nhau khai thác nó nhàm đưa ra các thông tin theo yêu cầu cho mục đích của người sừ dụng Ví dụ, các hệ
thống thông tin địa lý có thểlưutrữ và phântích các bản đồ, các dữ liệu
về thời tiết và các ảnh vệ tinh thông qua các cơ sở dữ liệu đa phương
tiện Bằng cách sử dụng các công cụ khai thác và phân tích hệ thống thông tin địa lý, thông tin cho phépngườisử dụng có các thông tin quyết
định về thời tiết của vùng miền, cành báo về lũ lụt, Hay các kỹ thuật
tìm kiếm trong cơ sở dữ liệu của hệ thống tìm kiếm website đang được
áp dụng cho World Wide Web có thể cung cấp việc tìm kiếm các thông
tin cần thiết cho ngườisử dụng bằngcáchduyệtqua Internet
Việc tổ chức thiết kế và duy trì các thông tin trong một hệ thống được thực hiện bởi bộ phận công nghệ thông tin (CNTT) ữong một tổ chức Công việc này thường bao gồm: tổ chức lưu trữ trong các thiết bị
lưu trữ, cài đặt các phần mềm ứng dụng, và tổ chức các cơ sở dữ liệu
Việc thiết kế mộtứng dụng mớicho một cơ sở dữ liệu đã có hoặc mộtcơ
sở dữ liệu hoàn toàn mới được bắt đầu bằng pha đặc tà yêucàu và phântích yêu cầu Sau đó, cácyêu cầu sẽ được chuyển một cách chi tiết sang
pha thiết kếkhái niệm thểhiện trên một số côngcụthiếtkế sao cho nó dễ
dàng chuyểnquaviệc thể hiện trên cơ sởdữ liệu(thường là dựa trên môhình quan hệ thực thể sẽ được đề cập ở các chương sau) Sau đó, việc
thiết kế sẽ được dịchsang mô hìnhlogic mànó dễ dàng cài đặtởmột hệquản trị cơ sở dữ liệu Giai đoạn cuốicùngsẽ làthiếtkếvật lý và lúc này
việc thiết kế cơ sở dữ liệu là sự thể hiện của dữ liệu thực, và phản ánh các trạng thái khác nhau của thế giới thực Cụ thể các bước xây dựng
' CSDLđượctiến hành như sau:
Bước 1: Xác định các yêu cầu Thông thường tại bước này cần tạo
ramộtbản tàiliệu chỉra các đặc tả yêucầucủahệthống thông tin
Bước 2: Xác định mồhình với các kiểu dữ liệuvà quanhệ tương ứng
Bước 3: Xác định cácràng buộc cho dữ liệuđể đảm bảo tính toàn
vẹncủahệthống
Bước 4: Xácđịnhviệccài đặt ở mứcvật lý đối vớicác quanhệ
Trang 13Bước 5: Định nghĩa các giao diện người dùng tương ứng với từng
nhiệm vụ cụ thểcủahệ thống thông tin
Bước 6: Cài đặt CSDL cho hệ thống
Ở bước 1, các đặc tả yêu càu về mặt dữ liệu của các chức năng trong hệ thống cần phải được xác định rõ để làm tiền đề cho các bước sau Người thiết kế nên xây dựng một bảng mô tảcác chức năng của hệ
thống với việc sử dụng các yêucầuvề dữ liệu tương ứng.Ví dụnhư chức năng tìm kiếm điểm của sinh viên sẽ đòihỏi việc truy cậpvàocác dữ liệu
về môn học và điểm cùa môn học đó một cách tương ứng (đối với đối
tượng tìm kiếm sinh viên)
Ví dụ: Các yêu cầuchứcnăngcùa cơ sở dữ liệu quản lý dự án
• Nhập liệu
Dữ liệu của hệ thống sẽ được nhập trực tiếp từ các mẫu biểu của dự
án; cácdữ liệucóthể sửa đổi,xóa bỏ, thay thế cácmẫu biểu;hoặc có thể
in ấn trực tiếp từ mẫu biểu
• Lưu trữ
Các thông tin về các sản phẩm kinh doanh của côngty sẽ được lưutrữ lại; có thể bao gồm: Thông tin khách hàng; thông tin liên quan đếnkinh doanh và triển khaiphần mềm
• Tìm kiếm
Các thông tin đượctìmthôngquamã dự án hoặctên dự án
• Thống kê bảo cảo
Thống kê số lượng khách hàng đặt hàng trong một khoảng thời
gian; thống kê những họp đồng đã hoàn thành trong một khoảng thời
gian; báocáo vềtìnhhìnhdoanh thu và tiến độ triển khai hợp đồng
Ở bước 2, các mô hình thực thể liên kết được tạo ra cho các thựcthể quàn lý Tại đó, các mối ràng buộclogic giữa các thực thể cũng được
Trang 14chỉ ra Trong bước này, việcchuyểnđổitừ mô hình thực thể liên kếtsang
mô hình quan hệ cũng được tiếnhành với sự chuẩn hóa về mặt dữ liệu Chi tiếthóacủa bước này được thể hiện ởchương2 củagiáotrìnhnày
Việc xác định cácràng buộc cho cácdữ liệu được thiếtlập ở bước 3
của quá trình Việc xác địnhcác ràng buộc này nhằm mục đíchtránh sự
“nhập nhằng” hoặc “không chuẩn” khi người sử dụng nhập dữ liệu cho
hệ thống Ví dụ như, việc quy định ràng buộc cho khoảng thời gian là 12 tháng là tối đa và 1 tháng là tối thiểucho mỗi hợp đồng dựáncho phépngười sử dụng chỉ được nhập dữ liệu đối với cột này trong khoảng từ
(1-12)
Ở bước 4, xác định việc cài đặt ở mức vật lý đối với các quan hệ, các yêu cầu về mặt cấu trúc vật lý cho CSDL sẽ được xác định Thôngthường các quy định về kiểu, độ rộng trường, cách thức định dạng, sẽ
đượcthểhiện ở bước này
Ví dụ: Bảng dưới đây mô tả việc cài đặt vật lý của bảng dữ liệu HOPDONG
Việc định nghĩa các mẫu biểu nhập dữ liệu sẽ được chỉ ra ở bước 5.Các quy định về số lượng các mẫu biểu, cách bố trí các phàn tử và quycách trình bàymẫu biểu cũng được thể hiện ởbướcnày
Ví dụ về giao diện của mẫu biểu nhập các hợp đồng cho bảng dữ liệu HOPDONG
Trang 15QUẢN LÝ HỢP ĐỒNG
THOÁT
Ở bước 6, việc cài đặt cụ thể CSDL đối với mộthệquản tộ CSDL
được chỉ ra Một số hệ quản trị thông thường có thể dùng là: MSACCESS; My SQL; MS SQL server;Oracle,
1.1.2 Đặc điểm và tỉnh chất của CSDL
Việc sử dụng cụm từ cơ sở dữ liệu của định nghĩa ở ưên mang ý
nghĩa tổng quát Tuy nhiên, ứên thực tế cụm từ cơ sở dữ liệuthường được hiểutheo nghĩa chặt hơn.Nghĩa làchúng còn phải có một sốtínhchấtsau:
• Một cơ sở dữ liệu thường biểu thị một phần nào đó của thế giới thực Ví dụnhưhoạt động kinhdoanhcủa một công ty,các giao dịch củamộtngân hàng, các hoạt động tác nghiệpcủa công ty vậnchuyển, Tất
cả những thay đổi của các hoạt động nói trên ưong thế giới thực phải
được phản ánhmộtcáchtrung thực vào cơsở dữ liệumànóđang lưu trữ,
vànhững thông tin này sẽ tạothànhmộtkhônggian cơ sở dữ liệuhoặc là
một “thế giới nhỏ” (Xem hình 1.1)
Trang 16Npxri SŨ Ihmýrià Lập
Hình 1.1: Không gian CSDL
• Tập hợp dữ liệu trong cơ sở dữ liệu phải có sự liên kết với nhau
một cách logic và mang một ý nghĩa nào đó để phục vụ cho một mục
đích nhấtđịnh Nghĩa là, một cơsở dữ liệu không phảilàmộttập hợp dữ
liệu tuỳtiện
•Một cơ sở dữ liệu được thiết kế và được sử dụng cho một mục
đích nhất định của một hay nhiều người dùng và nó được sử dụng kèm
theo một số ứng dụng nào đó phục vụ cho 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ó nguồn cung cấp dữliệu đượclấy từ thế giới thực Nó được sử dụng để tương tác với các sự kiện của
thế giới thực thôngquangười dùng làđối tượng màquantâmđến các nộidung của nó
• Một cơ sở dữ liệucó 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 (ví dụ như cơ sở dữ
liệu phục vụ việc quản lý nhân sựở một trường), và có những cơ sở dữ
Trang 17liệu có dunglượng rất lớn (nhưcác cơ sở dữ liệuphục vụ cho việctính
cướcđiện thoại, quảnlý điện tiêu dùng) Các cơ sở dữ liệu phảiđược tổ chức quản lý sao chonhữ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 rakhi cần thiết
Một trong nhữngđặc điểm củaviệc thiếtkế cơ sở dữ liệu khác biệt
với việc tổ chứcdữ liệuriêng lẻ củalập trình truyềnthống là việc tổ chức
dữ liệu thành một cơ sở dữ liệu thống nhất để cho nhiều người dùng có
thể sử dụng với nhiều mục đích khác nhau Ví dụ, ở lập trình truyền
thống, một người dùng (nhânviên phòng đàotạo) có thể có tệp điểm và
thông tin củasinh viên, các ứngdụng cótácdụng in bảng điểm sinh viên
vànhập điểm mới khi cần Tuy nhiên, người dùng ở phòng kế toán thì lại
cócác thông tin về sinh viên và học phícần đóngcủangườisinhviênđó.Chính vì không có sự kết nối giữa hai tệp dữ liệu nói trên, nên dẫn đếnviệc chứng nhận sinh viên đã đóng học phí hay chưa để có đủ điều kiện
dự thi là hoàn toànphải làm thủ công và tốnthời gian tracứu Đồng thời,
mặc dù cà hai cùngquan tâm đến dữ liệu sinh viên nhưng chúnglại ở các tệp hoàn toàn khác nhau, điều này dẫn đến việc dư thừa trong việc lưu
trữ dữ liệu, tốn thờigian cập nhật dữliệu ở các tệp dữ liệu khácnhau.Khác hẳn với việc xử lý tệp dữ liệu truyền thống, việc lưu trữ dữ
liệu trong một cơ sở dữ liệu thốngnhấtcho phép chúng tađịnh nghĩavề
dữ liệu một lần nhưngcho nhiều người dùng truy cập và sử dụngnó theo
từng ứng dụng mà họ cần Nói một cách khác, trong cơ sở dữ liệu, tên
hoặc nhãn của dữ liệu được định nghĩamộtlầnvà chúng sẽ được sử dụng
lặp nhiều lần thông qua các truy vấn và ứng dụng Một cách chi tiết chúng sẽ được thể hiện qua các đặc điểm chính sau:
a Cơ sở dữ liệu phải tự mô tảđược bản chất của hệ thống cơ sở
dữ liệu
b Có sự độc lập với chương trình và dữ liệu cũng như sự trừu
tượnghóavề mặt dữ liệu
c Hỗ trợ cácquan điểm (hướng nhìn) khác nhau vềmặt dữ liệu
d Chia sẻ dữ liệu với nhiều người dùng
Trang 18Mô tả bản chất của hệ thống cơ sở dữ liệu
Nhữngđặc điểmcơ bản nhấtcủa cơ sở dữ liệu không chỉ phản ánh
vềmặt dữ liệu,màcòn địnhnghĩahoặc mô tả hoàn chỉnh cấu trúcvà các ràng buộc lẫn nhau của các dữ liệu trong hệ thống Định nghĩa này sẽđược lưu trữ trong danh mục củahệ quản trị cơ sởdữ liệu (cấu trúc của
tệp, kiểu và định dạng của từng phần tử dữ liệu, các ràng buộc của dữ liệu) và các thông tin này được gọi là không giandữ liệu - hệ cơ sở dữ
liệu (Hình 1.2) Danh mục sẽ được sử dụng bởi hệ quàn trị CSDL vàngười dùng khi họ cần đến cấu trúc của CSDL Với lập trình truyền
thống, mỗi ngôn ngữ lập trình sẽ có một cách định nghĩa cấu trúc tệp
(file)dữ liệu riêng, cònđối với hệ quản trị cơsởdữliệu thì nó hoàn toàn
có thể truy cập vào các cơ sở dữ liệu khác nhau (ngân hàng, trường
học, ) nhờ việc trích xuấtthông tin định nghĩa từ danh mụcvà dùng các định nghĩa này trongcácứngdụng của nó
Hình 1.2 là ví dụ chiramột số dữ liệu nhập cho danh mục, các định
nghĩa này đượcđặc tả bởi người thiết kế và lưu ở danh mục Khi có yêucầu truy cập ví dụ như tên của Sinhviên, hệ quản trị CSDL sẽ tìm trong
danh mục để xác định cấu trúc, số vị trí, định dạng, kiểu, của bản ghi
sinh viên
¡HệCSDL I
I I I I
i I
I i
Trang 191.1.3 Khải niệm về hệ CSDL
Để dẫn đếnkhái niệm hệ CSDL,trướchếtchúng ta cần làm sáng tỏ
khái niệm về việc tổ chức khai thác có hiệu quả các dữ liệutrong cơ sở
dữ liệu Một nhóm chương trình trong máy tínhcó chức năngtạo ra, duy trì vàkhaithácmộtcơ sở dữ liệu được gọi làhệquản trịCSDL
Như vậy, hệ quản trị CSDL là một phần mềm mà cho phép người
dùng định nghĩa, tạo, duy trì hoạt động và điều khiển việc truycập vào
CSDL Phần mềm này có thể tương tác với các chương trình ứng dụng của ngườidùng và CSDLthôngqua các chứcnăngsau:
• Nó cho phép người dùng định nghĩa CSDL thông qua ngôn ngữ
định nghĩa dữ liệu (DLL - Data Definition Language) Tại đây, người
dùng có thể đặc tả kiểu dữ liệu, cấu trúc và các ràng buộccủa cácdữ liệu
đang được lưutrữtrong CSDL
•Nó cho phép người dùng xửlý dữ liệu với các thao tác chèn cập nhật, xóa, thông qua ngôn ngữ khai thác dữ liệu (DML - Data Manipulation Language) Ngôn ngữ chuẩn để khai thác CSDL quan hệ còn được biếtđến với têngọi làSQL (Structured Query Language)
•Nó cung cấp các quyền truy cập vào CSDL như: Hệ thống bảo
mậtđể định danh khitruycậpvàoCSDL; hệtoànvẹnđể duy trì việc lưutrữdữ liệu; hayhệ thống điều khiển việc chia sẻ tài nguyên trong CSDL;
nhậtkí việc người dùng truy cập;
Hệ cơsở dữ liệu được thiếtkế để quản lýmột khối lượng lớn thông
tin của một tổ chức bằng cách tổ chức cácdữ liệu đầu vào thànhcơ sở dữliệu; và tạo ra một môi trường giúp cho người sử dụng có thể dễ dàngquản lý và khai thác các thông tin trongcơ sở dữ liệu
Như vậy, có thể nói rằng, hệ cơ sở dữ liệu bao gồm hệ quản trị
CSDL và cơ sở dữ liệu được cài đặt trong hệ quản trị này (xem mô tảở
Hình 1.2) Người dùng tương tác với CSDL thông qua một số chương
trình ứng dụng băngcách sửdụng ngôn ngữ SQL để tạo ra các thông tin theo yêu cầu
Trang 20Lịch sử của hệ quăn trị CSDL
Trước năm 1960, các dữ liệu được lưu trữ dưới dạng tệp (Hình
1.3) Một trong các hệ thống quàn lýdữ liệuởdạngtệp (Tập tin) ữong hệ
thống khá nổitiếngđó là dự ánbaylên mặt trăng củatàu vũ trụ Apollo
Hình 1.3: Ví dụ về các tệp lưu trữ dữ liệu
Vào giữa năm 1960, IBM kết hợp với NAA (North American
Aviation - Hàng không Bắc Mỹ) để phát triển GUAM (GeneralizedUpdate Access Method) thành IMS (Information Management System)
Đây có thể coi là phiên bản thương mại đầutiêncủahệ quản trị CSDL.Vào năm 1970, E F Codd (làm việc tại phòng nghiên cứu của
IBM) sinhramôhìnhđểcóthểlưutrữ dữ liệu với dạngbảng quan hệ với các bảnghi (hệ quản trị cơsở dữ liệu quan hệ) Trong bảng quan hệ này,
các bảnghi có mối liên kết với nhauthôngqua khóa (xem bảng dưới)
Key
Login Ho Ten Dungnc Nguyen Chi DungTanh Nguyen Duy Trung Anh Kitty Amber Smith
J Login Address
1 Dungnc chidungnc@yahoo.com
Trang 21Cũng vào cuối năm này, dự án hệ thống R của phòng nghiên cứu
IBM’s San José Research Laboratoryđã cung cấp cách thể hiệncấutrúc
dữ liệu và các chức năng điều hành thông qua việc phát triển ngôn ngữtruyvấncó cấutrúc (SQL) Từ đó SQL ưở thành ngôn ngữ chuẩn chohệ thống quảntrị CSDL
Vào những năm 1980, các sản phẩm thương mại của CSDL quan
hệ ra đời (được coi làthế hệ thứ hai củahệ quản trị CSDL), và điểnhình
làDB2 và SQL/DS của IBM và Oracle Từ đó trở về sau, hàng trăm hệthống CSDL quanhệ đã đượcthiết kế cho cả hai môi trường MainFrame
và PC và có thể cho phép nhiều người dùng Vídụ như Office Access vàVisual FoxPro của Microsoft, and JDataStore củaBorland và R:Base củaR:BaseTechnologies
Hệ quản trị CSDL hướng đối tượng (Object-Oriented DBMS
-OODBMS)và hệ quản trị CSDL đối tượng quanhệ - Object- Relational DBMS (ORDBMS) (thế hệ thứ ba của hệ quản trị CSDL) được ra đời
vào những năm 1990với mong muốn là cogắngthể hiện môhình dữ liệu
mà có thể phản ánh đượcrõ ràng thế giới thực hơnvà đáp ứng được các yêu cầu phứctạp củahệ thống ứng dụng CSDL
ưu và nhược điểm của hệ quản trị CSDL
ưu điểm:
• Điều khiển được sự dư thừa của dữ liệu: Khắc phục được các nhược điểm của hệ thống lưu trữ tệp truyền thống là rất tốn bộ nhớ để
lưu trữ cácthông tin giống nhau trên nhiều tệp, hệ quảntrị CSDL giảm
sự dư thừabằng cách là tích hợp các tệp lại sao chocác dữliệu sao chép không cần phải lưu trữ ở chỗ khác
• Đồng nhất dữ liệu: Sự dư thừa của dữ liệu, độ rủiro về sự không
đồng nhất đã được giảm đáng kể Bởi vì nếu một phần tử dữ liệu được
lưu trữ chỉ một lần trong CSDL thì khi có sự cập nhật, thay đổi nó sẽ chỉ phải thực hiện ngay trong CSDL và vì thế nó luôn thích hợp cho mọingười dùng mà không cần quan tâm đến sự kiểm soát về sự đồng nhất
Trang 22Nếu phần tử dữ liệu nàyđượclưutrữ tại nhiều vị trí (file -based system -
hệ thống lưu trữdưới dạng tệp truyền thống) thì hệ thống sè luôn phải
cảnh giác và đảm bảo sự cập nhật giá trị và sao chép của phần tử dữ liệu
này luôn phù hợp cho người dùng
• Cho biết nhiều thông tin từ một lượng dữ liệu: Với việc tích
hợp các phép toántrên dữliệu hệ thống sẽ cungcấp nhiều thông tin hơn với một lượng dữ liệu ban đầu Ví dụ như từ dữ liệu hàng hóa với số lượng bán, đơn giábán hệ thống có thể tính toán thành tiền, và làm các thao tác thống kê doanh thu,
• Chia sẻ dữ liệu: Cho phép nhiều người dùng truy cập cùng một
lúc vào CSDL và cóthể thiết lậpquyền truy cập
• Tăng mối tưong tác với người dùng Ví dụ hệ thống cho thuênhà cho phép người dùng đặt các câu hỏi cho dữ liệunhư: tìm kiếm các
nhàcógiácho thuê dưới 1 triệu đồng/1 tháng,
•Củngcố sự bảo mật của dữ liệu và áp cácchuẩn cho dữ liệu,
Nhược điểm
• Phức tạp: Để có hệ thống quàntrị CSDL tốt thì bản thân nhàpháttriển, người dùng, cũng phải tuân thủcác yêu cầu từ thiết kế, quy cáchnhậpdữliệu, của hệthống
•Tăng giá thành cho phần cứng và chi phí cho việc xây dựng hệ
quảntrị
•Nếu gây lỗi thì rấttốn kém thông quaviệc phản ánh các thông tin sailệch được lấy ra từhệthống dữ liệu
1.2 Mô hình dữ liệu
1.2.1 Khái niệm và ỷ nghĩa của mô hình dữ liệu
Mô hình dữliệu làmộtthể hiện củacác đối tượng và sự kiện cùng với các mối quanhệ của nótrongthế giới thực Nó thể hiện cho sự trừu
tượng hóa của mộttổ chức hay một hệ thống và tập trung vào việc mô
Trang 23hìnhhóa các khía cạnhthiếtyếu,vốn có của hệ thống Nỏ bỏqua các yếu
tố phụ (không mang nhiều ý nghĩa cho hệ thống) của một hệ thống tổ
chức Một mô hình dữ liệu sẽ thể hiện bản thân hệ thống nào đó đồngthời cung cấp các kháiniệm cơ bản và các chú giải saocho người thiết
kế và người dùng cuối không mơ hồ khi giao tiếp với các dữ liệu của
hệ thống
Mô hình dữ liệu có thể được thể hiện dưới dạng mô hình phăng(Flat model) Nghĩa là, mô hình được thể hiện như một bảng hai chiều
mà trong đó các cột thể hiện cácđặc tínhcủa dữ liệu, và mỗi một dòng
thể hiện mộtđối tượng cần lưu trữvới một bộ các giá trị tương ứng với các cột Ví dụ, cơ sở dữ liệu về bảo mật hệ thống gồm có hai cột User
Name và Password, trong đó mỗi dòng sẽ thể hiện một password cụ thểcùa từng cá nhân người dùng thôngqua tên (User Name)để truy cập vào
hệ thống Kiểu định dạng bảng vừa mô tả là tiền thân của việc thể hiệntrongmô hình cơ sở dữ liệuquan hệ
Ví dụvềmô hìph phăng của cơsở dữ liệu bảo mật hệ thống
User Name Password
mô tả một loại thông tin cần lấy từ dữ kiện (ví dụ như những người tham
gia vào sự kiện, thời gian và địa điểm tổ chức sự kiện, và loại hình sựkiện xảy ra, ) Chiều của bảng còn được sửdụng để rút racác nhóm dữ
Trang 24kiện có liên quan đếnnhau Thông thường các chiều là rời rạc và thường được phân nhánh Ví dụ, chiều “vị trí” sẽ là thể hiện của “tòa nhà”,
“tỉnh/thànhphố”, hay “tên nước” Độ đo của bảng là một số mà miêu tà
dữ kiện, ví dụ như “doanh thu” Chú ý làđộ đo phải có ýnghĩa tích họp
được với các chiều Ví dụ, doanh thu từ các “vị trí” phải thực sự có ý
nghĩa trong bảng Thông thường trongbảnghỏi OLAP, các chiều và các nhóm sẽ được chọn sao cho khi tích họp lại chúng sẽ trở thành bảng
thốngkê dữ liệu
Cấu trúc của mô hình nhiều chiều thường được sử dụng đó làcấu
trúc hình sao (star-schema) mà ở đó bảng chuẩn hóa cao nhất là bàngchứa cácdữ kiện, các bản xung quanh sẽ là các bảng tương ứng với mỗi
chiều Ngoài ra, còn có một cách thể hiện cấu trúc khác nữa đó là cấu
trúc bông tuyết (snowflake) mà ở đó các bảng thể hiện một cấu trúc đacấp phân bậc
Tóm lại, mục đíchcủa việc thể hiện thành mô hình nhiều chiều để
diễn giảidữ liệu theo nhiềukhíacạnhkhác nhau tùy thuộc vào cách nhìn khác nhau (tương ứng với số chiều) cùa người sử dụng để rút ra các
thông tin cầnthiếtchomình
Ví dụ vềkhối OLAPcóthể xem ởHình 1.4 Ở đó mỗi mặt của hình
lập phương sẽ thể hiện một chiều như “Products”,’’Cities”,hay “Time”
Hình 1.4: Khối OLAP thể hiện các chiều của Products,
Cities và Time
Trang 25Mot vi du nua la viec thd hien cac du- liputren khbi OLAP cua co
so du lieu thu tuc hanh chinh mot cua cip quan 0 day khdi “mgt cua”dugc tao lap vdi cac chieu (5 chidu) can thong ke du lieu la: “Can bp”
(thd hien cac can bo giai quyet); “Phong ban” (the hipn cac phong banlienquan ddn thu tuc); “Linh vuc” (the hipn linh vyc ma phong bandang
quan ly); “Thutuc” (Thutuc ma ngubi danyeu cau); va “Yeu ciu” (Yeu
cau can giai quydt cua ngubidan) (xemHinh 1.5)
Solution Explorer
MotCuaS^mplel.3
(=]■■• Data Sources L «5» MOTCUA.ds EJ- Data Source Views I— * £3 MOTCUA.dsv
ES ■ Cubes
| 1 liital MOTCUA.cube E3- gSr Dimensions j DM Can Bo.dim j tz" DM Phong Ban.dim tz" ND Linh Vuc.dim I tz” NDThuTcc.dim 1— \y' ND Yeu Cau.dim Mining Structures
— Roles
— Assemblies Miscellaneous
Hinh 1.5: Vi du khai bao khoi OLAP cua co1 sb dir lipu
thu tyc hanh chinh mpt cua
Trong khuon kho gido trinh nay, vipc mb ta chi tidt vd mb hinh
nhidu chidu se khong dupe dd cap ddn mil chu ydu xoay quanh mb hinh
phang(flatmodel)
Mot mb hinh co sb du lieu la mgt kieu cua mb hinh du lipu m& b
doda xac dinh dune cdu true vdm£t logic cua co sb du lipu va each thuc
ma du lieu se dugcluu tru,to chuc vi xur ly trong hp thong Mgt vi dprd
thiy nhit cua viecmb hinh hdaduliputrongmb hinh quan hp db la vipc
tochuc dd lipu thanh cacbAng quanhp (bbng haichieu)
Trang 26Một hệ cơ sở dữliệu có thể xây dựng dựa trên các mô hình cơ sở
dữliệu khác nhau tùy thuộcvào việcmô tả cấutrúc, tập ràng buộc hoặcmối quan hệ giữa các mô tả cũng như là cách thức lưu trữ và xử lý dữ
liệu của từng môhình
Một mô hình dữ liệu sẽ gồm cỏ ba thành phần sau:
1 Phần cấu trúc: Là tập các luật mà theo đó cơ sở dữliệu sẽ được
xây dựng
2 Phàn phép toán: Định nghĩa các phép toán mà cho phép thực hiện trên dữ liệu (có thể bao gồm các phép toán dùng để cập nhật hoặc
rút trích dữ liệu từCSDL hoặc thay đổi cấu trúc dữ liệu, )
3 Tập các ràng buộc: Các ràng buộc này để đảm bào dữ liệu là
chính xác và toàn vẹn
Phần cấu trúc của cơ sở dữ liệu (database structure) được mô tả
với một ngôn ngữ hình thức của một hệ quản trị cơ sở dữ liệu nào đó
Chúng cho biết cách thức tổ chức dữ liệu giống như chúng được trình
bày dưới dạng mộtbản thiết kế về dữ liệuvề cáchbố trí dữliệutronghệthống Ví dụ, trong cơ sở dữ liệu quan hệ, cấu trúc của cơ sở dữ liệu
chính là cách thức chia dữ liệuvào thành các bảng tronghệ thống, cấu
trúc chi tiết của cơ sở dữ liệu sẽ dựatrên các tri thức quản trị cơ sở dữ liệucủacác ứng dụng sẵn có Nghĩa là, các cấu trúc nàyphải chì racách
thức mà dữ liệu thực tế sẽ được nhập vào cơ sở dữ liệu, hoặc các thông tin thựcmà người dùng cuốisẽ nhận đượcthông quacácdữ liệu đã có
Ví dụ: Trongcơsở dữ liệuquanhệ, trước khi người sử dụng muốnlưutrữ thông tintrong máytính, ta nênđặtcâu hỏi “chính xác” là nhữngthông tin nào mình cần lưutrữ, kiểu củathông tin đó là gì Sau đó, ta sẽ
xác định các trường (“field”) sẽ được sử dụng ưong cơ sở dữ liệu (đây
chínhlà tập hợp các thông tin mà cơ sở dữ liệu sẽ lưu trữ, ví dụnhư cơ
sở dữ liệu sinh viên sẽ bao gồm: Mã sinh viên, Họ Tên sinh viên, ngàysinh, địachỉ, lớp hành chính, ) Tronghầu hết cácứng dụng của hệ quản trị CSDL, khi khai báo các trường chúng ta cần phải khai báo đồngthời
Trang 27kiểudữ liệutương ứngcủa cáctrường đó Các kiểu hay được sử dụng
•Kiểu khác Trong một số hệ quản trị cho phép người dùng khai
báo một số kiểu đặc biệt nhưkiểu multimedia object (cho phép lưu trữ hình ảnh, hoặc âmthanh)
Quay lại ví dụ về cơ sở dữ liệu sinh viên nói trên, đối với trường
mã sinh viên, ta sẽ nên chọn kiểu là văn bản, trường Họ tên sinh viên cũng sẽ có kiểu là văn bản, cònNgàysinh sẽ cỏ kiểu là ngày tháng, Tập các trường nàysẽ tạo racấu trúcchomột bảng(“Table”) trong
hệ quản trị cơ sở dữ liệu Bước tiếptheo sẽ là xác định khóa chính cho
bảng quan hệ Khóa chính này sẽ là một trường nào đó trong bảng mànhờ nó sẽ xác định được mỗi cá thể (bản ghi - là một bộ giá trị trong
bảng) trong cơ sở dữ liệu là duynhất Ví dụ như trườngMã sinh viênsẽ trở thành khóa chính cho bảng sinh viên này do việc quy định Mã sinh
viên trong hệthống là duy nhất Có nghĩalà, mỗi một sinh viên sẽ chì có
mộtMãsinh viên, và từgiá trị của Mã sinhviên tacó thể xác định đượcđối tượng sinhviên tương ứng
Người sử dụng có thể tạo ra các chỉ mục (index) nếu muốn Việc này giúp cho việc tìm kiếm trong bảng dữliệu nhanh chóng hơn Thông thường người sử dụng sẽ chọn trường khóa chỉnh chính là cột chỉ mục
trong bảng
Phần phép toán: Đây chính là một hệ thống các quy tắc, cú phápgiả ngôn ngữ lập trình cho máytính dùng để xử lý dữ liệu Mộttrong các ngôn ngữ sử dụng ở phần phép toán này là ngôn ngữ SQL (Structured
Trang 28Query Language), và nỏ được sửdụngnhiều trong cơsở dữ liệu quanhệ.
Ngoài ra, còn có các ngôn ngữ khác như IMS/DLI (Information
(Conference on Data Systems Languages) ứong các hệ thống thông tin
của IBMdùng với ngôn ngữ lập trình COBOL
Trong phần phép toán xử lý, các dữ liệu sẽ được biến đổi tùy theocâu lệnh của ngôn ngữ mà nó sử dụng, ví dụ như SQL, nhưng các phéptoánnày sẽ không làm thay đổi cấu trúc haybàn chất của các đối tượng
cơ sở dữ liệu đanglưutrữ
Tập các phép toán xử lýthường được tổ chức thành các chức năngkhác nhau và bắtđầubằng động từđểthề hiện chức năng xử lý đó Ví dụ
các “động từ” câu lệnhsau của ngôn ngữ SQL:
•SELECT FROM WHERE
•INSERTINTO VALUES
• UPDATE SET WHERE
• DELETE FROM WHERE
Tập các ràng buộc: Tập các ràng buộc dữ liệu là việc duy trì vàđảm bảo sự chính xác của dữ liệu trong vòng đời của dữ liệu ừong hệ thống Ràng buộc dữ liệuđược coi như là một phần bắt buộctrong việc
thiết kế, cài đặt và sử dụng cùa bất cứ hệ thống nào Ràng buộc dữ liệu
cũng được hiểu theo nghĩa rất rộng và nó cũng tùy thuộc vào phạm vi, hoàn cành củaviệcthể hiện cơ sở dữ liệu frong từnghệthống Mộttrong
ràng buộc lớn nhất là đàm bảo toàn vẹndữ liệu Nghĩa làtránh được sựsụpđổhaythất thoát dữ liệu Nó đảmbảo các dữ liệu lưu trữ là chính xác
theo ý đồ củanhà thiết kế, và sự truy xuất được về sau Nói cách khác,
mục đích của toàn vẹn dữ liệu là để ngăn chặn sự thay đổi thông tin không chủ định
Lưuý rằng,toàn vẹn dữ liệu không đượcnhầm với an toàn dữ liệu
An toàn dữ liệu là việc ngăn chặn sự xâm nhập ưái phép dữ liệu cùa
Trang 29người không có quyền truy cập Bất cứ sự thay đổi không có chủ đíchnào cho dữ liệu như lỗi người dùng, lỗi của lưutrữ, rút trích, thao tác xử
lý, là một sựthể hiện thấtbại của toàn vẹn dữ liệu
Các kiểu ràng buộc toàn vẹn dữ liệu: Đây là các ràng buộc nhằm
mục đích đảm bảo sự toàn vẹn của dữ liệu cho các lỗi đã đề cập ở trên Trong mô hình quan hệ, các kiểu ràng buộc sau là chủ yếu: Toàn vẹn
thực thể, toàn vẹn tham chiếu, toàn vẹn miền (domain integrity), và toàn
vẹn người dùng (user-defined integrity).
• Toàn vẹn thực thể (cóthể xem như khái niệmvề khóa chính) làmột luật toàn vẹn chỉ ra rằngmỗi bảng quan hệ phải có một khóachính, trong đó khóa chính này cần là duy nhất (không trùng lặp dữ liệu) hoặc
khôngđược bỏ trống Ví dụ, Mãsinh viên sẽ xác định duy nhất một sinh
viên trong bảng Sinh Viên, và tạo lập một bộ giá trị cho một người sinhviên Chính vì vậy, hệ thống bắt buộc phải quy định cách sinh mã cho người sinh viên này
• Toàn vẹn tham chiếu (cóthể xem như khái niệm về khóa ngoại)
là một luật chỉ ra rằngnó có mối liên hệ với khóa chính ở mộtbảng quan
hệ nào đó trong cơ sởdữliệu Đôi khi giá trị của khóa ngoại này có thể
bỏ trống (null) để chỉ ra ràng, không có mối quan hệ nào giữa các đốitượng thể hiện trong cơ sở dữ liệu, hay nói cách khác là mối quan hệ
chưa rõ
• Toàn vẹn miền để chỉ rarằng mọi cột cùa cơsở dữliệu quanhệphải được khai báo với miền định danh tương ứng với hệ quản trị cơ sở
dữ liệu đang sử dụng Miền chính là một tập các giá trị có cùng kiểu mà
trong đó mỗi phần tử dữ liệu sẽ nhận một giá trị nguyêntốtrênmiền Ví
dụ nếu ta khai báo cộtMã sinh viên là kiểu kí tự, thì mỗi sinh viên sẽ cómột chuỗi kí tự tương ứng với mã của sinh viên đó (xem ở bảng dưới).Hay cột số tín chỉ môn học của bảng Môn học có giá trị số nguyên thì
mỗi môn học sẽ có duy nhấtmột giá trị nguyên tương ứng với số tín chỉ
của môn đó
Trang 30MONHOC
• Toàn vẹn người dùng: Đây là một tập các luật được địnhnghĩa bởi người dùng như quy cách nhập dữ liệu, cách kí hiệu mã, Ví dụ ở bảngSINHVIEN nói trên, mã sinh viên là “2014S0081” để muốn kí hiệu rằng sinh viên Nguyễn Duy TrungAnhnhập họcvàotrường năm 2014 ở
khoa s và có thứ tựlà 0081 Hay ở bảng MONHOC, với mônhọclàTin
•học Đại cương sẽ có MaMon tương ứnglàINFO0111 để muốn nói rằng đây là môndobộ môn Tin học (Mã là INFO) phụ trách giảng dạy
Nếu bànthâncơsở dữ liệu (thường là hệ quản trị CSDL) hỗ trợ các
yếu tố cho sự toànvẹnnói frên thì nó đảmbảoviệc toàn vẹn dữ liệu cho
mô hình khi lưu trữ và khai thác dữ liệu Tuy nhiên, nếu hệ quản trị
không có nhữngchức năng như vậy, thì bản thân các ứng dụng chạyưên
CSDL đó phải xâydựng các điều kiện toàn vẹn nói ttên, để đảm bảotoànvẹn cho việckhai thác vàxử lý dữ liệu trong hệ thống
Một hệ cơ sở dữ liệu có sự định nghĩarõ ràng, và toàn vẹn dữ liệu
nó làm cho hệthống tăng sự ổn định, tăng tính hiệuquả (thểhiện ở các
phéptoántoànvẹnđược thực hiện ởmôhình thống nhất),tăngkhả năng
sửdụng lại dữ liệu và tăngkhả năng duy tri
Trang 31Ví dụ: Sơ đồ dưới đây chỉ ra sự toàn vẹn tham chiếu giữa bảng
SINHVIEN, SVHP, và bảng HOCPHAN Nếungườisử dụng thêm một
bộ giá trị cho bảng SV_HP mà môn học đó, hoặc người Sinh viên đó
chưa được khai báo ở bảng SINHVIEN và bàng HOCPHAN thì cơ sở dữ
liệusẽthông báolỗi và không cho phép lưutrữ dữ liệu cập nhật nóitrên
QueQuan
Có nhiều mô hình được đề cập trong các giáo trình khác nhau,
nhưngcóthể nhìn nhậnnóở ba dạngsauđây:
•Mô hình dựatrênđốitượngthựcthể (Object-based)
•Mô hình dựatrênbảnghi (Record-based)
•Mô hình vật lý (physical model)
Hai mô hình đầu tiênmô tà dữ liệu ởmức khái niệm và mức ngoài
(external) còn mô hình cuối mô tả mức nội tại bên trong cài đặt của dữ
liệu (internal)
1.2.2 Một số mô hình thông dụng
a Mô hĩnh dựa trên đổi tượng
Mô hình này sử dụng các khái niệm như: Các thực thể, thuộc tính
và các quan hệ Mỗi một thực thể được đặc trưng cho một đối tượng riêng biệt (ví dụ như người, vật, sự kiện, phòng ban, ) trong một hệ
thống mà mô hình đang thể hiện trongCSDL Một thuộc tính làmột đặc điểm miêu tả tính chất của đối tượng mà chúng ta muốn ghi lại Một
quan hệlà mốiliên kết giữa các thực thể
Trang 32Các kiểu cơbảncủamô hình dựaữênđốitượng.
I
t i
I I ì I
BỊ Ten
BỊKhoa MSoTinChi
+MHOC triIOC
0
* 1
pCapNhatSTCQ 0
* +MHoc:;au
Diet kien
Hình 1.6: Mô hình hướng đổi tượng
b Mô hình dựa trên bản ghi
Trongmôhìnhdựatrênbànghi, CSDLbao gồm tậpcácbànghi có các kiểu khác nhau, mỗi một kiểu được định nghĩa bởi một trường
(Field) tươngứng với độ rộng cho kiểu của trường đó
Các kiểu môhìnhcơbản:
• Mô hình dữ liệu quan hệ (relational data model).
Trang 33•Mô hình mạng (network data model).
•Môhình phân cấp(hierarchical data model).
c Mô hình quan hệ
Là mô hình dựa trên các lý thuyết của quanhệ toán học Trong mô
hình này dữliệuvà quanhệ được thể hiệntại các bảng mà mỗi bảng có
một số cộtvới một tênduynhất
Hình 1.7 là mô tả ví dụ về lược đồquan hệ quản lý dự ánmà miêu
tả quan hệ NHANVIEN, DEAN và PHANCONG một cáchchi tiết
NHANVIEN HONV TENLOT TIN NV MANY NGSINH MA.NQL PHG
Tran Hong Quang 987987387 03/09/1959 987654321 4 Nguyen Thanh Tung 333445555 12/08/1955 888665555 5 Nguyen Manh Hung 666884444 08Ư15/1962 333445555 5 Tran Thanh Toffi 453453453 07/31/1972 333445555 5
DEAN TEN DA MADA DDIEMJ3A PHONG
San phàm X 1 VUNGTAU 5
Sanphain Y 2 NHATRANG 5
San pham z 3 TPHCM 5
Tin hoc hoa to HANOI 4
PHANCONG MA_NVIEN SODA THOIGIAN
Trong lược đồ này thể hiện mối quan hệ giữa các bảng, ví dụ nhìn
vào 3 bảng ta cóthể thấynhân viên NguyenManhHungđược phân làm
dự ánsố 3 làm sản phẩm z tại TP HCM
Ví dụ khác: Cáclược đồ dưới đâymôtả hệ thống quản lýnhânviên
tạicác chi nhánhkhác nhau
Trang 34NHANVIEN
Rõ ràng nhìn vào lược đồ ta thấy nhân viên Nguyen Chi Anh là
quản lý với mức lương là30000USD và nhân viên này làm tại chi nhánh
số B005theo như ở bảng quanhệ CHINHANH
d Mô hình mạng
Trong mô hình mạng dữ liệu được thể hiện như một tập các bản ghi, và các mối quanhệ của mô hình được thể hiện bởi các tậphợp Cácbảnghi được tổchức như mộtcấu trúc đồ thị trong đó mỗi bàn ghi làmột
đỉnh (node - segment) và các tập hợp (quanhệ) làcác cạnh frong đồ thị
Ví dụ như hìnhdưới đây:
B005 22 Tran Phu Ha noi
/1 SL41 Nguyen Dung Tro ly 9000
8007 10 An Duong Vuong TPHCM SL21 Nguyen Chi Anh Quan ly 30000 B003 15 Nam Sach Ha noi
B004 20 Truc Ninh Nam Dinh SA9 Tran Mai Dung Tro ly 9000 B002 5 Hai Ba Trung Ha noi
Trang 35e Mô hình phân cấp
Hình 1.8: Ví dụ về mô phân cấp
Mô hình phân cấp là một kiểu thểhiện đặc biệt của mô hình mạng Dữ
liệu là tập các bảnghi và mối quanhệ đượcthể hiện thông qua các tập hợp (sets), tuynhiênmôhình này cho phép một nút(node) chỉ có một nút cha
Mô hình này tạo thành một đồ thị cây.Vớicác bản ghithểhiệnnhư các núttrên đồ thị, các tậphợp (sets) là các cạnh (edges) (xem Hình 1.6)
1.3 Kiến trúc cơ sở dữ liệu
1.3.1 Mức khung nhìn
Với chứcnăng này,hệ quảntrị CSDL cóthể xem như mộtcông cụmạnh và hữu ích Tuy nhiên, người dùng cuối không quá quan tâm đếnđiềunày, màhọ chỉ quan tâm đến làm thếnào để lấy dữ liệu từCSDL để
phụcvụ cho yêucầu đưa ra.Ví dụ, tacó lượcđồquan hệ sau:
PropertyForRent(PropertyNo, Street, city, type, rooms, rent,
OwnerNo)
PrivateOwner(ownerNo,Fname, LName, address, TelNo)
Client(clientNo, Fname, LName, address,TelNo,preType,maxrent)
Lease (leaseNo, propertyNo, clientNo, paymentmethod, deposit,
rentstart, rentfinish)
Và lược đồ được thể hiện ở dạng truyền thống (hệ thống lưu trữ
dướidạngtệp- file-based system)
Trang 36báu cáo Chưoog trinh úng
Truy cặp file Định nghía File
CSDLhọp đong
Hình 1.9: Lược đồ lưu trữ dữ liệu dạng truyền thống
Lúc đó, dữ liệu sẽ được tổ chức lại ở Hình 1.10, và hiển nhiên
CSDLbao gồm cà kiểu của tài sản (property type), số phòng (the number
of rooms), và chủ sở hữu (owner) Hệ quản trị CSDL cho phép người dùng hiển thị (View) các thông tin lấy từ CSDL theo yêu cầu Ví dụ, chúng ta có thể thiết lập cho phép phòng Hợp đồng (contract) chỉ xemđượccácthông tin màhọyêucầuvề tài sàn thuê theo yêu cầu
Trang 37chung về nhânviênmàkhôngbao gồm phầntính toán lương nói trên.
• Cá nhân hóa View: View cung cấp cách thức để cá nhân hóa
việc thể hiện của CSDL, sựthống nhấtvề cấu trúc của CSDL Ví dụ, có
thể đổi tên các trường của bảng bằng cách gọi kháctrong view (gần gũi
với NSD), hoặc nếu trong bảng thêm hoặc bớt một trường mà không
ảnh hưởng đến view thì các kết quả dữ liệu trong view cũng không bị ảnh hưởng
1.3.2 Mức khải niệm
Trongkiếntrúc 3 tầng của CSDL, lược đồ logic có thể coi là nhân
của CSDL Nó hỗ trợ các khung nhìn(view) bênngoài CSDL, và ngược
lại, nó cũng được hỗ trợ bởi lược đồ bêntrong (sự cài đặtvật lý của lược
đồ khái niệm)
Khi CSDL được thể hiện ở lược đồ khái niệm, nó phải là sự thểhiện một cáchchínhxác các dữ liệu yêu cầu củadoanh nghiệp Vì nếusựthể hiện này không hoàn hảo các dữ liệu của doanh nghiệp sẽ bị thiếu,không chuẩn xác và điều này dẫn đếnkhó có thể cài đặt một hoặc nhiều
khung nhìn (views) từbênngoài
Như vậy, cài đặt CSDL ở mức khái niệm (đôi khi còn gọi là môhình logic) là một quy trình xây dựng mô hình thông tin sử dụng cho doanh nghiệp mà ở đó cácthành phần cài đặt trong mô hình làhoàn toàn độc lập như: Chọn hệ CSDL, Các chươngtrình ứng dụng, ngônngữ lập
trình,
Trang 381.3.3 Mức vật lý
MôtàCSDLở mức vật lý (lược đồở mức vật lý) làviệcmôtảcách
mà dữ liệu sẽ được lưutrữtrongmáytính,nghĩa là các thông tin sẽđượcthể hiện ở các cấu trúc bản ghi, các bàn ghi được đánhthứ tự, và đườngdẫn truy cập vào CSDL đó Như vậy, cài đặt CSDLở mức vậtlýchính là
sựthể hiện chi tiết CSDL mức kháiniệmtrongbộ nhớ củamáy tính
Ví dụ dướiđây sẽ thểhiện các mứccủamộtCSDL:
index MaNV; /*Xãc định các dứ mục cho tệp NHANVIEN * /
index Ma dli nhanh;
1.4 Ngôn ngữ quản trị CO ’ sở dữ liệu
Mộthệ CSDL cung cấp hai kiểu ngôn ngữ khác nhau là: Ngôn ngữ đặc tả sơ đồ dữ liệu, gọi là ngôn ngữ định nghĩa dữ liệu (DDL - DataDefinition Language); và ngôn ngữ biểu diễn các truy vấn và cập nhật CSDL, gọi là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation
Language) Các ngônngữ này còn được gọi là các ngôn ngữ dữliệu con
(data sublanguages) bởi vì chúng không có cấu trúc cho các tính toán cần
Trang 39thiết nhưcấu trúcđiều kiện hoặc cấu trúc lặp nhưưongcác ngôn ngữlập
trình bậc cao Các ngôn ngữ dữ liệu connày đều sử dụng các lệnhthông
qua việcgõ trực tiếp từ cửa sổ lệnh(Terminal)
Tuy nhiên, hầu hết các hệ quản trị CSDL đều thường gắn với một ngôn ngữ lập trình bậc cao nào đó ví dụ như COBOL, Fortran, Pascal,
Ada, c, c ++, Java, hoặc Visual Basic (ngôn ngữ chủ) Khi biên dịch các
tệp chủ (file host), các lệnh trong ngôn ngữ dữ liệu con sẽ được loại bỏ khỏi các chương trình chù và được thay thế bằng các lời gọi hàm Tệp chủ trước khi dịch sẽ được thay thế bằng một module đối tượng có liênkết với các hàmthư viện cụthể của hệ quản trị mà đã bao gồm các hàm(đã được thaythếnóitrên) Tệp nàysẽ được thực thi khi có yêu cầu
1.4.1 Ngôn ngữ định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu cho phép khai báo, hiệu chỉnh cấutrúc CSDL, môtảcác mối quan hệ của dữ liệu, các quy tắc áp đặt lên dữ
liệu Kết quà biên dịchcác lệnh của DDL là tập hợp các bảng được lưutrữ trong một tập tin đặc biệt được gọi từ điển dữ liệu hay thư mục dữliệu (system catalog) Các thưmục dữ liệu sẽ hòa nhập với không gian
dữ liệu (metadata) màởđó dữ liệu đang được miêu tàdưới các đối tượng
trong CSDL để giúp cho người sử dụng dễ dàng truy cập và sử dụng
Ngôn ngữ này bao gồm các lệnh trực tiếp tác động đến cấu trúc của
CSDL như: CREATE (tạo), ALTER(sửa) và DROP (xóa)
Ví dụ tạo bảng:
CREATE TABLE customer(
customer nameCHAR( 20 ) not null,
customer streetCHAR( 30 ),
customer_city CHAR( 30 ),
PRIMARY KEY(customer_name) );
1.4.2 Ngôn ngữ khai thác dữ liệu
Ngôn ngữ khai thác dữ liệu cho phép người dùng thực hiện các
thaotác trên dữliệu như tìm kiếm, chèn, sửa đổi, xoá bỏ thông tin Một
Trang 40phần quan trọng của ngôn ngữ DML là các câulệnhđểrút trích thông tin (ngôn ngữ truy vấn - query language) Ngôn ngữ truy vấn thường được chia thành hai loại là: thủ tục và phi thủ tục DML thủ tục (procedural
DML) Ngônngữ này yêu cầu người dùng phải xác định dữ liệu nào họ
đang cần và xác định cách thức để có đượcdữ liệu đó Ngồn ngữ thứ hai
làDML phi thủ tục (Non-procedural DML) Với ngônngữ này, yêu cầu
người dùng xác định dữliệunào họ đang cần, chứ không yêu cầungườidùng xác định cách thức để có dữliệu đó Hay nói cách khác, ngôn ngữthủtục xử lý các bảnghi riêng rẽ trongkhi ngôn ngữ phi thủ tục sẽ làm
việc vớimột loạt các bảnghi
• Ngôn ngữ thủ tục: Là ngôn ngữ cho phép người dùng trao đổi
trực tiếp với hệ thống các dữliệu cần xửlý và chính xác cáchthức rút
trích dữ liệu Nghĩa là, ngườidùngphải chira tất cả các thao tác truycập
dữ liệu sẽ dùng thông qua việc gọi các thủ tục tương thích để có các thông tin yêu cầu Thông thường, một thủ tục DMLsẽ rút trích 1 bàn ghi,
xử lý nó và dựa vào kếtquả xử lý sẽrút trích một bản ghi khác để xử lýtương tự, Thủ tục DML thường được gắn với ngôn ngữ lập trình bậc cao mà có cấu trúc lặp để điều hướng logic Ngôn ngữ xử lý dữ liệu môhình mạng và môhình phân cấp là các thủ tục
• Ngôn ngữ phi thủ tục: Là ngôn ngữ mà cho phép người dùngchỉ
ranhững dữ liệu nào được xử lý chứ không phải chỉ ra cách thức rúttrích
nó thếnào Đôi khi người tacòngọi nó làngônngữkhai báo (declarativelanguages) Hệ quàn trị dữ liệu dịch các câu lệnh xử lý thành một hoặcnhiều thủ tục mà xử lý tập các bản ghi theo yêu cầu của người dùng
Điềunày cho phépngười dùng hiểu cách thức cài đặtcấu trúc của dữ liệu
và loại thuật toán màsừ dụng để rút trích hoặc biến đổi dữ liệu (thể hiện cấp độc lập về mặt dữ liệu) Trong hệ quàn trị CSDL quan hệ ngônngữ
phi thủtục được sử dụng chính là SQL (Structured Query Language) hoặc
QBE (Query-By-Example)
• Ngôn ngữ thế hệ thứ 4 Fourth-Generation Languages (4GLs):
Đây là ngôn ngữ CSDLmàngười dùng khôngcần phải chỉ ra từngbước