本教程将介绍如何使用 Oracle SQL Developer Data Modeler 向现有数据库中添加表。
大约 15 分钟
Oracle SQL Developer Data Modeler 提供了一整套数据和数据库建模工具和实用程序,包括实体关系建模、关系(模式)、数据类型或对象类型建模以及多维建模和 DDL 生成。它包括从各种源导入数据库以及导出到各种目标数据库,提供了多个格式化选项,并且通过一组预定义的设计规则来验证模型。
Oracle SQL Developer Data Modeler 将作为 SQL Developer 的扩展发布,并作为一个独立的产品面向那些只想使用可视化数据建模的开发人员。
在本教程中,您将通过导入一个现有脚本 (DDL) 创建一个初始关系模型、添加一个新表、将该表链接到现有表、创建一个子视图并生成 DDL。
开始本教程之前,您应该:
从 OTN 上安装 Oracle SQL Developer Data Modeler。
安装 Oracle Database 10g 或更高版本。
解除对 HR 用户的锁定。以 SYS 用户身份登录到 SQL*Plus 并执行以下命令:alter user hr identified by hr account unlock;
下载并解压缩 datamodel1moddb.zip 文件,该文件包含您执行该教程所需的全部文件。
注:本教程是在 Linux 环境中创建的。如果您使用的是 Windows 环境,其中的屏幕截图可能会略有不同。
在本节中,您将从 HR 示例模式中导入 DDL 以创建一个关系模型。执行以下步骤:
.
打开 Oracle SQL Developer Data Modeler。
.
选择 File > Import > DDL File。
.
您可以一次添加多个要导入的 DDL 文件。单击“+”图标添加 DDL 文件。
.
从将前提条件中的文件解压缩到的目录中选择 Open。
.
单击 OK。
.
选择 Oracle Database 11g,然后单击 OK。
.
将显示 Compare Models 窗口。您可以在该窗口中查看导入 DDL 时将发生的变化。展开 hr_cre 下面的 Tables。您会看到即将创建的表的列表。单击 Merge。
.
将显示关系图表。您可以对该图表进行缩放。单击 Zoom Out
图标。
.
现在可以看到图表的更多内容。要检查已创建的域,在 Browser 树中展开 Domains。
.
注意,域用于数据类型定义 — VARCHAR_0_0_20 或 NUMERIC_0_4_0 等域均在导入 DDL 文件期间创建。相似的数据类型(用于列定义)聚合为域。这些名称不能更改。双击 NUMERIC_0_4_0。
.
您可以通过 Domain Properties 对话框查看每个域的用途。在左侧导航器中,选择 Used in。
.
单击 Columns 选项卡。
.
可以看到使用该域的列的列表。单击 Close。在下一节中,您将创建一个新表以存储有关 employees dependents 的信息。
在本节中,您将创建一个名为 dependents 的新表,并向该表中添加许多列。执行以下步骤:
.
选择 New Table 图标,并单击图表的空白处。
.
输入 dependents 作为 Name,并在左侧导航器中单击 Columns。
注意,可以单击该页面上的 Apply,这样窗口中的标题将由 TABLE_8 变为 dependents。
.
选择 Create Column
图标。
.
将 Name 更改为 id。
导入 DDL 文件时,在 DDL 文件中为每个数据类型创建了一个域。可以选择一个格式和长度合适的域。从列表中选择 NUMERIC_0_6_0。
.
您希望 id 列成为主键。单击 PK 复选框。然后,再次单击 Create Column
图标创建另一列。
输入 first_name 作为 Name,为 Datatype 选择 Domain,然后选择 VARCHAR_0_0_20。然后再次单击 Create Column
图标。
.
输入 last_name 作为 Name,为 Type 选择 VARCHAR_0_0_25,然后再次单击 Create Column
图标。
.
输入 birthdate 作为 Name,为 Type 选择 Date,然后再次单击 Create Column
图标。
.
输入 relation 作为 Name,为 Type 选择 VARCHAR_0_0_25,然后再次单击 Create Column
图标。
.
输入 gender 作为 Name。没有长度为 1 的字符域,因此您可以使用逻辑类型。为 Datatype 选择 Logical,从 Type 下拉列表中选择 VARCHAR,为 Size 输入1,为 Units 选择 CHAR。然后单击 Create Column
图标创建另一列。
.
输入 relative_id 作为 Name,为 Datatype 选择 Domain,从下拉列表中选择 NUMERIC_0_6_0。然后单击 OK。
.
已成功创建 dependents 表。在下一节中,您将在 employees 和 dependents 之间添加一个外键。
在本节中,您将在 employees 和 dependents 表之间添加一个外键。执行以下步骤:
.
选择 New FK Relation
图标。
.
选择 employees 表,然后选择 dependents 表以创建新的 FK 关系。
.
并非所有相关项都分配了员工,因此您希望将关系修改为可选关系。取消选中 Mandatory 复选框,然后在左侧导航器中选择 Associated Columns。
.
为 Child Column 选择 relative_id。
.
单击 OK。
.
由于希望使用现有的列(而非生成的列)作为 FK,因此单击 Yes 删除生成的 FK 列。
.
您会看到,现在 relative_id 列旁边显示一个 F,这表示该列是外键列并且外键关系是可选的(通过虚线表示)。
在下一节中,您将创建子视图。
在本节中,您将使用 employees 和 dependents 表创建一个子视图。执行以下步骤:
.
可以使用几种方法创建您感兴趣的表的子集。其中一种方法是创建彼此关联的表的子视图。右键单击 dependents 表并选择 Select Neighbors。
.
接受默认的 1 个时区并单击 OK。
.
注意,现在 FK 关系和 employees 表处于选中状态,因为它们是 dependents 表的邻居。再次右键单击 dependents 表并选择 Create SubView from selected。
.
子视图已创建。可以在 Browser 窗口的子视图中展开对象,以查看对象列表。
在本节中,您将为 dependents 表创建并导出 DDL。执行以下步骤:
.
选择 File > Export > DDL File。
您也可以选择 Generate DDL 图标。
.
单击 Generate。
.
选择 Tables 选项卡。
.
您只希望为 dependents 生成 DDL。单击 Deselect All 图标。
.
选择 dependents。然后单击 Views 选项卡。
.
取消选中 emp_details_view 并单击 Sequences 选项卡。
.
单击 Deselect All 图标,然后单击 OK 为您选择的表生成 DDL。
.
查看 DDL 文件的内容。
您可以保存 DDL 并在 SQL Developer 中运行它。在本教程中,单击 Close 执行下一个教程。
在本教程中,您学习了如何:
导入 HR 模式的脚本或 DDL
在关系模型中创建表
在表间添加外键
创建子视图
生成新表的 DDL