Upload
kim-kim-hoang
View
230
Download
4
Embed Size (px)
DESCRIPTION
Mau biet thu dep là 1 mẫu nhà lý tưởng cho các KTS thiết kế nhà đẹp trên thế giới
Citation preview
1. GIỚI THIỆU
Cơ sở dữ liệu phân tán là tập hợp các dữ liệu thuộc về
cùng một hệ thống có liên quan logic với nhau và được trải
ra trên hệ thống mạng máy tính.
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 2
Hệ quản trị CSDL phân tán là tập hợp các phần mềm dùng
để quản trị (Tạo mới, cập nhật, thao tác, bản mật) CSDL
phân tán làm cho việc phân tán trở nên trong suốt đối với
người dùng.
Trong suốt: Che giấu sự phân tán đối vớiuser, làm cho user sử dụng CSDL phân tángiống như tập trung.
1. GIỚI THIỆU (tiếp)
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 3
1. GIỚI THIỆU (tiếp)
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 4
Tính trong suốt:
Trong suốt phân đoạn: làm cho người dùng không biết
sự tồn tại của các phân đoạn (phân đoạn ngang hoặc
phân đoạn dọc)
Trong suốt nhân bản: làm cho người dùng không biết
sự tồn tại của các bản sao.
2. CÁC PHƢƠNG PHÁP PHÂN TÁN
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 5
Tập trung dữ liệu
Chia nhỏ dữ liệu
Sao lặp dữ liệu
Phương thức lai
2.1. Tập trung dữ liệu
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 6
Dữ liệu được tập trung ở một nơi.
Không đảm bảo tính sẵn sàng đối với các truy nhập từ xa.
Nhược điểm:
Chi phí truyền thông cao.
Hệ thông sẽ ngừng làm việc nếu CSDL có sự cố
2.2. Chia nhỏ dữ liệu
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 7
CSDL được chia thành những phần nhỏ liên kết với nhau
(dữ liệu không trùng lặp).
Mỗi phần nhỏ được đưa đến nơi (địa điểm) thích hợp để
sử dụng.
2.3. Sao lặp dữ liệu
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 8
CSDL được nhân bản thành nhiều bản từng phần hoặc đầy
đủ và được đặt ở nhiều nơi.
Sau một khoảng thời gian nhất định các bản sao sẽ được
cập nhật đồng bộ với bản chính.
Hiện có nhiều kỹ thuật cho phép tạo các bản sao không
đầy đủ phù hợp với yêu cầu dữ liệu ở mỗi server.
2.4. Phƣơng thức lai
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 9
CSDL được phân thành nhiều phần: quan trọng và không
quan trọng. Các phần này được đặt ở các nơi khác nhau.
3. PHÂN MẢNH DỮ LIỆU
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 10
Phân mảnh dữ liệu: Việc chia một quan hệ thành nhiều
quan hệ nhỏ hơn.
3. PHÂN MẢNH DỮ LIỆU (tiếp)
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 11
Các kiểu phân mảnh:
• Phân mảnh ngang (horizontal fragmentation)
• Phân mảnh dọc (vertical fracmentation)
• Phân mảnh hỗn hợp (hibrid fragmentation)
* Tùy vào từng yêu cầu của bài toán để xác định kiểu phân
mảnh cho CSDL.
Phân mảnh ngang
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 12
Phân mảnh ngang: Chia R thành các mảnh (đoạn), mỗi
mảnh chứa một số bộ giá trị của R thỏa mãn một tính chất
nào đấy (điều kiện phân mảnh). Phân đoạn ngang thỏa mãn
3 điều kiện phân mảnh:
• Đầy đủ: Mỗi bộ giá trị của R đều được đặt vào 1 Ri nào
đó.
• Xây dựng lại: R = R1 U R2 ... U Rn
• Tách rời: Ri ∩ Rj = ϕ
Phân mảnh dọc
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 13
Phân mảnh dọc: Một đoạn dọc của R là Ri (tập con của R)
nhưng mỗi Ri đều phải chứa khóa chính của R.
• Phân mảnh dọc không thỏa mãn điều kiện tách rời.
• Xây dựng lại: R = R1 R2 ... Rn
Phân mảnh hỗn hợp: Kết hợp giữa phân mảnh ngang và
phân mảnh dọc.
4. THỰC HÀNH PHÂN TÁN
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 14
Tạo CSDL QLNhanvien:
• Phân mảnh ngang bảng tblNhanvien
• Phân mảnh dọc bảng tblPhongban
Xây dựng các đối tượng (truy vấn, khung nhìn, thủ tục
lưu, trigger,…) thao tác trên các bảng.
Chuẩn bị
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 15
Cài đặt thêm SQL Server trên máy ảo.
Cấu hình SQL server ở các trạm sao cho các trạm có thể
“làm việc” được với nhau (sử dụng linked server):
• Firewall
• TCP/IP
• SQL Server Browse
• Remote Connection
Linked Server
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 16
• Tạo linked server:
EXEC sp_addlinkedserver
@server = <tên server>,
@provider = <trình cung cấp>,
@datasrc = <tên linked Server>,
@srvproduct = <tên product>
Trong đó, tham số @provider thường là SQLOLEDB,
MSDASQL, Microsoft.Jet.Oledb.4.0,...
Ngoài ra ta có thể thêm các tham số khác: @location,
@catalog,...
Linked Server
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 17
• Kết nối tới Linked server:
EXEC [master.dbo.]sp_addlinkedsrvlogin
@rmtsrvname = <tên server>,
@useself = N'False',
@locallogin = NULL,
@rmtuser= = <user>,
@rmtpassword = <password>
• Để kiểm tra việc tạo linked server:
EXEC sp_linkedservers
Linked Server
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 18
• Thực hiện kiểm tra việc kết nối bằng câu lệnh truy vấn nào
đó.
Select *
From <tên linked server>.<tên CSDL>.<dbo>.<tên bảng>
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 19
Tạo CSDL QLNhanvien (chú ý thiết lập COLLATE cùng
giá trị cho cả 2 server):
Create Database QLNhanvien COLLATE Vietnamese_CI_AS
Go
Use QLNhanvien
Go
-- Phân mảnh dọc bảng tblPhongban, trường địa chỉ sẽ nằm
ở bảng tblNhanvien bên server thứ 2
Create Table tblPhongban
( PK_sMaPB varchar(10) Primary key not null,sTenPB nvarchar(20) Unique not null
)
Go
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 20
Tạo CSDL QLNhanvien (tiếp):
Create Table tblNhanvien
( PK_sMaNV varchar(10) Primary key not null,sTenNV nvarchar(30) Unique not null,
fLuong float CHECK(fLuong>=0),
FK_sMaPB varchar(10) Foreign key(FK_sMaPB)
references tblPhongban(PK_sMaPB)
ON update Cascade
ON delete Cascade
)
Go
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 21
Tạo CSDL tại linked server:
Create Database QLNhanvien COLLATE Vietnamese_CI_AS
Go
Use QLNhanvien
Go
Create Table tblPhongban
( PK_sMaPB varchar(10) Primary key not null,sDiachi nVarchar(30)
)
Go
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 22
Tạo CSDL tại linked server (tiếp):
Create Table tblNhanvien
( PK_sMaNV varchar(10) Primary key not null,sTenNV nvarchar(30) Unique not null,
fLuong float CHECK(fLuong>=0),
FK_sMaPB varchar(10)
Foreign key(FK_sMaPB) references
tblPhongban(PK_sMaPB)
ON update Cascade
ON delete Cascade
)
Go
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 23
Tạo linked server:
EXEC master.dbo.sp_addlinkedserver
@server = N'SQL_Home',
@provider = N'SQLOLEDB',
@datasrc = N'HOMEXP\SQLexpress',
@srvproduct = ''
go
EXEC sp_linkedservers
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 24
Đăng nhập linked server:
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'SQL_Home',
@useself = N'False',
@locallogin = NULL,
@rmtuser = N'sa',
@rmtpassword = 'sql123'
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 25
Tạo thủ tục thêm một bản ghi mới vào bảng tblPhongban:Create Proc spInsertPhongban(@ma varchar(10),@ten nVarchar(20),@diachi
nVarchar(30))
AS
Begin
-- Kiểm tra tính hợp lệ của dữ liệu nhập
if Exists (Select * from tblPhongban where PK_sMaPB=@ma)
Begin
print N'Mã phòng ban đã có'
return
End
Insert Into tblPhongban Values(@ma,@ten)
Insert Into SQL_Home.QLNhanvien.dbo.tblPhongban Values(@ma,@diachi)
print N'Thêm thành công'
End
Exec spInsertPhongban 'PGD',N'Phòng giám đốc',N„Hà Nội„
Exec spInsertPhongban 'PTH',N'Phòng tổng hợp',N'Nam Định'
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 26
Lấy dữ liệu từ các bảng của 2 server:
Select a.PK_sMaPB,sTenPB,sDiachi from
SQL_Home.QLNhanvien.dbo.tblPhongban a
Inner Join tblPhongban b ON (a.PK_sMaPB =b.PK_sMaPB)
Select * from tblPhongban
Select * from SQL_Home.QLNhanvien.dbo.tblPhongban
Lấy dữ liệu tổng hợp từ 2 bảng trên 2 server SQL:
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 27
Thủ tục thêm dữ liệu bảng nhân viên
Create Proc spInsertNhanvien(@ma varchar(10),@ten nVarchar(20),@luong float,@mapb varchar(10))AS
Begin
-- Kiểm tra tính hợp lệ của dữ liệu nhập (trùng mã> lương>0?)
-- ...
If @luong <1000
Insert Into tblNhanvien Values(@ma,@ten,@luong,@mapb)
Else
Insert Into SQL_Home.QLNhanvien.dbo.tblNhanvien
Values(@ma,@ten,@luong,@mapb)
print N'Thêm thành công'
End
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 28
Thêm 3 nhân viên mới
Exec spInsertNhanvien 'NV001',N'Nguyễn Thế Hùng',1200,'PGD'
Exec spInsertNhanvien 'NV002',N'Nguyễn Thu Hà', 800, 'PGD'
Exec spInsertNhanvien 'NV003',N'Lê Văn Tuấn', 850, 'PTH'
Demo ví dụ
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 29
Sử dụng Union để lấy dữ liệu từ 2 bảng:
Select PK_sMaNV,sTenNV,fLuong,FK_sMaPB
from SQL_Home.QLNhanvien.dbo.tblNhanvien
Union
Select PK_sMaNV,sTenNV,fLuong,FK_sMaPB
from tblNhanvien
Bài tập
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 30
Xây dựng lại cơ sở dữ liệu quản lý nhân viên và bổ sung
các thủ tục, trigger, hàm,… cho các chức năng khác:
• Sửa thông tin nhân viên.
• Xóa phòng ban.
• Truy vấn thông tin từ nhiều bảng trên cả 2 server.
Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 31
Q & A