SQL综合实验Word文件下载.docx
《SQL综合实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《SQL综合实验Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
二、设备与环境
硬件:
多媒体计算机
软件:
WindowsXP以上的操作系统、VisualBasic或其它可视化语言及SQLServer2008版本
三、实验内容及要求
1.数据库设计
要求数据库设计要合理,对数据库设计作必要的说明并抓图。
数据库名必须与自己真实姓名有关,所有同学不能同名。
图不要太大,看清即可。
2.数据表设计
要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要的说明并抓图。
数据表名必须与自己真实姓名有关,所有同学不能同名。
3.视图设计
要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。
不可以只取一个表的几个字段就算创建视图。
4.索引设计
要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。
5.数据完整性设计
根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。
6.存储过程和触发器设计
根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。
必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。
7.备份与恢复设计
根据系统需求作必要的备份与恢复设计,如需要对那些内容备份,备份策略、由谁来做备份、什么时间做备份等。
8.数据库安全设计
根据系统需求作必要的数据库安全设计,如本系统分几级用户、分别是什么角色成员具有什么操作权限等。
四、实验结果及分析
设计思想(根据系统需求作数据库设计的简单说明)
数据库是数据的集合。
数据库技术是研究数据库的结构、存储、设计、管理和应用的一门软件学科。
而数据库管理系统(DatabaseManagementSystem,DBMS)是位于用户与操作系统之间的一层数据管理软件。
数据库是存储数据和数据库对象的操作系统文件,是数据库系统的主要组件,是数据库管理系统的核心。
数据库对象包括表、函数、视图、存储过程、规则等等。
数据库的存储结构分为逻辑存储结构和物理存储结构两种。
数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成。
实际上,SQLServer的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。
数据库的物理存储结构是讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。
一个数据库只能有一个主数据文件,后缀名为mdf;
一个数据库可以没有辅助数据文件,但也可以同时拥有多个辅助数据文件。
后缀名为ndf。
事务日志文件是存放数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志还原数据库。
每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。
事务日志文件的扩展名为ldf。
数据库文件组是文件的逻辑集合。
一个文件只能存在于一个文件组中,而一个文件组也只能被一个数据库使用;
且日志文件是独立的,它不能作为任何文件组的成员。
具体实现(可以是数据库设计抓图)
设计思想(根据系统需求作数据表设计的简单说明,如包含几个表,每个表的简单功能等。
)
表是数据库中最重要、最基本、最核心的对象,是实际存储数据的地方。
并简单阐述表的特点:
代表实体
由行和列组成
行和列的顺序是任意的
在同一个数据库中,表名是唯一的。
另外,需要简单讲解:
行也称为记录,列也称为字段或域。
对于每一个表,用户最多可以定义1024个列,且在同一个表中,列名必须是唯一的。
系统表是不能被删除的。
具体实现(可以是数据表设计抓表结构图)
要求体现数据库、数据表设计的合理性
设计思想(根据系统需求作视图设计,本系统需要做那几个视图,如普通用户想查看那个学生借阅了那本书,什么时间借的,什么时间还的等)
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。
是查看数据库表中数据的一种方法。
特点
强调试图只是一种逻辑对象,是一种虚拟表。
一般地,视图的内容包括:
*基表的列的子集或行的子集——视图可以是基表的其中一部分;
*两个或多个基表的联合——视图可以是对多个基表进行联合运算检索的SELECT语句;
*两个或多个基表的连接——视图可以是通过对若干个基表的连接生成的;
*基表的统计汇总——视图不仅仅是基表的投影,还可以是对基表的各种复杂运算的结果;
*另外一个视图的子集——视图可以基于另外一个视图;
*视图和基表的混合——视图和基表可以起到同样的作用。
优点
当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
视图有很多优点,主要表现在:
•视点集中
•简化操作
•定制数据
•合并分割数据
•安全性
创建试图
1.在创建或使用视图时,应该注意到以下情况:
•只能在当前数据库中创建视图,在视图中最多只能引用1024列;
•如果视图引用的表被删除,则当使用该视图时将返回一条错误信息,如果创建具有相同的表的结构新表来替代已删除的表视图则可以使用,否则必须重新创建视图;
•如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则必须为列定义名字;
•不能在视图上创建索引;
不能在规则、缺省、触发器的定义中引用视图;
•当通过视图查询数据时,SQLSERVER不仅要检查视图引用的表是否存在,是否有效,而且还要验证对数据的修改是否违反了数据的完整性约束。
如果失败将返回错误信息,若正确,则把对视图的查询转换成对引用表的查询。
2.演示使用企业管理器管理(创建、查看、修改、重命名、删除)视图
3.使用SQL语句管理视图
具体实现(可以是视图设计抓图)
4.索引的建立
设计思想(根据系统需求作索引设计的简单说明,如本系统需要做那几个聚集索引、非聚集索引、唯一索引、全文索引等)
索引就是加快检索表中数据的方法。
通过书籍目录的类比方式讲解索引的作用:
数据库的索引类似于书籍的索引。
在书籍中,索引允许用户不必翻阅完整本书籍就能迅速地找到所需要的信息。
在数据库中,索引允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
在书籍中,索引就是内容和相应页号的清单。
在数据库中,索引就是表中数据和相应存储位置的列表。
索引可以大大减少数据库管理系统查找数据的时间。
索引优缺点
告知学生索引的优缺点,并讲解在哪些列上最好创建索引,哪些列上不必创建索引。
为什么要创建索引呢?
这是因为,创建索引可以大大提高系统的性能。
*保证每行数据的惟一性;
*加快数据的检索速度;
*加速表和表之间的连接;
*减少查询中分组和排序的时间;
*使用优化隐藏器,提高系统性能。
也许会有人要问:
增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?
这种想法固然有其合理性,然而也有其片面性。
虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。
这是因为,增加索引也有许多不利的一个方面。
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
索引是建立在数据库表中的某些列的上面。
那么在创建索引的时候我们应该如何考虑呢?
其实很简单,我们只需要在主键上、在经常需要搜索的列上、在外键上、在经常需要排序的列上、在经常用在WHERE子句中的列上创建索引即可。
而不必在那些在查询中很少使用或者参考的列上、只有很少数据值的列上、定义为text,image和bit数据类型的列上、修改性能远远大于检索性能的列上创建索引。
索引类型
简述索引的分类,及它们的区别和创建它们应考虑的因素。
根据索引的顺序与数据库表的物理顺序是否相同,可以把索引分为:
顺序相同的聚簇索引和顺序不同的非聚簇索引。
告知在默认情况下,创建的索引是非聚簇索引,且强调由于聚簇索引改变表的物理顺序,应先创建聚簇索引,后生成非聚簇索引。
提醒:
聚簇索引创建在很少更新的表上。
换句话说,它创建在查找表(一般指主表)上。
也就是说,表列上必须创建的聚簇索引必须较少执行行的插入、删除和更新操作。
如果需要创建索引来提高查询速度,但同时列值又经常更动(由于插入、更新和删除),那么即使列值是唯一的(如主键值),也必须创建非聚簇索引。
在频繁处理的表上创建聚集簇索引将降低事务处理速度,因为每次插入、更新和删除操作都将对表重新组织。
索引属性
索引都有两个重要属性:
复合索引和唯一索引。
复合索引就是一个索引创建在两个列或者多个列上。
唯一性索引保证在索引列中的全部数据是唯一的,不会包含冗余数据。
创建索引
创建索引有多种方法,这些方法包括直接创建索引的方法和间接创建索引的方法。
直接创建索引就是使用CREATEINDEX语句或者使用创建索引向导;
间接创建索引就是在表中定义主键约束或者唯一性键约束时,同时也创建了索引。
具体实现(可以是索引设计抓图)
设计思想(根据系统需求作数据完整性设计的简单说明,如本系统需要的实体完整性、域完整性、参照完整性等)
数据完整性
数据完整性是指存储在数据库中的数据的一致性和正确性。
在这里只需要简单提一下:
数据完整性的设计是数据库设计好坏的一项重要指标。
约束
简单讲解约束的定义及类型。
约束是通过限制列中的数据、行中的数据和表之间数据来保证数据完整性的非常有效的方法。
约束的类型分为:
缺省约束、检查约束、主键约束、惟一性约束、外键约束。
创建约束
使用CREATETABLE语句表示在创建表的时候定义约束;
使用ALTERTABLE语句表示在已有的表中添加约束。
如果在一个表中只有一个约束,则为列级约束,否则为表级约束。
查看约束
告之学生使用系统存储过程sp_helpconstraint可以得到数据库中某一个表的全部约束信息。
例:
在查询分析器中执行sp_helpconstraintWord,就可以获得上边创建表Word的全部约束信息。
主键约束:
也就是在表中定义一个主键值。
在创建表的即可定义,但是其属性都为默认值。
该约束强制实体完整性,且默认的主键约束是惟一性的聚簇索引。
使用主键约束时,必须注意:
1、一个表最多只能定义一个主键约束。
2、列所输入的值必须是唯一的。
如果主键约束是由两个或两个以上的列组成的,那么这些列的组合必须是唯一的。
3、列不允许空值。
4、约束在指定的列上创建了一个惟一性索引。
5、在定义主键约束时添加级联操作选项。
具体实现(可以是数据完整性设计设计抓图)
设