《进销存管理系统数据库设计(共25页).doc》由会员分享,可在线阅读,更多相关《进销存管理系统数据库设计(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上目录1需求分析报告1.1系统目的 随着社会的进步和计算机的不断普及,各行各业的管理、控制都越来越离不开计算机的辅助。“某进销存管理系统”的开发就是为了辅助大多数企业的基本管理,实现信息管理的系统化、规范化和自动化简化人们日常工作中的大量机械重复的操作,使一些过程繁琐且数据量大的工作得已高效的进行,进销存管理系统还可以通过对数据的有效控制,实现对工作流层的控制、协调,从而提高企业的竞争力。1.2进销存系统的数据需求(1)商品按类别和名称进行管理。(2)必须记录商品的基本信息,比如规格和生产企业等。(3)需要记录商品的供应信息。(4)供应商的联系方式非常重要。(5)在采购
2、信息中需要记录采购的数量和单价等。(6)在采购信息中要包含登记商品销售数量,单价等信息。(7)商品销售信息要有报损原因。(8)所以单据必须记录相应的经手人和相应的时间。(9)采购,销售,报损信息都可以进行添加,删除,修改,查找,统计,等操作。(10)当进行进货,销售和报销操作后,能相应更改库存。(11)需要对进货,销售,库存,报损等操作生成相应的报表。1.3组织结合结构图根据系统及公司实际情况绘出组织结构图如下.图表1组织结合结构图总经理: 负责实施公司总体战略。副经理:协助总经理完成具体完成各项事物.采购部:负责缺货时向外采购商品及完成相应货物进货统计.完成进货信息的登记,修改,和删除等.销
3、售部:向外出售商品及完成相应出售商品的统计. 完成进货信息的登记,修改,和删除等.维护部: 完成商品信息的登记,修改,和删除等.及各项商品信息的维护工作.1.4功能模块图根据上述系统功能的需求分析,按照结构化程序设计的要求,得到如下所示的系统功能模块图,如图图表2功能模块图1.5业务流程图图表3业务流程图1.6数据流程图1.6.1数据流程图顶层图分析:该图简单的包含两个外部实体分别为顾客和供应商,主要业务分为两个,销售和采购。顾客查询商品资料信息,订购后收到付款通知进行付款交易。销售部接收到定货单,然后进行库存查询是否有货。有货则向顾客发货,无货则向供应商下定货单.从下图可看出没有反映帐务,而
4、且销售和采购没有分开表示,但是高度概括地反映了进销存业务,因此要进一步扩展出更详细的数据流程图。图4数据流程图DFD1.6.2数据流程图第一层分析:顾客先通过查看商品信息来获取自己想要的商品然后向公司下定单.销售部受到上级的定货单查看库存情况.有货就向仓库下提货单发货.仓库收到提货单反馈出货单给销售部,销售部下发货单给顾客。如果缺货则向供货商下班定货单采购。到货之后采购部发出到货通知反馈销售部。同时采购部发入库单货物入库。在货物入库与仓库货物出库过程中报损部进行检查。有物品损失的生成报损单。图表5数据吧流程图第一层1.6.3数据流程图第二层分析:客户发出订货单。根据订货单的订货数量发聩给仓库查
5、询货物库存信息。判定是否缺货。如果缺货则显示出缺货数量并生成缺货订购单。在到货之后进行到货处理发将可发货单存档然后进行发货管理。发货单锅里过程中生成提货单,出货单,报损单和发货单台帐到货处理过程中生成报损记录生成报损单。最后向顾客发出发货单。图表6数据流程图第三层(1) 第二层销售模块分析:客户发出订货单。根据订货单的订货数量发聩给仓库查询货物库存信息。判定是否缺货。在到货之后进行到货处理发将可发货单存档然后进行发货管理。发货单锅里过程中生成提货单,出货单,(2)第二层采购模块分析:如果缺货生成请购台帐且显示出缺货数量并生成缺货订购单。向供货商发订购单供货商收到订购单处理后发出发货单。之后采购
6、部进行到货处生成到货通知给仓库。(3)第二层报损模块分析:仓库进货出货过程中检查过程中生成报损记录上报报损部另一方面顾客上报维修单生成报损记录再汇总到报损部。由报损部生成报损报表。1.7数据字典1.7.1.数据项定义编号名称别名数据类型是否可空长度简述B1商品名称商品名CharNULLull5某种商品的名字B2商品编号商品编码CharNULL20某种商品的代码B3商品数量商品个数INULLTNULL20某种商品的容量B4商品单价商品价钱floatNULL20某种商品进货单价B5商品日期商品日期DateTimeNULL20某商品的日期B6供应商名称供应商名称CharNULL20某供应商的名字B7
7、供应商地址供应商地址CharNULL50某供应商的地址B8顾客姓名顾客名称CharNULL20某顾客的姓名B9顾客地址顾客地址CharNULL50某顾客的地址B10部门名称部门名称CharNULL40公司某部门的名称B11经理名称经理姓名CharNULL20公司部门经理名字B12库存量商品库存INULLTNULL20商品的库存数量B13员工名称员工名称CharNULL20公司员工的名称B14顾客电话号码电话号码INULLTNULL20某顾客的电话号码B15订货单编码订货单编号CharNULL20某订货单的编号B16发货单编码发货单编号CharNULL20某发货单的编号B17到货通知编码到货通知
8、编码CharNULL20某商品到货通知编号B18报损表编号商品报损表编号CharNULL20某商品报损表编号B19销售历史表编号商品销售表编号CharNULL20某商品销售表编号1.7.2、数据流定义编号名称简介数据流组成数据流来源数据流去向数据流量S1订货单顾客开出的订货单B1+B2+ B3+ B15顾客编辑订货单模块10份/时S2发货单已确定的发货货单B1+B2+ B3+B4+ B16开发货单修改库存模块顾客100份/时S3到货通知顾客收到商品到货通知B1+B2+B3+B4+B6+ ID17采购员对照暂存定货单模块10份/天L1订货单公司向供应商采购订货单B1+B2+ B3+B4+B6公司
9、采购部门供应商100份/天L2到货通知采购部门收到商品到货通知B1+B2+B3+B4+B6+B10产生到货通知模块公司采购部门10份/天C1报损表顾客及部门商品报损表B1+B2+B3+B4+B6+ B18顾客、销售采购部门售后服务维修部门100份/天1.7.3、数据存储定义编号编号名称简述数据存储组成关键字相关处理F1-1商品库存存放商品库存量B1+B2+ B3+B3+ B12商品编号P1-1、 P1-2F1-2新顾客名单新顾客登记名单B8+B9+ B14顾客姓名P1-1F1-3销售历史已销售的商品记录B1+B2+ B3+B4+ B18销售表编号P1-3F2-1暂存订货单已存订货单B1+B2+
10、 B3+B4+B6公司采购部门P2-2F2-2到货通知采购部门收到商品到货通知B1+B2+B3+B4+B6+B10产生到货通知模块P2-1F3-1报损表顾客及部门商品报损表B1+B2+B3+B4+B6+ B18顾客、销售采购部门P3-11.7.4、处理逻辑定义编号名称简述输入数据流处理输出数据流处理频率P1-1编辑订货单编辑区分订单的合格与否S1根据订单填写的要求,区分出订单的合格与否,以及顾客登记信息合格订单,不合格订单,新顾客每小时处理一次P1-2确定顾客订货根据订单给顾客订货合格的订货单根据合格的订货单,给顾客配齐商品可发订货每小时处理一次P1-3开发货单修改库存开发货单并修改库存合格的
11、订货单根据订货单给顾客开发货单并修改库存S2每小时处理一次P2-1核对发货单并产生到货通知供应商发给采购部门到货通知,并核对L1根据订货单跟实际收到的商品进行核对到货通知每小时处理一次P2-2修改库存并待订货量根据发货单修改库存,待订货正确的发货单根据正确的发货单修改库存和带订货量修改后库存每小时处理一次P3-1统计报损表统计所有报损表并归类C1统计所有的报损表并归类后,再提交给维修部门商品库存每小时处理一次1.7.5、外部实体定义编号名称简述输入数据流输出数据流S1-1顾客购置商品的用户S1S2S1-2员工包括采购员、销售员、会计等S3、 S2S2S1-3供应商向顾客和公司提供商品的单位L1
12、 L2S1-4经理公司管理人员,查看报表C12.概念结构设计2.1初步E-R图2.1.1销售业务的局部E-R图相关属性列表:实体属性销售部部门号销售员工号、姓名、性别。商品商品名称,编号,生产规格,数量,单价,商品类别,生产企业客户姓名、性别、联系方式、客户编号、联系地址。仓库管理员工号、姓名、性别。订货单商品名称、订单号、数量、单价、日期、销售员联系属性销售下达订单商品编号,销售员,销售员编号,出货日期,开单日期提货信息商品编号、商品名称、规格、数量、销售员、订货日期、开单日期、订单号关系描述分析:(1)一名客户可以生成多分订购单,一份订购单对应一个客户。所以是以对多关系。(2)一名销售员可
13、以销售多种商品,每种商品可以由多名导购员销售,因此销售员与商品之间是多对多的联系,该联系取名为销售。(3)一名客户可以向多个销售员订购商品,一个销售员可以接受多位客户的订购,因此销售员与客户的关系是一对多的关系,该联系取名为订购。(4)一份订购单可以对应多种商品。一种商品可以产生多份订购单。该联系取名为订购。(5)一个仓库管理员可以处理多份订单。一份订单对应一个仓库管理员。该联系取名为提货信息。 2.1.2采购业务的局部E-R图相关属性列表:实体属性仓库管理员工号、姓名、性别商品商品名称,编号,生产规格,数量,单价,商品类别,生产企业采购员工号、姓名、性别。订货单采购员、商品编号、进货日期、商
14、品名称、下单日期供货商姓名、性别、地址、联系方式、供货商编号联系属性出货信息商品编号,销售员,销售员编号,出货日期,开单日期货物不足通知 订购商品编号,商品数量提供名称,地址,联系方式下达订单商品编号,销售员,销售员编号,出货日期,开单日期购买商品编号,客户,生产企业,商品数量,商品单价,商品名称,商品别名,商品规格关系描述分析:(1)一个仓库管理员向采购员发出商品数量不足的通知,一个采购员向以名采购员发送需要采购商品的通知,所以仓库管理员与采购员的关系为一对一的关系。(2)一名采购员可以订购多种商品,每种商品也可以由多名采购员订购,因此采购员与商品之间是多对多的联系,该联系取名为订购。 (3
15、)一个供应商可以供应多种商品,每种商品也可以由多个供应商供应,因此供应商与商品之间是多对多的联系,该联系取名为供应。 (4) 一名采购员可下达多份订购单。一份订购单只能由一个采购员下达。所以是一对多关系。该联系取名为下达订单。 (5)一份订单可以采购多种商品。一种商品可以有多份订单。所以为多对多关系。该联系取名为购买。2.1.3报损局部E-R图相关属性列表:实体属性仓库管理员工号、姓名、性别退货单商品名称,商品编号,开单日期、退货原因、开单员报损员工号、姓名、性别。报损单报损员、商品编号、报损原因、商品名称、商品编号供货商姓名、性别、地址、供货商编号、联系方式联系属性上报损坏商品编号,开单员,
16、开单员编号,开单日期,损坏原因汇总退货单数量制定报损单报损员、商品编号、商品名称、开单日期、报损原因、报损数量关系描述分析:(1)一名开单员可以向一个存储部交报损单,一个存储部可以接受多位开单员的报损单,因此存储部与开单员之间是一对多的联系,该联系取名为发现损坏。(2)一个顾客可以上报多份退货单,一份退货单只能对应一个客户。所以为一对多关系。该联系取名为上报损坏。(3)一个仓库管理员可以向一个报损员上报损坏情况。一个报损员可以接受对应多个仓库管理员的上报情况。所以该关系为一对多。该联系取名为上报损坏。(4)一份退货单只能对应交给一个报损员。一个报损员可以接受多份退货单。所以该关系为一对多关系,
17、该联系取名为汇总。(5)一个报损员对应制定多份报损单。一份报损单由一个报损员制定。所以该联系为一对多。该联系取名为制定报损单。2.2全局E-R图相关属性列表:实体属性商品商品名称,编号,生产规格,数量,单价,商品类别,生产企业部门部门名称,部门号供货商姓名、性别、地址、供货商编号、联系方式职工姓名,工号,部门号,性别客户姓名,性别,客户编号,联系地址,联系方式联系属性管理名称,编号,规格,数量,单价,供应商,生产企业,开单时间,处理结果,处理时间从属姓名,编号,部门号库存不足编号,数量,供应商供应名称,地址,联系方式处理信息商品编号,职工编号,开单时间,处理结果,处理时间订购商品编号,商品数量
18、购买商品编号,客户,生产企业,商品数量,商品单价,商品名称,商品别名,商品规格关系描述分析:(1)一名客户可以生成多分订购单,一份订购单对应一个客户。所以是以对多关系。(2)一名销售员可以销售多种商品,每种商品可以由多名导购员销售,因此销售员与商品之间是多对多的联系,该联系取名为销售。(3)一名客户可以向多个销售员订购商品,一个销售员可以接受多位客户的订购,因此销售员与客户的关系是一对多的关系,该联系取名为订购。(4)一份订购单可以对应多种商品。一种商品可以产生多份订购单。该联系取名为订购。(5)一个仓库管理员可以处理多份订单。一份订单对应一个仓库管理员。该联系取名为提货信息。(6)一个仓库管
19、理员向采购员发出商品数量不足的通知,一个采购员向以名采购员发送需要采购商品的通知,所以仓库管理员与采购员的关系为一对一的关系。(7)一名采购员可以订购多种商品,每种商品也可以由多名采购员订购,因此采购员与商品之间是多对多的联系,该联系取名为订购。(8)一个供应商可以供应多种商品,每种商品也可以由多个供应商供应,因此供应商与商品之间是多对多的联系,该联系取名为供应。(9) 一名采购员可下达多份订购单。一份订购单只能由一个采购员下达。所以是一对多关系。该联系取名为下达订单。(10)一份订单可以采购多种商品。一种商品可以有多份订单。所以为多对多关系。该联系取名为购买。(11)一名开单员可以向一个存储
20、部交报损单,一个存储部可以接受多位开单员的报损单,因此存储部与开单员之间是一对多的联系,该联系取名为发现损坏。(12)一个顾客可以上报多份退货单,一份退货单只能对应一个客户。所以为一对多关系。该联系取名为上报损坏。(13)一个仓库管理员可以向一个报损员上报损坏情况。一个报损员可以接受对应多个仓库管理员的上报情况。所以该关系为一对多。该联系取名为上报损坏。(14)一份退货单只能对应交给一个报损员。一个报损员可以接受多份退货单。所以该关系为一对多关系,该联系取名为汇总。(15)一个报损员对应制定多份报损单。一份报损单由一个报损员制定。所以该联系为一对多。该联系取名为制定报损单。3将各分E-R图合并
21、成全局E-R图所作的处理3.1进行相关实体类型的合并,以减少实体类型的个数将采购和销售业务中的商品进行合并。3.2消除冗余 (1)将采购和销售业务中的采购员、销售员统一用职工表示。 (2)将采购部和销售部,存储部统一用部门表示。(3)将出货信息,提货信息,报损信息统一用处理信息来表示。4.逻辑结构设计4.1逻辑设计概述 由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,然后进行优化。4.2转换规则(1)一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的码就是关系的码。(2)一个1:1
22、联系可以转换为一个独立的关系模型,也可以与任何一端对应的关系式合并。(3)一个1:n联系可以转换为一个独立的关系模型,也可以与n端对应的关系式合并。4.3根据全局E-R图设计出系统的数据模型:1. 商品(商品名称,编号,生产规格,数量,单价,商品类别,生产企业)2. 部门(部门名称,部门号)3. 供货商(姓名、性别、地址、联系方式、供货商编号)4. 职工(姓名,工号,部门号,性别)5. 客户(姓名,性别,联系地址,客户编号,联系方式)6. 管理(名称,编号,规格,数量,单价,供应商,生产企业,开单时间,处理结果,处理时间)7. 从属(姓名,编号,部门号)8. 库存不足(编号,数量,供应商)9.
23、 供应(名称,地址,联系方式)10. 处理信息(商品编号,职工编号,开单时间,处理结果,处理时间)11. 订购(商品编号,商品数量,商品名称,12. 购买(商品编号,客户,生产企业,商品数量,商品单价,商品名称,商品别名,商品规格)4.4初步优化:4.4.1部门与职工之间将采购信息,报损信息,出货信息关系模式合并为:处理信息(商品数量,处理单编号,商品编号,开单日期,工号,类别)4.4.2商品与供货商之间形成一个供应过程供应商与商品的实体关系1)供应商与商品作为关系模式。供应商(姓名,地址,性别,联系方式)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)供应(采购单编号,商品
24、名称,商品单价,商品规格,商品数量,商品编号)2)与供应商端合并供应商(姓名,地址,性别,联系方式,采购单编号)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)关系模式合并为:供应信息:(采购单编号,商品名称,商品编号,姓名,地址,性别,联系方式)4.4.3商品与客户之间形成一个购买过程客户与商品的实体关系1)客户与商品作为关系模式。客户(姓名,地址,性别,联系方式)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)购买(订单编号,商品编号,商品数量)2)与客户端合并客户(销售单编号,姓名,地址,性别,联系方式)商品(商品名称,商品单价,商品规格,商品数量,商
25、品编号)关系模式合并为:购买信息:(采购单编号,商品名称,商品编号,联系方式)4.4.4职工与商品之间有职工对商品产生销售管理,采购管理,报损管理等信息。所以形成一个管理过程销售员与商品的实体关系:1)销售员与商品作为关系模式。销售员(工号,姓名,性别)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)销售(出货单编号,商品编号,商品数量)2)与销售员端合并销售员(出货单编号,工号,姓名,性别)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)采购员与商品的实体关系:1)采购员与商品作为关系模式。采购员(工号,姓名,性别)商品(商品名称,商品单价,商品规格,商品
26、数量,商品编号,生产企业)采购(采购单编号,商品名称,商品单价,商品规格,商品数量,商品编号)2)与采购员端合并采购员(采购单编号,工号,姓名,性别)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)存储部与报损员的实体关系:1)存储部与报损员作为关系模式。报损员(工号,姓名,性别)商品(商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)报损 (报损单编号,商品编号,报损员,报损员工号,开单日期,损坏原因)2)与报损员端合并报损员(报损单编号,工号,姓名,性别)商品 (商品名称,商品单价,商品规格,商品数量,商品编号,生产企业)管理信息:(商品编号,出货单编号,采购单
27、编号,报损单编号,商品名称,)4.4.5将销售人员、采购员关系模式合并为:员工(工号,姓名,部门号,职称)4.4.6将存储部、销售部和采购部关系模式合并为:部门(部门编号,部门名称)4.5最终优化:职工:(工号,姓名,部门号,职称)部门:(部门编号,部门名称)处理信息:(商品数量,处理单编号,商品编号,开单日期,工号,类别)供应信息:(采购单编号,商品名称,商品编号,联系方式)购买信息:(销售单编号,商品名称,联系方式,订购单编号)管理信息:(商品编号,出货单编号,采购单编号,报损单编号,开单日期,商品名称,联系方式)分析:1、 销售员、采购员、仓库管理员、都属于公司职工。公司职工都以职工工号
28、为主关键字,所以进行优化合并。公司职员按照部门来分类。部门编号为部门的主关键字。2、 采购、销售、报损因包含的主体不一样,都各自独立制表。3、 部门与职工之间细分有库存信息处理,到、发货信息处理、报损信息处理,从属,信息处理,信息都要经过信息处理。总体这三种都属于处理信息,信息处理都已处理单编号为主键,所以进行优化合并。4、 职工对商品的采购、销售、报损。属于职工对商品的管理。销售、采购、报损因所包含的主键不一样所以要各自为表。5、 顾客提交订购单时以商品编号为外键。购买时以商品编号为外键。处理信息时以商品编号为外键。5.数据库完整性与安全性设计5.1数据库完整性数据库的完整性维护数据库输入数
29、据的正确性、有效性和相容性。所谓正确性是指数据的合法性。有效性是指数据是否属于所定义的有效范围。相容性是指表示同一事实的两个数据应相同,不一致就是不相容。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。5.1.1 约束约束是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。1) 六种约束:空值约束、主键约束、惟一性约束、外键约束和参照约束、缺省值约束和检查约束。(1) 空值约束 (2) 主键约束(3) 惟一性约束(4) 外键约束和参照约束(5) 缺省值约束(6) 检查约束
30、2) 约束的作用:保持数据的完整性3)进销存系统的约束ZG 职工列名类型可为空缺省值检查键/索引工号Nvarchar(50)否主键姓名Nvarchar(50)否性别Nvarchar(50)否男or 女部门编号Nvarchar(50)否职称Nvarchar(50)否alter table dbo. ZGadd constraint PK_gh primary key clustered(工号) /*主键约束*/alter table dbo. ZGadd constraint def_性别default 男 for性别/*默认约束*/alter table dbo.ZGadd constrain
31、t def_xb check(性别=男or 性别=女) /*默认约束*/BM 部门列名类型可为空缺省值检查键/索引部门编号nvarchar(50)否主键部门名称nvarchar(50)否alter table dbo. BMadd constraint PK_bmbh primary key clustered(部门编号) /*主键约束*/CLXX 处理信息列名类型可为空缺省值检查键/索引处理单编号varchar(50)否主键商品编号varchar(50)否商品名称varchar(50)否开单日期datetime(50)否工号varchar(50)否类别varchar(50)否alter ta
32、ble dbo. CLXXadd constraint PK_cldbh primary key clustered(处理单编号) /*主键约束*/GYXX 供应信息列名类型可为空缺省值检查键/索引采购单编号Nvarchar(50)否主键商品数量Nvarchar(50)否0商品编号Nvarchar(50)否联系方式Nvarchar(50)否alter table dbo. GYXXadd constraint PK_cgdbh primary key clustered(采购单编号) /*主键约束*/alter table dbo. GYXXadd constraint def_spsl de
33、fault 0 for 商品数量/*默认约束*/GMXX 购买信息列名类型可为空缺省值检查键/索引销售单编号Nvarchar(50)否主键商品数量Nvarchar(50)否0商品编号Nvarchar(50)否联系方式Nvarchar(50)否alter table dbo. GMXXadd constraint PK_xsdbh primary key clustered(销售单编号) /*主键约束*/alter table dbo. GMXXadd constraint def_spsl default 0 for 商品数量/*默认约束*/CHD 出货单列名类型可为空缺省值检查键/索引出货单
34、编号Nvarchar(50)否主键商品数量Nvarchar(50)否0商品编号Nvarchar(50)否开单日期datetime(50)否联系方式Nvarchar(50)否alter table dbo. CHDadd constraint PK_chdbh primary key clustered(出货单编号) /*主键约束*/alter table dbo. CHDadd constraint def_spsl default 0 for 商品数量/*默认约束*/CGD 采购单列名类型可为空缺省值检查键/索引采购单编号Nvarchar(50)否主键商品数量Nvarchar(50)否0商品
35、编号Nvarchar(50)否开单日期datetime(8)否联系方式Nvarchar(50)否alter table dbo. CGDadd constraint PK_cgdbh primary key clustered(采购单编号) /*主键约束*/ALTER alter table dbo. CGDadd constraint def_1 default 0 for 选择题个数/*默认约束*/BSD 报损单列名类型可为空缺省值检查键/索引报损单编号Nvarchar(50)否主键商品数量Nvarchar(50)否0商品编号Nvarchar(50)否开单日期datetime(50)否联系
36、方式Nvarchar(50)否alter table dbo. BSDadd constraint PK_bsdbh primary key clustered(报损单编号) /*主键约束*/alter table dbo. BSDadd constraint def_spsl default 0 for 商品数量/*默认约束*/5.1.2默认默认是数据库的对象之一,它指定在向数据库中的表插入数据时,如果用户没有明确给出某列的值,系统自动为该列输入。创建默认的语句格式:CREATE DEFAULTowner default_name AS constant_expression绑定:sp_bi
37、ndefault_name,object_name,futureonly5.1.3规则 规则是数据库的对象之一。它指定当向表的某列插入或更新数据时,限制输入新值的取值范围。作用:规则是实现域完整性的方法之一。规则用来验证一个数据库的数据是否处于一个指定的值域范围内,是否与特定的格式相匹配。当数据库中数据值被修改或被插入时,就要检查新值是否遵循规则,如果不符合规则就拒绝执行修改或插入的操作。创建规则的语句:CREATE RULE rule_name AS condition_expression绑定规则的语句:sp_bindrule rule_name,object_name ,futreonl
38、y将ZG表中的性别的值默认为”男”,代码如下:create default df_sex AS 男sp_bindefault df_sex,ZG.性别sp_unbindefault ZG.性别drop default df_sex要求:用CREATE RULE语句创建规则,然后用sp_bindrule把它绑定至一列或用户定义的数据类型中。 规则可以绑定到一列、多列或数据库中具有给定的用户定义的数据类型的所有列。 在一个列上至多有一个规则起作用,如果有多哥规则与一列相绑定,那么只有最后绑定到该列的规则是有效的。(1)在ZG中,创建规则sex_ruleCREATE RULE check_sex A
39、S 性别= 男or 性别= 女 sp_bindrule check_sex, dbo. ZG. 性别(2)在GYXX中,创建规则amount_ruleCREATE RULE amount_rule AS amount=100 and amount =100 and amount =100 and amount =100 and amount =1000 sp_bindrule amount_rule , CGD. 商品数量5.1.4 存储过程存储过程是一种数据库对象为了实现某个特定任务,将一组预编译好的SQL语句以一个存储单元的形式存储在服务器上。作用:(1)使用存储过程可以减少网络流量。 (
40、2)增强代码的重要性和共享性。 (3)使用存储过程可以加快系统的运行速度。 (4)使用存储过程保证安全性。作用:通过工号查询职工的姓名和部门编号Create procedure up_get_姓名_部门编号 ASSelect 姓名, 部门编号From ZGOrder by 工号 ASC执行:EXEC up_get_姓名_部门编号作用:根据采购单编号查询商品编号。 Create procedure up_get_商品编号ASSelect 商品编号From GMXXOrder by 采购单编号 ASC执行:EXEC up_get_商品编号作用:通过采购单编号查询商品数量和开单日期Create pr
41、ocedure up_get_商品数量_开单日期ASSelect 商品数量, 开单日期From CGD Order by 采购单编号 ASC执行:EXEC up_get_商品数量_开单日期5.1.5 触发器触发器是一种特殊类型的存储过程,它与表格紧密相连,可以看作是表格定义的一部分。创建触发器select_ZG,插入用户信息数据,代码如下:create trigger select_ZGon dbo.ZGfor insert as select * from insertedinsert into dbo.ZG values(004-4,bsl4,004,员工,男)建立一个UPDATE触发器,在CLXX表中修改一商品编号时,触发器自动的在CGD 和CHD上修改。Create trigger updatenum_