数据库模型设计案例分享(GaussDB版)

GaussDB数据库是一款企业级分布式数据库,支持集中式和分布式两种部署形态。它面向金融互联网交易和政企OA/办公等场景,具有安全可靠、超高性能、简单易用等优势。

在GaussDB中,数据建模是非常重要的一部分。数据建模是指根据业务需求和数据特点,将现实世界中的实体、属性、关系等概念抽象出来,并用一定的方式表示成计算机可以理解的形式。数据库模型设计的目的是为了建立一个能够满足业务需求的数据存储结构,使得数据的存储、查询、更新等操作更加高效、可靠、安全。

在GaussDB中,可以使用E-R图来进行数据建模,E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型,它可以帮助您更好地理解您的业务逻辑并将其转换为关系模型。

应用系统数据库设计基本流程简图:

第一步:需求分析:主要包括数据、功能、性能等

第二步:数据库设计:主要包括概念结构设计、逻辑结构设计、物理结构设计等

第三步:数据库实施:选择数据库软件,并进行落地。

第四步:数据库系统运行、维护和优化。

其中数据库设计(DatabaseDesign)是E-R设计模型中的主要环节。

数据库模型设计主要分以下3个阶段:

概念数据模型(CDM)是按用户的观点来对数据和信息建模,其目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系。其特征包括:

面向用户,反映用户的业务需求

抽象性强,不涉及具体实现细节

层次结构清晰,各层之间有一定的关系

可扩展性好,可以方便地添加新的实体和关系等。

所以这个阶段,我们主要完成从需求中抽象出示实体集和关系集。

示例系统:订单系统,实体(订单、客户、供应商、商品、地址)。

实体集之间关系集梳理:

1)客户与订单是一对多

2)客户与地址是一对一

3)供应商与地址是一对一

4)供应商与商品是一对多

5)订单与商品是一对多

如图,确定不同实体之间的最高层次的关系:

逻辑数据模型(LDM)尽可能详细地描述数据,逻辑数据模型的特征包括:

包括所有实体和它们之间的关系

指定了每个实体的所有属性

指定外键(标识不同实体之间关系的键)

关系表规范化等。

如图,完善每个实体的属性:

物理数据模型(PDM)表示如何在数据库中构建模型。物理数据库模型显示所有表结构,包括列名,列数据类型,列约束,主键,外键以及表之间的关系。物理数据模型的功能包括:

规范所有表和列

外键用于标识表之间的关系。

物理上的考虑可能导致物理数据模型与逻辑数据模型有差异

不同的RDBMS的物理数据模型将有所不同,例如MySQL和GaussDB之间列的数据类型可能有所不同。

目标是指定如何用数据库模式来实现逻辑数据模型,以及真正的保存数据。

针对上面的物理数据模型设计时,GaussDB数据库有如下字段设置规范建议:

1)合理选用字符串数据类型。优先使用变长字符类VARCHAR。只有该字段输入确定为固定字符则使用定长字符类型,或需要自动补充空格,才使用CHAR(n)。

2)字符类型字段不应存储数字类型的数据。如果对存储在字符类型字段中的数据进行数值计算,或者与数值进行比较操作(如置于过滤条件中),会带来不必要的数据类型转换的开销,同时该字段上的索引可能失效,影响查询性能。

4)对于明确不存在NULL值的字段加上NOTNULL约束。对于NOTNULL字段,优化器在某些场景下会进行特殊优化,可较大提升查询性能。

6)大字段(例如varchar(1000)、varchar(4000))不建议超过8个。

7)字段定义时建议同时创建COMMENT注释信息,以便于未来维护。

8)不建议对表预留字段。大部分场景下可支持快速新增、删除表字段,或者修改字段的DEFAULT值。

9)尽量使用高效的数值类数据类型。在满足业务精度的情况下,选择的优先级从高到低依次为整数、浮点数、NUMERIC。

10)合理设置数值字段的数据类型,根据取值范围选择合适的数值类型,尽量少用NUMERIC/DECIMAL类型。NUMERIC和DECIMAL等价,NUMERIC(或DECIMAL)数据类型操作对CPU消耗较高。

数据库模型设计的三个主要阶段汇总如下:

概念数据模型设计阶段:实体、关系集

逻辑数据模型设计阶段:实体、关系集、属性、主键、外键

物理数据模型设计阶段:表、列名、列数据类型、主键、外键

