GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

77
ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH GIÁO TRÌNH MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO NGHỀ: HỆ THỐNG THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG Tháng 9, năm 2020

Transcript of GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Page 1: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

GIÁO TRÌNH

MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO

NGHỀ: HỆ THỐNG THÔNG TIN

TRÌNH ĐỘ: CAO ĐẲNG

Tháng 9, năm 2020

Page 2: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

GIÁO TRÌNH

MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO

NGHỀ: HỆ THỐNG THÔNG TIN

TRÌNH ĐỘ: CAO ĐẲNG

THÔNG TIN CHỦ NHIỆM ĐỀ TÀI

Họ tên: Nguyễn Thị Kim Nga

Học vị: Cử nhân

Đơn vị: Khoa Công Nghệ Thông Tin

Email: [email protected]

TRƯỞNG KHOA TỔ TRƯỞNG

BỘ MÔN

CHỦ NHIỆM

ĐỀ TÀI

HIỆU TRƯỞNG

DUYỆT

Tháng 9, năm 2020

Page 3: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

TUYÊN BỐ BẢN QUYỀN

Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép

dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.

Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh

thiếu lành mạnh sẽ bị nghiêm cấm.

Page 4: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 1

LỜI GIỚI THIỆU

Giáo trình “Cơ sở dữ liệu nâng cao” được biên soạn theo chương trình khung ngành học

Hệ thống thông tin đã được Bộ lao động Thương binh và Xã hội ban hành.

Trong những năm qua, dạy nghề đã có những bước tiến vượt bậc cả về số lượng và chất

lượng, nhằm thực hiện nhiệm vụ đào tạo nguồn nhân lực kỹ thuật trực tiếp đáp ứng nhu

cầu xã hội. Cùng với sự phát triển của khoa học công nghệ trên thế giới, lĩnh vực công

nghệ thông tin nói chung và ngành hệ thống thông tin ở Việt Nam nói riêng đã có những

bước phát triển đáng kể.

Chương trình khung quốc gia nghề hệ thống thông tin đã được xây dựng trên cơ sở phân

tích nghề, phần kỹ thuật nghề được kết cấu theo các môn học, mô đun. Để tạo điều kiện

thuận lợi cho các cơ sở dạy nghề trong quá trình thực hiện, việc biên soạn giáo trình kỹ

thuật nghề theo theo các môn học, môđun đào tạo nghề là cấp thiết hiện nay.

Môn học cơ sở dữ liệu nâng cao là môn học đào tạo nghề được biên soạn theo hình thức

tích hợp lý thuyết và thực hành. Trong quá trình thực hiện, chủ biên đã tham khảo nhiều

tài liệu về cơ sở dữ liệu trong và ngoài nước, kết hợp với kinh nghiệm trong thực tế.

Mặc dầu có rất nhiều cố gắng, nhưng không tránh khỏi những khiếm khuyết, rất mong

nhận được sự đóng góp ý kiến của độc giả để giáo trình được hoàn thiện hơn.

Xin chân thành cảm ơn!

Thành Phố Hồ Chí Minh, ngày 18 tháng 9 năm 2020

Biên soạn

Nguyễn Thị Kim Nga

Page 5: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 2

MỤC LỤC

LỜI GIỚI THIỆU ................................................................................................................ 1

GIÁO TRÌNH MÔN HỌC .................................................................................................. 3

CHƯƠNG 1: MỞ ĐÂU ....................................................................................................... 4

1.1 Các khái niệm cơ sở ............................................................................................................................. 4

1.2 Phân loại cơ sở dữ liệu ........................................................................................................................ 4

1.3 Mô hình hóa dữ liệu ............................................................................................................................. 5

1.4 Hệ quản trị cơ sở dữ liệu .................................................................................................................... 5

CHƯƠNG 2: TỐI ƯU HÓA TRUY VẤN .......................................................................... 9

2.1 Giới thiệu .................................................................................................................................................. 9

2.2 Quá trình thực hiện một câu truy vấn ........................................................................................... 9

2.3 Cây đại số quan hệ .............................................................................................................................. 10

2.4 Quá trình tối ưu .................................................................................................................................... 15

2.5 Thuật toán tối ưu ................................................................................................................................. 15

CHƯƠNG 3: QUẢN TRỊ NGƯỜI DÙNG ....................................................................... 17

3.1 Giới thiệu ................................................................................................................................................ 17

3.2 Tạo tài khoản và người sử dụng ................................................................................................... 18

3.3 Tạo nhóm người dùng ....................................................................................................................... 22

3.4 Phân quyền người dùng trên role ................................................................................................. 23

3.5 Hủy quyền truy cập user .................................................................................................................. 24

CHƯƠNG 4: HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN ............................................................ 26

4.1 Dẫn nhập về kiến trúc client/server và giải pháp cho kiến trúc client/server ........... 26

4.2 Kiến trúc phân tán ............................................................................................................................... 28

4.3 Tổng quan về cơ sở dữ liệu phân tán .......................................................................................... 28

4.4 Thiết kế cơ sở dữ liệu phân tán ..................................................................................................... 31

4.5 Phân mảnh dữ liệu .............................................................................................................................. 32

4.6 Nhân bản dữ liệu ................................................................................................................................. 33

4.7 Cài đặt ...................................................................................................................................................... 34

TÀI LIỆU THAM KHẢO ................................................................................................. 71

MỤC LỤC HÌNH .............................................................................................................. 72

Page 6: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 3

GIÁO TRÌNH MÔN HỌC

Tên môn học: CƠ SỞ DỮ LIỆU NÂNG CAO

Mã môn học: MH3101305

I. Vị trí, tính chất của môn học:

- Vị trí: Là môn học chuyên ngành, bố trí sau khi học xong môn học hệ quản trị cơ sở dữ

liệu, học kỳ 4.

- Tính chất: môn lý thuyết, môn học bắt buộc.

II. Mục tiêu môn học:

- Về kiến thức:

+ Trình bày được các khái niệm cơ bản về cơ sở dữ liệu

+ Trình bày được khái niệm quy trình thực hiện tối ưu hóa truy vấn

+ Trình bày được các khái niệm phân quyền, quản trị người dùng

+ Trình bày được khái niệm về cơ sở dữ liệu phân tán, hệ cơ sở dữ liệu phân tán

+ Phân biệt được cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung

+ Nhận biết các tính chất và đặc điểm của hệ cơ sở dữ liệu phân tán

+ Trình bày được các phương pháp 4phân mảnh dữ liệu, nhân bản dữ liệu, biến đổi truy

vấn toàn cục thành các truy vấn mảnh

-Về kỹ năng:

+ Mô hình hóa cơ sở dữ liệu

+ Biết tối ưu hóa các truy vấn trong cơ sở dữ liệu theo quan hệ 2 ngôi

+ Biết tạo user, gán vào role và login vào hệ thống

+ Biết tạo nhóm để phân quyền và quản trị người dùng trên cơ sở dữ liệu

+ Thiết kế được sơ đồ cơ sơ dữ liệu phân tán

+ Xây dựng truy vấn cơ sơ dữ liệu phân tán

+ Biến đổi truy vấn trong cơ sơ dữ liệu phân tán

- Về năng lực tự chủ và trách nhiệm:

+ Nhận thức được tầm quan trọng của việc xây dựng cơ sở dữ liệu trong phát triển hệ

thống thông tin

+ Rèn luyện khả năng tự học, tư duy sáng tạo.

Page 7: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 1: Mở đầu

KHOA CÔNG NGHỆ THÔNG TIN 4

CHƯƠNG 1: MỞ ĐÂU

Giới thiệu:

Trong Chương 1 sẽ trình bày các khái niệm cơ bản về cơ sở dữ liệu, các mô hình

lược đồ dữ liệu, công dụng của hệ quản trị cơ sở dữ liệu, cuối cùng là phân loại và so

sánh các hệ quản trị cơ sở dữ liệu phổ biến hiện nay

Mục tiêu:

Trình bày được các khái niệm cơ bản về cơ sở dữ liệu

Trình bày được các mô hình lược đồ dữ liệu

Mô tả công dụng của hệ quản trị cơ sở dữ liệu

Phân loại và so sánh các hệ quản trị cơ sở dữ liệu phổ biến

Nội dung chính:

1.1 Các khái niệm cơ sở

1.1.1 Cơ sở dữ liệu

Một cơ sở dữ liệu (database) là một tập hợp có cấu trúc các dữ liệu tác nghiệp

được lưu trữ lại và được các hệ ứng dụng cụ thể sử dụng.

Ví dụ: ứng dụng quản lý kho hàng, hệ thống đặt chỗ máy bay, quản lý nguồn nhân lực

1.1.2 Hệ cơ sở dữ liệu

Hệ cơ sở dữ liệu (database system) là một hệ thống bao gồm 4 thành phần

- Cơ sở dữ liệu hợp nhất:

Cơ sở dữ liệu của hệ có hai tính chất tối thiểu hóa dư thừa và được chia sẻ.

- Những người sử dụng:

Bất kỳ một người nào có nhu cầu truy nhập vào cơ sở dữ liệu, bao gồm người sử

dụng cuối, người viết chương trình ứng dụng và người điều khiển toàn bộ hệ thống hay

còn gọi là người quản trị cơ sở dữ liệu.

- Phần mềm quản trị cơ sở dữ liệu

- Phần cứng:

Bao gồm các thiết bị nhớ thứ cấp được sử dụng để lưu trữ cơ sở dữ liệu

1.2 Phân loại cơ sở dữ liệu

- Cơ sở dữ liệu hướng đối tượng:

Tích hợp khái niệm đối tượng vào hệ quản trị cơ sở dữ liệu như: lớp, kế thừa…

- Cơ sở dữ liệu suy diễn:

Tăng khả năng suy diễn cho hệ quản trị cơ sở dữ liệu

- Cơ sở dữ liệu multimedia:

Page 8: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 1: Mở đầu

KHOA CÔNG NGHỆ THÔNG TIN 5

Tích hợp vào hệ quản trị cơ sở dữ liệu khả năng quản lý văn bản, ảnh, âm thanh,

vidéo…

- Cơ sở dữ liệu phân tán:

Cho phép truy vấn và cập nhật dữ liệu từ các sites phân tán (địa lý)

1.3 Mô hình hóa dữ liệu

Khó tích hợp kiểu dữ liệu mới

Mô hình đơn giản: phân cấp của các liên kết chặt có thể bị bẻ gãy

Không phân biệt giữa các khái niệm khác nhau trong khi mô hình hóa: chỉ có khái

niệm quan hệ

Không mô hình hóa xử lý thông tin

1.4 Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu (database management system) viết tắt DBMS là một hệ

thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ sở

dữ liệu đó. Gồm 4 loại:

- Hệ quản trị cơ sở dữ liệu phân cấp:

Mô hình phân cấp được đưa ra vào những năm 1960, trong mô hình này dữ liệu

được tổ chức thành cấu trúc cây, các nút (node) là tập hợp các thực thể, các cành là các

mối quan hệ giữa hai nút theo mối quan hệ nhất định, cứng nhắc.

Là mô hình dữ liệu trong đó các bản ghi được sắp xếp theo cấ trúc top-down

(tree).

Một con chỉ có một cha , chỉ có một đường truy nhập tới dữ liệu đó trước.

Tập dữ liệu được tổ chức theo cấ u trúc của mô hình dữ liệu phân cấp gọi là cơ sở

dữ liệu phân cấp

Ví dụ:

Hinh 1.1 Mô hinh phân cấp quản lý nhân sự của một công ty

- Hệ quản trị cơ sở dữ liệu mạng:

