Phần IV Cơ Sở Dữ Liệu Phân Tán trong bài toán WSc
(water supply company )
i. Giới thiệu khái quát về hệ thống và các vấn đề liên quan đến hệ thống.
Dữ liệu trong bài toán WSC đợc phân tán theo phơng pháp Partition. Lý do về sự lựa chọn mô hình này đã đợc
giải thích cụ thể trong phần giới thiệu về các mô hình phân tán dữ liệu. Những nội dung đợc trình bày sau đây sẽ
chứng minh thêm tính đúng đắn của sự lựa chọn ấy.
1. Mô hình tổ chức và mô hình mạng của Công ty WSC.
WSC là cơ quan đã có nhiều năm ứng dụng máy tính trong sản xuất và quản lý kinh doanh. Từ trớc năm 1997
WSC đã sử dụng hệ máy tính IBM sau đó là các chơng trình viết bằng FoxBase và FoxPro để quản lý và tính hoá đơn
tiền nớc.Đến năm 1997 WSC đợc trang bị một hệ thống mạng máy tính hiện đại đòi hỏi một hệ thống phần mềm mới,
ứng dụng công nghệ hiện dại, có khả năng kết nối diện rộng, quản lý lợng khách hàng lớn và đáp ứng yêu cầu nghiệp
vụ là:
- Đáp ứng 142 yêu cầu do các chuyên gia t vấn nớc ngoài đa ra bao trùm lên các lĩnh vực chính :
1. Khách hàng.
2. Yêu cầu và khiếu nại của khách hàng.
3. Đồng hồ vật t, thiết bị và các vị trí lắp đặt đồng hồ.
4. Biểu giá tiền nớc và tiền phụ thu.
5. Chỉ số đồng hồ và xử lý hoá đơn tiền nớc.
6. Thu tiền.
7. Thởng phạt khách hàng.
8. Phiếu công tác, thi công và nhân sự.
- Đáp ứng yêu cầu nghiệp vụ hiện tại.
a. Tổ chức công ty:
Thể hiện qua cơ đồ hình 1.IV:
Công ty cấp nước
WSC
Hoá đơn
Chi nhánh
Sài Gòn
Chi nhánh
Các phòng, ban
Account
Server
Billing
Server
File
Server
Developer
Server2. Phạm vi của hệ thống.
Hệ thống đáp ứng 142 yêu cầu do chuyên gia t vấn nớc ngoài đa ra và các yêu cầu nghiệp vụ hiện tại của WSC.
Hệ đợc chia thành 4 phân hệ chính:
- Hệ quản lý khách hàng.
- Hệ xử lý hoá đơn và thu tiền.
- Hệ tổng hợp và phân tích thông tin.
- Hệ quản trị.
Bao gồm hơn 120 module chơng trình, 70 module làm báo cáo, 30 database triggers, 105 thực thể, 83 thủ tục và
hàm. Số bản ghi hệ thống phải lu khoảng 35 000 000 bản ghi.
II. Mô hình phân tán dữ liệu tại WSC.
1. Phân tán chức năng hoạt động giữa trung tâm và chi nhánh tại WSC.
- Trung tâm có các chức năng sau:
+ Quản lý các danh mục của hệ thống.
+ Các thông số hệ thống.
+ Các đơn vị trực thuộc: các chi nhánh, các nhà máy nớc.
+ Tạo báo cáo phục vụ cho công việc hoạt động trên toàn công ty.
- Các chi nhánh có các chức năng sau:
+ Quản lý khách hàng.
+ Quản lý các dịch vụ đối với khách hàng.
điều này.
- Phải xác định đợc nơi phát sinh dữ liệu cho một bảng nhất định (tại các chi nhánh, tại trung tâm hoặc cả hai).
- Tên của các bảng: Các module tại các chi nhánh khi thực hiện thao tác lên CSDL có một yêu cầu là tên các đối
tợng đợc sử dụng phải ổn định mặc dù đối tợng đó có thể có kiểu khác nhau (table, view, synonym, snapshot...).
Trong khi đó các bảng đợc tạo ra cha chắc đã là các đối tợng truy nhập trực tiếp của các module, mà nó phải kết hợp
với các đối tợng mới, do đó các bảng có thể phải đổi tên để cho các đối tợng có thể sử dụng tên đó. Nh vậy các
module mới có thể truy nhập trực tiếp các đối tợng.
Để đảm bảo cho mô hình dữ liệu phân tán đáp ứng đợc các chú ý trên ta phải thực hiện việc phân tích từng bảng
trong hệ thống để có đợc những thông tin cần thiết trong bảng sau:
Table name Owner Constraints
Sequences
Chú thích:
- Table name: Là tên bảng theo thiết kế hiện tại.
- Owner: Xác định xem quyền làm chủ bảng sẽ là trung tâm hay chi nhánh. Giá trị cho cột này có thể là một
trong hai giá trị 'Trung tâm' hoặc 'Chi nhánh'. Quyền làm chủ ở đây có nghĩa là các thao tác Update lên bảng sẽ do
phía nào thực hiện. Nếu một bảng nào đó có thể Update đợc từ cả trung tâm và chi nhánh thì mô hình dữ liệu phân
tán ở trên sẽ không áp dụng đợc.
- Constrains: Liệt kê tất cả các ràng buộc trên bảng theo thứ tự và khuôn dạng sau:
Primary key: PK_NAME(column1,column2,...)
Unique key: UK_NAME(column1,column2,...)
Foreign key: FK_NAME(col1,col2,...) => REF_TABLE(ref_col1,ref_col2,...)
- Sequences: Liệt kê tất cả các sequence mà bảng có sử dụng đến theo khuôn dạng sau:
SEQ_NAME(column_use_this_sequence)
Ví dụ 1:
ABC: Assign billing cycle to customers.
Owner: Branch.
Constraints:
+ ASS_BCY_PK(CUST_ID, STT)
+ ASS_BCY_BLL_CYS_FK (BRANCH_ID,BC_CODE)=>
UNION
SELECT * FROM ABC$CL
UNION
SELECT * FROM ABC$TD
UNION
SELECT * FROM ABC$GD ;
- Nếu một bảng có nguồn gốc từ trung tâm và dữ liệu của nó không phụ thuộc vào từng chi nhánh thì nó có cách
đặt tên nh sau:
Tại trung tâm có một bảng nh tên đã định.
Tại mỗi chi nhánh có một Snapshot có cùng tên.
Ví dụ: Bảng EXCHANGES có nguồn gốc từ trung tâm.
Tại trung tâm có một bảng có tên là EXCHANGES.
Tại mỗi chi nhánh có một Snapshot có tên EXCHANGES và đợc tạo ra nh sau:
CREATE SNAPSHOT EXCHANGES
AS SELECT * FROM EXCHANGES@wsc ;
- Nếu bảng có nguồn gốc trung tâm nhng bản thân dữ liệu lại phụ thuộc từng chi nhánh thì nó cùng có cách đặt
tên nh trên nhng khác ở câu lệnh tạo Snapshot.
Ví dụ: Tạo Snapshot BILLS tại chi nhánh Chợ Lớn