2022年数据库模型共享 .pdf

上传人:Q****o 文档编号:28408446 上传时间:2022-07-27 格式:PDF 页数:14 大小:763.72KB
返回 下载 相关 举报
2022年数据库模型共享 .pdf_第1页
第1页 / 共14页
2022年数据库模型共享 .pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2022年数据库模型共享 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库模型共享 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据库模型在开发一个信息系统时,一个贯穿于整个开发过程的问题就是数据以及对数据的加工。数据通常存放在数据库中,因此,数据库设计是信息系统设计的主要工作。数据库设计的核心是确定一个合适的数据模型,这个数据模型应当满足以下三个要求:(1)符合用户的要求。既能包含用户需要处理的所有数据,又能支持用户提出的所有处理功能的实现;(2) 能被某个现有的数据库系统(DBMS ) 所接受,如 SQL Server、 ORACLE 、 INFORMIX等;(3)具有较高的质量,如易于理解、便于维护、没有数据冲突、完整性好、效率高等。此外,在数据库设计中还要考虑数据库的安全问题,使各类用户合理操作数据库。数据模型

2、数据模型是现实世界数据特征的抽象。建立数据模型的主要目的是要使数据库系统与它所描述的现实系统在整体上相符合。即在设计时使数据模型正确、有效地反映现实,在运行时保证数据库中的数据值真实地体现现实世界的状态。建立数据模型一般分两个阶段完成:第一阶段是概念数据模型设计阶段。此阶段把现实世界中的信息抽象成信息世界中的实体和联系, 结合有关数据库规范化的理论,用一个概念数据模型将用户的数据需求明确地表达出来,为建立物理数据模型和设计应用程序打下坚实的基础。第二阶段是物理数据模型设计阶段。根据前一阶段建立起来的概念数据模型并结合特定的 DBMS ,按照一定的转换规则,把概念模型转换为依赖于DBMS 的物理

3、数据模型。然后,再根据软硬件运行环境,权衡各种利弊因素,确定一种高效的物理数据结构,使之既能节省存储空间, 又能提高存取速度。有了这样一个物理数据模型,开发人员就可以在系统实现阶段,建立数据库并对数据库中的数据进行多种操作。概念数据模型概念数据模型是一种面向问题的数据模型,它按照用户的观点来对信息建模,主要用于数据库设计。表示概念模型的方法很多,其中最常用的是实体联系方法。该方法用E_R 图来描述现实世界的概念模型,因此,用E_R 图表示的模型也称为实体联系模型。下面介绍实体联系方法中的一些基本概念。1.实体实体是现实世界中具有相同性质的同一类事物,它可以是具体的对象,如客户、商品,也可以是抽

4、象的概念和联系,如客户订购商品,商品出库等。一个实体可以用下图表示:员工图 3-1 员工实体实例是指客观存在并且相互区别的事物,它是实体的具体体现。例如: 员工张三、员工李四都是实体员工中的具体实例。定义一个实体应遵循以下两个基本规则:(1)实体中的每个实例都必须可以唯一标识;(2)每个实体之间都是互斥的。2.属性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 属性是指实体所具有的性质,通常一个实体由若干个属性来刻画。例如:

5、商品实体由商品编号、商品名称、规格、生产厂商、性能等属性组成。实体中的每个实例都有用来唯一标识它的一个或多个属性,这些属性称为实体的标识符(Idendifier )。例如:由于每种商品都对应一个唯一的商品编号,所以,商品编号是商品的标识符。 同样,由于每种商品都有唯一的一组商品名称、规格和生产厂商,因此,商品名称、规格、生产厂商也是商品的标识符。当一个实体有若干个标识符时,可以选定一个标识符作实体的主标识符(用 pi 表示 ),其它标识符作为次标识符(用 ai 表示 )。例:表 3-1 是一张客户订单,可以将它定义成如图3-2 所示的实体。表 3-1 客户订单订单编号:客户订单订单日期:客户编

