如何进行数据库设计

本文详细介绍了数据库设计的过程,包括为何进行数据分析,逻辑设计的概念,设计范式(如1NF、2NF、3NF和BCNF)及其优缺点,以及如何选择主键、避免外键和触发器。还探讨了反范式化、数据库维护和优化,以及实例分析,如用户、商品、订单、购物车和供应商模块的逻辑设计考虑。
摘要由CSDN通过智能技术生成

关系数据理论(包含什么是数据依赖、函数依赖)

https://www.cnblogs.com/JCSU/articles/1324032.html

  1. 需求分析

数据库需求的作用点:

  1. 数据是什么
  2. 数据有哪些属性
  3. 数据和属性各自的特点有哪些

为什么要进行数据分析

  1. 了解系统中所要存储的数据
  2. 了解数据存储的特点。如,一些时效性的数据,可以定义规则过期自动清理
  3. 了解数据的生命周期。

       有的数据增长量很大,但它们不是核心数据,对这些数据可采用分库分表存储如,开发人员希望把日志类数据存储在数据库中,从数据库管理员的角度来看,这种数据是不适合存储在数据库中的。因为日志这种数据增长量极大,并且不属于核心数据。如果非要存储在数据库中的话,可在数据库存储之前定义好这类数据的归档或清理规则。随着数据库的上限,就会进行数据库的归档。如果当这个表增长量很大的时候,再进行归档,工作量会很大还会影响线上的使用。

搞清楚一些问题

  1. 实体与实体之间的关系(如1对1,1对多,多对多)
  2. 实体所包含的属性有哪些
  3. 哪些属性或属性的组合可以唯一标识一个实体

逻辑设计

使用ER图进行数据库逻辑建模

逻辑设计是做什么的

1、将需求转为数据库的逻辑模型

2、通过ER图的形式对逻辑模型进行展示

3、同所选用的具体的DBMS系统无关

 

设计范式概要

操作异常

数据冗余

指相同数据在多个地方存在,或者说表中的某个列可由其他列计算得到,这样就说表中存在着冗余数据。

各个范式的特点

第一范式(1NF)

       数据库表中的所有字段都是单一属性,不可再分的,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。这个单一属性是由基本的数据类型所构成的,如整数、浮点数、字符串等;总而言之第一范式要求数据库中的表都是二维表(二维表:由行和列所组成的表)。’

下图是一张不符合1NF的表:

第二范式(2NF)

    第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。例如,员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。

若关系模式R∈1NF(即R符合第一范式),并且每一个非主属性都完全依赖于R的主码,则R∈2NF(即R符合第二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值