《数据库设计综合应用.doc》由会员分享,可在线阅读,更多相关《数据库设计综合应用.doc(10页珍藏版)》请在课桌文档上搜索。
1、-实验 数据库设计综合应用实验容:任务1:活期储蓄管理系统数据库设计1问题的提出在活期储蓄管理过程中,“储户通过“存取款与“储蓄所发生业务联系。试设计活期储蓄管理系统数据库的概念模型、关系模型并确定约束。2系统需求分析通过对数据库用户(储蓄所业务人员)的调查,对用户的需求进展分析得知:(1)储户是指在*个储蓄所开户的人。该储蓄所称为储户的开户行。(2)一个储蓄所可以有多个储户,每个储户有惟一的账号。(3)每个储户可以在多个允许发生业务的储蓄所进展存取款。(4)储户按信誉分为“一般和“良好两种分别用0和1表示。信誉“一般的储户不允许透支。信誉“良好的储户可以透支,但不能超过5万元。(5)储户按状
2、态分为:“正常和“挂失两种分别用0、1表示。状态为“正常的储户允许存取款,状态为“挂失的储户不允许存取款。(6)储户的信息有:账号、密码、地址、信誉、存款额、开户行编号、开户日期、状态等。(7)储蓄所的信息有:编号、名称、地址、负责人(8)储户进展存取款时应该提供账号、存取标志(1:表示存款,0:表示取款)、存取金额、存取日期等信息,储蓄所首先要对储户的身份进展验证,对合法的储户再根据“信誉判断是否可以发生此次业务。假设发生业务则记录相应信息,修改储户的存款额。3概念模型设计请你根据系统需求分析设计E-R图。(请在此处用E-R图代替)4关系模型设计请你根据E-R图转换成对应的关系模型,并标出主
3、码(请在此处用对应的关系模型代替)5约束关系(1)实体完整性例如实体“储户的主码“账号不能为空等。请你在此处描述出全部的实体完整性。(2)参照完整性例如参照关系“存取款的属性“账号和储蓄所“编码分别是被参照关系“储户和“储蓄所的外码。因此,参照关系“存取款的属性“账号的值必须是被参照关系“储户中*一元组的“账号的值。请你在此处描述出全部的参照完整性。 (3)用户定义的完整性要求如下:对信誉为“一般的储户取款时,只有当:“储户.存款额“存取款.金额0时才可以发生取款业务。同理,对信誉为“良好的储户取款时,只要:“储户.存款额“存取款.金额50000元时便可以发生取款业务。请自行思考在本系统中是否
4、还有其他用户定义的完整性,并补充在此处6关系构造描述请你仿照表1在此处描述出活期储蓄管理系统的关系构造,实际上是给出了该系统数据库模式的型。表1 学生数据库关系构造描述关系名称属性名称数据类型宽度说明学生*字符串10字符串8字符串16出生年月日期时间型8性别字符串15日期时间型8课程课程号字符串15课程名字符串6先修课程号货币型8状态整数1取值为0、1学生选课*字符串10课程号字符串40成绩字符串16. z.-任务2:创立活期储蓄管理系统数据库-数据库的物理设计与实现这里给出的活期储蓄数据库的物理设计与实现,实际上就是数据库模式到模式数据库的存储模式的映射。1用SQL Server 2008创
5、立任务1描述的数据库数据库名称为:活期储蓄。数据主文件为:活期储蓄_data.mdf,存储在“D:data或者是自行定义的文件夹,存储空间初始值为5MB,最大空间为100MB,文件增量10。数据次数据文件为:活期储蓄_data2.mdf,存储在“D:data或者是自行定义的文件夹,存储空间初始值为5MB,最大空间为100MB,文件增量10。日志文件为:活期储蓄_log.ldf,存储在“E:data 或者是自行定义的文件夹,但是不要和数据文件在一起,存储空间初始值为5MB,最大空间为200MB,文件增量5MB。实现上述要求的Transact-SQL语句为:请你在此处写出实现上述要求的Transa
6、ct-SQL语句2数据库的管理1收缩数据库:分别使用SHRINKDATABASE和SHRINKFILE进展收缩活期储蓄数据库2数据库更名3查看数据库的属性4数据库附加和别离要求:用SSMS完成以上工作,尝试使用Transact-SQL完成局部工作,写出相应的Transact-SQL语句。2创立表根据任务1描述的关系构造,建立表,并设置实体完整性、参照完整性的约束。实现上述要求的Transact-SQL语句为:请你在此处写出实现上述要求的Transact-SQL语句3添加数据下面的例如数据,实际上是给出了活期储蓄管理系统数据库模式中各关系型的一个值,这些值构成数据库模式的一个值或一个状态。 (1
7、)储户根本信息数据账号地址开户行开户日期10020089晓军08712295961810022002-11-2010020123丹娜0218612961812082000-08-0610245082岚08716678796810021998-06-0110204568王立群0218972798213032004-01-0810204567庆08712800898612082003-02-08(2)储户动态信息数据账号密码信誉存款额元状态10020089ASDZ*C0286000110020123WERERT11678120110245082DFGASD13000000110204568SDFC
8、VB035000110204567CVBGHJ112000001密码一般都是加密存储的。(3)储蓄所数据编号名称地址1001中国建行分行秋涛支行087188049082秋涛北街283号1002中国建行分行武林支行087168066080武林南路366号1208中国建行分行下沙支行087128800088下沙22号大街788号1303中国建行分行滨江支行087126880266滨江18号大街632号(4)存取款数据账号储蓄所编号标志存取金额存取日期1002012310021500002003-09-281024508212080800002003-10-161002012310010100002
9、003-12-101002008913031120002003-12-101002012310020200002003-12-161024508210020100002004-01-081020456712081200002004-02-081024508212081300002004-03-16实现上述要求的Transact-SQL语句分别为:请你在此处写出实现上述要求的Transact-SQL语句,可以用截图. z.-任务3:活期储蓄管理系统数据库上的一般操作1录入数据略2数据查询请你在上述给出的活期储蓄管理系统数据库表数据中,写出完成如下诸查询SQL命令。 (1)查询储户的和存款额 (2
10、)查询账号为10245082的储户的存取款记录。 (3)查询编号为1002的储蓄所的存取款业务详细记录。 (4)查询编号为1002的储蓄所的存取款业务汇总情况。1、请你在此处写出实现上述要求的Transact-SQL语句及相应的查询结果,可以截图;2、自行分析该系统,还可以添加那些常用的查询,并用Transact-SQL语句实现任务4:建立活期储蓄管理系统数据库的触发器和存储过程1触发器的编写1问题提出:利用SSMS图形界面或者T-SQL方式向“存取款表中插入两条记录:账号储蓄所编号标志存取金额存取日期100201231208020000102450821002130000检查“储户动态信息表
11、,会发现以上两个储户存取款后,储户的“存款额值并未发生改变。这显然是不符合实际情况的。我们希望,每当“储户在*一个“储蓄所进展“存取款时,应同时自动修改该储户的“存款额。这一功能可以通过在表“存取款上建立“INSERT触发器完成。2在“存取款表上创立“INSERT触发器1、请你在此处写出实现上述要求的Transact-SQL语句;2、在SQL Server2008中创立该触发器,并保存在活期储蓄管理系统数据库中;3、设计相应的数据操作验证该触发器是否正确。如:向“存取款“表中插入记录,“储户动态信息表中相应数据是否发生变化。2编写验证储户“密码的存储过程1问题要求:将储户输入的“密码与“用户动
12、态信息表中保存的“密码值进展比拟,答复正确返回“1,不正确返回“0。如果不正确,将无法进展以后的业务活动。2存储过程设计1、请你在此处写出实现上述要求的Transact-SQL语句程序一个存储过程;提示:该存储过程可以带有入口参数储户账号和储户输入的密码2、在SQL Server2008中创立该存储过程,并保存在活期储蓄管理系统数据库中;3、设计相应的数据操作验证该存储过程是否正确。任务5:建立活期储蓄管理系统数据库的视图和索引1、创立视图(1) 创立视图“存款,包括信息:储户根本信息.账号、储户根本信息.、储户动态信息.存款额以便于储户简单查询。实现上述要求的Transact-SQL语句为:
13、请你在此处写出实现上述要求的Transact-SQL语句并在系统中创立并在系统保存。 可以使用截图 (2) 创立视图“储户,信息来自“储户根本信息和“储户动态信息。前台应用程序,输入开户信息时,应该包括这两个表的容,建立视图后,应用程序可以只调用这个视图,从而简化了前台应用程序对数据库的调用。实现上述要求的Transact-SQL语句为:请你在此处写出实现上述要求的Transact-SQL语句并在系统中创立并在系统保存。 可以使用截图 2、创立索引在表“存取款上按“存取日期的建立索引,以利于按时间段的业务查询。实现上述要求的Transact-SQL语句为:请你在此处写出实现上述要求的Transact-SQL语句并在系统中创立并在系统保存。 可以使用截图 . z.