Phòng ban

Dự án

Người thân Kỹ năng

Nhân viên

Thiết bị

Page 9: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 1: Mở đầu

KHOA CÔNG NGHỆ THÔNG TIN 6

Mô hình mạng được đưa vào cuối những năm 1960. Trong mô hình này dữ liệu

được tổ chức thành một đồ thị có hướng, trong đó các đỉnh là các thực thể, các cung là

quan hệ giữa hai đỉnh, một kiểu bản ghi có thể liên kết với nhiều kiểu bản ghi khác.

Một con có thể có nhều cha, có nhiều đường truy nhập dẫn đến một dữ liệu cho

trước tập dữ liệu được tổ chức theo cấu trúc mô hình dữ liệu mạng gọi là cơ sở dữ liệu

mạng

Ví dụ:

Hinh 1.2 Mô hinh mạng quản lý nhân sự của một công ty

- Hệ quản trị cơ sở dữ liệu quan hệ:

Mô hình này được E.F Codd đưa vào đầu những năm 1970, mô hình này dựa trên

lý thuyết tập hợp và đại số quan hệ. Vì tính chất chặt chẽ của toán học về lý thuyết tập

hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, mềm dẻo và là mô hình thông

dụng nhất hiện nay. Hầu hết các hệ quản trị cơ sở dữ liệu đều tổ chức dữ liệu theo mô

hình dữ liệu quan hệ. Trong đó dữ liệu được tổ chức dưới dạng bảng các phép toán thao

tác trên dữ liệu dựa trên lý thuyết tập hợp của toán học. Tập dữ liệu được tổ chức theo

cấu trúc của mô hình dữ liệu quan hệ gọi là cơ sở dữ liệu quan hệ.

Ví dụ:

Row

Table

Column

Hinh 1.3 Mô hinh quan hệ mô tả dữ liệu bảng

Record (bảng ghi)

Field (trường)

Tuple (bộ)

Attribute (thuộc tính)

Relation

Phòng ban

Dự án

Người thân

Nhân viên

Thiết bị

Page 10: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 1: Mở đầu

KHOA CÔNG NGHỆ THÔNG TIN 7

- Hệ quản trị cơ sở dữ liệu nâng cao:

Là mô hình dữ liệu trong đó các thuộc tính dữ liệu và các phương thức thao tác

trên các thuộc tính đó đều được đóng gói trong các cấu trúc gọi là đối tượng

Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu hướng đối tượng gọi

là cơ sở dữ liệu hướng đối tượng

Ví dụ:

Hinh 1.4 Mô hinh đối tượng quản lý nhân sự của một công ty

Phòng ban

Nhân viên

Thiết bị

Hiển thị

Nhân viên

Nhân viên

Họ tên

Phòng ban

Ngày vào làm

Tính thâm niên

Thiết bị

Tên thiết bị

Phòng ban

Hiển thị ds

Sử dụng TB

NV làm

theo giờ

Số giờ LV

Tính lương

NV làm theo

hợp đồng

Lượng lắm

cổ phần

Tính lương

Page 11: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 1: Mở đầu

KHOA CÔNG NGHỆ THÔNG TIN 8

CÂU HỎI LÝ THUYẾT

Câu hỏi 1: Cơ sở dữ liệu là gì? Một hệ cơ sở dữ liệu gồm những thành phần gì?

Câu hỏi 2: Mô hình hóa dữ liệu là gì? Cho ví dụ một mô hình của cơ sở dữ liệu?

Câu hỏi 3: Trình bày tiêu chuẩn hóa hệ quản trị cơ sở dữ liệu bằng tiếp cận dựa vào các

thành phần

Page 12: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 9

CHƯƠNG 2: TỐI ƯU HÓA TRUY VẤN

Giới thiệu:

Trong Chương 2 sẽ trình bày được các phương pháp tối ưu hóa truy vấn. Sinh

viên biết cách tối ưu hóa truy vấn trong hệ quản trị cơ sở dữ liệu

Mục tiêu:

Trình bày được các phương pháp tối ưu hóa truy vấn

Tối ưu hóa truy vấn trong hệ quản trị cơ sở dữ liệu

Nội dung chính:

2.1 Giới thiệu

2.1.1 Truy vấn

Truy vấn (query) là một biểu thức được biểu diễn bằng một ngôn ngữ

thích hợp và dùng để xác định một phần dữ liệu được chứa trong cơ sở dữ liệu.

Một truy vấn có thể được dùng để xác định ngữ nghĩa của một ứng dụng,

hoặc nó có thể được dùng để xác định công việc can được thực hiện bởi một ứng dụng

nhằm để truy xuất cơ sở dữ liệu.

2.1.2 Tối ưu hóa truy vấn

Tối ưu hóa truy vấn còn được gọi là tối ưu hóa vấn tin là tiến trình lựa chọn kế

họach thực thi câu vấn tin một cách hiệu quả nhất.

Tối ưu hóa truy vấn giúp tốn ít tài nguyên nhất và hồi đáp nhanh nhất.

2.2 Quá trinh thực hiện một câu truy vấn

Quá trình thực hiện một câu truy vấn/ vấn tin gồm 5 bước:

- Bước 1: Kiểm tra ngữ pháp (syntax checking)

Trong bước này, hệ quản trị cơ sở dữ liệu (database management system) viết

tắt là DBMS sẽ kiểm tra ngữ pháp của truy vấn ban đầu (SQL query). Nếu truy vấn bị

sai ngữ pháp thì DBMS sẽ thông báo truy vấn bị sai ngữ pháp và truy vấn này sẽ

không được thực hiện. Nếu truy vấn đúng ngữ pháp (syntactically correct SQL query)

thì DBMS sẽ tiếp tục thực hiện bước 2.

- Bước 2: Kiểm tra sự hợp lệ (validation)

Trong bước này, DBMS sẽ thực hiện các công việc:

+ Kiểm tra sự tồn tại của các đối tượng dữ liệu (các cột, các biến, các bảng, …) của

truy vấn trong cơ sở dữ liệu.

+ Kiểm tra sự hợp lệ về kiểu dữ liệu của các đối tượng dữ liệu (các cột, các biến, vv…)

trong truy vấn.

Page 13: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 10

- Bước 3: Đưa về dạng biểu diễn trong đại số quan hệ

Truy vấn ban đầu được biến đổi thành một biểu thức đại số quan hệ hay còn gọi

là truy vấn đại số quan hệ (relational algebra query)

- Bước 4: Tối ưu hóa biểu thức đại số quan hệ (relational algebra optimization)

Trong bước này DBMS sử dụng các phép biến đổi tương đương của đại số quan

hệ để biến đổi biểu thức đại số quan hệ có được ở bước 3 thành một biểu thức đại số

quan hệ tương đương (theo nghĩa chúng có cùng một kết quả) nhưng biểu thức sau sẽ

hiệu quả hơn: loại bỏ các phép toán không cần thiết và giảm vùng nhớ trung gian. Cuối

bước này, DBMS tạo ra một truy vấn đại số quan hệ đã được tối ưu hoá (optimized

relational algebra query).

- Bước 5: Sinh mã (code genesite)

Viết ra ngôn ngữ chủ của hệ quản trị cơ sở dữ liệu

Ví dụ: Thuật toán cài đặt 3 hàm gồm:

Hàm Projection (x, q, r) -> trả phép chiếu

Hàm Selection (e, q, k) -> trả phép chọn

Hàm Join (s, r, t) -> trả phép nối

2.3 Cây đại số quan hệ

2.3.1 Đại số quan hệ là gi?

Đại số quan hệ (relational algebra) là một bộ các toán tử và quy tắc được sử

dụng để thao tác trên các quan hệ và kết quả trả về là một quan hệ mới. Sau khi Edgar

F. Codd đưa ra mô hình dữ liệu quan hệ vào năm 1970, đại số quan hệ được xem là

nền tảng cho các ngôn ngữ truy vấn dữ liệu nói chung và SQL nói riêng. SQL cung

cấp cú pháp đơn giản nhưng mạnh mẽ, giúp người dùng có được các kết quả mong

muốn mà không cần nêu rõ cách thức để đạt được điều đó như thế nào. Tuy nhiên, với

những vấn đề và yêu cầu mang tính phức tạp, việc viết một câu truy vấn chính xác và

hiệu quả đòi hỏi phải có hiểu biết về cấu trúc dữ liệu và cách thức hoạt động của ngôn

ngữ truy vấn. Vì vậy nắm vững các kiến thức về đại số quan hệ sẽ là nền tảng để việc

tìm hiểu về SQL trở nên dễ dàng hơn.

Các phép toán trong đại số quan hệ có thể được chia thành ba loại: Phép toán

tập hợp, phép chọn và các phép toán mở rộng.

2.3.1.1 Phép toán tập hợp

Bao gồm: Phép hội (set union), phép giao (set intersection), phép hiệu (set

defference) và phép tích (castesian product)

- Phép hội (set union)

Page 14: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 11

Hội hai quan hệ sẽ được một quan hệ mới có các bộ chỉ thuộc một quan hệ.

Các bộ trùng nhau sẽ bị loại đi.

Phép hội được biểu diễn qua biểu thức sau:

R ∪ S = { t │t € R ∨ t € S } Với R và S là 2 quan hệ khả hợp

- Phép giao (set intersection)

Một quan hệ mới chỉ bao gồm các bộ đồng thời thuộc hai qua hệ ban đầu.

Phép giao được biểu diễn qua biểu thức sau:

R ∩ S = { t │t € R ∧ t € S } Với R và S là 2 quan hệ khả giao

- Phép hiệu (set defference)

Phép hiệu trong đại số quan hệ có nét tương đồng với phép hiệu đại số thông

thường.

Phép hiệu của R và S sẽ cho kết quả là một quan hệ bao gồm các bộ chỉ thuộc R

mà không thuộc S nghĩa là quan hệ kết quả chỉ có một bộ duy nhất.

R - S = { t │t € R ∧ t ∉ S } Với R và S là 2 quan hệ khả hiệu

- Phép tích (castesian product)

Một quan hệ mới có số bộ bằng tích số giữa số bộ.

Đây là điều khác biệt giữa phép tích và các phép hội, phép giao và phép hiệu.

Phép tích sẽ làm phát sinh tổ hợp cả về “hai chiều”, điều đó làm nảy sinh

trường hợp tồn tại những bộ trong quan hệ kết quả không mang nhiều ý nghĩa. Do đó

phép tích thường đi kèm với một điều kiện nào đó để loại trừ đi những kết quả không

mong muốn.

