【愚公系列】软考高级-架构设计师 054-数据库模型

举报
愚公搬代码 发表于 2024/07/25 11:17:22 2024/07/25
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

数据库模型是一种抽象方法,用于定义和描述数据库的结构和数据组织方式、数据之间的关系以及它们如何存储和检索。数据库模型的选择通常取决于需要支持的应用程序的复杂性以及性能需求。

🚀一、数据模型

🔎1.数据模型类型

  1. 关系模型

    • 关系模型采用二维表格的形式来表示数据,每个表格代表一个实体或实体间的关系。
    • 它是基于实体-联系模型(ER模型)转换而来的,通过开发人员的设计,将概念模型转化为可以在关系数据库管理系统中实现的结构。
    • 关系模型强调用表结构来表示实体及其关系,适用于复杂的查询操作。
  2. 概念模型

    • 概念模型是从用户的角度对现实世界进行的抽象,通常表示为实体-联系模型。
    • 这是数据建模的第一步,主要目的是精确捕捉数据的业务语义。
    • 概念模型通常通过图形化的ER图来表达,描述实体、实体属性和实体之间的联系。
  3. 网状模型

    • 网状模型在数据库中表示为复杂的网络结构,其中的记录可以有多个父记录和多个子记录。
    • 这种模型允许一个实体与多个其他实体建立直接的联系,形成网状的数据结构。
    • 网状模型提供了比层次模型更复杂的关联性和灵活性,但查询和维护相对复杂。
  4. 面向对象模型

    • 面向对象模型基于面向对象编程的概念,以对象为单位进行数据库设计。
    • 每个对象都包括属性(数据字段)和方法(函数),支持类的概念和继承机制。
    • 这种模型非常适合复杂的数据应用,如CAD/CAM或其他需要复杂数据交互的系统。

通过这样的整理,每种模型的特点和适用场景更加明确,有助于根据实际需要选择合适的数据库设计方法。

🔎2.数据模型三要素

  1. 数据结构

    • 数据结构指的是所研究的对象类型的集合,也就是数据库中的实体、实体的属性以及实体之间的关系。
    • 在关系模型中,数据结构由表格(实体)、列(属性)和行(实例)组成。
    • 数据结构的设计直接影响了数据库的存储方式和数据访问效率。
  2. 数据操作

    • 数据操作指的是对数据库中各种对象的实例允许执行的操作的集合,包括增删改查等操作。
    • 这些操作定义了用户和应用程序可以对数据库执行的操作,如插入新数据、更新现有数据、删除数据以及查询数据等。
  3. 数据的约束条件

    • 数据的约束条件是一组完整性规则的集合,用于确保数据库中数据的一致性、完整性和安全性。
    • 这些约束条件可以包括实体完整性约束(如主键约束、唯一约束)、参照完整性约束(外键约束)、域完整性约束(数据类型、范围约束)等。
    • 约束条件限制了数据的输入和操作,防止了不合法或无效的数据被存储到数据库中,从而保证了数据的质量和可靠性。

🔎3.E-R图

用E-R图来描述概念数据模型,世界是由一组称作实体的基本对象和这些对象之间的联系构成的。

在E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:
在这里插入图片描述
在这里插入图片描述

实体:

  • 客观存在并可相互区别的事物,可以是具体的人、事、物或抽象概念,如人、汽车、图书、账户、贷款。

    弱实体和强实体:

    • 强实体依赖于强实体的存在而存在。弱实体没有足够的属性来构成唯一的主键,通常依赖于强实体的存在。

    实体集:

    • 具有相同类型和共享相同属性的实体的集合,如学生、课程。

属性:

  • 实体所具有的特性,描述实体的特征。

  • 属性分类包括:简单属性和复合属性;单值属性和多值属性;NULL属性;派生属性。

    域:

    • 属性的取值范围称为该属性的域。

    码(key):

    • 唯一标识实体的属性集。

联系:

  • 现实世界中事物内部以及事物之间的联系,在E-R图中反映为实体内部的联系和实体之间的联系。
  • 常见联系类型包括:一对一(1:1)、一对多(1:N)、多对多(M:N)。

🔎4.二维表

在关系模型中,数据的逻辑结构是一张二维表,由行列组成,用表格结构来表达实体集,并通过外键来标识实体间的联系。

  • 优点

    • 建立在严格的数学概念基础上。
    • 概念单一、结构简单、清晰,用户易懂易用。
    • 存取路径对用户透明,提高数据独立性和安全性,简化数据库开发工作。
  • 缺点

    • 由于存取路径透明,查询效率往往不如非关系数据模型。

关系模型的优点包括其严格的数学基础、简单清晰的结构以及良好的用户体验和数据管理特性;然而,与之相关的缺点是查询效率可能不如非关系型数据模型。对于特定的数据库应用,需要权衡这些优缺点来选择适合的数据模型。

在这里插入图片描述

🔎5.E-R模型转换为关系模型

E-R模型转换为关系模型是为了适应关系数据库的处理需求。由于E-R图是一种全局设计概念,不适合直接用于计算机处理,因此必须将其转换为关系模型。

E-R图由实体、属性和联系三要素组成,而关系模型则具有更简单的结构。转换的方式如下:

  • 每个实体对应一个关系模型,实体名对应关系模型的名称,实体属性对应关系模型的属性,实体标识符(联系)对应关系模型的主键。

在E-R图中,联系分为三种类型:

  • 1:1联系:可以作为一个属性放在任意的两端实体中,确保两端关联为1:1,也可以转换为一个单独的关系模式。
  • 1:N联系:联系可以独立作为一个关系模式,或者在N端加入1端实体的主键。
  • M:N联系:联系必须作为一个独立的关系模式,其主键是M和N端的联合主键。

通过将E-R模型转换为关系模型,可以更好地在关系数据库中管理数据,并确保数据的一致性和完整性。

🔎6.练习

在这里插入图片描述
在这里插入图片描述


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。