Giáo trình Cơ sở dữ liệu - Ngành: Tin học ứng dụng, công nghệ thông tin

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH  
TRƢỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT  
THÀNH PHỐ HỒ CHÍ MINH  
  
GIÁO TRÌNH  
MÔN HỌC: CƠ SỞ DỮ LIỆU  
NGÀNH: TIN HỌC ỨNG DỤNG, CÔNG NGHỆ THÔNG TIN  
TRÌNH ĐỘ: TRUNG CẤP, CAO ĐẲNG  
Thành phố Hồ Chí Minh, năm 2020  
ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH  
TRƢỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT  
THÀNH PHỐ HỒ CHÍ MINH  
  
GIÁO TRÌNH  
MÔN HỌC: CƠ SỞ DỮ LIỆU  
NGÀNH: TIN HỌC ỨNG DỤNG, CÔNG NGHỆ THÔNG TIN  
TRÌNH ĐỘ: TRUNG CẤP, CAO ĐẲNG  
THÔNG TIN CHỦ NHIỆM ĐỀ TÀI  
Họ tên: Vũ Thị Phƣơng Dung  
Học vị: Thạc sĩ  
Đơn vị: Khoa CNTT  
TRƢỞNG KHOA  
TỔ TRƢỞNG  
BỘ MÔN  
CHỦ NHIỆM  
ĐỀ TÀI  
HIỆU TRƢỞNG  
DUYỆT  
Thành phố Hồ Chí Minh, năm 2020  
TUYÊN BỐ BẢN QUYỀN  
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép  
dùng nguyên 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.  
LỜI GIỚI THIỆU  
Giáo trình cơ sở dữ liệu này đƣợc biên soạn căn cứ theo chƣơng trình đào tạo  
chuyên ngành Tin học ứng dụng ở bậc trung cấp và ngành Công nghệ thông tin ( Ứng  
dụng phần mềm) bậc cao đẳng. Giáo trình trình bày những vấn đề cốt lõi nhất của môn  
cơ sở dữ liệu, gồm bốn chƣơng. Các bài học đƣợc trình bày ngắn gọn với ví dụ minh  
hoạ. Cuối mỗi chƣơng đều có bài tập để học sinh sinh viên luyện tập.  
Trong quá trình giảng dạy và biên soạn giáo trình này, tác giả đã nhận đƣợc sự  
động viên của các thầy cô Ban Giám Hiệu nhà trƣờng cũng nhƣ những ý kiến góp ý  
của các đồng nghiệp trong khoa Công nghệ thông tin. Tôi xin chân thành cảm ơn và hy  
vọng rằng giáo trình này sẽ giúp cho việc dạy và học môn cơ sở dữ liệu của nhà trƣờng  
ngày càng tốt hơn.  
TP.HCM, ngày 25 tháng 9 năm 2020  
Tham gia biên soạn  
Vũ Thị Phƣơng Dung  
MỤC LỤC  
GIÁO TRÌNH MÔN HỌC  
Tên môn học: Cơ sở dữ liệu  
Mã môn học: MH 2101071, MH3101301  
Vị trí, tính chất, ý nghĩa và vai trò của môn học/mô đun:  
- Vị trí:  
Là môn học đƣợc bố trí ở học kỳ 3- cơ sở, học kỳ 2 - phổ thông  
Là môn học cơ sở ở học kỳ 2 – cao đẳng  
- Tính chất: là môn học lý thuyết thuộc nhóm môn học bắt buộc  
- Ý nghĩa và vai trò của môn học: cung cấp cho ngƣời học kiến thức về các khái niệm  
cơ bản về cơ sở dữ liệu, phân biệt mô hình thực thể và mô hình quan hệ, ràng buộc  
toàn vẹn, đại số quan hệ, định nghĩa và sửa đổi định nghĩa bảng bằng các câu lệnh  
SQL, thực hiện việc ràng buộc khóa chính, khóa ngọai trong CSDL, cập nhật và sửa  
đổi dữ liệu bằng các câu lệnh SQL. Sử dụng đƣợc các câu lệnh SQL để truy vấn rút  
trích, lọc, thống kê dữ liệu.  
Mục tiêu của môn học:  
- Về kiến thức:  
+ Trình bày đƣợc khái niệm các thành phần cơ bản của một cơ sở dữ liệu  
+ Phân biệt các hệ quản trị CSDL. Mô tả và vẽ đƣợc các thành phần trong mô hình  
ERD, mô hình dữ liệu quan hệ.  
+ Liệt kê đƣợc các từ khóa sử dụng trong câu lệnh truy vấn (SQL) và ý nghĩa sử dụng  
của chúng.  
+ Trình bày đƣợc cú pháp, chức năng các câu lệnh SQL cơ bản.  
- Về kỹ năng:  
+ Vẽ đƣợc mô hình thực thể kết hợp từ một tình huống thực tế cơ bản đƣợc mô  
tả chi tiết. Xây dựng đƣợc mô hình dữ liệu quan hệ từ mô hình thực thể đã vẽ.  
+ Thiết lập đƣợc cơ sở dữ bằng các câu lệnh SQL. Viết đƣợc các câu lệnh SQL  
để thêm, sửa, xóa, và truy vấn khai thác dữ liệu  
- Về năng lực tự chủ và trách nhiệm:  
+ Nhận thức đƣợc lợi ích của mô hình thực thể kết hợp trong hoạt động phân  
tích và thiết kể. Nhận thức đƣợc tính phổ biến, thực dụng của mô hình dữ liệu  
quan hệ trong các phần mềm có kết nối và sử đụng cơ sở dữ liệu.  
+ Nhận thức đƣợc tầm quan trọng của việc phân công hợp lý, theo dõi, kiêm tra, đánh  
giá trong hoạt động nhóm.  
Chƣơng 1: Tổng quan về CSDL  
CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (CSDL)  
Giới thiệu:  
Chƣơng này trình bày các khái niệm về Cơ sở dữ liệu, hệ quản trị CSDL, ngƣời  
dùng; giới thiệu các đặc tính, quá trình phát triển của Cơ sở dữ liệu; khái niệm mô  
hình, lƣợc đồ và thể hiện Cơ sở dữ liệu. Trình bày quá trình thiết kế CSDL; khái niệm  
mô hình thực thể kết hợp, thực thể, thuộc tính, loại thực thể, khóa, mối kết hợp, cách  
thiết kế mô hình thực thể kết hợp. Giới thiệu khái niệm mô hình dữ liệu quan hệ, các  
đặc trƣng của quan hệ, cách chuyển mô hình thực thể kết hợp sang mô hình quan hệ.  
Bài tập.  
Mục tiêu:  
Phát biểu đƣợc các khái niệm và trình bày đƣợc các đặc trính về CSDL. Phân  
biệt các thành phần trong CSDL, các mô hình, trình bày đƣợc hệ thống ký hiệu trong  
mô hình thực thể kết hợp . Chuyển đƣợc mô hình thực thể kết hợp sang mô hình quan  
hệ. Thiết kế đƣợc mô hình thực thể kết hợp từ tài liệu mô tả tình huống đơn giản.  
Nội dung chính:  
1. Khái niệm  
1.1 Dữ liệu  
Là các thông tin của đối tƣợng (ngƣời, vật, một khái niệm, sự việc…) đƣợc lƣu  
trữ trên máy tính. Dữ liệu đƣợc mô tả dƣới nhiều dạng khác nhau (các ký tự, ký số,  
hình ảnh, ký hiệu, âm thanh…). Mỗi cách mô tả gắn với một ngữ nghĩa nào đó.  
Dữ liệu về đối tƣợng có thể khác nhau, tùy thuộc vào ngữ cảnh.  
Ví dụ: dữ liệu về đối tƣợng sinh viên có thể khác nhau tùy vào mục đích quản  
lý: quản lý điểm: Tên, mã sinh viên, điểm môn 1, điểm môn 2, điểm môn 3. Trong khi  
đó quản lý nhân thân: Tên, địa chỉ, ngày sinh, quê quán, lớp.  
1.2 Cơ sở dữ liệu ( Database)  
Cơ sở dữ liệu (CSDL) là tập hợp dữ liệu đƣợc tổ chức có cấu trúc liên quan với  
nhau và đƣợc lƣu trữ trong máy tính.  
CSDL đƣợc thiết kế, xây dựng cho phép ngƣời dùng lƣu trữ dữ liệu, truy xuất thông  
tin hoặc cập nhật dữ liệu.  
CSDL đƣợc tổ chức có cấu trúc: Các dữ liệu đƣợc lƣu trữ có cấu trúc thành các  
bản ghi (record), các trƣờng dữ liệu (field). Các dữ liệu lƣu trữ có mối quan hệ  
(relation) với nhau  
CSDL đƣợc cấu trúc để dễ dàng truy cập, quản lý và cập nhật.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 1  
   
