使用关系型数据库三级模式存储数据的优缺点

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 【6月更文挑战第10天】数据模型是DBMS的核心,提供数据透明性和设计指导。包括概念、逻辑和物理三层:概念模型(如ER模型)用于理解和收集需求,逻辑模型(如关系模型)关注设计,物理模型涉及实际存储实现。

1 简介

这里简单介绍基本概念,例如什么是数据模型?

然后介绍不同类型的数据模型、优缺点和数据模型示例。比如数据建模确保命名一致性、数据质量和安全性,但大型数据库的复杂性和结构更改的广泛影响是其挑战。不同的数据模型,如分层、网络、面向对象等,各有优缺点,适用于不同场景。

mandala曼德罗符号.png

数据库管理系统 (DBMS) 中的数据模型是为总结数据库描述而开发的工具的概念。

数据模型为我们提供了数据透明性,这有助于我们创建实际的数据库。
它向我们展示了从数据的设计到数据的正确实施。

关系模型的类型,它基本上分为3种类型: 概念模式,内模式,外模式。

比如采用三级模式结构的数据库系统中,如果对一个表创建聚索引,那么改变的是数据库的是内模式,内模式定义的是存储记录的类型、存储域的表示、存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。

只有结构化之后,才能如此使用sql语句查询数据。

```
SELECT user, age from users ORDER BY age. 

```
AI 代码解读

2 目的:为什么要数据建模

数据建模是为要存储在数据库中的数据开发数据模型的过程。
数据模型确保命名约定、默认值、语义和安全性的一致性,同时确保数据质量。

数据模型结构有助于定义关系表、主键和外键以及存储过程。

有三种类型:概念,逻辑(外)和物理(内)。

概念模型的主要目的是建立实体、其属性和关系。
逻辑数据模型定义数据元素的结构并设置它们之间的关系。

物理数据模型描述了数据模型的数据库特定实现。

设计数据模型的主要目标是确保准确表示功能团队提供的数据对象。

3 简介概念数据模型

概念数据模型在非常高的级别上描述数据库,对于了解数据库的需求或要求非常有用。正是这个模型用于需求收集过程,即在数据库设计者开始创建特定数据库之前。

其中一种流行的模型是实体/关系模型(ER 模型)。E/R 模型专门研究数据库设计人员使用的实体、关系甚至属性。

就这个概念而言,甚至可以与非计算机科学(非技术)用户和利益相关者进行讨论,并且可以理解他们的要求。

实体关系模型(ER模型):

它是一个高级数据模型,用于定义数据以及它们之间的关系。它基本上是任何数据库的概念设计,易于设计数据视图。

ER模型的组成部分:

实体:实体称为真实世界的对象。它可以是名称、地点、对象、类等。这些由 ER 图中的矩形表示。

属性:属性可以定义为实体的描述。这些由 ER 图中的 Eclipse 表示。它可以是学生的年龄、卷号或分数。

关系:关系用于定义不同实体之间的关系。钻石和菱形用于显示关系。

概念数据模型的特征
提供组织范围内的业务概念覆盖。
这种类型的数据模型是为业务受众设计和开发的。

概念模型是独立于数据存储容量、位置等硬件规格或软件规格(如 DBMS 供应商和技术)开发的。

重点是将数据表示为用户将在“现实世界”中看到的数据。
称为域模型的概念数据模型通过建立基本概念和范围为所有利益相关者创建通用词汇表

4 简介外模式:逻辑数据模型

这种类型的数据模型仅用于表示数据库的逻辑部分,而不表示数据库的物理结构。逻辑数据模型允许我们主要关注数据库的设计部分。

一种流行的表示模型是关系模型。关系模型由关系代数和关系演算组成。在关系模型中,我们基本上使用表来表示我们的数据以及它们之间的关系。这是一个理论概念,其实际实现是在物理数据模型中完成的。

使用逻辑数据模型的优点是为形成物理模型的基础提供基础

5 简介内模式:物理数据模型

物理数据模型用于实际实现关系数据模型。最终,数据库中的所有数据都以物理方式存储在辅助存储设备(如光盘和磁带)上。它以文件、记录和某些其他数据结构的形式存储。

它具有有关文件存在的格式和数据库结构,外部数据结构的存在以及它们之间的关系的所有信息。

在这里,我们基本上将表保存在内存中,以便可以有效地访问它们。为了提出一个好的物理模型,我们必须以更好的方式处理关系模型。结构化查询语言(SQL)用于实际实现关系代数。

此数据模型描述了如何使用特定的 DBMS 系统实现系统。此模型通常由 DBA 和开发人员创建。目的是数据库的实际实现。

6 物理数据模型的特征:

物理数据模型描述了单个项目或应用程序的数据需求,尽管它可能根据项目范围与其他物理数据模型集成。

数据模型包含表之间的关系,这些关系解决关系的基数和可控性。

