置顶随笔
UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模。UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得到了工业界的支持。
本章将按视图、模型元素、图以及公共机制依次介绍UML的构造和基本元素,以使得读者对UML有一个总体了解,其具体细节将在后续章节中详细描述。
画图工具:eDraw、jude
欢迎大家继续支持和关注我的博客:
http://hoojo.cnblogs.com
http://blog.csdn.net/IBM_hoojo
也欢迎大家和我交流、探讨IT方面的知识。
email:hoojo_@126.com
如果你觉得本文不错的话,请你点击屏幕右下方的 。如果你以后会用到这篇文章的或觉得以后要重新翻阅的话,你可以点击屏幕右下角的 。如果你觉得我的博文不错或是想在第一时间看到我的动态的话,你可以点击屏幕右下角 。如果你想说点什么的话,你可以点击屏幕右下方的 。如果你都点过了,那真的太谢谢你了,兄弟太支持了。此时,或许你可以点击 按钮,然后看看博文的导航继续浏览其他文章。
1. UML的组成
UML由视图(View)、图(Diagram)、模型元素(Model Element)和通用机制(General Mechanism)等几个部分组成。
a) 视图(View): 是表达系统的某一方面的特征的UML建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。
b) 图(Diagram): 是模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。
c) 模型元素(Model Element):代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。
d) 通用机制(General Mechanism):用于表示其他信息,比如注释、模型元素的语义等。另外,UML还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。
2. UML视图的分类
UML是用来描述模型的,用模型来描述系统的机构或静态特征,以及行为或动态特征。从不同的视角为系统构架建模,形成系统的不同视图。
(1) 用例视图(Use Case View),强调从用户的角度看到的或需要的系统功能,是被称为参与者的外部用户所能观察到的系统功能的模型图。
(2) 逻辑视图(Logical View),展现系统的静态或结构组成及特征,也称为结构模型视图(Structural Model View)或静态视图(Static View)。
(3) 并发视图(Concurrent View),体现了系统的动态或行为特征,也称为行为模型视图(Behavioral Model View)或动态视图(Dynamic View)。
(4) 组件视图(Component View),体现了系统实现的结构和行为特征,也称为实现模型视图(Implementation Model View)。
(5) 配置视图(Deployment View),体现了系统实现环境的结构和行为特征,也称为环境模型视图(Environment Model View)或物理视图(Physical View)。
视图是由图组成的,UML提供9种不同的图:
(1) 用例图(Use Case Diagram),描述系统功能;
(2) 类图(Class Diagram),描述系统的静态结构;
(3) 对象图(Object Diagram),描述系统在某个时刻的静态结构;
(4) 组件图(Component Diagram),描述了实现系统的元素的组织;
(5) 配置图(Deployment Diagram),描述了环境元素的配置,并把实现系统的元素映射到配置上;
(6) 状态图(State Diagram),描述了系统元素的状态条件和响应;
(7) 时序图(Sequence Diagram),按时间顺序描述系统元素间的交互;
(8) 协作图(Collaboration Diagram),按照时间和空间顺序描述系统元素间的交互和它们之间的关系;
(9) 活动图(Activity Diagram),描述了系统元素的活动;
建模方法由建模语言和建模过程两部分构成。其中建模语言是用来表述设计方法的表示法,建模过程是对设计中所应采取的步骤的描述。UML是一种建模语言,它在很大程度上独立于建模过程。在实际建模中,建模人员最好把UML用于以用案驱动的、以体系机构为中心的、迭代的和渐增式的开发过程中。
一般而言,软件系统的体系结构给出了软件系统的组织、组成系统的构造元素及其接口的选择、系统的行为和体系结构风格等信息。也就是说,它不仅关心系统的结构和行为等功能性需求,而且也涉及系统的性能、易理解性、易复用性等非功能性需求。如下图所示,UML利用用户模型视图、结构模型视图、行为模型视图、实现模型视图和环境模型视图来描述软件系统的体系结构。
根据它们在不同架构视图的应用,可以把9种图分成:
(1) 用户模型视图:用例图;
(2) 结构模型视图:类图和对象;
(3) 行为模型视图:状态图、时序图、协作图和活动图(动态图);
(4) 实现模型视图:组件图;
(5) 环境模型视图:配置图。
用户模型视图由专门描述最终用户、分析人员和测试人员看到的系统行为的用案组成,它实际上是从用户角度来描述系统应该具有的功能。用户模型视图所描述的系统功能依靠外部用户或者另外一个系统来激活,为用户或者另一系统提供服务,从而实现用户或另一系统与系统的交互。系统实现的最终目标是提供用户模型视图中所描述的功能。在UML中,用户模型视图是由用案图组成。
结构模型视图描述组成系统的类、对象以及它们之间的关系等静态结构,用来支持系统的功能需求,即描述系统内部功能是如何设计的。结构模型视图由类图和对象图构成,主要供设计人员和开发人员使用。
行为模型视图主要用来描述形成系统并发与同步机制的线程和进程,其关注的重点是系统的性能、易伸缩性和系统的吞吐量等非功能性需求。行为模型视图利用并发来描述资源的高效使用、并行执行和处理异步事件。除了讲系统划分为并发执行的控制线程之外,行为模型还必须处理通信和这些线程及进程之间的同步问题。行为模型视图主要供系统开发人员和系统集成人员使用,它由序列图、协作图、状态图和活动图组成。
实现模型视图用来描述系统的实现模块它们之间的依赖关系以及资源分配情况。这种视图主要用于系统的配置管理,它是由一些独立的构件组成的。实现模型视图由构件图组成。其中构件是代码模块,不同类型的代码模块形成不同的构件。实现模型视图主要供开发人员使用。
环境模型视图用来描述物理系统的硬件拓扑结构。例如,系统中的计算机和设备的分布情况以及它们之间的连接方式,其中计算机和设备统称为节点。在UML中环境模型视图是由部署图来表示的。系统部署图描述了系统构件在节点上的分布情况,即用来描述软件构件到物理节点的映射。部署图主要供开发人员、系统集成人员和测试人员使用。
上面每一种视图反映了系统的一个特定方面,不同人员可以单独的使用其中每一种视图,从而可以关注特定的体系结构问题。但在通常情况下,由于系统的最终目标是提供用户模型视图中描述的功能以及其它一些非功能性需求,因此,用户模型视图是其它视图的核心基础,其它视图的构造都依赖与用户模型视图中所描述的类容。
细心的读者已经发现,每一种UML图都是由多个图组成的,每一种图都是体系结构某个侧面的表示,各种图实际上是一致的,所有的图在一起组成了系统的完整视图。如下图所示,UML中总共提供了用案图、类图、对象图、序列图、协作图、状态图、活动图、构建图和部署图9种图。根据它们描述的是系统的静态结构还是动态行为,可以将它们分为静态图和动态图两类。再进一步介绍这9中UML图时,先了解下什么是模型元素:
3. UML的建模机制
UML有两套建模机制:静态建模机制和动态建模机制。静态建模机制包括用例图、类图、对象图、包、组件图和配置图。动态建模机制包括状态图、时序图、协作图、活动图。
(1) 用例图:用例的可视化工具,它提供计算机系统的高层次的用户视图,表示以外部活动者的角度来看系统将是怎样使用的。
用例图(用案图)是用于描述一组用案,参与者以及它们之间的连接关系。一个用案图描述了一组动作序列,每一个序列表示系统的外部设施(系统的参与者)与系统本身的交互。从一个特定参与者的角度看,一个用案完成对其有价值的工作。如图2.5所示,用案图仅仅是从参与者使用系统的角度来描述系统中的信息,即站在系统外部查看系统应该具有什么功能,而并不描述该功能在软件内部是如何实现的。用案可以应用于整个系统,也可以应用于系统的一个部分,包括子系统、单个的类或者接口。通常,用案不仅代表这些元素所期望的行为,而且还可以把这些元素用作开发过程中测试用案的基础。
用例图包括以下3方面内容:
(a) 用例(Use Case)
(b) 参与者(Actor)
(c) 依赖、泛化和关联关系
用例图示例:
(2) 类图:描述类、接口、协作以及它们之间关系的图。
类图是用于描述一组类、接口、协作以及它们之间的静态关系。在面向对象系统的建模中,类图是最为常用的图,它用来阐明系统的静态结构。事实上类是对一组具有相同属性、操作、关系和语义的对象的描述,其中对类的属性和操作进行描述时的一个最重要的细节就是它的可见性。
类可以以多种形式连接,例如关联、泛化、依赖和实现等。一个典型的系统中通常有若干个类图。一个类图不一定要包含系统中所有的类,一个类可以加到几个类图中。
类图示例:
(3) 对象图:表示在某一时间上一组对象以及它们之间的关系的图。对象图可以被看做是类图在系统某一时刻的实例。
对象图是类图的实例,用来描述特定运行时刻一组对象之间的关系。也就是说,对象用于描述交互的静态部分,它由参与协作的有关对象组成。但不包括在对象之间传递的任何消息。
在创建对象图时,建模人员并不需要用单个的对象图来描述系统中的每一个对象。事实上,绝大多数系统中都会包含成百上千的对象。用对象来描述系统的所有对象以及它们之间的关系一般是不太现实的。因此,建模人员可以选择所感兴趣的对象极其之间的关系来描述。
对象图中所使用的符号和类图中使用的符号几乎完全相同,区别仅在于对象图的对象名带有下划线,而且类与类之间关系的所有的实例都要画出来。
(4) 组件图:描述软件组件以及组件之间的关系,组件本身是代码的物理模块,组件图则显示了代码的结构。
组件图(构件图)是用于描述一组构件之间的组织和依赖关系,用于建模系统的静态实现视图。构件可以是可执行程序集、库、表、文件和文档等,它包含了逻辑类或者逻辑类的实现信息,因此结构模型视图和实现模型视图之间存在映射关系。
构建图中也可以包括包或子系统,它们都是用于将模型元素组成较大的组块。
组件图例图:
(5) 配置图:描述系统硬件的物理拓扑结构以及在此结构上执行的软件。配置图可以显示计算节点的拓扑结构和通信路径、结点上运行的软件组件、软件组件包含的逻辑单元(对象、类)等。配置图常常用于帮助理解分布式系统。
配置图(部署图)用来描述系统运行是进行处理的节点以及在节点上活动的构件的配置。部署图用来对系统的环境模型视图进行建模。在大多数情况下,部署图用来描述系统硬件的扩普结构。
在UML中,建模人员可以用类图来描述系统的静态结构,可以用序列图、协作图、状态图、活动图来描述系统的动态行为,而用部署图来描述软件所执行所需的处理器和设备的拓扑结构。
(6) 状态图:通过类对象的生命周期建立模型来描述对象随时间变化的动态行为。
状态图实际上是一种由状态、变迁、事件和活动组成的状态机。状态图描述从状态到状态的控制流,常用于系统的动态特性建模。在大多数情况下,它用来对反应型对象的行为建模。
在UML中,状态图可以用来对一个对象按事件排序的行为建模。一个状态图是强调从状态到状态的控制流的状态机的简单表示。一般而言,状态图是对类所描述的设施的补充说明,它描述了类的所有对象可能具有的状态以及引起状态变化的事件。
(7) 时序图:交互图描述了一个交互,它由一组对象和它们之间的关系组成,并且还包括在对象间传递的信息。交互图表达对象之间的交互,是描述一组对象如何协作完成某个行为的模型化工具。
序列图和协作图统称为交互图。其中,序列图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。序列图是一种强调时间顺序的交互图,其中对象沿横轴方向排列,消息沿纵轴方向排列。
序列图中的对象生命线是一条垂直的虚线,它表示一个对象在一段时间内存在。由于序列图中大多数对象都存在于整个交互过程中,因此这些对象全部排列在图的顶部,它们的生命线从图的顶部画到图的底部。每个对象的下方有一个矩形条,它与对象的生命线重叠,它表示该对象的控制焦点。序列图中的消息可以有序号,但由于这种图上的消息已经从纵轴上按时间顺序排序,因此消息序号通常予以省略。
(8) 协作图:包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。协作图也是一种交互图,它强调收发消息的对象的组织结构。
协作图和序列图是协作的,它们可以互相转换。在多数情况下,协作图主要对单调的、顺序的控制流建模,但它也可以用来对包括迭代和分支在内的复杂控制流进行建模。
一般而言,建模人员可以创建多个协作图,其中一些是主要的,另外一些是可选择的路径或者异常条件。建模人员可以用包来组织这些协作图,并给每个图起一个合适的名字,以便与其它图区别开。
(9) 活动图:用于展现参与行为的类的活动或动作。
活动图是状态图的一种特殊情况,其中几乎所有或大多数状态都处于活动状态,而且几乎所有或者大多数变迁都是由源状态中活动的完成触发的。活动图本质上是一种流程图,它描述了从活动到活动的控制流。
可以把活动图看作是新样的交互图,但交互图观察的是传递消息的对象,而活动图观察到的是对象之间传送的消息。尽管两者在语义上的区别很细微,但它们使用不同的方式来看系统的。
如果你觉得本文不错的话,请你点击屏幕右下方的 。如果你以后会用到这篇文章的或觉得以后要重新翻阅的话,你可以点击屏幕右下角的 。如果你觉得我的博文不错或是想在第一时间看到我的动态的话,你可以点击屏幕右下角 。如果你想说点什么的话,你可以点击屏幕右下方的 。如果你都点过了,那真的太谢谢你了,兄弟太支持了。此时,或许你可以点击 按钮,然后看看博文的导航继续浏览其他文章。
最后,欢迎大家继续支持和关注我的博客:
http://hoojo.cnblogs.com
http://blog.csdn.net/IBM_hoojo
也欢迎大家和我交流、探讨IT方面的知识。
posted @
2013-08-30 16:52 hoojo 阅读(2226) |
评论 (2) |
编辑 收藏
摘要: 这篇文章主要介绍用JavaScript和jQuery、HTML、CSS以及用第三方聊天JavaScript(jsjac)框架构建一个BS Web的聊天应用程序。此程序可以和所有连接到Openfire服务器的应用进行通信、发送消息。如果要运行本程序还需要一个聊天服务器Openfire, 以及需要用到Http方式和Openfire通信的第三方库(JabberHTTPBind)。 JabberHTTPB...
阅读全文
posted @
2012-08-13 09:39 hoojo 阅读(7355) |
评论 (2) |
编辑 收藏
这个解决方法已经定制下来很久了,上一段时间比较忙,没有时间整这些东西。最近稍微好些,不怎么加班。所以抽空总结下,同时也分享给大家,也算是给大家一个借鉴吧!或许这并不是最好的解决方案,但只要能满足当前需求的最好方案也算是最好的解决方案,谁说不是呢!O(∩_∩)O~
我们采用的方案如下:
先看图
上图的流程大致上是这样的:
手机端向PC端发送聊天内容
1、手机端程序通过Socket连接服务器端的ServerSocket
2、然后服务器端根据手机Mobile客户端发送过来统一规范的报文或聊天内容,进行解析
3、然后将解析的内容,再用smack框架转发到openfire服务器
4、最后由openfire服务器向客户端(BS、CS、PhoneClient)程序发送聊天信息。这里的客户端可以是pc上的浏览器,pc上的桌面应用,手机应用等
5、PC客户端BS程序(用http bind方式监听)的长连接监听到openfire服务器发送过来的数据,直接在页面中显示
同样,PC客户端向手机端发送聊天内容
1、PC客户端(BS)可以直接用http bind(xmpp 提供的http请求的长连接方式)直接向openfire服务器发送聊天数据;
2、然后openfire服务器接收到聊天内容的时候,这时候socket服务器中的smack框架中有一个聊天内容的监听器
3、监听到PC端向openfire发送的内容后,会用socket的流向手机端发送我们定义好的报文或是聊天内容
4、手机端的socket会不停的轮询(可以模拟心跳式长连接的方式),判断是否有消息到达,如果有则显示
而普通的聊天程序的流程则是客户端发送信息到openfire服务器,openfire服务器再将消息转发给其他客户端。他们省去了socket服务器这部分,那我们为什么要加上socket服务器这部分呢?
我们这样做也是有自己的道理的:
首先,如果让手机端自己实现向openfire服务器发送程序的代码,那工作量是相当大的。因为每个手机平台使用的语言都不同,每个平台都需要实现向openfire服务器发送聊天信息的报文。这其实就是在做重复的工作,而且每个平台实现向手机端发送报文信息的技术会让每个手机端的开发人员都要学会一套和openfire交互的代码。这势必会重复工作、重复相同业务的代码。所以,把这些代码放在一个tcp/ip的socket中转服务器进行统一发送,这也是有好处的。
其次,把所以发送消息在报文在socket服务器完成,可以对业务进行一个统一的处理、消息过滤。
手机端被否决的解决方案,供参考
手机端用http长连接的方式,这个是不行的
其一、手机的移动网络不稳定,长连接会经常断掉,当然你可以自动进行重连
其二、长连接一直连接在服务器上,占用服务器资源。当然你可以使用心跳式长连接或是轮询方式
其三、手机端一直连接服务器会使用手机端用户的网络带宽流量(流量不是免费的,客户会怎么想)
其四、手机端一直连着服务器,对手机的电量也有消耗(现在智能机解决电量也是一个问题)
posted @
2012-07-31 15:16 hoojo 阅读(1988) |
评论 (0) |
编辑 收藏
摘要: 开发环境: System:Windows JavaEE Server:tomcat5.0.2.8、tomcat6 JavaSDK: jdk6+ IDE:eclipse、MyEclipse 6.6 开发依赖库: JDK6、 JavaEE5、ehcache-core-2.5.2.jar Email:hoojo_@126.com Blog:http://blog.csdn....
阅读全文
posted @
2012-07-19 16:33 hoojo 阅读(3248) |
评论 (0) |
编辑 收藏
摘要: 上两篇文章:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作、以及通过Java MongoDB 的驱动完成在Java中对Mon...
阅读全文
posted @
2012-02-17 10:34 hoojo 阅读(2609) |
评论 (1) |
编辑 收藏
有问题可以留言、私信、发邮件:
Email:hoojo_@126.com Blog:http://blog.csdn.net/IBM_hoojo
http://hoojo.cnblogs.com/
方法一:
1、安装Rational Rose2003时,在需选择安装项的时候,只选择Rational Rose EnterPrise Edition即可,不需选择其他项,之后选择“DeskTop Installation from CD Image“,一路下一步。出现Mem_pointer_Bad错误,点击确定继续;
2、安装finish后将弹出的Rational License Key Administrator向导等窗口关闭。若有连接FLEXlm License Server的出错提示框出现,也关闭它们。
安装会出现 Mem_pointer_Bad 错误,原因应该是某个函数因为安全等级问题而无法运行,只要下载一个SHW32.dll把 ../Rational/Rose/SHW32.dll替换即可。(注:此方法可以避免报错,但是亦可能会造成Rose新建工程报Automation错误,所以此方法基本无效。。。任他报错吧!囧)
下载地址: http://www.oyksoft.com/soft/1880.html
3、安装好Rational Rose Enterprise Editon后,打开rose2003crack.rar压缩包,里面有四个文件,分别为flexlm.cpl、license.dat、lmgrd.exe、rational.exe。
4、用记事本打开license.dat文件,大约在文件的中间位置有:
SERVER MICROSOFT ANY
DAEMON rational "C:\Program Files\Rational\common\rational.exe"
将其修改为:SERVER 计算机名 ANY DAEMON rational "自己安装的目录\rational.exe"后,保存。
5、将license.dat、 lmgrd.exe 、rational.exe三个文件一起拷贝到:安装目录\rational\common\ 下面。
如:若为默认则为:C:\Program Files\Rational\common\目录。
6、将flexlm.cpl拷贝到C:\Windows\system32目录下。
7、进入控制面板,则在控制面板的上方会增加了一个图标,即FLEXlm License Manager,将其打开,在Setup页中lmgrd.exe右侧目录写为:C:\Program Files\Rational\Common\lmgrd.exe(若为默认安装目录)
License File右侧目录写为:C:\Program Files\Rational\Common\license.dat 点击“应用”。
8、回到Control页,点击Start,若出现"Server Started",则表示已经成功,可以点击Status,若状态为:计算机名:license server UP(MASTER)则成功。
9、这时可打开安装的Rational Rose Enterprise Edition,若还是出现Error,则打开Rational License Key Administrator ,点击工具栏中的第一个工具(Start WIzard),点击下一步,在Server Name中的名字改为自己的计算机名,port可以不输,能进入下一个管理窗口并且没出错提示,就代表license server配置成功,Rational的产品应该可以运行了。
——————————————————————————————————————————————————
更简单方法二:
安装完成后,下载rational_perm.dat覆盖到Common文件夹即可完成破解,简单吧 o(∩_∩)o...哈哈!
###########################################################################
另一版本:
FROM:http://blog.csdn.net/fenglibing/archive/2007/08/17/1747693.aspx
这么好的东西,不拿来出分享,我对不起原作者呀。但是我这里不知道作者是谁,感谢在先了。
http://www.oyksoft.com/soft/1880.html
http://files.cnblogs.com/lixianhuei/rose2003crack.rar
以上两个网址分别是用来下载Rational Rose 2003及其破解软件的。
1、安装Rational Rose2003时,在需选择安装项的时候,只选择Rational Rose EnterPrise Edition即可,不需选择其他项。
2、安装好Rational Rose Enterprise Editon后,打开rose2003crack.rar压缩包,里面有四个文件,分别为flexlm.cpl、license.dat、lmgrd.exe、rational.exe。
3、用记事本或者是EditPlus打开license.dat文件,大约在文件的中间位置有:SERVER Microsoft ANY
DAEMON rational “C:\Program Files\Rational\common\rational.exe” 将其修改为:SERVER 计算机名 ANY DAEMON rational “自己安装的目录\rational.exe”后,保存
注:若是按默认目录安装,则只需修改计算机名即可。
4、将license.dat、 lmgrd.exe 、rational.exe三个文件一起拷贝到:安装目录\rational\common\ 下面。
如:若为默认则为:C:\Program Files\Rational\common\目录。
5、将flexlm.cpl拷贝到system32目录下。如win2000系统中为C:\WINNT\system32目录。
6、进入控制面板,则在控制面板的上方会增加了一个图标,即FLEXlm License Manager,将其打开,在Setup页中lmgrd.exe右侧目录写为:C:\Program Files\Rational\Common\lmgrd.exe(若为默认安装目录)
License File右侧目录写为:C:\Program Files\Rational\Common\license.dat
7、回到Control页,点击Start,若出现”Server Started”,则表示已经成功,可以点击Status,若状态为:计算机名:license server UP(MASTER)则成功。
8、这时可打开安装的Rational Rose Enterprise Edition,若还是出现Error,则打开Rational License Key Administrator ,点击工具栏中的第一个工具(Start WIzard),点击下一步,在Server Name中的名字改为自己的计算机名即可。因现在的学习需在使用Rational Rose,所以进行了安装,但确实花了不少工夫,所以特把自己安装的经验来跟大家一起分享,希望能对大家有所帮助。
该文章为转载文章,原文作者应该是163.com的blog,但找不到作者blog,只能通过图片url找到是163.com的
Email:hoojo_@126.com
Blog:http://blog.csdn.net/IBM_hoojo
http://hoojo.cnblogs.com/
posted @
2012-02-14 11:35 hoojo 阅读(135712) |
评论 (24) |
编辑 收藏
SQL Server 数据库设计
一、数据库设计的必要性
二、什么是数据库设计
三、数据库设计的重要
四、数据模型
实体-关系(E-R)数据模型
实体(Entity)
属性(Attribute)
关系(Relationship)
五、数据库设计步骤
1、 需求分析阶段
2、 概要设计阶段
3、 详细设计阶段
六、数据库设计规范化
数据库设计中经常出现的问题
规范设计
规范化和性能关系
SQL Server 数据库基础编程
Go批处理语句
使用、切换数据库
创建、删除数据库
基本数据类型
精确数字类型
近似数字类型
日期时间类型
字符串类型
Unicode字符串类型
二进制字符串类型
判断表或其他对象及列是否存在
创建、删除表
给表添加字段、修改字段、删除字段
添加、删除约束
插入数据
查询、修改、删除数据
备份数据、表
利用存储过程查询表信息
SQL Server Transact-SQL 编程
变量
1、 局部变量(Local Variable)
2、 全局变量(Global Variable
输出语句
逻辑控制语句
1、 if-else判断语句
2、 while…continue…break循环语句
3、 case
4、 其他语句
SQL Server T-SQL高级查询
基本常用查询
嵌套子查询
# from (select … table)示例
# in, not in子句查询示例
# exists和not exists子句查询示例
# some、any、all子句查询示例
聚合查询
1、 distinct去掉重复数据
2、 compute和compute by汇总查询
3、 cube汇总
排序函数
# row_number函数
# rank函数函数
# dense_rank函数
# partition by分组子句
# ntile平均排序函数
集合运算
1、 union和union all进行并集运算
2、 intersect进行交集运算
3、 except进行减集运算
公式表表达式
连接查询
1、 简化连接查询
2、 left join左连接
3、 right join右连接
4、 inner join内连接
5、 cross join交叉连接
6、 自连接(同一张表进行连接查询)
函数
1、 聚合函数
2、 日期时间函数
3、 数学函数
4、 元数据
5、 字符串函数
6、 安全函数
7、 系统函数
8、 配置函数
9、 系统统计函数
10、 用户自定义函数
SQL Server 索引和视图
索引
1、 什么是索引
2、 索引分类
3、 创建索引
4、 适合的创建索引的列
5、 不适合创建索引的列
视图
1、 什么是视图
2、 创建视图准则
3、 创建视图
4、 修改视图
5、 加密视图
SQL Server 存储过程
存储过程的概念
1、 存储过程的优点
A、 存储过程允许标准组件式编程
B、 存储过程能够实现较快的执行速度
C、 存储过程减轻网络流量
D、 存储过程可被作为一种安全机制来充分利用
系统存储过程
用户自定义存储过程
1、 创建语法
2、 创建不带参数存储过程
3、 修改存储过程
4、 带参存储过程
5、 带通配符参数存储过程
6、 带输出参数存储过程
7、 不缓存存储过程
8、 加密存储过程
9、 带游标参数存储过程
10、 分页存储过程
Raiserror
SQL Server 事务、异常和游标
事务
1、 事务的特点
原子性
一致性
隔离性
持久性
2、 事务的模式
a、 显示事务
b、 自动提交事务
c、 隐式事务
3、 事务处理
a、 begin transaction语句
b、 commit transaction语句
c、 rollback transaction语句
4、 事务的示例
异常
# 示例:用异常处理错误信息
# 示例:异常能处理的错误信息
# 示例:无法提交的事务
# 示例:处理异常日志信息
游标
1、游标实际功能
2、游标的基本操作
A、 定义游标
B、 打开游标
C、 检索游标
D、 关闭游标
E、 删除游标
3、游标操作示例
SQL Server 触发器
什么是触发器
DML触发器分为:
1、 after触发器(之后触发)
a、 insert触发器
b、 update触发器
c、 delete触发器
2、 instead of 触发器 (之前触发)
创建触发器
# 创建insert类型触发器
# 创建delete类型触发器
# 创建update类型触发器
# update更新列级触发器
# instead of类型触发器
# 创建instead of触发器
# 显示自定义消息raiserror
# 修改触发器
# 启用、禁用触发器
# 查询创建的触发器信息
# 示例,验证插入数据
# 示例,操作日志
SQL Server 数据库安全
posted @
2011-07-21 15:24 hoojo 阅读(2230) |
评论 (1) |
编辑 收藏