Chƣơng 1: Tổng quan về CSDL  
1.2.1 Ƣ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 quán và toà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.2.2 Những vấn đề mà CSDL cần phải giải quyết  
-Tính chủ quyền của dữ liệu  
Tính chủ quyền của dữ liệu đƣợc thể hiện ở phƣơng diện an toàn dữ liệu, khả  
năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu.  
Đ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.  
-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 nguyên 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 an toàn 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 luôn ổ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.3 Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS)  
Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra nhƣ đã nói ở trên,  
cần thiết phải có những phần mềm chuyên dùng để khai thác chúng. Những phần mềm  
này đƣợc gọi là các hệ quản trị CSDL. Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho  
các nhà phân tích thiết kế CSDL cũng nhƣ những ngƣời khai thác CSDL. Hiện nay  
trên thị trƣờng phần mềm đã có những hệ quản trị CSDL hỗ trợ đƣợc nhiều tiện ích  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 2  
Chƣơng 1: Tổng quan về CSDL  
Ví dụ: SQL Server, Microsoft Access, Oracle là các hệ quản trị CSDL điển hình  
cho mô hình quan hệ. IMS của IBM là hệ quản trị CSDL cho mô hình phân cấp. IDMS  
là hệ quản trị CSDL cho mô hình mạng.  
1.3.1 Những lợi ích DBMS mang lại  
Quản trị các CSDL và cung cấp giao diện truy cập để che dấu các đặc tính phức  
tạp về mặt cấu trúc tổ chức dữ liệu vật lý Hỗ trợ các ngôn ngữ giao tiếp. Ví dụ: Ngôn  
ngữ mô tả, định nghĩa dữ liệu – DDL. Ngôn ngữ thao tác dữ liệu – DML. Ngôn ngữ  
truy vấn dữ liệu có cấu trúc – SQL Có cơ chế an toàn, bảo mật cao.  
1.3.2 Một DBMS phải có:  
Ngôn ngữ giao tiếp giữa ngƣời sử dụng (NSD) và CSDL  
Ngôn ngữ mô tả:(Data definition language-DDL) để cho phép khai báo cấu trúc  
của CSDL, khai báo các mối liên hệ của dữ liệu (Data RelationShip) và các quy tắc  
(Rules, Constraint) quản lý áp đặt lên các dữ liệu đó.  
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML) cho phép  
ngƣời sử dụng có thể thêm (Insert), xóa (Delete), sửa (Update) dữ liệu trong CSDL.  
Ngôn ngữ truy vấn dữ liệu, hay ngôn ngữ hỏi đáp có cấu trúc (Structured Query  
Language - SQL) cho phép những ngƣời khai thác CSDL (chuyên nghiệp hoặc không  
chuyên) sử dụng để truy vấn các thông tin cần thiết trong CSDL.  
Ngôn ngữ quản lý dữ liệu (Data Control Language - DCL) 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 CSDL cho ngƣời sử dụng.  
Từ điển dữ liệu (Data Dictionary)  
Có biện pháp bảo mật tốt khi có yêu cầu bảo mật.  
Cơ chế giải quyết vấn đề tranh chấp dữ liệu  
Hệ quản trị CSDL 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  
Hệ quản trị CSDL phải cung cấp một giao diện (Interface) tốt, dễ sử dụng, dễ  
hiểu cho những ngƣời sử dụng không chuyên.  
Bảo đảm tính độc lập giữa dữ liệu và chƣơng trình  
1.4 Ngƣời dùng ( User)  
Ngƣời dùng khai thác CSDL thông qua HQTCSDL có thể phân thành ba loại:  
ngƣời quản trị CSDL, ngƣời phát hiện và ứng dụng lập trình, ngƣời dùng cuối.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 3  
Chƣơng 1: Tổng quan về CSDL  
1.4.1 Ngƣời quản trị CSDL  
Chịu trách nhiệm quản lý và bảo trì CSDL, ngƣời này cần có kiến thức chuyên  
sâu về hệ quản trị cơ sở dữ liệu, biết ngôn ngữ cấu trúc truy vấn (T-SQL) ở mức rành  
rỏi. Công việc của đối tƣợng này là tổ chức hệ thống CSDL, bảo mật, phân quyền hay  
cấp quyền cho các đối tƣợng khác, backup phục hồi dữ liệu và bảo đảm an toàn dữ  
liệu. Nếu bạn muốn trở thành đối tƣợng này thì bạn phải nghiên cứu sâu các mô hình  
CSDL, các hệ quản trị CSDL và cần có kinh nghiệm thực tế rất cao.  
1.4.2 Ngƣời phát hiện và ứng dụng lập trình  
Là những ngƣời xây dựng các công cụ, ứng dụng nhằm giúp ngƣời dùng cuối  
sử dụng khai thác cơ sở dữ liệu, đối tƣợng này ta gọi là Application User. Nếu bạn  
muốn sau này bạn sẽ là một coder chuyên xây dựng các ứng dụng website thì bạn  
chính là chuyên viên tin học.  
1.4.3 Ngƣời dùng cuối  
Thƣờng là ngƣời sử dụng hệ thống CSDL, đối tƣợng này không có kiến thức về  
quản trị hệ thống, nghĩa là không chuyên về lĩnh vực này nên họ cần một công cụ giúp  
quản trị, khai thác dữ liệu khi cần. Thông thƣờng khi làm dự án thì khách hàng chính  
là đối tƣợng ngƣời dùng cuối.  
1.5 Quá trình phát triển của Cơ sở sữ liệu  
Lịch sử của cơ sở dữ liệu đƣợc xem nhƣ bắt đầu vào những năm 60 của thế kỷ  
trƣớc, khi máy tính bắt đầu đƣợc sử dụng tƣơng đối rộng rãi. CSDL có quy mô lớn đầu  
tiên đƣợc công ty IBM thực hiện cho Cục Quản trị Hàng không và Không gian Quốc  
gia (National Aeronautics and Space Administration hay NASA) của Mỹ để hỗ trợ cho  
việc quản lý dự án Apollo dùng để thám hiểm mặt trăng. Sau đó hệ cơ sở dữ liệu này  
đƣợc thƣơng mại hóa với tên IMS (Information Management System). Hệ này sử dụng  
mô hình dữ liệu phân cấp (hierarchical).  
Cũng trong thời gian đó, Charles Bachman cũng phát triển Integrated Data  
Store (IDS) sử dụng mô hình dạng mạng (Network). Mô hình này sau đó đƣợc tiêu  
chuẩn hóa bởi CODASYL (Conference of Data System Language).  
Năm 1970, Edgar Codd, một nhà khoa học làm việc cho IBM, đề xuất một số  
khái niệm về hệ cơ sở dữ liệu quan hệ (relational) đánh dấu một bƣớc chuyển biến  
quan trọng trong lĩnh vực này. Tuy nhiên dƣờng nhƣ IBM không mặn mà lắm với  
những ý tƣởng của Codd, mặc dù họ cũng tạo ra một dự án nhỏ, System R, để nghiên  
cứu các đề xuất của Codd. Tuy vậy họ cũng tạo ra đƣợc ngôn ngữ SEQUEL (viết tắt  
của Structured English Query Language), tiền thân của SQL mà hiện chúng ta thƣờng  
sử dụng.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 4  
Chƣơng 1: Tổng quan về CSDL  
Năm 1976, Peter Chen đã hoàn thiện thêm hệ CSDL này bằng mô hình thực thể  
- liên kết (Entity-Relationship hay E-R).  
Năm 1979, Relational Software Inc (RSI), sau đổi tên là Oracle, là công ty đầu  
tiên sử dụng mô hình quan hệ để thƣơng mại hóa và dần dần chiếm lĩnh thị trƣờng  
quản lý dữ liệu. Cũng trong thời gian này IBM cũng bắt đầu thƣơng mại hóa SQL.  
Chẳng bao lâu SQL trở thành tiêu chuẩn để sử dụng với CSDL quan hệ.  
Cùng với sự phát triển của máy tính, bên cạnh các tập tin văn bản, dữ liệu đƣợc  
thể hiện dƣới dạng những ký tự, ta còn có những loại tập tin khác, các tập tin hình ảnh,  
các bản vẽ đƣợc tạo ta từ những phần mềm CAD, dữ liệu đƣợc thể hiện bằng những  
phƣơng thức khác. Vì thế từ thập niên 1980, HQTCSDL hƣớng đối tƣợng (object-  
oriented DBMS) bắt đầu đƣợc nghiên cứu và đến những năm 1990, chúng bắt đầu  
đƣợc đƣa ra thị trƣờng.  
Cũng bắt đầu từ thập niên 1990, cùng với sự bùng nổ của internet và các dịch  
vụ trực tuyến, các HQTCSDL phục vụ cho thị trƣờng này phát triển mạnh mẽ. Bên  
cạnh các sản phẩm của các đại gia nhƣ Oracle Database của Oracle, DB2 Universal  
Database của IBM, SQL Server của Microsoft, Sybase Adaptive Server của Sybase,  
cũng xuất hiện các phần mềm miễn phí, mã nguồn mở, nổi bật hơn cả là MySQL,  
PostgreSQL, SQLite.  
Bên cạnh đó, một xu hƣớng khác cũng xuất hiện từ đầu thế kỷ 21 là các  
HQTCSDL theo hƣớng NoSQL (đƣợc hiểu là “not only SQL”), nhƣ MongoDB, có  
khả năng làm việc với các dữ liệu có cấu trúc ít bị ràng buộc chặt chẽ hơn, có thể hoạt  
động trong điều kiện có cấu hình phần cứng hạn chế nhƣ trên điện thoại di động.  
2. Mô hình thực thể - kết hợp ERD  
Mô hình dữ liệu thực thể - kết hợp (Entity - RelationShip Model) do P.P.Chen  
đề xuất vào năm 1976, đƣợc sử dụng để biểu diễn cơ sở dữ liệu ở mức khái niệm. Mô  
hình thực thể kết hợp bao gồm có các thực thể, danh sách thuộc tính và những mối kết  
hợp.  
2.2.1 Thực thể (Entity)  
Là một đối tƣợng, một địa điểm, con ngƣời… trong thế giới thực đƣợc lƣu trữ  
thông tin trong CSDL. Mỗi thực thể bao gồm một hoặc nhiều thuộc tính đặc trƣng cho  
thực thể đó.  
Ví dụ: sinh viên Nguyễn Văn A, lớp 19CDTH3, môn học Cơ Sở Dữ Liệu, xe  
máy có biển số đăng ký 52D-6263,... là các ví dụ về thực thể.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 5  
 
