返回顶部
首页 > 资讯 > 数据库 >MySQL总结(九)数据库设计-详解
  • 851
分享到

MySQL总结(九)数据库设计-详解

MySQL总结(九)数据库设计-详解 2017-05-22 21:05:58 851人浏览 绘本
摘要

数据库设计 1.数据规范化 1.1 什么是范式: 好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。 1.2 三大范式: 前关系数据库

MySQL总结(九)数据库设计-详解

数据库设计

1.数据规范化

1.1 什么是范式:

好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。

1.2 三大范式:

前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF) ,其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。

2)1NF

2.1 概念:

数据库表的每一列都是不可分割的原子数据项,不能是集合数组等非原子数据项。即表中的某个列有多个值时,必须拆分为不同的列。简而言之,第一范式每一列不可再拆分,称为原子性。

2.2 班级表

学号 姓名 班级
1 张三 一年三班
2 李四 一年二级
3 王五 二年三班

2.3 需求:把用户进行地区分类

3) 2NF

3.1 概念:

在满足第一范式的前提下,表中的每一个字段都完全依赖于主键。

所谓完全依赖是指不能存在仅依赖主键一部分的列。简而言之,第二范式就是在第一范式的基础上所有列完全依赖于主键列。 当存在一个复合主键包含多个主键列的时候,才会发生不符合第二范式的情况。比如有一个主键有两个列,不能存在这样的属性,它只依赖于其中一个列,这就是不符合第二范式。

特点:

  1. 一张表只描述一件事情。
  2. 表中的每一列都完全依赖于主键。

3.2 示例:

  1. 借书证表:
学生证号 学生证名称 学生证办理时间 借书证号 借书证名称 借书证办理时间
  1. 分成两张表:
学生证号 学生证名称 学生证办理时间
借书证号 借书证名称 借书证办理时间

4) 3NF

4.1 概念:

在满足第二范式的前提下,表中的每一列都直接依赖于主键,而不是通过其它的列来间接依赖于主键。

简而言之,第三范式就是所有列不依赖于其它非主键列,也就是在满足 2NF 的基础上,任何非主列不得传递依赖于主键。 所谓传递依赖,指的是如果存在"A → B → C"的决定关系,则 C 传递依赖于 A。因此,满足第三范式的数据库表应该不存在如下依赖关系:主键列 → 非主键列 x → 非主键列 y

4.2 示例:学生信息表

学号 姓名 年龄 所在学院 学院地点
  • 存在传递的决定关系:

学号->所在学院->学院地点

  • 拆分成两张表:
学号 姓名 年龄 所在学院的编号(外键)
学院编号 所在学院 学院地点

5)三大范式小结:

范式 特点
1NF 原子性:表中每列不可再拆分。
2NF 不产生局部依赖,一张表只描述一件事情
3NF 不产生传递依赖,表中每一列都直接依赖于主键。而不是通过其它列间接依赖于主键。
您可能感兴趣的文档:

--结束END--

本文标题: MySQL总结(九)数据库设计-详解

