SQL-Server数据库(实验)-课程报告(共31页).doc

上传人:飞****2 文档编号:14167139 上传时间:2022-05-03 格式:DOC 页数:31 大小:2.36MB
返回 下载 相关 举报
SQL-Server数据库(实验)-课程报告(共31页).doc_第1页
第1页 / 共31页
SQL-Server数据库(实验)-课程报告(共31页).doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《SQL-Server数据库(实验)-课程报告(共31页).doc》由会员分享,可在线阅读,更多相关《SQL-Server数据库(实验)-课程报告(共31页).doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上实验报告SQL Server数据库课程号:实验项目:数据库设计、创建、管理,数据库操作学号 姓名 专业班级 实验地点指导教师时间评语(要求): 按时完成实验;实验内容和过程记录完整;回答问题完整、正确;实验报告的撰写认真、格式符合要求。成绩教师签字一、实验目的1理解并掌握数据库设计的概念、方法和步骤。2初步应用数据库设计方法。了解需求分析的内容。3重点运用ER模型进行概念设计,然后将ER模型转换为关系模型。4深入理解SQL Server 2008数据库的存储结构。5深入理解SQL Server 2008的数据类型、表对象设计与定义。6掌握SQL Server 2008

2、Management studio的应用。运用交互方式和命令方式建立数据库和表。7认识和掌握Transact-SQL 的数据库操作。8深入理解视图意义。掌握SQL Server 中创建、管理与应用视图的方法。9深入理解数据库安全的概念。10深入理解SQL Server 2008的安全体系框架。11掌握登录与服务器角色的概念、操作与应用。掌握数据库用户、固定角色、自定义角色、架构的概念、操作与应用。掌握数据库权限的概念、操作与应用。12理解事务的概念。13深入理解并掌握服务器编程的意义及方法。14能够编写各种自定义函数和存储过程。15理解触发器,并能够编写、应用触发器。16理解备份与恢复的意义及

3、基本操作。二、实验设备(环境)及要求PC、 Windows XP、SQL SERVER 2008三、实验内容及要求实验项目:小型药店销售管理系统通过调查、收集信息、分析,写出分析与设计报告。1. 简要的系统需求分析包括业务分析、功能需求分析、信息需求分析。试分析该系统的基本业务,计算机信息系统需要完成的基本功能、信息系统需要处理的信息。2. 概念设计设计系统的概念模型,采用ER模型。3. 逻辑设计将ER模型为关系模型,指出每个关系的主键、外键和必要的约束。4. 写出数据库的物理设计包括存储组织结构、表的结构设计等。5. T-SQL命令方式创建数据库的操作利用SQL命令创建数据库文件、表、索引、

4、联系和主键、外键等约束。(实验报告应写出实验的过程,包括必要的截图。)6. 利用T-SQL命令增加、删除、修改数据。7. 利用T-SQL命令进行数据的检索和统计根据自己设计的数据库和输入的数据,写出至少10个查询要求及对应的SQL查询命令,应该包含如下功能:投影和选择;多表连接;分组统计与HAVING;子查询;查询结果保存。8. 利用SQL命令创建视图对象根据开发的系统的需要,至少设计三个视图:基于单表的、包含多表连接的、包含统计运算的。利用SQL对视图进行查询。9. 对视图进行插入、删除、修改数据操作。体会视图与表的异同。10. 编写自定义函数。(1)编写一个自定义函数,将一个字符串作为自变

5、量,返回颠倒顺序的字符串。写出源代码。(2) 编写一个自定义函数,能够实现参数化查询的功能。自己设定函数的具体要求,然后编写出来。11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。12. 编写一个实现修改表的触发器,实现完整性控制。13. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。14. 将部分登录赋予服务器角色。然后撤消。15. 将部分登录映射到你的数据库中成为用户。16. 创建自定义角色、架构。17. 通过角色给用户授权。18. 直接给用户授权,验证其获得权限前后的操作差别。19. 删除用户和自定义的角色。四

6、、回答问题1你如何认识需求分析在系统开发中的地位和重要性?答: 需求分析是系统开发的重要环节,其目的是通过调查分析,把用户的信息和功能描述转化为开发员所能理解的功能描述,并在用户需求的基础上去除不合理的地方,补充系统缺失的地方,最后为系统的概要设计,详细设计提供准确,有效的数据基础。在需求分析中要把系统所要处理的业务理解透彻,并把其中的信息整理归类。然后还需要把整个系统所要实现的功能的逻辑思路理清楚,这些工作都是系统开发能够继续做下去的基础。如果需求分析没有做好,或者说对整个系统的总体框架不明晰,最终的系统就不能达到开发目标。2设计ER图、关系模型分别属于数据库设计的哪一阶段?答:ER图属于概

7、念设计阶段;关系模型处于逻辑设计阶段3主键、外键对于关系数据库的意义何在?答:主键是关系中能唯一区分、确定不同元组的单个属性或者属性组合。 外键能够保证数据库的数据的完整性和唯一性,通过外键,那个将相互关联的表连接 起来。4在数据库存储结构设计时要考虑哪些因素?答:首先要考虑数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排,确定系统配置。同时要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。5在表设计时对于数据类型的选择和使用如何考虑?答:首先要清楚理解数据库中各种数据类型的用法和范围,然后应该根据字段的实际类型来考虑数据类型,还要估计表中数据的大小范围,

8、来确定数据类型的大小,避免空间不足或者浪费。6. 交互式如何实现表之间的联系?SQL命令如何实现表之间的联系?答: (1)交互式:单击工具栏上的“关系”按钮,打开“外键关系”对话框,在其中设置各表间关系。 (2)SQL命令:ALTER TABLE ADD CONSTRAINT constraint_name PRIMARYKEYCLUSTERED|NONCLUSTERED FOREIGN KEY REFERENCES referenced_table7 如果在定义表时进行了主键、外键以及约束等完整性设置,对于数据的输入有何影响?试举例说明。 答:定义主键 :定义主键来强制不允许空值的指定列中输

9、入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。定义外键:外键引用完整性表示得到正常维护的表之间的关系。表中的数据只应指向另一个表中的现有行,不应指向不存在的行。主键约束:使用单列或者多列组合,表示每一条记录的唯一性,值不能为空;外键约束:是为了加强数据表之间的关键的表中的单列或者多列值,必须依赖另外的表存在;唯一约束:不允许数据库中的某一列数据有重复,但是允许有空值存在。 主键和外键一般不允许为空,如果没有输入值的话会报错,比如“性别”这一字段,如果开发人员已经约束了其值只能为“男”或“女”,当使用者输入除以上两个值外的任何值都会报错。

10、8用INSERT INTO 命令输入,如果数据与字段数量和要求不一致有什么问题?当表定义中有默认值的时候,插入记录是否可以省略该字段的数据?答:如果数据与字段数量和要求不一致,只有在少于并且没有写出的那个已定义了默认值或者可为空的情况下才正确,其他情况都是错误的。当表定义中有默认值的时候,插入记录旅游省略该字段的数据。9HAVING子句有什么作用?答: HAVING字句与WHERE子句一样都是实现查询功能中条件的控制和数据的筛选,WHERE子句不能包含聚集函数,而HAVING子句一般包含聚集函数。HAVING子句还可以用来对分组结果进行筛选。10当通配字符作为普通字符参与匹配查询时,如何解决这

11、样的问题?答: a.通过在ESCAPE字句中指定转义符、在查询条件下使用转义符指定某个通配字符是正常字符; b.将通配符用括起来,指定一个字符、字符串或范围,要求所匹配对象为它们中任意一个。11可否利用视图进行数据的插入、删除、修改? 答:视图是一张表,所以对表的插入、删除、更新和查询操作原则上都可以在视图上进行。但是,视图是基于表的,对视图的操作要转化为对表的操作,这样,视图在使用上有诸多规定和限制。对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据。对视图上的某些列不能修改,如计算列,内置函数列和行集合函数列,对具有NOT NULL的列进行修改时可能会出错。

12、通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL属性的列有值,可以是默认值等,否则不能向视图中插入数据行。如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败。12根据自己的体会,谈谈视图在数据库体系中的作用。 答:视图是一个虚表,其内容由查询定义。利用视图可以简化用户操作数据的方式。可将经常使用的连接、投影、联合查询和选择查询定义为视图,这样每次对特定的数据执行进一步操作时,不必指定所有条件和限定。除此之外还可以定制数据,导出数据。还可以用GRANT和REVOKE命令为各种用户授予在视图上的操作权限,这样通过视图,用户只能查询或修改他们各自所能见到

13、的数据,数据库中的其他数据对他们来说是不可见的或不可修改的。保证了数据库的安全性。13视图是如何保存的?视图中的数据是否真的存储在文件中?答:视图是一个虚表,是以脚本的形式存在数据库中,其中的数据仍然是原来表的数据。视图中的数据仍然是表中的数据,并不真的存储在文件中。 14SQL SERVER有几种身份验证模式?区别是什么?不同验证模式的登录账户有何区别?答:SQL SERVER提供了两种对数据库资源的访问进行身份验证的模式:Windows身份验证模式和混合的验证模式。Windows身份验证模式:是默认的验证模式,使用windows操作系统的安全机制验证用户身份,只要用户能够通过windows

14、用户账号验证,并且是SQL Server的登录账户,即可连接到SQL Server而不用进行身份验证,只适用于能够提供有效身份验证的windows操作系统。混合的验证模式:在混合的验证模式下,Windows用户和SQL用户都可以访问数据库实例。需要为非Windows用户提供访问权限时就使用混合的验证模式。若用户需要使用SQL Server验证模式,则需要将服务器设置为混合验证模式。15Sa账户有何特点? 答:“Sa”账户是采用SQL Server验证模式的SQL Server 系统管理员登录账户,该账户拥有最高的管理权限,可以执行服务器范围内的所有操作。它是以SQL Server身份验证的,所

15、以必须设置一个密码。同时,Sa账户的属性不可以更改,密码可以修改。Sa登录时无法删除的。16共有几种服务器角色?最高权限的角色是什么?能够创建数据库的角色是哪个?答:共有8种固定服务器角色,分别是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同时每一个登录用户都属于public服务器角色。最高权限的角色是sysadmin;能够创建数据库的角色是:sysadmin,dbcreator。 17数据库用户和登录账户有什么关系?guest是什么用户?有何作用?答:这是两

16、种不同级别的安全机制,登录账户是SQL Server级的安全性设置,而数据库用户则是数据库级的安全性设置。登录账户用于登录服务器,但是当某一用户要访问某个数据库时,除了可以成为服务器的一个登录以外,还必须成为这个数据库的用户账户,即获得一定的授权。数据库用户账号在一般情况下是从某个登录账户中映射过来的。guest是来宾用户,是用来共享文件的。任何一个登录都可以以此身份访问数据库。guest自动本身只具有public权限。也可以由其他用户授权。18数据库角色有哪两类?PUBLIC角色有何特点?答:数据库角色分为固定数据库角色和用户定义的数据库角色。每个数据库都有一系列固定数据库角色。虽然每个数据

17、库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。用户定义数据库角色是用户根据工作的职能定义一系列角色,并给每个角色指派了适合这项工作的权限。从而在数据库中管理这些权限。public角色有两大特点:第一,数据库创建时自动生成,初始时没有权限,但可以为pbulic角色授予权限;第二,所有的数据库用户自动都是它的成员。由于所有用户都是public角色成员,因此数据库中所有用户都会自动继承角色的权限。当为public角色授予权限时,实际上就是为所有数据库用户授权。不能删除public角色,也无法再将用户或组指派给该角色,它们默认属于该角色。19用户与架构有什么关系?系统默认架构是什么

18、?怎样为用户指定架构?答:用户并不直接拥有数据库对象,架构拥有数据库对象。用户通过架构来使用数据库对象。这种机制使得删除用户时不必修改数据库对象的所有者,提高了数据库对象的可管理性。用户不直接拥有数据库对象,数据库对象的直接所有者是架构,用户通过架构拥有数据库对象.而在SQL Server 2005中构架和用户是不同的实体。一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹中一样。与文件夹不同的是,架构是不能嵌套的。系统默认架构是dbo架构;通过使用CREATE USER 和ALTER USER 语句,可以分配一个默认架构;或者通过SSMS在该用户的属性下面分配一个默认架构。20. 什

19、么是安全对象?怎样为数据库用户指定查询表的权限?答:安全对象是SQL Server 数据库引擎授权系统控制对其进行访问的资源。安全对象范围有服务器、端点和架构。为指定数据库用户授予table的权利,然后在下面的权限中选择select。语法 GRANT ALL PRIVILEGES | 权限名 ( 列名 ,n ) ,n ON class : 安全对象 TO 安全主体 ,n TO 安全主体 ,n WITH GRANT OPTION AS 安全主体 21简述自定义函数、存储过程和触发器的异同。答:自定义函数、存储过程、和触发器都是模块化设计的类型。自定义函数:最后是返回一个值,就像普通函数一样,可以

20、直接在表达式中调用,定义函数时要定义函数的函数名、参数、函数值类型和函数体。存储过程:是一个可重用的代码模块,可以高效率的完成指定的操作。存储过程可以没有返回值,也可以有任意个输出参数,必须单独调用。触发器:实质是一种特殊类型的存储过程,它在插入、修改或删除时触发执行。能够实现由主键和外键所不能保证的参照完整性和数据的一致性。22什么是游标?应用游标的步骤是什么?答:游标是一种处理数据的方法,它可以对结果集进行逐行处理,也可以指向结果集中的任意位置,并对该位置的数据进行处理。应用游标的步骤:(1)声明游标 (2)打开游标,即把外存上的数据调入内存,运行查询(3)提取数据 (4)关闭游标(5)释

21、放游标 23. 有哪几种恢复模式和几种备份类型?答:恢复模式有3种:简单恢复模式、完整恢复模式和大容量日志恢复模式。 备份类型也有3种:完整备份、差异备份和事务日志备份。五、分析讨论这次实验我觉得最重要的是系统分析,逻辑设计和物理设计时一定要认真想清楚每张表的属性和它们之间的相互联系,这样在后面使用查询的时候才不会出错,如果前面没做好,后面做查询的时候就会出现各种错误,如数据结构定义不统一,外键冲突等问题。除此之外要做好一个数据库系统,要掌握好学习中的每一步,平时上课学习很有用,认真学了,做的时候就会比较轻松。然后,我觉得函数和触发器那部分比较难,只会实现简单的查询、删除、修改控制。感觉自己在

22、验证授权、存储过程等方面的基础及学习较为薄弱。 相信经过一步一步的学习,我们能力也会进一步提高。以下为本次实验的过程记录报告:(可包括截图) 小型药店销售管理系统1. 简要的系统需求分析 药店管理系统是非常常用的信息管理系统,随着规模的扩大,传统的药店管理模式 已经不能适应发展的需要。一个药店要有一个健全的管理系统,来管理药品的信息,包括药品编号、药品名、有效期、库存量、供应商等。除此之外,系统还提供查询药品的进货和销售信息以及顾客信息等,大大提高了药店对于药品管理的效率。1.1包括业务分析 柜台信息管理:把药店分成各个小模块,各司其事,既分工有合作,使药店高效运行。 药品信息管理:对药品进行

23、编号,将每一种药品录入到药品信息表中,对新购进的药品,将其信息加入到药品信息表中。对于缺乏的药品,要及时的补进。对于快过期的药品,也要及时的进行处理。 进销药品信息管理:同样的为其进行编号,可以让管理者清楚的了解药品的进销情况。 供应商信息管理:可以适时的与供应商取得联系,增加药品库存量,方便药店管理。 顾客信息管理:可以管理药品的销路,与顾客取得联系。 员工信息管理:可以对药店员工信息进行查询等,知道每个员工的职责以及柜台号。1.2功能需求分析 a.药店的一般柜台人员可以查看药品信息。 b.药库管理人员可以对所以药品信息进行添加、修改、删除操作。2. 概念设计设计系统的概念模型, ER模型。

24、基本实体及其属性的ER模型如图19:柜台柜台编号柜台名 图1员工工号姓名性别生日电话基本工资职务柜台号 图2供应商供应商号联系方式供应商名地址联系人 图3药品药品编号供应商号药品名有效期库存量 图4顾客顾客姓名顾客编号顾客地址 图5进货单进货日期进货单号进货员工号 图6进货明细进货单号药品编号金额数量进价序号 图7销售单销售日期销售单号顾客编号收款员工号 图8销售明细销售单号药品编号金额数量售价序号 图9员工顾客供应商药品销售进货管理工作柜台联系柜台编号柜台名顾客编号顾客姓名顾客地址工号姓名性别柜台号职务药品编号药品名供应商号销售单号供应商号. 整体E-R图3. 逻辑设计将ER模型为关系模型,

25、指出每个关系的主键、外键和必要的约束。1.柜台(柜台编号,柜台名),其中柜台编号是主键;2.员工信息(工号,姓名,性别,生日,柜台号,职务,基本工资,电话),其中工号是主键,柜台号是外键,性别IN(男,女)、基本工资=1000是约束条件;3.供应商(供应商号,供应商名,地址,联系人,联系方式),其中供应商号是主键;4.药品(药品编号,药品名,供应商号,有效期,库存量),其中药品编号是主键,供应商号是外键,库存量= 0是约束条件;5.顾客信息(顾客编号,顾客姓名,顾客地址),其中顾客编号是主键;6.进货单信息(进货单号,进货日期,进货员工号),其中进货单号是主键,进货员工号是外键;7.进货明细(

26、进货单号,序号,药品编号,进价,数量,金额),其中进货单号,药品编号是外键, 进价=0, 数量=0是约束条件;8. 销售单信息(销售单号,销售日期,顾客编号,收款员工号),其中销售单号是主键,顾客编号收款员工号是外键;9. 销售明细(销售单号,序号,药品编号,售价,数量,金额),其中销售单号,药品编号是外键, 专心-专注-专业进价=0, 数量=0是约束条件;4. 写出数据库的物理设计1.具体表的结构设计如表1-9所示:表1 柜台表字段名类型长度键或索引Null值检验参照表说明柜台编号CHAR4主键柜台名CAHR16表2 员工表字段名类型长度键或索引Null值检验参照表说明工号CHAR6主键姓名

27、CAHR10性别CHAR2男或女生日DATE柜台号CHAR4外键柜台职务CHAR10基本工资MONEY=1000电话VARCHAR16表3 供应商表字段名类型长度键或索引Null值检验参照表说明供应商号CHAR10主键供应商名VARCAHR16地址VARCHAR50 联系人CHAR10联系方式VARCHAR16表4 药品表字段名类型长度键或索引Null值检验参照表说明药品编号CHAR8主键药品名VARCAHR20供应商号CHAR10外键供应商有效期DATE库存量INT=0表5 顾客表字段名类型长度键或索引Null值检验参照表说明顾客编号CHAR8主键顾客姓名CAHR10顾客电话VARCHAR1

28、6顾客地址VARCHAR50表6 进货单表字段名类型长度键或索引Null值检验参照表说明进货单号CHAR10主键进货日期DATE进货员工号CHAR6外键员工表7 进货明细表字段名类型长度键或索引Null值检验参照表说明进货单号CHAR10外键进货单序号SMALLINT药品编号CHAR8外键药品进价MONEY=0数量SMALLINT=0金额计算列进价*数量表8 销售单表字段名类型长度键或索引Null值检验参照表说明销售单号CHAR10主键销售日期DATE顾客编号CAHR8外键顾客销售员工号CHAR6外键员工表9 销售明细表字段名类型长度键或索引Null值检验参照表说明进货单号CHAR10外键进货

29、单序号SMALLINT药品编号CHAR8外键药品售价MONEY=0数量SMALLINT=0金额计算列进价*数量5. T-SQL命令方式创建数据库的操作利用SQL命令创建数据库文件、表、索引、联系和主键、外键等约束。1. 创建数据库:2. 创建表:3. 索引、联系和主键、外键等约束6. 利用T-SQL命令增加、删除、修改数据。1. 向表中增加属性列2修改、添加和删除数据例:添加的顾客信息结果为:更新的员工基本工资:7. 利用T-SQL命令进行数据的检索和统计根据自己设计的数据库和输入的数据,写出查询要求及对应的SQL查询命令,包含如下:1. 投影和选择:2. 多表连接3. 分组统计与HAVING

30、选择工资3000的员工,按工号排序4. 子查询 5.查询结果保存8. 利用SQL命令创建视图对象1.基于单表的2. 包含多表连接的3. 包含统计运算的。-利用SQL对视图进行查询。 -查询供应商号为0101的药品库存量9. 对视图进行插入、删除、修改数据操作。体会视图与表的异同。插入:删除:修改:10. 编写自定义函数。(1)编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串。写出源代码。(2) 编写一个自定义函数,能够实现参数化查询的功能。自己设定函数的具体要求,然后编写出来。11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后

31、编写出来。(1).(2).12. 编写一个实现修改表的触发器,实现完整性控制。柜台表中负责人字段:删除工号为的员工,该员工为所在柜台负责人删除工号为的员工,该员工不是所在柜台负责人13. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。(1)在控制面板创建用户: (2)SQL创建用户14. 将部分登录赋予服务器角色。然后撤消。将部分登录赋予服务器角色,如图:撤销服务器角色成员: 15. 将部分登录映射到你的数据库中成为用户。16. 创建自定义角色、架构。创建架构对象及对象在不同架构之间的转移。(1)创建自定义角色: (2)创建自定义架构 17. 通过角色给用户授权。18. 直接给用户授权,验证其获得权限前后的操作差别。赋予用户user1 对柜台表插入和对员工表查询的权限,则在用户user1下可以看到小型药店销售管理系统数据库中的柜台表和员工表,可以对柜台表进行插入却不可以进行查询;而在员工表上可以查询而不能进行其他操作,授权是局部的权利,被授权者只能执行获得权利的操作,维护数据库的安全性。19. 删除用户和自定义的角色。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