6、号客户名称客户地址客户订购产品产品编号产品名称产品规格订购数量售价订单备注客户订单订单号订单日期客户编号客户名称客户地址订单备注产品编号 (1-5)产品名称 (1-5)产品规格 (1-5)售价(1-5)订购数量 (1-5)图 3-2 客户订单实体3.域域是某个或某些属性的取值范围。一个域可以被多个实体的属性共享使用。例如:定义一个电话号码域的数据类型为Char(8),它可以在许多实体中的电话属性中使用,一旦修改电话号码域的定义为Char(9),则使用该域的所有电话属性的定义也会随之改变。4.联系联系是实体间有意义的连接,通常用实体间的一条连线表示。联系有两种方式,一种联系是强制的,即对实体A

7、的每一个实例,实体B 中至少有一个实例与之关联;另一种联系是可选的,即对于实体A 中的每一个实例,实体B 中可以有也可以没有实例与之关联。在E-R 图中,用 |表示强制联系,用o表示可选联系。例:图 3-3 中有部门和员工两个实体,两个实体之间有一个联系,该联系的左端用|表示强制,即每个员工必须属于一个部门;该联系的右端用o表示可选,即每个部门可以有员工,也可以没有员工。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 部门与员

8、工联系部门部门编号部门名称部门电话员工部门编号员工编号员工姓名员工性别出生日期口令任职时间图 3-3 联系的强制与可选按照实体中实例之间的数量对应关系,可以将联系分为一对一联系、一对多联系、 多对多联系。(1) 一对一联系: 若对于实体A 中的每一个实例, 实体 B 中至多有一个实例与之联系,反之亦然,则称实体A 与 B 之间是一对一的联系。图3-4 所示是一个一对一联系的例子,它表示每个员工有一个或没有存款账户,而每个账户属于且仅属于一个员工。员工与账户联系员工部门编号员工编号员工姓名员工性别口令存款账户员工编号开户行账号密码图 3-4 一对一联系(2)一对多联系:对实体A 中的每一个实例,

9、实体B 有 n 个( n0)实例与之联系。反之,对实体B 中的每一个实例,实体A 中至多有一个实例与之联系,则称实体A 与 B 之间是一对多的关系。在E-R 图中,一般采用“乌鸦脚”表示多的一端。图3-5 所示是一个一对多联系的例子, 它表示一种商品类型至少包含一种商品,而每种商品属于且仅属于一种商品类型。一对多联系商品商品编号商品名称规格型号生产厂商商品售价商品类型分类编号分类名称图 3-5 一对多联系(3)多对多关系: 对实体 A 中的每一个实例,实体 B 中有 n 个(n0)实例与之联系。反之对实体B 中的每一个实例,实体A 中有 m 个( M0)实例与之联系,则称实体A 与实体 B 之

10、间存在多对多的关系。图 3-6 所示是一个多对多联系的例子,它表示一种商品可以由多家供应商提供,也可以没有供应商提供,而每家供应商可以提供多种商品,也可以不提供任何商品。多对多联系商品商品编号商品名称规格型号生产厂商商品售价供应商厂商编号厂商名称厂商联系电话厂商联系地址图 3-6 多对多联系由于多对多的联系在数据库系统中难以实现,所以在实际设计时要把一个多对多联系分解成两个一对多联系。如图3-6 所示的一个多对多联系可以转化成图3-7 所示的两个一对多的联系。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

11、- - - - - 第 3 页,共 14 页 - - - - - - - - - 供应商厂商编号厂商名称厂商联系电话厂商联系地址联系人 商品商品编号商品名称规格型号生产厂商商品售价供货供货单价图 3-7 多对多联系分解成两个一对多联系联系除了能反映实体之间的数量关系,也可以反映实体之间的相互依赖关系。如果一个实体B 没有自己独立的标识符,它必须借助实体A 的标识符作为自己的标识符(或标识符的一部分),则称实体B 依赖于实体A,实体 A 和实体 B 之间的联系称为标识联系,通常在实体 B 的一端加上一个三角来表示这种依赖关系。入库单商品明细入库单入库单编号入库时间入库单总金额入库验收人入库单内容