Chƣơng 1: Tổng quan về CSDL  
2.2.2 Thuộc tính (attribute)  
Là các đặc tính riêng biệt của cơ bản của thực thể.  
Ví dụ: các thuộc tính của sinh viên Nguyễn Văn A là: mã số sinh viên, giới tính,  
ngày sinh, hộ khẩu thƣờng trú, lớp đang theo học, ...  
2.2.3 Loại thực thể (Entity type)  
Là tập hợp các thực thể có cùng thuộc tính. Mỗi loại thực thể đều phải đƣợc đặt  
tên sao cho có ý nghĩa. Loại đƣợc biểu diễn thực thể bởi hình chữ nhật và có danh sách  
các thuộc tính.  
TÊN LOẠI THỰC THỂ  
Ví dụ về loại thực thể sinh viên  
MSSV  
THUỘC TÍNH  
SINHVIEN  
HOTEN  
PHAI  
NGSINH  
LOẠI THỰC  
THỂ  
Ví dụ: các sinh viên có mã sinh viên là ““17234789”, “17234658”,  
“17235679”,... nhóm lại thành một loại thực thể, đƣợc đặt tên là Sinhvien.  
Tƣơng tự trong ứng dụng quản lý điểm của sinh viên ta có các loại thực thể nhƣ  
Monhoc, Lop, Khoa….  
2.2.4 Khóa của loại thực thể (Entity Key)  
Đó là các thuộc tính nhận diện của loại thực thể. Căn cứ vào các giá trị của các  
thuộc tính nhận diện này ngƣời ta có thể xác định một thực thể duy nhất của một loại  
thực thể.  
Ví dụ: khoá của loại thực thể LỚP HỌC là Mã Lớp; khoá của loại thực thể  
SINH VIÊN là Mã SV.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 6  
Chƣơng 1: Tổng quan về CSDL  
2.2.5 Mối kết hợp (relationship)  
Mối kết hợp diễn tả sự liên hệ giữa các loại thực thể. Mỗi mối kết hợp có một  
tên gọi và thƣờng dùng động từ. Mối kết hợp đƣợc biểu diễn bằng một hình thoi và hai  
bên là hai nhánh gắn kết vớicác loại thực thể (hoặc mối kết hợp) liên quan, tên mối kết  
hợp thƣờng là: thuộc, gồm, chứa,...  
Tên mối  
kết hợp  
LOẠI THỰC  
THỂ 2  
LOẠI THỰC  
THỂ 1  
Ví dụ mối kết hợp giữa hai loại thực thể Sinhviên và Lop, mối kết hợp giữa  
Sinhviên với Môn học,...  
LOP  
SINHVIEN  
Thuộc  
MONHOC  
SINHVIEN  
Học  
2.2.6 Bản số của mối kết hợp  
Bản số của một nhánh R trong mối kết hợp thể hiện số lƣợng các thực thể thuộc  
thực thể ở nhánh "bên kia” có liên hệ với một thực thể của nhánh R.  
Mỗi bản số là một cặp số (min,max), chỉ số lƣợng tối thiểu và số lƣợng tối đa  
của thực thể khi tham gia vào mối kết hợp đó.  
Giữa 2 loại thực thể có thể tồn tại nhiều hơn một mối kết hợp. Để mô hình hóa  
đầy đủ cho thế giới thực, cần phải phân loại các mối kết hợp theo số lƣợng các thực  
thể từ mỗi tập tham gia trong nó.  
Mối kết hợp một – một (1-1): quan hệ giữa hai tập thực thể trong đó mỗi thực  
thể của tập cha chỉ có thể liên kết với nhiều nhất một thực thể của tập con, và ngƣợc  
lại.  
Ví dụ, mỗi giảng viên đƣợc cấp 1 và chỉ một máy tính. Một máy tính chỉ đƣợc  
cấp cho 1 và chỉ một giảng viên.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 7  
Chƣơng 1: Tổng quan về CSDL  
( 1, 1)  
( 1, 1)  
MAYTINH  
GIANGVIEN  
Cấp  
Mối kết hợp một nhiều (1-n): quan hệ giữa hai tập thực thể trong đó mỗi thực  
thể của tập này có thể liên kết với nhiều thực thể của tập còn lại.  
Ví dụ: Mỗi sinh viên thuộc một và chỉ một lớp. Một lớp có nhiều sinh viên.  
( 1, 1)  
( 1, n)  
LOP  
SINHVIEN  
Thuộc  
Mối kết hợp nhiều – nhiều (n-n): quan hệ giữa hai tập thực thể trong đó một  
thực thể của tập này có thể liên kết với 0, 1 hoặc nhiều thực thể của tập kia, và ngƣợc  
lại. Thƣờng quan hệ N-N có thêm phần dữ liệu giao nhau để thêm thông tin cụ thể cho  
mối quan hệ  
Ví dụ: Mỗi sinh viên học một hoặc nhiều môn học. Một môn học có một hoặc  
nhiều sinh viên học.  
( 1, n)  
( 1, n)  
MONHOC  
SINHVIEN  
Học  
Ví dụ: Biểu diễn mô hình ERD cho mô tả: Sinh viên học nhiều môn học và  
đƣợc sinh ra tại một thành phố.  
MSSV  
( 1, 1)  
SINHVIEN  
HOTEN  
(1, n )  
Sinh tại  
PHAI  
(1, n)  
THANHPHO  
Học  
NGSINH  
MSMH  
(1, n)  
MSTP  
MONHOC  
TENMH  
SOTC  
TENTP  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 8  
Chƣơng 1: Tổng quan về CSDL  
3.Mô hình dữ liệu quan hệ của E.F.Codd  
Mô hình CSDL quan hệ lần đầu tiên đƣợc E.F.Codd và tiếp sau đó đƣợc công  
ty IBM giới thiệu vào năm 1970. Ngày nay, hầu hết các tổ chức đã áp dụng CSDL  
quan hệ để quản lý dữ liệu trong đơn vị mình. Trong mô hình quan hệ:  
Về mặt cấu trúc:  
- Dữ liệu đƣợc thể hiện tong các bảng.  
- Mỗi bảng bao gồm các hàng và các cột thể hiện thông tin về một loại thực thể  
- Các cột biểu thị các thuộc tính của loại thực thể và tên cột thƣờng là tên của  
thuộc tính.  
- Mỗi hàng biểu thị cho một thực thể, gồm một bộ các giá trị tƣơng ứng với các  
cột  
Về mặt thao tác trên dữ liệu:  
- Có thể cập nhật dữ liệu nhƣ thêm, xóa hay sửa bản ghi trong một bảng.  
- Các kết quả tìm kiếm thông tin qua truy vấn dữ liệu có đƣợc nhờ thực hiện các  
thao tác trên dữ liệu.  
Về mặt các ràng buộc dữ liệu:  
- Dữ liệu trong các bảng phải thỏa mãn một số ràng buộc. Chẳng hạn, không  
đƣợc có hai bộ nào trong một bảng giống nhau hoàn toàn.  
Sau đây là các khái niệm của mô hình dữ liệu quan hệ.  
3.1 Thuộc tính (Attribte)  
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.  
3.2 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 nguyên 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 nguyên tố.  
Chẳng hạn với sinh viên Nguyễn Văn A 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.  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 9  
 
Chƣơng 1: Tổng quan về CSDL  
3.3 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 thuộc tính NỮ  
có miền giá trị là {nam,nữ}, thuộc tính màu da có miền giá trị là {da trắng, da vàng, da  
đen, da đỏ}, thuộc tính điểm thi là các số thuộc tập {0; 1 ; 2;...,10].  
Lƣu ý rằng nếu không lƣu ý đến ngữ nghĩa thì tên của các thuộc tính thƣờng  
đƣợc ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái la tinh: A,B,C,D,...  
Những chữ cái in hoa X,Y,Z,W,... thƣờng dùng thay cho một nhóm nhiều thuộc tính.  
Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số Ai,A2,...,An để chỉ các thuộc tính  
trong trƣờng hợp tổng quát hay muốn đề cập đến số lƣợng các thuộc tính. Tên thuộc  
tính phải đƣợc đặt một cách gợi nhớ, không nên đặt tên thuộc tính quá dài (vì nhƣ thế  
sẽ làm cho việc viết các câu lệnh truy vấn trở nên vất vả hơn), nhƣng cũng không nên  
đặt tên thuộc tính quá ngắn (vì nó sẽ không cho thấy ngữ nghĩa của thuộc tính), đặc  
biệt không đặt trùng tên hai thuộc tính mang ngữ nghĩa khác nhau thuộc hai đối tƣợng  
khác nhau.  
Trong nhiều hệ quản trị cơ sở dữ liệu, ngƣời ta thƣờng đƣa thêm vào miền giá  
trị của các thuộc tính một giá trị đặc biệt gọi là giá trị rỗng (NULL). Tuỳ theo ngữ  
cảnh mà giá trị này có thể đặc trƣng cho một giá trị không thể xác định đƣợc hoặc một  
giá trị chƣa đƣợc xác định ở vào thời điểm nhập tin nhƣng có thể đƣợc xác định vào  
một thời điểm khác.  
3.4 Lƣợc đồ quan hệ (Relation schema)  
Tập tất cả các thuộc tính cần quản lý của một đối tƣợng cùng với các mối liên  
hệ giữa chúng đƣợc gọi là lƣợc đồ quan hệ.  
Lƣợc đồ quan hệ Q với tập thuộc tính {A1,A2,...,An} đƣợc viết là  
Q(A1,A2,...,An), ký hiệu Q+ = {Ai,A2,...,An}.  
Chẳng hạn lƣợc đồ quan hệ Sinhviên với các thuộc tính nhƣ MASV,  
HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP đƣợc viết nhƣ sau:  
SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,  
MALOP)  
Thƣờng thì khi thành lập một lƣợc đồ quan hệ, ngƣời thiết kế gắn cho nó một ý  
nghĩa nhất định, gọi là tân từ của lược đồ quan hệ. chẳng hạn tân từ của lƣợc đồ quan  
hệ Sinhvien là: ”Mỗi sinh viên có mỗi MASV duy nhất. Mỗi MASV xác định các  
thuộc tính còn lại của sinh viên đó nhƣ HOTENSV,NU, NGAYSINH,  
NOISINH,TINH,MALOP”  
Khi phát biểu tân từ cho một lƣợc đồ quan hệ, ngƣời thiết kế cần phải mô tả đầy  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 10  
Chƣơng 1: Tổng quan về CSDL  
đủ ý nghĩa để ngƣời khác tránh hiểu nhầm. Dựa vào tân từ này, ngƣời ta xác định đƣợc  
tập khoá, siêu khoá của lƣợc đồ quan hệ.  
Nhiều lƣợc đồ quan hệ cùng nằm trong một hệ thống thông tin đƣợc gọi là một  
lƣợc đồ cơ sở dữ liệu.  
Khái niệm lƣợc đồ quan hệ ứng với khái niệm loại thực thể ở mô hình thực thể  
kết hợp.  
3.5 Quan hệ (Relation)  
Sự thể hiện của lƣợc đồ quan hệ ở một thời điểm nào đó đƣợc gọi là quan hệ, rõ  
ràng là trên một lƣợc đồ quan hệ có thể xác định nhiều quan hệ. Thƣờng ta dùng các  
ký hiệu nhƣ R, S,Q để chỉ các lƣợc đồ quan hệ, còn quan hệ thƣờng đƣợc dùng bởi các  
ký hiệu là r, s,q,...  
Về trực quan thì quan hệ (hay bảng quan hệ) nhƣ là một bảng hai chiều gồm các  
dòng và các cột.  
Một quan hệ có n thuộc tính đƣợc gọi là quan hệ n ngôi.  
Để chỉ quan hệ r xác định trên lƣợc đồ quan hệ Q ta có thể viết r(Q).  
3.6 Bộ (Tuple)  
Mỗi bộ là những thông tin về một đối tƣợng thuộc một quan hệ, bộ cũng còn  
đƣợc gọi là mẫu tin.  
Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t, p, ...) để biểu diễn bộ trong  
quan hệ, chẳng hạn để nói t là một bộ của quan hệ r thì ta viết t e r.  
3.7 Siêu Khoá - Khoá (Super key- key)  
S là siêu khoá (super key) của Q nếu với r là quan hệ bất kỳ trên Q, t1,t2 là hai  
bộ bất kỳ thuộc r thì t1.S * t2.S.  
Một lƣợc đồ quan hệ có thể có một hoặc nhiều siêu khoá.  
Chẳng hạn lƣợc đồ quan hệ Sinhvien ở trên có các siêu khoá là:  
{MASV,HOTENSV},{MASV,HOTENSV,NU},{MASV,HOTENSV,NU,TINH },...  
Siêu khoá không chứa một siêu khoá nào khác đƣợc gọi là khoá chỉ định, trong  
trƣờng hợp lƣợc đồ quan hệ có nhiều khoá chỉ định (hay khoá nội), thì khoá đƣợc chọn  
để cài đặt gọi là khoá chính (trong các phần sau khoá chính đƣợc gọi tắt là khoá).  
Chẳng hạn với lƣợc đồ quan hệ SINHVIEN trên có khoá là {MASV}. Thƣờng các  
thuộc tính khoá đƣợc gạch dƣới theo kiểu liền nét.  
Một thuộc tính đƣợc gọi là thuộc tính khoá ngoại nếu nó không là thuộc tính  
khoá của một lƣợc đồ quan hệ này nhƣng lại là thuộc tính khoá của một lƣợc đồ quan  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 11  
Chƣơng 1: Tổng quan về CSDL  
hệ khác, chẳng hạn nhƣ MALOP là khoá ngoại của lƣợc đồ quan hệ SINHVIEN.  
Thƣờng các thuộc tính khoá ngoại đƣợc gạch dƣới theo kiểu không liền nét.  
SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP)  
LOP(MALOP,TENLOP,MAKHOA)  
Ý nghĩa thực tế của khoá là dùng để nhận diện một bộ trong một quan hệ, nghĩa  
là, khi cần tìm một bộ t nào đó, ta chỉ cần biết giá trị của thành phần khoá của t là đủ  
để dò tìm và hoàn toàn xác định đƣợc nó trong quan hệ.  
Trong thực tế đối với các loại thực thể tồn tại khách quan (ví dụ: Sinh viên,  
Giảng viên, Nhân viên, Hàng hoá,...) ngƣời thiết kế cơ sở dữ liệu thƣờng gán thêm cho  
các lƣợc đồ quan hệ này một thuộc tính giả gọi là mã số để làm khoá (ví dụ: mã số  
sinh viên, mã số giảng viên, mã số nhân viên, mã số hàng hoá,...). Trong khi đó các  
lƣợc đồ quan hệ biểu diễn cho sự trừu tƣợng hoá thƣờng có khoá là một tổ hợp của hai  
hay nhiều thuộc tính của nó.  
Một số hệ quản trị cơ sở dữ liệu hiện nay có tự động kiểm tra tính duy nhất trên  
khoá chính. Tức là nếu thêm một bộ mới q2 có giá trị khoá chính trùng với giá trị khoá  
chính của một bộ q1 nào đó đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu  
nhập lại một giá trị khác.  
Ngƣời ta cũng quy ƣớc rằng:  
- Trong một bộ của quan hệ các thuộc tính khoá không chứa giá trị rỗng.  
- Không đƣợc phép sửa đổi giá trị thuộc tính khoá của một bộ q. Nếu muốn sửa  
đổi giá trị thuộc tính khoá của một bộ q, ngƣời sử dụng phải huỷ bỏ bộ q và sau đó  
thêm một bộ q‟ với giá trị khoá đã đƣợc sửa đổi.  
Tóm lại, lƣợc đồ CSDL quan hệ không phải là dùng các kí hiệu nhƣ lƣợc đồ ERD  
mà nó dùng bằng ngôn từ và văn bản bình thƣờng để diễn đạt.  
Lƣợc đồ quan hệ nhằm mô tả cấu trúc của quan hệ, các mối liên hệ giữa các  
thuộc tính trong quan hệ đó  
Một lƣợc đồ quan hệ gồm một tập thuộc tính của quan hệ kèm theo một mô tả  
để xác định ý nghĩa và mối liên hệ giữa các thuộc tính  
Ví dụ:  
SINHVIEN(MASV,HOSV,TENSV,NGAYSINH,MAKHOA,HOCBONG)  
Tân từ: Mỗi sinh viên đƣợc nhận diện qua MASV, phải có họ tên ngày sinh và học  
khoa nào, và có thể có học bổng hoặc không có học bổng  
Ví dụ: KETQUA(MASV,MAMH,LANTHI,DIEM)  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 12  
Chƣơng 1: Tổng quan về CSDL  
Tân từ: Mỗi sinh viên có thể dự thi các môn đã đăng ký,mỗi môn đƣợc thi tối đa 2 lần.  
4.Các bƣớc chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ  
Bƣớc 1: Xác định loại thực thể  
Bƣớc 2: Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ  
Bƣớc 3: Xác định thuộc tính khóa  
Bƣớc 4: Xác định ràng buộc (tỉ số, min-max, ràng buộc tham gia) cho mối quan hệ và  
thể hiện chúng.  
Ví dụ: CSDL quản lý theo dõi nhân viên, dự án, phòng ban.  
Công ty có nhiều phòng ban, mỗi phòng ban có một tên và mã đơn vị duy nhất, đia  
điểm. Mỗi dự án có một tên và mã dự án duy nhất, do một phòng ban quản lý. Mỗi dự  
án có nhiều nhân viên tham gia. Nhân viên có mã số NV, tên, địa chỉ, mỗi nhân viên  
làm việc ở một phòng ban, tham gia dự án với số giờ khác nhau.  
Lƣợc đồ ERD cho CSDL trên:  
MSNV  
Số giờ  
( 1, n)  
NHANVIEN  
TENNV  
( 1, 1 )  
Tham gia  
DIACHI  
( 1, n )  
Làm việc  
( 1, 1)  
DUAN  
MSPB  
Giám sát  
MSDA  
( 1, n )  
PHONGBAN  
( 1, n)  
TENDA  
TENPB  
DIADIEM  
Chuyển lƣợc đồ ERD thành mô hình quan hệ  
Bƣớc 1: Xác định loại thực thể  
NHANVIEN, PHONGBAN, DUAN  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 13  
 
Chƣơng 1: Tổng quan về CSDL  
Bƣớc 2: Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ  
NHANVIEN ( MSNV, HOTEN, DIACHI)  
PHONGBAN ( MSPB, TENPB, DIADIEM)  
DUAN ( MSDA, TENDA)  
Bƣớc 3: Xác định thuộc tính khóa  
NHANVIEN ( MSNV, HOTEN, DIACHI)  
PHONGBAN ( MSPB, TENPB, DIADIEM)  
DUAN ( MSDA, TENDA)  
Bƣớc 4: Xác định ràng buộc  
NHANVIEN ( MSNV, HOTEN, DIACHI, MSPB)  
PHONGBAN ( MSPB, TENPB, DIADIEM)  
DUAN ( MSDA, TENDA, MSPB)  
NV_DA( MSNV, MSDA, SOGIO)  
KHOA CÔNG NGHỆ THÔNG TIN  
Trang 14  
 
Tải về để xem bản đầy đủ
pdf 72 trang yennguyen 13540 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Cơ sở dữ liệu - Ngành: Tin học ứng dụng, công nghệ thông tin", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_co_so_du_lieu_nganh_tin_hoc_ung_dung_cong_nghe_th.pdf