1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,数据库设计与实现,数据库对象,曹志胜,数据库对象,学习目标:,掌握数据库中的表、索引、视图、图表和缺省值概念。,掌握触发器和存储过程的概念和优缺点。,数据库对象,.,表(,Table,),数据库中的表与我们日常生活中使用的表格类似,它也是由行(,Row,)和列(,column,)组成的。列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用
2、于唯一地确定一条记录。,数据库对象,.,索引(,Index,),索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。,如聚簇索引。,数据库对象,.,视图,(,View,),视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个,虚拟的表,,在数据库中并不实际存在。视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。,数据库对象,.,图表,(,Diagram,),图表其实就是数据库表之间的,关系示意图,
3、。利用它可以编辑表与表之间的关系。,.,缺省值,(,Default,),缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予,事先设定好的值,。,数据库对象,6.,触发器,触发器由,事件来触发,,可以查询其他表,而且可以包含复杂的,SQL,语句。它们主要用于强制服从复杂的业务规则或要求。也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。,实际上触发器就是一个用户定义的,SQL,事务命令的集合,。,数据库对象,触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的,特殊的存
4、储过程,,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。,数据库对象,优点,触发器可通过数据库中的相关表实现级联更改,不过通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。,数据库对象,优点,触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中
5、的列。,数据库对象,例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。,数据库对象,慎用触发器,触发器功能强大,触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。,如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。,数据库对象,7.,存储过程(,Stored Procedure,),存储过程(Stored
6、 Procedure)是在大型数据库系统中,一组为了,完成特定功能的SQL 语句集,,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。,数据库对象,触发器与存储过程的主要区别在于触发器的,运行方式,。存储过程必须有用户、应用程序或者触发器来显示的调用并执行,而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。,数据库对象,当一行被插入、更新或者删除时触发器才执行,同时还取决于触发器是怎样创建的,当UPDATE发生时使用一个更新触发器,当INSERT发生时使用一个插入触发器,当DELETE发生时使用一个删除触发器。,数据库对象,今天,我们的,课结束了!,