12、入库商品入库单价入库数量图 3-8 标识联系例如,图 3-8 中有两个实体,一个实体是入库单,另一个实体是入库单内容。由于一张入库单中可以包含多项入库商品,而每种商品可以出现在多张入库单中,因此,实体入库单内容中的属性不能完全标识实体入库单内容中的具体实例,它必须结合具体的入库单实例,所以,实体入库单内容的标识符应该由实体入库单的标识符入库单编号和实体入库单内容中的属性入库商品共同组成,这样,实体入库单内容便依赖于实体入库单。5.业务规则业务规则是业务活动中必须遵循的规则,是业务信息之间约束的表达式,反映了业务信息数据之间的一组完整性约束。业务规则有以下5 种类型:(1)定义:这种规则可以定义

13、系统中对象的特征。例如:客户是向本公司采购商品的企业或个人。(2)事实:这种规则可以描述系统的事实。例如:客户可以拥有一个或多个订单。(3)公式:这种规则可以描述系统中的计算公式。例如:金额=单价 * 数量。(4)要求:这种规则可以对系统中的功能进行详细说明。例如:客户在订购商品前,必须进行注册,经审核批准后才能订货。(5)校验:这种规则可以描述系统中数据之间的约束:例如:一个客户的订单总金额不能超过该客户的存款余额。业务规则可以在服务器上定义,也可以在客户机上定义。需要在服务器上定义的业务规则可以通过触发器、存储过程或约束实现,需要在客户机上定义的业务规则可以通过应用程序实现。物理数据模型物

14、理数据模型是在概念数据模型的基础上根据一个具体的DBMS 特性建立的数据模型,它是数据库应用的蓝本。物理数据模型涉及如下一些基本概念:1.表表是数据库中用来保存信息的一种数据结构,由概念模型中的实体转化而来。一个表中记录着关于实体的信息,是整个数据库组织的框架。2.列列是组成表的基本单位,由概念模型中的属性转化而来。一个表由多个列组成,每个列都有一个数据类型。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 3.主键与候选键主键

15、是用来唯一标识表中每个记录的一个或多个列的集合,由概念模型中的主标识符转化而来。在物理数据模型中,每张表必须有一个主键。主键通常用pk 表示候选键也是用来唯一标识表中记录的一个或多个列的集合,通常由概念模型中的次标识符转化而来。候选键通常用ak 表示4.外键外键是与其它表连接的公共列,这个列通常是其它表的主键。外键一般是由概念模型中的联系产生的。外键通常用fk 表示将图 3-8 中的概念数据模型转化为图3-9 所示的物理数据模型。FK_PUTSTORAGE入库单入库单编号入库时间入库单总金额入库验收人bigintdatetimemoneychar(6)入库单内容入库单编号入库商品入库单价入库数

16、量bigintintdecimal(8,2)float图 3-9 物理数据模型5.视图视图是从基本表导出的表,它只存储视图的定义,不把数据独立地存储在数据库中。视图的主要优点如下:(1)支持数据的逻辑独立性。(2)简化了数据查询和处理操作,使应用程序简单灵活。(3)简化了用户权限的管理。图 3-10 所示是一个入库单明细视图,该视图由IntoItems 和 product 两个表导出。图 3-10 入库单明细视图6.存储过程存储过程是存储在服务器上的一组预编译的SQL 语句,通常用来实施企业规则。使用存储过程有以下优点:(1)可以与其他应用程序共享逻辑。(2)提供安全机制。(3)加速 SQL

17、语句的执行,提高了系统的性能。(4)减少网络交通负担。7.触发器触发器是一种特殊类型的存储过程,当有操作影响到触发器保护的数据时,触发器就自动执行。触发器的主要作用:(1)实施企业规则。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - (2)保证实体的相关完整性。8.索引索引描述了数据在表中是如何组织的,是用来加速数据检索速度的一种机制。一般数据库系统支持以下索引类型:(1)唯一索引。(2)复合索引。(3)簇索引。9.用户定义数

