数据库的简单建模

简介: 数据库的简单建模

使用数据库时,通常是为了支撑一个应用或一个业务场景,第一步需要做的就是要对数据库的表结构进行设计。一个完善的设计方案包括:表名、列名、数据类型、备注信息、字符编码、主键设计、表间关系、其他约束条件等。其中的难点在于如何使用数据表以及表间关系来描述出相应的功能场景,能够应对以后的各种查询需要,这对刚接触数据库的使用者来说是有些困难的,但是只要认真思考,按照步骤来操作相信最后的结果不会差。

一、什么是数据库建模

数据库建模简单理解指的就是设计数据库的过程,根据一个应用的描述,去构建出最优的数据库模式(考虑数据的冗余,数据查询效率等因素),一般数据库建模可以被划分为六个阶段。

1. 需求分析阶段

需求分析阶段是最为重要的一个阶段,如果前期的需求分析的不明确,很可能导致数据库扩展性差,甚至于无法支撑对应的功能逻辑。通常会在这一阶段花费比较多的时间,最后产出需求文档作为成果物。

2. 概念结构设计阶段

概念设计阶段是以数据库的角度去解读需求的第一步,也是很关键的步骤,需要形成一个通用的(与具体DBMS无关)的概念模型,比较直观的可以用E-R图表示。

3. 逻辑结构设计阶段

在逻辑结构设计阶段需要对概念结构适当的具体化,将实体-关系的描述转换为某个DBMS的数据模型。可以进一步描述出表名、列名、数据类型(不需要太具体)、表间关系

4. 物理结构设计阶段

物理结构的设计,要具体到某一个数据库软件、版本、表结构、主外键等,至此也就完成了数据库设计阶段,可以直接据此生成完整的SQL语句

5. 数据库实施阶段

数据库实施阶段指的是按照已有的设计方案,在一个具体的数据库中进行实施:建库、建表、插入测试数据等。

6. 数据库运行和维护

数据库运行和维护阶段是一个长期的过程,随着应用的使用,可能会产生一些变化,如:添加数据维度,数据长度不足,约束关系收紧等,这个时候我们要针对实际情况来对数据库的结构来进行修改。

二、数据库模型的分类

基于数据库建模的各个阶段,可以把建立出来的模型根据特点归为以下几类。

1. 概念模型(CDM)

概念模型主要是基于客观世界实际存在的事物或场景进行的描述,不涉及到具体的DBMS和实现步骤。表示概念模型最常用的形式是使用E-R(实体-关系)图,包含以下三个要素:

  • 实体:矩形
  • 属性:椭圆
  • 关系:菱形
  • 一对一:根据一个实例,只能找到一个对应实例(如:一个学生 -> 一个班级)
  • 一对多:根据一个实例,能够找到多个对应实例(如:一个班级 -> 多个学生)
  • 多对多:根据一个实例,能够找到多个对应实例,反过来亦然(如:一个学生 -> 选多门课,一门课 -> 被多人选)

敲黑板:由于在数据库中直接表示两个多对多实体的关系会产生数据冗余,所以一般会有中间表的存在。

2. 逻辑模型(LDM)

逻辑模型指的是数据的逻辑结构,目的在于根据概念模型(E-R图表)进一步分解和细化,可以窥见到表结构的雏形与表间关系(数据实例)。如果存在多对多关系,也必须在这一阶段细化出中间表,在描述表间关系时,根据实际数据的可能情况可以划分为如下情况:

  • 刻画一对一
  • 0或1个:找不到或只能找到一个
  • 唯一:有且只能找到一个
  • 刻画一对多
  • 0或多个:找不到或能找到多个
  • 1或多个:能找到一个或多个
  • 多个:一定存在多个

敲黑板:以上只是根据业务分析和数据的预期情况确定出的表间关系,用于展现整体业务情况。

3. 物理模型(PDM)

物理模型是对真实数据库的描述,要根据具体的数据库生成具体的表、字段、数据类型、数据长度、主键、外键、索引、约束条件等。

敲黑板:可以直接使用Navicat或PowerDesigner工具根据生成的物理模型导出对应的SQL或直接实施到数据库。

目录
相关文章
|
关系型数据库 MySQL 数据库
|
SQL Java 数据建模
Java高手速成 | 数据库实训:图书馆管理系统建模
图书馆管理系统是常见的管理信息系统,考虑到系统的推广性,本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。
207 0
Java高手速成 | 数据库实训:图书馆管理系统建模
|
数据库 数据可视化 开发工具
工欲善其事,必先利其器——利用PowerDesigner建模并生成数据库文件
  首先介绍一下Power Designer:它是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库设计全过程。
1192 0
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
13天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
97 1
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
|
25天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
96 4
|
8天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
68 0
下一篇
无影云桌面