-
sql语句大全之SQL Server数据库关系图工具
SQL Server数据库关系图工具
SSMS的数据库关系图工具的设计目标是按照开发人员的需要,构建数据库的各个细节方面的关系图。尽管它是一个简单直观的工具,也不像市场上的某些数据库关系图构建工具那样强大,但是对SQL Server来说,它已经很完美了。
例如,数据库设计工具产品的市场领导者之一,是一种叫作ERWin的产品。ERWin是一种强大的数据库实用工具,它不仅能构建数据库关系图,还可以提供数据描述语言输出,可以用于构建数据库解决方案。通过OLE DB data provider这类方式同数据库相连接,该工具就可以同数据库进行直接的交互,因此也可以被用作创建数据库的前端。同时它还可以协调创建的源代码,并以变更控制的观点进行控制,如果需要的话,不仅可以确保在数据库中存在代码,而且可以通过执行命令快速创建新的数据库。在创建新的数据库时,这可能比较有用。如果希望拥有比在SQL Server数据库关系图中工作所提供的功能(在本章中会介绍)更加深入的特性,应该看一看更强大的工具,当然,它可能价格不菲。
SQL Server的数据库关系图工具并不是只能提供创建关系图的功能。正如早先提到的,它还可以被用于作为构建数据库解决方案的前端。通过该工具,SQL Server提供了添加和修改表,构建关系,添加索引等很多方面的特性。在工具中所做的任何更改都会先保存在内存中,直至通过工具中的保存命令被提交。然而,在用途方面它也有一些局限性。
首先,对于任何基于关系图的数据库工具来说,最大的限制是显示关系图的屏幕空间不够大。一旦在数据库的解决方案中包含了上百张表,要找到你正在查找的表,就得不断滚动关系图窗口。
其次,不能添加存储过程、架构、用户、视图以及其他不是表的对象。其他的产品允许包括这些对象,或者它们甚至已经为你构建了一些。
最后,在当前,在该工具中所修改的任何可改变的信息,都可以在SSMS中通过使用相同的对话框和界面来实现。
阅读完本章后你会看到,数据库关系图工具对于它能操作的对象来说是非常强大的,但是在使用该工具的时候也有一些地方需要注意。要牢记的是,数据库关系图工具会将所有的改变保存在内存中,直至真正地保存该关系图。
例如,如果打开了一个数据库关系图,而关系图中的一个表已经在关系图外被删除,例如,在查询编辑器或SSMS中被删除,则可能会发生两件事情中的一种。首先,如果在关系图中,在该被删除的表中存在未保存的更改,那么当保存关系图的时候,该表会被重建,但是别忘记,前面的删除操作会将所有的数据都删除。其次,如果在关系图中,没有对该表进行更改,那么该表就不会被重建。一旦重新打开关系图,你就会看到该表被删除了,也就不再出现在关系图中。
在同时有多个开发者在数据库上进行工作时,在SSMS的数据库关系图工具中所做的任何更改都不会对其他开发者的关系图产生影响,直到他们的更改被保存且他们的关系图被刷新。如果打开了多个关系图,并在其中修改了一个表,例如插入或删除了列,那么这种更改会立刻对你自己的SSMS中的所有其他已打开的关系图产生影响。不要忘记这是一个内存中的操作,所以这个过程不会对其他人的关系图产生影响,直到更改被保存且关系图被刷新。
同样,如果在关系图中删除了一个对象,当你保存该关系图时,该对象会被删除,而其他人在该对象上所完成的任何更改都会丢失。很明显,最后关闭关系图的人会是赢家。
简而言之,如果使用数据库关系图工具,一定要小心。因为很多过程都在内存中进行,可能会不经意导致问题的发生。
6.9.3 默认的数据库关系图
尽管这并不是强制的,但我还是认为在每个数据库解决方案中,都应该构建一个默认的数据库关系图,以便让开发者(无论有没有经验)可以直接看到数据库是如何被组织的。
默认的数据库关系图中,应该包含数据库中的每个表以及这些表之间的每个关系。其他的关系图可能只为相关的事情提供部分的概览,但默认的数据库关系图不同,它应该包含所能包含的一切。
正如前面提到的,让数据关系图保持最新是很必要的。你会注意到,在本章中这句话已经重复多次了。不要将默认的关系图作为数据库解决方案的开发源来使用。默认的关系图中包含所有的表,这意味着如果使用该关系图进行开发,就潜在地锁住了其他用户,其他用户就无法在他们所处的开发环境内接触相应的表,他们的更改也会丢失。后面讨论将数据库关系图作为开发源的时候,我们会看到更多有关这方面的细节。
既然你已经知道什么是关系图,以及什么是关系图工具,现在是时候为这个数据库创建第一个关系图了。
练习:创建数据库关系图
(1) 确保SSMS正在运行,且ApressFinancial数据库被展开,以便看到其中的"数据库关系图"和"表"节点。选择"数据库关系图"节点并右击,选择"安装关系图支持程序"(参看图6-10)。
(2) 如果这是在该数据库上创建的第一个关系图,则需要安装支持对象。如果没有这些对象,就无法创建关系图,所以在随后显示的对话框(参看图6-11)上点击"是"。
(3) 在创建关系图时,所看到的第一个界面是"添加表"对话框(参看图6-12)。如果希望在关系图中包含所有表的话,选择其中列出的所有表,再点击"添加",这会"清空"该界面。点击"关闭"。
(4) 在经过一段时间后,会返回到SSMS中,而数据库关系图则已经被构建。在这一时刻,关系图会非常大,以至于不能在一个界面上同时显示出所有的表,可以通过关系图工具条上的"大小"组合框来更改显示的比例,如图6-13所示。
(5) 这时的关系图与图6-14所示类似(如果布局有不同,不要惊讶)。
SSMS的数据库关系图工具的设计目标是按照开发人员的需要,构建数据库的各个细节方面的关系图。尽管它是一个简单直观的工具,也不像市场上的某些数据库关系图构建工具那样强大,但是对SQL Server来说,它已经很完美了。
例如,数据库设计工具产品的市场领导者之一,是一种叫作ERWin的产品。ERWin是一种强大的数据库实用工具,它不仅能构建数据库关系图,还可以提供数据描述语言输出,可以用于构建数据库解决方案。通过OLE DB data provider这类方式同数据库相连接,该工具就可以同数据库进行直接的交互,因此也可以被用作创建数据库的前端。同时它还可以协调创建的源代码,并以变更控制的观点进行控制,如果需要的话,不仅可以确保在数据库中存在代码,而且可以通过执行命令快速创建新的数据库。在创建新的数据库时,这可能比较有用。如果希望拥有比在SQL Server数据库关系图中工作所提供的功能(在本章中会介绍)更加深入的特性,应该看一看更强大的工具,当然,它可能价格不菲。
SQL Server的数据库关系图工具并不是只能提供创建关系图的功能。正如早先提到的,它还可以被用于作为构建数据库解决方案的前端。通过该工具,SQL Server提供了添加和修改表,构建关系,添加索引等很多方面的特性。在工具中所做的任何更改都会先保存在内存中,直至通过工具中的保存命令被提交。然而,在用途方面它也有一些局限性。
首先,对于任何基于关系图的数据库工具来说,最大的限制是显示关系图的屏幕空间不够大。一旦在数据库的解决方案中包含了上百张表,要找到你正在查找的表,就得不断滚动关系图窗口。
其次,不能添加存储过程、架构、用户、视图以及其他不是表的对象。其他的产品允许包括这些对象,或者它们甚至已经为你构建了一些。
最后,在当前,在该工具中所修改的任何可改变的信息,都可以在SSMS中通过使用相同的对话框和界面来实现。
阅读完本章后你会看到,数据库关系图工具对于它能操作的对象来说是非常强大的,但是在使用该工具的时候也有一些地方需要注意。要牢记的是,数据库关系图工具会将所有的改变保存在内存中,直至真正地保存该关系图。
例如,如果打开了一个数据库关系图,而关系图中的一个表已经在关系图外被删除,例如,在查询编辑器或SSMS中被删除,则可能会发生两件事情中的一种。首先,如果在关系图中,在该被删除的表中存在未保存的更改,那么当保存关系图的时候,该表会被重建,但是别忘记,前面的删除操作会将所有的数据都删除。其次,如果在关系图中,没有对该表进行更改,那么该表就不会被重建。一旦重新打开关系图,你就会看到该表被删除了,也就不再出现在关系图中。
在同时有多个开发者在数据库上进行工作时,在SSMS的数据库关系图工具中所做的任何更改都不会对其他开发者的关系图产生影响,直到他们的更改被保存且他们的关系图被刷新。如果打开了多个关系图,并在其中修改了一个表,例如插入或删除了列,那么这种更改会立刻对你自己的SSMS中的所有其他已打开的关系图产生影响。不要忘记这是一个内存中的操作,所以这个过程不会对其他人的关系图产生影响,直到更改被保存且关系图被刷新。
同样,如果在关系图中删除了一个对象,当你保存该关系图时,该对象会被删除,而其他人在该对象上所完成的任何更改都会丢失。很明显,最后关闭关系图的人会是赢家。
简而言之,如果使用数据库关系图工具,一定要小心。因为很多过程都在内存中进行,可能会不经意导致问题的发生。
6.9.3 默认的数据库关系图
尽管这并不是强制的,但我还是认为在每个数据库解决方案中,都应该构建一个默认的数据库关系图,以便让开发者(无论有没有经验)可以直接看到数据库是如何被组织的。
默认的数据库关系图中,应该包含数据库中的每个表以及这些表之间的每个关系。其他的关系图可能只为相关的事情提供部分的概览,但默认的数据库关系图不同,它应该包含所能包含的一切。
正如前面提到的,让数据关系图保持最新是很必要的。你会注意到,在本章中这句话已经重复多次了。不要将默认的关系图作为数据库解决方案的开发源来使用。默认的关系图中包含所有的表,这意味着如果使用该关系图进行开发,就潜在地锁住了其他用户,其他用户就无法在他们所处的开发环境内接触相应的表,他们的更改也会丢失。后面讨论将数据库关系图作为开发源的时候,我们会看到更多有关这方面的细节。
既然你已经知道什么是关系图,以及什么是关系图工具,现在是时候为这个数据库创建第一个关系图了。
练习:创建数据库关系图
(1) 确保SSMS正在运行,且ApressFinancial数据库被展开,以便看到其中的"数据库关系图"和"表"节点。选择"数据库关系图"节点并右击,选择"安装关系图支持程序"(参看图6-10)。
(2) 如果这是在该数据库上创建的第一个关系图,则需要安装支持对象。如果没有这些对象,就无法创建关系图,所以在随后显示的对话框(参看图6-11)上点击"是"。
(3) 在创建关系图时,所看到的第一个界面是"添加表"对话框(参看图6-12)。如果希望在关系图中包含所有表的话,选择其中列出的所有表,再点击"添加",这会"清空"该界面。点击"关闭"。
(4) 在经过一段时间后,会返回到SSMS中,而数据库关系图则已经被构建。在这一时刻,关系图会非常大,以至于不能在一个界面上同时显示出所有的表,可以通过关系图工具条上的"大小"组合框来更改显示的比例,如图6-13所示。
图6-10 创建新的数据库关系图 |
(点击查看大图)6-11 安装关系图支持 |
(点击查看大图)图6-12 选择表 |
图6-13 "大小"组合框 |
(点击查看大图)图6-14 迄今为止创建的表和关系 |
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式