为项目中使用的DBMS,位置,数据存储或技术的特定版本而开发。
列应具有确切的数据类型、分配的长度和默认值。
定义了主键和外键、视图、索引、访问配置文件和授权等

7 其他一些数据模型

  • 1 分层模型

分层模型是 IBM 在 1950 年代开发的数据模型中最古老的模型之一。在分层模型中,数据被视为表的集合,或者我们可以说形成分层关系的段。在此中,数据被组织成树状结构,其中每个记录由一个父记录和许多子记录组成。

即使段通过逻辑关联作为链状结构连接,则即时结构可以是具有多个分支的扇形结构。我们将不合逻辑的关联称为定向关联。

  • 2 网络模型

网络模型在 1960 年代由数据库任务组正式确定。此模型是分层模型的泛化。此模型可以由多个父段组成,这些段分组为级别,但属于任何级别的段之间存在逻辑关联。大多数情况下,两个段中的任何一个之间存在多对多逻辑关联。

  • 3 面向对象的数据模型

在面向对象的数据模型中,数据及其关系包含在单个结构中,该结构在此数据模型中称为对象。在这种情况下,现实世界的问题表示为具有不同属性的对象。所有对象之间都有多个关系。基本上,它是面向对象编程和关系数据库模型的组合。

  • 4 浮点数据模型

浮点数据模型基本上由二维数据模型数组组成,这些数组中不包含任何重复元素。此数据模型有一个缺点,它不能存储大量数据,即表不能很大。

  • 5 上下文数据模型

上下文数据模型只是一个由多个数据模型组成的数据模型。例如,上下文数据模型由 ER 模型、面向对象数据模型等组成。此模型允许用户执行每个单独数据模型可以执行的多个操作。

  • 6 半结构化数据

半结构化数据模型以灵活的方式处理数据。某些实体可能具有额外的属性,某些实体可能具有一些缺失的属性。基本上,您可以在此处以灵活的方式表示数据。

6 小结

  • 使用数据模型的 优势

数据模型帮助我们准确地表示数据。

它帮助我们找到丢失的数据,并最大限度地减少数据冗余。
数据模型以更好的方式提供数据安全性。

数据模型应足够详细,以便用于构建物理数据库。
数据模型中的信息可用于定义表、主键和外键以及存储过程之间的关系。

  • 使用数据模型的 缺点

在庞大的数据库的情况下,有时很难理解数据模型。
您必须具备适当的 SQL 知识才能使用物理模型。

即使是结构上的较小更改也需要在整个应用程序中进行修改。
DBMS 中没有设置的数据操作语言。要开发数据模型,应该了解物理数据存储的特征。

最大的缺点是,即使是对结构进行的较小更改也需要在整个应用程序中进行修改。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
打赏
0
0
0
0
172
分享
相关文章
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
157 75
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
PolarDB开源数据库进阶课3 共享存储在线扩容
本文继续探讨穷鬼玩PolarDB RAC一写多读集群系列,介绍如何在线扩容共享存储。实验环境依赖《在Docker容器中用loop设备模拟共享存储》搭建。主要步骤包括:1) 扩容虚拟磁盘;2) 刷新loop设备容量;3) 使用PFS工具进行文件系统扩容;4) 更新数据库实例以识别新空间。通过这些步骤,成功将共享存储从20GB扩容至30GB,并确保所有节点都能使用新的存储空间。
16 1
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
24 2
PolarDB 开源基础教程系列 7.1 快速构建“海量逼真”数据
本文介绍了如何使用PostgreSQL和PolarDB快速生成“海量且逼真”的测试数据,以满足不同业务场景的需求。传统数据库测试依赖标准套件(如TPC-C、TPC-H),难以生成符合特定业务特征的复杂数据。通过自定义函数(如`gen_random_int`、`gen_random_string`等)、SRF函数(如`generate_series`)和pgbench工具,可以高效生成大规模、高仿真度的数据,并进行压力测试。文中还提供了多个示例代码展示.
37 7
PolarDB PG 版冷热数据分层功能介绍
本文介绍了云原生数据库PolarDB PG版的冷热数据分层存储功能,涵盖其原理、特性及最佳实践。冷热分层存储通过将冷数据归档至OSS(对象存储服务),实现低成本高效存储,同时保持SQL操作透明性和性能优化。支持多种分层模式,如表与索引分层、大字段独立归档等,并提供压缩和缓存机制以提升访问速度。此外,还介绍了如何通过DDL语句轻松转存数据至OSS,以及一系列最佳实践,包括自动冷热分层、无锁表转存和一键转存等功能。
156 36
时序数据库 TDengine 化工新签约:存储降本一半,查询提速十倍
化工行业在数字化转型过程中面临数据接入复杂、实时性要求高、系统集成难度大等诸多挑战。福州力川数码科技有限公司科技依托深厚的行业积累,精准聚焦行业痛点,并携手 TDengine 提供高效解决方案。
16 0
|
2月前
|
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
60 1
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
70 5

数据库

+关注

相关产品

  • 云原生数据库 PolarDB