sql数据库课业案例中文版.docx
《sql数据库课业案例中文版.docx》由会员分享,可在线阅读,更多相关《sql数据库课业案例中文版.docx(14页珍藏版)》请在冰豆网上搜索。
sql数据库课业案例中文版
DataAnalysisandDesign
Coursename:
DataAnalysisandDesign
Tutor:
*****
Name:
*****
AssignmentTitle:
大型批发超市数据库设计
AssignmentNumber:
two
DateDue:
Contents
Scene3
Task13
Task24
Task311
Bibliography11
Scene
随着超市业务的扩展,包含很多的信息数据的管理,现今,有很多的超市管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
基于此问题,有必要建立一个超市管理系统,使超市管理工作规范化,系统化,程序化。
我们需要进行数据库需求分析,根据用户需求设计一个合理的数据库。
Task1
理解数据模型和数据库技术
1.1识别数据模型并且解释他们的结构和对过去、现在、将来数据库发展的贡献。
研究为什么某个模型会被淘汰并被新模型所取代。
数据模型(DataModel)是数据特征的抽象,是数据库管理的教学形式框架。
在开始阶段,数据模型仅理解为数据结构。
层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但如果需要动态访问数据(如增加或修改记录类型)时,效率并不高。
另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较繁琐和不直观。
网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。
网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。
关系模型概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示,用户比较容易理解。
另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次和网状模型。
1.2研究文件系统(FileBasedApproach)和数据库管理系统DBMS(databasemanagementsystems)和他们对数据库技术的贡献。
在文件系统阶段,数据在外部存储,由操作系统统一管理。
并且系统为提供了独立的界面。
区分了文件的逻辑结构与物理结构,分离了程序和数据,使数据与程序有了一定的独立性。
用户的程序与数据可独立存放在外存储器上,同时每个应用程序可以共享一组数据,实现了以文件为单位的数据共享。
数据库管理系统以数据为中心组织数据,大大减少数据的冗余,提供高效数据共享能力,系统同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序的运行,同时可以降低应用程序研制与维护的费用。
1.3研究数据库的新发展,比如数据挖掘和数据仓库、关系-对象数据库。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。
数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。
Web数据管理是指在web环境下,对复杂信息进行有效地处理,方便,准确地对信息的查询和发布。
数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Associationrulelearning)的信息的过程。
数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
Task2
根据用户需求设计一个关系数据库
自行选择一个信息管理系统作为背景,根据用户需求为信息管理系统设计一个关系数据库,比如以图书馆管理系统为背景,为图书馆设计一个图书管理数据库。
数据库至少包含六张数据表。
Step1需求分析:
根据数据库的应用背景收集信息,并对信息进行分析和整理,明确列出与数据库设计相关的需求信息
Step1.1系统目的
大型批发超市数据库的数据库系统的目的是收集、存储和控制该超市产生的数据,方便超市对信息和业务进行管理。
Step1.2数据需求
A.员工信息:
职工ID,姓名,性别,年龄,身份证,籍贯
B.客户基本信息表:
客户ID,姓名,性别,年龄
C.商品信息:
商品ID,商品名称,价格
D.仓库信息:
货物ID,地址,电话
E.库存信息:
库存编号,货物ID,仓库ID,商品数量
F.销售信息:
销售编号,职工ID,客户ID,销售数量,日期
G.供应商信息:
供应商ID,电话,地址
H.供应信息:
供应信息编号,货物ID,供应商ID,货物数量,供货日期,经手人
Step1.3事务需求
维护(录入、更新和删除)超市仓库数据;
维护(录入、更新和删除)员工数据;
维护(录入、更新和删除)供应商数据;
实现对超市仓库的查询;
实现对员工的查询;
实现对供应商的查询;
跟踪超市库存状态信息;
跟踪超市订单状态信息;
报告供应商情况;
报告超市订单情况。
Step1.4关于数据库系统的说明
网络和共享访问需求:
所有分公司必须安全地和位于西雅图总公司的中央数据库实现网络互连;系统必须能够支持每个分公司至少三名成员同时访问。
安全性:
a)数据库必须有密码;b)每个员工应该分配一个特定用户视图的数据库访问权限;c)员工只能在适合他们完成工作需要的窗口中看到需要的数据。
备份和恢复:
数据库必须在每天晚上12点备份。
用户界面:
用户界面必须是菜单驱动的,联机帮助应该易于查找和使用。
Step2概念设计阶段:
设计概念模型(用E-R图表示):
Step2.1设计实体集
A.实体集员工信息,属性有职工ID,姓名,性别,年龄,身份证,籍贯等,职工ID为主码,如figure1
figure1销售人员
B.实体集客户基本信息,属性有客户ID,姓名,性别,年龄,客户ID为主码,如figure2
figure2客户信息
C.实体集货物,属性有货物ID,货物名称,价格,主码是货物ID,如figure3
figure3货物信息
D实体集供应商,属性有供应商ID,电话,地址,供应商ID为主码,如figure4
figure4供应商
D.实体仓库,属性有仓库ID,地址,电话,仓库ID为主码,figure5
figure5仓库信息
Step2.2设计联系集
A.拥有联系,员工和客户为多对多联系
B.拥有联系,商品和供应商为多对多联系
C.拥有联系,商品和仓库为多对一联系
Step2.3设计综合E-R图表示
联系集e-r图figure6
figure6
综合ER图figure7
figure7综合E-R图
Step3逻辑设计阶段(将E-R图转换成关系模型并用3个范式进行规范)
Step3.1设计关系模型(将E-R图转换成关系模型)
Step3.1.1将实体转换成关系模式。
根据实体的转换原则,每个实体集转换为关系为关系模式的属性,实体的码转换为关系模式的码,将4个实体集转换为如下4个关系模式:
销售人员信息(职工ID,姓名,性别,年龄,身份证,籍贯)
客户信息(客户ID,姓名,性别,年龄)
货物信息(货物ID,名称,价格)
供应商信息(供应商ID,电话,地址)
仓库信息(仓库ID,货物名称,货物数量)
Step3.1.2将联系转换成关系模式。
根据联系转换原则,对于“销售”“供应”联系,因为都是多对多联系,要建立一个新的表;对于“存放”联系,虽然为一对多联系,但是也可以建立一张
销售信息(销售ID,职工ID,客户ID,数量,日期),其中,“职工ID”为参照“销售人员”的外码,“客户ID”为参照“客户信息”的外码。
供应信息(供应信息编号,供应商ID,货物ID,货物数量,供货日期,职工ID)其中,“供应商ID”为参照“供应商”的外码。
“货物ID”为参照关系“货物信息”的外码。
库存信息(库存编号,货物ID,仓库ID,货物名称,价格),其中,“货物ID”为“货物信息”的外码;“仓库ID”为参照“仓库信息”的外码。
Step3.2关系规范化处理(对关系模型进行范式检查)
(1)经分析,家电销售数据库中所有关系模式的每一个属性值域中的每个值都是不可分解的,所以满足1NF。
(2)经分析,所有关系模式都不存在非主属性对关键字(主码)的部分依赖,所以满足2NF。
(3)经分析,所有关系模式都不存在非主属性对关键字(主码)的传递依赖,所以满足3NF。
Step4物理设计阶段:
(1)在SQLServer中建立数据库、设计数据表、建立表和表之间的关系、添加约束、添加触发器、输入测试数据
表1销售人员表
字段名称
字段类型
字段长度
备注
staffID
Char
4
职工ID
Name
Char
50
姓名
Sex
Char
1
性别
Age
Int
auto
年龄
idCard
Char
18
身份证
Hometown
Char
50
籍贯
表2客户信息表
字段名称
字段类型
字段长度
备注
clientID
Int
Auto
客户编号
name
Char
50
姓名
Sex
Char
1
性别
Age
Int
Auto
年龄
表3货物信息表
字段名称
字段类型
字段长度
备注
goodsID
Char
5
货物ID
Name
Char
8
货物名称
Price
Int
Auto
价格
表4供应商信息表
字段名称
字段类型
字段长度
备注
suppliersID
Char
4
供应商ID
telephoneNumber
Char
8
电话
Address
Char
50
地址
表5仓库信息表
字段名称
字段类型
字段长度
备注
warehouseID
Char
2
仓库ID
telephoneNumber
Char
8
电话
Address
Char
50
地址
表6销售信息表
字段名称
字段类型
字段长度
备注
staffID
Char
4
职工ID
clientID
Int
Auto
客户ID
Quantity
Char
4
数量
Date
Char
8
日期
sellID
Char
4
销售编号
表7存放信息
字段名称
字段类型
字段长度
备注
goodsID
Char
5
货物ID
warehouseID
Char
2
仓库ID
Quantity
Char
5
货物数量
inventoryID
Char
2
库存编号
表8供应信息表
字段名称
字段类型
字段长度
备注
suppliersID
Char
4
供应商ID
goodsID
Char
5
货物ID
Quantity
Char
4
货物数量
supplyDate
Char
8
供货日期
supplyingID
Char
4
供应信息编号
staffID
Char
4
职工ID
表和表之间的关系截图:
Task3
执行和测试数据库设计。
3.1提供数据库执行的支持文档
在解决Task2的过程中,在设计数据库的每个阶段都保留了设计的文档,这些文档就是数据库执行文档。
3.2说明一些方法,通过这些方法数据库已经考虑了验证和确认的领域。
在逻辑数据库设计(LogicalDatabaseDesign)阶段,把ER模型映射为关系模型之后,我们使用规范化方法检查表的结构,要求每个数据表至少达到第三范式(3NF),使每个表的结构正确。
接着,我们检查数据表是否支持用户事务,确保数据表支持用户所需的事务。
然后,检查业务规则(BusinessRule),包括空值约束(Null)、值域约束、实体完整性、参照完整性等。
最后,与用户讨论逻辑数据库设计,确保逻辑数据模型和描述模型的文档确实表达了用户视图(View)。
在物理数据库设计阶段(PhysicalDatabaseDesign)阶段,我们严格根据逻辑数据模型创建了基本表、设计了索引以及任何相关约束、触发器、视图,并正确地设计表和表之间的关系。
3.3评价一系列的测试技术,并应用一种测试技术于自己的数据库设计中。
数据库测试是依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行的测试。
随着数据库开发的日益升温,数据库测试也需要独立出来进行符合自身特点的测试工作。
数据库开发和应用开发并没有实质上的区别,所以软件测试的方法同样适用于数据库测试。
1.单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证。
单元测试侧重于逻辑覆盖,包括黑盒测试和白盒测试。
2.对数据库功能的测试我们可以依赖于工具进行。
数据库功能测试工具有:
DBunit、QTP、DataFactory等。
3.安全测试,采用相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。
为了测试测试数据库正确和准确性。
我们要熟练掌握SQL和DML(数据库语言)语句,熟悉数据库的结构。
我们做法主要包括:
(1)创建主要使用SQL和DML语句对数据库进行CRUD测试:
Create、Retrieve、Update、Delete。
(2)对照用户需求对数据库进行业务规则检查,确保数据库正确满足了用户需求。
Bibliography
1书名.作者1,作者2,出版社所在城市:
出版社,出版时间
2RelationalDatabase:
SelectedWritings.Reading,Mass:
Addision-WesleyPublishingCompany,1886
3SQL/DataSystemTerminalUser’sReferenceforVSE.Endicott,NewYork:
IBMCorporation,1984
4
5
6
7
8
9
10