65.9K
CodeProject 正在变化。 阅读更多。
Home

一个简单的实体、关系、属性、类/对象数据建模工具

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.64/5 (4投票s)

2002年9月7日

7分钟阅读

viewsIcon

74658

downloadIcon

1350

这个数据库工具支持简单的实体、关系、属性、类和对象的建模。类就像类型定义,对象就像类的实例。

Sample Image

引言

这段源代码是一个小型的数据建模原型工具,支持实体、关系和属性。更多功能将在下面的帮助文件内容中描述。像Erwin和SA这样的商业数据建模工具用于设计、修改和维护数据库。

源文件中的一些精彩技术细节

  • HTML 包含多个 JScript 源文件 - 文件 dbtv3.hta,第 7-18 行
  • HTML HTA 标签用于本地应用程序 - 文件 dbtv3.hta,第 9 行
  • 将 HTML initialize 和 terminate 连接到 JScript 函数 - 文件 dbtv3.hta.js,第 19 行
  • 将 HTML 按钮连接到 JScript 函数 - 文件 dbtv3.hta,第 22-33 行
  • 将 HTML 列表框连接到 JScript 函数 - 文件 dbtv3.hta,第 34-37 行
  • HTML 读取单行字符串 - 文件 dbtv3.hta,第 38-45 行
  • HTML 读取多行列表框 - 文件 dbtv3.hta,第 46-52 行
  • HTML STYLE 绝对定位小部件 - 文件 dbtv3.hta,第 22-55 行
  • ADO 连接字符串用于 Jet 4.0 和 SQL Server 2000 - 文件 global3.js,第 7-8 行
  • 创建新的 XML 对象 - 文件 global3.js,第 93 行
  • 将 XML 文本文件读入内存 - 文件 global3.js,第 94-102 行
  • 打开新的文本文件用于磁盘输出 - 文件 global3.js,第 155-156 行
  • 将一行写入磁盘文件 - 文件 global3.js,第 192 行
  • 为输出打开新的 HTML 窗口 - 文件 global3.js,第 145-147 行
  • 将一行写入 HTML 窗口 - 文件 global3.js,第 185 行
  • 清空 HTML 列表框 - 文件 screen3.js,第 12, 65 行
  • 从 HTML 列表框获取选定索引 - 文件 screen3.js,第 21, 74 行
  • 从 HTML 列表框获取选定项 - 文件 screen3.js,第 43-48, 74-80 行
  • 向 HTML 列表框添加项 - 文件 screen3.js,第 56-57, 109-110 行
  • 嵌套函数调用 - 文件 screen3.js,第 27, 80 行
  • 隐藏 HTML 小部件 - 文件 screen3.js,第 192-195, 360-361 行
  • 显示 HTML 小部件 - 文件 screen3.js,第 294-295, 417 行
  • 将焦点设置在 HTML 小部件上 - 文件 screen3.js,第 296 行
  • 使用变量调用 JScript 函数 - 文件 screen3.js,第 266-270, 473-476 行
  • 压缩 ADO Jet MDB 文件 - 文件 adodb3.js,第 40-41 行
  • 创建新的 ADO Jet MDB 文件 - 文件 adodb3.js,第 110-112 行
  • ADO 连接到数据库 - 文件 adodb3.js,第 69-70 行
  • ADO 断开数据库连接 - 文件 adodb3.js,第 86-91 行
  • ADO 创建新的 SQL 表 - 文件 adodb3.js,第 159-184, 200-239 行
  • ADO 创建新的 SQL 表列 - 文件 adodb3.js,第 159-184, 200-239 行
  • ADO 创建新的 SQL 表自增列 - 文件 adodb3.js,第 159-184, 200-239 行
  • ADO 创建新的 SQL 表索引 - 文件 adodb3.js,第 159-184, 200-239 行
  • ADO 运行 SQL 并返回记录集 - 文件 adodb3.js,第 565, 610-637 行
  • ADO 运行 SQL 且不返回记录集 - 文件 adodb3.js,第 516-534 行
  • ADO 获取表、列和索引数据库信息 - 文件 adodb3.js,第 729-731, 754-782 行
  • 使用 try/catch 进行错误处理 - 文件 adodb3.js,第 67-77, 84-98 行
  • 从 JScript 运行 DOS 命令 - 文件 adodb3.js,第 42-48 行
  • 解析文件路径 - 文件 adodb3.js,第 26-36 行
  • ADO 向表中添加新记录 - 文件 ents3.js,第 26-35, 509-518 行
  • ADO 获取新添加记录的 @@IDENTITY - 文件 ents3.js,第 37, 520 行
  • XML 嵌套函数调用 - 文件 ents3.js,第 138, 144, 148 行
  • XML 获取节点列表 - 文件 ents3.js,第 138 行
  • XML 获取节点文本值 - 文件 ents3.js,第 148 行
  • ADO 循环遍历记录集 - 文件 ents3.js,第 313-322, 356-364 行
  • SQL 删除记录 - 文件 ents3.js,第 67 行
  • SQL 更新记录 - 文件 ents3.js,第 105 行
  • SQL 读取记录 - 文件 ents3.js,第 216 行
  • SQL 三重连接查询 - 文件 ents3.js,第 691-697 行

