深入解析包裹信息管理系统:关系型数据库逻辑数据模型设计、超类实体与派生属性探讨
目录
案例
【题目】
【问题 1】(14分)
【问题 2】(6分)
【问题 3】(5分)
【答案】
【问题 1】解析
【问题 2】解析
【问题 3】解析
案例
阅读下列说明,回答问题 1 至问题 3。
【题目】
某企业委托软件公司开发包裹信息管理系统,以便于对该企业通过快递收发定位包裹信息进行统一管理。在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中邮政包裹单如下图所示。
【问题 1】(14分)
请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?该包裹单的逻辑数据模型中应该包含哪些实体?并指出每个关系模式的主键属性。
【问题 2】(6分)
请说明什么是超类实体?结合图中包裹单信息,试设计一种超类实体,给出完整的属性列表。
【问题 3】(5分)
请说明什么是派生属性?结合上图中包裹单信息说明哪个属性是派生属性。
【答案】
本题考查数据库设计与建模相关知识及应用。
数据库设计过程包括了逻辑数据建模和物理数据建模,逻辑数据建模阶段主要构造实体联系图表达实体及其属性和实体间的联系,物理数据建模阶段主要根据所选数据库系统设计 数据库模式。实体联系图(Entity Relationship Diagram)指以实体、联系、属性三个基本概 念概括数据的基本结构,从而描述静态数据结构的概念模式。实体是具有公共性质的可相互 区别的现实世界对象的集合,可以是具体的,也可以是抽象的概念或联系。属性是实体所具有的模拟特性,一个实体可由若干个属性来刻画。联系是数据对象彼此之间存在的相互关系。
此类题目要求考生认真阅读题目对问题的描述。准确理解数据库设计的主要任务和实体 联系图中各个元素的含义,结合图中所给出的包裹单示意图中所描述的数据项,分析其关系确定实体、属性和联系。
【问题 1】解析
在关系型数据库开发中,逻辑数据模型建设的主要任务是构建实体联系图。构建过程中,首先通过上下文数据模型确定实体及其联系,为每个实体确定其标识性属性并添加完整属 性,在此基础上利用规范化技术对所建立逻辑数据模型进行优化,一般需要满足第三范式 3NF 要求。对上图所示包裹单中所有数据项进行分析,主要涉及的实体包括收件人、寄件人及其之间的关联实体包裹单,其余数据项设计为上述三个实体的属性即可。
答案:
逻辑数据模型设计过程包含的任务:
(1)构建系统上下文数据模型,包含实体及实体之间的联系;
(2)绘制基于主键的数据模型,为每个实体添加主键属性;
(3)构建全属性数据模型,为每个实体添加非主键属性;
(4)利用规范化技术建立系统规范化数据模型。
包裹单的逻辑数据模型中包含的实体:
(1)收件人(主键:电话);
(2)寄件人(主键:电话);
(3)包裹单(主键:编号)。
【问题 2】解析
数据库建模中可以对属性相似的实体进行进一步的抽象,通过将多个实体中相同的属性组合起来构造出新的抽象实体,即超类实体,原有多个实体称之为子类实体,通过两者之间 的继承关系来表达抽象实体和具体实体的关系。上图中收件人和寄件人的属性都包括了姓名、电话、单位名称、详细地址和邮政编码等信息,可以设计出一个超类实体“用户”来实现通用属性的抽象表示。
答案:
超类实体是将多个实体中相同的属性组合起来构造出的新实体。
用户(姓名、电话、单位名称、详细地址)
【问题 3】解析
在数据库优化过程中,第三范式要求消除派生属性,即某个实体的非主键属性由该实体其他非主键属性决定,那么该属性可以称之为派生属性。上图所示属性中,包裹单的属性“费用总计”是由资费、挂号费、保价费、回执费等计算得出,所以是派生属性。
答案:
派生属性是指某个实体的非主键属性由该实体其他非主键属性决定。
包裹单中的总计是由资费、挂号费、保价费、回执费计算得出,所以是派生属性。
相关推荐
2015年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.2k次,点赞35次,收藏40次。SQL 语句设计时,影响查询效率的设计原则是:●查询时尽量不要返回不需要的行、列;●需要进行多表连接查询时,尽量使用连接查询,避免使用子查询结构;●尽量避免采用 NOT IN、NOT EXIST、LIKE 等使用全表查询的操作;●尽量避免使用 DISTINCT 关键字https://shuaici.blog.csdn.net/article/details/1412211252017年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.1k次,点赞49次,收藏43次。数据访问层常见的模式有 5 种 分别是:在线访问、Data Access Object、Data Transfer Object、离线数据模式、对象/关系映射(Object/Relation Mapping)。ORM,即 Object/Relationl Mapping,它在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的 SQL 语句打交道,只要像平时操作对象一样操作即可。
https://shuaici.blog.csdn.net/article/details/1415622632018年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.6k次,点赞57次,收藏48次。Redis 分布式存储的常见方案有: (1)主从(Master/Slave)模式; (2)哨兵(Sentinel)模式; (3)集群(Cluster)模式。Redis 集群切片的常见方式有: (1)客户端实现分片。分区逻辑在客户端实现,采用一致性哈希来决定 Redis 节点。 (2)中间件实现分片。在应用软件和Redis 中间,例如 Twemproxy、Codis 等,由中间件实现服务到后台
https://shuaici.blog.csdn.net/article/details/1417160252019年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.3k次,点赞72次,收藏48次。存在双写不一致问题,在写数据时,可能存在缓存写成功,数据库写失败,或者反之,从而造成数据不一致。当多个请求发生时也可能产生读写冲突的并发问题。 (a)从数据库中读取数据或读数据库; (b)更新缓存中 key 值或更新缓存; (c)数据库; (d)删除缓存 key 或使缓存 key 失效或更新缓存(key 值)。
https://shuaici.blog.csdn.net/article/details/142059273