You are on page 1of 11

1.

Giao dịch trong kinh tế:


Hành vi mua bán, trao đổi hàng hóa, dịch vụ hay tài sản giữa các bên để
nhận lại giá trị tương ứng.
Hoạt động này có thể diễn ra trực tiếp hoặc gián tiếp thông qua các kênh
trung gian như sàn giao dịch, thị trường điện tử,...
Mục đích của giao dịch là đáp ứng nhu cầu của các bên tham gia, tạo ra
lợi ích kinh tế và thúc đẩy sự phát triển của thị trường.

2.Các tính chất của giao dịch:


1. Tính hợp pháp:
Giao dịch phải tuân thủ các quy định của pháp luật, không vi phạm các
nguyên tắc cơ bản của pháp luật như bình đẳng, tự nguyện, hợp tác và
đạo đức.
Hành vi giao dịch trái pháp luật sẽ vô hiệu và có thể dẫn đến các chế tài
xử phạt theo quy định của pháp luật.
2. Tính tự nguyện:
Các bên tham gia giao dịch phải tự nguyện, không bị cưỡng ép hay lừa
dối.
Việc thực hiện giao dịch dựa trên sự đồng thuận ý chí của các bên tham
gia.
3. Tính hợp lý:
Nội dung giao dịch phải phù hợp với mục đích, nhu cầu của các bên tham
gia và không trái với đạo đức xã hội.
Giá trị giao dịch phải tương xứng với giá trị thực của tài sản hoặc dịch vụ
được giao dịch.
4. Tính công bằng:
Các bên tham gia giao dịch phải có quyền và nghĩa vụ ngang nhau, không
bên nào được hưởng lợi bất công từ giao dịch.
Mọi rủi ro và lợi ích phát sinh từ giao dịch phải được chia sẻ công bằng
giữa các bên tham gia.
5. Tính minh bạch:
Các thông tin liên quan đến giao dịch phải được cung cấp đầy đủ, chính
xác và rõ ràng cho các bên tham gia.
Các bên tham gia giao dịch phải có quyền tiếp cận thông tin và được giải
thích về các điều khoản của giao dịch.
Ngoài ra, giao dịch còn có thể có một số tính chất khác tùy thuộc vào loại
giao dịch và mục đích của giao dịch.
3.Nêu các vấn đề truy xuất đồng thời?
1. Mất tính toàn vẹn dữ liệu:
Khi nhiều người dùng truy cập và sửa đổi dữ liệu
cùng lúc, có thể dẫn đến tình trạng dữ liệu bị ghi
đè, mất mát hoặc không nhất quán.

2. Đọc dữ liệu bẩn:


Khi một người dùng đang đọc dữ liệu, một người
dùng khác có thể đang sửa đổi dữ liệu đó, dẫn đến
việc người dùng đầu tiên đọc được dữ liệu không
chính xác.

3. Tình trạng bế tắc (deadlock):


Khi hai hoặc nhiều người dùng đang chờ nhau để
truy cập dữ liệu, dẫn đến việc không ai có thể truy
cập dữ liệu được.
4. Giảm hiệu suất:
Việc truy cập dữ liệu đồng thời có thể làm tăng tải
hệ thống, dẫn đến việc giảm hiệu suất và thời gian
phản hồi.
Ngoài ra, còn có một số vấn đề khác liên quan đến
truy xuất đồng thời như:
Khó khăn trong việc quản lý và kiểm soát truy cập
dữ liệu.
Tăng nguy cơ bảo mật dữ liệu.
Chi phí phát triển và bảo trì hệ thống cao hơn.
4.Cho ví dụ minh họa vấn đề mất dữ liệu cập nhật?
Vấn đề mất dữ liệu cập nhật trong SQL:
Nguyên nhân:
Truy cập đồng thời: Khi nhiều người dùng truy cập và sửa đổi
dữ liệu cùng lúc, có thể dẫn đến việc dữ liệu bị ghi đè, mất mát
hoặc không nhất quán.
Lỗi hệ thống: Lỗi phần mềm, lỗi phần cứng hoặc lỗi mạng có
thể dẫn đến việc mất dữ liệu cập nhật.
Cập nhật không đồng bộ: Khi dữ liệu được cập nhật trên nhiều
máy chủ nhưng quá trình cập nhật không đồng bộ, có thể dẫn
đến việc mất dữ liệu.
Hậu quả:
Lỗi dữ liệu: Dữ liệu không chính xác hoặc không nhất quán có
thể dẫn đến sai sót trong báo cáo, phân tích và 决策.
Mất mát tài chính: Mất dữ liệu về khách hàng, đơn hàng hoặc
giao dịch có thể dẫn đến mất mát tài chính.
Mất uy tín: Mất dữ liệu có thể làm giảm uy tín của doanh nghiệp
và khiến khách hàng mất niềm tin.

5.Cho ví dụ minh họa vấn đề đọc dữ liệu chưa


commit?
Ví dụ:
Giả sử hai người dùng cùng lúc truy cập vào bảng
products của cơ sở dữ liệu SQL:
Người dùng A: Cập nhật giá sản phẩm có ID là 1 thành
100.000 đồng.
Người dùng B: Truy vấn giá sản phẩm có ID là 1.
Nếu mức độ cô lập được đặt là Read Uncommitted,
người dùng B có thể đọc được giá sản phẩm là 100.000
đồng ngay cả khi người dùng A chưa commit giao dịch.
Tuy nhiên, nếu giao dịch của người dùng A thất bại, giá
sản phẩm sẽ không được cập nhật và người dùng B đã
đọc được thông tin sai lệch.
6.Có bao nhiêu cách để điều khiển tương tranh? Đó là
những cách nào?

Hai cách chính:


Khóa dữ liệu:
 Đảm bảo chỉ một người dùng truy cập và sửa đổi dữ liệu tại
một thời điểm.
 Có nhiều loại khóa (độc quyền, chia sẻ) và cấp độ khóa
(hàng, trang, bảng).
Kiểm soát đồng thời:
Đảm bảo tính toàn vẹn dữ liệu khi nhiều người dùng truy cập
cùng lúc.
Kỹ thuật: quản lý phiên bản, khóa lạc quan, khóa bi quan.
Lựa chọn phương pháp:
 Loại hệ thống
 Số lượng người dùng
 Loại dữ liệu
 Mức độ chấp nhận xung đột
Ví dụ:
Hệ thống bán hàng: khóa dữ liệu cấp độ hàng.
Hệ thống quản lý tài liệu: kiểm soát đồng thời dựa trên quản lý
phiên bản.
7.Thao tác hoán vị là gì?
Hoán vị: Sắp xếp lại các phần tử trong tập hợp theo thứ
tự khác.
Cách thực hiện:
 Hàm PIVOT: Hoán vị cột.
 Lệnh CROSS JOIN: Hoán vị hàng.
 Hàm ROW_NUMBER: Hoán vị theo thứ tự tùy chỉnh.
Lưu ý:
Ảnh hưởng đến hiệu suất hệ thống.
Cẩn thận khi sử dụng để đảm bảo kết quả mong muốn.
Công cụ:
Có thể sử dụng công cụ và thư viện bên thứ ba.
8.Thao tác tương thích là gì?
Thao tác tương thích trong SQL:
Là thao tác không làm thay đổi dữ liệu.
Ví dụ:
 SELECT: Truy xuất dữ liệu.
 UPDATE: Cập nhật dữ liệu (có thể ảnh hưởng).
 DELETE: Xóa dữ liệu (có thể ảnh hưởng).
Cần cẩn thận khi thực hiện để đảm bảo không ảnh hưởng
dữ liệu theo cách không mong muốn.
Thao tác tương thích khác:
 CREATE TABLE: Tạo bảng mới.
 ALTER TABLE: Thay đổi cấu trúc bảng.
 GRANT: Cấp quyền truy cập.
 REVOKE: Thu hồi quyền truy cập.

9.Có bao nhiêu thuật toán điều khiển tương


tranh bằng cơ chế nhãn thời gian?
Có 2 thuật toán chính:
-Thuật toán Timestamp Ordering (TO):
Gán nhãn thời gian cho mỗi giao dịch.Giải
quyết xung đột dựa trên thứ tự nhãn thời
gian.
-Thuật toán Multiversion Concurrency
Control (MVCC):
Lưu trữ nhiều phiên bản của dữ liệu.Cho
phép các giao dịch đọc các phiên bản cũ
của dữ liệu.
10.So sánh 2 thuật toán sắp xếp: toàn phần và từng phần
*Toàn phần: Sắp xếp toàn bộ mảng.
-Ưu điểm: Đơn giản, dễ hiểu.
-Nhược điểm: Hiệu quả kém với mảng dữ liệu lớn, yêu cầu nhiều bộ
nhớ.
Ví dụ: Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick
Sort.
*Từng phần: Sắp xếp từng phần nhỏ.
-Ưu điểm: Hiệu quả với mảng dữ liệu lớn, yêu cầu ít bộ nhớ.
-Nhược điểm: Phức tạp hơn, chỉ hiệu quả với mảng dữ liệu có đặc
điểm cụ thể.
Ví dụ: Counting Sort, Bucket Sort, Radix Sort.

