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 [r]
Trang 1Ủ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
Trang 2TRƯỜ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
Trang 4LỜ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
Trang 5MỤ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
Trang 6GIÁ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
Trang 7Chương 1: Mở đầu 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
- 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:
Trang 8Tí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ở
Trang 9Chương 1: Mở đầu
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ụ:
Hình 1.2 Mô hình 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
Hình 1.3 Mô hình 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ị
Trang 10- 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
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
Trang 11Chương 1: Mở đầu 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
Trang 12CHƯƠ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á trình 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
Trang 13Chương 2: Tối ưu hóa truy vấn
- 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à gì?
Đạ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
Trang 14Hộ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 đó:
Trang 15Chương 2: Tối ưu hóa truy vấn
<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
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
Trang 16chiế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)
<đ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:
Trang 17Chương 2: Tối ưu hóa truy vấn LOP (MSLOP, TENLOP)
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
⋈
⋈
Hình 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
Trang 182.4 Quá trình 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ệ)
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ì
SINH VIEN HOC
MON HOC
Trang 19Chương 2: Tối ưu hóa truy vấn
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
Trang 20CHƯƠ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
Trang 21Chương 3: Quản trị người dùng
Hình 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
Hình 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
Database Quyền khai thác
Trang 22Hình 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
Trang 23Chương 3: Quản trị người dùng
Hình 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
Hình 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
Trang 24Hình 3.6 Cấp quyền cho người dùng
Hình 3.7 Cấp quyền cho người dùng
- Bước 2: Thiết lập quyền
Trang 25Chương 3: Quản trị người dùng
Hình 3.8 Thiết lập quyền 3.3 Tạo nhóm người dùng
Trang 26Bướ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
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
Trang 27Chương 3: Quản trị người dùng
3.5 Hủy quyền truy cập user
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
Trang 28CÂ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
Trang 29Chương 4: Hệ cơ sở dữ liệu phân tán
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
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
Trang 30Kiế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:
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
Client
Hình 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
Hình 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
Tính toán chức năng
liệu
Tính toán chức năng
liệu
Tính toán chức năng (1)
liệu
Tính toán chức năng (2)
Trang 31Chương 4: Hệ cơ sở dữ liệu phân tán
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
Trang 32Hơ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
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:
Trang 33Chương 4: Hệ cơ sở dữ liệu phân tán
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ỉ
Á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)
Trang 34+ 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ể
Trang 35Chương 4: Hệ cơ sở dữ liệu phân tán
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ì
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
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
Trang 364.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
Trang 37Chương 4: Hệ cơ sở dữ liệu phân tán
- 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
Trang 38SQL 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
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
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 Chỉ định server nào sẽ chứa publication nghĩa là chứa dữ