31
CHƢƠNG 2: THIẾT KẾ CSDL PHÂN TÁN Phạm Công Hòa [email protected] 091.552.9889

Thiết kế nhà đẹp - mau biet thu dep

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

Page 1: Thiết kế nhà đẹp - mau biet thu dep

CHƢƠNG 2: THIẾT KẾ CSDL PHÂN TÁN

Phạm Công Hòa

[email protected]

091.552.9889

Page 2: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 3: Thiết kế nhà đẹp - mau biet thu dep

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

Page 4: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 5: Thiết kế nhà đẹp - mau biet thu dep

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

Page 6: Thiết kế nhà đẹp - mau biet thu dep

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ố

Page 7: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 8: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 9: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 10: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 11: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 12: Thiết kế nhà đẹp - mau biet thu dep

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 = ϕ

Page 13: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 14: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 15: Thiết kế nhà đẹp - mau biet thu dep

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

Page 16: Thiết kế nhà đẹp - mau biet thu dep

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,...

Page 17: Thiết kế nhà đẹp - mau biet thu dep

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

Page 18: Thiết kế nhà đẹp - mau biet thu dep

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>

Page 19: Thiết kế nhà đẹp - mau biet thu dep

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

Page 20: Thiết kế nhà đẹp - mau biet thu dep

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

Page 21: Thiết kế nhà đẹp - mau biet thu dep

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

Page 22: Thiết kế nhà đẹp - mau biet thu dep

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

Page 23: Thiết kế nhà đẹp - mau biet thu dep

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

Page 24: Thiết kế nhà đẹp - mau biet thu dep

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'

Page 25: Thiết kế nhà đẹp - mau biet thu dep

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'

Page 26: Thiết kế nhà đẹp - mau biet thu dep

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:

Page 27: Thiết kế nhà đẹp - mau biet thu dep

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

Page 28: Thiết kế nhà đẹp - mau biet thu dep

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'

Page 29: Thiết kế nhà đẹp - mau biet thu dep

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

Page 30: Thiết kế nhà đẹp - mau biet thu dep

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.

Page 31: Thiết kế nhà đẹp - mau biet thu dep

Hệ quản trị CSDL phân tán – Thiết kế CSDL phân tán 31

Q & A