R х S = {(a1,..., am, b1,...,bn│(a1,..., am) € R ∧ (b1,...,bn) € S}

2.3.1.2 Phép chọn/cắt ngang (select)

Phép chọn được sử dụng để chọn một tập hợp các bộ thoả mãn điều kiện chọn

từ một quan hệ. Ta có thể xem phép chọn như một bộ lọc, nó chỉ giữ lại các bộ thoả

mãn điều kiện đặt ra.

Phép chọn được ký hiệu là: σ< điều kiện chọn>( R). Trong đó:

+ σ: là ký hiêu phép chọn

+ <Điều kiện chọn>: là một biểu thức lôgic được chỉ ra trên các thuộc tính

của R. Một điều kiện chọn có dạng: <tên thuộc tính> <phép so sánh> <giá trị

hằng>. Trong đó:

<tên thuộc tính>: là tên của một thuộc tính trong R

Page 15: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 12

<phép so sánh>: là một trong các phép toán so sánh {<, <=, =,

>=, >, ≠}

<giá trị hằng>: là một giá trị hằng từ miền giá trị của thuộc tính.

Các hạng mục có thể được nối với nhau bằng các phép toán lô gic

AND, OR, NOT để tạo ra một điều kiện chọn chung

+ R: là một biểu thức đại số quan hệ.

Kết quả của một biểu thức đại số quan hệ là một quan hệ. Quan hệ kết quả của

phép chọn có cùng thuộc tính như R.

Ví dụ: Chọn các bộ NHÂNVIÊN thuộc về đơn vị có mã số là 4 hoặc các bộ

NHÂNVIÊN có lương lớn hơn 3000 ta viết như sau:

σ< Mãsố = 4>( NHÂNVIÊN)

σ< Lương > 3000>( NHÂNVIÊN)

Phép chọn là phép toán một ngôi, nghĩa là nó được áp dụng cho một quan hệ.

Hơn nữa, phép chọn được áp dụng cho từng bộ một cách độc lập, vì vậy, các điều kiện

chọn không thể liên quan đến nhiều bộ. Quan hệ kết quả của phép chọn có cấp giống

như cấp của R. Số các bộ trong quan hệ kết quả luôn luôn nhỏ hơn hoặc bằng số các

bộ trong R.

Phép chọn là một phép toán có tính chất giao hoán, nghĩa là:

σ < Điều kiện 1> (σ< Điều kiện 2>( R)) = σ< Điều kiện 2> (σ< Điều kiện 1>( R))

Hơn nữa ta có thể kết hợp một loạt các phép chọn thành một phép chọn đơn

giản bằng cách sử dụng phép toán AND.

Ví dụ:

σ< Điều kiện 1> (σ< Điều kiện 2>( R)) = σ< Điều kiện 2>AND< Điều kiện 1>( R)

2.3.1.3 Phép chiếu/cắt dọc (project)

Phép chiếu là phép toán chọn một số cột của bảng. Phép chiếu dùng để chiếu

lên các thuộc tính đó.

Phép chiếu được ký hiệu là: π<danh sách các thuộc tính>( R). Trong đó:

+ π: là ký hiệu dùng để biểu diễn phép chiếu

+ <danh sách các thuộc tính>: là một danh sách con các thuộc tính của

quan hệ R.

+ R: là một biểu thức đại số quan hệ.

Kết quả của phép chiếu là một quan hệ chỉ có các thuộc tính nằm trong <danh

sách các thuộc tính> và có cùng thứ tự như thứ tự của chúng có trong danh sách. Phép

Page 16: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 13

chiếu loại bỏ mọi bộ trùng lặp, kết quả của phép chiếu là một tập hợp các bộ và là một

quan hệ đúng đắn.

Phép chiếu không có tính giao hoán, nghĩa là:

π< danh sách1>(π< danh sách2> ( R)) = π< danh sách 1> ( R)

Ví dụ: Chiếu kết quả là một quan hệ NHÂNVIÊN có các thuộc tính MãsốNV, Họđệm,

Tên, địa chỉ, Lương ta viết như sau:

π < MãsốNV, Họđệm,Tên, địa chỉ,Lương>(NHÂNVIÊN)

2.3.1.4 Phép nối (join)

Phép nối được dùng để kết hợp các bộ có liên hệ với nhau từ hai quan hệ thành

một bộ. Phép toán này rất quan trọng đối với cơ sở dữ liệu quan hệ có nhiều bảng bởi

vì nó cho phép ta xử lý các mối liên kết giữa các quan hệ. Dạng tổng quát của phép nối

trên hai quan hệ R (A1, A2,…,An) và S (B1,B2,…, Bm)

Phép nối được ký hiệu là: ⋈ (R)< Điều kiện nối> (S). Trong đó:

+ R, S: là một quan hệ

+ <Điều kiện nối> chỉ ra trên các thuộc tính của hai quan hệ R và S. Một

điều kiện nối tổng quát có dạng: <điều kiện> AND <điều kiện> AND … AND <điều

kiện>. Trong đó:

<điều kiện> có dạng Ai θ Bj, Ai là một thuộc tính của R, Bj là

một thuộc tính của S, Ai và Bj có cùng miền và θ là một trong

các dấu phép toán so sánh {<, <=, =, >=, >, ≠}.

Kết quả của phép nối là một quan hệ Q (A1,A2,…,An, B1,B2,…,Bm) có n+m

thuộc tính. Mỗi bộ của Q là một sự kết nối giữa một bộ của R và một bộ của S khi

chúng thoả mãn điều kiện nối.

Ví dụ: Q = R ⋈ S A θ B

2.3.2 Cây đại số quan hệ

Được sử dụng để biểu diễn một biểu thức đại số quan hệ

Các quan hệ tham gia vào biểu thức là các Node lá

Các phép toán quan hệ là các node của cây và sắp xếp theo thứ tự thực hiện của

chúng

Node gốc là phép chiếu để có kết quả cuối cùng

Ví dụ: Cho các quan hệ sau:

SINHVIEN (MSSV, HOTEN, NAMSINH, PHAI, DIACHI, MSLOP)

Page 17: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 14

LOP (MSLOP, TENLOP)

MONHOC (MSMH, TENMH)

HOC (MSSV, MSMH, DIEM)

Trong đó :

SINHVIEN: chứa thông tin về sinh viên gồm: mã sinh viên (MSSV), họ tên

(HOTEN), năm sinh (NAMSINH), phái (PHAI), địa chỉ (DIACHI), thuộc lớp

(MSLOP). Khóa là MSSV.

LOP: chứa thông tin về lớp học gồm: mã lớp (MSLOP), tên lớp (TENLOP. Khóa là

MSLOP.

MONHOC: chứa thông tin về môn học gồm: mã môn học (MSMH), tên môn học

(TENMH).

HOC: chứa thông tin về sinh viên (MSSV) học môn học (MSMH) có điểm thi cuối Kỳ

(DIEM). Khóa là MSSV và MSMH

Yêu cầu: Lấy ra danh sách những sinh viên của lớp L001 đã học môn cơ sở dữ liệu có

điểm >8

- Bước 2: Giải yêu cầu bằng câu lệnh SQL

Select HOC.MSSV, HOTEN, DIEM

From HOC, SINHVIEN, MONHOC

Where HOC.MSSV = SINHVIEN.MSSVAnd HOC.MSMH = MONHOC.MSMH

And TENMH = ‘cơ sở dữ liệu’And DIEM>8 And MSLOP = ‘L001’

- Bước 3: Giải yêu cầu bằng cây đại số quan hệ

Π (σ TENMH = ‘cơ sở dữ liệu’ ((HOC ⋈ SINHVIEN ⋈ MONHOC)) AND MSLOP = ‘L001’ AND DIEM>8

MSSV, HOTEN, DIEM

- Bước 4: Tối ưu hóa

Π MSSV, HOTEN, DIEM -> PHÉP CHIẾU CUỐI CÙNG

σ TENMH = ‘cơ sở dữ liệu’ AND MSLOP = ‘L001’ AND DIEM > 8

Hinh 2.1 Tối ưu hóa câu truy vấn bằng cây đại số quan hệ

(Diễn giải: HOC, SINHVIEN là 2 node lá kết với nhau)

SINH

VIEN HOC

MON

HOC

Page 18: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 15

2.4 Quá trinh tối ưu

Quá trình tối ưu gồm 2 cách thực hiện:

- Cách 1: Chiến lược tối ưu

Nhằm đạt được tốc độ nhanh, bộ nhớ chiếm dụng ít.

- Cách 2: Chiến thuật tối ưu

Thực hiện các phép toán 1 ngôi trước khi còn có thể sao đó mới thực hiện các

phép toán 2 ngôi (tách gọn quan hệ tham gia vào 2 ngôi thành hàng dọc chỉ giữ lại

những quan hệ cần và hàng ngang cũng vậy hoặc đẩy các phép chọn khi còn có thể,

đẩy các phép chiếu lấy tập hiệu các quan hệ)

Ví dụ

Π MSSV, HOTEN, DIEM -> PHÉP CHIẾU CUỐI CÙNG

⋈ σ TENMH = ‘cơ sở dữ liệu’

Π

σ DIEM > 8 σ MSLOP = ‘L001’

Hinh 2.2 Tối ưu hóa câu truy vấn theo thuật toán 2 ngôi

2.5 Thuật toán tối ưu

Từ Select, from, where ban đầu

Xây dựng cây đại số quan hệ đầu tiên

SQL dựa vào từ khóa Select, From, Where

Sao đó đẩy các phép chọn xuống

Sao đó đẩy các phép chiếu xuống đến khi không đẩy được nữa thì được cây này

là cây tối ưu.

Kết luận: Từ đại số quan hệ viết được cây, từ cây viết lại đại số quan hệ được vì

nó là mối quan hệ 2 chiều

SINH

VIEN HOC

MON

HOC

Page 19: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 2: Tối ưu hóa truy vấn

KHOA CÔNG NGHỆ THÔNG TIN 16

CÂU HỎI LÝ THUYẾT

Câu hỏi 1: Trình bày 5 bước liên tiếp của tầng phân rã vấn tin

Câu hỏi 2: Trình bày các chiến lược tìm kiếm

BÀI TẬP THỰC HÀNH

Bài tập 1: Cho các quan hệ sau:

EMP (ENO, ENAME, TITLE)

PROJ (PNO, PNAME, BUDGET)

PAY (TITLE, SAL)

ASG (ENO, PNO, DUR, RESP)

Xét câu vấn tin như sau:

SELECT ENAME, RESP

FROM EMP, ASG, PROJ

WHERE EMP.ENO = ASG.ENO

AND PNAME = “CAD/CAM”

AND DUR>=36

AND TITLE = “PROGRAMMER”

Yêu cầu: Hãy vẽ đồ thị vấn tin và chỉ ra chổ sai của vấn tin này

Bài tập 2: Cho các quan hệ sau:

EMP (ENO, ENAME, TITLE)

PROJ (PNO, PNAME, BUDGET)

PAY (TITLE, SAL)

ASG (ENO, PNO, DUR, RESP)

Giả sử EMP và ASG được phân mảnh thành

EMPH1 = ENO <= “E3” (EMP)

EMPH2 = σ “E3” < ENO <= “E6” (EMP)

EMPH3 = σ ENO > “E6” (EMP)

ASGH1 = σ ENO <= “E3” (ASG)

ASGH2 = σ ENO > “E3” (ASG)

Xét câu vấn tin nối

SELECT * FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

Yêu cầu: Hãy vẽ cây vấn tin gốc và cây vấn tin rút gọn

Page 20: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 17

CHƯƠNG 3: QUẢN TRỊ NGƯỜI DÙNG

Giới thiệu:

Trình bày được các khái niệm phân quyền, quản trị người dùng. Sinh viên biết

cách tạo được user và nhóm. Đồng thời quản trị được người dùng như: phân quyền sử

dụng và hủy quyền truy cập trên user.

Mục tiêu:

Trình bày được các khái niệm phân quyền, quản trị người dùng

Tạo được user, nhóm

Quản trị người dùng: phân quyền sử dụng và hủy quyền truy cập trên user

Nội dung chính:

3.1 Giới thiệu

3.1.1 Phân quyền là gì?

Phân quyền (permission) là tạo một tài khoản và giới hạn tài khoản đó. Các loại

quyền:

+ Insert: quyền thêm hoặc chèn dữ liệu bảng (table)

+ Update: quyền cập nhật dữ liệu bảng (table)

+ Select: quyền xem dữ liệu bảng (table)

+ Delete: quyền xóa dữ liệu bảng (table)

+ References: quyền tạo ràng buộc tham chiếu bảng (table)

+ Alter: quyền thay đổi định nghĩa bảng

+ All: không trao tất cả quyền trên bảng mà trao các quyền theo chuẩn Ansi-92,

gồm Select, Insert, Update, Delete và References

Ví dụ: Giả sử ta có database QuanLySinhVien, và muốn phân quyền Select, Insert,

Update, Delete trên bảng nhanvien cho người dùng tên là user1

3.1.2 Quản trị người dùng

Quản trị người dùng (administration of users) là giải pháp cho phép các quản trị

viên thiết lập quyền hạn cho người dùng hoặc nhóm người dùng khai thác cơ sở dữ

liệu.

Người dùng hoặc nhóm người dùng sau khi được cấp quyền, có thể đăng nhập

vào hệ thống và thực hiện các quyền hạn mà mình được cấp.

Quản trị người dùng giúp phân quyền người dùng trên cơ sở dữ liệu.

Page 21: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 18

Ví dụ:

User A User B

Đối tượng được cấp (Table, View....)

Quyền được cấp (Insert, Update,

Select, Delete Delete

Hinh 3.1 Phân quyền trên cơ sở dữ liệu

3.2 Tạo tài khoản và người sử dụng

3.2.1 Tạo tài khoản

Mục đích việc tạo tài khoản (login) là để kết nối vào cơ sở dữ liệu (database).

Có 2 bước tạo tài khoản người dùng

- Bước 1: Click chuột phải vào login và chọn new login

Hinh 3.2 Tạo tài khoản SQL Server

- Bước 2: Khai báo tên đăng nhập và click chọn SQL server authentication

QLBH QLSV

Database

Quyền khai thác

Page 22: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 19

Hinh 3.3 Khai báo tạo tài khoản SQL server

3.2.2 Tạo người sử dụng (user)

Trong 1 server có nhiều user, tên user có thể trùng nhau

Trong 1 database có nhiều user, tên user không được trùng nhau

Trong 1 server có nhiều login, tên login khồng được trùng nhau, 1 login chỉ

thuộc 1 user

Có 2 bước tạo user:

- Bước 1: Mở rộng sercurity trên database, click chuột phải vào users và chọn new

users

Page 23: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 20

Hinh 3.4 Tạo người sử dụng

- Bước 2: Khai báo tên sử dụng và click chọn SQL server authentication

Hinh 3.5 Khai báo tạo người sử dụng

3.2.3 Cấp quyền cho người dùng

- Bước 1: Click chuột phải lên bảng (table) hoặc cơ sở dữ liệu (database),

chọn Properties

Page 24: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 21

Hinh 3.6 Cấp quyền cho người dùng

Hinh 3.7 Cấp quyền cho người dùng

- Bước 2: Thiết lập quyền

Page 25: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 22

Hinh 3.8 Thiết lập quyền

3.3 Tạo nhóm người dùng

3.3.1 Khái quát

Nhóm (role) trong SQL server bao gồm một hoặc nhiều user, điều này cũng

tương tự như trong công ty hoặc tổ chức mỗi phòng ban có một hoặc nhiều nhân viên.

Như vậy thay vì chúng ta cấp quyền cho từng user, người quản trị có thể cấp

quyền theo nhóm. Và những user thuộc nhóm quyền nào sẽ có tất cả quyền của nhóm

đó. Do đó, khi người quản trị thực hiện thêm bớt quyền sẽ dễ dàng hơn.

3.3.2 Các bước thực hiện

STT Công dụng Cú pháp

Bước 1 Tạo nhóm Create Role ‘Tên_Nhóm’ hoặc

Sp_AddRole ‘Tên_Nhóm’

Page 26: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 23

Bước 2 Cấp quyền cho nhóm Grant Quyền On Bảng To ‘Tên_Nhóm’

Bước 3 Thêm user vào nhóm Sp_AddRoleMember ‘Tên_Nhóm’,

‘Tên_User’

Ví dụ: Cấp quyền cho nhóm tên Nhanvien có quyền xem dữ liệu trên cơ sở dữ liệu

QuanLyBanHang, trong nhóm này có một user là NV1 ta thực hiện như sau:

Bước 1 Tạo nhóm Create role Nhanvien

Bước 2 Cấp quyền cho nhóm Grant select to Nhanvien

Bước 3 Tạo login tên NV1, mật

khẩu Abc123

Create Login NV1 With Password = ‘Abc123’

Bước 4 Tạo user NV1 sử dụng

login NV1

Create User NV1 For Login NV1

Bước 5 Thêm user NV1 vào

nhóm Nhanvien

Sp_addRoleMember ‘Nhanvien’, ‘NV1’

3.4 Phân quyền người dùng trên role

3.4.1 Mối quan hệ giữa user và role

User nằm trong role cho nên cần phải xóa user trước khi xóa role nhưng cần

kiểm tra xem user có được ánh xạ đến database nào khác ngoài database mặc định ứng

với user lúc được tạo hay không, nếu có thì ta cũng cần phải hủy việc ánh xạ này đi

sau đó nếu cần mới xóa được các login

3.4.2 Áp đặt các quyền cho role

Chức năng Cú pháp

Quyền truy cập đến

database

Exec sp_grantdbaccess ‘tên user’, ‘tên login’

Quyền trên role Grant Select, Update, Insert, Delete on ‘tên Table’ to ‘tên

Role’

Quyền gán các user vào

các role

Exec sp_addrolemember ‘tên Role’ , ‘tên User’

Page 27: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 24

3.5. Hủy quyền truy cập user

STT Công dụng Cú pháp

Bước 1 Khai báo các quyền

cần hủy

Revoke (Deny), Select, Insert, Update, Delete,

References, Alter, All on ‘tên Table’ to ‘tên

Role’

Bước 2 Cho thực thi thủ tục để

hủy quyền

Exec HuyQuyen Select, Insert, Update, Delete,

References, Alter, All ’Tên Role’

Ví dụ: Thu hồi quyền Delete trên bảng nhanvien của người dùng user1, ta thực hiện

như sau:

Revoke Delete on nhanvien to user1

Page 28: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 3: Quản trị người dùng

KHOA CÔNG NGHỆ THÔNG TIN 25

CÂU HỎI LÝ THUYẾT

Câu hỏi 1: Trình bày các loại quyền trong phân quyền

Câu hỏi 2: Hãy nêu các bước thực hiện tạo nhóm người dùng

BÀI TẬP THỰC HÀNH

Bài tập 1:

Giả sử đã có cơ sở dữ liệu QL_VATTU.Sử dụng cơ sở dữ liệu trên thực hiện

các yêu cầu sau:

a) Yêu cầu 1: Tạo user

User1 = Congty; Pass = 123

User2 = Chinhanh; Pass = 456

Sau đó gán quyền truy cập để đăng nhập vào hệ thống

b) Yêu cầu 2: Phân quyền

Nhóm 1: Role tên User. Cho phép cập nhật dữ liệu, không được tạo tài khoản

mới cho hệ thống

Nhóm 2: Role tên Congty. Cho phép xem dữ liệu trên bất kỳ chi nhánh nào

Nhóm 3: Role tên Chinhanh. Cho phép toàn quyền thao tác dữ liệu thuộc chi

nhánh đó

Bài tập 2:

Giả sử trường có cơ sở dữ liệu THI_TN. Sử dụng cơ sở dữ liệu trên thực hiện

các yêu cầu sau:

a) Yêu cầu 1: Tạo user

User1 = Congty; Pass = 123

User2 = Chinhanh; Pass = 456

Sau đó gán quyền truy để đăng nhập vào hệ thống

b) Yêu cầu 2: Phân quyền

