《数据库原理课程设计》课程设计文档格式.docx
- 文档编号:22759576
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:71.06KB
《数据库原理课程设计》课程设计文档格式.docx
《《数据库原理课程设计》课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理课程设计》课程设计文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
建立一个有效的商务进销存管理系统,以解决商品繁多、业务零杂,各类采购、销售单据数量非常多,人工处理困难,准确性难以确保等众多问题。
3.安全性与完整性要求:
(1)安全性要求
a.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
b.系统实现:
数据备份、数据恢复,以防止重大失误、或是系统故障引起的损失;
(2)完整性要求
a.各种信息记录的完整性,信息记录内容不能为空;
b.各种数据间相互的联系的正确性;
c.相同的数据在不同记录中的一致性。
系统功能的设计
系统实现
(1)用户管理
(2)数据库维护(3)产品入库管理(4)产品出库管理(5)库存管理(6)维修管理(7)个人信息(8)基础数据维护。
数据流图
数据字典
部分重要表:
表名:
UserInfo
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
UserID
varchar
16
6
是
否
用户名
登陆用
2
Name
8
4
姓名
真实姓名
3
Pwd
200
密码
Power
权限
固定位是1有权限,0无此权限
表名:
Storage
ListID
50
Lis
唯一标志
Number
Int
表名:
Computer
LotNum
批次号
Brand
Varchar
品牌
CPU
5
Memory
VideoCard
显卡
7
HardDisk
MainBoard
主板
9
RwDrive
光驱
10
Remark
11
Screen
12
Unit
20
单位
13
IsDelete
Bit
False
逻辑删除批次号
True未删除
AroundDevice
Type1
类型或名称
Type2
Type3
类型或名称
ProductName
产品名称
20
逻辑删除
PurchaseOrder
PurchaseNum
采购单编号
Supplier
供货商
产品唯一标志
UserName
经办人
Price
Money
单价
Int
产品数量
Date
Datetimes
IsBilling
是否开票
IsTax
是否含税
IsReturn
区分标志
0.采购单
1退单,2退库存
销售单:
SaleOrder
SaleNum
销售单编号
ProName
SaleMan
业务员
Cost
销售成本
SalePrice
售价
SaleNumber
Datetime
Client
否
客户
InMark
内部票号
是否退单
税票:
Ticket
内部票号都放在一起
TicketNum
外部票号
Office
开票单位
Content
内容
Amount
每种产品金额
TaxAmount
税收金额
Total
总金额
3概念设计
设计分e-r图
由于表格过多只列举部分表格设计E-R图如下:
职员E-R图
周边设备E-R
销售单E-R图
分E-R图
设计完成的总e-r图
4逻辑结构设计
图向关系模式的转换
部分关系模式如下:
1、职员(职员ID,名字,密码,权限)
2、销售单(销售单ID,产品数量,经办人,业务员,是否开票,内部票号,销售日期,客户,销售成品,销售单编号,备注,是否退单,售价)
3、产品(产品ID,产品名称,单位,一级分类,二级分类,三级分类,批次号,品牌,类型,CPU,内存,显卡·
·
显示器大小,是否删除等)
4、库存(产品ID,库存数量)
数据模型的优化
在概念设计的基础上,根据设计得到系统总的E-R图,按照概念模式与关系表转化的一般规则,结合实际的需要进行逻辑设计,E—R图中的实体、实体的属性和实体之间的联系转化为关系模式。
最后生成的部分关系及关系表如下(同时附优化说明):
1、电脑(产品ID,批次号,品牌,型号,CPU,内存,显卡,硬盘,主板,显示器大小,光驱,是否是笔记本,是否删除)
2、单独显示器(产品ID,品牌,大小,是否删除)
3、周边设备(产品ID,产品名称,单位,一级分类,二级分类,三级分类,是否删除)
优化说明:
原来是所有产品对象放在一起,由于这些不同的产品属性差别太大,放在一起造成很大的数据冗余,而且易出错,所以把他们分为三大类,如上面,这样就解决了很多问题。
用户子模式的设计
在将概念模型转化为全局逻辑模型后,根据用户对进销存管理系统的局部应用需求,以下设计用户子模式:
考虑需求
考虑以下的几个需求:
1管理员有可能是业务员或是经办人
2可随时对任意产品进行开票的需求
定义用户级别
对用户职员的权限限制:
1用户职工:
用户登录系统,系统会判断其权限,他只能操作在他权限范围内的事务。
制作查询子系统:
根据分析需求,我们设计了一个开票管理系统
提供对销售产品的开票,查询税收相关情况。
5数据实施和维护
建立数据库
CreatedatabaseSaleManage;
建表
要求:
至少5张表
1.建用户表
CREATETABLEUserInfo
(UserIDVARCHAR(16)primarykeyNOTNULL,
NAMEVARCHAR(8)NOTNULL,
Pwdvarchar(200)NOTNULL,
Powervarchar(8)NOTNULL,
);
2.建维修表单
CREATETABLERepairList
(listIDVARCHAR(50)PRIMARYKEY,
RepairNumVARCHAR(20),
ClientVARCHAR(50),
FaultPartVARCHAR(50),
FaultNumVARCHAR(20),
FaultReasonVARCHAR(50),
RepairDatedatetime,
ReCompanyVARCHAR(50),
IsFinishBit,
FinishDateDATEtime,
RepairCostMoney,
ChargeMoney
3.建库存
CREATETABLEStorage
(ListIDVARCHAR(50)PRIMARYKEY,
NumberINT
4.建销售单
CREATETABLESaleOrder
(IDuniqueidentifiernotnull,
SaleNumvarchar(20)NOTNULL,
ListIDvarchar(50)NOTNULL,
ProNamevarchar(50)NOTNULL,
UserNamevarchar(8)NOTNULL,
SaleManvarchar(8)NOTNULL,
CostMoneyNULL,
SalePriceMoneyNOTNULL,
SaleNumberIntNOTNULL,
DateDatetimeNOTNULL,
Clientvarchar(50)NOTNULL,
InMarkvarchar(20)NULL,
Remarkvarchar(50)NULL,
Screenvarchar(50)NULL,
IsReturnBitNOTNULL,
)
5.建税票表
CREATETABLETicket
(InMarkVARCHAR(20),
TicketNumVARCHAR(50),
OfficeVARCHAR(50),
ContentVARCHAR(50),
AmountMoney,
TaxAmountMoney,
TotalMoney
……
建查询
5个查询以上
1、查询指定日期的所有的销售单
2、查询指定日期的所有的销售单
3、查询指定日期的所有的销售单
4、查询指定日期的所有的销售单
5、查询指定日期的所有的销售单
selectassaID,as销售单编号,as选择,as产品名称,isnull,'
'
)+isnull('
'
+,'
)+isnull,'
)+
isnull('
批次:
CPU:
)+
显卡:
显示器:
isnull('
显示器品牌:
大小:
)as产品详细信息,
as售价,as数量,isnull,'
)*isnull(,'
)
as金额,as是否开票,as业务员,as客户,
as经办人,as销售日期,as开销,as备注
fromSaleOrderasSaleftjoinAroundDeviceasAron=
leftjoinComputerasComon=
leftjoinScreenasScon=
whereDateBETWEEN'
2011/12/14'
AND'
and
='
false'
orderbydesc
建存储过程
三个以上
1.业务员的显示,如果是管理员,则显示为公司(不带参数)
createprocpro_UserShow
as
selectcasewhenpower='
1111111'
then'
公司'
elseNameENDNamefromUserInfo
execpro_UserShow
2.根据所选产品查看它最近三次售价(带参数)
createprocedurepro_RecentPrice
@ListIDvarchar(30),@SellIDvarchar(20)
AS
selecttop3SalePricefromSaleOrder
whereListID=@ListIDandSaleNum!
=@SellIDorderbySaleNumdesc
两种调用示例:
execpro_RecentPrice'
B2011/12/1412:
46:
573'
'
S20'
execpro_RecentPrice
@ListID='
@SellID='
3.查询库存(带输出参数):
CREATEPROCpro_StoNumber
@ListIDvarchar(30),
@Numberintoutput
SELECT@Number=Number
fromStorage
whereListID=@ListID
调用示例:
declare@ListIDvarchar(30),@Numberint
select@ListID='
EXECpro_StoNumber@ListID,
@NumberOUTPUT
SELECT@Number
建触发器
INSERT,UPDATE,DELETE三种触发器任选
插入销售单数据时,同时库存减去销售数量
createtriggerTr_SaleOrder
onSaleOrderforinsert
AS
DECLARE@outNumberint,@ListIDvarchar(30)
SELECT@outNumber=SaleNumber,@ListID=ListIDFROMinserted
UPDATEStorageSETNumber=Number-@outNumber
WHEREListID=@ListID
GO
示例:
insertintoSaleOrder(ID,SaleNum,ListID,ProName,SalePrice,SaleNumber,IsBilling,InMark,SaleMan,Client,UserName,Cost,Date,Remark)
values('
12e1c6b1-999b-41ee-a385-edec847dde4e'
ProBook4321s'
4600'
1'
True'
001'
上海直销商'
dahu'
6总结
据库有保持数据的独立性,所谓数据独立,是指存储在数据库中的数据独立于处理数据的所有应用程序而存在。
也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是独立于应用而存在着的客观实体。
而某一项应用是处理数据获取信息的过程,也就是应用程序,它只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身数据库的传统定义是以一定的组织方式存储的一组相关数据的集合,主要表现为数据表的集合。
语句按其功能可以分为如下3大类
(1)数据定义语句DDL(DataDefinitionLanguage)
(2)数据操作语句DML(DataManipulationLanguage);
(3)数据控制语句DCL(DataControlLanguage)。
。
2.学习心得
我做的是住房公积金测算系统,刚刚拿到题目完全不知道从那下手,应该是第一次做的原因吧!
以前只知道上课听老师讲从来没做过,数据库我认为和生活或者以后的生活没什么联系,所以我平时也就随便听听,但题目一手就知道那是自己一个人的事了,应为题目几乎两三个人一题,就算是两三个人一题也得写的不同,所以刚开始两天我都没怎么做,为了看书上的内容。
参考文献
数据库系统概论/王珊萨师煊主编——高等教育出版社,第四版
数据库实用教程/郑阿奇主编.—北京:
电子工业出版社,高等学校计算机教材
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理课程设计 数据库 原理 课程设计