当前位置: 首页 > article >正文

数据库->数据库设计

一、范式

1.定义

数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数
据库,这些不同的规范要求被称为不同的范式

2.第一范式

数据库表的每⼀列都是不可分割的原⼦数据项,⽽不能是集合,数组,对象等⾮原⼦数据

1.反例:

2.正例:

每个列都可以用SQL的内置基本数据类型表示  但数据冗余会非常大

3.第二范式

在满⾜第⼀范式的基础上,不存在⾮关键字段(可以理解为非主键字段)对任意候选键(可以理解为主键、唯一键,用来标识数据行)的部分函数依赖。存在于表中定义了复合主键(主键中包含多个列)的情况下

候选键:可以唯⼀标识⼀⾏数据的列或列的组合,可以从候选键中选⼀个或多个当做表的主键

1.反例:

2.正例:

 单主键天然满足第二范式

3.不满⾜第⼆范式时可能出现的问题

1.数据冗余   2.更新异常    3.插入异常   4.删除异常

4.第三范式

在满⾜第⼆范式的基础上,不存在⾮关键字段,对任⼀候选键的传递依赖

1.反例:

2.正例:

二、设计过程

1. 从现实业务中抽象得到概念类

概念类是从现实世界中抽象出来的,在需求分析阶段就需要确定下来

◦ 类对应了数据库设计中的实体,实体对应了数据库中的表(类、实体、表 是在不同场景下对同一个事务的不同称呼)
◦ 类中的属性对应实体中的属性,实体的属性对应了表中的列(属性、列、字段也是同一个事物的不同称呼)

2. 确定实体与实体之间的关系,并画出E-R画(实体-关系图),⽅便项⽬参与⼈员理解与沟通
3. 根据E-R图完成SQL语句的编码并创建数据库

三、实体-关系图

实体-关系图(Entity-Relationship Diagram)简称E-R图,也称作实体联系模型、实体关系模型,是⼀种⽤于描述数据模型的概念图,主要⽤于数据库设计阶段

1.E-R图 的基本组成

E-R图包含了以下三种基本成分:
• 实体:即数据对象,⽤矩形框表⽰,⽐如⽤⼾、学⽣、班级等。
• 属性:实体的特性,⽤椭圆形或圆⻆矩形表⽰,如学⽣的姓名、年龄等。
• 关系:实体之间的联系,⽤菱形框表⽰,并标明关系的类型,并⽤直线将相关实体与关系连接起来

2.关系的类型

2.1一对一关系

一个账户对用唯一用户

2.2一对多关系

多个同学在一个班级里

2.3多对多关系

学生与课程多对应

对于多对多关系,可以使⽤中间表进⾏记录,⽐如⼀个学⽣参加了某⼀⻔课程的考试得到了相应的
成绩

四、练习


http://www.kler.cn/a/369856.html

相关文章:

  • YOLOv8实战野生动物识别
  • 如何确保电子商务网站服务器的正常运行时间
  • linux查看系统架构的命令
  • 【Vue3】第三篇
  • 算法练习:四数之和
  • 数组排序简介-选择排序(Selection Sort)
  • ESP8266学习记录
  • 消息中间件mq*(Kafka)
  • 【C++】How the C++ Compiler Works
  • java_方法重载、可变参数、作用域
  • Excel-多表数据查找匹配(VLOOKUP)
  • Chromium HTML5 新的 Input 类型tel对应c++
  • 编写xml形式sql语句注意事项
  • 「C/C++」C++设计模式 之 Pimpl模式
  • `a = a + b` 与 `a += b` 的区别
  • 软考:缓存分片和一致性哈希
  • 如何搭建AI智能化招聘平台?招聘系统源码与小程序开发技术方案探讨
  • 在html中引用unpkg的vue3,v-model无法绑定方法
  • JAVA模仿银行系统要求
  • 【C语言】int类型整数取值范围的缘由