18、据类型用户定义数据类型并不是真正的新数据类型,它是描述已有数据类型的一种方式。用户定义数据类型提供了一种加强数据库或服务器内部和它们之间的数据类型一致性的机制,使用户能使用针对特定用途定制的描述名称和格式,从而扩展了数据库系统的基本数据类型,简化了对常用规则和缺省值的管理。概念模型中的域通常转化为用户定义数据类型。10. 默认值和规则默认值用来向无值的列提供一个预先指定的值。规则可以在数据库管理中指定哪些值允许或不允许插入某些列中。11. 完整性检查约束完整性是指数据库中数据的正确性和一致性。为了保证数据的完整性,可以使用默认值、规则、触发器、存储过程,也可以用以下约束:(1)检查约束:该约束

19、能够限制插入列中的值。(2)唯一性和主键约束:该约束能够保证同一表中的任意两行在某些列上不能具有相同的值,另外,主键约束还要求在指定的列上不允许空值。(3)参照完整性约束:该约束能够保证插入某些列的数据必须已存在于被指定表的列中。利用默认值、 规则及完整性检查约束等手段,可以完成概念模型中定义的有关业务规则。规范化建立关系必须遵循一定的原则。按照这些原则来规范数据关系就称为关系规范化。关系规范化的作用有:(1)消除或减少数据冗余。(2)保持数据的一致性。(3)防止增删改数据出现异常。通常按照关系属性间的函数依赖情况来区分关系规范化的程度。关系规范化按照条件的宽严程度分为五个等级,每个等级用一个

20、范式表示。满足最低要求的关系规范化称为第一范式,再高一级的称为第二范式,依次类推,最高为第五范式。高级范式总是包含了低级范式的全部要求。常用的是第一、二、三范式,下面分别介绍这些范式。第一范式: 一个实体如果有一个主键且其属性都是简单的、没有重复属性组,则该实体满足第一范式。 为了使实体满足第一范式,要求所有的重复组都应分入不同的表,一列只能包含一个值。例如:在图3-1 所示的客户订单中,订单中的订购产品是一个重复组,因此,该实体不满足第一范式。如果将产品属性移到一个单独的实体中(见图3-11),则这两个实体满足第一范式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

21、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 客户订单实体 /61PK订单号订单日期客户编号客户名称客户地址订单备注PK订单号订单明细实体 /62PK产品编号产品名称产品规格售价订购数量图 3-11 满足第一范式的实体第二范式: 一个实体如果在符合第一范式的前提下,其每个非关键字属性都完全依赖于其主关键字, 则该实体满足第二范式。为了使实体满足第二范式,必须为那些不完全依赖实体主关键字的属性创建单独的实体。例如: 上图中的订单明细实体中的产品名称和产品规格仅依赖于产品编号,没有完全依赖于主关键字

22、订单号+产品编号,因此,该实体不满足第二范式。如果将产品名称和产品规格移到一个单独的实体中(见图3-12),则这个实体满足第二范式。PK订单号产品实体 /64PK产品编号产品名称产品规格订单明细实体 /63PK产品编号售价订购数量图 3-12 满足第二范式的实体第三范式:一个实体如果符合第二范式且不包含任何传递依赖,则该实体满足第三范式。所谓传递依赖是指一个非关键字属性值依赖于另一个非关键字属性值。例如:上图中的客户订单实体中的客户名称和客户地址依赖于客户编号,而客户编号不是主关键字,客户编号依赖于主关键字订单号,这样就使客户名称和客户地址传递依赖于订单号,因此,客户订单实体不满足第三范式。要

23、使客户订单实体满足第三范式,必须将客户属性移入一个新的实体中(见图 3-13)客户订单实体 /70PK 订单号订单日期客户编号订单备注客户实体 /71PK 客户编号客户名称客户地址图 3-13 满足第三范式的实体规范化减少了数据冗余,易于保证数据的完整性,但规范化也会导致数据库性能降低,因此,在利用规范化设计数据库时要平衡两者的关系。3.2 进销存系统的实体联系模型数据库逻辑设计是定义最终用户的数据需求和将元素以逻辑单位分组的过程。逻辑设计应独立于最终的物理实现。逻辑设计的目的是减少(或清除) 冗余数据, 从而减少数据行的长度。逻辑设计的最终目标是便于用户掌握其数据的组织结构以及便于设计物理数

24、据库。进销存系统主要围绕着商品对象,包括实体,各个实体之间的联系见图3-14。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 图 3-14 进销存系统的实体联系模型为了能更详细地了解系统的逻辑数据模型,将上面的逻辑数据模型分解为以下子模型:3.2.1 商品及员工子模型图 3-15 商品及员工子模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