帮助文件内容

  1. 概念
  2. 屏幕布局
  3. 快速演示导览
  4. 按钮详解
  5. 约束
  6. 测试数据
  7. SQL 表
  8. ZIP 文件

1. 概念

数据库工具支持实体、关系、属性、类和对象的简单数据建模。类就像类型定义,对象就像类的实例。

一些提供更多数据建模信息的网站

2. 屏幕布局

+----------------------------------------+
| Database Tool                          |
| H  +--------+  +--------+  +--------+  |
| C  |        |  |        |  |        |  |
| T  |  ENTS  |  |  RELS  |  | ATTRS  |  |
| I  |        |  |        |  |        |  |
| E  |        |  |        |  |        |  |
| M  +--------+  +--------+  +--------+  |
|                                        |
| C  +--------------------+  +--------+  |
| O  |                    |  |        |  |
| C  |  OUTPUT            |  | MULTI  |  |
| D  |                    |  |        |  |
| U  |                    |  |        |  |
| Q  +--------------------+  +--------+  |
|    |  QUERY             |    O  C      |
|    +--------------------+              |
|                                        |
+----------------------------------------+

按钮沿屏幕左边缘排列

 帮助    

  显示帮助信息

 配置  

  配置数据库

 测试    

  写入测试数据

 导入  

  导入 XML 数据

 导出  

  导出 XML 数据

 杂项    

  打开/关闭跟踪


 类   


  切换到类数据

 对象  

  切换到对象数据

 创建  

  创建数据

 删除  

  删除数据

 更新  

  更新数据

 查询   

  运行 SQL 语句

屏幕区域的命名如下。点击 ENTS、RELS 和 ATTRS 区域中的数据,将在 OUTPUT 区域显示该数据的详细信息。

 实体    

  显示实体数据

 关系    

  显示关系数据

 属性   

  显示属性数据

 输出   

  按下按钮后显示输出数据

 查询   

  使用按钮时出现

 多用途  

  按钮的多用途区域

 确定    

  使用按钮时出现

 取消  

  使用按钮时出现

3. 快速演示导览

请遵循以下步骤

  1. 启动数据库工具 (dbtv3.hta)
  2. 点击 CONFIG 按钮
  3. 选择选项 "JET4.0"
  4. 输入 MDB 文件名
  5. 选择选项 "创建新的 MDB 和新表"
  6. 点击 OK 按钮

应该已经向磁盘写入了一个新创建的 MDB 文件。请在 OUTPUT 屏幕区域查看更详细的信息。

  1. 点击 TEST 按钮
  2. 选择选项 "employees projects resources"
  3. 点击 OK 按钮

示例测试数据应该已经写入磁盘。请在 OUTPUT 屏幕区域查看更详细的信息。

  1. 点击 CLASSES 按钮
  2. 点击 OBJECTS 按钮
  3. 点击 ENTS、RELS、ATTRS 屏幕区域中的记录

切换类和对象时,屏幕区域会刷新。点击一条记录将刷新 OUTPUT 屏幕区域,显示有关该记录的详细信息。

