数据库设计教程系列——基本概念(关系模型、实体、联系、域和属性)2014-09-16 23:09:11 请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)一、关系模型 Relations Model
关系模型的规则定义了数据可以被表达的方式(数据结构)、数据可以被保护的方式(数据完整性) 以及在数据上可以实现的操作(数据操作)。
二、实体 Entity 实体就是用来存储信息的事物。 在关系数据库中,现实世界的实体以及实体间的各种联系均用关系来表示。 实体对应现实世界的业务,在分析时需要进行识别,分析出实体模型和它们之间的联系。 如电商系统常见的实体模型有销售订单(SalesOrder)、采购订单(BuyOrder)、客户(Customer)、 产品(Product)、优惠券(Coupon)、礼品卡(GiftCard)、购物车(ShoppingCart)等等。 这些实体存在若干属性,每一组属性值可以表达一个独立的实体对象。 有些实体非常复杂,可能涉及使用多个关系(多个表)来表达,比如订单,可能包括订单、订单项、 发货地址、发票地址、支付方式、订单备注等等。这些信息构成了完整的订单实体,而这些信息每一个 又是一个独立的关系(在数据库设计中会被设计为一张独立的表)。 所以这里存在一个聚合的概念,即由多张表聚合成一个业务意义上的实体模型。 三、联系 Relationship 指的是实体之间的联系。 同样是使用关系来表示,即每种联系就是一张表。 联系大多数是二元的,即常见的1对1、1对多、多对1、多对多等联系方式。 但也存在三元或多元的联系,比如“顾客从某商铺购买了某个产品”这个关联。(产品和商铺是多对多关联的) 一对多关联最为常见,而且在实践中,对于多对多也会设计为两个一对多联系。 四、域 Domain 一个域是一个属性(字段)可能包括的所有有效值的集合。
单纯从数据结构是无法有效的体现该属性在实际业务中的可选值的,比如对于“产品状态”这个属性,可选的状态有: draft=草稿;on_sale=上架;not_on_sell=下架;forbidden=禁售。(或者更多),但这个约束一般通过应用层面来达成, 数据表设计时,是声明这个属性的域定义。 域和数据有效性是不同的。数据有效性是针对数据完整性的概念,比如“邮箱”、“电话号码”等字段的格式验证。 但如果规定了只能从某个范围内选择电话号码,则这个范围则是域。 在数据库设计中,如果使用PowerDesigner,有专门的Domain功能可供使用。 五、属性 Attribute(即数据表的Column) 系统需要保存每个实体的具体信息,这些信息就是实体的属性。 比如对于客户 Customer,有ID、Name、Title、Job、Gender等。 属性一般分为三类:
在实际设计中,决定是否将一个属性加入到实体需要看业务需要。 比如对于客户实体的“地址”属性。
![]() 1 数据库设计教程系列——相关知识点整理 2 数据库设计教程系列——基本概念(关系模型、实体、联系、域和属性) 3 数据库设计教程系列——数据库范式 4 数据库设计教程系列——数据库设计流程 5 数据库设计教程系列——数据流图 6 数据库设计教程——数据字典 7 数据库设计教程——E-R实体联系图 8 数据库设计教程——物理模型和表创建 9 数据库设计教程——物理模型设计模式 分享到: 为您推荐这些文章,如果感兴趣,请继续阅读吧:数据库设计教程系列——基本概念(关系模型、实体、联系、域和属性)数据库设计,数据库设计教程,关系模型,关系数据库模型,数据结构,数据完整性,数据操作,实体、联系、域、属性阐述了关系模型的定义和组成(数据结构、数据完整性、数据操作) 以及实体、联系、域和属性等概念的说明。 |
粤ICP备14060523号 Copyright @2014 -唯心六艺软件 |