您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > SQL作业 活期储蓄管理系统数据库
计科2011级《数据库应用技术》实验报告学号:2011091122姓名:李文菊实验名称任务1:活期储蓄管理系统数据设计完成时间2014年5月实验目的1、掌握数据库中概念模型、关系模型、约束关系以及关系结构的概念;2、掌握系统需求分析的方法;3、学会概念模型和关系模型的设计方法。实验内容在活期储蓄管理过程中,“储户”通过“存取款”与“储蓄所”发生业务联系。试设计活期储蓄管理系统数据库的概念模型、关系模型并确定约束。实验要求1、填写实验过程中的T-SQL2、思考和记录实验中的问题,并能够找出解决方法实验过程:1、需求分析通过对数据库用户(储蓄所业务人员)的调查,对用户的需求进行分析得知:(1)储户是指在某个储蓄所开户的人。该储蓄所称为储户的开户行。(2)一个储蓄所可以有多个储户,每个储户有惟一的账号。(3)每个储户可以在多个允许发生业务的储蓄所进行存取款。(4)储户按信誉分为“一般”和“良好”两种(分别用0和1表示)。信誉“一般”的储户不允许透支。信誉“良好”的储户可以透支,但不能超过5万元。(5)储户按状态分为:“正常”和“挂失”两种(分别用0、1表示)。状态为“正常”的储户允许存取款,状态为“挂失”的储户不允许存取款。(6)储户的信息有:账号、姓名、密码、电话、地址、信誉、存款额、开户行编号、开户日期、状态等。(7)储蓄所的信息有:编号、名称、电话、地址、负责人(8)储户进行存取款时应该提供账号、存取标志(1:表示存款,0:表示取款)、存取金额、存取日期等信息,储蓄所首先要对储户的身份进行验证,对合法的储户再根据“信誉”判断是否可以发生此次业务。若发生业务则记录相应信息,修改储户的存款额。2、概念模型设计根据系统需求分析设计出的E-R图如下:3、关系模型设计根据概念模型中得出的E-R图可转换成对应的关系模型,关系模型设计如下:转换后的关系模型为:储户信息(账号,姓名,电话,地址,开户行编号,开户日期)储户动态信息(账号,密码,存款额,状态,信誉)储蓄所信息(编号,名称,存款额,负责人,电话,地址)存取款(账号,编号,存取标志,信誉,金额,日期)4、约束关系(1)实体完整性所有实体中的主码都不能为空,即实体“储户信息”的主码“账号”不能为空,实体储户账号姓名账号电话地址开户行开户日期存取款存取标志信誉金额日期储蓄所编号名称存款额负责人电话地址“储蓄所信息”的主码“编号”以及“储蓄所信息”中的主码“编号”和“日期”不能为空,关系“存取款”中的主码“账号”不能为空。另外,“储户信息”中的所有字段都不能为空,“储蓄所信息”中的“名称”和“负责人”也不能为空,关系“存取款”中的“金额”要大于0.(2)参照完整性参照关系“存取款”的属性“账号”和“编号”分别是被参照关系“储户”和“储蓄所信息”的外码。因此,参照关系“存取款”的属性“账号”的值必须是被参照关系“储户信息”中某一元组的“账号”的值,参照关系“存取款”的属性“编号”的值必须是被参照关系“储蓄所信息”中某一元组的值。参照关系“储户信息”的属性“开户行编号”是被参照关系“储蓄所信息”的外码,因此,参照关系“储户信息”的属性“开户行编号”的取值必须是“储蓄所信息”的“编号”的值。(3)用户定义完整性储户按信誉分为“一般”和“良好”,对于信誉为“一般”的储户,只有当储户的存款额大于储户的取款额时,才可以进行取款,也就是说信誉为“一般”的储户不可以透支金额。对于信誉为“良好”的储户,当储户的存款额小于储户的取款额是,也可以进行取款,但最高不能超过5万元。储户按状态分为“正常”和“挂失”。当储户状态处于“正常”状态时,可以进行存取款,当储户状态处于“挂失”状态时,不允许进行存取款。5、关系结构的描述活期储蓄管理系统的关系结构描述关系名称属性名称数据类型宽度说明储户信息账号字符串20主键姓名字符串10不为空开户行编号字符串15不为空开户日期日期型电话字符串15不为空地址字符串50不为空储户动态信息账号字符串20主键密码字符串30存款额整型状态整型取值为1、0信誉整型取值为1、0储蓄所信息编号字符串15主键名称字符串30不为空存款额整型负责人字符串10不为空电话字符串15不为空地址字符串50不为空存取款账号字符串20引用了储户信息中的账号编号字符串15引用了储蓄所信息中的编号存取标志整型取值为1、0信誉整型取值为1、0金额整型金额0日期日期型问题讨论:1、需求分析应尽量考虑周全并且要合理,应站在用户的角度进行需求分析。2、设计E-R图时,要考虑好实体与实体之间的关系以及实体具有的属性。3、约束关系应当设计合理,各个属性值的约束要设计得当。实验名称任务2:创建活期储蓄管理系统数据库完成时间2014年5月实验目的1掌握使用Transact-SQL语句创建数据库、数据表。实验内容1、使用Transact-SQL语句创建活期储蓄管理系统数据库。该数据库的要求如下:数据库名称为:活期储蓄。数据主文件为:活期储蓄_data.mdf,存储在“D:\data”(或者是自行定义的文件夹),存储空间初始值为5MB,最大空间为100MB,文件增量10%。数据次数据文件为:活期储蓄_data2.mdf,存储在“D:\data”(或者是自行定义的文件夹),存储空间初始值为5MB,最大空间为100MB,文件增量10%。日志文件为:活期储蓄_log.ldf,存储在“E:\data”(或者是自行定义的文件夹,但是不要和数据文件在一起),存储空间初始值为5MB,最大空间为200MB,文件增量5MB。2、使用Transact-SQL语句创建活期管理系统数据库的数据表和添加数据。实验要求1、填写实验过程中的T-SQL2、思考和记录实验中的问题,并能够找出解决方法实验过程:1、创建活期储蓄管理系统数据库createdatabase活期储蓄on(name=活期储蓄_temp,filename='D:\data\活期储蓄_temp.mdf',size=5MB,maxsize=100MB,filegrowth=10%),filegroup活期储蓄_temp1(name=活期储蓄_temp1,filename='D:\data\活期储蓄_temp1.mdf',size=5MB,maxsize=100MB,filegrowth=10%)logon(name='活期储蓄_log',filename='E:\data\活期储蓄_log.ldf',size=5MB,maxsize=200MB,filegrowth=5MB)2、数据库的管理(1)收缩数据库:分别使用SHRINKDATABASE和SHRINKFILE进行收缩活期储蓄数据库DBCCSHRINKDATABASE(活期储蓄)DBCCSHRINKFILE(活期储蓄_log)(2)数据可更名execsp_renamedb活期储蓄,活期储蓄数据库(3)查看数据可的属性execsp_helpdb活期储蓄(4)数据库的附加和分离分离:use活期储蓄gosp_detach_db活期储蓄go结果:命令已成功完成附加:(1)usemastergosp_attach_db活期储蓄,'F:\数据库\活期储蓄_temp.mdf','F:\数据库\活期储蓄_log.ldf'(2)usemastergocreatedatabase活期储蓄ONPRIMARY(NAME=N'活期储蓄_temp',FILENAME=N'E:\数据库\活期储蓄_temp.mdf'),FILEGROUP[活期储蓄_temp1](NAME=N'活期储蓄_temp1',FILENAME=N'E:\数据库\活期储蓄_temp1.mdf')LOGON(NAME=N'活期储蓄_log',FILENAME=N'E:\数据库\活期储蓄_log.ldf')go结果:命令已成功完成3、创建表(1)储户信息表use活期储蓄gocreatetable储户信息([账号][char](20)primarykey,[姓名][char](10)notnull,[开户行编号][char](15)notnull,[开户日期]datetime,[电话][char](15)notnull,[地址][varchar](50)notnull)(2)储户动态信息表use活期储蓄gocreatetable储户动态信息([账号][char](20)primarykey,[密码][varchar](30)notnull,[存款额][int],[状态][int]check(状态='1'or状态='0'),[信誉][int]check(信誉='1'or信誉='0'))(3)储蓄所信息表use活期储蓄gocreatetable储蓄所信息([编号][char](15)primarykey,[名称][varchar](30)notnull,[存款额][int],[负责人][char](10)notnull,[电话][char](15)notnull,[地址][varchar](50)notnull,)(4)存取款表use活期储蓄gocreatetable存取款([账号][char](20)references储户信息(账号),[编号][char](15)references储蓄所信息(编号),[存取标志][int]check(存取标志='1'or存取标志='0'),[信誉][int]check(信誉='1'or信誉='0'),[金额][int]check(金额0),[日期]datetime,)4、添加数据(1)储户信息表use活期储蓄goinsertinto储户信息(账号,姓名,开户行编号,开户日期,电话,地址)values('10020089','张晓军','1002','2002-11-20','(0871)22959618','昆明'),('10020123','李丹娜','1208','2000-08-06','(021)86129618','上海'),('10245082','张岚','1002','1998-06-01','(0871)667879668','昆明'),('10204568','王立群','1303','2004-01-08','(021)89727982','上海'),('10204567','赵庆','1208','2003-02-08','(0871)28008986','昆明')(2)储户动态信息表use活期储蓄goinsertinto储户动态信息(账号,密码,存款额,状态,信誉)values('10020089','ASDZXC','286000',1,0),('10020123','WERERT','1678120',1,1),('10245082','DFGASD','3000000',1,1),('10204568','SDFCVB','35000',1,0),('10204567','CVBGHJ','1200000',1,1)(3)储蓄所信息表use活期储蓄goinsertinto储蓄所信息(编号,名称,存款额,负责人,电话,地址)values('1001','中国建行昆明分行秋涛支行','265000','张三','(0871)88049082','秋涛北街号'),('1002','中国建行昆明分行武林支行','395810','王敏','(0871)68066080','武林南路号'),('1208','中国建行昆明分行下沙支行','600000','张硕','(0871)28800088','下沙号大街号'),('1303','中国建行昆明分行滨江支行','245100','李贞','(0871)26880266','滨江号大街号')(4)存取款表use活期储蓄goinsertinto存取款(账号,编号,存取标志,信誉,金额,日期)values('10020123','1002',1,1,'50000','2003-09-28'),('10245082','1208',0,1,'80000','2003-10-16'),('1
本文标题:SQL作业 活期储蓄管理系统数据库
链接地址:https://www.777doc.com/doc-4304833 .html