当前位置:   article > 正文

MySQL 学习篇(四)数据库结构设计目的、基本字段类型介绍和实战内容_sql数据库设计目的

sql数据库设计目的

目录

数据库优化的目的

数据库结构设计的步骤

数据库设计范式

数据库第一范式

数据库第二范式

数据库第三范式

数据库设计的目的

实战

需求说明

需求分析及逻辑设计

需求分析及逻辑设计-反范式化设计

反范式化设计总结

范式化设计和反范式化设计优缺点

数据库的物理设计介绍

物理设计涉及的内容

定义数据库表、及字段命名规范

选择适合的存储引擎

物理设计-数据类型的选择

不同数据类型在Mysql服务器上的体现

如何选择VARCHAR和CHAR类型

应该如何确定VARCHAR的宽度

VARCHAR的实用场景

如何选择varchar和char类型

CHAR类型的适用场景

物理设计-如何存储日期类型

如何存储日期数据

timestamp在Mysql的时区不同的体现

datetime、timestamp是如何存储微秒值

查看timestamp自动更新特征

Timstamp数据结果操作结论

date类型和time类型

存储日期时间数据注意的事项

物理设计——本章节总结

存储引擎的最好选择

InnoDB存储引擎的选择注意事项

如何为Innodb选择主键

数据库设计的整个过程


  • 数据库优化的目的

  1. 1 减少数据的冗余。

问:那么什么是数据冗余呢?

答:指相同的数据在多个地方的存在,或者说表中的某个列的,可以由其他列来计算得到,这样的数据就是冗余的。这里所说的,那是要尽量减少数据的冗余,而不是说要完全的没有冗余的数据,因为在一些情况下,必要的数据冗余也是必须的。

  1. 2 尽量避免在数据维护中出现的更新,插入以及删除异常。

  1. 3 节约数据库的存储空间

 

  1. 4 提高查询的效率
  • 数据库结构设计的步骤

  

 

 

  

  • 数据库设计范式

  • 数据库第一范式

例子:

分析:

每一列不可拆分,所有列由基本的数据类型组成,是二维表(但是还是存在冗余【反范式】)

  • 数据库第二范式

例子:show creat table selectcourse;

分析:学号课程名称组成符合组件,有可能不满足第二范式要求的,学分只和课程名称名称关联也就是上面的第二个,总结是不符合。

拆分成符合:

分成:《学分表》《课程表》《学生选课关系表》

show create table study\G

show create table course\G

前两种表只有一个主键so满足第二范式要求;

 

show create tablestudycourse\G

第三张表不存在非主键的依赖关系也是符合第二范式。

修改结果

已满足第二范式看是否满足第三范式。

  • 数据库第三范式

例子:

分析:但是学院的地址和学院又有依赖关系,那就是说学院地址和学院具有传递依赖关系。

拆分改造:《学生信息表》《学院信息表》

结论:第三范式该造后不会有数据冗余和数据维护异常。

  • 数据库设计的目的


 

  • 实战

  • 需求说明

按下面的需求,设计一个电子商务网站的数据结构

  1. 网站只销售图书类商品
  2. 需要具有以下功能(用户登录,商品展示,供应商管理,用户管理,在线销售)
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号