VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > T-SQL >
  • sql语句大全之SQL Server数据库关系图工具

SQL Server数据库关系图工具
SSMS的数据库关系图工具的设计目标是按照开发人员的需要,构建数据库的各个细节方面的关系图。尽管它是一个简单直观的工具,也不像市场上的某些数据库关系图构建工具那样强大,但是对SQL Server来说,它已经很完美了。
例如,数据库设计工具产品的市场领导者之一,是一种叫作ERWin的产品。ERWin是一种强大的数据库实用工具,它不仅能构建数据库关系图,还可以提供数据描述语言输出,可以用于构建数据库解决方案。通过OLE DB data provider这类方式同数据库相连接,该工具就可以同数据库进行直接的交互,因此也可以被用作创建数据库的前端。同时它还可以协调创建的源代码,并以变更控制的观点进行控制,如果需要的话,不仅可以确保在数据库中存在代码,而且可以通过执行命令快速创建新的数据库。在创建新的数据库时,这可能比较有用。如果希望拥有比在SQL Server数据库关系图中工作所提供的功能(在本章中会介绍)更加深入的特性,应该看一看更强大的工具,当然,它可能价格不菲。
SQL Server的数据库关系图工具并不是只能提供创建关系图的功能。正如早先提到的,它还可以被用于作为构建数据库解决方案的前端。通过该工具,SQL Server提供了添加和修改表,构建关系,添加索引等很多方面的特性。在工具中所做的任何更改都会先保存在内存中,直至通过工具中的保存命令被提交。然而,在用途方面它也有一些局限性。
首先,对于任何基于关系图的数据库工具来说,最大的限制是显示关系图的屏幕空间不够大。一旦在数据库的解决方案中包含了上百张表,要找到你正在查找的表,就得不断滚动关系图窗口。
其次,不能添加存储过程、架构、用户、视图以及其他不是表的对象。其他的产品允许包括这些对象,或者它们甚至已经为你构建了一些。
最后,在当前,在该工具中所修改的任何可改变的信息,都可以在SSMS中通过使用相同的对话框和界面来实现。
阅读完本章后你会看到,数据库关系图工具对于它能操作的对象来说是非常强大的,但是在使用该工具的时候也有一些地方需要注意。要牢记的是,数据库关系图工具会将所有的改变保存在内存中,直至真正地保存该关系图。
例如,如果打开了一个数据库关系图,而关系图中的一个表已经在关系图外被删除,例如,在查询编辑器或SSMS中被删除,则可能会发生两件事情中的一种。首先,如果在关系图中,在该被删除的表中存在未保存的更改,那么当保存关系图的时候,该表会被重建,但是别忘记,前面的删除操作会将所有的数据都删除。其次,如果在关系图中,没有对该表进行更改,那么该表就不会被重建。一旦重新打开关系图,你就会看到该表被删除了,也就不再出现在关系图中。
在同时有多个开发者在数据库上进行工作时,在SSMS的数据库关系图工具中所做的任何更改都不会对其他开发者的关系图产生影响,直到他们的更改被保存且他们的关系图被刷新。如果打开了多个关系图,并在其中修改了一个表,例如插入或删除了列,那么这种更改会立刻对你自己的SSMS中的所有其他已打开的关系图产生影响。不要忘记这是一个内存中的操作,所以这个过程不会对其他人的关系图产生影响,直到更改被保存且关系图被刷新。
同样,如果在关系图中删除了一个对象,当你保存该关系图时,该对象会被删除,而其他人在该对象上所完成的任何更改都会丢失。很明显,最后关闭关系图的人会是赢家。
简而言之,如果使用数据库关系图工具,一定要小心。因为很多过程都在内存中进行,可能会不经意导致问题的发生。
【责任编辑:云霞 TEL:(010)68476606】
 
