数据库应用实验报告1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库应用实验报告1
一、实验目的、目标
1、掌握概念结构模型的设计,以及如何把概念结构模型转换成关系模型的原理和方法
2、掌握如何在SQL Server 2000/2005上进行数据库和表的创建和使用
二、实验内容
(1)根据系统需求构建ER模型;
(2)把构建的ER模型转换为关系模型,并进行优化;
(3)在SQL Server 2000/2005中建立所需的数据库和表;
(4)通过测试数据验证所建表的正确性和有效性。
三、实验过程与步骤
实验题目:销售管理系统:销售商向客户销售商品,一个销售商可向多个客户销售多个商品,一个客户也可以从多个销售商中购买多个商品;一个商品由一个供应商供应,而一个供应商可供应多个商品。另外,一个客户可多次从同一个销售商中购买多个商品,也需要记录客户购买行为的最高效率比=上次购物总价/(本次购物与上次的间隔天数+1) “示范用例” 需要记录以下信息:
商品信息:商品号、名称、单价
供应商信息:供应商号、名称、法人代表、电话
销售商信息:销售商号、名称、地区
客户信息:客户编号、姓名、电话、性别、年龄、职业
销售除了记录哪个销售商向哪个客户销售哪些商品(数量)外,还需要记录该次销售的单号、日期、备注和发货时间
步骤一、根据系统需求构建ER模型:
ER模型
步骤二、把构建的ER模型转换为关系模型,并进行优化:
关系模型
步骤三、在SQL Server 2000/2005中建立所需的数据库和表:1.新建一个Customer表
2.新建一个Provider表
3.新建一个Seller表
4.新建一个Product表
5.新建一个Sale表
6.新建一个SaleDetail表
7.新建一个Occupation表
步骤四、通过测试数据验证所建表的正确性和有效性。
1.在Provider表中输入数据
2.在表Product中输入数据
3.在表Occupation中输入数据
4.在表Seller中输入数据
5.在表Customer中输入数据
6.在表Sale中输入数据
7.在表SaleDetail中输入数据
四、测试数据及运行结果
【输入的测试数据,输出的结果】1.Product表中的数据
2.Provider表中的数据
3.Customer表中的数据
4.Occupation表中的数据
5.Sale表中的数据
6.SaleDetail表中的数据
7.Seller表中的数据
五、实验总结、经验分享
【简单叙述心得,指出本次上机实验的关键环节或关键点;若经多次失败最终成功,请阐述失败之处和导致失败的原因,并简单给出你是如何一步步成功(或经验分享);若本次上机实验最终没有成功,则阐述成败之处及其原因分析。无论何种情况,请进行自我评价】
在本次实验的过程中,遇到了三个比较基本却是关键的问题:
一、
服务器: 消息208,级别16,状态1,行1
对象名'SaleDetail' 无效。
问题分析:该问题出现的原因是数据库中不存在这个名字的表,所以在插入数据时会报错,但是最后确定了该表是已经建立了,确切地存在于新建的数据库中,经过老师指导后发现原来是插入的数据库设定成了“master”而不是新建的数据库。
解决方法:在选择需要插入的数据库选项中把master更改为新建的数据库
二、
建立的关系图没有箭头连接
问题分析:建立的关系图没有箭头连接是因为各表之间没有建立好关系
解决方法:需要在表的关系中设定主键和外键
三、
仅当使用了列的列表,并且IDENTITY_INSERT 为ON 时,才能在表'Customer' 中为标识列指定显式值
问题分析:插入数据时,自增长列是系统自动处理,不需要用户来指定数值。
解决方法:只有将IDENTITY_INSERT 为ON 时插入数据时,自增长列才可以指定一个值
比如有一个表PZ,有如下列XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY其中XH是自增长,正常插入数据时
insert PZ (ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) V ALUES(......)不需要指定XH列。如果将IDENTITY_INSERT打开
set IDENTITY_INSERT PZ ON
插入数据时就可以给XH列指定值
INSERT PZ (XH,ID,INX,KMID,FZZID,CODE ,JFJE,DFJE,RQ,ZY) V ALUES(指定表中没有的数值,24389,3,1524,1,'0109',0,0,'2011.1.29','JK')
关闭IDENTITY_INSERT
SET IDENTITY_INSERT PZ OFF