本文链接: https://lsjlt.com/news/6553.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL总结(九)数据库设计-详解
    数据库设计 1.数据规范化 1.1 什么是范式: 好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。 1.2 三大范式: 前关系数据库...
    99+
    2017-05-22
    MySQL总结(九)数据库设计-详解
  • MySQL 数据库范式化设计理论总结
    目录一、设计范式1.第一范式(1NF)2.第二范式(2NF)3.第三范式 (3NF)二、范式化设计三、反规范化设计四、设计总结一、设计范式 问题: 什么是范式化设计,为什么需要反规范...
    99+
    2024-04-02
  • MySQL总结(十二)数据库事务-详解
    数据库事务 1. 事务的应用场景说明 什么是事务 在实际的开发过程中,一个业务操作如:转账,往往是要多次访问数据库才能完成的。转账是一个用户扣钱,另一个用户加钱。如果其中有一条 SQL 语句出现异常,这条 SQL 就可能执行失败。 ...
    99+
    2020-01-22
    MySQL总结(十二)数据库事务-详解
  • 数据库课程设计报告总结
    一、课程设计题目 学生信息管理系统 二、课程设计目的 数据库系统课程设计是为了配合学习数据库系统原理及应用开发而设置的,是将关系数据库理论知识转化为解决实际问题能力的重要环节。数据库系统课程设计目的在...
    99+
    2023-09-17
    数据库 java 服务器 mysql 文档资料
  • 《MySQL高级篇》九、数据库的设计规范
    文章目录 1. 为什么需要数据库设计2. 范 式2.1 范式简介2.2 范式都包括哪些2.3 键和相关属性的概念2.4 第一范式(1st NF)2.5 第二范式(2nd NF)2.6 第三范式...
    99+
    2023-09-12
    数据库 mysql 设计规范
  • MySQL总结(七)数据库表的约束-详解
    数据库表的约束 1. 数据库约束的概述 1.1 约束的作用: 对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。 1.2 约束种类: 约束...
    99+
    2017-04-03
    MySQL总结(七)数据库表的约束-详解
  • 自己总结的数据库设计规范
    总体方向思维1.数据架构和容量规划相关    a.总数据量的预估,一年或两年为期限,直接影响硬盘容量规划    b.是否关联其他数据库和环境,关联...
    99+
    2024-04-02
  • MySQL总结(六)数据库备份与还原-详解
    数据库库备份和还原 1. 备份的应用场景 在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。...
    99+
    2015-02-09
    MySQL总结(六)数据库备份与还原-详解
  • MySQL总结(十四)DCL数据库控制语言-详解
    DCL(Data Control Language) 我们现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户...
    99+
    2019-09-18
    MySQL总结(十四)DCL数据库控制语言-详解
  • 数据库设计之数据库,数据表和字段等的命名总结
    数据库命名规则:根据项目的实际意思来命名。 数据表命名规则:1.数据表的命名大部分都是以名词的复数形式并且都为小写;2.尽量使用前缀"table_";3.如果数据表的表名是由多个单词组成,则尽量用...
    99+
    2024-04-02
  • SQLServer数据库的设计详解
    一、数据库设计的必要性 在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,...
    99+
    2024-04-02
  • 数据库设计之概念结构设计
    概念结构设计是数据库设计的第一个阶段,它是在逻辑层面上对数据库进行建模和设计的过程。概念结构设计主要包括以下内容:1. 实体-关系模...
    99+
    2023-09-15
    数据库
  • MySQL总结(八)数据库表与表之间的关系-详解
    表与表之间的关系 1.表关系的概念 在现实生活中,实体与实体之间肯定是有关系的。比如:员工和部门,老师和学生等。那么我们在设计表的时候,就应该体现出表与表之间的这种关系。 表关系 描述 一对一 相对使用比较少。如:员工表...
    99+
    2014-11-01
    MySQL总结(八)数据库表与表之间的关系-详解
  • MySql数据库日常设计和使用需要注意的几点总结
        a,UTF-8的字符集是⼀一个汉字3个字节:varchar(255) UTF-8 255*3=765字节     b,禁⽌在表中建立预留字段     c,尽量避免加⼊外键约束,因为外键写...
    99+
    2021-02-15
    MySql数据库日常设计和使用需要注意的几点总结
  • Mysql数据库常用命令总结
    本篇内容介绍了“Mysql数据库常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  启动Mysq...
    99+
    2024-04-02
  • 数据仓库总结
    1.为什么要做数仓建模 数据仓库建模的目标是通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。 当有了适合业务和基础数据存储环境的模型(良好的数据模型),那么大数据就能获得以下好处: 当有了适合业务和基...
    99+
    2023-08-30
    数据仓库
  • 数据库设计(一)——数据库设计
    数据库设计(一)——数据库设计 一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段B、概念结构设计阶段C、逻辑结构设计阶段D、物理结构设计阶段E、数据库实施阶段F、数据...
    99+
    2024-04-02
  • MySQL总结(三)DDL数据定义语言-详解
    每行语句需要选中后再执行,可以选中后按F9快捷键执行 1.1.2 具体操作 -- 直接创建数据库db1; create database db1; -- 判断数据库是否存在,如果不存在则创建数据库db2; create database...
    99+
    2021-10-12
    MySQL总结(三)DDL数据定义语言-详解
  • android基础总结篇之九:Intent应用详解
    今天我们来讲一下Android中Intent的原理和应用。 前面我们总结了几个Android中重要组件,相信大家对于这些组件已经有了清晰的认识,我们就来看一下几个常见的操作:...
    99+
    2022-06-06
    intent Android
  • Mysql树形结构的数据库表设计方案
    目录前言一、基本数据 二、继承关系驱动的设计 三、基于左右值编码的设计四、树形结构CRUD算法(1)获取某节点的子孙节点 (2)获取某节点的族谱路径(3)为某节点添加子孙节点 (4)...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作