Ôn Thi
Ôn Thi
Ôn Thi
--
Định nghĩa chính thức cho các khái niệm mô hình EER
Class C
Tập hợp hoặc tập hợp các thực thể
Bao gồm bất kỳ cấu trúc lược đồ EER nào của các thực thể nhóm
Có thể là kiểu thực thể, lớp con, lớp cha hoặc danh mục
Lưu ý: Định nghĩa về loại mối quan hệ trong ER/EER nên thay thế 'loại thực thể' bằng
'lớp‘ để cho phép các mối quan hệ giữa các lớp nói chung
--
Subclass S:
Kế thừa tất cả các thuộc tính và quan hệ của lớp C
Tập thực thể phải luôn là tập con của tập thực thể thuộc lớp khác C: S ⊆ C
C được gọi là lớp cha của S
Tồn tại mối quan hệ lớp cha/lớp con giữa S và C
--
Chương 4
Relational Data Model and ER/EER-to-Relational Mapping
Các ràng buộc là các điều kiện phải giữ trên tất cả các thể hiện quan hệ hợp lệ. Có ba loại
ràng buộc chính:
Ràng buộc Key
Ràng buộc toàn vẹn thực thể
Ràng buộc toàn vẹn tham chiếu
--
giá trị null
Biểu thị giá trị cho một thuộc tính hiện chưa biết hoặc không thể áp dụng cho bộ
Xử lý dữ liệu không đầy đủ hoặc ngoại lệ
Thể hiện sự vắng mặt của một giá trị và không giống với số 0 hoặc dấu cách, đó là các
giá trị
--
Ràng buộc toàn vẹn ngữ nghĩa:
dựa trên ngữ nghĩa của ứng dụng và bản thân mô hình không thể biểu thị được. Ví dụ:
“tối đa. không. số giờ mỗi nhân viên cho tất cả các dự án mà họ làm việc là 56 giờ mỗi
tuần”
Một ngôn ngữ đặc tả ràng buộc có thể phải được sử dụng để thể hiện những
--
Update Operations on Relations
insertion: để chèn một bộ mới t vào một quan hệ R. Khi chèn một bộ mới, cần đảm bảo
rằng các ràng buộc cơ sở dữ liệu không bị vi phạm:
Giá trị của một thuộc tính phải thuộc loại dữ liệu chính xác (tức là từ miền thích hợp).
Giá trị của thuộc tính nguyên tố (tức là thuộc tính khóa) phải không được rỗng
(Các) giá trị khóa không được giống với giá trị của một bộ dữ liệu hiện có trong cùng
một mối quan hệ
Giá trị của khóa ngoại (nếu có) phải tham chiếu đến một bộ hiện có trong quan hệ
tương ứng
Deletion: để loại bỏ một bộ t hiện có khỏi một quan hệ R. Khi xóa một bộ, không được vi
phạm các ràng buộc sau:
Bộ dữ liệu phải tồn tại trong cơ sở dữ liệu
Ràng buộc toàn vẹn tham chiếu không bị vi phạm
Moidify: để thay đổi giá trị của một số thuộc tính của bộ t hiện có trong quan hệ R
--
Main Phases of Database Design
Three main phases:
Conceptual database design
Logical database design
Physical database design
--
EER-to-Relational Mapping
Bước 8: Các tùy chọn cho Chuyên biệt hóa bản đồ hoặc Tổng quát hóa.
Chuyển đổi mỗi chuyên biệt hóa với m lớp con {S1, S2,….,Sm} và lớp cha tổng quát C,
trong đó các thuộc tính của C là {k,a1,…an} và k là khóa (chính), thành các lược đồ quan
hệ sử dụng một trong các bốn tùy chọn sau:
Phương án 8A: Nhiều quan hệ-Lớp cha và lớp con
Tùy chọn 8B: Nhiều quan hệ-Chỉ quan hệ lớp con
Phương án 8C: Quan hệ đơn với một thuộc tính kiểu
Tùy chọn 8D: Quan hệ đơn với nhiều thuộc tính kiểu
--
Phương án 8A: Nhiều quan hệ-Lớp cha và lớp con
Tạo quan hệ L cho C với các thuộc tính Attrs(L) = {k,a1,…an} và PK(L) = k. Tạo một
quan hệ Li cho mỗi lớp con Si, 1 < i < m, với các thuộc tính Attrs(Li) = {k} U {các thuộc
tính của Si} và PK(Li)=k. Tùy chọn này phù hợp với mọi chuyên môn hóa (toàn bộ hoặc
một phần, rời rạc hoặc chồng chéo).
Tùy chọn 8B: Nhiều quan hệ-Chỉ quan hệ lớp con
Tạo một quan hệ Li cho mỗi phân lớp Si, 1 < i < m, với các thuộc tính Attr(Li) = {các
thuộc tính của Si} U {k,a1…,an} và PK(Li) = k. Tùy chọn này chỉ hoạt động đối với
chuyên môn hóa có các lớp con là total (mọi thực thể trong lớp cha phải thuộc về (ít nhất)
một trong các lớp con).
Tùy chọn 8C: Quan hệ đơn với thuộc tính một loại
Tạo một quan hệ đơn L với các thuộc tính Attrs(L) = {k,a1,…an} U {các thuộc tính của
S1} U…U {các thuộc tính của Sm} U {t} và PK(L) = k. Thuộc tính t được gọi là thuộc
tính loại (hoặc phân biệt) chỉ ra lớp con mà mỗi bộ thuộc về.
Tùy chọn 8D: Quan hệ đơn với nhiều thuộc tính kiểu
Tạo một lược đồ quan hệ đơn L với các thuộc tính Attrs(L) = {k,a1,…an} U {các thuộc
tính của S1} U…U {các thuộc tính của Sm} U {t1, t2,…,tm} và PK(L) = k. Mỗi ti , 1 < I
< m, là một thuộc tính kiểu Boolean cho biết một bộ có thuộc lớp con Si hay không
--
Bước 9: Ánh xạ các loại liên kết (Danh mục).
Để ánh xạ một danh mục mà siêu lớp xác định của nó có các khóa khác nhau, thông
thường sẽ chỉ định một thuộc tính khóa mới, được gọi là khóa thay thế, khi tạo một quan
hệ tương ứng với danh mục.
Trong ví dụ dưới đây, chúng ta có thể tạo một quan hệ OWNER tương ứng với danh
mục OWNER và bao gồm bất kỳ thuộc tính nào của danh mục trong quan hệ này. Khóa
chính của quan hệ OWNER là khóa thay thế mà chúng tôi gọi là OwnerId.
Chương 5
Relational Algebra
Relational Algebra Overview
Unary Relational Operations:
SELECT (symbol: σ (sigma)) <điều kiện>(R) lấy theo đk
PROJECT (symbol: π (pi)) <tên cột>(R) lấy cột
RENAME (symbol: ρ (rho)) S (B1, B2, …, Bn )(R) đổi tên cột
Relational Algebra Operations from Set Theory:
UNION (U) hội, INTERSECTION (n) giao, DIFFERENCE (or MINUS, –) trừ
CARTESIAN PRODUCT ( x )
Binary Relational Operations:
JOIN (several variations of JOIN exist)
DIVISION
Additional Relational Operations:
OUTER JOINS, OUTER UNION
AGGREGATE FUNCTIONS (SUM, COUNT, AVG, MIN, MAX)
Chương 6
Structured Query Language
Key and Referential Integrity Constraints
PRIMARY KEY clause: specifies one or more attributes that make up the primary key
of a relation.
Dnumber INT PRIMARY KEY
PRIMARY KEY (Dnumber, DLocation)
UNIQUE clause: Specifies alternate (secondary) keys.
Dname VARCHAR(15) UNIQUE;
--
Referential triggered actions: RESTRICT (default), SET NULL, CASCADE, and SET
DEFAULT
--
DROP Command
DROP SCHEMA Company CASCADE;
Or
DROP SCHEMA Company RESTRICT;
RESTRICT (mặc định): bỏ qua nếu nó không được tham chiếu trong bất kỳ ràng buộc
hoặc chế độ xem nào
CASCADE: tất cả các ràng buộc và khung nhìn tham chiếu đến bảng sẽ tự động bị loại
bỏ khỏi lược đồ cùng với chính bảng đó
Tương tự, chúng ta có thể loại bỏ các constraints & domains
--
SELECT Command
SELECT : Chỉ định cột nào sẽ xuất hiện trong đầu ra
FROM : Chỉ định (các) bảng sẽ được sử dụng
WHERE : Lọc hàng
GROUP BY : Tạo thành các nhóm hàng có cùng cột giá trị
HAVING : Lọc các nhóm theo một số điều kiện
ORDER BY : Chỉ định thứ tự xuất
--
Chức năng EXISTS và NOT EXISTS
Thường được sử dụng kết hợp với truy vấn lồng nhau tương quan
EXISTS(Q) trả về TRUE nếu kết quả của truy vấn Q KHÔNG trống (Một số bộ TỒN
TẠI trong kết quả).
NOT EXISTS(Q) trả về TRUE nếu kết quả của truy vấn Q trống (Không có bộ nào
trong kết quả).
Chức năng UNIQUE(Q)
Trả về TRUE nếu không có bộ trùng lặp nào trong kết quả của truy vấn Q
Chương 7
Functional Dependencies & Normalization for Relational DBs
Phụ thuộc trực tiếp (phụ thuộc chức năng đầy đủ): Tất cả các thuộc tính trong R phải
phụ thuộc hoàn toàn về chức năng vào khóa chính (hoặc PK là yếu tố quyết định của tất
cả các thuộc tính trong R)
Phụ thuộc gián tiếp (phụ thuộc bắc cầu): Giá trị của một thuộc tính không được xác định
trực tiếp bởi khóa chính
Phụ thuộc một phần
Định thức tổng hợp - cần nhiều hơn một giá trị để xác định giá trị của một thuộc tính
khác, sự kết hợp của các giá trị được gọi là định thức tổng hợp
Phụ thuộc một phần - nếu giá trị của một thuộc tính không phụ thuộc vào toàn bộ định
thức tổng hợp mà chỉ một phần của nó, thì mối quan hệ được gọi là phụ thuộc một phần
--
Các quy tắc suy luận của Armstrong:
IR1. (Phản xạ) Nếu Y ⊆ X thì X -> Y
IR2. (Tăng cường) Nếu X -> Y thì XZ -> YZ
(Kí hiệu: XZ là viết tắt của X ⋃ Z)
IR3. (Chuyển tiếp) Nếu X -> Y và Y -> Z thì X -> Z
--
Phân rã: Nếu X -> YZ thì X -> Y và X -> Z
Union: Nếu X -> Y và X -> Z thì X -> YZ
Psuedotransitivity: Nếu X -> Y và WY -> Z thì WX -> Z
--
Hai bộ FDs F và G là tương đương nếu F+ = G+
Định nghĩa:
F phủ G nếu G+ ⊆ F+
F và G tương đương nếu F phủ G và G phủ F
--
Normalization
Two new concepts:
A Prime attribute must be a member of some candidate key
A Nonprime attribute is not a prime attribute: it is not a member of any candidate key
--
1NF and dependency problems
2NF – solves partial dependency
3NF – solves indirect dependency
BCNF – well-normalized relations
--
Một lược đồ quan hệ R ở dạng chuẩn hai (2NF) nếu mọi thuộc tính không nguyên tố A
trong R đều phụ thuộc hàm đầy đủ vào mọi khóa của R
Một lược đồ quan hệ R ở dạng chuẩn ba (3NF) nếu bất cứ khi nào một FD X -> A
chứa trong R, thì:
(a) X là một siêu khóa của R, hoặc
(b) A là thuộc tính nguyên tố của R
--
Một lược đồ quan hệ R ở dạng chuẩn Boyce-Codd (BCNF) nếu bất cứ khi nào một FD X
-> A chứa trong R, thì X là một siêu khóa của R
Chương 8
Data Storage, Indexing Structures for Files
Thiết bị lưu trữ đĩa - Disk Storage Devices
Thiết bị lưu trữ thứ cấp được ưa chuộng vì khả năng lưu trữ cao và chi phí thấp.
Dữ liệu được lưu trữ dưới dạng vùng từ hóa trên bề mặt đĩa từ.
Một gói đĩa (disk pack) chứa một số đĩa từ được kết nối với một trục quay.
Đĩa được chia thành các rãnh tròn (tracks) đồng tâm trên mỗi bề mặt đĩa (surface).
Dung lượng rãnh thường thay đổi từ 4 đến 50 Kbyte
--
Một Track được chia thành các blocks hoặc sectors. bởi vì một Track thường chứa
một lượng lớn thông tin.
Một Track được chia thành các blocks.
Kích thước block B là cố định cho mỗi hệ thống. Kích thước block điển hình
nằm trong khoảng từ B=512 byte đến B=4096 byte.
Toàn bộ block được truyền giữa đĩa và bộ nhớ chính để xử lý.
--
Đầu đọc-ghi di chuyển đến rãnh chứa khối được truyền. Đĩa quay di chuyển khối dưới
đầu đọc-ghi để đọc hoặc ghi.
Địa chỉ khối đĩa vật lý (phần cứng) bao gồm:
số hình trụ (tập hợp tưởng tượng các rãnh có cùng bán kính từ tất cả các bề mặt được
ghi lại)
số rãnh hoặc số bề mặt (trong hình trụ)
và số khối (trong rãnh).
Việc đọc hoặc ghi một khối đĩa tốn nhiều thời gian do thời gian tìm kiếm s và độ trễ quay
(độ trễ) rd.
Bộ đệm kép có thể được sử dụng để tăng tốc độ truyền các khối đĩa liền kề.
--
Blocking: đề cập đến việc lưu trữ một số bản ghi trong một khối trên đĩa.
Blocking factor (bfr): đề cập đến số bản ghi trên mỗi khối.
Có thể có khoảng trống trong một khối nếu một số bản ghi nguyên vẹn không vừa
trong một khối.
Spanned Records: đề cập đến các bản ghi vượt quá kích thước của một hoặc nhiều
khối và do đó kéo dài một số khối.
--
blocking factor bfr cho một tệp là số lượng (trung bình) các bản ghi tệp được lưu trữ
trong một khối đĩa.
Một file có thể có các bản ghi có độ dài cố định hoặc các bản ghi có độ dài thay đổi.
--
Tập tin hồ sơ (Files of Records)
Các bản ghi tệp có thể không được kéo dài hoặc kéo dài:
Unspanned: không bản ghi nào có thể trải rộng trên hai khối
Spanned: một bản ghi có thể được lưu trữ trong nhiều khối
Các khối đĩa vật lý được phân bổ để chứa các bản ghi của tệp có thể contiguous,
linked, or indexed.
Trong một tệp gồm các bản ghi có độ dài cố định, tất cả các bản ghi đều có định dạng
giống nhau. Thông thường, chặn không mở rộng được sử dụng với các tệp như vậy.
Các tệp bản ghi có độ dài thay đổi yêu cầu thông tin bổ sung được lưu trữ trong mỗi
bản ghi, chẳng hạn như separator characters and field types.
Thường sử dụng spanned blocking với các tệp như vậy.
--
Tập tin không có thứ tự
Còn được gọi là a heap or a pile file.
Bản ghi mới được chèn vào cuối tệp.
Một tìm kiếm tuyến tính (linear search) thông qua các bản ghi tệp là cần thiết để tìm
kiếm một bản ghi. Điều này đòi hỏi trung bình phải đọc và tìm kiếm một nửa khối tệp và
do đó khá tốn kém.
Chèn bản ghi khá hiệu quả.
Việc đọc các bản ghi theo thứ tự của một trường cụ thể yêu cầu sắp xếp các bản ghi
tệp.
--
Ordered Files
Còn được gọi là sequential file.
Các bản ghi tệp được sắp xếp theo các giá trị của ordering field.
Việc chèn tốn kém: các bản ghi phải được chèn theo đúng thứ tự.
Người ta thường giữ một tệp tràn (hoặc giao dịch) không có thứ tự riêng biệt
cho các bản ghi mới để cải thiện hiệu quả chèn; cái này được hợp nhất định kỳ với tệp
được đặt hàng chính.
Một tìm kiếm nhị phân (binary search) có thể được sử dụng để tìm kiếm một bản
ghi trên giá trị trường thứ tự của nó.
Điều này yêu cầu đọc và tìm kiếm log2 của các khối tệp ở mức trung bình, một
cải tiến so với tìm kiếm tuyến tính.
Việc đọc các bản ghi theo thứ tự của trường đặt hàng khá hiệu quả.
--
Average Access Times
Type Search Time
Heap (unordered) Sequential scan (linear search) b/2
Ordered Sequential scan (linear search) b/2
Ordered Binary search Log2b
--
Tập tin băm - Hashed Files
Băm cho các tệp đĩa được gọi là Băm bên ngoài(External Hashing)
Các khối tệp được chia thành M nhóm có kích thước bằng nhau, được đánh số là nhóm
0, nhóm 1, ..., nhóm M-1.
Thông thường, một thùng tương ứng với một (hoặc một số cố định) khối đĩa.
Một trong các trường của tệp được chỉ định làm khóa băm (hash key) của tệp.
Bản ghi có giá trị khóa băm K được lưu trữ trong nhóm i, trong đó i=h(K) và h là hàm
băm.( hashing function.)
Tìm kiếm rất hiệu quả trên khóa băm.
Xung đột xảy ra khi một bản ghi mới băm vào một bộ chứa đã đầy.
Một tệp tràn được giữ để lưu trữ các bản ghi đó.
Các bản ghi tràn mà giá trị băm của mỗi nhóm có thể được liên kết với nhau
--
Có nhiều phương pháp để giải quyết xung đột, bao gồm các phương pháp sau:
Định địa chỉ mở (Open addressing): Tiếp tục từ vị trí chiếm dụng được chỉ định bởi
địa chỉ băm, chương trình kiểm tra các vị trí tiếp theo theo thứ tự cho đến khi tìm thấy vị
trí không sử dụng (trống).
xâu chuỗi(Chaining):
Nhiều vị trí tràn khác nhau được giữ: mở rộng mảng với một số vị trí tràn.
Một trường con trỏ được thêm vào mỗi vị trí bản ghi.
Xung đột được giải quyết bằng cách đặt bản ghi mới vào vị trí tràn không sử
dụng và đặt con trỏ của vị trí địa chỉ băm bị chiếm thành địa chỉ của vị trí tràn đó.
Băm nhiều lần (Multiple hashing):
Chương trình áp dụng hàm băm thứ hai nếu hàm băm thứ nhất dẫn đến xung
đột.
Nếu xảy ra xung đột khác, chương trình sử dụng địa chỉ mở hoặc áp dụng hàm
băm thứ ba và sau đó sử dụng địa chỉ mở nếu cần.
--
Công nghệ RAID
Các tổ chức đột kích khác nhau được xác định dựa trên sự kết hợp khác nhau của hai yếu
tố về mức độ chi tiết của dữ liệu xen kẽ (sọc) và mẫu được sử dụng để tính toán thông tin
dư thừa.
Raid cấp 0 không có dữ liệu dư thừa và do đó có hiệu suất ghi tốt nhất.
Raid cấp 1 sử dụng đĩa nhân đôi.
Raid cấp 2 sử dụng dự phòng kiểu bộ nhớ bằng cách sử dụng mã Hamming, chứa các
bit chẵn lẻ cho các tập hợp con chồng lấp riêng biệt của các thành phần. Cấp độ 2 bao
gồm cả phát hiện và sửa lỗi.
Raid cấp 3 sử dụng một đĩa chẵn lẻ duy nhất dựa vào bộ điều khiển đĩa để tìm ra đĩa
nào bị lỗi.
Raid cấp 4 và 5 sử dụng phân chia dữ liệu cấp khối, với cấp 5 phân phối dữ liệu và
thông tin chẵn lẻ trên tất cả các đĩa.
Raid cấp 6 áp dụng cái gọi là sơ đồ dự phòng P + Q sử dụng mã Reed-Soloman để bảo
vệ chống lại tối đa hai lỗi đĩa bằng cách chỉ sử dụng hai đĩa dự phòng.
--
Các tổ chức tấn công khác nhau đang được sử dụng trong các tình huống khác nhau:
Raid cấp 1 (đĩa nhân đôi) là cách dễ dàng nhất để xây dựng lại đĩa từ các đĩa khác. Nó
được sử dụng cho các ứng dụng quan trọng như nhật ký.
Raid cấp 2 sử dụng dự phòng kiểu bộ nhớ bằng cách sử dụng mã Hamming, chứa các
bit chẵn lẻ cho các tập hợp con chồng lấp riêng biệt của các thành phần. Cấp độ 2 bao
gồm cả phát hiện và sửa lỗi.
Đột kích cấp độ 3 (đĩa chẵn lẻ đơn lẻ dựa vào bộ điều khiển đĩa để tìm ra đĩa nào bị
lỗi) và cấp độ 5 (phân chia dữ liệu cấp độ khối) được ưu tiên cho lưu trữ khối lượng lớn,
với cấp độ 3 cho tốc độ truyền cao hơn.
Các ứng dụng phổ biến nhất của công nghệ RAID hiện nay là: Cấp độ 0 (có phân loại),
Cấp độ 1 (có phản chiếu) và Cấp độ 5 với một ổ đĩa bổ sung cho tính chẵn lẻ.
Các quyết định thiết kế cho RAID bao gồm – cấp độ RAID, số lượng đĩa, lựa chọn
lược đồ chẵn lẻ và nhóm các đĩa để phân chia cấp độ khối.
--
Mạng vùng lưu trữ - Storage Area Networks
Ưu điểm của SAN là:
Khả năng kết nối nhiều-nhiều linh hoạt giữa các máy chủ và thiết bị lưu trữ bằng cách
sử dụng bộ chuyển mạch và trung tâm kênh sợi quang.
Khoảng cách lên tới 10km giữa máy chủ và hệ thống lưu trữ bằng cáp quang thích hợp.
Khả năng cách ly tốt hơn cho phép bổ sung liên tục các thiết bị ngoại vi và máy chủ
mới.
SAN phải đối mặt với vấn đề kết hợp các tùy chọn lưu trữ từ nhiều nhà cung cấp và xử lý
các tiêu chuẩn phát triển của phần mềm và phần cứng quản lý lưu trữ.
--
Chỉ mục đa cấp - Multi-Level Indexes
Một chỉ mục đa cấp như vậy là một dạng của cây tìm kiếm.
Tuy nhiên, việc chèn và xóa các mục nhập chỉ mục mới là một vấn đề nghiêm trọng vì
mọi cấp độ của chỉ mục là một tệp có thứ tự
--
Sự khác biệt giữa B-tree và B+-tree
Trong B-Tree, các con trỏ tới các bản ghi dữ liệu tồn tại ở tất cả các cấp của cây.
Trong B+-Tree, tất cả các con trỏ tới các bản ghi dữ liệu tồn tại ở các nút cấp độ lá.
Một B+-Tree có thể có ít cấp độ hơn (hoặc khả năng chứa các giá trị tìm kiếm cao hơn)
so với B-tree tương ứng.
--
Chương 9
Database Security: An Introduction
Giới thiệu về các vấn đề bảo mật cơ sở dữ liệu
Các loại bảo mật:
Các vấn đề pháp lý và đạo đức
Vấn đề chính sách
Các vấn đề liên quan đến hệ thống
Nhu cầu xác định nhiều cấp độ bảo mật
--
Ba khái niệm cơ bản:
Xác thực/Authentication: một cơ chế xác định xem người dùng có đúng là người mà
họ tuyên bố hay không.
Ủy quyền/Authorization: việc cấp quyền hoặc đặc quyền, cho phép chủ thể có quyền
truy cập hợp pháp vào hệ thống hoặc các đối tượng của hệ thống.
Kiểm soát truy cập/Access Control: một cơ chế bảo mật (của DBMS) để hạn chế
quyền truy cập vào các đối tượng của hệ thống (cơ sở dữ liệu) nói chung.
--
Các mối đe dọa:
Bất kỳ tình huống hoặc sự kiện nào, dù cố ý hay vô ý, sẽ ảnh hưởng xấu đến hệ thống
và do đó là tổ chức.
Các mối đe dọa đối với:
Hệ thống máy tính
Cơ sở dữ liệu
--
Các mối đe dọa đối với cơ sở dữ liệu:
Mất tính toàn vẹn
Mất khả dụng
Mất bí mật
Để bảo vệ cơ sở dữ liệu chống lại các loại mối đe dọa này, có thể triển khai bốn loại
biện pháp đối phó:
Kiểm soát truy cập
Kiểm soát suy luận
Kiểm soát lưu lượng
Mã hóa
Hai loại cơ chế bảo mật cơ sở dữ liệu:
Cơ chế bảo mật tùy ý
Cơ chế bảo mật bắt buộc
--
Biện pháp đối phó với vấn đề bảo mật cơ sở dữ liệu thống kê (statistical database
security) được gọi là biện pháp kiểm soát suy luận (inference control measures).
--
Một biện pháp bảo mật khác là kiểm soát luồng, ngăn chặn thông tin chảy theo cách
mà nó đến tay người dùng trái phép.
Các kênh là con đường để thông tin truyền đi ngầm theo cách vi phạm chính sách bảo
mật của một tổ chức được gọi là các kênh bí mật(covert channels)
--
Vấn đề bảo mật cuối cùng là mã hóa dữ liệu, được sử dụng để bảo vệ dữ liệu nhạy cảm
(chẳng hạn như số thẻ tín dụng) đang được truyền qua một số loại mạng truyền thông.
Dữ liệu được mã hóa bằng thuật toán mã hóa nào đó.
Người dùng trái phép truy cập dữ liệu được mã hóa sẽ gặp khó khăn trong việc giải mã
dữ liệu đó, nhưng người dùng được ủy quyền được cung cấp các thuật toán (hoặc khóa)
giải mã hoặc giải mã để giải mã dữ liệu.
--
Quản trị viên cơ sở dữ liệu (DBA) là cơ quan trung tâm để quản lý hệ thống cơ sở dữ
liệu.
Trách nhiệm của DBA bao gồm:
cấp đặc quyền cho người dùng có nhu cầu sử dụng hệ thống.
phân loại người dùng và dữ liệu phù hợp với chính sách của tổ chức.
DBA chịu trách nhiệm bảo mật chung cho hệ thống cơ sở dữ liệu.
--
DBA có tài khoản DBA trong DBMS:
Đôi khi chúng được gọi là tài khoản hệ thống hoặc siêu người dùng.
Các tài khoản này cung cấp các khả năng mạnh mẽ như:
1. Tạo tài khoản
2. Cấp đặc quyền
3. Thu hồi đặc quyền
4. Chỉ định cấp độ bảo mật
Hành động 1 là kiểm soát truy cập, trong khi 2 và 3 là tùy ý và 4 được sử dụng để kiểm
soát ủy quyền bắt buộc.
--
we can modify system log
--
Discretionary Access Control (DAC)
Người dùng có thể bảo vệ những gì họ sở hữu.
Chủ sở hữu có thể cấp quyền truy cập cho người khác.
Chủ sở hữu có thể xác định loại quyền truy cập (đọc/ghi/thực thi/…) được cấp cho
người khác.
--
Cấp tài khoản:
Ở cấp độ này, DBA chỉ định các đặc quyền cụ thể mà mỗi tài khoản nắm giữ độc lập
với các quan hệ trong cơ sở dữ liệu.
Mức quan hệ (hoặc mức bảng):
Ở mức này, DBA có thể kiểm soát đặc quyền truy cập từng quan hệ hoặc khung nhìn
riêng lẻ trong cơ sở dữ liệu.
--
Các đặc quyền ở cấp tài khoản(account level ) áp dụng cho các khả năng được cung cấp
cho chính tài khoản đó và có thể bao gồm:
đặc quyền CREATE SCHEMA hoặc CREATE TABLE, để tạo một lược đồ hoặc quan
hệ cơ sở;
đặc quyền CREATE VIEW;
đặc quyền ALTER, để áp dụng các thay đổi lược đồ, chẳng hạn như thêm hoặc xóa
thuộc tính khỏi quan hệ;
đặc quyền DROP, để xóa các quan hệ hoặc các khung nhìn;
đặc quyền SỬA ĐỔI, để chèn, xóa hoặc cập nhật các bộ dữ liệu;
và đặc quyền CHỌN, để truy xuất thông tin từ cơ sở dữ liệu bằng cách sử dụng truy
vấn CHỌN
--
Mức đặc quyền thứ hai áp dụng cho mức quan hệ(relation level)
Điều này bao gồm quan hệ cơ sở và quan hệ ảo (xem).
Trong SQL, các loại đặc quyền sau đây có thể được cấp cho mỗi quan hệ R riêng lẻ:
Đặc quyền CHỌN (truy xuất hoặc đọc) trên R:
Điều này mang lại đặc quyền truy xuất tài khoản.
Câu lệnh SELECT được sử dụng để truy xuất các bộ dữ liệu từ R.
Đặc quyền REFERENCES trên R:
Điều này mang lại cho tài khoản khả năng tham chiếu quan hệ R khi chỉ định các ràng
buộc toàn vẹn.
Đặc quyền cũng có thể bị hạn chế đối với các thuộc tính cụ thể của R.
--
Việc cấp và thu hồi các đặc quyền thường tuân theo mô hình ủy quyền cho các đặc quyền
tùy ý được gọi là mô hình ma trận truy cập trong đó:
Các hàng của ma trận M đại diện cho các đối tượng (người dùng, tài khoản, chương
trình)
Các cột đại diện cho các đối tượng (quan hệ, bản ghi, cột, khung nhìn, thao tác).
Mỗi vị trí M(i,j) trong ma trận đại diện cho các loại đặc quyền (đọc, ghi, cập nhật) mà
chủ thể i nắm giữ trên đối tượng j.
--
Để kiểm soát việc cấp và thu hồi các đặc quyền quan hệ, đối với mỗi quan hệ R trong cơ
sở dữ liệu:
Chủ sở hữu của một quan hệ được cấp tất cả các đặc quyền trên quan hệ đó.
Chủ sở hữu tài khoản có thể chuyển các đặc quyền trên bất kỳ mối quan hệ nào được
sở hữu cho những người dùng khác bằng cách cấp các đặc quyền cho tài khoản của họ.
Chủ sở hữu tài khoản cũng có thể lấy lại các đặc quyền bằng cách thu hồi các đặc
quyền từ tài khoản của họ.
--
Cơ chế quan điểm là một cơ chế ủy quyền tùy ý quan trọng theo đúng nghĩa của nó.
Nếu chủ sở hữu A của quan hệ R muốn tài khoản B khác chỉ có thể truy xuất một số
trường của R, thì A có thể tạo chế độ xem V của R chỉ bao gồm các thuộc tính đó và sau
đó cấp SELECT trên V cho B.
Điều tương tự cũng áp dụng cho việc giới hạn B chỉ truy xuất các bộ nhất định của R;
một khung nhìn V’ có thể được tạo bằng cách xác định khung nhìn bằng truy vấn chỉ
chọn những bộ dữ liệu từ R mà A muốn cho phép B truy cập.
--
Trong một số trường hợp, nên tạm thời cấp đặc quyền cho người dùng.
Chủ sở hữu của một quan hệ có thể muốn cấp đặc quyền SELECT cho người dùng cho
một tác vụ cụ thể và sau đó thu hồi đặc quyền đó sau khi tác vụ được hoàn thành.
Do đó, cần có cơ chế thu hồi đặc quyền. Trong SQL, một lệnh REVOKE được đưa vào
nhằm mục đích hủy bỏ các đặc quyền.
--
Bất cứ khi nào chủ sở hữu A của mối quan hệ R cấp đặc quyền trên R cho tài khoản B
khác, đặc quyền có thể được trao cho B có hoặc không có TÙY CHỌN CẤP.
Nếu TÙY CHỌN CẤP được đưa ra, điều này có nghĩa là B cũng có thể cấp đặc quyền đó
trên R cho các tài khoản khác.
Giả sử rằng B được A cấp GRANT OPTION và B sau đó cấp đặc quyền trên R
cho tài khoản thứ ba C, cũng với GRANT OPTION. Theo cách này, các đặc quyền trên R
có thể truyền sang các tài khoản khác mà chủ sở hữu của R không hề hay biết.
Nếu tài khoản chủ sở hữu A hiện thu hồi đặc quyền đã cấp cho B, thì tất cả các
đặc quyền mà B đã truyền bá dựa trên đặc quyền đó sẽ tự động bị hệ thống thu hồi.
--
WITH GRANT OPTION: ng đó có thể trao quyền mình đc trao trao cho ng khác
--
Nhược điểm cố hữu của DAC
DAC không giới hạn cho phép thông tin từ một đối tượng có thể được đọc bởi một chủ
thể được ghi vào bất kỳ đối tượng nào khác
Bob bị từ chối truy cập vào tệp Y, vì vậy anh ấy yêu cầu Alice sao chép Y vào
X để anh ấy có thể truy cập.
Giả sử người dùng của chúng tôi được tin tưởng sẽ không cố tình làm điều này. Trojan
Horses vẫn có thể sao chép thông tin từ đối tượng này sang đối tượng khác
--
Kiểm soát truy cập bắt buộc/Mandatory Access Control
Cấp quyền truy cập vào dữ liệu trên cơ sở mức độ rõ ràng của người dùng và mức độ
nhạy cảm của dữ liệu.
Hai nguyên tắc của Bell-LaPadula: không đọc lên và không ghi lại bí mật.
--
Mô hình Bell-LaPadula
Các lớp bảo mật điển hình là tối mật (TS), bí mật (S), mật (C) và không phân loại (U),
trong đó TS là mức cao nhất và U là mức thấp nhất: TS ≥ S ≥ C ≥ U
Hai hạn chế được thực thi khi truy cập dữ liệu dựa trên phân loại chủ thể/đối tượng:
Một chủ thể S không được phép đọc quyền truy cập vào một đối tượng O trừ khi
lớp(S) ≥ lớp(O). Đây được gọi là thuộc tính bảo mật đơn giản.
Một chủ thể S không được phép viết một đối tượng O trừ khi lớp(S) ≤ lớp(O). Đây
được gọi là thuộc tính ngôi sao (hoặc thuộc tính *).
--
quan hệ đa cấp - Multilevel relation
Quan hệ nhiều mức: MAC + mô hình cơ sở dữ liệu quan hệ.
Đối tượng dữ liệu: thuộc tính và bộ dữ liệu.
Mỗi thuộc tính A được liên kết với một thuộc tính phân loại C.
Một thuộc tính phân loại bộ TC là cung cấp một phân loại cho mỗi bộ như một tổng
thể, giá trị cao nhất trong tất cả các giá trị phân loại thuộc tính.
R(A1,C1,A2,C2, …,An,Cn,TC)
Khóa biểu kiến của quan hệ nhiều cấp là tập hợp các thuộc tính sẽ tạo thành khóa
chính trong quan hệ thông thường (đơn cấp).
--
Một mối quan hệ đa cấp sẽ xuất hiện chứa dữ liệu khác nhau cho các chủ thể (người
dùng) với các cấp độ bảo mật khác nhau
(nếu ng dùng sử dụng ở cấp A thì chỉ xem đc dữ liệu <=A, nếu >A sẽ chuyển thành null)
--
Thuộc tính của quan hệ đa cấp/Properties of Multilevel relation
Thao tác đọc ghi: thỏa mãn nguyên tắc No Read-Up and No Write-Down.
Tính toàn vẹn của thực thể: tất cả các thuộc tính là thành viên của khóa rõ ràng
không được rỗng và phải có cùng phân loại bảo mật trong mỗi bộ dữ liệu riêng lẻ.
Ngoài ra, tất cả các giá trị thuộc tính khác trong bộ phải có phân loại bảo mật
lớn hơn hoặc bằng phân loại của khóa biểu kiến.
Ràng buộc này đảm bảo rằng người dùng có thể nhìn thấy khóa nếu người dùng
được phép nhìn thấy bất kỳ phần nào của bộ dữ liệu.
Polyinstantiation: trong đó một số bộ có thể có cùng giá trị khóa rõ ràng nhưng có các
giá trị thuộc tính khác nhau cho người dùng ở các mức phân loại khác nhau.
--
So sánh DAC và MAC
Các chính sách Kiểm soát truy cập tùy ý (DAC) được đặc trưng bởi mức độ linh hoạt cao,
khiến chúng phù hợp với nhiều miền ứng dụng.
Nhược điểm chính của các mô hình DAC là tính dễ bị tổn thương trước các cuộc tấn
công độc hại, chẳng hạn như ngựa thành Troia được nhúng trong các chương trình ứng
dụng.
--
Ngược lại, các chính sách bắt buộc đảm bảo mức độ bảo vệ cao theo một cách nào đó,
chúng ngăn chặn bất kỳ luồng thông tin bất hợp pháp nào.
Các chính sách bắt buộc có nhược điểm là quá cứng nhắc và chúng chỉ áp dụng được
trong một số môi trường hạn chế.
Trong nhiều tình huống thực tế, các chính sách tùy ý được ưu tiên hơn vì chúng mang
lại sự đánh đổi tốt hơn giữa tính bảo mật và khả năng áp dụng.
--
Kiểm soát truy cập dựa trên vai trò / Role-Based Access Control
Kiểm soát truy cập dựa trên vai trò (RBAC) nổi lên nhanh chóng vào những năm
1990 như một công nghệ đã được chứng minh để quản lý và thực thi bảo mật trong các hệ
thống toàn doanh nghiệp quy mô lớn.
Khái niệm cơ bản của nó là các quyền được liên kết với các vai trò và người dùng
được gán cho các vai trò thích hợp.
Có thể tạo các vai trò bằng lệnh CREATE ROLE và DESTROY ROLE.
Các lệnh CẤP và THU HỒI được thảo luận trong phần DAC sau đó có thể
được sử dụng để gán và thu hồi các đặc quyền từ các vai trò
--
RBAC dường như là một giải pháp thay thế khả thi cho các biện pháp kiểm soát truy
cập bắt buộc và tùy ý truyền thống; nó đảm bảo rằng chỉ những người dùng được ủy
quyền mới được cấp quyền truy cập vào dữ liệu hoặc tài nguyên nhất định.
Nhiều DBMS đã cho phép khái niệm vai trò, trong đó các đặc quyền có thể được gán
cho các vai trò.
Phân cấp vai trò trong RBAC là một cách tự nhiên để tổ chức các vai trò nhằm phản
ánh các dòng quyền hạn và trách nhiệm của tổ chức.
--
Một cân nhắc quan trọng khác trong các hệ thống RBAC là các ràng buộc tạm thời có
thể tồn tại trên các vai trò, chẳng hạn như thời gian và khoảng thời gian kích hoạt vai trò
và thời gian kích hoạt một vai trò bằng cách kích hoạt một vai trò khác.
Sử dụng mô hình RBAC là mục tiêu rất được mong muốn để giải quyết các yêu cầu
bảo mật chính của các ứng dụng dựa trên Web.
Ngược lại, các mô hình kiểm soát truy cập tùy ý (DAC) và kiểm soát truy cập bắt buộc
(MAC) thiếu các khả năng cần thiết để hỗ trợ các yêu cầu bảo mật của các doanh nghiệp
mới nổi và các ứng dụng dựa trên Web.
--
Mã hóa / Encryption
Việc mã hóa dữ liệu bằng một thuật toán đặc biệt khiến bất kỳ chương trình nào cũng
không thể đọc được dữ liệu nếu không có khóa giải mã.
Mật mã đối xứng: người gửi và người nhận sử dụng cùng một khóa.
Mật mã bất đối xứng: khóa mã hóa & giải mã.
--
Bản rõ/Plaintext là nội dung gốc có thể đọc được dưới dạng tài liệu văn bản. Bản rõ
cần được bảo vệ.
Bản mã/Ciphertext là kết quả của quá trình mã hóa được thực hiện trên bản rõ bằng
thuật toán. Bản mã không thể đọc được.
Hệ thống mật mã = thuật toán mã hóa + giải mã.
Quá trình mã hóa, giải mã cần khóa
--
Hệ mật mã đối xứng (khóa chung/khóa bí mật): cùng một khóa cho các thuật toán mã
hóa (en/de) (KE = KD).
Hệ mật bất đối xứng (khóa công khai): khóa công khai & khóa riêng (KE ≠ KD).
--
(Phổ biến nhất) Các kỹ thuật đối xứng: DES, AES.
Cùng một khóa được sử dụng cho cả mã hóa và giải mã.
Nhanh hơn mã hóa và giải mã trong các hệ thống mật mã khóa công khai (PK).
Ít bảo mật hơn so với mã hóa và giải mã trong các hệ thống mật mã PK.
Kỹ thuật bất đối xứng: RSA, DSA.
--
DES: Chuẩn mã hóa dữ liệu
Một tin nhắn được chia thành các khối 64-bit
Khóa: 56 bit
Các cuộc tấn công tìm kiếm khóa toàn diện hoặc vét cạn: Vài giờ.
AES: Advanced Encryption Standard (Rijndael): Kích thước khóa và kích thước khối
có thể được chỉ định độc lập thành 128, 192 hoặc 256 bit.
RSA: named after 3 inventors Rivest, Shamir, Adleman
Two keys: public key and private key
Public key is used for encrytion.
Private key is used for decrytion
A digital certificate
A public key
Certificate info (identifying information such as name, ID)
One (or more) digital signatures
Tính toán: