Mỗi thuộc tính đơn của một kiểu thực thể được kết hợp với một tập hợp giá trị (hay còn gọi là miền giá trị). Đó là tập hợp các giá trị có thể gán cho thuộc tính này đối với mỗi thực th[r]
Trang 1TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN
HÀ VĂN LÂM
BÀI GIẢNG
CƠ SỞ DỮ LIỆU
Quảng Ngãi, tháng 12 năm 2016
Trang 2
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG
CƠ SỞ DỮ LIỆU
Dành cho sinh viên bậc đại học ngành Công nghệ thông tin và Sư phạm tin
Quảng Ngãi, tháng 12 năm 2016
Trang 3
Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Thời lượng: 03 tiết lý thuyết
Kết thúc chương này, sinh viên có thể:
Hiểu được tại sao phải ra đời một hệ cơ sở dữ liệu
Biết được các đối tượng sử dụng cơ sở dữ liệu
Biết các yêu cầu(đặc tính)của hệ cơ sở dữ liệu
Biết các thành phần của hệ quản trị cơ sở dữ liệu
1.1 DẪN NHẬP - TẠI SAO PHẢI CÓ MỘT CƠ SỞ DỮ LIỆU
1.1.1 Hệ thống tập tin cổ điển
- Trong quá trình xử lý thông tin, cách tiếp cận cổ điển được biểu diễn dưới dạng sau:
OUTPUT INPUT
- Phân tích dữ liệu (Output) dẫn đến nhu cầu cần (Input) Dữ liệu được dùng cho chương trình ứng dụng nhất định
1.1.2 Các ví dụ
Ứng dụng 1: Về quản lý tiền lương (QLTL) Lập bảng lương trong một đơn vị quản
lý
STT Họ tên Bậc lương Phụ cấp Tiền lương
* Suy ra dữ liệu cần:
- Họ tên, Bậc lương, Bậc lương
* Dữ liệu được tổ chức thành các tập tin:
- Tập tin NHANVIEN_1 gồm:
- Tập tin CHEDO_PHUCAP gồm:
* Sơ đồ khai thác của hệ QLTL như sau:
Họ tên Bậc lương Phụ cấp Bậc lương
Chương trình QLTL
Phiếu lương
Trang 4Ứng dụng 2: Lập danh sách phân công (dự kiến) cho một công trình(QLCT)
STT Họ tên Chuyên môn Công trình
* Suy ra dữ liệu cần:
- Họ tên, Chuyên môn, Công trình
* Dữ liệu được tổ chức thành các tập tin:
- Tập tin NHANVIEN_2 gồm:
- Tập tin CONG_TRINH gồm:
* Sơ đồ khai thác của hệ QLTL như sau:
Nhận xét:
- Việc xử lý, khai thác dữ liệu trong công tác quản lý khoa học còn đơn lẻ, tự phát ở mỗi phòng ban chức năng của từng cơ quan, đơn vị theo một cấu trúc tổ chức
dữ liệu cho riêng mình
- Việc triển khai như thế được tiến hành với thời gian ngắn, ít đầu tư, tốn kém
về nhân sự, vật chất…
- Chính quan điểm trên dẫn đến việc: trùng lắp thông tin, dư thừa thông tin, lại không nhất quán về xử lý, quản lý thông tin Quan trọng nhất vẫn là thiếu sự chia sẻ thông tin tại một đơn vị
- Do nhu cầu xử lý thông tin ngày càng qui mô, rộng hơn về nhiều khía cạnh nên đòi hỏi ra đời một hệ cơ sở dữ liệu để giải quyết những nhu cầu trên
1.2 ĐỊNH NGHĨA MỘT CƠ SỞ DỮ LIỆU
1.2.1 Giới thiệu chung
- Nghiên cứu Cơ sở dữ liệu (CSDL) sẽ giúp chúng ta biết lưu trữ, cập nhật, tìm
kiếm thông tin nhanh, hiệu quả, tiết kiệm được bộ nhớ Mặt khác còn giúp chúng ta hiểu được các ràng buộc mang tính chất nội tại trên một mô hình cơ sở dữ liệu
- Cơ sở dữ liệu là môn học liên quan nhiều đến lý thuyết đại số, logic toán và
Họ tên Chuyên môn Công trình Chuyên môn
Chương trình QLCT
Phân công Danh sách
Trang 5nhiều lĩnh vực kiến thức tin học khác
- Bất kỳ một ứng dụng tin học nào cũng chứa đựng các vấn đề về cách tổ chức lưu trữ và khai thác dữ liệu
- Hiện nay, hầu như CSDL gắn liền với mọi ứng dụng của tin học, chẳng hạn như quản lý các hệ thống thông tin trong một cơ quan, đơn vị, trường học
- Đó là các dữ liệu tác nghiệp của các Cơ quan, đơn vị trường học có thể bao gồm: Dữ liệu về sản phẩm, dữ liệu về các tài khoản, dữ liệu về đào tạo, dữ liệu về sinh viên, dữ liệu về lập kế hoạch công việc v.v
- CSDL bảo đảm cho các cơ quan, đơn vị, trường học có khả năng quản lý tập trung dữ liệu tác nghiệp của mình Cần phải tính đến một người quản trị CSDL, chịu trách nhiệm về dữ liệu tác nghiệp
1.2.2 Định nghĩa một cơ sở dữ liệu
CSDL là một 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 Để tối ưu hóa các thao tác cơ bản sau:
- Lưu trữ dữ liệu
- Truy xuất thông tin
- Cập nhật dữ liệu
1.3 CÁC ĐỐI TƯỢNG SỬ DỤNG CSDL
1.3.1 Các đối tượng sử dụng CSDL
- Quản trị viên (Database Administrator - DBA)
+ Có trách nhiệm quản lý hệ CSDL cấp quyền truy cập CSDL
+ Điều phối và giám sát việc sử dụng CSDL
- Thiết kế viên (Database Designer)
+ Chịu trách nhiệm về
- Lựa chọn cấu trúc phù hợp để lưu trữ dữ liệu
- Quyết định những dữ liệu nào cần được lưu trữ
+ Liên hệ với người dùng để nắm bắt những yêu cầu và đưa ra một thiết
kế CSDL thỏa yêu cầu này
+ Có thể là 1 nhóm các (DBA) quản lý các CSDL sau khi việc thiết kế hoàn tất
- Người dùng cuối (End User)
* Người ít sử dụng
- Ít khi truy cập CSDL, nhưng cần những thông tin khác nhau trong mỗi lần truy cập và dùng những câu truy vấn phức tạp
- Người quản lý
* Người sử dụng thường xuyên
- Thường xuyên truy vấn và cập nhật CSDL nhờ vào một số các chức năng đã được xây dựng sẳn
- Nhân viên
Trang 6* Người sử dụng đặc biệt
- Thông thạo về HQT CSDL, tự xây dựng những truy vấn phức tạp cho công việc
- Kỹ sư, nhà khoa học, người phân tích,…
1.3.2 Các đặc tính của hệ CSDL(yêu cầu)
1 Tính cấu trúc: Thông tin trong CSDL được lưu trữ theo cấu trúc nhất định
2 Tính toàn vẹn: Các giá trị của dữ liệu được lưu trữ trong CSDL phải thỏa
mãn các ràng buộc Tùy thuộc vào hành động và tổ chức của CSDL
3 Tính nhất quán: Sau những lần cập nhật và ngay khi có sự cố(phần cứng,
Phần mềm) xảy ra trong quá trình cập nhật thì CSDL phải đảm bảo tính nhất quán dữ liệu
4 Tính an toàn và bảo mật thông tin: CSDL phải được bảo vệ an toàn, tránh
những truy cập không được phép và phải khôi phục được CSDL khi có sự cố xảy ra (phần cứng, Phần mềm) Mỗi nhóm NSD có thamền hạn và mục đích khác nhau
5 Tính không dư thừa: CSDL không lưu trữ những dữ liệu trùng lặp
6 Tính cạnh tranh: Cạnh tranh trong truy xuất, do nhiều người sử dụng Do đó
phải phân cấp cho chương trình ứng dụng
1.3.3 Cấu trúc của CSDL: (Có 3 mức)
- Mức ngoài: Mô tả 1 phần của CSDL
- Mức trung gian: Mô tả dữ liệu được lưu trữ trong CSDL và các mối quan hệ
(logic) giữa các mẫu tin
- Mức vật lý: Mô tả dữ liệu được lưu trữ trong bộ nhớ
1.4 HỆ QUẢN TRỊ CSDL (Data Base Management System - DBMS)
1.4.1 Khái niệm Hệ quản trị CSDL
Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như khai thác có hiệu quả, đảm bảo sự bảo mật, sự cạnh tranh truy xuất , 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 (Data base management system- DBMS)
Hệ quản trị CSDL là một hệ thống phần mềm, có nhiệm vụ hỗ trợ cho những nhà phân tích, thiết kế và những người khai thác CSDL, đảm bảo sự bảo mật, cạnh tranh truy xuất, an toàn dữ liệu, cung cấp cho người dùng những cách nhìn khác nhau về CSDL
Hiện nay, trên thị trường có nhiều hệ quản trị CSDL (DBMS) với chất lượng khác nhau như: Oracle, DB2, Paradox, Ms Access, Visual Foxpro, MySQL, SQL SERVER
Lưu ý: Điều quan trọng để khai thác, tổ chức tốt một CSDL cần phải có một hệ
quản trị CSDL tối ưu, phù hợp với CSDL
1.4.2 Các thành phần của Hệ quản trị CSDL (DBMS): (có 3 phần)
* Ngôn ngữ mô tả dữ liệu(DDL)
Trang 7+ Mô tả về cấu trúc của CSDL
+ Mô tả các mối quan hệ của dữ liệu
+ Mô tả các ràng buộc toàn vẹn của dữ liệu
* Ngôn ngữ thao tác dữ liệu(DML)
Có đặc tính như một ngôn ngữ lập trình bậc cao dùng để:
+ Cập nhật dữ liệu
+ Khai thác dữ liệu (có 2 loại: Thủ tục và phi thủ tục)
* Tự điển dữ liệu(DD)
Là nơi tập trung các thông tin lưu trữ về:
+ Cấu trúc của CSDL(thuộc tính, quan hệ…)
+ Chương trình ứng dụng
+ Mã bảo mật
1.5 SƠ ĐỒ TỔNG QUÁT CỦA MỘT HỆ QUẢN TRỊ CSDL
1.5.1 Kiến trúc 3 lược đồ
1.5.2 Kiến trúc của Hệ quản trị CSDL
* Mức trong (lược đồ trong)
- Mô tả cấu trúc lưu trữ vật lý CSDL
* Mức quan niệm (lược đồ quan niệm)
- Mô tả cấu trúc của toàn thể CSDL cho một cộng đồng người sử dụng, gồm thực thể, kiểu dữ liệu, mối liên hệ và ràng buộc
- Che bớt các chi tiết của cấu trúc lưu trữ vật lý
* Mức ngoài (lược đồ ngoài)
- Còn gọi là mức khung nhìn (view)
- Mô tả một phần của CSDL mà 1 nhóm người dùng quan tâm đến và che dấu phần còn lại của CSDL đối với nhóm người dùng đó
1.6 TÍNH ĐỘC LẬP GIỮA DỮ LIỆU VÀ CHƯƠNG TRÌNH
* Có hai mức độc lập dữ liệu
Trang 8- Tính độc lập vật lý: Cho phép người Quản trị hệ quản trị CSDL có thể thay đổi
cách cài đặt các mẫu tin mà không ảnh hưởng đến chương trình ứng dụng
- Tính độc lập logic: Cho phép sửa đổi cấu trúc của CSDL (thay đổi lược đồ
quan niệm) mà không ảnh hưởng đến chương trình ứng dụng sử dụng CSDL đó
oOo
Trang 9Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT ER (Entity - Relationship model)
Thời lượng: 03 tiết lý thuyết + 03 tiết bài tập
Kết thúc chương này, sinh viên có thể:
Hiểu được các thành phần cơ bản của mô hình thực thể liên kết ER
Biết sử dụng khái niệm mô hình bậc cao cho việc thiết kế cơ sở dữ liệu
Trong chương này chúng ta sẽ làm quen với mô hình thực thể-liên kết (Entity-Relationship model), gọi tắt là mô hình ER Đó là một mô hình dữ liệu quan niệm bậc cao phổ biến, tập trung vào các cấu trúc cơ sở dữ liệu và các ràng buộc
2.1 SỬ DỤNG MÔ HÌNH KHÁI NIỆM BẬC CAO CHO VIỆC THIẾT KẾ CƠ
SỞ DỮ LIỆU
Hình 2.1 Sơ đồ mô tả các bước chính của việc thiết kế cơ sở dữ liệu
- Bước đầu tiên là tập hợp các yêu cầu và phân tích Trong bước này, người thiết kế cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu các đòi hỏi về dữ liệu của họ
Trang 10- Bước tiếp theo là tạo ra lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao Bước này được gọi là thiết kế khái niệm
+ Lược đồ khái niệm là một mô tả súc tích về các yêu cầu dữ liệu của người
sử dụng, bao gồm các mô tả chi tiết của các kiểu thực thể, các kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp Vì những khái niệm này không chứa các chi tiết cài đặt (thể hiện), chúng thường dễ hiểu và có thể sử dụng để giao lưu với người sử dụng
+ Lược đồ quan niệm mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đều thoả mãn và không chứa các mâu thuẫn Giải pháp này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ Một thiết kế cơ sở dữ liệu quan niệm tốt, sẽ dễ cho công việc của những người thiết kế cơ sở dữ liệu
+ Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, ta có thể sử dụng các phép toán mô hình dữ liệu cơ bản để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng
+ Điều đó cũng giúp khẳng định rằng lược đồ quan niệm thoả mãn mọi yêu cầu chức năng được xác định Nếu có một số yêu cầu chức năng không thể chỉ ra trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ khái niệm cho phù hợp
- Bước tiếp theo trong thiết kế cơ sở dữ liệu là việc thể hiện (cài đặt) cơ sở dữ liệu bằng cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn Hầu hết các hệ quản trị
cơ sở dữ liệu sử dụng một mô hình dữ liệu thể hiện (chẳng hạn như mô hình cơ sở dữ liệu quan hệ hoặc đối tượng) Vì vậy, lược đồ quan niệm được chuyển đổi từ mô hình
dữ liệu bậc cao thành mô hình dữ liệu thể hiện
+ Bước này gọi là thiết kế lô gic hoặc là ánh xạ mô hình dữ liệu Kết quả
của bước này là một lược đồ cơ sở dữ liệu dưới dạng một mô hình dữ liệu thể hiện của hệ quản trị cơ sở dữ liệu
- Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý Trong bước này
ta phải chỉ ra các cấu trúc lưu trữ bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu Song song với các hoạt động đó, các chương trình áp dụng cũng được thiết kế và cài đặt như là các giao dịch cơ sở dữ liệu tương ứng với các đặc tả giao dịch mức cao
2.2 CÁC THÀNH PHẦN CƠ BẢN CỦA MÔ HÌNH THỰC THỂ LIÊN KẾT
2.2.1 Thực thể, tập thực thể a) Thực thể
- Thực thể là một “vật” trong thế giới thực có sự tồn tại độc lập Một thực thể
có thể là một vật cụ thể (chẳng hạn như một người, một cái ô tô, ) hoặc có thể là một vật trừu tượng (chẳng hạn một công ty, một công việc, một môn học, )
Trang 11- Mỗi thực thể có các thuộc tính, đó là các tính chất cụ thể mô tả nó
Ví dụ 1:
Một thực thể nhân viên được mô tả bằng họ tên, tuổi, địa chỉ, lương và công việc của nhân viên đó
Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc tính của nó Các giá trị thuộc tính mô tả mỗi thực thể sẽ trở thành một phần chính của các dữ liệu được lưu trữ trong cơ sở dữ liệu
b) Tập thực thể
Tập hợp các thực thể giống nhau tạo thành một tập thực thể
Ví dụ 2: (Hình 2.2) chỉ ra một số thực thể và các thuộc tính của chúng Thực thể nhân
viên e1 có 4 thuộc tính : Họ tên, Địa chỉ, Tuổi, và Điện thoại Giá trị của các thuộc
tính tương ứng là “Lê Minh”, “Quảng Ngãi”, “25”, “0553823856”
Hình 2.2 Kiểu thực thể và tập thực thể
2.2.2 Các loại thuộc tính
Trong mô hình ER có mặt nhiều kiểu thuộc tính : thuộc tính đơn và thuộc tính phức hợp, thuộc tính đơn trị và thuộc tính đa trị, thuộc tính được lưu trữ và thuộc tính suy diễn được Chúng ta sẽ định nghĩa các kiểu thuộc tính và minh họa chúng thông qua các ví dụ
a) Thuộc tính đơn và thuộc tính phức hợp
- Thuộc tính đơn: Các thuộc tính không thể phân chia được gọi là thuộc tính
đơn hay thuộc tính nguyên tố
- Thuộc tính phức hợp: là các thuộc tính có thể phân chia ra thành các phần
nhỏ hơn, biểu diễn các thuộc tính cơ bản hơn với các ý nghĩa độc lập Giá trị của một thuộc tính phức hợp là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên
nó
Ví dụ 3: thuộc tính Họ tên của thực thể Nhân viên có thể được phân chia thành Họ đệm, Tên
b) Thuộc tính đơn trị và thuộc tính đa trị
- Thuộc tính đơn trị: Đa số các thuộc tính có một giá trị duy nhất cho một thực
thể cụ thể, các thuộc tính như vậy gọi là các thuộc tính đơn trị
Ví dụ: Tuổi là một thuộc tính đơn trị của một người
- Thuộc tính đa trị: Trong một số trường hợp, một thuộc tính có thể có một tập
hợp các giá trị cho cùng một thực thể Những thuộc tính như vậy được gọi là thuộc
Trang 12tính đa trị
Ví dụ 4: thuộc tính Bằng cấp của một người Một người có thể không có bằng cấp nào, người khác có thể có một bằng, người khác nữa có thể có nhiều bằng,…
Như vậy các người khác nhau có thể có một số các giá trị khác nhau cho thuộc tính Bằng cấp Những thuộc tính như vậy được gọi là thuộc tính đa trị
c) Thuộc tính lưu trữ và thuộc tính suy diễn được
Một số trường hợp, hai hay nhiều giá trị thuộc tính có liên quan đến nhau
Ví dụ 5: thuộc tính Tuổi và thuộc tính Ngày sinh của một người Với một người cụ thể ta có thể tính Tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của Ngày sinh Thuộc tính Tuổi như vậy gọi là thuộc tính suy diễn được và nó được suy diễn từ thuộc tính Ngày sinh Thuộc tính Ngày sinh được gọi là thuộc tính lưu trữ
d) Thuộc tính không xác định giá trị(null values)
Trong một số trường hợp, một thực thể cụ thể có thể không có các giá trị áp dụng được cho một thuộc tính
Ví dụ 6: Thuộc tính Điện thoại của thực thể Nhân viên sẽ không có giá trị đối với các nhân viên không có số điện thoại
Trong trường hợp như vậy, ta phải tạo ra một giá trị đặc biệt gọi là giá trị không xác định (null value) Giá trị không xác định được tạo ra khi một thuộc tính không có các giá trị áp dụng được hoặc khi không biết
2.2.3 Kiểu thực thể, tập thực thể, khoá và tập giá trị a) Kiểu thực thể và tập thực thể
- Một kiểu thực thể: Là một tập hợp các thực thể có các thuộc tính như nhau
Một kiểu thực thể trong cơ sở dữ liệu được mô tả tên của nó và các thuộc tính (Hình 2.2) ở trên chỉ ra kiểu thực thể có tên là NHÂNVIÊN và các thuộc tính của chúng
- Một tập thực thể: Một tập hợp tất cả các thực thể của một kiểu thực thể cụ thể trong cơ sở dữ liệu tại một thời điểm, nó thường được tham chiếu đến bằng cách
sử dụng tên của kiểu thực thể
Ví dụ 7:
NHÂNVIÊN dùng để chỉ vừa là một kiểu thực thể, vừa là tập hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu
Một kiểu thực thể được biểu diễn trong sơ đồ ER như là một hình chữ nhật có chứa tên kiểu thực thể Các tên thuộc tính được đặt trong các hình ô van và được nối với kiểu thực thể bằng các đường thẳng Các thuộc tính phức hợp được nối với các thuộc tính thành phần của nó bằng các đường thẳng Các thuộc tính đa trị được hiển thị trong các hình ô van nét đôi