Nhóm 1: Role tên Truong. Cho phép xem dữ liệu trên bất kỳ cơ sở nào

Nhóm 2: Role tên Coso_X. Cho phép toàn quyền thao tác dữ liệu thuộc cơ sở

đó

Nhóm 3: Role tên Giangvien. Cho phép cập nhật đề thi

Nhóm 4: Role tên Sinh viên. Cho phép dự thi

Page 29: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 26

CHƯƠNG 4: HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN

Giới thiệu:

Trình bày được khái niệm về cơ sở dữ liệu phân tán, hệ cơ sở dữ liệu phân tán.

Phân biệt được sự khác nhau giữa cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung.

Nhận biết các tính chất và đặc điểm của hệ cơ sở dữ liệu phân tán. Ngoài ra, sinh viên

còn trình bày được các phương pháp phân mảnh dữ liệu, nhân bản dữ liệu, biến đổi

truy vấn toàn cục thành các truy vấn mảnh

Mục tiêu:

Trình bày được khái niệm về cơ sở dữ liệu phân tán, hệ cơ sở dữ liệu phân tán

Phân biệt được cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung

Nhận biết các tính chất và đặc điểm của hệ cơ sở dữ liệu phân tán

Trình bày được các phương pháp phân mảnh dữ liệu, nhân bản dữ liệu, biến đổi

truy vấn toàn cục thành các truy vấn mảnh

Nội dung chính:

4.1 Dẫn nhập về kiến trúc client/server và giải pháp cho kiến trúc client/server

4.1.1 Dẫn nhập về kiến trúc client/server

4.1.1.1 Các khái niệm:

Client: là những ứng dụng chạy trên các máy tính sử dụng các dịch vụ hoặc tài

nguyên mà server có cung cấp. Phụ thuộc vào server về mặt tài nguyên: tập tin, thiết bị

và các xử lý.

Server: là máy chủ hay còn gọi là máy phục vụ. Các máy tính xử lý mạnh phục

vụ cho việc quản lý các tài nguyên: ổ đĩa (file server), máy in (printer server), quản lý

đường truyền mạng (network server) hoặc thực hiện các tính toán back-end khác.

Ngoài ra còn lưu trữ và bảo vệ dữ liệu, xử lý những yêu cầu được gửi đến từ máy

khách

Kiến trúc client/server: là kiến trúc tính toán trong đó các xử lý và dữ liệu được

phân bố trên các máy chủ (server) và máy khách /trạm (client) một cách hợp lý nhằm

khai thác tối đa khả năng của hệ thống và tăng tính bảo mật của dữ liệu trên server.

Kiến trúc mạng làm việc mà trong đó mỗi máy tính hoặc xử lý trên mạng đóng vai trò

như là một máy client hoặc server. Mỗi client hoặc server kết nối vào mạng làm việc

có thể được gọi là một node

4.1.1.2 Các loại kiến trúc client/server

Kiến trúc 1 lớp: client tạo giao diện người dùng, server tính toán chức năng và

quản lý truy cập dữ liệu

Page 30: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 27

Kiến trúc 2 lớp: client tạo giao diện người dùng và tính toán chức năng, server

thực hiện việc truy cập dữ liệu. Kiến trúc 2 lớp phù hợp ở những môi trường nhỏ

Kiến trúc 3: client tạo giao diện người dùng và tính toán chức năng (1), server

tính toán chức năng (2) và quản lý truy cập dữ liệu. Đây là kiến trúc tối ưu nhất

Các bước thực hiện:

STT Chức năng

Bước 1 Tạo giao diện (presentation)

Bước 2 Tính toán chức năng (application processing)

Bước 3 Truy cập dữ liệu (data management)

Ví dụ 1: client tạo giao diện, server tính toán chức năng và truy cập dữ liệu

Server Server

Client

Hinh 4.1 Kiến trúc 1 Client/Server

Ví dụ 2: Client tạo giao diện và tính toán chức năng, Server truy cập dữ liệu

Client Server

Client

Hinh 4.2 Kiến trúc 2 Client/Server

Ví dụ 3: client tạo giao diện và tính toán chức năng (1), server tính toán chức năng (2)

và truy cập dữ liệu. Client Client Server

Client

Hinh 4.3 Kiến trúc 3 Client/Server

Tính

toán

chức

năng

Giao diện Truy

cập dữ

liệu

Tính

toán

chức

năng

Giao diện Truy

cập dữ

liệu

Tính

toán

chức

năng (1)

Giao diện Truy

cập dữ

liệu

Tính

toán

chức

năng (2)

Page 31: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 28

4.1.2 Giải pháp cho kiến trúc client/server

STT Hệ điều hành Hệ quản trị CSDL Công cụ phát triển

Giải pháp Microsoft Window Server SQL Server Visual Studio

Giải pháp Oracle Windows/Linux/Unix Oracle Server Developer 2000

4.2 Kiến trúc phân tán

Phân tán (distributed) là dữ liệu được phân tán trên các site của mạng mục đích

để các dữ liệu phân tán được hợp nhất lại với nhau

Tại sao cần phân tán dữ liệu: mục đích là để đáp ứng với tổ chức phân tán của

các công ty, mục tiêu là đưa dữ liệu đến càng gần người dùng càng tốt.

Kiến trúc phân tán là một tập hợp client/server được kết nối với nhau nhằm chia

sẻ dữ liệu. Một người dùng nối vào hệ thống thì xem như làm việc với một

client/server duy nhất.

4.3 Tổng quan về cơ sở dữ liệu phân tán

4.3.1 Cơ sở dữ liệu phân tán

Cơ sở dữ liệu phân tán (distributed database) là một tập hợp các cơ sở dữ liệu

có quan hệ với nhau về mặt logic và được phân bố trên một mạng máy tính. Để tạo

một cơ sở dữ liệu phân tán các file không chỉ có quan hệ với nhau về mặt logic mà còn

cần có một cấu trúc giao diện chung giữa chúng để các file có thể truy cập lẫn nhau.

Ví dụ:

Xét một ngân hàng có ba chi nhánh nằm ở ba nơi khác nhau. Tại mỗi chi

nhánh, một hệ thống máy tính điều khiển các trạm thu hay rút tiền và quản lý cơ sở dữ

liệu về tài khoản. Mỗi hệ thống này với cơ sở dữ liệu tài khoản cục bộ tạo thành một

site của cơ sở dữ liệu phân tán. Các hệ thống máy tính này được kết nối bởi một mạng

truyền thông.

Với những hoạt động thông thường, các yêu cầu từ các trạm chỉ cần truy xuất

đến cơ sở dữ liệu tại chi nhánh của chúng. Vì thế ứng dụng này được gọi là ứng dụng

cục bộ.

Về mặt kỹ thuật, chúng ta thấy cần có các ứng dụng mà truy xuất dữ liệu đang

đặt ở nhiều nhánh. Các ứng dụng này được gọi là ứng dụng toàn cục hay ứng dụng

phân tán.

Một ứng dụng toàn cục thông thường trong ví dụ trên là việc chuyển tiền từ một

tài khoản này đến tài khoản khác. Ứng dụng này yêu cầu cập nhật cơ sở dữ liệu ở cả

hai nhánh.

Page 32: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 29

Hơn nữa ứng dụng toàn cục giúp cho người sử dụng không phân biệt được dữ

liệu đó cục bộ hay từ xa. Đó là tính trong suốt dữ liệu trong cơ sở dữ liệu phân tán. Và

đương nhiên khi ứng 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.

Ưu điểm

Cho phép quản lý dữ liệu với nhiều mức trong suốt

Tăng độ tin cậy và khả năng sẵn sàng

Cải thiện hiệu năng

Dễ dàng mở rộng

Nhược điểm

Độ phức tạp thiết kế và cài đặt hệ thống tăng

Hệ thống phần cứng cũng phức tạp hơn

Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao

đổi dữ liệu trên mạng

Bảo mật khó khăn

4.3.2 Hệ cơ sở dữ liệu phân tán

Hệ cơ sở dữ liệu phân tán (distributed database system) là hệ thống phần mềm

cho phép quản trị cơ sở dữ liệu phân tán và làm cho sự phân tán đó là trong suốt đối

với người sử dụng. Hệ cơ sở dữ liệu phân tán không đơn thuần bao gồm nhiều file dữ

liệu được tổ chức lưu trữ riêng lẻ trên các thiết bị nhớ của mạng máy tính.

- Kiến trúc hệ cơ sở dữ liệu phân tán:

+ Lược đồ toàn cục:

Định nghĩa tất cả dữ liệu được chứa trong cơ sở dữ liệu phân tán như

trong cơ sở dữ liệu tập trung.

Lược đồ toàn cục bao gồm thông tin về các thực thể, tập các phụ thuộc

hàm và mối quan hệ giữa các thực thể .

Lược đồ toàn cục được định nghĩa chính xác như định nghĩa lược đồ cở

sở dữ liệu tập trung.

+ Lược đồ phân mảnh:

Là ánh xạ giữa quan hệ toàn cục và các phân mảnh. Ánh xạ này là mối

quan hệ một-nhiều.

Page 33: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 30

Các mảnh được chỉ ra bằng tên của quan hệ toàn cục với một chỉ số (chỉ

số phân mảnh)

Các mảnh có thể được cài đặt tại một hay nhiều vị trí khác nhau trên

mạng

+ Lược đồ cấp phát

Chứa thông tin các mảnh được chứa trên những site nào (các mảnh được

chứa ở một hay nhiều site trên mạng).

Các mảnh là các phần logic của một quan hệ tổng thể được định vị vật lý

trên một hay nhiều trạm.

Tất cả các mảnh được liên kết với cùng một quan hệ tổng thể R và được

định vị tại cùng một trạm j cấu thành ảnh vật lý quan hệ tổng thể R tại

trạm j. Do đó ta có thể ánh xạ một-một giữa một ảnh vật lý và một cặp

(quan hệ tổng thể, site). Các ảnh vật lý có thể chỉ ra bằng tên của một

quan hệ tổng thể và một chỉ mục trạm.

+ Lược đồ ánh xạ cục bộ

Ở mức thấp hơn, cần ánh xạ các ảnh vật lý đến các đối tượng được thao

tác bởi các hệ quản trị cơ sở dữ liệu cục bộ. Ánh xạ này được gọi là lược

đồ ánh xạ cục bộ và nó phụ thuộc vào kiểu của hệ quản trị cơ sở dữ liệu

cục bộ; vì thế trong hệ thống không đồng nhất, có nhiều kiểu ánh xạ cục

bộ tại các vị trí khác nhau.

Thực hiện ánh xạ các ảnh vật lý đến các đối tượng được thao tác bởi hệ

quản trị cơ sở dữ liệu địa phương (tất cả các mảnh của một quan hệ tổng

thể trên cùng một trạm tạo ra ảnh vật lý)

Ánh xạ này được gọi là ánh xạ cục bộ, nó phụ thuộc vào kiểu của

DBMS.

4.3.3 Hệ quản trị cơ sở dữ liệu phân tán

Hệ quản trị cơ sở dữ liệu phân tán (distributed database management system) là

hỗ trợ việc tạo và duy trì cơ sở dữ liệu phân tán. Các hệ quản trị cơ sở dữ liệu phân tán

hiện nay được phát triển bởi các nhà sản xuất các hệ quản trị cơ sở dữ liệu tập trung.

Chúng chứa các thành phần bổ sung mở rộng các khả năng của các hệ quản trị cơ sở

dữ liệu tập trung như hỗ trợ sự truyền thông và sự cộng tác giữa các hệ quản trị cơ sở

dữ liệu trên các địa điểm khác nhau qua mạng máy tính.

- Các thành phần cơ bản:

+ Mỗi trạm (site) cài đặt các thành phần hệ thống sau:

+ Thành phần quản trị cơ sở dữ liệu (database management - DM)

Page 34: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 31

+ Thành phần truyền dữ liệu (data communication - DC)

+ Từ điển dữ liệu (data dictionary - DD): thông tin về sự phân tán dữ liệu

trên mạng

+ Thành phần cơ sở dữ liệu phân tán (distributed database – DDB)

- Các dịch vụ hệ quản trị cơ sở dữ liệu phân tán:

+ Dịch vụ truy xuất cơ sở dữ liệu từ xa: tính chất này là một tính chất

quan trọng nhất và được cung cấp bởi tất cả các hệ thống có thành phần cơ sở

dữ liệu phân tán.

+ Mức độ trong suốt của sự phân tán: tính chất này được hỗ trợ bởi các

hệ thống khác nhau vì đó là sự cân bằng các yếu tố để đạt được sự kết hợp tốt

nhất giữa sự trong suốt phân tán và hiệu suất.

+ Hỗ trợ việc quản trị và điều khiển cơ sở dữ liệu: tính chất này bao gồm

các công cụ để giám sát cơ sở dữ liệu, lấy thông tin về việc sử dụng cơ sở dữ

liệu, cung cấp một cái nhìn toàn cục về các file dữ liệu lưu trữ trên các vị trí

khác nhau.

+ Hỗ trợ cho việc điều khiển đồng thời và phục hồi các giao tác phân tán

- Kiến trúc hệ quản trị cơ sở dữ liệu phân tán:

+ Hệ khách/chủ (client/server)

+ Các hệ cơ sở dữ liệu phân tán ngang hàng

+ Các phức hệ cơ sở dữ liệu

4.4 Thiết kế cơ sở dữ liệu phân tán

- Thiết kế từ trên xuống (top/down):

+ Thiết kế lược đồ toàn cục (global schema) cho server ảo

+ Thiết kế lược đồ phân rã (decay schema) thành các lược đồ cục bộ cho

từng server

+ Phân tích các yêu cầu nhằm định nghĩa môi trường hệ thống

+ Thu thập các yêu cầu về dữ liệu và nhu cầu xử lý của các trạm có sử

dụng cơ sở dữ liệu

- Thiết kế từ dưới lên (bottom/up):

+ Dựa trên các hệ client/server có sẵn (lược đồ cục bộ) sẽ tích hợp thành

một lược đồ tổng thể.

+ Chọn một mô hình dữ liệu chung để mô tả lược đồ tổng thể

+ Chuyển mỗi lược đồ địa phương theo mô hình dữ liệu chung đã chọn

+ Tích hợp các lược đồ địa phương vào lược đồ tổng thể

Page 35: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 32

4.5 Phân mảnh dữ liệu

Phân mảnh dữ liệu (data fragmentation) là phân dữ liệu thành những mảnh nhỏ

hơn để chia sẻ dữ liệu, bảo đảm tính đồng nhất dữ liệu. Có 2 loại là phân mảnh ngang

và phân mảnh dọc

4.5.1 Phân mảnh ngang

Phân mảnh ngang (horizontal fragmentation) một quan hệ tổng thể n - bộ R là

tách R thành các quan hệ con n - bộ R1, R2, …, Rk sao cho quan hệ R có thể được

khôi phục lại từ các quan hệ con này bằng phép hợp: R = R1 U R2 U ... U Rk. Có 2

loại gồm: phân mảnh ngang nguyên thủy và phân mảnh ngang dẫn xuất

Lưu ý: Có phân mảnh nguyên thủy mới có phân mảnh dẫn xuất tương ứng.

- Cú pháp: r’ = σ E (r) (bằng r chọn theo điều kiện E)

- Các tính chất của phân mảnh ngang:

+ Tính đầy đủ: r (R) được phân thành N mảnh ngang r1, r2…ri thì

r = Un i=1 ri (i đi từ 1 -> N) (r = phép hội ri)

+ Tính tách biệt: Cho trước quan hệ r (R) được phân thành n mảnh, nếu

thỏa mãn 2 tính đầy đủ và tách biệt thì gọi là phân mảnh ngang bảo tòan thông

tin

∩ r i = Ø

Ví dụ:

Cho quan hệ R = {A1, A2……An}, r là 1 quan hệ trên (R) một phân mảnh

ngang nguyên thủy của r chính là mảnh

Một quan hệ S có trên N – 1 với r sẽ hình thành phân mảnh ngang dẫn xuất

S’= S r’

4.5.1.1 Phân mảnh ngang nguyên thủy

Phân mảnh ngang nguyên thủy (horizontal fragmentation) của một quan hệ

được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ đó

Các quan hệ được chia theo chiều ngang

Là một mảnh dữ liệu được hình thành từ một phép chọn (σ) trên một quan hệ

Ví dụ:

KHACHHANG (MSKH, TENKH, DIACHI, DIENTHOAI, THANHPHO)

Giả sử có mảnh: KHACHHANG - TPHCM = σ (KHACHHANG)

THANHPHO = ‘HCM’

Kết luận: KHACHHANG - TPHCM là một phân mảnh ngang nguyên thủy

Page 36: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 33

4.5.1.2 Phân mảnh ngang dẫn xuất

Phân mảnh ngang dẫn xuất (derived horizontal fragmentation) của một quan hệ

được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ khác. Như vậy, trong

phân mảnh ngang tập các vị từ đóng một vai trò quan trọng.

Có mối quan hệ 1-N, là phép kết nữa giữa quan hệ với N và quan hệ với 1 đã

được phân mảnh ngang

Diễn giải: phép kết nữa là xác định các bộ kết được

Ví dụ:

GIAODICH (SOGD, NGAY, LOAIGD, HOTEN, MAKH)

Nhận xét: Đây là mối quan hệ (1-N)

GIAODICH - TPHCM = GIAODICH KHACHHANG - TPHCM

4.5.2 Phân mảnh dọc

Phân mảnh dọc (vertical fragmentation) một quan hệ tổng thể n - bộ R là tách R

thành các quan hệ con R1, R2, ..., Rk sao cho quan hệ R có thể được khôi phục lại từ

các quan hệ con này bằng phép nối: R = R1 R2..., Rk

Các quan hệ được chia theo chiều dọc.

Là một mảnh dữ liệu hình thành từ một phép chiếu (Π ) một quan hệ xuống tập

thuộc tính X.

Ví dụ:

GIAODICH (SOGD, NGAY, LOAI, SOTIEN, MSKH)

GIAODICH 1 = Π SOGD, NGAY, SOTIEN, MSKH (GIAODICH)

GIAODICH 2 = Π SOGD, LOAI (GIAODICH)

- Tính chất của phân mảnh dọc: một quan hệ r thành m mảnh r1, r2…rm thỏa

tính chất đầy đủ và tách biệt (chấp nhận việc trùng khóa chính) thì r = ri (i chạy từ

0 đến 1) (r bằng phép kết ri)

4.6. Nhân bản dữ liệu

Nhân bản dữ liệu (replication) là đưa dữ liệu đến gần người sử dụng một mảnh

dữ liệu có thể được nhân thành nhiều bảng và được đặt ở nhiều Server khác nhau. Vấn

đề là phải đồng bộ dữ liệu (data synchronization) được các bảng với nhau. Có 3 cách

đồng bộ dữ liệu là: đồng bộ giao dịch, đồng bộ hỗn hợp, đồng bộ hóa ảnh chụp.

- Cách 1: đồng bộ giao dịch (transactional synchronization): là loại đồng bộ bắt

đầu với một bản chụp của các đối tượng cơ sở dữ liệu cũng như dữ liệu, sau đó những

thay đổi dữ liệu tiếp theo chỉ được cập nhật một chiều từ Publisher đến Subscriber.

Page 37: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 34

- Cách 2: đồng bộ hỗn hợp (merge synchronization): tương tự như

Transactional replication, thường bắt đầu với một bản chụp của các đối tượng cơ sở dữ

liệu và dữ liệu, sau đó những thay đổi dữ liệu tiếp theo được cập nhật hai chiều từ

Publisher đến Subscriber và ngược lại.

- Cách 3: đồng bộ hóa ảnh chụp (snapshot synchronization): giúp sao chép dữ

liệu tại một thời điểm và không theo dõi các bản cập nhật dữ liệu tiếp theo. Khi đồng

bộ hóa xảy ra, toàn bộ ảnh chụp được tạo ra và gửi đến các Subscriber một lần duy

nhất.

4.7 Cài đặt

4.7.1 Giới thiệu về SQL server

Microsoft SQL server là một hệ quản trị cơ sở dữ liệu quan hệ (relational

database management system- RDBMS) do Microsoft phát triển. SQL server là một

hệ quản trị cơ sở dữ liệu quan hệ mạng máy tính hoạt động theo mô hình khách chủ

cho phép đồng thời cùng lúc có nhiều người dùng truy xuất đến dữ liệu, quản lý việc

truy nhập hợp lệ và các quyền hạn của từng người dùng trên mạng.

- SQL có các phiên bản và tính năng của từng phiên bản như sau:

+ Enterprise: bản cao cấp nhất với đầy đủ tính năng.

+ Standard: ít tính năng hơn enterprise, sử dụng khi không cần dùng tới

các tính năng nâng cao.

+ Workgroup: phù hợp cho các công ty lớn với nhiều văn phòng làm

việc từ xa. Web - thiết kế riêng cho các ứng dụng web.

+ Developer: tương tự như enterprise nhưng chỉ cấp quyền cho một

người dùng duy nhất để phát triển, thử nghiệm, demo. Có thể dễ dàng nâng cấp

lên bản enterprise mà không cần cài lại.

+ Express: bản này chỉ dùng ở mức độ đơn giản, tối đa 1 CPU và bộ nhớ

1GB, kích thước tối đa của cơ sở dữ liệu là 10GB.

+ Compact: nhúng miễn phí vào các môi trường phát triển ứng dụng

web. Kích thước tối đa của cơ sở dữ liệu là 4GB.

+ Datacenter: thay đổi lớn trên SQL server 2008 R2 chính là bản

datacenter edition. Không giới hạn bộ nhớ và hỗ trợ hơn 25 bản cài.

+ Business Intelligence - Business Intelligence Edition: phiên bản này có

các tính năng của bản standard và hỗ trợ một số tính năng nâng cao về BI như

power view và power pivot nhưng không hỗ trợ những tính năng nâng cao về

mức độ sẵn sàng như always on availability groups…

+ Enterprise Evaluation - bản SQL Server Evaluation Edition: là lựa

chọn tuyệt vời để dùng được mọi tính năng và có được bản cài miễn phí của

Page 38: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 35

SQL server để học tập và phát triển. Phiên bản này có thời gian hết hạn là 6

tháng từ ngày cài đặt.

- Ví dụ: SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL

Server 2016

4.7.2 Hướng dẫn cài đặt

Yêu cầu phần cứng

CPU: Tối thiểu 2GHZ

RAM: 4GB

Đĩa cứng: tối thiểu 6GB còn trống

Yêu cầu phần mềm Microsoft SQL Server Evaluation: vì có hỗ trợ dịch vụ

SQL server agent là dịch vụ phân tán cơ sở dữ liệu

Cách cài đặt Lần lượt cài đặt chạy 3 lần file sa, chia ra 3 Server con với

tên là: server 1, server 2, server 3 hoặc tên tùy chọn khác

4.7.3 Hướng dẫn phân tán cơ sở dữ liệu trên SQL Server

STT Mục đích

Bước 1: Chuẩn bị Để chứa các dữ liệu trao đổi trong quá trình update dữ liệu

từ các phân mảnh (server con) về cơ sở dữ liệu gốc (server

gốc), và từ cơ sở dữ liệu gốc (server gốc) đến các phân

mảnh (server con). Trong bước này hệ thống sẽ tự động

tạo database tên là distribution: chứa những dữ liệu mà

khi cấu hình SQL server chứa phân mảnh và chứa database

hệ thống để hổ trợ quá trình phân tán cơ sở dữ liệu

Bước 2: Cấu hình

(configure) server

gốc

Cấu hình sơ sở dữ liệu phân tán

Bước 3: Tạo

publication

Chứa lược đồ phân mảnh.

Lược đồ phân mảnh là thể hiện mối quan hệ dữ liệu giữa

các table khi chúng ta phân tán dữ liệu

Mở dịch vụ SQL server agent nhằm đồng bộ hóa dữ liệu

các server với nhau thì mới phân tán được dữ liệu

Bước 4: Tạo

subcription

Chỉ định server nào sẽ chứa publication nghĩa là chứa dữ

liệu phân tán

Page 39: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 36

4.7.4 Minh họa phân tán cơ sở dữ liệu Quản lý vật tư

- Bước 1: Chuẩn bị:

Tạo 1 thư mục (folder) trong ổ đĩa D tên là ReplData. Thư mục này là 1

snapshot folder, nhiệm vụ là chia sẻ (shared) folder trong windows, cho phép các users

được quyền read/write. Right click trên folder REPLDATA, chọn properties, chọn tab

sharing – share

Hinh 4.4 Tạo thư mục ReplData

Hinh 4.5 Chia sẻ ReplData

Page 40: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 37

Chọn vào dấu tick chọn everyone, sau đó click add, và chọn quyền read/write

như trong hình. Cuối cùng, click nút lệnh share

Hinh 4.6 Add người dùng và chọn quyền

Hinh 4.7 Share replData thành công

- Bước 2: Configure serve gốc

Click phải chuột vào thư mục replication và chọn configure distribution, sau đó

chọn next

Page 41: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 38

Hinh 4.8 Tạo cấu hinh distribution

Tiếp tục copy đường dẫn ở bước 1snapshot folder vào/ next như hình

Hinh 4.9 Copy đường dẫn napshot

Page 42: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 39

Tạo tự động database distribution như hình

Hinh 4.10 Tạo database tên distribution

Tiếp tục next để cấu hình

Hinh 4.11 Thiết lập cấu hinh tiếp distribution

Page 43: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 40

Tiếp tục cấu hình distribution cho đến khi success

Hinh 4.12 Cấu hinh distribution thành công

Vào database hệ thống tiến hành kiểm tra xem có distribution không

Hinh 4.13 Cấu hinh distribution thành công

Page 44: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 41

Trường hợp muốn cấu hình lại ta click phải chuột replication và chọn disable

publising and distribution (hủy cấu hình củ và cấu hình mới lại)

Hinh 4.14 Cấu hinh distribution thành công

-Bước 3: Tạo publications

Mở rộng thư mục replication và click phải chuột vào thư mục local publications

và chọn click new publication.

Page 45: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 42

Hinh 4.155 Cấu hinh distribution thành công

Chọn database muốn làm lược đồ phân mảnh là quanlyvattu và tiếp tục next

Hinh 4.166 Chọn database để publication

Tiếp tục next, và chọn merge pubication như hình

Page 46: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 43

Hinh 4.17 Chọn loại thiết kế publication

Chọn phiên bản thiết kế lược đồ phân mảnh, tiếp tục chọn next

Hinh 4.18 Chọn phiên bản thiết kế publication

Bước kế tiếp ta chọn dữ liệu phân tán, có 4 loại dữ liệu phân tán là table, view,

udf, store procedure. Ở ví dụ này ta phân tán dữ liệu table

Page 47: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 44

Hinh 7 Chọn phân tán dữ liệu table

Chọn Add Filter, chọn CHINHANH và đưa điều kiện phân tán vào

Hinh 8.20 Tạo lược đồ phân tán các table

Page 48: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 45

Hinh 9 Phân tán dữ liệu table CHI NHANH

Click OK, để thoát ra ngoài.

Sau đó, ta chọn CHINHANH, chọn Add, Add Join to Extend the Selected Filter

để chọn NHANVIEN là quan hệ dẫn xuất theo CHINHANH như hình sau:

Hinh 4.22 Phân tán table phân mảnh ngang dẫn xuất

Page 49: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 46

Hinh 4.23 Phân tán dữ liệu table NHANVIEN

Hinh 4.24 Kết quả phân tán dữ liệu table NHANVIEN

Page 50: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 47

Tương tự, ta tạo phân mảnh ngang KHO

Hinh 4.25 Phân tán dữ liệu table KHO

Click OK để qua bước kế, và tiếp tục phân tán dữ liệu các table PHATSINH,

CT_PHATSINH theo KHO

Hinh 10 Phân tán dữ liệu table PHATSINH

Page 51: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 48

Tiếp tục phân tán dữ liệu CT_PHATSINH theo PHATSINH

Hinh 11 Phân tán dữ liệu table CT_PHATSINH

Ta được lược đồ phân mảnh cơ sở dữ liệu QUANLYVATTU

Hinh 128 Lược đồ phân mảnh cơ sờ dữ liệu QUANLYVATTU

Page 52: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 49

Next/ tạo snapshot agent lưu trữ dữ liệu phân tán

Hinh 13 Tạo napshot agent lưu trữ

Cấu hình hệ thống bảo mật snapshot agent, login: sa, pass: 123456

Hinh 1430 Khai báo tài khoản server gốc

Page 53: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 50

OK, tiếp tục ta được như hình sau:

Hinh 15 Tiếp tục tạo publication

Tiếp tục cấu hình và đặt tên lược đồ phân mảnh cho các chi nhánh

Hinh 16 Đặt tên cho publication

Page 54: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 51

Kiểm tra vào local publication/ click phải chuột

QUANLYVATTU|_CN1/properties/ chọn filter row/ kiểm tra và xem lại lược đồ phân

mảnh đã tạo

Hinh 17 Kiểm tra lại publication đã tạo

Hinh 18 Xem lại thiết kế publication

Page 55: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 52

Click phải chuột chọn view snapshot agent status để xem trạng thái của snapshot

agent

+ Start: Cho snapshot agent hoạt động

+ Monitor: mở window theo dõi quá trình đồng bộ dữ liệu.

Hinh 19 Trạng thái hoạt động snapshot agent

- Bước 4: Tạo subscription:

Click phải chuột trên 1 publication, chọn new subscriptions. Ở đây, ta đã có 1

publication là QUANLYVATTU_CN1

Hinh 4.36 Tạo 1 subscription

Page 56: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 53

Chọn next/ Chọn publication cần đưa về server con

Hinh 20 Pubication tạo subscription

Hinh 21 Thiết lập cấu hinh tạo 1 subscription

Page 57: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 54

Click chọn nút lệnh Add SQL Server Subcriber để chỉ định 1 server làm nơi

chứa cơ sở dữ liệu phân tán. Sau đó, ta chỉ định tiếp 1 cơ sở dữ liệu làm nơi chứa các

article (nên là 1 cơ sở dữ liệu mới)

Hinh 22 Chỉ định server chứa publication

Hinh 4.40 Server CNKLZCW4RWBTZ\NGA1 chứa publication

Page 58: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 55

Hinh 4.41 Chỉ định database chứa pulication sau khi phân tán

Hinh 4.42 Database QUANLYVATTU sau khi phân tán

Tiếp tục next ta được như hình sau:

Page 59: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 56

Hinh 4.4323 Dữ liệu server gốc được đẩy phân tán sang server con

Hinh 4.44 Cấu hinh từ server gốc sang server con

Bấm vào biểu tượng ta tiếp tục như hình sau:

Page 60: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 57

Hinh 4.45 Khai báo tài khoản server gốc sang server con

Tiếp tục Next/ Chọn run continuously để đồng bộ hóa dữ liệu (các thao tác như

thêm, xóa , sửa…) từ server gốc đến server con

Hinh 4.46 Đồng bộ hóa dữ liệu server gốc sang server con

Page 61: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 58

Hinh 4.47 Đồng bộ hóa dữ liệu Immediately

Hinh 4.48 Đồng bộ hóa dữ liệu server

Page 62: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 59

Hinh 4.49 Cấu hinh tạo 1 subscription

Hinh 24 Kết quả 1 subscription

Page 63: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 60

Hinh 4.51 Kiểm tra database server con

Tương tự ở server con NGA 2 cũng thực hiện tạo 1 subcrition các bước như ở

server con NGA 1

4.7.5 Link Server

Link server là phương thức kết nối từ SQL server này đến database của các

server khác qua tập lệnh DML. Nó giúp việc truy vấn hoặc cập nhật dữ liệu từ một

server ở xa ngay trên SQL server của máy mình rất thuận tiện.

- Các loại server:

STT Công dụng Ví dụ

Local server Cài máy nào thì chạy máy đó Laptop, máy tính điện tử

Remote server Điều khiển từ xa giữa 2 máy Chương trình Teamview

Page 64: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 61

Link sever Truy xuất dữ liệu, thao tác dữ liệu

Cú pháp: sp_addlinkedserver @server =

’LINK2’, @srvproduct=’’, @provider =

’SQLOLEDB’, @datasrc=’QUANLYVATTU’

Sao chép dữ liệu từ một

database trong server

local vào 1 database trong

một server ở xa

4.7.5.1 Minh họa tạo 1 Link Server

Giả sử tạo 1 Link Server từ server NGA1 đến server NGA2.

- Bước 1: tạo 1 remote log in (tên HTKN) ở server NGA2

Tại server NGA2 ta mở rộng security, click phải chuột login/chọn new login

Hinh 4.52 Tạo log in HTKN

Qua tab server role chọn quyền public

Page 65: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 62

Hinh 4.53 Tạo log in HTKN

OK, và tiếp tục thiết lập quyền trong tab user mapping như hình bên dưới:

Hinh 4.54 Tạo log in HTKN

OK, và tiếp tục thiết lập quyền trong tab status như hình bên dưới:

Page 66: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 63

Hinh 25 Thiết lập quyền trong status

OK, và quay trở lại server NGA 2 kiểm tra trong log in xem đã có user HTKN

Hinh 26 Thiết lập quyền trong status

Page 67: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 64

- Bước 2: Tạo 1 Link server (tên LINK) từ server NGA1 đến server NGA2

Tại server NGA1, vào server objects, click chuột phải chọn linked servers/ new

linked servers/ đặt tên là LINK và copy đường dẫn ở server NGA2 như hình:

Hinh 4.57 Tạo 1 Link server

Qua tab security, ta chọn be made using this security context, và khai báo

remote login tên là: HTKN, pass: 123456 như hình sau:

Hinh 4.58 Thiết lập khai báo HTKN trong security

Page 68: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 65

OK, qua tab server options, thiết lập giá trị true, false như hình bên dưới:

Hinh 4.5927 Thiết lập khai báo HTKN trong security

Quay trở lại server NGA1 kiểm tra lần nữa xem thiết lập thành công LINK

server chưa, như hình sau:

Hinh 4.60 Thiết lập khai báo HTKN trong security

Page 69: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 66

Tương tự để tạo LINK server từ server NGA2 qua server NGA 1, cũng thực

hiện 2 bước như minh họa.

4.7.5.2 Truy xuất dữ liệu trong Link Server

Cú pháp: SELECT * FROM LINK.DB.dbo.Table

Trong đó:

+ LINK: tên link server đã tạo

+ DB: tên database cần truy xuất

+ Data Base Objects: đối tượng cơ sở dữ liệu.

+ Table: tên table cần truy xuất

Ví dụ: Truy xuất dữ liệu từ Server NGA1 qua Server NGA2

+ Tại Server NGA1, ta tạo 1 new query, thực hiện câu truy vấn như sau:

Select * from LINK.QUANLYVATTU.dbo.NHANVIEN

+ Execute, ta có kết quả như sau:

Hinh 4.61 LINK truy xuất dữ liệu

4.7.5.3 Store procedure

Store procedure là tập hợp 1 dãy lệnh của SQL chứa trong SQL Server dưới

một tên nào đó và được xử lý như một đơn vị và được lưu trữ trên Database Server.

Khi một câu lệnh gọi chạy stored procedure lần đầu tiên thì SQL Server sẽ chạy nó và

lưu trữ vào bộ nhớ đệm, gọi là plan cache, những lần tiếp theo SQL Server sẽ sử dụng

lại plan cache nên sẽ cho tốc độ xử lý tối ưu

Stored procedure rất tiện lợi cho người quản trị database (DBA), nó giúp DBA

tạo ra những nhóm câu lệnh và gửi đến một bô phận khác mà họ sẽ không cần quan

tâm đến nội dung bên trong stored procedure có gì, họ chỉ quan tâm đến tham số đầu

vào và đầu ra

Ngoài ra, Store procedure còn hỗ trợ tính trong suốt phân tán. Điều kiện để

trong suốt dữ liệu trong phân tán thì tên server phải giống nhau.

- Cú pháp:

CREATE {PROCEDURE | PROC} [schema_name] procedure_name

[ @parameter [type_schema_name.] datatype

Page 70: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 67

[VARYING] [ = default] [ OUT | OUTPUT | READONLY]

, @parameter [type_schema_name.] datatype

[VARYING] [ = default] [ OUT | OUTPUT | READONLY]

[WITH {ENCRYPTION | RECOMPILE | EXECUTE AS Clause}]

[ FOR REPLICATION]

AS

BEGIN

[declaration_section]

executable_section

END;

- Trong đó:

+ schema_name: Tên schema (lược đồ) sở hữu procedure.

+ procedure_name: Tên gán cho procedure

+ @parameter: Một hay nhiều tham số được truyền vào hàm.

+ type_schema_name: Kiểu dữ liệu của schema (nếu có).

+ Datatype: Kiểu dữ liệu cho @parameter.

+ Default: Giá trị mặc định gán cho @parameter.

+ OUT/OUTPUT: @parameter là một tham số đầu ra

+ READONLY: @parameter không thể bị procedure ghi đè lên.

+ ENCRYPTION: Mã nguồn (source) của procedure sẽ không được lưu

trữ dưới dạng text trong hệ thống.

+ RECOMPILE: Truy vấn sẽ không được lưu ở bộ nhớ đệm (cache) cho

thủ tục này.

+ EXECUTE AS clause: Xác định ngữ cảnh bảo mật để thực thi thủ tục.

+FOR REPLICATION: Procedure đã lưu sẽ chỉ được thực thi trong quá

trình replication (nhân bản).

- Cách tạo Store procedure trong SQL:

Vào server gốc/ chọn vào database cần thực hiện / programmability/

store procedures /new store procedurescrecrecre

Page 71: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 68

Hình 4.6.2 Cách tạo 1 Store Procedure

Ví dụ: Viết 1 Store Procedure tên DS_LOP sao cho khi chạy Store Procedure này

trên 1 Server bất kỳ, nó đều hiển danh sách lớp của trường.

CREATE PROCEDURE SP_DSLOP

AS

SELECT MALOP, TENLOP FROM DBO.LOP

UNION

SELECT MALOP, TENLOP FROM LINK1.QLDSV.DBO.LOP

Page 72: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 69

CÂU HỎI LÝ THUYẾT

Câu hỏi 1: Định nghĩa phân mảnh ngang nguyên thủy, các mảnh nguyên thủy có cần

thêm trường khóa không?

Câu hỏi 2: Cho lược đồ phổ quát :

R (a, b): b có giá trị nguyên trong đoạn [1,5]

S (a, c): c có giá trị nguyên trong đoạn [1,3]

Ri = b=i (R)

Sij = c=j (S) Ri

Cho biết tổng số phân mảnh?

Câu hỏi 3: Trình bày quá trình chuyển câu truy vấn toàn cục thành câu truy vấn dựa

trên các phân mảnh?

Câu hỏi 4: Liệt kê tên nhân viên, chuyên môn và vai trò của họ khi tham gia Công

trình có mã là ‘P1218’. Biết rằng Công trình này do một công ty ở vùng Biển đảo phụ

trách.

a) Viết câu lệnh SQL dưới dạng lược đồ toàn cục.

b) Chuyển câu SQL ở câu a thành cây truy vân dưới dạng đại số quan hệ.

c) Chuyển cây truy vấn ở câu b dưới dạng cây truy vấn phân mảnh tối giản.

d) Hãy thiết kế phân mảnh dọc hỗn hợp tương ứng với các phân mảnh ởcâu c

BÀI TẬP THỰC HÀNH

Bài tập 1:

Giả sử đã có cơ sở dữ liệu QL_VATTU trong Serer mặc định. Giả sử công ty

có 2 chi nhánh: chi nhánh 1 (CN1) và chi nhánh 2 (CN2) .

a) Yêu cầu 1: Phân tán cơ sở dữ liệu QL_VATTU ra làm 2 mảnh với điều kiện

sau:

QL_VATTU được đặt trên Server 1: chứa thông tin của các vật tư thuộcchi

nhánh 1

QL_VATTU được đặt trên Server 2: chứa thông tin của các vật tư thuộcchi

nhánh 2

b) Yêu cầu 2: Viết 1 Store Procedure để in ra các phiếu xuất do nhân viên có

mã số @MANV đã lập trong ngày @ngay

c) Yêu cầu 3: Viết 1 Store Procedure để xóa các phiếu nhập do nhân viên có mã

số @MANV đã lập trong ngày @ngay

Page 73: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

Chương 4: Hệ cơ sở dữ liệu phân tán

KHOA CÔNG NGHỆ THÔNG TIN 70

d) Yêu cầu 4: Hãy cho biết cách tạo Link Server như thế nào để đảm bảo tính

“trong suốt” khi gọi 1 View trong cơ sở dữ liệu phân tán.

e) Yêu cầu 5: Sử dụng Link server in ra danh sách các vật tư của chi nhánh 1

đang đặt ở Server 2

Bài tập 2:

Giả sử đã có cơ sở dữ liệu QL_SINHVIEN trong Serer mặc định. Giả sử trường

có 2 khoa chính: công nghệ thông tin (CNTT) và viễn thông (VT)

a) Yêu cầu 1: Phân tán cơ sở dữ liệu QL_SINHVIEN ra làm 2 mảnh với điều

kiện sau:

QL_SINHVIEN được đặt trên Server 1: chứa thông tin của các sinh viên thuộc

khoa công nghệ thông tin

QL_SINHVIEN được đặt trên Server 2: chứa thông tin của các sinh viên thuộc

khoa viễn thông

Biết rằng 1 sinh viên chỉ có thể thuộc 1 khoa

b) Yêu cầu 2: Viết 1 Store Procedure tên DS_LOP sao cho khi chạy Store

Procedure này trên 1 Server bất kỳ, nó đều hiển danh sách lớp của trường.

c) Yêu cầu 3: Hãy in ra tên lớp và tên khoa, ho, ten của 1 sinh viên có mã số là

@X (Store Procedure có tên sp_TimSV)

d) Yêu cầu 4: Viết 1 Store Procedure cho phép sửa họ của 1 sinh viên là @X,

biết rằng ta chưa rõ sinh viên này thuộc khoa nào

e) Yêu cầu 5: Viết 1 Store Procedure để xóa 1 sinh viên có mã số @X

f) Yêu cầu 6: Hãy cho biết cách tạo Link Server như thế nào để đảm bảo tính

“trong suốt” khi gọi 1 Stored Procedure trong cơ sở dữ liệu phân tán.

g) Yêu cầu7: Sử dụng Link server in ra danh sách lớp của khoa viễn thông đang

đặt ở Server 1

Page 74: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 71

TÀI LIỆU THAM KHẢO

1. Đỗ Thị Minh Phụng, Giáo trình hệ quản trị CSDL SQL Server, Đại học Quốc gia

TP.HCM, 2005.

2. Lê Văn Phùng, Cơ Sở Dữ Liệu Quan Hệ Và Công Nghệ Phân Tích Thiết Kế, Thông

Tin Truyền Thông, 2010

3. Nguyễn Kim Anh, Nguyên Lý Của Các Hệ Cơ Sở Dữ Liệu, Đại Học Quốc Gia, 2009

4. Phạm Thế Quế, Giáo trình cơ sở dữ liệu phân tán, Thông Tin Truyền Thông, 2010

Page 75: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 72

MỤC LỤC HÌNH

Hình 1.1 Mô hình phân cấp quản lý nhân sự của một công ty ............................................ 5

Hình 1.2 Mô hình mạng quản lý nhân sự của một công ty ................................................. 6

Hình 1.3 Mô hình quan hệ mô tả dữ liệu bảng .................................................................... 6

Hình 1.4 Mô hình đối tượng quản lý nhân sự của một công ............................................... 7

Hình 2.1 Tối ưu hóa câu truy vấn bằng cây đại số quan hệ ............................................ 144

Hình 2.2 Tối ưu hóa câu truy vấn theo thuật toán 2 ngôi .............................................. 1515

Hình 3.1 Phân quyền trên cơ sở dữ liệu ............................................................................ 18

Hình 3.2 Tạo tài khoản SQL Server .................................................................................. 18

Hình 3.3 Khai báo tạo tài khoản SQL server .................................................................... 19

Hình 3.4 Tạo người sử dụng .............................................................................................. 20

Hình 3.5 Khai báo tạo người sử dụng................................................................................ 20

Hình 3.6 Cấp quyền cho người dùng ............................................................................... 211

Hình 3.7 Cấp quyền cho người dùng ............................................................................... 211

Hình 3.8 Thiết lập quyền ................................................................................................. 222

Hình 4.1 Kiến trúc 1 Client/Server .................................................................................... 27

Hình 4.2 Kiến trúc 2 Client/Server .................................................................................... 27

Hình 4.3 Kiến trúc 3 Client/Server .................................................................................... 27

Hình 4.4 Tạo thư mục ReplData ........................................................................................ 36

Hình 4.5 Chia sẻ ReplData ................................................................................................ 36

Hình 4.6 Add người dùng và chọn quyền ......................................................................... 37

Hình 4.7 Share replData thành công.................................................................................. 37

Hình 4.8 Tạo cấu hình distribution .................................................................................... 38

Hình 4.9 Copy đường dẫn napshot .................................................................................... 38

Hình 4.10 Tạo database tên distribution ............................................................................ 39

Hình 4.11 Thiết lập cấu hình tiếp distribution ................................................................... 39

Hình 4.12 Cấu hình distribution thành công ..................................................................... 40

Hình 4.13 Cấu hình distribution thành công ..................................................................... 40

Hình 4.14 Cấu hình distribution thành công ..................................................................... 41

Hình 4.15 Cấu hình distribution thành công ..................................................................... 42

Hình 4.16 Chọn database để publication ........................................................................... 42

Page 76: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 73

Hình 4.17 Chọn loại thiết kế publication........................................................................... 43

Hình 4.18 Chọn phiên bản thiết kế publication ................................................................. 43

Hình 4.19 Chọn phân tán dữ liệu table .............................................................................. 44

Hình 4.20 Tạo lược đồ phân tán các table ......................................................................... 44

Hình 4.21 Phân tán dữ liệu table CHI NHANH ................................................................ 45

Hình 4.22 Phân tán table phân mảnh ngang dẫn xuất ....................................................... 45

Hình 4.23 Phân tán dữ liệu table NHANVIEN ................................................................. 46

Hình 4.24 Kết quả phân tán dữ liệu table NHANVIEN .................................................... 46

Hình 4.25 Phân tán dữ liệu table KHO .............................................................................. 47

Hình 4.26 Phân tán dữ liệu table PHATSINH .................................................................. 47

Hình 4.27 Phân tán dữ liệu table CT_PHATSINH ........................................................... 48

Hình 4.28 Lược đồ phân mảnh cơ sờ dữ liệu QUANLYVATTU ..................................... 48

Hình 4.29 Tạo napshot agent lưu trữ ................................................................................. 49

Hình 4.30 Khai báo tài khoản server gốc ...................................................................... 4499

Hình 4.31 Tiếp tục tạo publication .................................................................................... 50

Hình 4.32 Đặt tên cho publication ..................................................................................... 50

Hình 4.33 Kiểm tra lại publication đã tạo ......................................................................... 51

Hình 4.34 Xem lại thiết kế publication ............................................................................. 51

Hình 4.35 Trạng thái hoạt động snapshot agent ................................................................ 52

Hình 4.36 Tạo 1 subscription ............................................................................................ 52

Hình 4.37 Pubication tạo subscription............................................................................... 53

Hình 4.38 Thiết lập cấu hình tạo 1 subscription ................................................................ 53

Hình 4.39 Chỉ định server chứa publication .................................................................. 5544

Hình 4.40 Server CNKLZCW4RWBTZ\NGA1 chứa publication ................................... 54

Hình 4.41 Chỉ định database chứa pulication sau khi phân tán .................................... 5555

Hình 4.42 Database QUANLYVATTU sau khi phân tán ................................................. 55

Hình 4.43 Dữ liệu server gốc được đẩy phân tán sang server con .................................... 56

Hình 4.44 Cấu hình từ server gốc sang server con ............................................................ 56

Hình 4.45 Khai báo tài khoản server gốc sang server con ................................................ 57

Hình 4.46 Đồng bộ hóa dữ liệu server gốc sang server con .............................................. 57

Hình 4.47 Đồng bộ hóa dữ liệu Immediately .................................................................... 58

Hình 4.48 Đồng bộ hóa dữ liệu server .............................................................................. 58

Page 77: GIÁO TRÌNH NÂNG CAO NG - ktkthcm.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN 74

Hình 4.49 Cấu hình tạo 1 subscription .............................................................................. 59

Hình 4.50 Kết quả 1 subscription ...................................................................................... 59

Hình 4.51 Kiểm tra database server con ............................................................................ 60

Hình 4.52 Tạo log in HTKN .............................................................................................. 61

Hình 4.53 Tạo log in HTKN .............................................................................................. 62

Hình 4.54 Tạo log in HTKN .............................................................................................. 62

Hình 4.55 Thiết lập quyền trong status ............................................................................. 63

Hình 4.56 Thiết lập quyền trong status ............................................................................ 63

Hình 4.57 Tạo 1 Link server .............................................................................................. 64

Hình 4.58 Thiết lập khai báo HTKN trong security .......................................................... 64

Hình 4.59 Thiết lập khai báo HTKN trong security .......................................................... 65

Hình 4.60 Thiết lập khai báo HTKN trong security .......................................................... 65

Hình 4.61 LINK truy xuất dữ liệu .................................................................................... 66

Hình 4.62 Cách tạo 1 Store Procedure ............................................................................. 68