数据库设计、优化及维护

本文详细介绍了数据库设计的目的,包括减少数据冗余、避免数据异常和提高访问效率。内容涵盖需求分析、逻辑设计(如ER图、范式理论)和物理设计,强调了命名规则、字段类型选择及主键设计。此外,还讨论了数据库维护和优化,如索引维护、表结构调整和反范式化设计。
摘要由CSDN通过智能技术生成

一、设计数据库的目的

减少数据冗余

避免数据维护异常

节约存储空间

高效的访问

二、设计步骤

1、需求分析

数据库需求的作用点

数据是什么

数据有哪些属性

数据和属性各自的特点有哪些

为什么要进行需求分析

了解系统中所要存储的数据

了解数据的存储特点

了解数据的生命周期

问题

实体及实体之间的关系(一对一,一对多,多对多)

实体所包含的属性有什么

属性或属性的组合可以唯一标识一个实体

简单例子

电商系统

核心模块:

​ 用户模块、商品模块、订单模块、购物车模块、供应商模块

分析:

用户模块

注册

包含属性: 用户名、密码、电话、邮箱、身份证、地址、姓名、昵称…

可选唯一标识属性: 用户名、身份证、电话、

存储特点:随系统上线时间逐渐增加,需要永久存储

商品模块

包含属性:商品编码、商品名称、描述、品类、供应商名称、重量、有效期、价格…

可选唯一标识属性:(商品名称、供应商名称)、(商品编码)

存储特点:对于下线商品可以归档存储

订单模块

包含属性:订单号、用户姓名、电话、地址、商品编号、商品名称、数量、价格、订单状态、支付状态、订单类型…

可选唯一标识属性:订单号

存储特点:永久存储(分表、分库存储)

2、 逻辑设计

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

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

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

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

名词解释

关系:一个关系对应通常所说的一张表

元组:表中的一行即为一个元组

属性: 表中的一列即为一个属性;每个属性都有一个名称,称为属性名

候选码:表中的某个属性组,它可以唯一确定一个元组

主码:一个关系有多个候选码,选定其中一个为主码

域:属性的取值范围

分量:元组中的一个属性值

ER图形状表示

矩形:表示实体集,矩形内写实体集的名字

菱形:表示联系集

椭圆:实体的属性

如图
在这里插入图片描述

设计范式

先来聊聊数据操作异常及数据冗余

操作异常
  1. 插入异常:如果某实体随着另一个实体的存在而存在,即缺少某个实体时无法表示这个实体,那么这个表就存在插入异常。
  2. 更新异常:如果更改表所对应的某个实体实例的单独属性时,需要将多行更新,那么就说这个表存在更新异常
  3. 删除异常:如果删除表的某一行来反映某实体实例失效时导致另一个不同实体实例信息丢失,那么这个表中就存在删除异常
数据冗余

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

第一范式

定义:数据库表中的所有字段都是单一属性,不可再分的。这个单一属性是由基本的数据类型所构成的,如整数,浮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值