Ôn Thi

Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Chương 1:

Tiếp cận cơ sở dữ liệu (Data approach)


Danh mục hệ thống (siêu dữ liệu) cung cấp mô tả dữ liệu để cho phép chương trình-dữ
liệu độc lập
Dữ liệu liên quan logic bao gồm các thực thể, thuộc tính và mối quan hệ của thông tin
tổ chức
Hệ thống quản lý cơ sở dữ liệu (DBMS): một hệ thống phần mềm có mục đích chung
hỗ trợ quá trình xác định, xây dựng, thao tác và chia sẻ cơ sở dữ liệu giữa những người
dùng và ứng dụng khác nhau
--
Hệ thống cơ sở dữ liệu = Cơ sở dữ liệu + phần mềm DBMS
Cách tiếp cận cơ sở dữ liệu cho phép người dùng:
Chỉ định kiểu dữ liệu, cấu trúc và mọi ràng buộc dữ liệu sẽ được lưu trữ trong cơ sở dữ
liệu. Tất cả các thông số kỹ thuật được lưu trữ trong cơ sở dữ liệu
Truy vấn dữ liệu: truy xuất (truy vấn), cập nhật (chèn, xóa, sửa đổi)
Kiểm soát truy cập cơ sở dữ liệu:
hệ thống an ninh
một hệ thống toàn vẹn
một hệ thống điều khiển tương tranh
một hệ thống kiểm soát phục hồi
danh mục người dùng có thể truy cập
--
Quản trị viên cơ sở dữ liệu (DBA) có trách nhiệm:
Phân quyền truy cập cơ sở dữ liệu
Phối hợp và giám sát việc sử dụng nó
Thu thập tài nguyên phần mềm và phần cứng
Người thiết kế cơ sở dữ liệu có trách nhiệm:
Xác định dữ liệu được lưu trữ
Lựa chọn cấu trúc thích hợp để biểu diễn và lưu trữ
dữ liệu này
Lập trình viên ứng dụng
Triển khai các thông số kỹ thuật này dưới dạng các chương trình
Người dùng cuối
Những người có công việc yêu cầu quyền truy cập vào cơ sở dữ liệu
--
Công nhân hậu trường
Người thiết kế và triển khai hệ thống DBMS: Thiết kế và triển khai các mô-đun và
giao diện DBMS dưới dạng gói phần mềm
Người phát triển công cụ: Thiết kế và triển khai các công cụ
Người vận hành và nhân viên bảo trì: Chịu trách nhiệm vận hành và bảo trì môi trường
phần cứng và phần mềm cho hệ thống cơ sở dữ liệu
--
Đặc điểm của phương pháp tiếp cận cơ sở dữ liệu
Bản chất tự mô tả của một hệ cơ sở dữ liệu
Cách ly giữa chương trình và dữ liệu, và trừu tượng hóa dữ liệu
Độc lập dữ liệu chương trình + Độc lập vận hành chương trình = Trừu tượng
hóa dữ liệu
Một mô hình dữ liệu là một kiểu trừu tượng hóa dữ liệu
Hỗ trợ nhiều chế độ xem dữ liệu
Chia sẻ dữ liệu và xử lý giao dịch nhiều người dùng
--
Khi nào không sử dụng DBMS
Nên sử dụng các tệp thông thường hơn cho:
Các ứng dụng cơ sở dữ liệu đơn giản, được xác định rõ ràng sẽ không thay đổi chút
nào
Các yêu cầu nghiêm ngặt, thời gian thực có thể không được đáp ứng do chi phí DBMS
Các hệ thống nhúng có dung lượng lưu trữ hạn chế
Không có nhiều người dùng truy cập vào dữ liệu
--
Lịch sử của hệ thống cơ sở dữ liệu
Thế hệ thứ nhất: Phân cấp và Mạng
Thế hệ thứ hai: Quan hệ
Thế hệ thứ ba: Quan hệ đối tượng, Hướng đối tượng
--
Kiến trúc ba lược đồ và độc lập dữ liệu
(Three-Schema Architecture and Data Independence)
Mục tiêu của Kiến trúc ba lược đồ
Tất cả người dùng sẽ có thể truy cập cùng một dữ liệu
Người dùng không cần biết chi tiết lưu trữ cơ sở dữ liệu vật lý
DBA có thể thay đổi cấu trúc lưu trữ cơ sở dữ liệu mà không ảnh hưởng đến chế độ
xem của người dùng
Cấu trúc bên trong của cơ sở dữ liệu sẽ không bị ảnh hưởng bởi những thay đổi đối với
các khía cạnh vật lý của lưu trữ
DBA có thể thay đổi cấu trúc khái niệm của cơ sở dữ liệu mà không ảnh hưởng đến tất
cả người dùng
--
External Level
Chế độ xem cơ sở dữ liệu của người dùng
Mô tả phần cơ sở dữ liệu có liên quan đến một người dùng cụ thể
Conceptual Level
Chế độ xem cộng đồng của cơ sở dữ liệu
Mô tả dữ liệu nào được lưu trữ trong cơ sở dữ liệu và mối quan hệ giữa các dữ
liệu
Internal Level
Biểu diễn vật lý của cơ sở dữ liệu trên máy tính.
Mô tả cách dữ liệu được lưu trữ trong cơ sở dữ liệu
--
Độc lập dữ liệu: là khả năng thay đổi lược đồ ở một mức của hệ thống cơ sở dữ liệu mà
không phải thay đổi lược đồ ở các mức cao hơn tiếp theo
Độc lập dữ liệu logic: Các thay đổi lược đồ khái niệm (ví dụ: thêm/xóa các thực thể)
không nên yêu cầu thay đổi lược đồ bên ngoài hoặc viết lại các chương trình ứng dụng
Độc lập dữ liệu vật lý: Các thay đổi lược đồ bên trong (ví dụ: sử dụng các tổ chức tệp
khác nhau, cấu trúc/thiết bị lưu trữ) không nên yêu cầu thay đổi đối với lược đồ khái
niệm hoặc bên ngoài
--
Ngôn ngữ cơ sở dữ liệu (Database Languages)
Ngôn ngữ định nghĩa dữ liệu/Data Definition Language (DDL) cho phép DBA hoặc
người dùng mô tả và đặt tên cho các thực thể, thuộc tính và mối quan hệ cần thiết cho
ứng dụng cộng với mọi ràng buộc về tính toàn vẹn và bảo mật có liên quan
Ngôn ngữ thao tác dữ liệu/Data Manipulation Language (DML) cung cấp các thao tác
thao tác dữ liệu cơ bản (chọn, chèn, cập nhật, xóa) trên dữ liệu được giữ trong cơ sở dữ
liệu
Ngôn ngữ kiểm soát dữ liệu/Data Control Language (DCL) xác định các hoạt động
không nằm trong các danh mục dành cho DDL và DML, chẳng hạn như cấp đặc quyền
cho người dùng và xác định khi nào các thay đổi được đề xuất đối với cơ sở dữ liệu nên
được thực hiện một cách không hủy ngang
--
DML theo thủ tục cho phép người dùng cho hệ thống biết chính xác cách thao tác dữ liệu
(ví dụ: Mạng và DML phân cấp)
DML phi thủ tục (ngôn ngữ khai báo) cho phép người dùng nêu rõ dữ liệu nào là cần
thiết thay vì cách truy xuất dữ liệu đó (ví dụ: SQL, QBE)
Ngôn ngữ thế hệ thứ tư (4GL)
Các ngôn ngữ phi thủ tục: SQL, QBE, v.v.
Trình tạo ứng dụng, trình tạo báo cáo, v.v. (xem [2])
--
Mô hình dữ liệu, lược đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu
Data Models, Database Schema and Database State
Mô hình dữ liệu: Một tập hợp tích hợp các khái niệm để mô tả dữ liệu, mối quan hệ
giữa dữ liệu và các ràng buộc đối với dữ liệu trong một tổ chức
Các loại mô hình dữ liệu bao gồm: (Describe data at the conceptual & external levels)
Dựa trên đối tượng (Khái niệm)
ER, Hướng đối tượng,…
Dựa trên hồ sơ (Đại diện)
Quan hệ, Mạng, Phân cấp
Vật lý: được sử dụng để mô tả dữ liệu ở cấp độ bên trong
--
Lược đồ cơ sở dữ liệu: mô tả cơ sở dữ liệu, được chỉ định trong quá trình thiết kế cơ sở
dữ liệu và dự kiến sẽ không thay đổi thường xuyên
Schema Diagram: một lược đồ được hiển thị
Trạng thái cơ sở dữ liệu (Snapshot): dữ liệu trong cơ sở dữ liệu tại một thời điểm cụ
thể
--
Data Management Systems Framework
Application Layer: Visualization, Collaborative Computing, Mobile Computing,
Knowledgebased Systems
Data Management Layer:
Layer 3: information extraction & sharing: Data Warehousing, Data Mining, Internet
DBs, Collaborative, P2P & Grid Data Management
Layer 2: interoperability & migration Heterogeneous: DB Systems, Client/Server DBs,
Multimedia DB Systems, Migrating Legacy DBs
Layer 1: DB technologies: DB Systems, Distributed DB Systems
Supporting Layer: Networking, Mass Storage, Agents, Grid Computing Infrastructure,
Parallel & Distributed Processing, Distributed Object Management
--
Mở rộng khả năng cơ sở dữ liệu cho các ứng dụng mới
Các ứng dụng ví dụ: lưu trữ và truy xuất hình ảnh, video, khai thác dữ liệu (cần lưu trữ
và phân tích lượng lớn dữ liệu), cơ sở dữ liệu không gian, ứng dụng chuỗi thời gian,…
Cấu trúc dữ liệu phức tạp hơn biểu diễn quan hệ
Các kiểu dữ liệu mới ngoại trừ kiểu chuỗi ký tự và số cơ bản
Các thao tác mới và ngôn ngữ truy vấn cho các kiểu dữ liệu mới
Các phương pháp lưu trữ và truy xuất mới
Cơ chế bảo mật mới

