设计数据库

1、什么是实体

实体就是软件开发过程中所涉及的事务,通常都是一类数据对象的个体。

2、什么是数据库设计

数据库设计就是将实体与实体之间的关系进行规划和结构化的过程。

3、为什么要对数据库进行设计

当存储的数据比较少的时候,当然不需要对数据库进行设计。但是,当对数据的需求量越来越大时,对

数据库的设计就很有必要性了!如果数据库的设计不当,会造成数据冗余、修改复杂、操作数据异常等

问题。而好的数据库设计,则可以减少不必要的数据冗余,通过合理的数据规划提高系统的性能。

4、如何设计数据库

收集信息 :在确定客户要做什么之后,收集一切相关信息,尽量不要遗漏信息
标识实体 :实体一般是名词,每个实体只描述一件事情,不能重复出现含义相同的实体
标识实体的详细属性
标识实体之间的关系

5、ER图

5.1、什么是ER图

ER=Entity Relational(实体关系)

ER图就是实体关系图

5.2、如何画ER图

6、数据库模型图

6.1、什么事关系模式

实体关系的描述称为关系模式,关系模式通常使用二维表的形式表示

eg:学生(学号,姓名,性别,年龄,所属班级)

6.2、关系模式转为数据库模型图

将关系模式使用Navicat工具转换为数据库模型图,转换步骤如下:

  1. 将各实体转换为对应的表,将各属性转换为各表对应的列
  2. 标识每个表的主键列
  3. 在表之间建立主外键,体现实体
    eg:

7、数据库三大范式

7.1、第一范式

第一范式是最基本的范式,确保每列保持原子性,也就是每列不可再分。

eg:

7.2、第二范式

第二范式是在第一范式的基础上,每张表的属性完全依赖于主键,也就是每张表只描述一件事情

eg:

7.3、第三范式

第三范式是在第二范式的基础上,确保每列都直接依赖于主键,而不是间接依赖于主键,也就是不能存

在传递依赖。比如A依赖于B,B依赖于C,这样A间接依赖于C。

注意:

在实际开发过程中,为了满足性能的需要,数据库的设计可能会打破数据库三大范式的约束
以空间换时间

当数据库中存储的数据越来越多时,查询效率下降,为了提升了查询效率,可能会在表

中增加新的字段,此时,数据库的设计就不再满足三大范式。

相关推荐
爱喝水的鱼丶2 小时前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
余槐i9 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹9 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo9 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
骇客野人10 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
美狐美颜SDK开放平台11 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
花间相见13 小时前
【计算基础|MySQL01】【上手】安装连接、数据类型与建库建表
数据库·后端
花间相见13 小时前
【计算基础|MySQL02】【上手】SQL 增删改查
数据库·后端
ITxiaobing202313 小时前
IP 库与 AppsFlyer 国家/地区数据不一致,如何系统地对账?
数据库·网络协议·tcp/ip
这个DBA有点耶13 小时前
从时间到语义:时序数据库与向量数据库的核心机制、选型与多模融合趋势
数据库·mysql·架构