Tài liệu Mở rộng InfoSphere Data Architect của IBM để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu cụ thể của bạn, Phần 1: Sửa đổi các mô hình của IDA và tùy chỉnh các đặc tính pot
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
432,72 KB
Nội dung
MởrộngInfoSphereDataArchitectcủaIBMđểđápứngcác
yêu cầumôhìnhhóavàtíchhợpdữliệucụthểcủabạn,
Phần 1:SửađổicácmôhìnhcủaIDAvàtùychỉnhcácđặc
tính
InfoSphere DataArchitectcủaIBM (IDA) là một môi trường phát triển toàn diện đểmôhìnhhóa
và tíchhợpdữ liệu. IDA cho phép người dùng khám phá, môhình hóa, hiển thị trực quan và liên
kết cáctài sản dữliệu đa dạng vàphân tán. IDA là một quy trình quản lý dữliệu theo đề xuất của
IBM và được tíchhợp chặt chẽ với các sản phẩm Optim®, Rational vàInfoSphere được xây
dựng bằng Eclipse. IDA hỗ trợ môhìnhhóadữliệu logic, vật lý, bảng chú giải, lưu trữ, tên miền
và tích hợp. Khi càng có nhiều khách hàng doanh nghiệp sử dụng IDA, thì càng có thêm nhu cầu
muốn mởrộngIDAđểđápứngcácyêucầumôhìnhhóavàtíchhợpdữliệu duy nhất của họ.
Như đã đề cập trước đó, IDA dựa trên Eclipse và do đó có thểmởrộng rất nhiều bằng thiết kế
của nó. Trong loạt bài này, hãy tìm hiểu thêm về các điểm mở rộng, các API vàcác nhà máy sẵn
có với IDA mà bạn có thể sử dụng đểmởrộng IDA. Xem cách mởrộngIDA để:
Duyệt qua vàsửađổicácmôhìnhIDA bằng lập trình (Phần 1).
Thêm cácđặctính mới và hiển thị chúng trong khung nhìn Properties (Phần 1).
Tạo các báo cáo môhìnhtùychỉnh (Phần 2)
Thêm các quy tắc xác nhận hợp lệ môhình (Phần 2)
Bài này giả định bạn có kinh nghiệm phát triển trình cắm thêm Eclipse và có kiến thức cơ bản về
các dự án EMF và BIRT trên Eclipse. Mã mẫu được cung cấp trong bài này được thử nghiệm
trên phiên bản 7.5.1 và 7.5.2 củaIDAvà trên phiên bản 3.4.1 và 3.4.2 của Eclipse.
Duyệt qua vàsửađổimôhìnhdữliệu logic vàmôhìnhdữliệu vật lý củaIDA bằng lập trình
Thay đổi tên sản phẩm
Ngày 16 tháng 12 năm 2008, IBM đã công bố rằng Phiên bản 7.5.1, Rational DataArchitect
(Kiến trúc sư dữliệu Rational) được đổi tên thành InfoSphereDataArchitect nhằm đề cao vai trò
của nó trong các công cụcủa Nền tảng InfoSphere (InfoSphere Foundation).
Nếu bạn cần mởrộng IDA, có khả năng là bạn sẽ cần hiểu cấu trúc môhìnhcủa nó để duyệt qua
và sửađổicácđối tượng môhìnhcủa nó. Phần này cho bạn thấy cách làm điều này bằng cách sử
dụng một môhình vật lý vàcácđối tượng của nó. Một cách tiếp cận tương tự cũng có thể được
sử dụng cho cácmôhình logic.
Mô hình SQL như là các siêu môhìnhcủacácmôhìnhIDA
Mô hình SQL, là một phầncủaDự án cơ sở môhìnhcủa Eclipse (Eclipse Model Base Project),
cung cấp nền tảng cho Dự án các công cụdữliệu (DTP - Data Tools Platform). Được xây dựng
trên Khung môhìnhhóacủa Eclipse (EMF - Eclipse Modeling Framework), môhình SQL sử
dụng các hướng dẫn thực hành công nghiệp phần mềm tốt nhất ví dụ như phát triển theo hướng
mô hình với UML, tuân thủ các tiêu chuẩn mới nhất của SQL và hỗ trợ tiêu chuẩn JDBC vàcác
tiêu chuẩn kết nối khác. (Xem phầnTài nguyên để biết thêm thông tin về DTP và EMF). IDA sử
dụng vàmởrộngmôhình SQL như là siêu môhình cho cácmôhìnhdữliệu vật lý của nó.
Duyệt qua một môhình bằng lập trình
Bắt đầu bằng cách tạo một môhìnhdữliệu vật lý với một cơ sở dữliệu SAMPLE, tạo một lược
đồ SAMP và tạo một số bảng và cột. Sau đó, hãy tìm hiểu cách viết mã Java™ để duyệt qua cơ
sở dữliệu SAMPLE và liệt kê tất cả cácđối tượng lược đồ, bảng và cột của nó.
Làm theo các bước sau để tạo một môhìnhdữliệu SAMPLE:
1. Khởi động IDAvàmởData Perspective (Phối cảnh dữ liệu) nếu nó vẫn chưa mở.
2. Tạo một dự án thiết kế dữliệu bằng cách sử dụng File > New > Data Design Project
(Dự án thiết kế dữ liệu) và gõ vào tên Dự án là Data Design (Thiết kế dữ liệu).
3. Nhấn chuột phải vào Derby Sample Connection (Kết nối mẫu Derby) trong Data Source
Explorer (Trình thám hiểm Nguồn dữ liệu) và chọn Connect (Kết nối).
4. Gõ vào bất kỳ tên người dùng nào và nhấn OK trong hộp thoại kết nối.
5. Mởrộng Derby Sample Connection và lược đồ SAMP.
6. Chọn nhiều bảng trong lược đồ SAMP như trong Hình 1.
7. Kéo các bảng từ Data Source Explorer và thả chúng vào trong dự án Data Design.
Bạn sẽ thấy môhình vật lý SAMPLE được tạo ra trong Data Project Explorer.
Hình 1. Môhình vật lý SAMPLE
Bây giờ bạn đã tạo ra môhình vật lý SAMPLE. Vì Môhình SQL của DTP là cơ sở củacác siêu
mô hìnhcủa IDA, nên điều quan trọng là xem xét môhình SQL để hiểu được cấu trúc củacác
mô hình vật lý IDA. Hình 2 cho thấy cấu trúc củamôhình SQL ở mức lược đồ.
Hình 2. Sơ đồ của lược đồ môhình SQL
Từ hình này, bạn có thể thấy rằng các cơ sở dữliệuvàcác lược đồ có nguồn gốc từ đối tượng
SQL và do đó chúng đều có cácđặc tính, ví dụ như tên, mô tả và nhãn. Trên thực tế hầu như tất
cả cácđối tượng được mô tả trong môhình SQL đều được bắt nguồn từ đối tượng SQL và chúng
tự động có cácđặctính tên, mô tả và nhãn. Một đối tượng cơ sở dữliệu có đặctính riêng của
mình, ví dụ như nhà cung cấp và phiên bản, là các chuỗi ký tự. Một đối tượng cơ sở dữliệu có
thể có từ không đến nhiều (0 n) lược đồ và một lược đồ có thể có không đến nhiều (0 n)
bảng, nhiều chỉ mục, nhiều kiểu người dùng được định nghĩa, nhiều thường trình và v.v Bạn có
thể lấy tất cả các bảng vàcác chỉ mục cho một lược đồ bằng cách gọi schema.getTables(),
schema.getIndices() và getUserDefinedTypes(), tương ứng. Mã mẫu để đọc từ một lược đồ và
lấy các bảng của nó được hiển thị trong Liệt kê 1.
Liệt kê 1. Mã mẫu để duyệt qua một cơ sở dữliệuvà lược đồ vàđể lấy cácđặctínhcủa
chúng
private void TraverseDatabase(Database db) {
System.out.println("Database: " +
db.getName());
System.out.println(" Vendor: " +
db.getVendor());
System.out.println(" Version: "+
db.getVersion());
// get schemas
Iterator schemaItor =
db.getSchemas().iterator();
while(schemaItor.hasNext()) {
Schema aSchema =
(Schema)schemaItor.next();
TraverseSchema(aSchema);
}
}
private void TraverseSchema(Schema schema) {
System.out.println("Schema: " +
schema.getName());
// get tables
Iterator tablesItor =
schema.getTables().iterator();
while(tablesItor.hasNext()) {
Table aTable =
(Table)tablesItor.next();
TraverseTable(aTable);
}
}
Hình 3 trình bày cácđối tượng của bảng SQL Model (Mô hình SQL), ở đây Table (Bảng) là một
lớp trừu tượng và có thể có một bảng với nhiều cột. Một khung nhìn là một DerivedTable có các
đặc tính bổ sung, ví dụ như biểu thức truy vấn và kiểu kiểm tra. Một bảng bền vững hoặc bảng
tạm thời có nguồn gốc từ BaseTable.
Hình 3. Sơ đồ bảng củamôhình SQL
Cấu trúc cột của SQL Model được thể hiện trong Hình 4. Một cột có nguồn gốc từ
TypedElement và nó có cácđặc tính, ví dụ như nullable và defaultValue. Theo tùy chọn một cột
có thể có một identitySpecifier hoặc generateExpression, nhưng không có cả hai.
Hình 4. Sơ đồ cột củamôhình SQL
Liệt kê 2 hiển thị mã mẫu để lấy các cột từ một bảng và đọc cácđặctínhcủa chúng.
Liệt kê 2. Mã mẫu để lấy các cột từ một bảng và đọc cácđặctínhcủa chúng
private void TraverseTable(Table table) {
System.out.println("Table: " +
table.getName());
// get columns
Iterator columnsItor =
table.getColumns().iterator();
while(columnsItor.hasNext()) {
Column aColumn =
(Column)columnsItor.next();
TraverseColumn(aColumn);
}
}
private void TraverseColumn(Column col) {
System.out.println(" Column: " +
col.getName());
// get column properties
DataType dataType = col.getDataType();
System.out.println(" Data type: "
+ dataType.getName());
boolean isNullable = col.isNullable();
System.out.println(" Is nullable:
" + Boolean.toString(isNullable));
String defaultValue =
col.getDefaultValue();
System.out.println(" Default
value: " + defaultValue);
}
Sửa đổicácđối tượng môhình bằng lập trình
Bây giờ bạn biết cách duyệt qua mô hình, bạn có thể viết mã đểsửađổimô hình. Ví dụ, để thêm
một cột SSN cho bảng EMPLOYEE, hãy thay phương thức TraverseTable() và gọi phương thức
AddSSNColumn(), như trong Liệt kê 3.
Liệt kê 3. Mã mẫu thêm một cột số SSN vào bảng
private void AddSSNColumn(Table table) {
// get database from table
Database db = table.getSchema().getDatabase();
// get the database specific model element factory
DatabaseDefinition dbDef =
DataToolsPlugin.getDefault()
.getDatabaseDefinitionRegistry().getDefinition(
db.getVendor(),
db.getVersion());
DataModelElementFactory factory =
dbDef.getDataModelElementFactory();
Column col = (Column)
factory.create(SQLTablesPackage.eINSTANCE
.getColumn());
col.setName("SSN");
CharacterStringDataType cType =
(CharacterStringDataType) dbDef
.getPredefinedDataType("CHARACTER");
cType.setLength(9);
col.setDataType(cType);
EStructuralFeature feature =
table.eClass().getEStructuralFeature(
SQLTablesPackage.TABLE__COLUMNS);
// using IDA CommandFactory to create a add command
ICommand cmd =
CommandFactory.INSTANCE.createAddCommand(
"Add SSN column", table, feature, col);
// execute the command using IDA command manager
DataToolsPlugin.getDefault().getCommandManager().execute(cmd);
}
Trong phương thức AddSSColumn, mã lấy định nghĩa cơ sở dữliệu đã đăng ký bằng cách
chuyển các chuỗi ký tự nhà cung cấp và phiên bản cơ sở dữ liệu. Sau đó, mã này sử dụng định
nghĩa cơ sở dữliệu đã đăng ký được tạo ra trong mã mẫu để lấy nhà máy củaphần tử môhình cơ
sở dữliệucụ thể. Cuối cùng, phương thức này tạo một cột bằng cách sử dụng nhà máy củaphần
tử mô hình. Nó sử dụng CommandFactory củaIDAđể tạo ra một lệnh. Phương thức
createAddCommand thêm một đối tượng giá trị vào đối tượng chủ sở hữu bằng cách sử dụng
tính năng đã quy định. Tham khảo API của phương thức createAddCommand là:
public IDataToolsCommand createAddCommand(String label, EObject owner,
EStructuralFeature feature, Object value)
Lệnh trả về mởrộng lớp AbstractTransactionalCommand của EMF. Lớp này có thể được thực
hiện lại hoặc không thực hiện. Khi bạn thực hiện phương thức AddSSNColumn, một cột SSN
được thêm vào bảng EMPLOYEE, như trong Hình 5.
Hình 5. Một cột SSN được thêm vào bảng EMPLOYEE
Về đầu trang
Thêm cácđặctínhcủa khách hàng và hiển thị chúng trong khung nhìn Properties
Khung nhìn Properties (Các đặc tính) là một trong nhiều khung nhìn mà bàn làm việc của
Eclipse cung cấp (xem phầnTài nguyên để biết thêm thông tin về khung nhìn Properties của
Eclipse). Khung nhìn Properties cho phép bạn hiển thị hoặc chỉnhsửacácđặctínhcủa một đối
tượng được chọn. Eclipse cung cấp cácphầnmởrộngđể định nghĩa một giao diện người dùng
tùy chỉnh cho khung nhìn Properties. Khi sử dụng cácphầnmởrộng Eclipse, bạn có thể tạo ra
khung nhìn cácđặctính có gắn thẻ, như trong Hình 6.
[...]... logic, bảng chú giải và môhình khác Khi bạn chỉnhsửacácđặctính này, các thay đổi vẫn được lưu giữ lâu bền trong môhìnhTùychỉnhcácthẻvàcácphầncácđặctính Vì có nhiều loại khách hàng sử dụng IDA, nên điều phổ biến là các khách hàng có các yêucầu riêng của mình về cácđặctính gắn liền với một số kiểu cácđối tượng nhất định Ví dụ, một công ty có thểyêucầu Số An Sinh Xã Hội của nhân viên (SSN)... để tuân thủ chính sách bí mật dữliệu riêng tư Công ty có thểyêucầu tiền lương và tiền thưởng của nhân viên được đánh dấu là dữliệu nhạy cảm để có thể chỉ có một số nhân viên xem được Bạn có thể tạo ra cácthẻvàcácphần riêng của mình để thực hiện việc này dễ dàng Trong cácphần sau, hãy tìm hiểu cách thêm một thẻvàcácphần mới cho cácđối tượng cột, như trong Hình 8 Hình 8 Thẻ riêng tư có tùy. .. tùychỉnh với dữliệu riêng tư vàcácphần phương thức mặt nạ cho các cột Ba điểm mởrộng được sử dụng để đóng góp vào khung nhìn cácđặctính có gắn thẻ Mỗi khung nhìn cácđặctính có gắn thẻ gồm có một trình đóng góp đặc tính, để đóng góp một hoặc nhiều thẻđặctính Mỗi thẻđặctính gồm một hoặc nhiều phần Một phần là một tiện ích giao diện người dùng đồ họa (GUI) hoặc một hỗn hợp có chứa một nhóm các. .. hiện các giao diện ITabbedPropertySheetPageContributor Như Liệt kê 4 cho thấy, điểm mởrộng này được sử dụng để định nghĩa com .ibm. datatools.properties như là ID của Trình cung cấp củacácthẻvàcácphầnđặctínhcủa IDA, được chia sẻ bởi Data Project Explorer của IDA, Data Source Explorer và Diagrams (Các sơ đồ) Ngoài ra còn có một trình ánh xạ (mapper) kiểu, một nhà cung cấp nhãn vàcácthể loại đặc. .. nhiều đặctính Trình cung cấp đặctính Điểm mởrộng org.eclipse.ui.views.properties.tabbed.PropertyContributor được dùng để định nghĩa mã định danh (ID) duy nhất của Trình cung cấp cho cácthẻvàcácphầncủa bạn Mã định danh này thường phù hợp với ID duy nhất củaphần bàn làm việc, góp phần vào khung nhìn cácđặctính có gắn thẻ Một phần bàn làm việc xác định một Trình cung cấp đặctính riêng lẻ bằng cách... hoặc nhiều phần Ví dụ, trong thẻ General, hãy lưu ý cácphần Name (tên), Label (Nhãn) và Schema (Lược đồ), trong thẻ Columns, lưu ý cácphầnđể liệt kê Name, Primary Key (Khóa chính), Domain (Miền), Data Type (Kiểu dữ liệu) vàcácđặctính khác Hình 7 cho thấy cácphần khác nhau này Hình 7 Thẻ Columns trong khung nhìn Properties IDA cung cấp nhiều thẻvà nhiều phầnđặctính dựng sẵn trong cácđối tượng.. .Hình 6 Thẻ General trong khung nhìn Properties IDAmởrộng khung nhìn Properties có gắn thẻđể hiển thị dữliệucủacácđối tượng môhình Như trong Hình 6, khi bạn chọn một bảng EMPLOYEE trong môhìnhdữliệu vật lý SAMPLE từ Data Source Explorer, bạn sẽ thấy cácthẻ General (Chung), Columns (Các cột), Relationships (Các mối quan hệ), Documentation (Tài liệu) và Annotation (Chú thích)... phầnđặctính Lớp này sẽ mởrộng từ lớp org.eclipse.ui.views.properties.tabbed.AbstractPropertySection Như trong Liệt kê 7, các chức năng cơ bản của lớp thực hiện gồm: Tạo tiện ích GUI để hiển thị cácđặctính riêng tư, bao gồm cả một hộp kiểm riêng tư và một nút điều khiển văn bản mặt nạ (phương thức createControls) Đọc giá trị đặctính từ mô hìnhvà hiển thị nó (các phương thức setInput và. .. của nó Điểm mở rộng PropertySections có thể định nghĩa một hoặc nhiều phần thông qua thuộc tính PropertySection Mỗi phần thuộc về một thẻ, khi được xác định bằng mã định danh duy nhất củathẻcủa nó Các thuộc tính có thể được định nghĩa bằng cách sử dụng điểm mở rộng này là: id— ID duy nhất cho thẻ đó tab— ID củathẻ trong đó phần này được hiển thị class— ID củaphần mà phần này được đặt... đặctính được định nghĩa với điểm mởrộng này Người dùng IDA không cần làm bất cứ điều gì với điểm mởrộng này nếu họ sử dụng Data Project Explorer, Data Source Explorer và Diagrams củaIDA Liệt kê 4 Trình cung cấp đặctínhIDA . Mở rộng InfoSphere Data Architect của IBM để đáp ứng các
yêu cầu mô hình hóa và tích hợp dữ liệu cụ thể của bạn,
Phần 1: Sửa đổi các mô hình của IDA. IDA và tùy chỉnh các đặc
tính
InfoSphere Data Architect của IBM (IDA) là một môi trường phát triển toàn diện để mô hình hóa
và tích hợp dữ liệu. IDA
Hình 1.
Mơ hình vật lý SAMPLE (Trang 3)
Hình 2.
Sơ đồ của lược đồ mô hình SQL (Trang 4)
Hình 3
trình bày các đối tượng của bảng SQL Model (Mơ hình SQL), ở đây Table (Bảng) là một lớp trừu tượng và có thể có một bảng với nhiều cột (Trang 5)
Hình 3.
Sơ đồ bảng của mô hình SQL (Trang 6)
Hình 4.
Sơ đồ cột của mô hình SQL (Trang 7)
i
ệt kê 2. Mã mẫu để lấy các cột từ một bảng và đọc các đặc tính của chúng (Trang 8)
Hình 5.
Một cột SSN được thêm vào bảng EMPLOYEE (Trang 10)
Hình 6.
Thẻ General trong khung nhìn Properties (Trang 11)
m
ở rộng khung nhìn Properties có gắn thẻ để hiển thị dữ liệu của các đối tượng mô hình (Trang 11)
Hình 8.
Thẻ riêng tư có tùy chỉnh với dữ liệu riêng tư và các phần phương thức mặt nạ cho các cột (Trang 12)