Chương 2
Entity-Relationship Model
Tổng quan về quy trình thiết kế cơ sở dữ liệu
Thiết kế cơ sở dữ liệu
Để thiết kế lược đồ khái niệm cho một ứng dụng cơ sở dữ liệu
Thiết kế ứng dụng
Tập trung vào các chương trình và giao diện truy cập cơ sở dữ liệu
Thường được coi là một phần của công nghệ phần mềm
--
REQUIREMENTS - COLLECTION & ANALYSIS ->Data requirements->
CONCEPTUAL DESIGN->Conceptual schema->
• Tạo lược đồ khái niệm bằng cách sử dụng mô hình dữ liệu khái niệm cấp cao (Mô hình
quan hệ thực thể)
• Mô tả các loại thực thể, mối quan hệ và ràng buộc
• Độc lập về lưu trữ và chi tiết thực hiện.
LOGICAL DESIGN (DATA MODEL MAPPING)-> Database schema->
• Tạo lược đồ cơ sở dữ liệu trong mô hình dữ liệu triển khai của DBMS thương mại
• Ánh xạ mô hình dữ liệu thường được tự động hóa hoặc bán tự động trong công cụ thiết
kế cơ sở dữ liệu.
PHYSICAL DESIGN->Internal schema
• Chỉ định cấu trúc bộ nhớ trong, tổ chức tệp, chỉ mục, đường dẫn truy cập và tham số
thiết kế vật lý cho tệp cơ sở dữ liệu.
--
Tại sao sử dụng mô hình dữ liệu ER?
Các yêu cầu của người dùng có thể được chỉ định một cách chính thức & rõ ràng
Người dùng thông thường có thể dễ dàng hiểu được.
Nó cung cấp một cầu nối hiệu quả giữa các yêu cầu của người dùng và thiết kế và triển
khai cơ sở dữ liệu logic
Mô hình dữ liệu khái niệm độc lập với bất kỳ DBMS cụ thể nào
Nó không liên quan đến bất kỳ chi tiết vật lý hoặc triển khai nào
--
An entity type may have more than one key.
--
Các loại thực thể yếu
Không có thuộc tính khóa của riêng mình, Được xác định bằng cách liên quan đến các
thực thể cụ thể từ một loại thực thể khác
Xác định mối quan hệ: Liên kết một loại thực thể yếu với chủ sở hữu của nó
Luôn có ràng buộc tham gia tổng thể
Các thực thể được xác định bởi sự kết hợp của:
Một phần khóa của loại thực thể yếu
Thực thể cụ thể mà chúng có liên quan trong loại thực thể xác định
--
Sơ đồ lớp UML(UML class diagrams)
Class bao gồm ba phần:
Phần trên cùng ghi tên lớp
Phần giữa bao gồm các thuộc tính;
Phần cuối bao gồm các thao tác có thể áp dụng cho các đối tượng riêng lẻ
Associations: các kiểu quan hệ
Các thể hiện của mối quan hệ: các liên kết
Hiệp hội nhị phân
Biểu diễn dưới dạng đường nối các lớp tham gia
Có thể tùy ý đặt tên
Thuộc tính liên kết
Được đặt trong một ô được nối với đường liên kết bằng nét đứt
--
Đa dạng: min..max, dấu hoa thị (*) cho biết không có giới hạn tối đa cho việc tham gia
Các loại quan hệ: liên kết và tập hợp
Phân biệt giữa các hiệp hội một chiều và hai chiều
Mô hình hóa các thực thể yếu bằng cách sử dụng liên kết đủ điều kiện
--
Problems with ER Models
Semantic constraints (Ràng buộc ngữ nghĩa)
Các ràng buộc không thể biểu thị trực tiếp trong sơ đồ ER
Phải được thể hiện và thực thi bởi cơ chế kích hoạt, hoặc các chương trình ứng dụng
hoặc một số cách khác.
Ví dụ:
Tuổi của nhân viên phải lớn hơn 18 tuổi
Lương của trưởng bộ phận phải cao hơn lương của các nhân viên khác làm việc cho bộ
phận đó.
Khi tăng lương cho người lao động, mức tăng không quá 20% mức lương hiện hưởng.
--
Connection traps (Bẫy kết nối)
Thường do hiểu sai nghĩa của một số quan hệ
Hai loại bẫy kết nối chính được gọi là fan traps and chasm traps
--
Fan Trap (do 1-N hoặc M-N)
Trường hợp một mô hình biểu thị mối quan hệ giữa các loại thực thể, nhưng đường
dẫn giữa các lần xuất hiện thực thể nhất định không rõ ràng
Thông thường: hai hoặc nhiều mối quan hệ 1:N phân bổ từ cùng một thực thể
Chasm Trap (do = rồi chuyển qua --)
Trường hợp một mô hình gợi ý sự tồn tại của mối quan hệ giữa các loại thực thể,
nhưng không tồn tại lộ trình giữa các lần xuất hiện thực thể nhất định
Thông thường: tùy chọn tham gia
Chương 3
Enhanced Entity-Relationship Model
Subclasses, Superclasses & Inheritance
Các thuật ngữ chỉ mối quan hệ giữa một lớp cha và bất kỳ lớp con nào của nó:
Lớp cha/lớp con Superclass/subclass
Siêu kiểu/kiểu con Supertype/subtype
Lớp/lớp con Class/subclass
Mối quan hệ lớp/lớp con thường được gọi là IS-A (IS-AN) mối quan hệ.
--
Thành viên của lớp con giống như thực thể trong lớp cha, nhưng có vai trò cụ thể riêng
biệt
Một thực thể không thể tồn tại trong cơ sở dữ liệu nếu chỉ là thành viên của một lớp
con; nó cũng phải là một thành viên của siêu lớp
Thành viên của lớp cha có thể được tùy ý đưa vào làm thành viên của một số lớp con
của nó
Không nhất thiết mọi thực thể trong lớp cha đều là thành viên của lớp con nào đó
Mối quan hệ lớp cha/lớp con là một đối một (1:1)
--
Thực thể lớp con kế thừa tất cả các thuộc tính và mối quan hệ của lớp cha
Lưu ý rằng một lớp con, với các thuộc tính và mối quan hệ cụ thể (hoặc cục bộ) của
riêng nó cùng với tất cả các thuộc tính và mối quan hệ mà nó kế thừa từ lớp cha, có thể
được coi là một kiểu thực thể theo đúng nghĩa của nó.
--
Specialization and Generalization (Chuyên môn hóa và tổng quát hóa)
Specialization
Quá trình định nghĩa một tập các lớp con của một kiểu thực thể, được gọi là lớp cha
Được định nghĩa trên cơ sở một số đặc điểm phân biệt của các thực thể trong lớp cha
Có thể có một số chuyên môn hóa của cùng một loại thực thể dựa trên các đặc điểm
phân biệt khác nhau
Lớp con có thể có:
Thuộc tính cụ thể (thuộc tính cục bộ)
Các kiểu quan hệ cụ thể
--
Generalization
Quá trình chuyên môn hóa ngược
Tổng quát hóa một số loại thực thể có một số các tính năng phổ biến vào một siêu lớp
duy nhất. Các kiểu thực thể gốc là các lớp con đặc biệt
Quá trình xác định một loại thực thể tổng quát từ các loại thực thể đã cho
--
Ký hiệu sơ đồ đôi khi được sử dụng để phân biệt giữa Specialization and Generalization
Mũi tên trỏ đến lớp cha tổng quát hóa thể hiện một sự tổng quát hóa
Mũi tên chỉ vào các phân lớp chuyên biệt thể hiện một chuyên môn hóa
Chúng tôi không sử dụng ký hiệu này vì nó thường chủ quan về quy trình nào phù hợp
hơn cho một tình huống cụ thể
Chúng tôi ủng hộ việc không vẽ bất kỳ mũi tên nào trong những tình huống này
--
subclass:
Các lớp con được xác định bởi vị từ (hoặc được xác định bởi điều kiện)
Chuyên môn hóa do thuộc tính định nghĩa
Do người dùng định nghĩa
--
Nếu chúng ta có thể xác định chính xác những thực thể sẽ trở thành thành viên của mỗi
lớp con theo một điều kiện, thì các lớp con đó được gọi là lớp con được xác định bởi vị
từ (hoặc được xác định bởi điều kiện).
Điều kiện là một ràng buộc xác định các thành viên của lớp con
Hiển thị một lớp con được định nghĩa bởi vị từ bằng cách viết điều kiện của vị từ bên
cạnh dòng gắn lớp con với lớp cha của nó
--
Nếu tất cả các lớp con trong một chuyên biệt hóa có điều kiện thành viên trên cùng một
thuộc tính của lớp cha, chuyên môn hóa được gọi là chuyên môn hóa được xác định
thuộc tính
Thuộc tính được gọi là thuộc tính xác định của specialization
Vd: JobType là thuộc tính xác định chuyên ngành {THƯ KÝ, KỸ THUẬT VIÊN, KỸ
SƯ} của NHÂN VIÊN
--
Nếu không có điều kiện nào xác định tư cách thành viên, lớp con được gọi là do người
dùng định nghĩa
Tư cách thành viên trong một lớp con được xác định bởi người dùng cơ sở dữ liệu
bằng cách áp dụng một thao tác để thêm một thực thể vào lớp con
Tư cách thành viên trong lớp con được chỉ định riêng cho từng thực thể trong lớp cha
bởi người dùng
--
Constraints on Specialization & Generalization
Two basic conditions apply to a specialization/ generalization: disjointness and
completeness constraints
Disjointness constraint : May be disjointed or overlap
Completeness (or totalness) constraint : May be total or partial
Disjointness and completeness constraints are independent
--
Category or Union type
Biểu diễn một mối quan hệ lớp cha/lớp con với nhiều hơn một lớp cha
Lớp con đại diện cho một tập hợp các đối tượng là tập con của UNION các kiểu thực
thể riêng biệt
Kế thừa thuộc tính hoạt động có chọn lọc hơn
Danh mục có thể là toàn bộ hoặc một phần
Một số phương pháp lập mô hình không có kiểu kết hợp
--
A category can be total or partial
total
Giữ sự kết hợp của tất cả các thực thể trong các lớp cha của nó.
Được biểu diễn dưới dạng biểu đồ bằng một đường đôi nối danh mục và vòng tròn.
partial
Có thể chứa một tập con của hợp.
Được biểu diễn dưới dạng biểu đồ bằng một đường nối danh mục và vòng tròn.
Các lớp cha của một category có thể có các thuộc tính khóa khác nhau hoặc cùng một
thuộc tính khóa.
--
A subclass with more than one superclass is called a shared subclass
Category Shared Subclass
A category is the subclass in one single A shared subclass is the subclass in more
relationship. than one distinct relationship (multiple
inheritance).
This relationship has more than one Each of these relationships has a single
superclass representing different entity superclass.
types.
A member entity of a category must exist An member entity of a shared subclass
in only one of its superclasses (OR). must exist in all its superclasses (AND).
A category is a subset of the union of its A shared subclass is a subset of the
superclasses.( một tập hợp con của sự kết intersection of its superclasses.( một tập
hợp của các siêu lớp của nó.) hợp con của giao điểm của các lớp cha của
nó.)
Thành viên của một danh mục kế thừa Thành viên của một lớp con được chia sẻ
các thuộc tính và mối quan hệ của chỉ một kế thừa tất cả các thuộc tính và mối quan
trong các lớp cha của nó. hệ của tất cả các lớp cha của nó.

--
Đị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:

You might also like