lOMoARcPSD| 58647650
CƠ SỞ DỮ LIỆU PHÂN TÁN
Data Set
Hiểu khái niệm phân mảnh ngang ? phân mảnh dọc ? phânmảnhhn
hợp là gì ?
- ba kiểu phân mảnh khác nhau phân mảnh theo chiều dọc,
phân mảnh theo chiều ngang và phân mảnh hỗn hợp
- Phân mảnh ngang quá trình chia nhỏ bảng dữ liệu thành các
đoạn nhỏ hơn (các mảnh) dựa trên các hàng. Mỗi mảnh chứa một tập hợp các
hàng của bảng gốc. Ví dụ, nếu một bảng chứa thông tin về các nhân viên,
bạn có thể chia bảng này thành nhiều mảnh, mỗi mảnh chứa thông tin về nhân
viên ở các bộ phn khác nhau.
- Phân mảnh dọc là quá trình chia nhỏ bảng dữ liệu dựa trên các cột
(fields). Mỗi mảnh chứa một tập hợp các cột của bảng gốc, thường sẽ bao
gồm cột khóa chính để duy trì khả năng liên kết giữa các mảnh.
- Phân mảnh hỗn hợp là sự kết hợp của phân mảnh ngang và phân
mảnh dọc. Một bảng có thể được chia nhỏ bằng cách sử dụng cả hai phương
pháp này, tạo ra các mảnh nhỏ hơn mỗi mảnh có thể đưc phân mảnh thêm
một lần nữa bằng phương pháp khác.
Ph
â
n m
nh là gì? L
à
m sao để ph
â
n tán cho một cơ sở dữ liệu ?
Phân quyền gì? Quyền công ty làm được gì, rùi còn chi nhánh user thì
làm được những gì? Cái này thì phần Authorization.
Tạo stored procedure như nào? Làm sao lấy được thông tin từ đăng nhập?
Phần này thì trong thư mục Stored Procedure mình có đủ rùi nè
Câ: Sau khi phân tán xong thì 1 trường dữ liệu rowguild. Vậy
rowguid được sinh ra để làm gì?
Đáp: Hỗ trợ quá trình đồng bộ dữ liệu từ site phân mảnh về site chủ và ngược lại.
Câu Hỏi 2: Login Name là gì ? Username là gì ? Mà chúng gây lú thế nh?!
Đáp:
u Hỏi 1
lOMoARcPSD| 58647650
Login Name tài khoản chúng ta dùng để đăng nhập vào một server. d
như tài khoản SA - tài khoản phổ biến khi đăng nhập SQL Server đtăng độ
bảo mật. Sau khi kết nối thành công tới một server, chọn Security -> Logins sẽ
thấy tài khoản SA
Username i khoản chúng ta dùng đlàm việc trên một sở dliệu.
dụ trên sở dữ liệu QLVT, chọn vào QLVT -> Security -> Users sẽ thấy các
tài khoản có thể làm việc trên cơ sở dữ liệu này
Câu Hỏi 3: db_dataReader, db_dataWriter, db_securityAdmin,.... ri
db_accessAdmin là gì ? Chúng dùng để làm gì ?
Đáp: chúng là những quyền mà một tài khoản kiểu login name có thể được chỉ
định & quyết định xem chúng có thể làm những gì trên cơ sở dữ liệu đó.
1.db_dataReader quyền chỉ xem dliệu, không thể thêm mới hoặc sửa đi
dữ liệu
2.db_dataWriter quyền chỉ ghi dữ liệu, nhiên nếu ghi được thì coi như cũng
đọc được dữ liệu
3.db_securityAdmin là quyền tạo các tài khoản login name, tài khoản này dùng
để đăng nhập vào server
4.db_accessAdmin quyền tạo các tài khoản username, tài khoản dùng đ
thao tác trên một cơ sơ dữ liệu nhất định
5.db_owner quyền cao nhất với một sở dữ liệu, quyền này cho phép xem,
thêm, xóa, sửa tất cả dữ liu & thể tạo tài khoản login name username
mà không có giới hạn nào( kiểu bạn là chủ nhà thì làm gì cũng được ấy )
lOMoARcPSD| 58647650
Câu Hỏi 4: 2 cách đviết Stored Procedure. Cách 1 đã được trình bình
mục Stored Procedure. Cách s2 viết Stored Procedure thủ công tại từng
phân mảnh. Cách làm nào hiệu quả hơn ?
Đáp: Cách làm thứ nhất hay hơn. Nếu ta chỉnh sửa stored procedure trên server
gốc thì sự thay đổi sẽ tự động được cập nhật xuống các server phân mảnh.
Còn cách thứ 2 thì phải sửa thủ công trên từng phân mảnh.
Câu Hỏi 5: Nếu sửa Stored Procedure trên phân mảnh thì đồng bộ về
các phân mảnh khác và server gốc, điều này là đúng hay sai ?
Đáp: Sai. Code chỉ đồng bộ theo một chiều từ server gốc tới các phân mảnh.
Không có chiều ngược lại.
Câu Hỏi 6: Sửa dữ liệu tại server gốc thì phân mảnh có nhận được không ?
Nếu ngược lại, từ server phân mảnh về server gốc thì có nhận được không ?
Đáp: Có, dữ liệu đồng bộ theo 2 chiều.
Câu Hỏi 7: Nêu ưu nhược điểm khi ưu tiên tìm kiếm trên site phân mảnh
trước khi về site chủ.
Đáp:
Ưu điểm: server gốc lúc nào cũng hoạt động nên luôn truy vấn được dữ liu
mong muốn
Nhược điểm: Không thể che dấu được hoàn toàn các thông tin nhạy cảm giữa
các site phân mảnh. Việc cấp 1 i khoản để vào site chủ thể giúp người
dùng đó xem được dữ liệu của site khác
Câu Hỏi 8: Muốn thực thi một câu lệnh store procedure, view, function thì ta làm
như nào ?
lOMoARcPSD| 58647650
Đáp: Ta sẽ tạo một đối tượng là SqlCommand rồi nhúng vào các đối số cần
thiết vào
Câu Hỏi 9: Giao tác là gì ? Để viết giao tác cần bật dịch vụ gì ?
Đáp: Giao tác một dãy các thao tác đọc ghi dữ liệu cùng với các bước tính
toán nhất quán ( Begin Trans, Commit , Rollback,Begin distributed trans) đ
giải quyết các tình huống khi dữ liệu bị mất tính nhất quán khi có nhiều truy xuất
đồng thời
Để viết giao c cần phải bật dịch vụ MSDTC - Miscrosoft Distribute
Transaction Coordinator
Câu Hỏi 10: ý nghĩa của Begin trans, commit, rollback & Begin distributed trans
là gì ?
Đáp:
Begin Trans: bắt đầu giao tác
Commit : xác nhận thành công
Rollback( hoặc abort) : hủy bỏ giao tác và trả lại dữ liệu
Begin distributed trans : câu lệnh mở đầu giao tác phân tán
Câu Hỏi 11: Nêu những tính chất giao tác ?
Đáp: Có tất cả 4 tính chất với giao tác gồm:
(1) tính nguyên tử: 1 giao tác nhiều tập lệnh thì mọi câu lệnh hoặc thành
công hoặc nếu 1 lệnh thất bại thì tất ctht bại
lOMoARcPSD| 58647650
(2) tính nhất quán: đảm bảo tất cả rằng buộc. Mọi lệnh đều được chạy
(3) tính biệt lập: một giao tác đang thực thi thì ko làm lộ các kết quả của nó cho
những giao thức khác đang cùng hoạt động trước khi nó hoàn thành.
(4) tính bền vững: một giao tác đã được commit thì dữ liệu đó được giữ nguyên
và không thể rollback
Câu Hỏi 12: Dữ liệu rác là gì ?
Đáp: dliệu sinh ra thể chưa phải dữ liu đã được commit nếu một
giao tác khác đồng thời vào lấy giao tác này ra thì dliệu này ko chính
xác.
Câu Hỏi 13: Có mấy loại giao tác ?
Đáp: Có 2 loại giao tác là tập trung và phân tán
Giao tác tập trung có 2 loại: giao tác phẳng và giao tác lồng
(1) Giao tác phẳng điểm khởi đầu duy nhất ( begin transaction ) một điểm
kết thúc duy nhất ( end transaction )
(2) Giao tác lồng chứa nhiều giao tác với điểm khởi đầu và duy nhất riêng biệt.
Giao tác phân tán chỉ có 1 loại duy nhất: giao tác phẳng
Câu Hỏi 14: XACT_ABORT là gì ? Nó nhận được mấy giá trị ?
Đáp: XACT_ABORT: đây là tùy chọn kết nối. Nó chỉ nhận 2 giá trị ON & OFF.
Nếu OFF, SQL Server sbỏ qua lệnh gây lỗi trong transaction tiếp tục
thực thi các lệnh còn lại.
lOMoARcPSD| 58647650
Nếu là ON, SQL Server sẽ hủy bỏ toàn bộ transaction nếu nó gặp lệnh bị lỗi và
trả lại dữ liệu về ban đầu.
Câu Hỏi 15: Khi viết 1 stored procedure khi nào ta không dùng begin transaction
, không dùng commit ... nhưng vẫn được coi là 1 giao tác ?
Đáp: khi ta sử dụng chỉ một lệnh UPDATE - DELETE - INSERT duy nhất. Còn
nếu có 2 lệnh UPDATE - DELETE - INSERT thì phải dùng cú pháp begin
transaction và commit
Câu Hỏi 16: Dịch vụ MS TDC là gì ?
Đáp: Dịch vụ MS TDC là Microsoft Distributed Transaction Coordinator. đm
bảo tất cả cập nhật được thực thi tất cả các phân mảnh hoặc trong trường
hợp lỗi thì xem như chưa thực hiện thao tác nào hết.
Câu Hỏi 17: Vị từ thích hợp là gì ?
Đáp: Thỏa tính đầy đủ và tính cực tiểu
Câu Hỏi 18: Tiêu chí đầy đủ và tiêu chí cực tiểu là gì ?
Đáp:
Tiêu chí đầy đủ là ta nhiều stored procedure thì xác suất nó truy xuất tới các
phân mảnh là như nhau.
Tiêu chí cực tiểu mỗi site được sinh ra phải được sử dụng tới trong một
stored procedure nào đó.
Câu Hỏi 19: Vị từ là gì ? Một vị từ đơn giản là gì ?
Đáp: Vị từ là Mệnh đề login có nhiều điều kiện
lOMoARcPSD| 58647650
Một vị từ đơn giản vị từ kiểu: MACN = 'CN1',... . Tức vế trái tên thuộc
tính và vế phải là tên giá trị.
Một vị từ sơ cấp: MACN = ( CN1 hội CN2 ).
Câu Hỏi 20: Một vị từ "thích hợp" là gì ?
Đáp: Một vị từ "thích hợp" nghĩa là khi tạo ra 1 phân mảnh "thích hợp" thì phải
có stored procedure sử dụng tới phân mảnh này.
Câu Hỏi 21: Sự trong suốt phân tán là gì ?
Đáp: Sự trong suốt phân tán: khi 1 stored procedure( sp ) được thực thi 1
server phân mảnh bấy thì cũng hoạt động tốt trên các phân mảnh còn lại
người dùng không cảm thấy được sp đang chạy trên hệ thông phân tán.
Note: Chúng ta đng vị trí thứ 3 để lập trình. Luôn ưu tiên tìm ở phân mảnh
cục bộ trước khi sang các phân mảnh khác.
Câu Hỏi 22: Có mấy mức độ trong suốt phân tán là gì ?
Đáp: Có 4 mức độ trong suốt phân tán
(1) Mức cao nhất: Không cần chỉ ra phân mảnh cần truy vấn. Người dùng không
cảm giác là đang thao tác trên một câu truy vấn phân tán.
(2) Sự trong suốt vị trí: Chúng ta chỉ cần chỉ ra tên TABLE cần phải truy vấn.
(3) Sự trong suốt ánh xạ cục bộ: Chúng ta cần chỉ tên phân mảnh vị trí
cấp phát của chúng
(4) Không trong suốt: Chúng ta phải viết lệnh để đến đúng vị trí database cn
thao tác. Tuy nhiên, do chúng ta đã đặt tên các sở dữ liệu giốngnhau ở
lOMoARcPSD| 58647650
mọi phân mảnh. Tên LINK server cũng trùng tên nên không phải bận tâm
đến mức này
Note: người dùng sẽ sử dng ứng dụng mức cao nhất. Còn người lập trình
như chúng ta sẽ đứng ở mức thứ 3.
Câu Hỏi 23: Điều kiện đthể phân tán được sở dliệu ? Có mấy bước
để phân tán cơ sở dữ liệu ?
Đáp: có dịch vụ SQL Server Agent
Có 3 bước để thực hiện phân tán cơ sở dữ liệu
(1) Định nghĩa Server Distributor : chứa Database distribution
(2) Định nghĩa publication : 1 container chứa các article (table, view, stored
procedure, UDF).
Trong đó, phải chỉ rõ các server :
Publisher - chứa bản gốc cơ sở dữ liệu
Distributor - điều phối phân tán dữ liệu
(3) Định nghĩa subscription (database): 1 container nhận publication. Trong đó,
phải chỉ rõ server Subscriber - chứa sở dữ liệu sau khi phân tán Câu Hỏi
23: Có mấy hình thức phân mảnh ?
Đáp: 3 hình thức phân mảnh gồm phân mảnh ngang, phân mảnh dọc &
phân mảnh hỗn hợp.
Câu Hỏi 24: Nêu đặc điểm của phân mảnh ngang ?
lOMoARcPSD| 58647650
Đáp: Phân mảnh ngang chia một quan hệ theo c bộ. Mỗi phân mảnh ngang
là tập con của quan hệ.
Trong phân mảnh ngang bao gồm phân mảnh ngang nguyên thủy & phân mảnh
ngang dẫn xuất
Phân mảnh ngang nguyên thủy phân mảnh của 1 quan hệ dựa trên 1 vị từ
được định nghĩa trên quan hệ đó
Phân mảnh ngang dẫn xuất phân mảng của 1 quan hệ dựa trên vị từ đưc
định nghĩa trên quan hệ khác.
Ví dụ với đề quản lý vật tư thì
MaChiNhanh = 'CN1' -> phân mảnh ngang nguyên thủy
NHANVIEN.MaKho = KHOHANG.MaKho -> phân mảnh ngang dẫn xuất Nói
cách khác 'CN1' và 'CN2' là các vị từ.
Câu Hỏi 24: Nêu đặc điểm của phân mảnh dọc ?
Đáp: Phân mảnh dọc phân mảnh dựa trên khóa chính của một quan hệ ( phải
có khóa chính để đảm bảo tính tái thiết)
Gỉa sử, NHANVIEN( id, ho , ten, dia chi, luong, ngay sinh, ma chi nhanh ) thì
khi tạo phân mảnh dọc sẽ thành
NHANVIEN(id, ho, ten, ngay sinh, ma chi nhanh) trong đó MaChiNhanh khóa
ngoại thì phải cho phép NULL
Câu Hỏi 25: Nêu đặc điểm của phân mảnh hỗn hợp ?
lOMoARcPSD| 58647650
Đáp: Là skết hợp của 2 cách phân mảnh ngang dọc. Khi hợp các phân
mảnh theo 2 cách này thì sở dữ liu tạo thành chính sở dữ liệu ban
đầu.
Câu Hỏi 25: Có mấy quy tắc phân mảnh ?
Đáp: Có 3 quy tắc phân mảnh
(1) Tính đầy đủ: xét trên góc độ là QUAN HỆ. Mỗi mục dữ liệu ít nhất phải nằm
ở 1 phân mảnh. Thì không bị mất thông tin
(2) Tính tái thiết: thường thì thỏa mản tính đầy đủ sẽ thỏa mãn tính tái thiết.
(3) Tính tách biệt: mỗi mục dliu chỉ nằm một phân mảnh duy nhất. Khi
ghép các phân mảnh thì database sẽ đầy đủ như ban đầu. Tức nếu TEN ở
phân mảnh 1 thì sẽ không xuất hiện ở phân mảnh 2
Note Thực tế, tính tách biệt dễ bị vi phạm NHÂN BẢN giúp dữ liệu tồn tại
cả 2 mảnh. Bắt buộc tính đầy đủ phải thỏa mãn. Nếu thỏa mãn thì tính tái thiết
cũng sẽ được bảo đảm.
Câu Hỏi 26: Run on continue khác run on demand điểm nào ?
Đáp: Run on continue làm tính nhất quán cao, dữ liệu đồng bộ ngay lập tức.
Run on demand tính tự quản cao. Các site thể disconnect. Các thay đi
không phản ảnh tức thời tới site chủ
Câu Hỏi 27: Snapshot folder là gì ? ?
Đáp: Folder chứa dữ liu trung gian đđồng bộ dữ liệu từ các phân mảnh về
site chủ ngược lại. folder chứa dữ liệu đđẩy qua đẩy lại. Phải network
path(shared folder)
lOMoARcPSD| 58647650
Câu Hỏi 28: Tại sao trả về mã nhân viên khi dùng sp_DangNhap ?
Đáp: để gán tự động cho các form có mã nhân viên Câu
Hỏi 29: Bốn thuộc tính quan trọng của combo box ?
Đáp:
data source chứa danh sách dữ liệu cung cấp cho nó
display member chứa tên field mình muốn hiển thị
value member chứa field dữ liệu mình muốn lấy
selected index change phương thức thay đổi giá trị Câu
Hỏi 30: Vì sao ta phải dùng Remote Login ?
Đáp: Cho phép truy cập dữ liệu khi đứng từ server này sang server khác.
Câu Hỏi 31: Có những cách nào để tối ưu hóa truy vấn ?
Đáp: Có 5 cách để tối ưu hóa một câu truy vấn
Dùng phép chọn, chiếu trước, phép kết sau
Khử phép kết (nếu được)
Nếu 1 điều kiện xuất hiện nhiều lần trong WHERE thì dùng các phép biến đổi
tương đương để cho điều kiện đó xuất hiện 1 lần
Trong mệnh đề AND, điều kiện nào xác suất sai cao thì đặt đầu ; OR thì
ngược lại.
Field tham gia trong điều kiện truy vấn nên được sắp thứ tự trước & thứ tự này
phải đc sử dụng trong mệnh đề truy vấn với WITH (INDEX=ten_index) Câu Hỏi
lOMoARcPSD| 58647650
32: Thế nào một Stored Procedure trong suốt ? Điều kiện đviết Stored
Procedure trong suốt ?
Đáp: Stored Procedure được coi là trong suốt nếu ta cho thực thi 1 server thì
vẫn cho thực thi được những server còn lại mà không cần chỉ rõ đường dẫn
đến table cần truy xuất
Hoặc có thể trả lời
Stored Procedure trong suốt Stored Procedure khi ta cho thực thi bất
kì phân mảnh nào đều cho kết quả giống nhau
Điều kiện để viết Stored Procedure trong suốt ta cần LINK SERVER & tên
database giống nhau
Câu Hỏi 33: Trong database, cái nào là nhân bản, cái nào là phân hoạch ?
Đáp: Mở cây dẫn xuất ra xem, cái nào không trong cây dẫn xuất nhân
bản, cái đầu tiên là phân mảnh ngang nguyên thủy
Câu Hỏi 34: Nếu đã phân tán xong cơ sở dữ liu, muốn thay đổi cấu trúc | th
tự các cột trong table của server gốc thì làm sao ?
Đáp: Có thể thay đổi bằng cách viết stored procedure dùng lệnh ALTER
TABLE ở server gốc sau đó đồng bộ xuống các server phân mảnh Câu
Hỏi 35: Dữ liệu sau khi nhập form sẽ được đẩy về đâu ?
Đáp: Đẩy về publisher sau đó đồng bộ xuống các subcriber.
Câu Hỏi 36: Trong các table, cái nào mang tính đy dủ, cái nào vi phạm tính
tách biệt ?
lOMoARcPSD| 58647650
Đáp: Các table nhân bản thì vi phạm tính tách biệt, tất cả các table còn lại thì
mang tính đầy đủ.
Câu Hỏi 37: Giao tác tập trung với giao tác phân tán giống khác nhau như
thế nào ?
Đáp:
Điểm khác : Giao tác thì thực thi trên môi trường cơ sở dữ liệu tập trung (gồm
có giao tác phẳng và giao tác lồng), còn giao tác phân tán thì thực thi trên môi
trường cơ sở dữ liệu phân tán.
Điểm giống : 4 tính chất giao tác.
Câu Hỏi 38: Login Name nằm trong table nào?
Đáp: Nằm trong table sys.sysuser trong Database đó Câu
Hỏi 39: Tại sao biết user liên kết với login nào?
Đáp: Username loginname liên kết với nhau qua trường sid (trên user
login đều có sid) nên từ loginname biết được username từ sid Câu Hỏi 40: Tên
nhóm quyền nằm trong table nào ? Đáp: Nằm trong table sys.sysuser trong
Database đó Câu Hỏi 41: Ưu | khuyết điểm của nhân bản ?
Đáp: Truy xuất nhanh, đứng đâu cũng thselect được. Nhưng update
chậm vì có quá nhiều bản sao
Câu Hỏi 42: Ưu | khuyết điểm của phân hoạch ?
lOMoARcPSD| 58647650
Đáp: Select chậm nhưng insert update nhanh do chthao thác trên server
gốc hoặc server phân mảnh cần truy xuất.
Câu Hỏi 42: Tại sao table đó nhân bản?
Đáp:
Trong đề vật tư thì vật tư nhân bản vì vật tư có thể có ở chi nhánh này cũng
thể có ở chi nhánh khác.
Trong đề trắc nghiệm thì giáo viên nhân bản giáo viên thể dạy cở sở
này cũng có thể dạy ở cơ sở khác, bộ đề đi theo giáo viên nên cũng nhân bản.
Giáo viên cở sở 1 có thể dạy ở cở sở 2 nhưng không thể đăng kí thi cho lớp
cơ sở 2.
PHẦN I: PHÂN TÁN
Câu 1: Định nghĩa cơ sở dữ liệu phân tán
Một cơ sở dữ liệu phân tán là một tập hợp dữ liệu của một hệ thống
nhưng được phân bố trên nhiều địa điểm (site) của một mạng máy tính.
Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của sở dữ liệu phân
tán là:
1. Sự phân tán: dữ liệu không lưu trữ trên cùng một địa điểm vì
thế chúng ta có thể phân biệt nó với cơ sở dữ liệu tập trung.
2. Tuân thủ mối tương quan luận lý: Dữ liệu phải tuân thủ các
ràng buộc toàn vẹn trên CSDL tập trung (6 ràng buộc :3 cái trên bối
cảnh 1 qhe, 3 cái trên bối cảnh liên qhe). Phải đảm bảo vì khi nhập
liệu trên site phân mảnh mà không xét ràng buộc, đổ về site chủ nó
sẽ không nhận.
lOMoARcPSD| 58647650
Hệ thống phân tán có 2 trường hợp tùy vào nhu cầu mà thiết kế phù
hợp:
- Sau khi phân tán xong, các site không bắt buộc phải đang được kết
nối với nhau. Bởi vì, khi phân tán database có những dự án mang
tính chất tự quản. Số liệu xử lý độc lập, khi muốn tổng hợp thì kết
nối các site phân mảnh lại, hệ thống đồng bộ về site chủ và site có
liên quan. Snapshot publication
- Tính nhất quán cao: dữ liệu ở 1 nơi có sự thay đổi, thì trong vài
giây được đẩy về site chủ và đồng bộ đến các site có liên quan, hệ
thống luôn conect.
Transactional publication
- Merge publiation: vừa cơ chế tự quản, vừa cơ chế đồng bộ liên tục.
-
Ứng dụng phân tán: dữ liệu đang có trên site không đủ hỗ trợ công việc,
lấy thêm dữ liệu bên ngoài về.
Ứng dụng cục bộ : khi site mà ta đang kết nối để xử lý đủ để đáp ứng
yêu cầu của ta, không cần đi qua site khác lấy số liệu. dụ: thêm 1 môn
học vì môn học là nhân bản nên, thêm 1 môn học kiểm tra mã môn học
có bị trùng không, thì chỉ cần kiểm tra trên site đang kết nối.
Ứnng dụng toàn cục truy cập dữ liệu cục bộ sẽ nhanh hơn ứng dụng từ xa
điều này nói lên sự nhân bản dữ liệu ở các nơi cũng làm tăng tốc độ xử lý
chương trình. Lưu ý để đảm bảo an toàn chỉ nhân bản những dữ liệu không
quan trọng, ít biến động.
Câu 2: Các thành phần cơ bản cần thiết cho việc xây dựng một cơ sở
dữ liệu phân tán là :
1. Thành phần quản trị cơ sở dữ liệu (DB Database Management)
2. Thành phần truyền dữ liệu (DC Data Communication)
3. Tự điển dữ liệu (DD Data Dictionnary) mở rộng để biểu diễn thông
tin về sự phân tán dữ liệu trên mạng.
lOMoARcPSD| 58647650
4. Thành phần cơ sở dữ liệu phân tán (DDB Distributed Database) Câu
3: Các đối tượng phân tán
Table, Stored Procedure, Views, UDF
Câu 4:
1. Điều kiện để phân tán được CSDL: có dịch vụ SQL Server
Agent
Tác dụng SQL Server Agent:
Hỗ trợ phân tán Tác dụng SQL Server Agent:
-
- Đồng bộ dữ liệu
- Cái 3 không biết
2. Phân tán cơ sở dữ liệu có 3 bước:
- Định nghĩa Server Distributor : chứa DB distribution - Định
nghĩa publication : 1 container chứa các article (table, view,
stored procedure, UDF). Trong đó, phải chỉ rõ server : +
Publisher : chứa bản cơ sở dữ liệu gốc
- Định nghĩa subscription (database): 1 container nhận
publication. Trong đó, phải chỉ rõ server Subscriber : chứa cơ
sở dữ liệu sau khi phân tán
3. Phân tán tự sinh 1 field: rowquid
Gồm 32 kí tự, hỗ trợ quá trình đồng bộ dữ liệu từ site phân mảnh về
site chủ ngược lại. nó ch table nào, cột nào đđưa dữ liệu xuống
đúng vị trí đó
Câu 5: Một publication( 1 mảnh trong lược đồ phân mảnh) có thể đẩy
xuống 2 site được không?
Được quyền đẩy dữ liệu từ một publication xuống 2 site.
Khuyến điểm: tốc độ xử lý, cập nhật dữ liệu chậm
Ưu điểm: an toàn dữ liệu
Câu 6: Thuộc tính folder RELPDATA là gì? ở đâu? Mục đích của thư
mục để làm gì?
- Thuộc tính là share, có quyền read/write. Mục đích để chứa các dữ
liệu trao đổi trong quá trình update dữ liệu từ các phân mảnh về csdl
gốc , và từ gốc đi đến các phân mảnh.
PHẦN II: SỰ TRONG SUỐT PHÂNN
Câu 1: Khi nào phân tán?
Khi cơ sở dữ liệu tập trung không giải quyết được yêu cầu bài toán.
lOMoARcPSD| 58647650
Câu 2: 1 quan hệ khi phân tán thì :
- Phân hoạch: Dữ liệu đẩy qua duy nhất 1 site
Ưu khuyết điểm của phân hoạch : select chậm nhưng insert và
update nhanh do chỉ thao thác trên server gốc hoặc server phân
mảnh cần truy xuất.
- Nhân bản:
+ Nhân bản hoàn toàn: Dữ liệu đẩy qua tất cả các site +Nhân
bản một phần: Dữ liệu đẩy qua ít nhất 2 site nhưng ko phải
tất cả
Ưu khuyết điểm của nhân bản: truy xuất nhanh, tính sẵn sàng
cao, đứng ở đâu cũng có thể select đc. Nhưng update chậm vì có
quá nhiều bản sao
Câu 3: Các hình thức phân mảnh? Thế nào là một vị từ?
Có 3 hình thức phân mảnh:
- Phân mảnh ngang: là chia 1 quan hệ theo các bộ. Mỗi phân mảnh
ngang là một tập con của quan hệ. Có hai loại phân mảnh ngang đó
là phân mảnh ngang dẫn xuất và phân mảnh ngang nguyên thủy.
+ Phân mảnh ngang nguyên thủy là sự phân mảnh dựa trên
một quan hệ vị từ được định nghĩa trên một quan hệ.
VD: MACS='CS1'
+ Phân mảng ngang dẫn xuất là dữ liệu khi phân rã nhờ vào
dữ liệu của một quan hệ khác .
VD: NHANVIEN.MaKho = KHOHANG.MaKho
- Phân mảnh theo chiều dọc là việc chia các thuộc tính vào nhiều
nhóm; các mảnh nhận được từ phép chiếu quan hệ toàn cục trên mỗi
nhóm.
Phân mảnh dọc là dựa trên quan hệ kèm theo khóa chính ( bắt buộc
phải có khóa chính để bảo toàn tính tái thiết)
- Phân mảnh hỗn hợp: là kết hợp của phân mảnh ngang & phân mảnh
dọc
Câu 4: Nêu rõ các quy tắc phân mảnh: Tính tái thiết, tính đầy đủ,
tính tách biệt
3 quy tắc phân mảnh đảm bảo database không thay đổi về mặt ngữ
nghĩa(gồm dữ liệu và ràng buộc toàn vẹn) và lưu ý xét trên mức độ quan
hệ
- Tính đầy đủ: Nếu một quan hệ R được phân rã thành các mảnh R1,
R2,.., Rn thì mỗi mục dữ liệu( dòng nếu là phân mảnh ngang, thuộc
lOMoARcPSD| 58647650
tính nếu là phân mảnh dọc) trong R sẽ phải nằm ít nhất ở 1 phân
mảnh . Đặc tính này nói lên sự phân mảnh không mất thông tin.
- Tính tái thiết: Một quan hệ R được phân rã thành n mảnh( các
quan hệ R1, R2, … Rn ) thì cần định nghĩa phép toán sao cho tái
thiết lại quan hệ gốc được.
Nhậm xét: 1 quan hệ thỏa tính đầy đủ( không mất mát thông tin)
thì tái thiết được.
Định nghĩa 1 phép toán để tái thiết dữ liệu, nếu phân mảnh
ngang dùng phép hội ( UNION), phân mảnh dọc phép kết tự nhiên
trên khóa chính(các thuộc tính khoá chính phải được lặp lại trong
mỗi mảnh.)
Ví dụ:
Lệnh Select … Union : lấy dữ liệu từ các server phân mảnh
về
Lưu ý: UNION ALL lấy tất cả
UNION khử những mẫu tin trùng
- Tính tách biệt: Nếu một quan hệ R được phân rã thành các phân
mảnh R1, R2, …Rn và mục dữ liệu nằm trong phân mảnh Rj chỉ tồn
tại ở 1 phân mảnh. Tính chất này có thể vi phạm được, table nào
nhân bản thì vi phạm.
SQL Server cung cấp các kiểu JOIN là INNER JOIN, OUTER
JOIN,.
- INNER JOIN trả về kết quả là các bản ghi mà trường được join ở
hai bảng khớp nhau, các bản ghi chỉ xuất hiện ở một trong hai bảng
sẽ bị loại.
- OUTER JOIN lấy về các bản ghi có mặt trong cả hai bảng và cả
các bản ghi chỉ xuất hiện ở một trong hai bảng. Kiểu JOIN này được
chia làm hai loại:
+ FULL OUTER JOIN: kết quả gồm tất cả các bản ghi của
cả hai bảng. Với các bản ghi chỉ xuất hiện trong một bảng thì các
cột dữ liệu từ bảng kia được điền giá trị NULL.
+ HALF OUTER JOIN (LEFT hoặc RIGHT): nếu bảng A
LEFT OUTER JOIN với bảng B thì kết quả gồm các bản ghi có
trong bảng A, với các bản ghi không có mặt trong bảng B thì các
cột từ B được điền NULL. Các bản ghi chỉ có trong B mà không có
trong A sẽ không được trả về.
- CROSS JOIN: mỗi bản ghi của bảng A được kết hợp với tất cả các
bản ghi của bảng B, tạo thành một tích Đề-các giữa hai bảng (số bản
ghi trả về bằng tích của số bản ghi trong hai bảng).
lOMoARcPSD| 58647650
Vận dụng: Cho một câu lệnh tái thiết data trên các phân mảnh
ngang của đề tài.
Câu 5:Trong suốt là gì? Điều kiện để trong suốt? Có mấy mức trong
suốt, nêu rõ các mức trong suốt đó?
- Trong suốt : nghĩa là 1 SP khi ta cho thực thi ở 1 Server phân mảnh
bất kỳ thì vẫn thực thi được ở tất cả các Server phân mảnh còn lại
mà ta không cần chỉ lại đường đẫn đến SP cần truy xuất (người
dùng không cảm nhận được là SP đang chạy trên Hệ thống phân
tán). Nghĩa là SP đó nhân bản.
- SP trong suốt là sp thực hiện ở bất kì server nào cũng cho kết quả
đúng như nhau.
- Quy tắc :
a. Tên các cơ sở dữ liệu ở các Server Subscriber phải giống nhau
b. Tên Link Server phải giống nhau
- Có 4 mức trong suốt: người lập trình đứng ở mức thứ 3 nhưng làm cho người
dùng cảm thấy như đang ở mức 1.
+Mức 1: Trong suốt phân tán: truy vấn không cần chỉ ra các phân
mảnh cũng như các vị trí cấp phát cho các phân mảnh đó. Người sử
dụng không hề cảm giác đang thao tác trên một câu truy vấn
phân tán.
+Mức 2: Trong suốt vị trí : Ngưòi sử dụng phải chỉ rõ table nào
nhưng không cần chỉ vị trí ở site nào.
+Mức 3:Trong suốt ánh xạ cục bộ: phải cung cấp tên các phân
mảnh và vị trí cấp phát chúng.
+Mức 4: Không trong suốt: phải viết lệnh theo hệ quản trị cơ sở dữ
liệu tương ứng. (Chỉ rõ cơ sở dữ liệu nào, hệ quản trị nào, database nào)
Câu 6: LinkServer dùng để làm gì? Khi tạo LinkServer cần điều kiện
gì? Muốn truy xuất đến phân mảnh gần nhất đầu tiên chúng ta phải
tạo LinkServer như thế nào?
- LinkServer: Mục đích: cho phép truy cập dữ liệu từ server 1 đến
Server 2 qua tập lệnh DML(Select, Insert, Update, Delete, Merge )
- Điều kiện: LinkServer cùng tên link và cùng tên cơ sở dữ liêu.
- Cách tạo Link Server : LINK1 từ SERVER1 đến SERVER2
+ Ở SERVER2 : Tạo 1 login HTKN, pass, cho phép toàn
quyền trên CSDL Subscription
+ Ở SERVER1 : tạo Link Server tên LINK1 nhờ login
HTKN để kết nối đến SERVER2
Câu 7:
- Sự trong suốt phân tán của ứng dụng chỉ đọc: chỉ có những câu lệnh
lOMoARcPSD| 58647650
Select
+ Select không có FROM: là lệnh xuất
+Select có FROm: lệnh truy vấn
- Sự trong suốt phân tán đối với ứng dụng cập nhật: chứa từ 2 lệnh
cập nhật dữ liệu thì phải có giao tác.
Câu 8: Table ảo: tự động mất đi khi người dùng ngừng kết nối server đó.
- # Ảo cục bộ: người nào tạo ra người ấy thấy và dùng được.
- ## Ảo toàn cục: một người tạo, nhiều người dùng( table còn nằm
trong bộ nhớ trong)
Câu 9: Dữ liệu phân tán 2 chiều: dữ liệu đồng bộ hai chiều, từ site chủ về
site phân mảnh và người lại.
Code, Sp phân tán 1 chiều: cơ chế đồng bộ chỉ một chiều từ site
chủ xuống.
PHẦN III: Thiết kế cơ sở dữ liệu phân tán
Câu 1: Khi xây dựng cơ sở dữ liệu phân tán phải đảm bảo 2 tiêu chí. +)
Tiêu chí cực tiểu: một phân mảnh khi sinh ra thì có ít nhất một ứng dụng
sẽ sử dụng tới chạy trên phân mảnh đó thì mới thích hợp. +) Tiêu chí đầy
đủ: xác suất để một ứng dụng sử dụng tới các phân mảnh là như nhau.
Câu 2: Nếu phân tán xong CSDL, muốn thay đổi cấu trúc(cột) của table
server gốc thì ta làm thế nào?
Có thể thay đổi bằng cách viết sp dùng lệnh ALTER TABLE ở server gốc
sau đó đồng bộ xuống các server phân mảnh Câu 3: Sự cấp phát các
phân mảnh.
Một publication( 1 phân mảnh trong lược đồ phân mảnh) có thể
ánh xạ qua nhiều site subcriber.
+Ánh xạ 1-1: cơ chế đồng bộ dữ liệu nhanh, tiết kiệm chi phí lưu
trữ, nhưng không an toàn.
+ ánh xạ 1-N tùy vào nhu cầu. An toàn thì đẩy qua 2 site, 1 nơi có
vấn đề thì có thể hoạt động ở site khác.
Câu 4: Các mục tiêu của việc thiết kế phân tán dữ liệu:
- Sự truy xuất cục b
- Tính sẵn sàng và khả tín của các dữ liệu phân tán
- Sự phân bố tải
- Chi phí lưu trữ
Câu 5: Các bước tiếp cận khi phân tán một database
Có 2 hướng:

