- Trang Chủ
- Cơ sở dữ 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) - CĐ Kinh tế Kỹ thuật TP.HCM
Xem mẫu
- Ủ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
Email: vuthiphuongdung@hotec.edu.vn
TRƢỞNG KHOA TỔ TRƢỞNG CHỦ NHIỆM
BỘ MÔN ĐỀ 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
CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (CSDL) ..................................... 1
1. Khái niệm .................................................................................................................... 1
2. Mô hình thực thể - kết hợp ERD ................................................................................. 5
3.Mô hình dữ liệu quan hệ của E.F.Codd ........................................................................ 9
4.Các bƣớc chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ....................... 13
BÀI TẬP CHƢƠNG 1 ................................................................................................. 14
CHƢƠNG 2: RÀNG BUỘC TOÀN VẸN ( RBTV) MỘT CSDL ........................... 19
1.Giới thiệu .................................................................................................................... 19
2. Các đặc trƣng của ràng buộc toàn vẹn....................................................................... 19
3. Phân loại ràng buộc toàn vẹn..................................................................................... 21
4. Bảng tầm ảnh hƣởng tổng hợp .................................................................................. 25
BÀI TẬP CHƢƠNG 2 ................................................................................................. 26
CHƢƠNG 3: NGÔN NGỮ ĐẠI SỐ QUAN HỆ ....................................................... 30
1.Các phép toán tập hợp và các phép toán quan hệ ....................................................... 30
2. Các phép toán tập hợp trên các quan hệ .................................................................... 30
3. Các thao tác cơ sở trên các quan hệ ........................................................................... 39
BÀI TẬP CHƢƠNG 3 ................................................................................................. 40
CHƢƠNG 4: NGÔN NGỮ TRUY VẤN CSDL SQL............................................... 43
1.Ngôn ngữ định nghĩa dữ liệu ...................................................................................... 43
2. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language DML) ........................... 50
3. Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structured Query Language – SQL) .......... 52
BÀI TẬP CHƢƠNG 4 ................................................................................................. 59
- 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
nhƣ: MS Access, MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix.
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,...
LOẠI THỰC Tên mối LOẠI THỰC
THỂ 1 kết hợp THỂ 2
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,...
SINHVIEN Thuộc LOP
SINHVIEN Học MONHOC
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
GIANGVIEN ( 1, 1) Cấp ( 1, 1) MAYTINH
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)
Học
THANHPHO NGSINH
MSMH
MSTP (1, n)
MONHOC
TENMH
TENTP
SOTC
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 )
( 1, 1) Làm việc
DUAN
MSPB
MSDA Giám sát ( 1, n )
( 1, n) PHONGBAN
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
nguon tai.lieu . vn