6.9.3 默认的数据库关系图
http://book.51cto.com  2009-05-15 13:17  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第6章创建索引和数据库关系图,本章介绍了数据库关系图。数据库关系图一开始就应该被考虑作为文档的组成部分。本节为大家介绍默认的数据库关系图。
·         标签:数据库  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
6.9.3  默认的数据库关系图
尽管这并不是强制的,但我还是认为在每个数据库解决方案中,都应该构建一个默认的数据库关系图,以便让开发者(无论有没有经验)可以直接看到数据库是如何被组织的。
默认的数据库关系图中,应该包含数据库中的每个表以及这些表之间的每个关系。其他的关系图可能只为相关的事情提供部分的概览,但默认的数据库关系图不同,它应该包含所能包含的一切。
正如前面提到的,让数据关系图保持最新是很必要的。你会注意到,在本章中这句话已经重复多次了。不要将默认的关系图作为数据库解决方案的开发源来使用。默认的关系图中包含所有的表,这意味着如果使用该关系图进行开发,就潜在地锁住了其他用户,其他用户就无法在他们所处的开发环境内接触相应的表,他们的更改也会丢失。后面讨论将数据库关系图作为开发源的时候,我们会看到更多有关这方面的细节。
既然你已经知道什么是关系图,以及什么是关系图工具,现在是时候为这个数据库创建第一个关系图了。
练习:创建数据库关系图
(1) 确保SSMS正在运行,且ApressFinancial数据库被展开,以便看到其中的"数据库关系图"和"表"节点。选择"数据库关系图"节点并右击,选择"安装关系图支持程序"(参看图6-10)。
(2) 如果这是在该数据库上创建的第一个关系图,则需要安装支持对象。如果没有这些对象,就无法创建关系图,所以在随后显示的对话框(参看图6-11)上点击"是"。
(3) 在创建关系图时,所看到的第一个界面是"添加表"对话框(参看图6-12)。如果希望在关系图中包含所有表的话,选择其中列出的所有表,再点击"添加",这会"清空"该界面。点击"关闭"。
(4) 在经过一段时间后,会返回到SSMS中,而数据库关系图则已经被构建。在这一时刻,关系图会非常大,以至于不能在一个界面上同时显示出所有的表,可以通过关系图工具条上的"大小"组合框来更改显示的比例,如图6-13所示。
http://images.51cto.com/files/uploadimg/20090515/132259962.jpg
图6-10  创建新的数据库关系图
 
 
http://images.51cto.com/files/uploadimg/20090515/132318663.jpg
(点击查看大图)6-11  安装关系图支持
 
 
http://images.51cto.com/files/uploadimg/20090515/132401878.jpg
(点击查看大图)图6-12  选择表
 
 
http://images.51cto.com/files/uploadimg/20090515/132414899.jpg
图6-13  "大小"组合框
 
(5) 这时的关系图与图6-14所示类似(如果布局有不同,不要惊讶)。
http://images.51cto.com/files/uploadimg/20090515/132442850.jpg
(点击查看大图)图6-14  迄今为止创建的表和关系
 
这就是创建一个基本关系图所需要的步骤。
【责任编辑:云霞 TEL:(010)68476606】
 
