创建数据库模型(又称为“实体关系图”)

创建数据库模型(又称为“实体关系图”)

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

数据库模型图模板中,您可以创建新的模型或使用关系转化为模型中实施反向工程现有数据库或对象关系建模概念。使用基于 SQL92 及以前标准的数据库模型实体关系模具。使用对象关系的模具,其中含有用于处理类型,基于 SQL99 和更高版本的标准的数据库模型的其他形状。

数据库模型示例

数据库模型图模板中,您可以创建新的模型或使用关系转化为模型中实施反向工程现有数据库或对象关系建模概念。使用基于 SQL92 及以前标准的数据库模型实体关系模具。使用对象关系的模具,其中含有用于处理类型,基于 SQL99 和更高版本的标准的数据库模型的其他形状。

本文介绍如何创建数据库模型,创建模型后可对其执行哪些操作。

找不到该数据库模型功能?

并非每个版本的 Microsoft Visio 具有数据库模型功能。如果找不到本文中的过程中介绍的功能,您很可能有不包括的 Visio 版本。

  • Microsoft Visio 标准版不包括数据库模型图模板。

  • Microsoft Visio 专业版和高级版支持反向工程功能在数据库模型图模板 (即,使用现有数据库以在 Visio 中创建模型),但它不支持转发工程 (即,使用 Visio 数据库模型生成 SQL 代码)。

  1. 要开始创建数据库模型图,请执行下列操作之一:

    从头开始创建新的模型图

    如果没有所需的现有数据库作为起点,可以从一个空白数据库模型开始,将您的表和关系添加到这个空白模型中。

    1. 单击“文件”选项卡。

    2. 单击新建,单击软件和数据库,然后双击数据库模型图

    3. 数据库选项卡的管理组中,单击显示选项

    4. “数据库文档选项”对话框中,选择要使用的符号集及其他表和关系选项,然后单击“确定”

    使用现有数据库作为起始点

    如果有一个数据库,您要建立该数据库的模型以便更加了解该数据库,或者要将该数据库作为建立新模型的起点,则可以使用“反向工程向导”提取该数据库的架构或结构,然后建立新模型。

    在启动该向导之前:

    1. 如果您是反向工程启动向导之前的 Microsoft Excel 工作簿中,您需要打开的工作簿和命名包含列标题的单元格组 (或区域)。如果您想要使用多个工作表,只需名称列中每个工作表的单元格组。这些范围视为向导中的表。有关如何命名单元格区域的详细信息,请参阅 Excel 帮助标题定义已命名的单元格引用或区域中的主题。

    2. 为获得最佳效果,请在运行“反向工程向导”之前将您的默认驱动程序设置为要进行反向工程的目标数据库。此步骤可以确保该向导正确映射本地数据类型,并可以确保该向导提取的所有代码均正确显示在“代码”窗口中。

    3. 单击“文件”选项卡。

    4. 单击新建,单击软件和数据库,然后双击数据库模型图

    5. 数据库选项卡上的模型组中,单击反向工程

    6. 在“反向工程向导”的第一个屏幕上,执行下列操作:

      1. 选择您的数据库管理系统 (DBMS) 的数据库驱动程序。如果您尚未 Visio 数据库驱动程序与特定的 ODBC 数据源关联,单击设置

        注意: 如果您是反向工程 Excel 工作表,选择 ODBC 通用驱动程序。

      2. 选择您正在更新的数据库的数据源。如果尚未创建现有数据库的数据源,单击新建来立即执行此操作。

        当您创建新的源时,其名称将添加到数据源列表中。

      3. 对设置感到满意后,单击“下一步”

    7. 按照任何特定于驱动程序的对话框的指导执行操作。

      例如,在连接的数据源对话框中,键入用户名和密码,,然后单击确定

      注意: 如果您使用通用 ODBC 驱动程序,您可能会收到错误消息,指示反向工程的信息可能不完整。在大多数情况下,这不是问题-只需单击确定,然后继续按照向导。

    8. 选中代表要提取的信息类型的复选框,然后单击“下一步”

      注意: 有些项可能不可用(显示为灰色),因为不是所有的数据库管理系统都支持向导能够提取的所有元素类型。

    9. 选择您想要提取,或单击选择所有提取的表和视图,如果有) 对应的复选框,然后单击下一步

      注意: 如果进行反向工程 Excel 工作表和看不到此列表中的任何内容,则可能需要命名的单元格区域,其中包含您的工作表中的列标题。

    10. 如果选中存储过程复选框,选择要从中提取的过程,或单击全选提取所有,然后单击下一步

    11. 选择是否要将进行了反向工程的项自动添加到当前页面中。

      注意: 您可以选择让向导会自动创建绘图,此外列出进行反向工程的项表和视图窗口中。如果您决定不会自动创建绘图,您可以将项目从表和视图窗口中拖动到绘图页上,以便手动组合数据库模型。

    12. 检查选择,验证所提取的信息是您需要的信息,然后单击“完成”

      向导在“输出”窗口中提取出选定的信息并显示有关提取过程的说明。

    导入和优化现有模型

    如果有一个现有 VisioModeler 或 PLATINUM ERwin 模型,您或许能够将其导入以创建一个 Visio 数据库模型图。该功能仅限于 VisioModeler 2.0 或更高版本的词典模型 (.imd) 文件以及 PLATINUM ERwin 2.6、3.0 和 3.52 .erx 文件。

    1. 单击“文件”选项卡。

    2. 单击新建,单击软件和数据库,然后双击数据库模型图

    3. 数据库选项卡上的模型组中,单击导入,,然后单击模型类型。

    4. 键入要导入模型的路径和名称,或单击“浏览”按钮定位模型文件,然后单击“打开”

    5. “导入”对话框中,单击“确定”

      Visio 导入文件并在“输出”窗口中显示其导入进度。所导入的表显示在“表和视图”窗口中。

    6. 在“表和视图”窗口中,选择要建模的表,然后将其拖到绘图页上。

  2. 创建数据库模型图之后,图的优化的工作开始。您可以添加和自定义表和视图、 创建关系,并自定义列和数据类型。

    使用“实体”形状在图中创建表。

    1. “实体关系”“对象关系”模具中,将一个“实体”形状拖到绘图上。

    2. 双击该形状以打开“数据库属性”窗口。

    3. “类别”下,单击“定义”,然后键入表的名称。

    4. 类别下单击分栏,键入一个名称,然后选择数据类型。

    5. 选择不能包含 null 值的列的必需复选框。

    6. 对于唯一标识数据库表中的每一行的列,选中“PK”(主关键字)复选框。

    7. “类别”下,单击“索引”“触发器”“检查”“扩展”以创建这些可选元素。

    使用数据库属性窗口中添加或更改列,包括数据类型和主键的属性。

    1. 在您的图中双击表。

    2. “数据库属性”窗口的“类别”下,单击“列”

    3. 单击第一个空物理名称单元格,然后键入一个名称。

    4. 若要更改列的数据类型,请单击列的数据类型字段,然后从列表中选择一种数据类型或键入列表。例如,您可以键入decimal(8,2)char (30)

    5. 若要阻止空值,请选中“必需的”复选框。

    6. 若要将列指定为主关键字,请选中“PK”复选框。

    7. 若要在单击“列”类别时看到除显示的列以外的更多列属性,请选择该列然后单击“编辑”

    关系

    关系使用主键和外键以允许数据库以匹配一个表中包含相关表中的行的行。您可以在图表中显示这些关系。此外,您可以设置其基数 (例如,-一对多),并且使用 Crow's 英尺、 关系或 IDEF1X 表示法显示基数。您无法在数据库模型图模板中显示这些批注中的任何多对多关系。

    1. 创建两个表之间的关系:

      1. 确保图中两个表均可见。如果对现有数据库中的模型进行了反向工程,则可能需要将一个或两个表从“表和视图”窗口拖到绘图页上。

      2. 双击要作为关系的主关键字方的表。

      3. “数据库属性”窗口的“类别”下,单击“列”

      4. 在网格中,单击您想要使用唯一标识表中,每行的列,然后选择主键复选框以将其设置为主键。

      5. “对象关系”“实体关系”模具中,将一个“关系”形状拖放到该绘图页的一个空白区。

      6. 将高端连接到父表。

      7. 将低端连接到子表。

        如果第二个表不包含与主关键字同名的列,建模器会将与主键同名的列作为外键添加到第二个表中。

        注意: 如果关系线消失,请在数据库选项卡,在管理组中,单击显示选项。在关系选项卡下显示,请选择关系复选框。

    2. 设置关系的基数:

      1. 双击关系。

      2. “数据库属性”窗口的“类别”下,单击“杂项”

      3. 基数,下选择最适合该关系的基数。对于-一对多关系,最佳选择是零或更多一个或多个。对于一对一关系,最佳选择是零或一个完全一

  3. 要对图进行其他优化(如创建索引、检查子句和触发器),可以执行下列操作:

    创建索引

    索引有助于提高运行查询时的数据库性能或速度。

    1. 打开数据库模型图。

    2. 双击您要添加索引的表,然后在数据库属性窗口中,在类别列表中,单击索引

    3. 单击“新建”。

    4. “创建索引”对话框中,键入索引的名称,然后单击“确定”

    5. “索引类型”列表中,选择一个选项以创建一个唯一或非唯一索引。

    6. “可用的列”列表中,选择要包含在此索引中的每一列的名称,然后单击“添加 >”

    7. “编入索引的列”列表中,选中“Asc”复选框以创建一个按升序排序的索引,或清除该复选框以创建一个降序排序的索引。

      数据库模型图即更新。

    创建视图

    您可以将视图视为保存的查询。如果需要重复访问来自多个表中的相同的信息,或者如果希望向用户公开数据又不允许他们更改实际的表时,视图尤其方便。

    “实体关系”“对象关系”模具中,将一个“视图”形状拖到绘图页上。

    为表和视图设置扩展的属性

    根据数据库管理系统 (DBMS),您或许能够设置扩展的属性表或视图以确定存储位置。

    双击表或查看其扩展的属性您想要设置,并在数据库属性窗口中,在类别列表中,单击扩展

    创建检查子句

    使用检查子句可确保输入列中的数据在特定的值范围内。例如,可以创建一个检查子句,它要求名称为“年龄”的列中的数据大于 65。

    1. 双击表以打开“数据库属性”窗口。

    2. “类别”下,单击“列”,然后单击要为其添加检查子句的列。

    3. 单击“编辑”

    4. “列属性”对话框的“检查”选项卡上,输入所需的约束。

      检查子句添加到在本地代码下的代码窗口。

    创建存储的过程和用户定义的函数

    使用存储的过程和用户定义函数创建的可重用重复执行相同操作的代码包。两个之间的区别是用户定义函数返回一个值,而不返回值的存储的过程执行代码。

    1. 数据库选项卡上的显示/隐藏组中,选择代码复选框以打开代码窗口。

    2. 单击“全局代码”,然后单击“新建”

    3. “代码编辑器”“属性”选项卡上,单击要创建的代码类型,然后为代码键入一个名称。

    4. “正文”选项卡上,键入代码,然后单击“确定”

    创建触发器

    当数据库中出现特定的事件时,触发器会使您在触发器中指定的 SQL 代码运行。

    1. 双击表以打开“数据库属性”窗口。

    2. “类别”下,单击“触发器”,然后单击“添加”

    3. “属性”选项卡上,为触发器键入一个名称。

    4. “正文”选项卡上,键入代码,然后单击“确定”

      触发器添加到“代码”窗口的“局部代码”下。