Preview text:

lOMoAR cPSD| 58647650
CƠ SỞ DỮ LIỆU PHÂN TÁN Data Set
Hiểu khái niệm phân mảnh ngang là gì ? phân mảnh dọc là gì ? phânmảnhhỗn hợp là gì ? -
Có ba kiểu phân mảnh khác nhau là phân mảnh theo chiều dọc,
phân mảnh theo chiều ngang và phân mảnh hỗn hợp -
Phân mảnh ngang là quá trình chia nhỏ bảng dữ liệu thành các
đoạn nhỏ hơn (các mảnh) dựa trên các hàng. Mỗi mảnh chứa một tập hợp các
hàng của bảng gốc. Ví dụ, nếu có một bảng chứa thông tin về các nhân viên,
bạn có thể chia bảng này thành nhiều mảnh, mỗi mảnh chứa thông tin về nhân
viên ở các bộ phận khác nhau. -
Phân mảnh dọc là quá trình chia nhỏ bảng dữ liệu dựa trên các cột
(fields). Mỗi mảnh chứa một tập hợp các cột của bảng gốc, và thường sẽ bao
gồm cột khóa chính để duy trì khả năng liên kết giữa các mảnh. -
Phân mảnh hỗn hợp là sự kết hợp của phân mảnh ngang và phân
mảnh dọc. Một bảng có thể được chia nhỏ bằng cách sử dụng cả hai phương
pháp này, tạo ra các mảnh nhỏ hơn mà mỗi mảnh có thể được phân mảnh thêm
một lần nữa bằng phương pháp khác.
Ph â n m ả nh là gì? L à m sao để ph â n tán cho một cơ sở dữ liệu ?
Phân quyền là gì? Quyền công ty làm được gì, rùi còn chi nhánh và user thì
làm được những gì? Cái này thì phần Authorization.
Tạo stored procedure như nào? Làm sao lấy được thông tin từ đăng nhập?
Phần này thì trong thư mục Stored Procedure mình có đủ rùi nè
u Hỏi 1 Câ: Sau khi phân tán xong thì có 1 trường dữ liệu là rowguild. Vậy
rowguid được sinh ra để làm gì?
Đáp: Hỗ trợ quá trình đồng bộ dữ liệu từ site phân mảnh về site chủ và ngược lại.
Câu Hỏi 2: Login Name là gì ? Username là gì ? Mà chúng gây lú thế nhỉ ?! Đáp: lOMoAR cPSD| 58647650
Login Name là tài khoản chúng ta dùng để đăng nhập vào một server. Ví dụ
như tài khoản SA - tài khoản phổ biến khi đăng nhập SQL Server để tăng độ
bảo mật. Sau khi kết nối thành công tới một server, chọn Security -> Logins sẽ thấy tài khoản SA
Username là tài khoản mà chúng ta dùng để làm việc trên một cơ sở dữ liệu.
Ví dụ trên cơ sở dữ liệu QLVT, chọn vào QLVT -> Security -> Users sẽ thấy các
tài khoản có thể làm việc trên cơ sở dữ liệu này
Câu Hỏi 3: db_dataReader, db_dataWriter, db_securityAdmin,.... rồi
db_accessAdmin là gì ? Chúng dùng để làm gì ?
Đáp: chúng là những quyền mà một tài khoản kiểu login name có thể được chỉ
định & quyết định xem chúng có thể làm những gì trên cơ sở dữ liệu đó.
1.db_dataReader là quyền chỉ xem dữ liệu, không thể thêm mới hoặc sửa đổi dữ liệu
2.db_dataWriter là quyền chỉ ghi dữ liệu, dĩ nhiên nếu ghi được thì coi như cũng đọc được dữ liệu
3.db_securityAdmin là quyền tạo các tài khoản login name, tài khoản này dùng
để đăng nhập vào server
4.db_accessAdmin là quyền tạo các tài khoản username, tài khoản dùng để
thao tác trên một cơ sơ dữ liệu nhất định
5.db_owner là quyền cao nhất với một cơ sở dữ liệu, quyền này cho phép xem,
thêm, xóa, sửa tất cả dữ liệu & có thể tạo tài khoản login name và username
mà không có giới hạn nào( kiểu bạn là chủ nhà thì làm gì cũng được ấy ) lOMoAR cPSD| 58647650
Câu Hỏi 4: Có 2 cách để viết Stored Procedure. Cách 1 đã được trình bình ở
mục Stored Procedure. Cách số 2 là viết Stored Procedure thủ công tại từng
phân mảnh. Cách làm nào hiệu quả hơn ?
Đáp: Cách làm thứ nhất hay hơn. Nếu ta chỉnh sửa stored procedure trên server
gốc thì sự thay đổi sẽ tự động được cập nhật xuống các server phân mảnh.
Còn cách thứ 2 thì phải sửa thủ công trên từng phân mảnh.
Câu Hỏi 5: Nếu sửa Stored Procedure trên phân mảnh thì nó có đồng bộ về
các phân mảnh khác và server gốc, điều này là đúng hay sai ?
Đáp: Sai. Code chỉ đồng bộ theo một chiều từ server gốc tới các phân mảnh.
Không có chiều ngược lại.
Câu Hỏi 6: Sửa dữ liệu tại server gốc thì phân mảnh có nhận được không ?
Nếu ngược lại, từ server phân mảnh về server gốc thì có nhận được không ?
Đáp: Có, dữ liệu đồng bộ theo 2 chiều.
Câu Hỏi 7: Nêu ưu và nhược điểm khi ưu tiên tìm kiếm trên site phân mảnh trước khi về site chủ. Đáp:
Ưu điểm: server gốc lúc nào cũng hoạt động nên luôn truy vấn được dữ liệu mong muốn
Nhược điểm: Không thể che dấu được hoàn toàn các thông tin nhạy cảm giữa
các site phân mảnh. Việc cấp 1 tài khoản để vào site chủ có thể giúp người
dùng đó xem được dữ liệu của site khác
Câu Hỏi 8: Muốn thực thi một câu lệnh store procedure, view, function thì ta làm như nào ? lOMoAR cPSD| 58647650
Đáp: Ta sẽ tạo một đối tượng là SqlCommand rồi nhúng vào các đối số cần thiết vào
Câu Hỏi 9: Giao tác là gì ? Để viết giao tác cần bật dịch vụ gì ?
Đáp: Giao tác là một dãy các thao tác đọc và ghi dữ liệu cùng với các bước tính
toán nhất quán ( Begin Trans, Commit , Rollback,Begin distributed trans) để
giải quyết các tình huống khi dữ liệu bị mất tính nhất quán khi có nhiều truy xuất đồng thời Để
viết giao tác cần phải bật dịch vụ MSDTC - Miscrosoft Distribute Transaction Coordinator
Câu Hỏi 10: ý nghĩa của Begin trans, commit, rollback & Begin distributed trans là gì ? Đáp:
Begin Trans: bắt đầu giao tác
Commit : xác nhận thành công
Rollback( hoặc abort) : hủy bỏ giao tác và trả lại dữ liệu cũ
Begin distributed trans : câu lệnh mở đầu giao tác phân tán
Câu Hỏi 11: Nêu những tính chất giao tác ?
Đáp: Có tất cả 4 tính chất với giao tác gồm:
(1) tính nguyên tử: 1 giao tác có nhiều tập lệnh thì mọi câu lệnh hoặc thành
công hoặc nếu 1 lệnh thất bại thì tất cả thất bại lOMoAR cPSD| 58647650
(2) tính nhất quán: đảm bảo tất cả rằng buộc. Mọi lệnh đều được chạy
(3) tính biệt lập: một giao tác đang thực thi thì ko làm lộ các kết quả của nó cho
những giao thức khác đang cùng hoạt động trước khi nó hoàn thành.
(4) tính bền vững: một giao tác đã được commit thì dữ liệu đó được giữ nguyên và không thể rollback
Câu Hỏi 12: Dữ liệu rác là gì ?
Đáp: là dữ liệu sinh ra có thể chưa phải là dữ liệu đã được commit nếu một
giao tác khác đồng thời vào và lấy giao tác này ra thì dữ liệu này là ko chính xác.
Câu Hỏi 13: Có mấy loại giao tác ?
Đáp: Có 2 loại giao tác là tập trung và phân tán
Giao tác tập trung có 2 loại: giao tác phẳng và giao tác lồng
(1) Giao tác phẳng có điểm khởi đầu duy nhất ( begin transaction ) và một điểm
kết thúc duy nhất ( end transaction )
(2) Giao tác lồng chứa nhiều giao tác với điểm khởi đầu và duy nhất riêng biệt.
Giao tác phân tán chỉ có 1 loại duy nhất: giao tác phẳng
Câu Hỏi 14: XACT_ABORT là gì ? Nó nhận được mấy giá trị ?
Đáp: XACT_ABORT: đây là tùy chọn kết nối. Nó chỉ nhận 2 giá trị là ON & OFF.
Nếu là OFF, SQL Server sẽ bỏ qua lệnh gây lỗi trong transaction và tiếp tục
thực thi các lệnh còn lại. lOMoAR cPSD| 58647650
Nếu là ON, SQL Server sẽ hủy bỏ toàn bộ transaction nếu nó gặp lệnh bị lỗi và
trả lại dữ liệu về ban đầu.
Câu Hỏi 15: Khi viết 1 stored procedure khi nào ta không dùng begin transaction
, không dùng commit ... nhưng vẫn được coi là 1 giao tác ?
Đáp: khi ta sử dụng chỉ một lệnh UPDATE - DELETE - INSERT duy nhất. Còn
nếu có 2 lệnh UPDATE - DELETE - INSERT thì phải dùng cú pháp begin transaction và commit
Câu Hỏi 16: Dịch vụ MS TDC là gì ?
Đáp: Dịch vụ MS TDC là Microsoft Distributed Transaction Coordinator. Nó đảm
bảo tất cả cập nhật được thực thi ở tất cả các phân mảnh hoặc trong trường
hợp lỗi thì xem như chưa thực hiện thao tác nào hết.
Câu Hỏi 17: Vị từ thích hợp là gì ?
Đáp: Thỏa tính đầy đủ và tính cực tiểu
Câu Hỏi 18: Tiêu chí đầy đủ và tiêu chí cực tiểu là gì ? Đáp:
Tiêu chí đầy đủ là ta có nhiều stored procedure thì xác suất nó truy xuất tới các phân mảnh là như nhau.
Tiêu chí cực tiểu là mỗi site được sinh ra phải được sử dụng tới trong một stored procedure nào đó.
Câu Hỏi 19: Vị từ là gì ? Một vị từ đơn giản là gì ?
Đáp: Vị từ là Mệnh đề login có nhiều điều kiện lOMoAR cPSD| 58647650
Một vị từ đơn giản là vị từ có kiểu: MACN = 'CN1',... . Tức vế trái là tên thuộc
tính và vế phải là tên giá trị.
Một vị từ sơ cấp: MACN = ( CN1 hội CN2 ).
Câu Hỏi 20: Một vị từ "thích hợp" là gì ?
Đáp: Một vị từ "thích hợp" nghĩa là khi tạo ra 1 phân mảnh "thích hợp" thì phải
có stored procedure sử dụng tới phân mảnh này.
Câu Hỏi 21: Sự trong suốt phân tán là gì ?
Đáp: Sự trong suốt phân tán: khi 1 stored procedure( sp ) được thực thi ở 1
server phân mảnh bấy kì thì cũng hoạt động tốt trên các phân mảnh còn lại
người dùng không cảm thấy được sp đang chạy trên hệ thông phân tán.
Note: Chúng ta đứng ở vị trí thứ 3 để lập trình. Luôn ưu tiên tìm ở phân mảnh
cục bộ trước khi sang các phân mảnh khác.
Câu Hỏi 22: Có mấy mức độ trong suốt phân tán là gì ?
Đáp: Có 4 mức độ trong suốt phân tán
(1) Mức cao nhất: Không cần chỉ ra phân mảnh cần truy vấn. Người dùng không
cảm giác là đang thao tác trên một câu truy vấn phân tán.
(2) Sự trong suốt vị trí: Chúng ta chỉ cần chỉ ra tên TABLE cần phải truy vấn.
(3) Sự trong suốt ánh xạ cục bộ: Chúng ta cần chỉ rõ tên phân mảnh và vị trí cấp phát của chúng
(4) Không trong suốt: Chúng ta phải viết lệnh để đến đúng vị trí database cần
thao tác. Tuy nhiên, do chúng ta đã đặt tên các cơ sở dữ liệu giốngnhau ở lOMoAR cPSD| 58647650
mọi phân mảnh. Tên LINK server cũng trùng tên nên không phải bận tâm đến mức này
Note: người dùng sẽ sử dụng ứng dụng ở mức cao nhất. Còn người lập trình
như chúng ta sẽ đứng ở mức thứ 3.
Câu Hỏi 23: Điều kiện để có thể phân tán được cơ sở dữ liệu ? Có mấy bước
để phân tán cơ sở dữ liệu ?
Đáp: có dịch vụ SQL Server Agent
Có 3 bước để thực hiện phân tán cơ sở dữ liệu
(1) Định nghĩa Server Distributor : chứa Database distribution
(2) Định nghĩa publication : 1 container chứa các article (table, view, stored procedure, UDF).
Trong đó, phải chỉ rõ các server :
Publisher - chứa bản gốc cơ sở dữ liệu
Distributor - điều phối phân tán dữ liệu
(3) Định nghĩa subscription (database): 1 container nhận publication. Trong đó,
phải chỉ rõ server Subscriber - chứa cơ sở dữ liệu sau khi phân tán Câu Hỏi
23: Có mấy hình thức phân mảnh ?
Đáp: Có 3 hình thức phân mảnh gồm phân mảnh ngang, phân mảnh dọc & phân mảnh hỗn hợp.
Câu Hỏi 24: Nêu đặc điểm của phân mảnh ngang ? lOMoAR cPSD| 58647650
Đáp: Phân mảnh ngang là chia một quan hệ theo các bộ. Mỗi phân mảnh ngang
là tập con của quan hệ.
Trong phân mảnh ngang bao gồm phân mảnh ngang nguyên thủy & phân mảnh ngang dẫn xuất
Phân mảnh ngang nguyên thủy là phân mảnh của 1 quan hệ dựa trên 1 vị từ
được định nghĩa trên quan hệ đó
Phân mảnh ngang dẫn xuất là phân mảng của 1 quan hệ dựa trên vị từ được
định nghĩa trên quan hệ khác.
Ví dụ với đề quản lý vật tư thì
MaChiNhanh = 'CN1' -> phân mảnh ngang nguyên thủy
NHANVIEN.MaKho = KHOHANG.MaKho -> phân mảnh ngang dẫn xuất Nói
cách khác 'CN1' và 'CN2' là các vị từ.
Câu Hỏi 24: Nêu đặc điểm của phân mảnh dọc ?
Đáp: Phân mảnh dọc là phân mảnh dựa trên khóa chính của một quan hệ ( phải
có khóa chính để đảm bảo tính tái thiết)
Gỉa sử, NHANVIEN( id, ho , ten, dia chi, luong, ngay sinh, ma chi nhanh ) thì
khi tạo phân mảnh dọc sẽ thành
NHANVIEN(id, ho, ten, ngay sinh, ma chi nhanh) trong đó MaChiNhanh là khóa
ngoại thì phải cho phép NULL
Câu Hỏi 25: Nêu đặc điểm của phân mảnh hỗn hợp ? lOMoAR cPSD| 58647650
Đáp: Là sự kết hợp của 2 cách phân mảnh ngang và dọc. Khi hợp các phân
mảnh theo 2 cách này thì cơ sở dữ liệu tạo thành chính là cơ sở dữ liệu ban đầu.
Câu Hỏi 25: Có mấy quy tắc phân mảnh ?
Đáp: Có 3 quy tắc phân mảnh
(1) Tính đầy đủ: xét trên góc độ là QUAN HỆ. Mỗi mục dữ liệu ít nhất phải nằm
ở 1 phân mảnh. Thì không bị mất thông tin
(2) Tính tái thiết: thường thì thỏa mản tính đầy đủ sẽ thỏa mãn tính tái thiết.
(3) Tính tách biệt: mỗi mục dữ liệu chỉ nằm ở một phân mảnh duy nhất. Khi
ghép các phân mảnh thì database sẽ đầy đủ như ban đầu. Tức nếu TEN ở
phân mảnh 1 thì sẽ không xuất hiện ở phân mảnh 2
Note Thực tế, tính tách biệt dễ bị vi phạm vì NHÂN BẢN giúp dữ liệu tồn tại ở
cả 2 mảnh. Bắt buộc tính đầy đủ phải thỏa mãn. Nếu thỏa mãn thì tính tái thiết
cũng sẽ được bảo đảm.
Câu Hỏi 26: Run on continue khác run on demand ở điểm nào ?
Đáp: Run on continue làm tính nhất quán cao, dữ liệu đồng bộ ngay lập tức.
Run on demand tính tự quản cao. Các site có thể disconnect. Các thay đổi
không phản ảnh tức thời tới site chủ
Câu Hỏi 27: Snapshot folder là gì ? ?
Đáp: Folder chứa dữ liệu trung gian để đồng bộ dữ liệu từ các phân mảnh về
site chủ và ngược lại. Là folder chứa dữ liệu để đẩy qua đẩy lại. Phải là network path(shared folder) lOMoAR cPSD| 58647650
Câu Hỏi 28: Tại sao trả về mã nhân viên khi dùng sp_DangNhap ?
Đáp: để gán tự động cho các form có mã nhân viên Câu
Hỏi 29: Bốn thuộc tính quan trọng của combo box ? Đáp:
data source chứa danh sách dữ liệu cung cấp cho nó
display member chứa tên field mình muốn hiển thị
value member chứa field dữ liệu mình muốn lấy
selected index change phương thức thay đổi giá trị Câu
Hỏi 30: Vì sao ta phải dùng Remote Login ?
Đáp: Cho phép truy cập dữ liệu khi đứng từ server này sang server khác.
Câu Hỏi 31: Có những cách nào để tối ưu hóa truy vấn ?
Đáp: Có 5 cách để tối ưu hóa một câu truy vấn
Dùng phép chọn, chiếu trước, phép kết sau
Khử phép kết (nếu được)
Nếu 1 điều kiện xuất hiện nhiều lần trong WHERE thì dùng các phép biến đổi
tương đương để cho điều kiện đó xuất hiện 1 lần
Trong mệnh đề AND, điều kiện nào có xác suất sai cao thì đặt ở đầu ; OR thì ngược lại.
Field tham gia trong điều kiện truy vấn nên được sắp thứ tự trước & thứ tự này
phải đc sử dụng trong mệnh đề truy vấn với WITH (INDEX=ten_index) Câu Hỏi lOMoAR cPSD| 58647650
32: Thế nào là một Stored Procedure trong suốt ? Điều kiện để viết Stored Procedure trong suốt ?
Đáp: Stored Procedure được coi là trong suốt nếu ta cho thực thi ở 1 server thì
vẫn cho thực thi được ở những server còn lại mà không cần chỉ rõ đường dẫn
đến table cần truy xuất Hoặc có thể trả lời
Stored Procedure trong suốt là Stored Procedure mà khi ta cho thực thi ở bất
kì phân mảnh nào đều cho kết quả giống nhau
Điều kiện để viết Stored Procedure trong suốt là ta cần có LINK SERVER & tên database giống nhau
Câu Hỏi 33: Trong database, cái nào là nhân bản, cái nào là phân hoạch ?
Đáp: Mở cây dẫn xuất ra xem, cái nào không có trong cây dẫn xuất là nhân
bản, cái đầu tiên là phân mảnh ngang nguyên thủy
Câu Hỏi 34: Nếu đã phân tán xong cơ sở dữ liệu, muốn thay đổi cấu trúc | thứ
tự các cột trong table của server gốc thì làm sao ?
Đáp: Có thể thay đổi bằng cách viết stored procedure dùng lệnh ALTER
TABLE ở server gốc sau đó đồng bộ xuống các server phân mảnh Câu
Hỏi 35: Dữ liệu sau khi nhập form sẽ được đẩy về đâu ?
Đáp: Đẩy về publisher sau đó đồng bộ xuống các subcriber.
Câu Hỏi 36: Trong các table, cái nào mang tính đầy dủ, cái nào vi phạm tính tách biệt ? lOMoAR cPSD| 58647650
Đáp: Các table nhân bản thì vi phạm tính tách biệt, tất cả các table còn lại thì mang tính đầy đủ.
Câu Hỏi 37: Giao tác tập trung với giao tác phân tán giống và khác nhau như thế nào ? Đáp:
Điểm khác : Giao tác thì thực thi trên môi trường cơ sở dữ liệu tập trung (gồm
có giao tác phẳng và giao tác lồng), còn giao tác phân tán thì thực thi trên môi
trường cơ sở dữ liệu phân tán.
Điểm giống : 4 tính chất giao tác.
Câu Hỏi 38: Login Name nằm trong table nào?
Đáp: Nằm trong table sys.sysuser trong Database đó Câu
Hỏi 39: Tại sao biết user liên kết với login nào?
Đáp: Username và loginname liên kết với nhau qua trường sid (trên user và
login đều có sid) nên từ loginname biết được username từ sid Câu Hỏi 40: Tên
nhóm quyền nằm trong table nào ? Đáp: Nằm trong table sys.sysuser trong
Database đó Câu Hỏi 41: Ưu | khuyết điểm của nhân bản ?
Đáp: Truy xuất nhanh, đứng ở đâu cũng có thể select được. Nhưng update
chậm vì có quá nhiều bản sao
Câu Hỏi 42: Ưu | khuyết điểm của phân hoạch ? lOMoAR cPSD| 58647650
Đáp: Select chậm nhưng insert và update nhanh do chỉ thao thác trên server
gốc hoặc server phân mảnh cần truy xuất.
Câu Hỏi 42: Tại sao table đó nhân bản? Đáp:
Trong đề vật tư thì vật tư nhân bản vì vật tư có thể có ở chi nhánh này cũng có
thể có ở chi nhánh khác.
Trong đề trắc nghiệm thì giáo viên nhân bản vì giáo viên có thể dạy ở cở sở
này cũng có thể dạy ở cơ sở khác, bộ đề đi theo giáo viên nên cũng nhân bản.
Giáo viên cở sở 1 có thể dạy ở cở sở 2 nhưng không thể đăng kí thi cho lớp ở cơ sở 2. PHẦN I: PHÂN TÁN
Câu 1: Định nghĩa cơ sở dữ liệu phân tán
Một cơ sở dữ liệu phân tán là một tập hợp dữ liệu của một hệ thống
nhưng được phân bố trên nhiều địa điểm (site) của một mạng máy tính.
Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân tán là: 1.
Sự phân tán: dữ liệu không lưu trữ trên cùng một địa điểm vì
thế chúng ta có thể phân biệt nó với cơ sở dữ liệu tập trung. 2.
Tuân thủ mối tương quan luận lý: Dữ liệu phải tuân thủ các
ràng buộc toàn vẹn trên CSDL tập trung (6 ràng buộc :3 cái trên bối
cảnh 1 qhe, 3 cái trên bối cảnh liên qhe). Phải đảm bảo vì khi nhập
liệu trên site phân mảnh mà không xét ràng buộc, đổ về site chủ nó sẽ không nhận. lOMoAR cPSD| 58647650
Hệ thống phân tán có 2 trường hợp tùy vào nhu cầu mà thiết kế phù hợp:
- Sau khi phân tán xong, các site không bắt buộc phải đang được kết
nối với nhau. Bởi vì, khi phân tán database có những dự án mang
tính chất tự quản. Số liệu xử lý độc lập, khi muốn tổng hợp thì kết
nối các site phân mảnh lại, hệ thống đồng bộ về site chủ và site có
liên quan. Snapshot publication
- Tính nhất quán cao: dữ liệu ở 1 nơi có sự thay đổi, thì trong vài
giây được đẩy về site chủ và đồng bộ đến các site có liên quan, hệ thống luôn conect.
Transactional publication
- Merge publiation: vừa cơ chế tự quản, vừa cơ chế đồng bộ liên tục. -
Ứng dụng phân tán: dữ liệu đang có trên site không đủ hỗ trợ công việc,
lấy thêm dữ liệu bên ngoài về.
Ứng dụng cục bộ : khi site mà ta đang kết nối để xử lý đủ để đáp ứng
yêu cầu của ta, không cần đi qua site khác lấy số liệu. Ví dụ: thêm 1 môn
học vì môn học là nhân bản nên, thêm 1 môn học kiểm tra mã môn học
có bị trùng không, thì chỉ cần kiểm tra trên site đang kết nối.
Ứnng dụng toàn cục truy cập dữ liệu cục bộ sẽ nhanh hơn ứng dụng từ xa
điều này nói lên sự nhân bản dữ liệu ở các nơi cũng làm tăng tốc độ xử lý
chương trình. Lưu ý để đảm bảo an toàn chỉ nhân bản những dữ liệu không
quan trọng, ít biến động.
Câu 2: Các thành phần cơ bản cần thiết cho việc xây dựng một cơ sở
dữ liệu phân tán là :
1. Thành phần quản trị cơ sở dữ liệu (DB Database Management)
2. Thành phần truyền dữ liệu (DC Data Communication)
3. Tự điển dữ liệu (DD Data Dictionnary) mở rộng để biểu diễn thông
tin về sự phân tán dữ liệu trên mạng. lOMoAR cPSD| 58647650
4. Thành phần cơ sở dữ liệu phân tán (DDB Distributed Database) Câu
3: Các đối tượng phân tán
Table, Stored Procedure, Views, UDF Câu 4:
1. Điều kiện để phân tán được CSDL: có dịch vụ SQL Server Agent
Tác dụng SQL Server Agent:
Hỗ trợ phân tán Tác dụng SQL Server Agent: - - Đồng bộ dữ liệu - Cái 3 không biết
2. Phân tán cơ sở dữ liệu có 3 bước:
- Định nghĩa Server Distributor : chứa DB distribution - Định
nghĩa publication : 1 container chứa các article (table, view,
stored procedure, UDF). Trong đó, phải chỉ rõ server : +
Publisher : chứa bản cơ sở dữ liệu gốc
- Định nghĩa subscription (database): 1 container nhận
publication. Trong đó, phải chỉ rõ server Subscriber : chứa cơ
sở dữ liệu sau khi phân tán
3. Phân tán tự sinh 1 field: rowquid
Gồm 32 kí tự, hỗ trợ quá trình đồng bộ dữ liệu từ site phân mảnh về
site chủ và ngược lại. nó chỉ rõ table nào, cột nào để đưa dữ liệu xuống đúng vị trí đó
Câu 5: Một publication( 1 mảnh trong lược đồ phân mảnh) có thể đẩy
xuống 2 site được không?
Được quyền đẩy dữ liệu từ một publication xuống 2 site.
Khuyến điểm: tốc độ xử lý, cập nhật dữ liệu chậm
Ưu điểm: an toàn dữ liệu
Câu 6: Thuộc tính folder RELPDATA là gì? ở đâu? Mục đích của thư mục để làm gì?
- Thuộc tính là share, có quyền read/write. Mục đích để chứa các dữ
liệu trao đổi trong quá trình update dữ liệu từ các phân mảnh về csdl
gốc , và từ gốc đi đến các phân mảnh.
PHẦN II: SỰ TRONG SUỐT PHÂN TÁN
Câu 1: Khi nào phân tán?
Khi cơ sở dữ liệu tập trung không giải quyết được yêu cầu bài toán. lOMoAR cPSD| 58647650
Câu 2: 1 quan hệ khi phân tán thì :
- Phân hoạch: Dữ liệu đẩy qua duy nhất 1 site
Ưu khuyết điểm của phân hoạch : select chậm nhưng insert và
update nhanh do chỉ thao thác trên server gốc hoặc server phân mảnh cần truy xuất. - Nhân bản:
+ Nhân bản hoàn toàn: Dữ liệu đẩy qua tất cả các site +Nhân
bản một phần: Dữ liệu đẩy qua ít nhất 2 site nhưng ko phải tất cả
Ưu khuyết điểm của nhân bản: truy xuất nhanh, tính sẵn sàng
cao, đứng ở đâu cũng có thể select đc. Nhưng update chậm vì có quá nhiều bản sao
Câu 3: Các hình thức phân mảnh? Thế nào là một vị từ?
Có 3 hình thức phân mảnh:
- Phân mảnh ngang: là chia 1 quan hệ theo các bộ. Mỗi phân mảnh
ngang là một tập con của quan hệ. Có hai loại phân mảnh ngang đó
là phân mảnh ngang dẫn xuất và phân mảnh ngang nguyên thủy.
+ Phân mảnh ngang nguyên thủy là sự phân mảnh dựa trên
một quan hệ vị từ được định nghĩa trên một quan hệ. VD: MACS='CS1'
+ Phân mảng ngang dẫn xuất là dữ liệu khi phân rã nhờ vào
dữ liệu của một quan hệ khác .
VD: NHANVIEN.MaKho = KHOHANG.MaKho
- Phân mảnh theo chiều dọc là việc chia các thuộc tính vào nhiều
nhóm; các mảnh nhận được từ phép chiếu quan hệ toàn cục trên mỗi nhóm.
Phân mảnh dọc là dựa trên quan hệ kèm theo khóa chính ( bắt buộc
phải có khóa chính để bảo toàn tính tái thiết)
- Phân mảnh hỗn hợp: là kết hợp của phân mảnh ngang & phân mảnh dọc
Câu 4: Nêu rõ các quy tắc phân mảnh: Tính tái thiết, tính đầy đủ, tính tách biệt
3 quy tắc phân mảnh đảm bảo database không thay đổi về mặt ngữ
nghĩa(gồm dữ liệu và ràng buộc toàn vẹn) và lưu ý xét trên mức độ quan hệ
- Tính đầy đủ: Nếu một quan hệ R được phân rã thành các mảnh R1,
R2,.., Rn thì mỗi mục dữ liệu( dòng nếu là phân mảnh ngang, thuộc lOMoAR cPSD| 58647650
tính nếu là phân mảnh dọc) trong R sẽ phải nằm ít nhất ở 1 phân
mảnh . Đặc tính này nói lên sự phân mảnh không mất thông tin.
- Tính tái thiết: Một quan hệ R được phân rã thành n mảnh( các
quan hệ R1, R2, … Rn ) thì cần định nghĩa phép toán sao cho tái
thiết lại quan hệ gốc được.
Nhậm xét: 1 quan hệ thỏa tính đầy đủ( không mất mát thông tin) thì tái thiết được.
Định nghĩa 1 phép toán để tái thiết dữ liệu, nếu phân mảnh
ngang dùng phép hội ( UNION), phân mảnh dọc là phép kết tự nhiên
trên khóa chính(các thuộc tính khoá chính phải được lặp lại trong mỗi mảnh.) Ví dụ:
Lệnh Select … Union : lấy dữ liệu từ các server phân mảnh về
Lưu ý: UNION ALL lấy tất cả
UNION khử những mẫu tin trùng
- Tính tách biệt: Nếu một quan hệ R được phân rã thành các phân
mảnh R1, R2, …Rn và mục dữ liệu nằm trong phân mảnh Rj chỉ tồn
tại ở 1 phân mảnh. Tính chất này có thể vi phạm được, table nào nhân bản thì vi phạm.
SQL Server cung cấp các kiểu JOIN là INNER JOIN, OUTER JOIN,.
- INNER JOIN trả về kết quả là các bản ghi mà trường được join ở
hai bảng khớp nhau, các bản ghi chỉ xuất hiện ở một trong hai bảng sẽ bị loại.
- OUTER JOIN lấy về các bản ghi có mặt trong cả hai bảng và cả
các bản ghi chỉ xuất hiện ở một trong hai bảng. Kiểu JOIN này được chia làm hai loại:
+ FULL OUTER JOIN: kết quả gồm tất cả các bản ghi của
cả hai bảng. Với các bản ghi chỉ xuất hiện trong một bảng thì các
cột dữ liệu từ bảng kia được điền giá trị NULL.
+ HALF OUTER JOIN (LEFT hoặc RIGHT): nếu bảng A
LEFT OUTER JOIN với bảng B thì kết quả gồm các bản ghi có
trong bảng A, với các bản ghi không có mặt trong bảng B thì các
cột từ B được điền NULL. Các bản ghi chỉ có trong B mà không có
trong A sẽ không được trả về.
- CROSS JOIN: mỗi bản ghi của bảng A được kết hợp với tất cả các
bản ghi của bảng B, tạo thành một tích Đề-các giữa hai bảng (số bản
ghi trả về bằng tích của số bản ghi trong hai bảng). lOMoAR cPSD| 58647650
Vận dụng: Cho một câu lệnh tái thiết data trên các phân mảnh
ngang của đề tài.
Câu 5:Trong suốt là gì? Điều kiện để trong suốt? Có mấy mức trong
suốt, nêu rõ các mức trong suốt đó?
- Trong suốt : nghĩa là 1 SP khi ta cho thực thi ở 1 Server phân mảnh
bất kỳ thì vẫn thực thi được ở tất cả các Server phân mảnh còn lại
mà ta không cần chỉ lại đường đẫn đến SP cần truy xuất (người
dùng không cảm nhận được là SP đang chạy trên Hệ thống phân
tán). Nghĩa là SP đó nhân bản.
- SP trong suốt là sp thực hiện ở bất kì server nào cũng cho kết quả đúng như nhau. - Quy tắc :
a. Tên các cơ sở dữ liệu ở các Server Subscriber phải giống nhau
b. Tên Link Server phải giống nhau
- Có 4 mức trong suốt: người lập trình đứng ở mức thứ 3 nhưng làm cho người
dùng cảm thấy như đang ở mức 1.
+Mức 1: Trong suốt phân tán: truy vấn không cần chỉ ra các phân
mảnh cũng như các vị trí cấp phát cho các phân mảnh đó. Người sử
dụng không hề có cảm giác là đang thao tác trên một câu truy vấn phân tán.
+Mức 2: Trong suốt vị trí : Ngưòi sử dụng phải chỉ rõ table nào
nhưng không cần chỉ vị trí ở site nào.
+Mức 3:Trong suốt ánh xạ cục bộ: phải cung cấp tên các phân
mảnh và vị trí cấp phát chúng.
+Mức 4: Không trong suốt: phải viết lệnh theo hệ quản trị cơ sở dữ
liệu tương ứng. (Chỉ rõ cơ sở dữ liệu nào, hệ quản trị nào, database nào)
Câu 6: LinkServer dùng để làm gì? Khi tạo LinkServer cần điều kiện
gì? Muốn truy xuất đến phân mảnh gần nhất đầu tiên chúng ta phải
tạo LinkServer như thế nào?

- LinkServer: Mục đích: cho phép truy cập dữ liệu từ server 1 đến
Server 2 qua tập lệnh DML(Select, Insert, Update, Delete, Merge )
- Điều kiện: LinkServer cùng tên link và cùng tên cơ sở dữ liêu.
- Cách tạo Link Server : LINK1 từ SERVER1 đến SERVER2
+ Ở SERVER2 : Tạo 1 login HTKN, pass, cho phép toàn
quyền trên CSDL Subscription
+ Ở SERVER1 : tạo Link Server tên LINK1 nhờ login
HTKN để kết nối đến SERVER2 Câu 7:
- Sự trong suốt phân tán của ứng dụng chỉ đọc: chỉ có những câu lệnh lOMoAR cPSD| 58647650 Select
+ Select không có FROM: là lệnh xuất
+Select có FROm: lệnh truy vấn
- Sự trong suốt phân tán đối với ứng dụng cập nhật: chứa từ 2 lệnh
cập nhật dữ liệu thì phải có giao tác.
Câu 8: Table ảo: tự động mất đi khi người dùng ngừng kết nối server đó.
- # Ảo cục bộ: người nào tạo ra người ấy thấy và dùng được.
- ## Ảo toàn cục: một người tạo, nhiều người dùng( table còn nằm trong bộ nhớ trong)
Câu 9: Dữ liệu phân tán 2 chiều: dữ liệu đồng bộ hai chiều, từ site chủ về
site phân mảnh và người lại.
Code, Sp phân tán 1 chiều: cơ chế đồng bộ chỉ một chiều từ site chủ xuống.
PHẦN III: Thiết kế cơ sở dữ liệu phân tán
Câu 1: Khi xây dựng cơ sở dữ liệu phân tán phải đảm bảo 2 tiêu chí. +)
Tiêu chí cực tiểu: một phân mảnh khi sinh ra thì có ít nhất một ứng dụng
sẽ sử dụng tới chạy trên phân mảnh đó thì mới thích hợp. +) Tiêu chí đầy
đủ: xác suất để một ứng dụng sử dụng tới các phân mảnh là như nhau.
Câu 2: Nếu phân tán xong CSDL, muốn thay đổi cấu trúc(cột) của table
server gốc thì ta làm thế nào?
Có thể thay đổi bằng cách viết sp dùng lệnh ALTER TABLE ở server gốc
sau đó đồng bộ xuống các server phân mảnh Câu 3: Sự cấp phát các phân mảnh.
Một publication( 1 phân mảnh trong lược đồ phân mảnh) có thể
ánh xạ qua nhiều site subcriber.
+Ánh xạ 1-1: cơ chế đồng bộ dữ liệu nhanh, tiết kiệm chi phí lưu
trữ, nhưng không an toàn.
+ ánh xạ 1-N tùy vào nhu cầu. An toàn thì đẩy qua 2 site, 1 nơi có
vấn đề thì có thể hoạt động ở site khác.
Câu 4: Các mục tiêu của việc thiết kế phân tán dữ liệu: - Sự truy xuất cục bộ
- Tính sẵn sàng và khả tín của các dữ liệu phân tán - Sự phân bố tải - Chi phí lưu trữ
Câu 5: Các bước tiếp cận khi phân tán một database Có 2 hướng: