《数据库管理实务》
实验报告
课程号:B0900980
实验项目:数据库设计、创建、管理,数据库操作 学 号 实验 地点 工程学院机房(文波) 名 指导 教师 肖慎勇 姓 马冰洁 时间 2012年6月 成绩 教师签字 肖慎勇 同组人学号 评语(要求): 按时完成实验;实验容和过程记录完整;回答问题完整、正确;实验报告的撰写认真、格式符合要求。 一、实验目的 1.理解并掌握数据库设计的概念、方法和步骤。 2.初步应用数据库设计方法。了解需求分析的容。 3.重点运用ER模型进行概念设计,然后将ER模型转换为关系模型。 4.深入理解SQL Server 2005数据库的存储结构。 5.深入理解SQL Server 2005的数据类型、表对象设计与定义。 6.掌握SQL Server 2005Management studio的应用。运用交互方式和命令方式建立数据库和表。 7.认识和掌握Transact-SQL 的数据库操作。 8.深入理解视图意义。掌握SQL Server 中创建、管理与应用视图的方法。 9.深入理解数据库安全的概念。 10.深入理解SQL Server 2005的安全体系框架。 11.掌握登录与服务器角色的概念、操作与应用。掌握数据库用户、固定角色、自定义角色、架构的概念、操作与应用。掌握数据库权限的概念、操作与应用。 12.理解事务的概念。 13.深入理解并掌握服务器编程的意义及方法。 14.能够编写各种自定义函数和存储过程。。 15.理解触发器,并能够编写、应用触发器。 二、实验设备(环境)及要求 PC、 Windows XP、SQL SERVER 2005 三、实验容及要求 实验项目:各小组自选的项目。 . . .
通过调查、收集信息、分析,写出分析与设计报告。 1. 简要的系统需求分析 包括业务分析、功能需求分析、信息需求分析。 试分析该系统的基本业务,计算机信息系统需要完成的基本功能、信息系统需要处理的信息。 2. 概念设计 设计系统的概念模型,采用ER模型。 3. 逻辑设计 将ER模型为关系模型,指出每个关系的主键、外键和必要的约束。 4. 写出数据库的物理设计 包括存储组织结构、表的结构设计等。 5. T-SQL命令方式创建数据库的操作 利用SQL命令创建数据库文件、表、索引、联系和主键、外键等约束。 (实验报告应写出实验的过程,包括必要的截图。) 6. 利用T-SQL命令增加、删除、修改数据。 7. 利用T-SQL命令进行数据的检索和统计 根据自己设计的数据库和输入的数据,写出至少10个查询要求及对应的SQL查询命令,应该包含如下功能: 投影和选择; 多表连接; 分组统计与HAVING; 子查询; 查询结果保存。 8. 利用SQL命令创建视图对象 根据开发的系统的需要,至少设计三个视图:基于单表的、包含多表连接的、包含统计运算的。 利用SQL对视图进行查询。 9. 对视图进行插入、删除、修改数据操作。体会视图与表的异同。 10. 编写自定义函数。 (1)编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串。 写出源代码。 (2) 编写一个自定义函数,能够实现参数化查询的功能。 自己设定函数的具体要求,然后编写出来。 11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。 自己确定过程的具体要求,然后编写出来。 12. 编写一个实现修改表的触发器,实现完整性控制。 13. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。 14. 将部分登录赋予服务器角色。然后撤消。 15. 将部分登录映射到你的数据库中成为用户。 16. 创建自定义角色、架构。 17. 通过角色给用户授权。 18. 直接给用户授权,验证其获得权限前后的操作差别。 19. 删除用户和自定义的角色。 四、回答问题 . . .
1.你如何认识需求分析在系统开发中的地位和重要性? 需求分析就是根据用户或者客户的需要来设计数据库。只有根据需求设计出的数据库才是有用的,否则整个设计过程都是在做无用功。并且在需求设计这个过程中根据具体需要设计出模型,后面的具体实现过程遵照前面设计的模型来完成,使得后面的工作能够更加具有效率。在需求分析中要严格遵守客户的需求,并且要根据需求找出最合适的方案,为后面的具体实现打下基础。需求分析是整个开发过程的第一个阶段,也是最重要的一步。 2.设计ER图、关系模型分别属于数据库设计的哪一阶段? 设计ER图属于概念设计阶段,关系模型属于逻辑设计阶段。 3.主键、外键对于关系数据库的意义何在? 主键是关系中能唯一区分、确定不同元组的单个属性或者属性组合。 外键能够保证数据库的数据的完整性和一致性,通过外键,能够将相互关联的表联系起来。 4.在数据库存储结构设计时要考虑哪些因素? 需要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。 5.在表设计时对于数据类型的选择和使用如何考虑? 数据类型的选择首先要根据该属性的性质进行选择,如数值型,日期型等等。在确定基本类型之后,要考虑数据存取时间、取值围、处理效率多方面的因素,选取合适的数据类型,这主要是在数值类型上的选择。 6. 交互式如何实现表之间的联系?SQL命令如何实现表之间的联系? 交互式:单击工具栏上的“关系”按钮,打开“外键关系”对话框,在其中设置各表间关系。 SQL命令: 利用FOREIGN KEY REFERENCES referenced_table_name(referenced_column) ON DELETE {NO ACTION|CASCADE|SET NULL|SET DEFAULT} ON UPDATE {NO ACTION|CASCADE|SET NULL|SET DEFAULT} 7.如果在定义表时进行了主键、外键以及约束等完整性设置,对于数据的输入有何影响?试举例说明。 主键和外键一般不允许为空,如果没有输入值的话会报错。再比如“性别”这一字段如果开发人员已经约束了其值只能为“男”或者“女”,当使用者输入除以上两个值之外的任何值都会报错。 8.用INSERT INTO 命令输入,如果数据与字段数量和要求不一致有什么问题?当表定义中有默认值的时候,插入记录是否可以省略该字段的数据? 如果数据与字段数量和要求不一致,只有在少于并且没有写出的那个已定义了默认值或者可为空的情况下才为正确,其他情况均是错误的。 当表定义中有默认值的时候,插入记录可以省略该字段的数据。 9.HAVING子句有什么作用? . . .
HAVING子句和WHERE语句一样都是实现查询功能中条件的控制和数据的选择,WHERE 子句不能包含聚集函数,而HAVING 子句一般包含聚集函数。HAVING 子句还可以用来对分组结果进行筛选。 10.当通配字符作为普通字符参与匹配查询时,如何解决这样的问题? ①通过在ESCAPE子句中指定转义符、在查询条件下使用转义符指定某个通配字符是正常字符; ②将通配符用方括号[]括起来,指定一个字符、字符串或围,要求所匹配对象为它们中任意一个。 11.可否利用视图进行数据的插入、删除、修改? 对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据 对视图上的某些列不能修改,这些列是:计算列,置函数列和行集合函数列 对具有NOT NULL 的列进行修改时可能会出错。通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL 属性的列有值,可以是默认值,IDENTITY 等,否则不能像视图中插入数据行 如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败 12.根据自己的体会,谈谈视图在数据库体系中的作用。 视图是一个虚拟表,其容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 视图中看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。 视图还保证了数据的安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。 13.视图是如何保存的?视图中的数据是否真的存储在文件中? 视图是一个虚拟表,是以脚本的形式存在于数据库中,即其中数据仍然是原来表的数据。 视图中的数据任然是表中的数据,并不真的存储在文件中。 14.SQL SERVER有几种身份验证模式?区别是什么?不同验证模式的登录账户有何区别? SQL Server2005提供了两种对数据库资源的访问进行身份验证的模式:Windows身份验证和混合模式身份验证。 Windows身份验证。配置SQL Server2005使用Windows身份验证时,只有通过身份验证的Windows用户可以访问SQL实例。对于每个需要访问SQL实例的Windows用户,必须为其添加一个Windows登录。且该登录帐户必须为计算机的用户方可以访问SQL Server。 . . .
混合模式身份验证。再混合模式身份验证下,Windows用户和SQL用户都可以访问数据库实例。需要为非Windows用户提供访问权限时,比如说另一个客户操作系统的用户需要访问SQL Server时就使用混合模式身份验证。 15.Sa账户有何特点? Sa账户是SQL Server的特殊账户,sa账户拥有服务器和所有的数据库。即Sa账户拥有最高的管理权限,可以执行服务器围所有操作。它是以SQL Server身份验证的,所以必须设置一个密码。同时,sa账户的属性不可以更改,密码可以修改。Sa登录时无法删除的。 16.共有几种服务器角色?最高权限的角色是什么?能够创建数据库的角色是哪个? 共有8种固定服务器角色,分别是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同时每一个登录用户都属于public服务器角色。 最高权限的角色是sysadmin; 能够创建数据库的角色是:sysadmin,dbcreator; 17.数据库用户和登录账户有什么关系?guest是什么用户?有何作用? 这是两种不同级别的安全机制,登录账户是SQL Server级的安全性设置,而数据库用户则是数据库级的安全性设置。登录账户用于登录服务器,但是当某一用户要访问某个数据库时,除了可以成为服务器的一个登录以外,还必须成为这个数据库的用户账户,即获得一定的授权。数据库用户账号在一般情况下是从某个登录账户中映射过来的。 Guest是来宾用户,是用来共享文件的。任何一个登录都可以以此身份访问数据库。Guest自动本身只具有public权限。也可以由其他用户授权。 18.数据库角色有哪两类?PUBLIC角色有何特点? 数据库角色分为固定的数据库角色和用户定义数据库角色。每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库。用户定义数据库角色是用户根据工作的职能定义一系列角色,并给每个角色指派了适合这项工作的权限。从而在数据库中管理这些权限。 PUBLIC角色的特点:默认不具有任何权限,但用户可对此角色进行授权,他不能被删除,是所有user自动拥有的角色。数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public 角色的权限。 19.用户与架构有什么关系?系统默认架构是什么?怎样为用户指定架构? SQL Server 2000中数据库用户和构架是隐式连在一起的,架构将用户和权限之间建立了一个间接地方式。数据库架构是一个独立于数据库用户的非重复命名空间,可以将架构视为对象的容器。每个数据库用户都是与该用户同名架构的所有者;而在SQL Server 2005中构架和用户是不同的实体。一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹中一样。与文件夹不同的是,架构是不能嵌套的。 . . .
数据库实务实验报告酒店前台管理系统方案
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)