6.9.3 默认的数据库关系图
http://book.51cto.com  2009-05-15 13:17  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第6章创建索引和数据库关系图,本章介绍了数据库关系图。数据库关系图一开始就应该被考虑作为文档的组成部分。本节为大家介绍默认的数据库关系图。
·         标签:数据库  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
6.9.3  默认的数据库关系图
尽管这并不是强制的,但我还是认为在每个数据库解决方案中,都应该构建一个默认的数据库关系图,以便让开发者(无论有没有经验)可以直接看到数据库是如何被组织的。
默认的数据库关系图中,应该包含数据库中的每个表以及这些表之间的每个关系。其他的关系图可能只为相关的事情提供部分的概览,但默认的数据库关系图不同,它应该包含所能包含的一切。
正如前面提到的,让数据关系图保持最新是很必要的。你会注意到,在本章中这句话已经重复多次了。不要将默认的关系图作为数据库解决方案的开发源来使用。默认的关系图中包含所有的表,这意味着如果使用该关系图进行开发,就潜在地锁住了其他用户,其他用户就无法在他们所处的开发环境内接触相应的表,他们的更改也会丢失。后面讨论将数据库关系图作为开发源的时候,我们会看到更多有关这方面的细节。
既然你已经知道什么是关系图,以及什么是关系图工具,现在是时候为这个数据库创建第一个关系图了。
练习:创建数据库关系图
(1) 确保SSMS正在运行,且ApressFinancial数据库被展开,以便看到其中的"数据库关系图"和"表"节点。选择"数据库关系图"节点并右击,选择"安装关系图支持程序"(参看图6-10)。
(2) 如果这是在该数据库上创建的第一个关系图,则需要安装支持对象。如果没有这些对象,就无法创建关系图,所以在随后显示的对话框(参看图6-11)上点击"是"。
(3) 在创建关系图时,所看到的第一个界面是"添加表"对话框(参看图6-12)。如果希望在关系图中包含所有表的话,选择其中列出的所有表,再点击"添加",这会"清空"该界面。点击"关闭"。
(4) 在经过一段时间后,会返回到SSMS中,而数据库关系图则已经被构建。在这一时刻,关系图会非常大,以至于不能在一个界面上同时显示出所有的表,可以通过关系图工具条上的"大小"组合框来更改显示的比例,如图6-13所示。
http://images.51cto.com/files/uploadimg/20090515/132259962.jpg
图6-10  创建新的数据库关系图
 
 
http://images.51cto.com/files/uploadimg/20090515/132318663.jpg
(点击查看大图)6-11  安装关系图支持
 
 
http://images.51cto.com/files/uploadimg/20090515/132401878.jpg
(点击查看大图)图6-12  选择表
 
 
http://images.51cto.com/files/uploadimg/20090515/132414899.jpg
图6-13  "大小"组合框
 
(5) 这时的关系图与图6-14所示类似(如果布局有不同,不要惊讶)。
http://images.51cto.com/files/uploadimg/20090515/132442850.jpg
(点击查看大图)图6-14  迄今为止创建的表和关系
 
这就是创建一个基本关系图所需要的步骤。
【责任编辑:云霞 TEL:(010)68476606】
 
6.9.4 数据库关系图工具条
http://book.51cto.com  2009-05-15 13:17  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第6章创建索引和数据库关系图,本章介绍了数据库关系图。数据库关系图一开始就应该被考虑作为文档的组成部分。本节为大家介绍数据库关系图工具条。
·         标签:数据库  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
6.9.4  数据库关系图工具条
下面让我们看一下数据库关系图工具条,了解一下每个工具按钮在关系图中的作用。完整的工具条显示在图6-15中。
http://images.51cto.com/files/uploadimg/20090515/132710499.jpg
(点击查看大图)图6-15  "数据库关系图"工具栏
 
