LỜI MỞ ĐẦU
Bước sang thế kỷ 21, nhân loại đã chuyển từ xã hội công nghiệp sang xã hội
thông tin. Với mạng Internet tốc độ cao ngày càng được mở rộng trên toàn thế giới,
với việc ứng dụng Công nghệ thông tin ngày càng sâu hơn trong nhiều lĩnh vực, nhu
cầu và khả năng kết nối, chia sẻ thông tin của con người đang trở nên lớn hơn bao giờ
hết. Để không bị tụt hậu lại phía sau, mọi quốc gia, mọi tổ chức kinh tế xã hội đều
nhận thức được vai trò quan trọng không thể thiếu của công nghệ thông tin trong việc
nâng cao hiệu quả hoạt động, thúc đẩy sự phát triển của quốc gia, tổ chức mình. Tuy
nhiên vấn đề khó khăn đặt ra ở đây là khối lượng công việc cần thực hiện ngày càng
lớn, lượng dữ liệu cần lưu trữ và các thao tác xử lý chúng ngày càng tăng trong khi do
các đặc điểm về qui mô, tổ chức và nghiệp vụ, các kho dữ liệu lại được phân bố trải
rộng ở nhiều nơi khác nhau, sử dụng những công nghệ khác nhau, khả năng liên kết là
rất hạn chế. Trong những trường hợp như vậy, các tổ chức phải tiến hành xây dựng các
ứng dụng trên hệ cơ sở dữ liệu phân tán. Công nghệ phân tán đã được nghiên cứu khá
lâu và ngày càng trở nên ổn định, hoàn thiện hơn. Nó cung cấp khả năng kết nối, chia
sẻ dữ liệu gần như không có giới hạn, nâng cao hiệu quả hoạt động và khả năng mở
rộng của hệ thống, tăng tính tin cậy và tính sẵn sàng cho người sử dụng.
Ở Việt Nam, việc ứng dụng Công nghệ thông tin nói chung và cơ sở dữ liệu phân
tán nói riêng vẫn còn hạn chế, lý do chủ yếu có thể là do hạ tầng mạng, công nghệ của
Việt Nam còn chưa thực sự phát triển. Tuy nhiên trong những năm trở lại đây tình
hình đã được cải thiện rất tích cực. Trong khối các cơ quan Nhà nước, Chính phủ cũng
thể hiện quyết tâm rất cao về việc tin học hóa công tác quản lý, cải cách thủ tục hành
chính, tăng cường trao đổi và chia sẻ thông tin, giúp nâng cao hiệu quả điều hành, tiết
kiệm chi phí, từng bước tiến đến mục tiêu Chính phủ điện tử.
YÊU CẦU CỦA ĐỀ TÀI
KHẢO SÁT, PHÂN TÍCH THIẾT KẾ CSDL PHÂN TÁN
QUẢN LÝ NHÂN SỰ TIỀN LƯƠNG
1. Cơ sở dữ liệu: 3 − 5 quan hệ ở dạng chuẩn Boyce-Codd, đảm bảo các ràng
buộc toàn vẹn dữ liệu, mỗi quan hệ có 20 − 30 bản ghi.
2. Vị trí: 3 − 5, có chi phí lưu trữ, xử lí và truyền số liệu giống nhau. Mỗi vị trí
đều có lưu dữ liệu.
3. Chương trình ứng dụng: 3 − 5 câu vấn tin SQL, được thực hiện tại tất cả vị trí
với tần suất khác nhau.
Phần 1
CƠ SỞ LÝ THUYẾT
I. Xử lý phân tán và hệ thống phân tán
Hệ xử lý phân tán là một tập hợp các phần tử xử lý tự trị (không nhất thiết đồng
nhất) được kết nối với nhau bởi một mạng máy tính và cùng phối hợp thực hiện những
công việc gán cho chúng. Phần tử xử lý ở đây để chỉ một thiết bị tính toán có khả năng
thực hiện chương trình trên nó.
Hệ thống phân tán là tập hợp các máy tính độc lập kết nối với nhau thành một
mạng máy tính được cài đặt các hệ cơ sở dữ liệu và các p
hần mềm hệ thống phân tán tạo khả năng cho nhiều người sử dụng truy nhập chia
sẻ nguồn thông tin chung. Các máy tính trong hệ thống phân tán có kết nối phần cứng
lỏng lẻo, có nghĩa là không chia sẻ bộ nhớ, chỉ có một hệ điều hành cho toàn bộ hệ
thống phân tán.
Các mạng máy tính được xây dựng dựa trên kỹ thuật Web, ví dụ như mạng
internet,… là các mạng phân tán.
II. Cơ sở dữ liệu phân tán
1. Khái niệm cơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tán là tập hợp dữ liệu logic thuộc về cùng một hệ thống
nhưng trải rộng ra nhiều điểm trên mạng máy tính. Trong khái niệm mô tả về cơ sở dữ
liệu phân tán trên có hai đặc tính cơ bản là “liên quan logic” và “phân bố trên mạng
máy tính”. Trong cơ sở dữ liệu phân tán các tập tin dữ liệu được lưu trữ độc lập trên
các nút của mạng máy tính và có liên quan đến nhau về mặt logic và còn hơn thế nữa
còn đòi hỏi chúng phải được truy xuất đến qua một giao diện chung, thống nhất.
Hệ quản trị CSDL phân tán (Distributed Database Management System D-
DBMS) được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL
phân tán và làm cho sự phân tán trở nên “trong suốt” đối với người sử dụng.
Khái niệm “trong suốt” để chỉ sự tách biệt ở cấp độ cao của hệ thống với các vấn
đề cài đặt ở cấp độ thấp của hệ thống. Có các dạng “trong suốt” như sau:
- “Trong suốt” về phân tán. Do tính chất phân tán của hệ thống nên các dữ liệu
được lưu trữ tại các nút có vị trí địa lý khác nhau, phần mềm sẽ đáp ứng các yêu cầu
của người sử dụng sao cho người sử dụng không cần biết vị trí địa lý của dữ liệu.
- “Trong suốt” về phân hoạch. Do dữ liệu phân tán và do nhu cầu cảu công việc,
dữ liệu cần được phân hoạch và mỗi phân hoạch được lưu trữ tại một nút khác nhau
(đây gọi là quá trình phân mảnh). Quá trình phân mãnh hoàn toàn tự động bởi hệ thống
và người sử dụng không cần phải can thiệp.
- “Trong suốt” về nhân bản. Vì lý do hiệu năng, tin cậy nên dữ liệu còn được sao
chép một phần ở những vị trí khác nhau.
- “Trong suốt” về độc lập dữ liệu.
- “Trong suốt” về kết nối mạng. Người sử dụng không cần biết về sự có mặt của
giao tiếp mạng.
Các tầng trong suốt của hệ thống.
2. Cấu trúc chung của một cơ sở dữ liệu phân tán
Cấu trúc mẫu của một cơ sở dữ liệu phân tán có dạng:
- Lược đồ toàn cục:
Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán. Vì vậy, lược
đồ toàn cục được định nghĩa chính xác như định nghĩa lược đồ CSDL tập trung.
- Lược đồ phân đoạn:
Mỗi quan hệ tổng thể có thể chia thành nhiều phần không chồng lặp lên nhau
được gọi là đoạn (fragments). Ánh xạ giữa các quan hệ toàn cục và phân đoạn được
gọi là lược đồ phân đoạn. Ánh xạ này là mối quan hệ một – nhiều. Ví dụ, nhiều phân
đoạn tương ứng với một quan hệ toàn cục, nhưng chỉ một quan hệ toàn cục tương ứng
với một phân đoạn. Các phân đoạn đượ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 đoạn).
Các phân đoạn dữ liệu bao gồm phân đoạn ngang và phân đoạn dọc và một kiểu
phân đoạn phức tạp hơn là sự kết hợp của hai loại trên.
- Lược đồ định vị:
Các đoạn là các phần logic của quan hệ toàn cục được định vị vật lý trên một
hoặc nhiều vị trí trên mạng. Lược đồ định vị xác định các phân đoạn được định vị tại
các vị trí nào. Lưu ý rằng kiểu ánh xạ được định nghĩa trong sơ đồ định vị quyết định
CSDL phân tán là dư thừa hay không.
- Lược đồ ánh xạ địa phương:
Do ba mức đầu là độc lập, do đó chúng không phụ thuộc vào mô hình dữ liệu của
CSDL cục bộ. Ở mức thấp hơn, nó cần phải ánh xạ mô hình vật lý thành các đối tượng
được thao tác bới hệ quản trị CSDL cục bộ. Ánh xạ này được gọi là lược đồ ánh xạ địa
phương và phụ thuộc vào kiểu của hệ quản trị CSDL cục bộ.
3. Các lý do để sử dụng CSDL phân tán
- Các tổ chức có cấu trúc phân tán: Ngày nay có rất nhiều tổ chức phân tán nhiều
chi nhánh ở các vị trí địa lý khác nhau, dữ liệu quản lý ngày càng lớn và phục vụ cho
đa người dùng nằm phân tán, vì vậy cơ sở dữ liệu phân tán là con đường thích hợp với
cấu trúc tự nhiên của tổ chức đó.
- Tận dụng những cơ sở dữ liệu có sẵn: Hình thàng cơ sở dữ liệu phân tán từ các
cơ sở dữ liệu tập trung có sẵn ở các chi nhánh địa phương. Trong trường hợp này cơ sở
dữ liệu phân tán được tạo theo tiến trình từ dưới lên dựa trên nền tảng cơ sở dữ liệu
đang tồn tại.
- Thuận lợi cho nhu cầu phát triển: Các tổ chức có thể phát triển mở rộng bằng
cách thành lập thêm các đơn vị mới, vừa có tính tự trị, vừa có quan hệ với các đơn vị
tổ chức khác.
- Giảm chi phí truyền thông: Tăng ứng dụng cục bộ làm giảm chi phí truyền
thông. Trong cơ sở dữ liệu phân tán, chương trình ứng dụng đặt tại địa phương có thể
giảm bớt chi phí truyền thông khi thực hiện bằng cách khai thác cơ sở dữ liệu tại chỗ.
- Nâng cao hiệu suất: Có cơ chế xử lý song song và phân mảnh dữ liệu theo ứng
dụng làm cực đại hóa tính cục bộ của ứng dụng.
- Tăng độ tin cậy và tính sẵn sàng: Nếu có một thành phần nào đó của hệ thống bị
hỏng, hệ thống vẫn có thể duy trì hoạt động.
4. So sánh CSDL phân tán và CSDL tập trung
Đặc trưng mô tả CSDL tập trung là điều khiển tập trung, độc lập dữ liệu, giảm
bớt dư thừa, cơ cấu vật lý phức tạp đối với khả năng truy cập, toàn vẹn, hồi phục, điều
khiển tương tranh, biệt lập và an toàn dữ liệu.
- Điều khiển tập trung:
Trong CSDL tập trung, điều khiển tập trung các nguồn thông tin của công việc
hay tổ chức. Có người quản trị đảm bảo an toàn dữ liệu.
Trong CSDL phân tán: không đề cập đến vấn đề điều khiển tập trung. Người
quản trị CSDL chung phân quyền cho người quản trị CSDL địa phương.
- Độc lập dữ liệu: là một trong những nhân tố tác động đến cấu trúc CSDL để tổ
chức dữ liệu chuyển cho chương trình ứng dụng. Tiện lợi chính của độc lập dữ liệu là
các chương trình ứng dụng không bị ảnh hưởng khi thay đổi cấu trúc vật lý của dữ
liệu.
Trong CSDL phân tán, độc lập dữ liệu có tầm quan trọng cũng như trong CSDL
truyền thống. Khái niệm CSDL trong suốt thể hiện rằng hoạt động của chương trình
trên CSDL phân tán được viết như làm việc trên CSDL tập trung. Hay nói cách khác
tính đúng đắn của chương trình không bị ảnh hưởng bởi việc di chuyển dữ liệu từ nơi
này sang nơi khác trong mạng máy tính. Tuy nhiên tốc độ làm việc bị ảnh hưởng do có
thời gian di chuyển dữ liệu.
- Giảm dư thừa dữ liệu: Trong CSDL tập trung, tính dư thừa hạn chế được càng
nhiều càng tốt vì:
+ Dữ liệu không đồng nhất khi có vài bản sao của cùng CSDL logic; để tránh
được nhược điểm này giải pháp là chỉ có một bản sao duy nhất.
+ Giảm không gian lưu trữ. Giảm dư thừa có nghĩa là cho phép nhiều ứng dụng
cùng truy cập đến một CSDL mà không cần đến nhiều bản sao ở những nơi chương
trình ứng dụng cần .
CSDL phân tán chia dữ liệu ra thành nhiều phần nhỏ và được thể hiện như một
bản sao logic tổng thể duy nhất để tiện cho việc truy cập dữ liệu.
- Cấu trúc vật lý và khả năng truy cập: Trong CSDL phân tán, hiệu quả của truy
cập thể hiện ở thời gian tìm kiếm và chuyển dữ liệu nhỏ nhất, chi phí truyền thông
thấp nhất. Công việc viết ra cách thức truy cập CSDL phân tán cũng giống như viết
chương trình duyệt trong các CSDL tập trung.
- Tính toàn vẹn, hồi phục và điều khiển tương tranh: Trong CSDL phân tán, vấn
đề điều khiển giao tác tự trị có ý nghĩa quan trọng: hệ thống điều phối phải chuyển đổi
các quỹ thời gian cho các giao tác liên tiếp. Như vậy giao tác tự trị là phương tiện đạt
được sự toàn vẹn trong CSDL Có hai mối nguy hiểm của giao tác tự trị là lỗi và tương
tranh.
- Tính biệt lập và an toàn: trong CSDL truyền thống, người quản trị hệ thống có
quyền điều khiển tập trung, người sử dụng được phân quyền mới truy cập vào được dữ
liệu. Trong cách tiếp cận CSDL tập trung, không cần thủ tục điều khiển chuyên biệt.
Trong CSDL phân tán, những người quản trị địa phương cũng phải giải quyết
vấn đề tương tự như người quản trị CSDL truyền thống. Tuy nhiên, với cấp độ tự trị
cao ở mỗi điểm, người có dữ liệu địa phương sẽ cảm thấy an toàn hơn vì họ có thể tự
bảo vệ dữ liệu của mình thay vì phụ thuộc vào người quản trị hệ thống tập trung.
Ngoài ra, vấn đề an toàn với hệ phân tán còn liên quan đến an toàn trong mạng truyền
thông, hệ thống có tính mở và nhiều người dùng sử dụng nhiều CSDL, do đó đòi hỏi
nhiều kỹ thuật bảo vệ phức tạp hơn.
III. Hệ quản trị cơ sở dữ liệu phân tán
1. Khái niệm 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 là hệ thống phần mềm cho phép quản trị
CSDL 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. Nói
cách khác, CSDL phân tán là CSDL được phân tán một cách vật lý nhưng được thống
nhất tổ chức như một CSDL duy nhất.
Các hệ quản trị CSDL phân tán thường hỗ trợ về điều khiển tương tranh và khôi
phục các tiến trình phân tán. Khả năng truy cập từ xa có thể thực hiện được bằng 2
cách. Cách thứ nhất: Trình ứng dụng yêu cầu truy cập từ xa. Yêu cầu này được định
tuyến tự động bởi hệ quản trị CSDL phân tán tới máy chủ chứa dữ liệu. Được thực
hiện tại máy chủ chứa dữ liệu và gửi lại kết quả về máy trạm yêu cầu. Cách thứ hai:
Chương trình phụ thực hiện tại các máy trạm ở xa (người lập trình phải tự lập), các kết
quả trả lại cho chương trình ứng dụng.
2. Phân loại hệ quản tri cơ sở dữ liệu phân tán
- Hệ quản trị cơ sở dữ liệu phân tán thuần nhất
Khi áp dụng đối với các hệ quản trị CSDL, thuật ngữ thuần nhất có nghĩa là công
nghệ CSDL là như nhau (hay ít nhất là có thể tương thích) tại mỗi vị trí địa lý và dữ
liệu tại các vị trí địa lý khác nhau cũng có thể tương thích. Các hệ quản trị CSDL phân
tán thuần nhất đơn giản hoá việc chia sẻ dữ liệu giữa những người sử dụng khác nhau.
Các điều kiện sau cần được thoả mãn:
- Các hệ điều hành mày tính tại mỗi vị trí địa lý là như nhau hay ít nhất chúng có
khả năng tương thích cao.
- Các mô hình dữ liệu được sử dụng tại mỗi vị trí địa lý là như nhau (mô hình
quan hệ được sử dụng chung nhất đối với các hệ quản trị CSDL phân tán ngày nay).
- Các hệ quản trị CSDL được sử dụng tại mỗi vị trí địa lý là như nhau hay ít nhất
chúng có khả năng tương thích cao.
- Dữ liệu tại các vị trí khác nhau có thể có các định nghĩa và khuôn dạng chung.
Các hệ quản trị CSDL phân tán thuần nhất thể hiện một mục đích thiết kế đối với
các CSDL phân tán. Cụ thể, các CSDL phân tán thuần nhất được thiết kế bằng cách
chia nhỏ một CSDL thành nhiều CSDL địa phương, các CSDL địa phương định vị trên
các trạm làm việc khác nhau nhưng chúng được biểu diễn bởi cùng một mô hình dữ
liệu và được quản trị bởi cùng một hệ quản trị CSDL địa phương.
Hình: Hệ quản trị cơ sở dữ liệu phân tán thuần nhất
Máy trạm Máy trạm
Hệ quản trị CSDL phân tán
Hệ QTCSDL
CSDL
Hệ QTCSDLHệ QTCSDL
CSDLCSDL
- Hệ quản trị cơ sở dữ liệu phân tán không thuần nhất
Trong hầu hết các tổ chức, các hệ quản trị CSDL liên quan đến một chu kì dài
không được chỉ đạo và lập kế hoạch cẩn thận. Các máy tính khác nhau và các hệ điều
hành khác nhau có thể được sử dụng tại mỗi một vị trí địa lý. Các mô hình dữ liệu
khác nhau và các hệ quản trị CSDL khác nhau cũng có thể được lựa chọn sử dụng. Ví
dụ, một ví trí có thể sử dụng công nghệ cơ sở dữ hiệu quan hệ mới nhất, trong khi một
vị trí khác có thể lưu trữ dữ liệu sử dụng các tệp truyền thống hay các CSDL mạng,
phân cấp cũ hơn.
Phức tạp hơn nữa, dữ liệu trên các vị trí thường không tương thích. Các mâu
thuẫn điển hình bao gồm các khác biệt về cú pháp (sự biểu diễn khác nhau các khoản
mục dữ liệu tại hai vị trí) và các khác biệt về ngữ nghĩa (các ngữ nghĩa khác nhau đối
với cùng một khoản mục dữ liệu tại các vị trí khác nhau.
Sớm hay muộn thì những người sử dụng tại các vị trí khác nhau sẽ phát hiện ra
rằng họ cần chia sẻ dữ liệu cho dù có sự không tương thích. Một giải pháp là phát triển
một CSDL mới hoàn toàn mà hợp nhất tất cả các hệ đang tồn tại. Tuy nhiên, đây
thường là một giải pháp không dễ thực hiện về mặt kĩ thuật hay về mặt kinh tế. Thay
vào đó, đôi khi các CSDL được móc nối với nhau và kết quả là tạo ra một tập các
CSDL không thuần nhất (đôi khi còn được gọi là các CSDL liên hiệp). Một hệ thống
nhất như vậy nói chung hạn chế các kiểu xử lý mà những người sử dụng có thể thực
hiện. Ví dụ một người sử dụng tại một ví trí có thể đọc nhưng không thể cập nhật dữ
liệu tại một vị trí khác.
Hình: Hệ quản trị cơ sở dữ liệu không thuần nhất
III. Cơ sở lý thuyết thiết kế cơ sở dữ liệu phân tán
Thiết kế cơ sở dữ liệu phân tán cũng thực hiện các công việc giống như trong
thiết kế cơ sở dữ liệu tập trung, gồm có các công việc sau:
- Thiết kế sơ đồ khái niệm: mô tả cơ sở dữ liệu hợp nhất.
- Thiết kế cơ sở dữ liệu vật lý: tham chiếu từ lược đồ khái niệm tới vùng lưu trữ
và xác định các cách thức truy cập khác nhau.
Đối với thiết kế cơ sở dữ liệu phân tán bổ sung thêm hai công việc nữa:
Máy trạm Máy trạm
Hệ QTCSDL 1
CSDL
Máy trạm
Hệ QTCSDL 3Hệ QTCSDL 2
CSDLCSDL
- Thiết kế phân đoạn: xác định cách thức phân chia những quan hệ toàn bộ thành
những đoạn dữ liệu theo chiều dọc, theo chiều ngang hay kiểu hỗn hợp.
- Thiết kế định vị đoạn dữ liệu: xác định cách thức đoạn dữ liệu tham khảo đến
ảnh vật lý nào và cũng xác định các bản sao của đoạn dữ liệu.
1. Các chiến lược thiết kế
Hai chiến lược chính trong việc thiết kế cơ sở dữ liệu phân tán là tiếp cận từ trên
xuống và tiếp cận từ dưới lên. Trong thực tế rất hiếm các ứng dụng đơn giản để chỉ sử
dụng một cách tiếp cận, vì vậy trong phần lớn thiết kế cả hai cách tiếp cần đều được áp
dụng bổ sung cho nhau.
a) Quá trình thiết kế từ trên xuống
Việc phân tích yêu cầu nhằm định nghĩa môi trường hệ thống và thu nhập các
nhu cầu xử lý của tất cả người dùng, đồng thời cũng xác định yêu cầu hệ thống.
Hồ sơ ghi chép các yêu cầu là nguyên liệu cho hai hoạt động song song: Thiết kế
khung nhìn (view design) và Thiết kế khái niệm (conceptual design).
Thiết kế khung nhìn định nghĩa các giao diện cho người dùng đầu cuối.
Thiết kế khái niệm là quá trình xem xét tổng thể đối tượng − xí nghiệp, nhằm xác
định các loại thực thể và mối liên hệ giữa chúng với nhau. Ta có thể chia quá trình này
thành 2 nhóm bao gồm các hoạt động liên quan tới nhau: Phân tích thực thể (entity
analysis) và Phân tích chức năng (functional analysis). Phân tích thực thể có liên quan
đến việc xác định các thực thể, các thuộc tính và các mối liên hệ giữa chúng. Phân tích
chức năng đề cập đến việc xác định các chức năng cơ bản có liên quan đến xí nghiệp
cần được mô hình hoá. Kết quả của hai quá trình này cần được đối chiếu qua lại, giúp
chúng ta biết được chức năng nào sẽ hoạt tác trên những thực thể nào.
Có sự liên hệ khăng khít giữa thiết kế khái niệm và thiết kế khung nhìn. Theo
nghĩa nào đó thiết kế khái niệm được coi như là sự tích hợp các khung nhìn. Tuy nhiên
mô hình khái niệm cần phải hỗ trợ không chỉ những ứng dụng hiện có mà còn cả
những ứng dụng trong tương lai. Tích hợp khung nhìn nhằm đảm bảo các yêu cầu về
thực thể và các mối liên hệ giữa các khung nhìn đều phải được bao quát trong lược đồ
khái niệm.
Trong các hoạt động thiết kế khái niệm và thiết kế khung nhìn, người thiết kế cần
phải đặc tả các thực thể dữ liệu và phải xác định các ứng dụng chạy trên cơ sở dữ liệu
cũng như các thông tin thống kê về những ứng dụng này. Thông tin thống kê bao gồm
đặc tả về tần số ứng dụng, khối lượng thông tin khác nhau,
Lược đồ khái niệm toàn cục GCS và thông tin về kiểu mẫu truy xuất thu được
trong thiết kế khung nhìn sẽ là nguyên liệu cho bước thiết kế phân tán. Mục tiêu của
giai đoạn này là thiết kế các lược đồ khái niệm cục bộ LCS bằng cách phân tán các
thực thể cho các vị trí của hệ thống phân tán.
Ta chia quan hệ thành nhiều quan hệ nhỏ hơn gọi là các đoạn và phân tán các
mảnh này. Hoạt động thiết kế phân tán gồm hai bước: Phân đoạn và định vị.
Thiết kế vật lý là ánh xạ lược đồ khái niệm cục bộ sang các thiết bị lưu trữ vật lý
có sẵn tại các vị trí tương ứng. Nguyên liệu cho quá trình này là lược đồ khái niệm cục
bộ và thông tin về kiểu mẫu truy xuất các đoạn.
Hoạt động phát triển và thiết kế luôn là quá trình liên tục, đòi hỏi theo dõi hiệu
chỉnh thường xuyên. Vì thế chúng ta đưa vấn đề quan sát và theo dõi như một hoạt
động chính trong qua trình này. Cần chú ý rằng chúng ta không chỉ theo dõi vấn đề cài
đặt cơ sở dữ liệu, mà còn quan sát theo dõi tính thích hợp của các khung nhìn của
người dùng. Kết quả này có tác dụng phản hồi, tạo cơ sở cho việc tái thiết kế về sau.
b) Quá trình thiết kế từ dưới lên
Thiết kế từ trên xuống thích hợp cho những cơ sở dữ liệu được thiết kế từ đầu.
Tuy nhiên trong thực tế cũng có khi đã có sẵn một số cơ sở dữ liệu, và chúng ta phải
tích hợp chúng thành một cơ sở dữ liệu chung. Tiếp cận từ dưới lên sẽ thích hợp cho
tình huống này. Khởi điểm của thiết kế từ dưới lên là các lược đồ khái niệm cục bộ, sẽ
phải được tích hợp thành lược đồ khái niệm toàn cục.
2. Phân đoạn dữ liệu
- Phân đoạn ngang: Phân đoạn ngang 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ệ còn bằng phép hợp.
k
RRRR
∪∪∪=
21
Có hai loại phân đoạn ngang:
Phân đoạn nganh nguyên thủy: phân đoạn ngang nguyên thủy 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ệ đó.
Phân đoạn ngang dẫn xuất: Phân đoạn ngang dẫn xuất 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.
- Phân đoạn dọc: Một phân đoạn dọc một quan hệ tổng thể n bộ R là tách R thành
tập các quan hệ con R
1
, , R
k
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 = R
1
R
2
… R
k
Mục đích của phân đoạn dọc là phân hoạch một quan hệ thành tập các quan hệ
nhỏ hơn để nhiều ứng dụng chỉ cần chạy trên 1 đoạn.
- Phân đoạn hỗn hợp: là kết hợp cả phân đoạn dọc và phân đoạn ngang.
Phần 2
THIẾT KẾ CƠ SỞ DỮ LIỆU
I. Mô tả bài toán
Công ty TNHH Tin học HTP là một công ty chuyên cung cấp các sản phẩm liên
quan đến phần cứng, phần mềm máy tính và các dịch vụ hỗ trợ khách hàng. Công ty
có trụ sở chính đặt tại Hà nội, hai chi nhánh đặt tại thành phố Hồ Chí Minh và Đà
Nẵng. Tổng số nhân viên của công ty lên đến 500 người. Với mô hình hoạt động khá
phức tạp, số lượng nhân viên đông, phân bố nhân viên tại nhiều chi nhánh, công ty
phải có mô hình quản lý chặt chẽ để có thể mang lại hiệu quả. Vấn đề đặt ra ở đây là
công ty cần có hệ thống quản lý nhân sự và tiền lương hợp lý, chặt chẽ.
Trách nhiệm quản lý nhân sự tiền lương:
- Phòng hành chính nhân sự chịu trách nhiệm quản lý các công việc cập nhật: Hồ
sơ nhân viên, Bảng hệ số lương, Quá trình công tác, Hồ sơ khen thưởng kỷ luật.
- Phòng tài chính kế toán chịu trách nhiệm với công việc tính lương hàng tháng
theo khung lương đối với từng bộ phận và từng chức vụ cho nhân viên.
- Phòng ban liên quan chịu trách nhiệm với công việc: Yêu cầu khen thưởng – kỷ
luật nhân viên, Chấm công hàng tháng cho nhân viên.
Mức lương của nhân viên tùy thuộc vào chức vụ và ngày công của nhân viên.
Nhân viên ở chức vụ nào sẽ nhận được mức lương ứng với từng chức vụ đó.
Những việc được khen thưởng và hình thức khen thưởng tương ứng do giám đốc
công ty quy định. Khi các phòng ban liên quan có yêu cầu khen thưởng nhân viên, bộ
phận tài chính kế toán quản lí lương có trách nhiệm tạo ra bảng khen thưởng trong đó
có tên loại khen thưởng và hình thức khen thưởng tương ứng. Quản lí nhân sự dựa vào
bảng đó mà thực hiện khen thưởng cho nhân viên.
Những việc bị kỉ luật và hình thức kỉ luật tương ứng do giám đốc công ty quy
định. Khi các phòng ban liên quan có yêu cầu kỷ luật nhân viên. Bộ phận quản lí
lương có trách nhiệm tạo ra bảng kỉ luật trong đó có tên loại kỉ luật và hình thức kỉ luật
tương ứng. Quản lí nhân sự dựa vào bảng đó mà thực hiện kỉ luật cho nhân viên theo
bảng trên.
Chú ý: Các hình thức khen thưởng hay kỷ luật đều sử dụng các biện pháp về tài
chính (thưởng tiền hay trừ lương).
Quy trình quản lý nhân sự, tiền lương được thực hiện như sau:
- Quy trình quản lý quá trình công tác: Phòng hành chính nhân sự quản lý chi tiết
quá trình công tác của nhân viên trước khi vào làm việc trong công ty: khi bắt đầu vào
làm việc, khi được thăng chức, khi thuyên chuyển giữa các phòng ban Quản lý thông
tin về các quyết định khen thưởng, kỷ luật liên quan đến nhân viên.
- Quy trình quản lý lương: Phòng tài chính kế toán cập nhật bảng hệ số lương
cho các nhân viên, gồm các thông số như: mức lương tối thiểu theo quy định của nhà
nước, mức lương được hưởng khi làm thêm ngoài giờ, hệ số lương, hệ số phụ cấp ,
tính lương theo từng tháng cho các nhân viên.
II. Phân tích
1. Mô hình thực thể mối quan hệ
NHANVIEN (MaNV, HoNV, TenNV, Gioitinh, Ngaysinh, Noisinh, Quequan,
Diachi, Dienthoai, Maphongban, Machucvu, Noilam)
PHONGBAN (Maphongban, Tenphongban, Diachiphongban)
CHUCVU (MaCV, Chucvu, Phucap)
BANGLUONG (MaNV, Luongcoban, Hesoluong, Songaylamviec, MaKT,
Makyluat, Lamthemgio, Luongthemgia)
KHENTHUONG (MaKT, LoaiKT, MucKT)
KYLUAT (Makyluat, Loaikyluat, Muckyluat)
Mối quan hệ
3. Chuẩn hóa các lược đồ quan hệ
Ta thiết kế các lược đồ quan hệ của cơ sở dữ liệu đạt chuẩn 1NF, 2NF, 3NF,
BCNF sao cho chúng không còn các phụ thuộc bộ phận và các phụ thuộc bắc cầu bởi
vì các kiểu phụ thuộc này gây ra các sửa đổi bất thường dữ liệu.
- Định nghĩa dạng chuẩn Boyce - Codd:
Nhân viên Phòng ban
Bảng lương
Khen thưởng
Kỷ luật
Một lược đồ quan hệ ở dạng chuẩn Boyce – Codd (BCNF) nếu khi một phụ
thuộc hàm X A thỏa mãn trong R thì X là một siêu khóa của R.
Xét chuẩn Boyce – Codd của các lược đồ quan hệ:
a) NHANVIEN (MaNV, HoNV, TenNV, Gioitinh, Ngaysinh, Quequan,
Maphongban, Machucvu, Noilam)
Có:
- Tập thuộc tính: MaNV, HoNV, TenNV, Gioitinh, Ngaysinh, Quequan,
Maphongban, Machucvu, Noilam
- Thuộc tính khóa chính là MaNV, lược đồ chỉ có 1 khóa.
- Phụ thuộc hàm: MaNV → HoNV, TenNV, Gioitinh, Ngaysinh, Quequan,
Maphongban, Machucvu, Noilam.
Quan hệ trên chỉ có một phụ thuộc hàm, không có một phụ thuộc hàm nào khác,
vế trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ NHANVIEN đạt
chuẩn dạng BCNF.
b) PHONGBAN (Maphongban, Tenphongban, Diachiphongban)
Có:
- Tập thuộc tính: Maphongban, Tenphongban, Diachiphongban
- Thuộc tính khóa chính là Maphongban, lược đồ chỉ có một khóa.
- Phụ thuộc hàm: Maphongban → Tenphongban, Diachiphongban.
Quan hệ chỉ có một phụ thuộc hàm trên, không có phục thuộc hàm nào khác, về
trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ PHONGBAN đạt
chuẩn dạng BCNF.
c) CHUCVU (MaCV, Chucvu, Phucap)
Có:
- Tập thuộc tính: MaCV, Chucvu, Phucap
- Thuộc tính khóa chính là MaCV, lược đồ chỉ có một khóa.
- Phụ thuộc hàm: MaCV → Chucvu, Phucap.
Quan hệ chỉ có một phụ thuộc hàm trên, không có phục thuộc hàm nào khác, về
trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ CHUCVU đạt chuẩn
dạng BCNF.
d) BANGLUONG (MaNV, Luongcoban, Hesoluong, Songaylamviec, MaKT,
Makyluat, Lamthemgio, Luongthemgia)
Có:
- Tập thuộc tính: MaNV, Luongcoban, Hesoluong, Songaylamviec, MaKT,
MaKL, Lamthemgio, Luongthemgia
- Thuộc tính khóa chính là MaNV, lược đồ chỉ có một khóa.
- Phụ thuộc hàm: MaNV → Luongcoban, Hesoluong, Songaylamviec, MaKT,
MaKL, Lamthemgio, Luongthemgia.
Quan hệ chỉ có một phụ thuộc hàm trên, không có phục thuộc hàm nào khác, về
trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ BANGLUONG đạt
chuẩn dạng BCNF.
e) KHENTHUONG (MaKT, LoaiKT, MucKT)
Có:
- Tập thuộc tính: MaKT, LoaiKT, MucKT
- Thuộc tính khóa chính là MaKT, lược đồ chỉ có một khóa.
- Phụ thuộc hàm: MaKT → LoaiKT, MucKT.
Quan hệ chỉ có một phụ thuộc hàm trên, không có phục thuộc hàm nào khác, về
trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ KHENTHUONG đạt
chuẩn dạng BCNF.
f) KYLUAT (Makyluat, Loaikyluat, Muckyluat)
Có:
- Tập thuộc tính: Makyluat, Loaikyluat, Muckyluat
- Thuộc tính khóa chính là Makyluat, lược đồ chỉ có một khóa.
- Phụ thuộc hàm: Makyluat → Loaikyluat, Muckyluat.
Quan hệ chỉ có một phụ thuộc hàm trên, không có phục thuộc hàm nào khác, về
trái của phụ thuộc hàm là thuộc tính khóa. Vậy lược đồ quan hệ KYLUAT đạt chuẩn
dạng BCNF.
4. Ràng buộc toàn vẹn dữ liệu
a) NHANVIEN (MaNV, HoNV, TenNV, Gioitinh, Ngaysinh, Quequan,
Maphongban, Machucvu, Noilam)
Khóa của lược đồ quan hệ này là MaNV.
Xét r là một quan hệ trên lược đồ quan hệ NHANVIEN, ta xây dựng MaNV
gồm các ký tự viết tắt của chi nhánh và số thứ tự của các nhân viên đó tại chi nhánh.
Ví dụ: DN001 là ký tự đầu “DN” của mã nhân viên là viết tắt của Đà Nẵng và “001”
là thứ tự của nhân viên đó tại chi nhánh Đà Nẵng. Các chi nhánh đặt tại các địa điểm
không trùng tên, nên MaNV là duy nhất. Ta có ràng buộc toàn vẹn về khóa chính như
sau:
∀
t
1
, t
2
∈
r → t
1
.MaNV ≠ t
2
.MaNV
Ràng buộc này qui định MaNV không được trùng nhau và không NULL.
b) PHONGBAN (Maphongban, Tenphongban, Diachiphongban)
Khóa của lược đồ quan hệ này là Maphongban.
Xét r là một quan hệ trên lược đồ quan hệ PHONGBAN, ta xây dựng
Maphongban gồm các kí tự viết tắt của chi nhánh và ký tự viết tắt của tên phòng ban
đó. Ví dụ: DNTCKT là 2 ký tự đầu “DN” của mã phòng ban là viết tắt của Đà Nẵng
và “TCKT” là viết tắt của tên Tài chính kế toán. Các chi nhánh đặt tại các địa điểm
không trùng tên, các phòng ban cũng không trùng tên nên Maphongban trong toàn
công ty là duy nhất. Ta có ràng buộc toàn vẹn về khóa chính như sau:
∀
t
1
, t
2
∈
r → t
1
.Maphongban ≠ t
2
.Maphongban
Ràng buộc này qui định Maphongban không được trùng nhau và không NULL.
c) CHUCVU (MaCV, Chucvu, Phucap)
Khóa của lược đồ quan hệ này là MaCV.
Xét r là một quan hệ trên lược đồ quan hệ CHUCVU, ta xây dựng Macv gồm
các kí tự viết tắt của tên chức vụ đó. Ví dụ: “PTP” là ký tự viết tắt của chức vụ Phó
trường phòng, “GDCN” là ký tự viết tắt của chức vụ Giám đố chi nhánh. Các chức vụ
không trùng tên nên MaCV là duy nhất. Ta có ràng buộc toàn vẹn về khóa chính như
sau:
∀
t
1
, t
2
∈
r → t
1
.MaCV ≠ t
2
.MaCV
Ràng buộc này qui định MaCV không được trùng nhau và không NULL.
d) BANGLUONG (MaNV, Luongcoban, Hesoluong, Songaylamviec, MaKT,
Makyluat, Lamthemgio, Luongthemgia)
Khóa của lược đồ quan hệ này là MaNV. Các quy định ràng buộc toàn vẹn dữ
liệu trong lược đồ này tương tự lược đồ quan hệ NHANVIEN.
e) KHENTHUONG (MaKT, LoaiKT, MucKT)
Khóa của lược đồ quan hệ này là MaKT.
Xét r là một quan hệ trên lược đồ quan hệ KHENTHUONG, ta xây dựng MaKT
gồm các kí tự viết tắt của hình thức khen thưởng đó. Các hình thức khen thưởng
không trùng tên nên MaKT là duy nhất. Ta có ràng buộc toàn vẹn về khóa chính như
sau:
∀
t
1
, t
2
∈
r → t
1
.MaKT ≠ t
2
.MaKT
Ràng buộc này qui định MaKT không được trùng nhau và không NULL.
f) KYLUAT (Makyluat, Loaikyluat, Muckyluat)
Khóa của lược đồ quan hệ này là Makyluat.
Xét r là một quan hệ trên lược đồ quan hệ KYLUAT, ta xây dựng Makyluat gồm
các kí tự viết tắt của hình thức kỷ luật đó. Ví dụ: “CC” là ký tự viết tắt của hình thức
kỷ luật Cảnh cáo. Các hình thức kỷ luật không trùng tên nên MaCV là duy nhất. Ta
có ràng buộc toàn vẹn về khóa chính như sau:
∀
t
1
, t
2
∈
r → t
1
.Makyluat ≠ t
2
.Makyluat
Ràng buộc này qui định Makyluat không được trùng nhau và không NULL.
Cơ sở dữ liệu như trên đảm bảo ràng buộc tham chiếu
5. Tổ chức vật lý của cơ sở dữ liệu
NHANVIEN (MaNV, HoNV, TenNV, Gioitinh, Ngaysinh, Noisinh, Quequan,
Diachi, Dienthoai, Maphongban, Machucvu, Noilam)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 MaNV nchar(5) Mã nhân viên
2 HoNV nchar(10) Họ nhân viên
3 TenNV nchar(30) Tên nhân viên
4 Gioitinh Byte Giới tính
5 Ngaysinh Datetime Ngày sinh
7 Quequan nchar(30) Quê quán
10 Maphongban nchar(7) Mã phòng ban
11 Machucvu nchar(5) Mã chức vụ
12 Noilam nchar(20) Nơi làm
PHONGBAN (Maphongban, Tenphongban, Diachiphongban)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 Maphongban nchar(7) Mã phòng ban
2 Tenphongban nchar(20) Tên phòng ban
3 Diachiphongban nchar(30) Địa chỉ phòng ban
CHUCVU (MaCV, Chucvu, Phucap)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 MaCV nchar(5) Mã chức vụ
2 Chucvu nchar(20) Chức vụ
3 Phucap int Phụ cấp
BANGLUONG (MaNV, Luongcoban, Hesoluong, Songaylamviec, MaKT,
Makyluat, Lamthemgio, Luongthemgio)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 MaNV nchar(5) Mã nhân viên
2 Luongcoban int Lương cơ bản
3 Hesoluong float hệ số lương
4 Songaylamviec int Số ngày làm việc
5 MaKT nchar(5) Mã khen thưởng
6 Makyluat nchar(5) Mã kỷ luật
7 Lamthemgio int Làm thêm giờ
8 Luongthemgio int Lương thêm giờ
KHENTHUONG (MaKT, LoaiKT, MucKT)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 MaKT nchar(5) Mã khen thưởng
2 LoaiKT nchar(20) Loại khen thưởng
3 MucKT int Mức khen thưởng
KYLUAT (Makyluat, Loaikyluat, Muckyluat)
TT Thuộc tính Kiểu dữ liệu Mô tả
1 Makyluat nchar(5) Mã kỷ luật
2 Loaikyluat nchar(20) Loại kỷ luật
3 Muckyluat int Mức kỷ luật
III. Thiết kế phân tán cơ sở dữ liệu
1. Hạ tầng mạng
Data
Server
Các đại lý tại Đà Nẵng
Dữ liệu tại Đà Nẵng
Data
rServ
ẻ
Các đại lý tại Sài Gòn
Dữ liệu tại Sài Gòn
Data
Các đại lý tại Hà Nội
- Lược đồ tổng thể
- Lược đồ phân mảnh
- Lược đồ định vị
Servers
I
n
t
r
a
n
e
t
/
I
n
t
e
r
n
e
t
2. Phân đoạn dữ liệu
Phân tích tần suất và nhu cầu khai thác dữ liệu
W: Tạo mới và ghi E: Sửa D: Xóa
R: Đọc H: Tần suất cao L: Tần suất thấp
Dựa vào yêu cầu của hệ thống và đặc điểm tổ chức hoạt động ở các chi nhánh,
chúng tôi chọn chiến lược phân đoạn như sau:
Chúng tôi sử dụng phương pháp phân đoạn ngang nguyên thủy và phân tán dữ
liệu ở 3 vị trí: Đà Nẵng, Hà Nội, TpHCM. Theo tiêu chí: Mỗi vị trí sẽ lưu trữ dữ liệu
về nhân viên liên quan đến chi nhánh mình.
Với các vị trí phân đoạn như trên cùng với sự phân tích về nhu cầu lưu trữ, truy
xuất dữ liệu về việc quản lý nhân sự và tiền lương cho từng vị trí, chúng tôi quyết định
phân mảnh cho 3 bảng NHANVIEN, PHONGBAN, BANGLUONG, còn ba bảng
CHUCVU, KHENTHUONG, KYLUAT mỗi nơi đều lưu trữ. Vị trí trung tâm đặt tại
Hà Nội có chức năng như các vị trí và đồng thời sao lưu dữ liệu, quản lý và truy cập
đến các vị trí.
Đồng thời dựa vào biểu đồ quan hệ giữa các lược đồ, ta chọn chiến lược phân
đoạn ngang nguyên thủy cho các bảng NHANVIEN và PHONGBAN; và phân đoạn
ngang dẫn xuất cho bảng BANGLUONG.
Tiêu chí phân đoạn là mỗi đoạn tương ứng dữ liệu của mỗi vị trí nào thì chỉ quản
lý dữ liệu về nhân viên của vị trí đó.
- Phân rã quan hệ NHANVIEN thành các đoạn ngang NHANVIEN1,
NHANVIEN2, NHANVIEN3 được định nghĩa như sau:
NHANVIEN1=σ
(Noilam =”Hà Nội”)
(NHANVIEN)
NHANVIEN2=σ
( Noilam=”Đà Nẵng”)
(NHANVIEN)
NHANVIEN3=σ
( Noilam =”Sài Gòn”)
(NHANVIEN)
- Phân rã quan hệ PHONGBAN thành các đoạn ngang PHONGBAN1,
PHONGBAN2, PHONGBAN3 được định nghĩa như sau:
PHONGBAN1=σ
(Maphongban =”HN*”)
(PHONGBAN)
PHONGBAN2=σ
( Maphongban=”DN*”)
(PHONGBAN)
PHONGBAN3=σ
( Maphongban =”SG*”)
(PHONGBAN)
Quan hệ Trung tâm Địa phương
NHANVIEN H.RWED H.RWED
PHONGBAN H.REW H.REW
CHUCVU L.R H.R
BANGLUONG H.RWED H.RWED
KHENTHUONG L.R H.R
KYLUAT L.R H.R
- Phân rã quan hệ BANGLUONG bằng cách phân đoạn ngang dẫn xuất theo các
đoạn NHANVIEN1, NHANVIEN2, NHANVIEN3 thu được từ phân đoạn ngang
nguyên thủy ở trên thành các đoạn ngang BANGLUONG1, BANGLUONG2:
BANGLUONG1 = BANGLUONG < NHANVIEN1
BANGLUONG2 = BANGLUONG < NHANVIEN2
BANGLUONG3 = BANGLUONG < NHANVIEN3
3. Kiểm định tính đúng đắn của việc phân đoạn
Tính đầy đủ
Tính đầy đủ của phân đoạn ngang nguyên thuỷ dựa vào các vị từ chọn được
dùng. Với điều kiện các vị từ chọn là đầy đủ, phân đoạn thu được cũng đảm bảo đầy
đủ.
Bảng NHANVIEN được phân đoạn ngang nguyên thủy, ta chọn tập vị từ là:
Noilam = “Hà Nội”
Noilam = “Đà Nẵng”
Noilam = “Sài Gòn”
Trường hợp ta chỉ xét 3 chi nhánh ứng với 3 vị trí, mở rộng n chi nhánh, ta cũng
có n vị trí và như vậy mỗi vị từ là cực tiểu và tập vị từ là đầy đủ.
Tương tự, ta dễ dàng thấy được sự phân đoạn cho 3 bảng trên là đầy đủ.
Tính tái thiết
Xét quan hệ NHANVIEN, mỗi vị trí phân đoạn ứng với vị trí chi nhánh của công
ty ở đó, vậy tập tất cả các phân đoạn chính là tất cả các nhân viên thuộc chi nhánh đó.
Hay NHANVIEN = NHANVIEN1 ∪ NHANVIEN2 ∪ NHANVIEN3
Tương tự đối với các quan hệ còn lại.
Tính tách rời
Xét quan hệ NHANVIEN, phân đoạn quan hệ NHANVIEN, các vị từ hội sơ cấp
M={m
1
, m
2
, m
3
} là:
m
1
: Noilam = “Hà Nội”
m
2
: Noilam = “Đà Nẵng”
m
3
: Noilam = “Sài Gòn”
Vì m
1
, m
2
và m
3
loại trừ tương hỗ, phân đoạn của NHANVIEN là tách rời.
Tương tự đối với các quan hệ còn lại.
4. Phân quyền khai thác dữ liệu
Thực thể Trung tâm Đà Nẵng HCM Hà Nội
NHANVIEN1 RE RWED
NHANVIEN2 RE RWED
NHANVIEN3 RE RWED
PHONGBAN1 RE RWED
PHONGBAN2 RE RWED
PHONGBAN3 RE RWED
BANGLUONG1 RE RWED
BANGLUONG2 RE RWED
BANGLUONG3 RE RWED
W: Tạo mới và ghi, E: Sửa, D: Xóa, R: Đọc
5. Cơ sở dữ liệu mô phỏng
Cơ sở dữ liệu đặt tại Hà Nội
Bảng NHANVIEN2
MaNV HoNV TenNV Gioitinh Ngaysinh Quequan Maphongban Machucvu Noilam
HN001 Trần Ngọc Đức 1 14/03/1985 Ninh Bình HNKT PTP Hà Nội
HN002 Nguyễn Văn Huệ 1 05/10/1983 Hòa Bình HNKT NVLT Hà Nội
HN003 Trần Thị Thơ 0 20/02/1985 Quảng Ninh HNKT NVKT Hà Nội
HN004 Nguyễn Phạm Hiếu 1 02/11/1982 Hà Nội HNTCKT KT Hà Nội
HN005 Lê Phước Đạt 1 12/01/1978 Vĩnh Phúc HNHCNS TP Hà Nội
HN006 Trần Anh Trung 1 15/03/1983 Phú Thọ HNKD NVBH Hà Nội
HN007 Trương Quang Sinh 1 24/12/1980 Hà Nội HNHCNS PTP Hà Nội
HN008 Nguyễn Anh Khoa 1 12/7/1985 Hà Nội HNKT NVLT Hà Nội
Bảng PHONGBAN2
Maphongban Tenphongban Diachiphongban
HNGD Giám đốc Hà Nội
HNPGD Phó giám đốc Hà Nội
HNHCNS Hành chính nhân sự Hà Nội
HNTCKT Tài chính kế toán Hà Nội
HNKT Kỹ thuật Hà Nội
HNKD Kinh doanh Hà Nội
Bảng BANGLUONG2
MaNV Luongcoban Hesoluong Songaylamviec MaKT Makyluat Lamthemgio Luongthemgio Luong
HN001
1050000
3.33
25 1
0
3 50000
HN002
1050000
2.34
24 1
0
0 50000
HN003
1050000
3.99
25 1
0
3 50000
HN004
1050000
3.66
23 1
0
0 50000
HN005
1050000
2.34
20 1
0
0 50000
HN006
1050000
2.67
19 1
0
0 50000
HN007
1050000
4.32
20 1
0
0 50000
HN008
1050000
2.34
24 1
0
0 50000
Cơ sở dữ liệu đặt tại Đà Nẵng
Bảng NHANVIEN2
MaNV HoNV TenNV Gioinh Ngaysinh Quequan Maphongban Machucvu Noilam
DN001
Dương Thanh Minh Nữ 12/09/1979 DN
DNKT TP Đà Nẵng
DN002
Phan Trung Nghĩa Nam 19/05/1984 DN
DNKT PTP Đà Nẵng
DN003
Dương Tiểu Linh Nữ 20/10/1977 QN
DNKT NV Đà Nẵng
DN004
Trương Mạnh Tường Nam 11/11/1982 DN
DNTCKT NV Đà Nẵng
DN005
Phan Trung Sơn Nam 19/08/1981 HU
DNHCNS NV Đà Nẵng
DN006
Hồ Văn Thế Nam 19/05/1981 HU
DNKD NV Đà Nẵng
DN007
Nguyễn Mỹ Hằng Nữ 03/07/1984 QB
DNHCNS NV Đà Nẵng
Bảng PHONGBAN2
Maphongban Tenphongban Diachiphongban
DNGD Giám đốc Đà Nẵng
DNPGD Phó giám đốc Đà Nẵng
DNHCNS Hành chính nhân sự Đà Nẵng
DNTCKT Tài chính kế toán Đà Nẵng
DNKT Kỹ thuật Đà Nẵng
DNKD Kinh doanh Đà Nẵng
Bảng BANGLUONG2
MaNV Luongcoban Hesoluong Songaylamviec MaKT Makyluat Lamthemgio Luongthemgio Luong
DN001
1050000
3.66 22 1 0 0
50000
DN002
1050000
2.34 25 1 0 0
50000
DN003
1050000
2.67 22 1 0 0
50000
DN004
1050000
4.32 26 1 0 0
50000
DN005
1050000
2.34 24 1 0 0
50000
DN006
1050000
3.33 23 1 0 0
50000
DN007
1050000
2.34 25 1 0 1
50000
DN008
1050000
3.99 24 1 0 1
50000
Cơ sở dữ liệu đặt tại Sài Gòn
Bảng NHANVIEN3
MaNV HoNV TenNV Gioinh Ngaysinh Quequan Maphongban Machucvu Noilam
SG001
Hoàng Thế Hùng Nam
17/09/1979 QB SGKT TP SG
SG002
Lâm Mẫu Tài Nam
07/12/1974 QB SGKT PTP SG
SG003
Hoàng Thị Lệ Nữ
01/01/1981 DN SGKT NV SG
SG004
Nguyễn Trung Đức Nam
14/12/1981 CT SGTCKT NV SG
SG005
Phạm Trọng Ba Nam
18/05/1980 CT SGHCNS NV SG
SG006
Phan Khắc Vũ Nam
01/08/1980 NA SGKD NV SG
SG007
Nguyễn Lâm Phương Nữ
26/12/1981 NA SGHCNS NV SG
Bảng PHONGBAN3
Maphongban Tenphongban Diachiphongban
SGGD Giám đốc Sài Gòn
SGPGD Phó giám đốc Sài Gòn
SGHCNS Hành chính nhân sự Sài Gòn
SGTCKT Tài chính kế toán Sài Gòn
SGKT Kỹ thuật Sài Gòn
SGKD Kinh doanh Sài Gòn
Bảng BANGLUONG3
MaNV Luongcoban Hesoluong Songaylamviec MaKT Makyluat Lamthemgio Luongthemgio Luong
SG001
1050000
3.00 26 1 0 1
50000
SG002
1050000
2.67 25 1 0 1
50000
SG003
1050000
2.67 22 1 0 0
50000
SG004
1050000
4.32 22 1 0 0
50000
SG005
1050000
2.34 24 1 0 0
50000
SG006
1050000
3.66 23 1 0 0
50000
SG007
1050000
2.34 24 1 0 0
50000
SG008
1050000
3.33 24 1 0 0
50000
3. Định vị phân đoạn dữ liệu
Hệ thống được xây dựng có 3 vị trí lưu dữ liệu là:
Vị trí 1: HN – Hà Nội
Vị trí 2: DN – Đà Nẵng
Vị trí 3: SG – Sài Gòn
Các đoạn được phân tán về các vị trí tương ứng như sau:
Vị trí NHANVIEN PHONGBAN BANGLUONG
1 1 1 1
2 2 2 2
3 3 3 3
+ Các đoạn 1 của các lược đồ được lưu trữ tại vị trí 1
+ Các đoạn 2 của các lược đồ được lưu trữ tại vị trí 2
+ Các đoạn 3 của các lược đồ được lưu trữ tại vị trí 3
Các bảng còn lại CHUCVU, KHENTHUONG và KYLUAT được lưu ở cả 3 vị
trí.
III. Xử lý vấn tin
1. Thiết kế vấn tin SQL và tối ưu hóa câu truy vấn bằng đại số quan hệ
Yêu cầu 1: Tại Hà Nội yêu cầu in ra danh sách những nhân viên có mức
lương bằng 5.000.000 đồng.
Biểu thức vấn tin bằng phép tính quan hệ theo cú pháp SQL là:
SELECT HoNV, TenNV
FROM NHANVIEN, BANGLUONG
WHERE NHANVIEN.MaNV = BANGLUONG.MaNV
AND BANGLUONG.TienLuong=5000000
Biểu thức tương đương trong đại số quan hệ là
π
HoNV, TenNV
(NHANVIEN
MaNV
(σ
TienLuong =5000000
(BANGLUONG)))
Quan hệ NHANVIEN và BANGLUONG được phân đoạn ngang thành các
đoạn NHANVIEN1, NHANVIEN2, NHANVIEN3 và BANGLUONG1,
BANGLUONG2, BANGLUONG3 được đặt ở các điạ điểm như đã trình bày ở
trên.
Kết quả của câu truy vấn:
???
Chiến lược phân tán được thể hiện như sau:
Chiến lược A
Chiến lược B
Hà Nội
π
HoNV, TenNV
(NHANVIEN1∪ NHANVIEN2 ∪ NHANVIEN3)
MaNV
(σ
TienLuong =5000000
(BANGLUONG1∪ BANGLUONG2 ∪ BANGLUONG3)))
Hà Nội
Đà Nẵng Sài Gòn
NHANVIEN3
BANGLUONG3
NHANVIEN2
BANGLUONG2
NHANVIEN1
BANGLUONG1
Yêu cầu 2: Tại Đà Nẵng yêu cầu in ra danh sách tất cả những nhân viên bị
kỷ luật ở loại “Cảnh cáo”.
Biểu thức vấn tin bằng phép tính quan hệ theo cú pháp SQL là:
SELECT HoNV, TenNV
FROM NHANVIEN, BANGLUONG, KYLUAT
WHERE NHANVIEN.MaNV = BANGLUONG.MaNV
AND BANGLUONG.Makyluat = KYLUAT.Makyluat
AND KYLUAT.Loaikyluat = “Cảnh cáo”
Biểu thức tương đương trong đại số quan hệ là
π
HoNV, TenNV
(NHANVIEN
MaNV
(BANGLUONG
Makyluat
(σ
Loaikyluat =
‘Cảnh cáo’
(KYLUAT)))
Quan hệ NHANVIEN và BANGLUONG được phân đoạn ngang thành các
đoạn NHANVIEN1, NHANVIEN2, NHANVIEN3 và BANGLUONG1,
BANGLUONG2, BANGLUONG3 được đặt ở các điạ điểm như đã trình bày ở
trên.
Kết quả của câu truy vấn
???
Chiến lược phân tán được thể hiện như sau:
Hà Nội:
Result = NhanVien’
1 ∪
NhanVien’
2 ∪
NhanVien’
3
NhanVien’
1
NhanVien’
3
NhanVien’
2
Hà Nội:
NHANVIEN’
1
= π
HoNV, TenNV
(NHANVIEN1
MaNV
(σ
TienLuong =5000000
(BANGLUONG1)))
Đà Nẵng:
NHANVIEN’
2
= π
HoNV, TenNV
(NHANVIEN2
MaNV
(σ
TienLuong
=5000000
BANGLUONG2))
Sài Gòn:
NHANVIEN’
3
= π
HoNV, TenNV
(NHANVIEN3
MaNV
(σ
TienLuong
=5000000
BANGLUONG3))