25、- - - - - - 第 8 页,共 14 页 - - - - - - - - - 3.2.2 销售管理逻辑子模型图 3-16 销售管理逻辑子模型3.2.3 采购管理逻辑数据模型图 3-17 采购管理逻辑数据模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 3.2.4 库存管理逻辑数据模型图 3-18 库存管理逻辑数据模型3.3 应用系统的数据库结构数据库的物理设计是一个数据库针对特定数据库系统(DBMS )的具体实现。在

26、进行物理数据库设计的时候,主要要考虑数据的完整性、易用性和数据库的性能。下面是进销存系统的物理数据库结构。3.3.1 商品及员工物理模型图 3-19 商品及员工物理模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 3.3.2 销售管理物理模型图 3-20 销售管理物理模型3.3.3 采购管理物理模型图 3-21 采购管理物理模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

27、 - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 3.3.4 库存管理物理模型图 3-22 库存管理物理模型3.3.5 视图模型图 3-23 视图模型1.采购计划单视图CREATE view vw_plan as SELECT purchplan.pdID, purchplan.plandate, purchplan.planquantity, purchplan.planFinished, purchplan.planer, purchplan.planmemory, product.pdName, product.p

28、dModel, product.pdMadein, product.pdTotal, product.pdQuantity, product.pdPurchased, product.pdLowlevel, product.pdUnit, product.classNum, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - product.pdBook, purchplan.planStatus FROM purchplan,

29、 product WHERE purchplan.pdID = product.pdID 2.采购单明细视图CREATE view vw_purchitems as SELECT purchitems.poid, purchitems.pdid, product.classNum, product.pdName, product.pdModel, product.pdMadein, purchitems.piquantity, product.pdUnit, purchitems.piprice, purchitems.piplandate FROM purchitems,product WH

30、ERE purchitems.pdid = product.pdID 3.厂商供货明细视图CREATE view vw_supply as SELECT supplier.supName, product.classNum, product.pdName, product.pdModel, product.pdMadein, supply.supplyPrice, product.pdUnit, supply.supID, supply.pdID, supplier.supStatus FROM supply, supplier, product WHERE supply.supID = su

31、pplier.supID AND supply.pdID = product.pdID 4.订单明细视图CREATE view vw_salesitems as SELECT SalesItems.SOID, SalesItems.pdID, SalesItems.SIPrice, SalesItems.SIQuantity, SalesItems.Sicost, SalesItems.SIStatus, product.classNum, product.pdName, product.pdModel, product.pdMadein, product.pdUnit FROM SalesI

32、tems, product WHERE SalesItems.pdID = product.pdID 5.入库单明细视图CREATE view vw_intoitems as SELECT IntoItems.putID, IntoItems.IntmNum, IntoItems.pdID, IntoItems.IntmCost, IntoItems.IntmQuantity, product.pdName, product.pdModel, product.pdMadein, product.pdUnit, product.classNum FROM IntoItems, product W

33、HERE IntoItems.pdID = product.pdID 6.出库单明细视图CREATE view vw_outitems as SELECT OutItems.outID, OutItems.outmNum, OutItems.pdID, OutItems.outmQuantity, OutItems.outmPrice, product.classNum, product.pdName, product.pdModel, product.pdMadein, product.pdTotal, product.pdQuantity, product.pdUnit FROM OutI

34、tems, product WHERE OutItems.pdID = product.pdID 7.销售统计报表视图CREATE view vw_salestotal as SELECT dbo.salestotal.stdate, dbo.salestotal.pdid, dbo.product.classNum, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - dbo.product.pdName, dbo.produ

35、ct.pdModel, dbo.product.pdMadein, dbo.salestotal.stsales, dbo.salestotal.stprofit, DATEPART(yy, dbo.salestotal.stdate) AS styear, DATEPART(mm, dbo.salestotal.stdate) AS stmonth, DATEPART(dd, dbo.salestotal.stdate) AS stday FROM product, salestotal WHERE product.pdID = salestotal.pdid 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