b. Phộp tỏch lược đồ quan hệ thành 3NF
5.2. Tớnh toàn vẹn dữ liệu
5.2.1 Cỏc ràng buộc toàn vẹn
Cỏc mụ hỡnh dữ liệu khụng đủ để diễn tả mọi ngữ nghĩa của thế giới thực, vỡ vậy phải bổ sung thờm cỏc đặc tả thường gọi là cỏc rằng buộc toàn vẹn. Rằng buộc toàn vẹn là một đặc tả mà một CSDL phải thỏa món để giữ được tớnh đỳng đắn của nú. Rằng buộc toàn vẹn thường được diễn đạt dưới dạng 1 tõn từ. Như vậy cỏc ràng buộc toàn vẹn dữ liệu phải bảo đảm tớnh độc lập và toàn vẹn dữ liệu. Dữ liệu lưu trữ trong cỏc hệ
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
thống cơ sở dữ liệu phải phản ỏnh hiện thực khỏch quan trong mọi thời điểm cú thể, khụng dư thừa và mõu thuẫn thụng tin.
Cú 2 loại ràng buộc chủ yếu:
- Rằng buộc cú tớnh cấu trỳc: Liờn quan đến cỏc giỏ trị trong CSDL (tờn, kiểu, độ
dài của thuộc tớnh). Mụ tả tớnh chất của cỏc thuộc tớnh khi tạo lập CSDL như tờn, kiểu, độ dài của thuộc tớnh. Chẳng hạn thuộc tớnh “Số điện thoại” là kiểu chuỗi cú độ dài đỳng bằng 7 ký tự. Hệ thống sẽ khụng chấp nhận, nếu nhập vào CSDL một giỏ trị kiểu số hoặckiểu xõu nhưng chưa đủ hoặc vượt quỏ 7 ký tự. Ràng buộc biểu diễn giỏ trị của cỏc thuộc tớnh bằng đẳng thức toỏn học, cỏc toỏn hạng là giỏ trị của cỏc thuộc tớnh khỏc. Điển hỡnh là những ràng buộc hạn chế một trường chỉ nhận được một số giỏ trị trong một phạm vi nào đú hoặc diễn tả một mối liờn hệ số học giữa cỏc trường khỏc.
- Rằng buộc logic giữa cỏc thuộc tớnh: biểu diễn mối quan hệ giữa cỏc thuộc tớnh
là tập cỏc rằng buộc được mụ tả bằng khỏi niệm phụ thuộc hàm và phụ thuộc đa trị (cũn gọi là phụ thuộc dữ liệu). Theo định nghĩa, mọi khoỏ của một lược đồ quan hệ đều cú tớnh duy nhất. Khụng tồn tại 2 bộ cú cựng một giỏ trị trờn cỏc thuộc tớnh khoỏ. Giỏ trị của khoỏ theo quy định khụng được nhận giỏ trị null hay giỏ trị khụng xỏc định. Hệ quản trị CSDL cú trỏch nhiệm phải từ chối khi giỏ trị của khoỏ nếu vẫn cũn chứa cỏc giỏ trị chưa xỏc định hoặc đó tồn tại trong cơ sở dữ liệu thụng qua cỏc phộp thờm hoặc sửa đổi dữ liệu. Như vậy cỏc ràng buộc toàn vẹn dữ liệu phải bảo đảm tớnh độc lập và toàn vẹn dữ liệu. Dữ liệu lưu trữ trong cỏc hệ thống cơ sở dữ liệu phải phản ỏnh hiện thực khỏch quan trong mọi thời điểm cú thể, khụng dư thừa và mõu thuẫn thụng tin.
Vớ dụ:
Cho CSDL gồm cỏc quan hệ sau:
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Tõn từ: "Mỗi khoa cú một tờn gọi và một mó số duy nhất để phõn biệt với tất cả cỏc
khoa khỏc của trường".
LỚP-HỌC (Mó-lớp, Tờn-lớp, Niờn-khúa, Số-học-viờn, Mó-khoa) là quan hệ 5 ngụi với tõn từ: "Mỗi lớp học trong trường cú một mó số quy ước duy nhất để phõn biệt với tất cả cỏc lớp học khỏc trong trường; cú một tờn gọi của lớp học, một số lượng học
viờn theo học và thuộc một khoa của trường".
MễN-HỌC (Mó-mụn, Tờn-mụn, Số-đv-học-trỡnh) là quan hệ 3 ngụi. Tõn từ: "Mỗi mụn học cú một tờn gọi cụ thể, được học trong một số đơn vị học trỡnh nhất định và
ứng với mụn học là một mó số duynhất để phõn biệt với mọi mụn học khỏc".
HỌC-VIấN (Mó-học-viờn, Tờn-học-viờn, Ngày-sinh, Quờ-quỏn, Mó-lớp) là quan hệ 5 ngụi. Tõn từ: "Mỗi học viờn cú một họ và tờn, ngày sinh, quờ quỏn, ... và được cấp một mó số duy nhất để phõn biệt với mọi học viờn khỏc trong trường; học viờn được
ghi danh vào một lớp học duy nhất trong trường"
5.2.2 Cỏc yếu tố của rằng buộc toàn vẹn (RBTV)
Khi xỏc định một RBTV cần chỉ rừ:
- Điều kiện (tức là nội dung) của RBTV, từ đú xỏc định cỏch biểu diễn.
- Bối cảnh xảy ra RBTV: trờn một hay nhiều quan hệ, cụ thể trờn cỏc quan hệ nào. -Tầm ảnh hưởng của RBTV. Khả năng tớnh toàn vẹn dữ liệu bị vi phạm.
- Hành động cần phải cú khi phỏt hiện cú RBTV bị vi phạm
5.2.3 Phõn loại cỏc ràng buộc toàn vẹn
a. Rằng buộc toàn vẹn tĩnh:
Là một điều kiện mà CSDL phải thỏa món vào bất cứ lỳc nào để cú thể ở trong trạng thỏi đỳng đắn. Bao gồm:
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
- Cỏc rằng buộc trờn thuộc tớnh - Cỏc rằng buộc trờn bộ
- Rằng buộc trờn quan hệ
- Rằng buộc trờn nhiều quan hệ
*Cỏc rằng buộc trờn thuộc tớnh
- Rằng buộc tồn tại: thuộc tớnh đú phải xỏc định trong mọi bộ của quan hệ (≠ null)
VD: thuộc tớnh khúa
- Rằng buộc về miền: giỏ trị của mỗi thuộc tớnh A phải là giỏ trị nguyờn tử và thuộc 1miền giỏ trị Dom(A)
VD: Thuộc tớnh điểm cú giỏ trị từ 0..10
Thuộc tớnh BAOHIEM luụn bắt đầu bằng số 1 hoặc 2
- Rằng buộc về giỏ trị mặc định: chỉ rừ giỏ trị phải gỏn cho 1 thuộc tớnh khi tạo lập
VD: NGAY_HĐ lấy giỏ trị mặc định là ngày hiện tại.
* Cỏc rằng buộc trờn bộ: thể hiện bằng 1 tõn từ hay 1 cụng thức được đề cập đến
cỏc giỏ trị của nhiều thuộc tớnh
VD:Thuộc tớnh BAOHIEM nếu bắt đầu bởi sụ 1 thỡ GIOITINH phải lấy giỏ trị là nam ngược lại là nữ
Hoặc ThanhTien=SoLuong*ĐơnGia
*Rằng buộc trờn quan hệ:
- Rằng buộc về khúa: Ràng buộc khoỏ và ràng buộc trờn cỏc giỏ trị khụng xỏc định (null): Một quan hệ được định nghĩa như một tập hợp cỏc bộ. Theo định nghĩa, cỏc
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
phần tử của một tập hợp là khỏc nhau, vỡ vậy, mọi bộ trong quan hệ phải khỏc nhau.
Điều đú cú nghĩa là khụng cú hai bộ cú cựng một tổ hợp giỏ trị cho tất cả cỏc thuộc tớnh của chỳng.
Thụng thường, cú tồn tại cỏc tập con của cỏc thuộc tớnh củamột lược đồ quan hệ cú tớnh chất là khụng cú hai bộ nào ở trong mọi trạng thỏi quan hệ r của R cú cựng một tổ hợp giỏ trị cho cỏc thuộc tớnh của nú.
Giả sử chỳng ta ký hiệu một tập con như vậy là SK, khi đú với haibộ khỏc nhau bất kỳ t1 và t2 trong một trạng thỏi quan hệ r của R chỳng ta cú ràng buộc là t1[SK] ≠ t2[SK].
Tập hợp thuộc tớnh SK như vậy được gọi là một siờu khoỏ của lược đồ quan hệ R. Một siờu khoỏ SK xỏc định rừ một ràng buộc về tớnh duy nhất, phỏt biểu rằng khụng cú hai bộ khỏc nhau trong một trạng thỏi r của R cú cựng một giỏ trị cho SK. Mỗi quan hệ cú ớt nhất là một siờu khoỏ mặc định, đú là tập hợp tất cả cỏc thuộc tớnh của nú.
Một khoỏ K của một lược đồ quan hệ R là một siờu khoỏ của R với tớnh chất là nếu bỏ đi bất kỳ thuộc tớnh A nào ra khỏi K thỡ sẽ cũn lại một tập K khụng phải là siờu khoỏ của R. Như vậy, một khoỏ là một siờu khoỏ tối thiểu, nghĩa là đú là một siờu khoỏ mà ta khụng thể vứt bỏ thuộc tớnh nào ra khỏi nú mà vẫn giữ được ràng buộc về tớnh duy nhất.
Vớ dụ, xột quan hệ SINHVIấN với cỏc thuộc tớnh Mósố, Họtờn, Ngàysinh, Giớitớnh, Địachỉ. Thuộc tớnh {Mósố} là một khoỏ của SINHVIấN bởi vỡ khụng cú hai bộ sinh viờn cú cựng một giỏ trị cho Mósố. Mọi tập hợp thuộc tớnh cú chứa Mósố, vớdụ {Mósố, Họtờn, Ngàysinh}, đều là một siờu khoỏ. Tuy nhiờn, siờu khoỏ {Mósố, Họtờn, Ngàysinh} khụng phải là khoỏ bởi vỡ nếu bỏ đi thuộc tớnh Họtờn hoặc Ngàysinh hoặc cả hai thỡ nú vẫn cũn là một siờu khoỏ. Giỏ trị của một thuộc tớnh khoỏ cú thể được sử dụng để xỏc định một cỏch duynhất mỗi bộ trong một quan hệ. Vớ dụ,
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
giỏ trị 4515202 của Mósố xỏc định một cỏch duy nhất bộ giỏ trị tương ứng với sinh viờn Lờ Võn trong quan hệ SINHVIấN.
Chỳ ý rằng một tập hợp thuộc tớnh tạo nờn một khoỏ là một tớnh chất của lược đồ quan hệ. Điều ràng buộc là tớnh chất đú phải thỏa món trờn mọi trạng thỏi của lược đồ.
Một khoỏ được xỏc định từ ý nghĩa của cỏc thuộc tớnh và tớnh chất là bất biến, tớnh chất đú phải thỏa món khi chỳng ta chốn thờm cỏc bộ mới vào quan hệ. Vớ dụ, ta khụng thể và khụng được chỉ định thuục tớnh Họtờn của quan hệ SINHVIấN là khoỏ bởi vỡ khụng cú gỡ đảm bảo rằng khụng tồn tại hai sinh viờn cú cựng họ tờn. Núi chung, một lược đồ quan hệ cú thể cú nhiều hơn một khoỏ. Trong trường hợp đú, mỗi một khoỏ được gọi là một khoỏ dự tuyển.
Thụng thường ta phải chỉ định một trong cỏc khoỏ dự tuyển làm khoỏ chớnh của quan hệ. Khoỏ chớnh là một khoỏ dự tuyển mà cỏc giỏ trị của chỳng được dựng để xỏc định cỏc bộ trong quan hệ. Ta quy ước rằng, cỏc thuộc tớnh tạo nờn khoỏ chớnh của một lược đồ quan hệ được gạch dưới.
Vớ dụ: SINHVIấN( Mósố, Họtờn, Ngàysinh, Giớitớnh, Địachỉ ). Chỳ ý rằng khi một lược đồ quan hệ cú nhiều khoỏ dự tuyển, việc lựa chọn một khoỏ dự tuyển để làm khoỏ chớnh là tuỳ ý, tuy nhiờn tốt nhất là chọn khoỏ chớnh gồm một thuộc tớnh hoặc cú số cỏc thuộc tớnh ớt nhất. Một ràng buộc khỏc trờn cỏc thuộc tớnh chỉ rừ khi nào thỡ cho phộp cỏc giỏ trị null. Những thuộc tớnh luụn luụn phải cú một giỏ trị xỏc định và hợp lệ thỡ bị ràng buộc là NOT NULL.
- Rằng buộc phụ thuộc hàm - Rằng buộc về dạng chuẩn - Rằng buộc về bản số
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP *Rằng buộc trờn nhiều quan hệ:
-Rằng buộc về khúa ngoài -Rằng buộc toàn vẹn tham chiếu
b. Rằng buộc toàn vẹn động
Là cỏc rằng buộc nhằm đặc tả 1 thay đổi trạng thỏi đỳng đắn của CSDL. Bao gồm: - Rằng buộc định nghĩa bởi luật ứng xử
- Rằng buộc định nghĩa bởi cỏc tiền đề, hậu đề
*Rằng buộc định nghĩa bởi luật ứng xử:
Cỏc rằng buộc này chỉ ra cỏc hành động phải thực hiện đỏp lại 1 thay đổi trạng thỏi chợt đến trong CSDL.
*Rằng buộc định nghĩa bởi cỏc tiền đề, hậu đề
- Rằng buộc loại tiền đề - Rằng buộc loại hậu đề - Rằng buộc tiền và hậu đề
VD: khụng được loại bỏ1khỏch hàng cũn cú cỏc đơn hàng chưa thanh toỏn
5.3. Vấn đề an toàn và quyền truy nhập cơ sở dữ liệu
- Dữ liệu lưu trữ trong CSDL cần phải được bảo vệ để trỏnh việc truy nhập trỏi phộp và phỏ hoại cú chủ định hay khụng chủ định khi thực hiện cập nhật, sửa đổi hay bổ sung thụng tin trong cỏc cơ sở dữ liệu.
- Cần phải cú biện phỏp bảo vệ chống lại việc đưa dữ liệu vào một cỏch khụng nhất quỏn ảnh hưởng nghiờm trọng đến tớnh toàn vẹn dữ liệu.
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Khụng cho phộp đọc dữ liệu.
Khụng cho phộp sửa đổi dữ liệu.
Khụng cho phộp phỏ huỷ dữ liệu.
5.3.1. Sự vi phạm an toàn cơ sở dữ liệu
- Vấn đề an toàn cơ sở dữ liệu đề cập đến việc bảo vệ chống lại sự truy cập cú chủ định.
- Việc bảo vệ tuyệt đối cỏc hệ cơ sở dữ liệu khỏi truy nhập là khụng thể, nhưng phải cú cỏc biện phỏp đủ mạnh để ngăn chặn hầu hết truy cập trỏi phộp vào cơ sở dữ liệu. Cỏc dạng truy cập cú chủ định bao gồm:
Khụng cho phộp đọc dữ liệu.
Khụng cho phộp sửa đổi dữ liệu.
Khụng cho phộp phỏ huỷ dữ liệu.
5.3.2. Cỏc mức độ an toàn cơ sở dữ liệu
Mức độ an toàn hệ thống cơ sở dữ liệu
Mức độ an toàn hệ thống điều hành
An toàn mức độ mạng
Nhận diện người sử dụng
Bảo vệ mức vật lý
Kiểm tra truy nhập
- Mức độ an toàn hệ thống cơ sở dữ liệu: Tựy thuộc vào yờu cầu của người sử dụng mà người quản trị cơ sở dữ liệu cấp phộp truy nhập một phần vào cơ sở dữ liệu. Những người sử dụng khỏc cú thể được phộp thực hiện cỏc cõu hỏi truy vấn, nhưng cú thể bị ngăn cấm ý định sửa đổi dữ liệu.
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
- Mức độ an toàn hệ thống điều hành: Mức hệ thống kiểm soỏt toàn bộ mức điều hành hệ thống. Vấn đề an toàn mức hệ thống điều hành sẽ được đảm bảo bởi mức độ an toàn hệ thống cơ sở dữ liệu. An toàn trong hệ điều hành đó được tiến hành tại nhiều cấp độ từ sắp xếp cỏc mật mó truy cập vào hệ thống cho tới sự cụ lập cỏc quỏ trỡnh đang cựng xử lý trong hệ thống. Tệp hệ thống cũng cung cấp một số cấp độ bảo vệ. Sự tham khảo những chỳ ý trong thư mục là bao quỏt của những chủ đề này trong cỏc bài học về hệ thống điều hành.
- An toàn mức độ mạng. Hầu hết cỏc hệ thống cơ sở dữ liệu đều cho phộp truy cập từ xa thụng qua cỏc thiết bị đầu cuối. An toàn dữ liệu mức độ mạng là chống ăn cắp thụng tin, sao chộp thụng tin và sửa đổi nội dung thụng tin trờn đường truyền. Võn đề an toàn cấp mức mạng đó đạt được nhiều kết quả, ứng dụng phổ biến trờn mạng Internet. Danh sỏch cỏc chỳ ý trong thư mục đó bao quỏt nền tảng nguyờn lý của vấn đề an toàn mạng.
- Nhận diện người sử dụng: Từ định nghĩa an toàn dữ liệu cú thể suy ra rằng, hệ quản trị cơ sở dữ liệu DBMS khụng chophộp người sử dụng được thực hiện một thao tỏc nào nếu khụng được phộp của người quản trị CSDL. Người quản trị CSDL phải: Xỏc định cho hệ thống những thao tỏc mà người sử dụng được phộp thực hiện. Cung cấp một phương tiện cho người sử dụng để hệ thống nhận biết họ. Núi chung người sử đụng đều được trao những quyền khỏc nhau. Những quyền này cú thể bảo đảm quyền đọc một số phần của cơ sở dữ liệu, quyền chốn thờm, xúa hay sửa đổi dữ liệu. Hỡnh thức thụng dụng nhất để nhận ra người sử dụng là mật khẩu, và chỉ cú hệ thống và người sử dụng biết. Mật khẩu cũng được hệ thống bào vệ như bảo vệ dữ liệu.
- Bảo vệ mức vật lý: Một mụ hỡnh bảo vệ đỏng tin cậy cũng cú khả năng bị tấn cụng vào cơ sở dữ liệu, từ việc phỏ được mật khẩu đến việc đỏnh cắp cỏc thiết bi. Cú thể chống đỏnh cắp khỏ hiệu quả bằng cỏch mó húa, che dấu dữ liệu. Một hệ thống cú bảo mật cao cần phải cú những phương thức nhận diện khỏc tốt hơn mật khẩu, như nhận diện từng người sử dụng qua một nhõn viờn bảo vệ, hoặc kết với cỏc quy định về hành chớnh...
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
- Kiểm tra truy nhập: Với mỗi người sử dụng hệ thống sẽ quản lý một hồ sơ
được phỏt sinh từ việc cỏc chi tiết về thủ tục xuất trỡnh, xỏc minh và cỏc chi tiết được quyền thao tỏc mà người quản trị cơ sở dữ liệu cấp cho người sử dụng. Hệ thống sẽ kiểm tra tớnh phỏp lý của mỗi một thao tỏc của người sử dụng. Vớ dụ yờu cầu được đọc lời đỏnh giỏ hàng năm của mỗi một nhõn viờn, chỉ cú thể được phộp nếu cơ sở dữ liệu cú chứa thụng tin quy định rằng người yờu cầu phải là Giỏm đốc, trưởng, phú phũng tổ chức, chỏnh văn phũng. Tất cả cỏc đối tượng khỏc khụng cú trong cơ sở dữ liệu khụng được phộp truy xuất. DBMS sẽ kiểm tra mỗi một thao tỏc của người sử dụng xem cú vi phạm