11.So sánh thuật toán sắp xếp từng phần và từng phần đa phiên bản
trong SQL:
1. Giống nhau:
 Đều là thuật toán sắp xếp hiệu quả cho tập dữ liệu lớn.
 Sử dụng phương pháp chia nhỏ tập dữ liệu thành các phần con và sắp
xếp từng phần riêng lẻ.
 Có thể thực hiện hiệu quả với các bảng lớn bằng cách sử dụng các
truy vấn SQL.

3.Lựa chọn thuật toán:


 Sắp xếp từng phần: Thích hợp cho các tập dữ liệu lớn và đơn giản.
 Sắp xếp từng phần đa phiên bản: Thích hợp cho các tập dữ liệu lớn và cần hiệu
suất cao.

12. Phân biệt 2 loại khoá: Rlock, Wlock


Phân biệt Rlock và Wlock trong SQL:
1. Rlock (Read lock):
Cho phép truy cập dữ liệu (SELECT) nhưng không cho phép
sửa đổi (INSERT, UPDATE, DELETE).
Nhiều người dùng có thể đồng thời giữ Rlock trên cùng một dữ
liệu.
Được sử dụng để đảm bảo tính toàn vẹn dữ liệu khi nhiều người
dùng truy cập cùng lúc.
2. Wlock (Write lock):
Cho phép truy cập và sửa đổi dữ liệu.
Chỉ một người dùng có thể giữ Wlock trên cùng một dữ liệu tại
một thời điểm.
Được sử dụng để ngăn chặn xung đột dữ liệu khi nhiều người
dùng sửa đổi cùng lúc.
13.Phân biệt Deadlock và Livelock:
1. Deadlock:
Xảy ra khi hai hoặc nhiều tiến trình (thread) chờ nhau để giải phóng tài nguyên
(khóa).
Không có tiến trình nào có thể tiếp tục thực thi cho đến khi deadlock được giải quyết.
Có thể dẫn đến tình trạng hệ thống treo.

Ví dụ:Hai tiến trình A và B, A đang giữ khóa X và chờ khóa Y do B giữ, B đang giữ
khóa Y và chờ khóa X do A giữ.
2. Livelock:
Xảy ra khi hai hoặc nhiều tiến trình liên tục tranh giành tài nguyên (khóa) nhưng
không ai có thể thành công.Các tiến trình liên tục thay đổi trạng thái nhưng không
thực sự tiến triển.Cũng có thể dẫn đến tình trạng hệ thống treo.

Ví dụ: Hai tiến trình A và B, A liên tục cố gắng lấy khóa X từ B, B liên tục cố gắng
lấy khóa Y từ A.

4. Giải pháp:
Deadlock:
 Sử dụng thuật toán phát hiện deadlock.
 Hủy một hoặc nhiều tiến trình liên quan đến deadlock.
 Sử dụng cơ chế timeout để tự động giải phóng khóa sau một thời gian
chờ.
Livelock:
 Sử dụng thuật toán phát hiện livelock.
 Thay đổi thứ tự truy cập tài nguyên của các tiến trình.
 Sử dụng cơ chế ưu tiên để đảm bảo một tiến trình có thể truy cập tài
nguyên trước.

14.Phân biệt các loại đồ thị: ưu tiên; khả tuần tự không khoá; khả tuần tự có
khoá không phân biệt Rlock, Wlock; khả tuần tự có khoá có phân biệt Rlock,
Wlock; và đồ thị chờ
15.So sánh 2 thuật toán ngăn ngừa deadlock: DIE-WAIT,
WOUD-WAIT

1. Giống nhau:
 Đều là thuật toán ngăn ngừa deadlock trong SQL.
 Sử dụng cơ chế phát hiện và xử lý deadlock.

3. Lựa chọn thuật toán:

 DIE-WAIT: Thích hợp cho các hệ thống có yêu cầu cao về


hiệu suất và có thể chấp nhận việc hủy các tiến trình.
 WOUND-WAIT: Thích hợp cho các hệ thống yêu cầu tính
toàn vẹn cao và không muốn hủy các tiến trình một cách tùy
tiện.

You might also like