4. 按钮详解

  • HELP 按钮

       显示此帮助文件

  • CONFIG 按钮

       配置 Jet40 或 SQL Server 2000 数据库

       Jet40
       创建新的 MDB 和新表
       现有的 MDB 和现有的表
       现有的 MDB 和创建新表
       现有的 MDB 和压缩 MDB

       SQL Server 2000
       创建新表
       使用现有表
       清空现有表

  • TEST 按钮

       将测试数据写入表

       员工 资源 项目
       字母数字随机

  • IMPORT 按钮

       从平面文件导入 XML 数据

  • EXPORT 按钮

       将 XML 数据导出到平面文件

  • MISC 按钮

       打开/关闭跟踪窗口

  • CLASSES 按钮

       切换到类数据

  • OBJECTS 按钮

       切换到对象数据

  • CREATE 按钮

       创建类实体
       创建类关系
       创建类属性
       创建对象实体
       创建对象关系
       创建对象属性

  • DELETE 按钮

       删除类实体
       删除类关系
       删除类属性
       删除对象实体
       删除对象关系
       删除对象属性

  • UPDATE 按钮

       将属性添加到类实体
       将属性添加到类关系
       将属性添加到对象实体
       将属性添加到对象关系
       从类实体中移除属性
       从类关系中移除属性
       从对象实体中移除属性
       从对象关系中移除属性
       更改类实体名称
       更改类关系名称
       更改类属性名称
       更改对象属性值

  • QUERIES 按钮

       运行 SQL 语句

5. 约束

数据库工具实现了一些有用的约束。

  1. 实体、关系和属性的名称必须唯一。
  2. 关系具有源和目标,两者都可以是实体或另一个关系。
  3. 属性可以添加到实体和关系中。
  4. 只有当类实体/关系已经具有该类属性时,才能将对象属性添加到对象实体和关系中。
  5. 对象关系中源和目标的“对象”必须与类关系中源和目标的“类”相同。
  6. 删除类实体、关系和属性也会自动删除为这些类创建的任何对象。
  7. 删除实体或关系也会自动删除其使用的属性,但不会删除属性本身。
  8. 删除类/对象实体/关系如果被关系使用,将留下悬空的源和目标指针。

6. 测试数据

使用 TEST 按钮创建示例数据。

选项“字母数字随机”会生成大量测试数据。

选项“employees projects resources”有 3 个类实体、2 个类关系、7 个类属性、9 个对象实体、9 个对象关系和 27 个对象属性。ZIP 文件中的 TEST1.MDB 文件已经包含了这个示例数据。

  • 类实体:员工、资源、项目
  • 类关系:分配给、预算用于
  • 类属性:姓名、职位、薪资、设备、用品、地点、优先级

7. SQL 表

数据库工具使用这 8 个 SQL 表。数据列标题显示在 ENTS、RELS、ATTRS 和 OUTPUT 区域。

Table:   CLSENTS                Table:   OBJENTS
Column:  ID                     Column:  ID
Column:  NAME                   Column:  CLSID

Table:   CLSRELS                Table:   OBJRELS
Column:  ID                     Column:  ID
Column:  NAME                   Column:  CLSID
Column:  SRCID                  Column:  SRCID
Column:  SRCTYP                 Column:  SRCTYP
Column:  DSTID                  Column:  DSTID
Column:  DSTTYP                 Column:  DSTTYP

Table:   CLSATTRS               Table:   OBJATTRS
Column:  ID                     Column:  ID
Column:  NAME                   Column:  CLSID
                                 Column:  ATTRVAL

Table:   CLSHASATTRS            Table:   OBJHASATTRS
Column:  ATTRID                 Column:  ATTRID
Column:  USEDBYID               Column:  USEDBYID
Column:  USEDBYTYP              Column:  USEDBYTYP

8. ZIP 文件

DBTV3.ZIP 文件应包含以下文件

10/12/2002  12:55 AM            17,974 adodb3.js
10/12/2002  12:55 AM            19,564 attrs3.js
10/12/2002  12:55 AM            37,716 buttns3.js
10/12/2002  12:55 AM             1,926 dbic1.ico
10/12/2002  12:55 AM             1,926 dbic2.ico
10/12/2002  12:55 AM             1,926 dbic3.ico
10/12/2002  12:55 AM             1,926 dbic4.ico
10/12/2002  12:55 AM             6,483 dbtv3.hta
10/12/2002  12:55 AM            20,462 ents3.js
10/12/2002  12:55 AM             6,331 global3.js
10/12/2002  12:55 AM            19,764 gnugpl.js
10/12/2002  12:55 AM             9,803 readme3.txt
10/12/2002  12:55 AM            30,166 rels3.js
10/12/2002  12:55 AM            19,488 screen3.js
10/12/2002  12:55 AM           249,856 test1.mdb

数据库工具版本 3
版权所有 (C) 2002 GCH Productions
GNU 通用公共许可证,已通过引用包含
WWW.GREGHOP.COM

© . All rights reserved.