第一个按钮是"新建表"按钮,如下面的图所示。点击该按钮可以在数据库设计器内创建新表。这个过程同第5章介绍的过程类似。不同之处在于需要使用"属性"窗口来为每一列设置属性,而不是像在表设计器中那样,在其下方区域设置列的属性。
http://images.51cto.com/files/uploadimg/20090515/132817541.jpg 
在构建关系图时,我们选择了所有的表。如果当时没有选择所有的表,则在创建关系图的时候,还可能会需要往关系图中添加表。点击"添加表"按钮(参看下图)可以打开"添加表"对话框,该对话框前面已经显示过,它可以往关系图中继续添加表。
http://images.51cto.com/files/uploadimg/20090515/132853605.jpg 
"添加相关表"按钮显示在下面,可以在设计器中添加同被选中表相关的表。
http://images.51cto.com/files/uploadimg/20090515/132954935.jpg 
通过使用下面的按钮,可以在设计器中从数据库中删除表。
http://images.51cto.com/files/uploadimg/20090515/133002378.jpg 
如果只是想从关系图中移除表,而不是从数据库中删除表,则可以使用下面的按钮来完成该操作。例如,如果一个表不再作为数据库关系图"视图"的一部分,那么就可使用这个按钮。
http://images.51cto.com/files/uploadimg/20090515/133041184.jpg 
在设计器中,任何对数据库的更改都可以保存为脚本。使用下面的"生成更改脚本"按钮就可以完成这项工作。
http://images.51cto.com/files/uploadimg/20090515/133050900.jpg 
如果希望将某一列设置为主键,则可以在表中选中该列,然后点击"设置主键"按钮(如下所示)。
http://images.51cto.com/files/uploadimg/20090515/133147916.jpg 
可以在关系图中创建一个区域,以放入特别的文本。这可以通过使用下面的"新建文本标注"按钮来实现。
http://images.51cto.com/files/uploadimg/20090515/133155645.jpg 
每个表都以标准的布局方式而显示。可以让它以其他不同的预定义的布局形式来显示,也可以创建自己的定制视图。下面的"表视图"按钮允许你更改布局或创建自定义的布局版本。
http://images.51cto.com/files/uploadimg/20090515/133239731.jpg 
在表和表之间会存在关系,默认时显示为直线。然而,通过点击下面的按钮,可以在关系线上以标签的形式显示关系的名称。
http://images.51cto.com/files/uploadimg/20090515/133245762.jpg 
关系图是对数据库进行文档化的一种理想方式。可以在会议前打印关系图,以便在会议上对更深入的开发工作进行讨论,等等。下面的按钮可以显示将被打印出来的页面上的分页符。
http://images.51cto.com/files/uploadimg/20090515/133326988.jpg 
关系图中的第一次设置的分页符会一直被保留,直至对分页符进行了重新计算。可以查看分页符,并按照分页符的位置,对表进行排列,然后再基于新的布局,重新计算分页符。点击下面的按钮就可以重新计算分页。
http://images.51cto.com/files/uploadimg/20090515/133335332.jpg 
表可以被手工展开或折叠。而通过按住Ctrl键选择一个或多个表,再点击相关的表,然后点击下面的按钮,就可以将表设置为统一大小。
http://images.51cto.com/files/uploadimg/20090515/133505241.jpg 
通过点击下面的按钮,可以对选中的表进行重新排列,并让SQL Server来进行排列选择。只有在选中了几个表时,该按钮才是可用的。
http://images.51cto.com/files/uploadimg/20090515/133515676.jpg 
可以对显示在关系图中的表进行重新排列。在点击下面的按钮后,SQL Server会尽可能好地对表和相关联的表进行重新布局。该按钮与前一个按钮差不多,只是该按钮总是可用的。
http://images.51cto.com/files/uploadimg/20090515/133554786.jpg 
在第5章,介绍了如何在两个表之间构建关系。那时所使用的按钮在这里也出现了。点击该按钮会出现在第5章中显示过的那个对话框。
在第5章中,已经遇到过其余的按钮。
【责任编辑:云霞 TEL:(010)68476606】
 
6.10 小结
http://book.51cto.com  2009-05-15 13:17  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第6章创建索引和数据库关系图,本章介绍了数据库关系图。数据库关系图一开始就应该被考虑作为文档的组成部分。本节为这一章的小结部分。
·         标签:数据库  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
6.10  小结
我们已经介绍了在创建SQL Server解决方案时涉及的另一个主要的构建模块。前几章介绍如何存储数据,而在这一章,你学习了关于索引的一些知识,以及如何通过索引快速和高效地检索表中存储的数据。
有多种索引类型,在正确的时间选择正确的索引类型,可以让工作完成得像艺术品一样完美。本章带你经历了确定在什么样的列上构建索引才会高效的步骤,并以正确的索引类型在这些列上构建了索引,以创建大部分信息。
本章还介绍了数据库关系图。数据库关系图一开始就应该被考虑作为文档的组成部分。请记住,数据库关系图工具可能会在SQL Server的未来版本中得到扩展,从而变得比现在更实用、更强大,尽管现在它已经是一个很强大的实用工具了。
提示 记住,谁最后保存关系图,谁的更改就能被保存。
别惊讶,在关系图中的更改直到它被保存才会起作用,并且你在关系图中所做的更改可能会覆盖别人所做的更改。如果在任何形式的多人开发环境中使用数据库关系图工具进行开发,那么在完成更新之前一定要特别小心(事实上,应该避免多人一起使用这一工具)。除非将数据库解决方案分割成多个部分,否则如果在一个关系图中几乎包含了所有的表,就不要使用该数据库设计器作为开发工具。
【责任编辑:云霞 TEL:(010)68476606】
 

相关教程