本文介绍如何创建数据库模型和您可以执行什么模型后创建它。快速入门,在文件菜单上,指向新建,指向软件和数据库,,然后单击数据库模型图

找不到该数据库模型功能?

很可能您的 Microsoft Office Visio 版本不包括您正在寻找的功能。要了解你拥有的是哪个版本的 Visio,请单击帮助菜单上的关于 Microsoft Office Visio 。在对话框中的最上面一行是文本的版的名称。

  • “Microsoft Office Visio Standard”不包含“数据库模型图”模板。

  • Microsoft Office Visio Professional 支持“数据库模型图”模板的反向工程功能(即在 Visio 中使用现有数据库创建模型),但它不支持正向工程(即使用 Visio 数据库模型生成 SQL 代码)。

  • 您可以找到数据库的完整套件建模功能,包括反向工程和转发工程,企业设计师 Visio 中。企业设计师 Visio 将包含在 MSDN 高级版订阅,这是可用于 Visual Studio 专业版和 Visual Studio 工作组系统基于角色的版本。

  1. 要开始创建数据库模型图,请执行下列操作之一:

    从头开始创建新的模型图

    如果没有所需的现有数据库作为起点,可以从一个空白数据库模型开始,将您的表和关系添加到这个空白模型中。

    1. “文件”菜单上,指向“新建”,指向“软件和数据库”,然后单击“数据库模型图”

    2. “数据库”菜单上,指向“选项”,然后单击“文档”

    3. “数据库文档选项”对话框中,选择要使用的符号集及其他表和关系选项,然后单击“确定”

    使用现有数据库作为起始点

    如果有一个数据库,您要建立该数据库的模型以便更加了解该数据库,或者要将该数据库作为建立新模型的起点,则可以使用“反向工程向导”提取该数据库的架构或结构,然后建立新模型。

    注意: 在启动该向导之前:

    1. 如果您是反向工程启动向导之前的 Microsoft Office Excel 工作簿中,您需要打开的工作簿和命名包含列标题的单元格组 (或区域)。如果您想要使用多个工作表,只需名称列中每个工作表的单元格组。这些范围视为向导中的表。有关如何命名单元格区域的详细信息,请参阅帮助标题的定义已命名的单元格引用或区域中您的 Microsoft Office Excel 的主题。

    2. 为获得最佳效果,请在运行“反向工程向导”之前将您的默认驱动程序设置为要进行反向工程的目标数据库。此步骤可以确保该向导正确映射本地数据类型,并可以确保该向导提取的所有代码均正确显示在“代码”窗口中。

    3. “文件”菜单上,指向“新建”,指向“软件和数据库”,然后单击“数据库模型图”

    4. “数据库”菜单上,单击“反向工程”

    5. 在“反向工程向导”的第一个屏幕上,执行下列操作:

      1. 为您的数据库管理系统 (DBMS) 选择 Microsoft Office Visio 数据库驱动程序。如果您尚未将 Visio 数据库驱动程序与一个特定的 ODBC 数据源关联,请单击“设置”

        注意: 如果您是反向工程 Excel 工作表,选择 ODBC 通用驱动程序。

      2. 选择您正在更新的数据库的数据源。如果尚未创建现有数据库的数据源,单击新建来立即执行此操作。

        当您创建新的源时,其名称将添加到数据源列表中。

      3. 对设置感到满意后,单击“下一步”

    6. 按照任何特定于驱动程序的对话框的指导执行操作。

      例如,在“连接数据源”对话框中,键入用户名和密码,然后单击“确定”。如果您的数据源不受密码保护,只需单击“确定”

      注意: 如果您使用通用 ODBC 驱动程序,您可能会收到错误消息,指示反向工程的信息可能不完整。在大多数情况下,这不是问题-只需单击确定,然后继续按照向导。

    7. 选中代表要提取的信息类型的复选框,然后单击“下一步”

      注意: 有些项可能不可用(显示为灰色),因为不是所有的数据库管理系统都支持向导能够提取的所有元素类型。

    8. 选择您想要提取,或单击选择所有提取的表和视图,如果有) 对应的复选框,然后单击下一步

      注意: 如果进行反向工程 Excel 工作表和看不到此列表中的任何内容,则可能需要命名的单元格区域,其中包含您的工作表中的列标题。

    9. 如果您在步骤 5 中选择存储过程复选框,选择要从中提取的过程,或单击全选提取所有,然后单击下一步

    10. 选择是否要将进行了反向工程的项自动添加到当前页面中。

      注意: 您可以选择让向导会自动创建绘图,此外列出进行反向工程的项表和视图窗口中。如果您决定不会自动创建绘图,您可以将项目从表和视图窗口中拖动到绘图页上,以便手动组合数据库模型。

    11. 检查选择,验证所提取的信息是您需要的信息,然后单击“完成”

      向导在“输出”窗口中提取出选定的信息并显示有关提取过程的说明。

    导入和优化现有模型

    如果有一个现有 VisioModeler 或 PLATINUM ERwin 模型,您或许能够将其导入以创建一个 Visio 数据库模型图。该功能仅限于 VisioModeler 2.0 或更高版本的词典模型 (.imd) 文件以及 PLATINUM ERwin 2.6、3.0 和 3.52 .erx 文件。

    1. “文件”菜单上,指向“新建”,指向“软件和数据库”,然后单击“数据库模型图”

    2. “数据库”菜单上,指向“导入”,然后单击“导入 <模型类型>”

    3. 键入要导入模型的路径和名称,或单击“浏览”按钮定位模型文件,然后单击“打开”

    4. “导入”对话框中,单击“确定”

      Visio 导入文件并在“输出”窗口中显示其导入进度。所导入的表显示在“表和视图”窗口中。

    5. 在“表和视图”窗口中,选择要建模的表,然后将其拖到绘图页上。

  2. 创建数据库模型图之后,图的优化的工作开始。您可以添加和自定义表和视图、 创建关系,并自定义列和数据类型。

    使用“实体”形状在图中创建表。

    1. “实体关系”“对象关系”模具中,将一个“实体”形状拖到绘图上。

    2. 双击该形状以打开“数据库属性”窗口。

    3. “类别”下,单击“定义”,然后键入表的名称。

    4. 类别下单击分栏,键入一个名称,然后选择数据类型。

    5. 选择不能包含 null 值的列的必需复选框。

    6. 对于唯一标识数据库表中的每一行的列,选中“PK”(主关键字)复选框。

    7. “类别”下,单击“索引”“触发器”“检查”“扩展”以创建这些可选元素。

    使用数据库属性窗口中添加或更改列,包括数据类型和主键的属性。

    1. 在您的图中双击表。

    2. 在“数据库属性”窗口的“类别”下,单击“列”

    3. 在第一个空的“物理名称”单元格中单击并键入一个名称。

    4. 若要更改列的数据类型,请单击列的数据类型字段,然后从列表中选择一种数据类型或键入列表。例如,您可以键入decimal(8,2)char (30)

    5. 若要阻止空值,请选中“必需的”复选框。

    6. 若要将列指定为主关键字,请选中“PK”复选框。

    7. 若要在单击“列”类别时看到除显示的列以外的更多列属性,请选择该列然后单击“编辑”

    关系

    关系使用主键和外键以允许数据库以匹配一个表中包含相关表中的行的行。您可以在图表中显示这些关系。此外,您可以设置其基数 (例如,-一对多),并且使用 Crow's 英尺、 关系或 IDEF1X 表示法显示基数。您无法在数据库模型图模板中显示这些批注中的任何多对多关系。

    1. 创建两个表之间的关系:

      1. 确保图中两个表均可见。如果对现有数据库中的模型进行了反向工程,则可能需要将一个或两个表从“表和视图”窗口拖到绘图页上。

      2. 双击要作为关系的主关键字方的表。

      3. 在“数据库属性”窗口的“类别”下,单击“列”

      4. 在网格中,单击您想要使用唯一标识表中,每行的列,然后选择主键复选框以将其设置为主键。

      5. “对象关系”“实体关系”模具中,将一个“关系”形状拖放到该绘图页的一个空白区。

      6. 将高端连接到父表。

      7. 将低端连接到子表。

        如果第二个表不包含与主关键字同名的列,建模器会将与主键同名的列作为外键添加到第二个表中。

        注意: 如果关系线消失,请在数据库菜单上,指向选项,,然后单击文档。在关系选项卡下显示,请选择关系复选框。

    2. 设置关系的基数:

      1. 双击关系。

      2. 在“数据库属性”窗口的“类别”下,单击“杂项”

      3. 基数,下选择最适合该关系的基数。对于-一对多关系,最佳选择是零或更多一个或多个。对于一对一关系,最佳选择是零或一个完全一

  3. 要对图进行其他优化(如创建索引、检查子句和触发器),可以执行下列操作:

    创建索引

    索引有助于提高运行查询时的数据库性能或速度。

    1. 打开数据库模型图。

    2. 双击要对其添加索引的表,然后在“数据库属性”窗口的“类别”列表中,单击“索引”

    3. 单击“新建”。

    4. “创建索引”对话框中,键入索引的名称,然后单击“确定”

    5. “索引类型”列表中,选择一个选项以创建一个唯一或非唯一索引。

    6. “可用的列”列表中,选择要包含在此索引中的每一列的名称,然后单击“添加 >”

    7. “编入索引的列”列表中,选中“Asc”复选框以创建一个按升序排序的索引,或清除该复选框以创建一个降序排序的索引。

      数据库模型图即更新。

    创建视图

    您可以将视图视为保存的查询。如果需要重复访问来自多个表中的相同的信息,或者如果希望向用户公开数据又不允许他们更改实际的表时,视图尤其方便。

    “实体关系”“对象关系”模具中,将一个“视图”形状拖到绘图页上。

    为表和视图设置扩展的属性

    根据数据库管理系统 (DBMS),您或许能够设置扩展的属性表或视图以确定存储位置。

    双击要为其设置扩展属性的表或视图,在“数据库属性”窗口的“类别”列表中,单击“扩展”

    创建检查子句

    使用检查子句可确保输入列中的数据在特定的值范围内。例如,可以创建一个检查子句,它要求名称为“年龄”的列中的数据大于 65。

    1. 双击表以打开“数据库属性”窗口。

    2. “类别”下,单击“列”,然后单击要为其添加检查子句的列。

    3. 单击“编辑”

    4. 列属性对话框中的检查选项卡上,输入所需的约束。有关选项的详细信息,请参阅列和字段属性对话框 (检查选项卡)

      检查子句添加到“代码”窗口的“局部代码”下。

    创建存储的过程和用户定义的函数

    使用存储的过程和用户定义函数创建的可重用重复执行相同操作的代码包。两个之间的区别是用户定义函数返回一个值,而不返回值的存储的过程执行代码。

    1. “数据库”菜单上,指向“查看”,然后单击“代码”打开“代码”窗口。

    2. 单击“全局代码”,然后单击“新建”

    3. “代码编辑器”“属性”选项卡上,单击要创建的代码类型,然后为代码键入一个名称。

    4. “正文”选项卡上,键入代码,然后单击“确定”

    创建触发器

    当数据库中出现特定的事件时,触发器会使您在触发器中指定的 SQL 代码运行。

    1. 双击表以打开“数据库属性”窗口。

    2. “类别”下,单击“触发器”,然后单击“添加”

    3. “属性”选项卡上,为触发器键入一个名称。

    4. “正文”选项卡上,键入代码,然后单击“确定”

      触发器添加到“代码”窗口的“局部代码”下。

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×