通常,数据建模是为了让查询更简单、更高效。在现实场景中,如果要想高效的使用好数据库,那么一个优秀的数据建模是必不可少的。数据模型是应用系统数据库设计的基础,而数据库则是数据模型实现的工具。本文建模后是在GaussDB数据库平台上进行落地实验的,其逻辑与思路与大多少关系型数据库基本通用。

THE END
1.学习数据库最重要的应用之一数据库设计案例后来从需求文档开始开发一个项目,我也是懵懵懂懂,由于队友提前把数据库建好了,我并没有学到建立数据库的知识。 也是某次契机,面试时面试官询问:你如何设计这个数据库的? 于是回去我恶补了一下,花了半个星期,终于把我学过的知识联系起来。 数据库设计:是比使用SQL语句更重要的知识,因为使用SQL语句的基础,先是有https://blog.csdn.net/weixin_62411896/article/details/139304680
2.mysql数据库设计案例,MySQL数据库设计案例分析通过以上的数据库设计案例分析,我们可以看到,在进行MySQL数据库设计时,需要考虑到需求分析、概念设计、逻辑设计、物理设计、性能优化、安全设计、数据备份与恢复等方面。只有综合考虑到这些方面,才能设计出高效、安全、可靠的数据库系统。MySQL数据库设计是一个复杂而又有挑战性的工作,需要设计人员具备扎实的数据库知识和丰https://www.nzw6.com/23096.html
3.DBA之路之数据库设计案例51CTO博客DBA之路之数据库设计案例 此处引用某老师的案例给大家说明,还有就是希望大家看此篇文章前先看前面的两篇不然会有些懵哈:http://linuxclub.info/category/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86/ 教学管理 1.基本需求 某学校设计学生教学管理系统,学生实体包括学号、姓名、性别、生日、名族、https://blog.51cto.com/lirenpgood/1830586
4.案例数据库设计9篇(全文)案例数据库设计 第1篇 为方便下面结合案例讲述数据库设计的相关问题,先简要阐述下“基于SNS的学习社区平台”的最基本的用户需求:SNS即Social Networking Services,专指旨在帮助人们建立社会性网络学习平台的互联网应用服务。所面向的对象主要是各校学生及教师等。公共社区里,学生可以获取老师提供的学习资源和教学资料,可以https://www.99xueshu.com/w/ikey3pf3ms57.html
5.数据库设计案例:电商系统数据库设计实践简介: 数据库设计案例:电商系统数据库设计实践 随着互联网的迅猛发展,电商行业成为了经济发展的重要驱动力。在电商系统的建设中,数据库设计是核心环节之一。本文将通过一个电商系统的数据库设计案例,深入探讨数据库设计的思路、方法和实践,并附有相关代码和实例表格。 一、电商系统概述 假设我们要设计一个简单的电商https://developer.aliyun.com/article/1489705
6.MySQL之权限以及设计数据库案例讲解Mysql这篇文章主要介绍了MySQL之权限以及设计数据库案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 权限及设计数据库 用户管理 使用SQLyog 创建用户,并授予权限https://www.jb51.net/article/219116.htm
7.数据库设计大作业案例.doc数据库数据库设计大作业案例.doc 13页内容提供方:xinshengwencai 大小:307.5 KB 字数:约4.91千字 发布时间:2016-08-06发布于江西 浏览人气:6003 下载次数:仅上传者可见 收藏次数:10 需要金币:*** 金币 (10金币=人民币1元)数据库设计大作业案例.doc 关闭预览 想预览更多内容,点击免费在线预览全文 https://max.book118.com/html/2016/0806/50539797.shtm
8.典型案例数据库设计文档类码农集市专业分享IT编程学习资源1.5.4数据流图 7 1.5.5实体与数据 7 1.5.6联系与数据 7 1.5.7数据字典 8 2概念设计 14 2.1实体图 14 2.2 多个实体间的联系图 16 2.3总体ER图 18 3逻辑设计 19 3.1关系设计 19 3.2关系优化 20 3.3约束的说明 22 3.4基本表 23 4物理设计 25 4.1确定数据库的存储结构 25 4.2确定数据库的存取方法 26https://www.coder100.com/index/index/content/id/1098775
9.数据库复习笔记(全覆盖,包括往年部分真题)腾讯云开发者社区**6、数据库设计(复习数据库设计案例)** 6.1数据库设计的基本过程及每阶段的主要任务 数据库设计通常分为6个阶段 1、需求分析:分析用户的需求,包括数据、功能和性能需求; 分析方法常用SA(Structured Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。 数据流图表https://cloud.tencent.com/developer/article/2055640
10.数据库设计案例一个好的数据库设计方案,可以提高信息的存储和检索效率,减少数据冗余和错误,提高数据的安全性和可靠性。 一个典型的数据库设计案例包括以下步骤: 1.需求分析:确定数据库系统的需求和目标,包括数据类型、数据量、数据流向等。 2.数据库设计:根据需求分析结果,设计数据库结构,包括实体、关系、属性、主键、外键等。 3https://wenku.baidu.com/view/79b89f700366f5335a8102d276a20029bd6463ee.html
11.Java架构设计之总体设计案例高性能高并发微服务架构设计2.4 数据库(database) 可能被采用的数据库有Oracle、MySQL,使用Mysql的好处有: l 源免费数据库,使用较新稳定版本5.5 l 功能强大,稳定; l 经历过有广泛的成熟的应用实践考验; l 使用经验比较丰富,容易上手,使用简单; l 视用户量情况考虑,前期小规模的时候采用Master-Slave主从模式备份。后期逐步考虑:实现数据库https://www.soft1188.com/javabk/2974.html
12.空间数据库课程实践教学设计及案例展示期刊摘要:空间数据库课程的实践教学环节在整个课程教学中至关重要,理论的教学也是围绕实践应用服务.本文就目前较为薄弱的实践环节教学设计进行初步探讨,研究在空间数据库设计、建立、应用分析和系统开发的GIS相关专业课教学过程中,本课程的侧重点及起到的衔接作用,结合案例对空间数据库的实践教学具体实施过程进行展示.注重在空https://d.wanfangdata.com.cn/Periodical/dbch201512003
13.“新城建”优秀案例:珠江设计全建制BIM正向设计关键技术与实施充分应用BIM通过可视化三维设计协同,碰撞检测、管线优化协调、平台信息化管理等等,进行提前分析及判断,带来大幅的工程成本节约。 3. 积累户型数据库 通过本项目积累了多个户型库、多个数据积累家具库及构件数据族库,形成了后期集团类似住宅项目可重复利用的宝贵资源。 https://zfcj.gz.gov.cn/zjyw/xxhgz/xxhgz/content/post_8824957.html
14.数据库课程之分布式数据库设计(二)这篇文章将主要是记录分布式数据库系统的设计课程总结,也就是该门课程的第二章。该门课程主要分为三个部分,第一部分主要介绍一些基础概念(也就是第一篇文章),第二部分主要是讲分布式数据库系统的设计(也就是该篇文章,实际课程中只占据一个章节),第三部分主要讲数据库管理系统中的一些技术实现要点。第三部分是该https://www.jianshu.com/p/4054536be05f
15.ER图深度剖析:数据库设计与数据关系呈现的专业指南(3)丰富的模板资源:boardmix的社区板块内置丰富的ER图案例模板,可以免费套用,帮助你快速完成制作! 以上就是有关ER图的全部内容了。ER图在数据库设计和数据关系呈现中具有重要的作用和优势。它通过可视化数据模型、清晰的数据关系表示帮助人们更好地理解和管理数据库系统。 https://boardmix.cn/article/what-is-entity-relationship-diagram/
16.电子商务网站建设第7章 网络数据库设计 7.1Web数据库概述 7.2 建立ODBC数据文件 7.3数据库服务器与Web服务器连接 第8章ASP编程实现 8.1 ASP一般规则 8.2 ASP对象模型 8.3 ASP NET环境应用 习题 第9章 网站管理与维护 9.1 网站管理的基础知识 9.2 网站管理的内容 9.3网站测试及性能优化 习题 第10章 电子商务网站案例 10.1 中小https://baike.sogou.com/v5852534.htm
17.实体关系数据建模案例CDGP可参考数据建模是数据库设计的基础。 数据建模是数据工程中的一个关键过程,涉及创建可视化数据库表示。此流程定义并分析支持组织中业务发展所需的数据需求。存在多种数据建模,例如实体关系(ER)、关系、层次、维度等。在本文中,重点关注 ER 数据建模。在深入研究主题 ER 数据建模之前,让我们先了解一下为什么需要数据建模。 https://36kr.com/p/2622172083853699