MySQL 08章_数据库设计
一、 关系模型与对象模型之间的对应关系
序号 |
关系模型:数据库 |
对象模型:java程序 |
|
1 |
数据表table |
实体entity:特殊的java类 |
| 2 |
字段field |
属性attribute/字段field |
| 3 |
记录record |
对象object |
二、 数据库设计的三大范式 第一范式:设计数据表字段是要保证字段的原子性,即字段是不能再拆分的最小单位。 第二范式:每一张表都要有主键(可以是单主键、可以是联合主键)用于唯一标识第一条记录,其他字段只能依赖该主键,即每个表只描述一件事 第三范式:除主键以外的字段只能依赖主键,而不能依赖主键以外的其他字段 三、 数据库设计中使用“图形” 在数据库设计的过程中,通常会使用图像化的方式直观的描述数据库对象以及他们之间的依赖关系,有许多数据库设计的系统软件,但较常用的是:PowerDesigner、Visio、Rose 1. 类图:以图形化的方式描述类及类中的属性和方法,还可以通过类图导出java代码
-表示private(私有的)
+表示public(公共的)
2. 用例图:指项目中每一个角色拥有的功能示意图
3. E-R图:entity--relationship实体关系图,描述实体内容及实体间的关联关系图。
实体:使用矩形表示
属性:使用椭圆表示
实体间的关系:使用菱形表示
4. 组织结构图:项目中按层次从上到下可以分为多个层次的多个模块,这些模块可以通过组织结构图把他们表示出来
(没有做部门和员工表的组织结构图,随便找了一个代替)数据表设计的模板:
部门表:tb_dept
| 序号 | 字段名称 |
数据类型(长度[,小数位数]) |
是否主外键 |
描述 |
| 1 |
deptno |
INT[10] |
主键,自动增长 |
部门编号 |
| 2 | ||||
| 3 |
员工表:tb_emp
| 序号 | 字段名称 |
数据类型(长度[,小数位数]) |
是否主外键 |
描述 |
| 1 |
deptno |
INT[10] |
主键,自动增长 |
部门编号 |
MySQL 08章_数据库设计的更多相关文章
- mysql学习5:数据库设计
mysql学习5:数据库设计 本文转载:https://blog.51cto.com/9291927/2087925:原创为天山老妖S 一.数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段 ...
- MySql三大范式与数据库设计和表创建常用语句
[数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...
- MariaDB第三章:数据库设计与备份--小白博客
数据库设计 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 2.第二范式(确保表中的每列都和主键相关) 第 ...
- HNU_团队项目_数据库设计感想_个人感想
数据库设计感想 个人的一点心得体会 最重要的放在最前面——讨论开会时的123经验 开会前对会议目的及方式要有所考虑: 不要随意无目的开会: 遵守时间,控制会议时间长度: 会议主持人要维持会议只需,有 ...
- mysql 12章_MySQL数据库的高级管理
一. 用户管理 Root用户是MySQL数据库管理系统中的系统管理员,但在实际开发过程中通常需要根据不同的开发者分配不同的用户,这样有利于用户的管理和维护. . 用户的创建: ) 方式1:使用MySQ ...
- MySQL 05章_模糊查询和聚合函数
在之前的查询都需要对查询的关机中进行“精确”.“完整”完整的输入才能查询相应的结果, 但在实际开发过程中,通常需要考虑用户可能不知道“精确”.“完整”的关键字, 那么就需要提供一种不太严格的查询方式, ...
- MySQL 11章_索引、触发器
一. 索引: . 为什么要使用索引: 一本书需要目录能快速定位到寻找的内容,同理,数据表中的数据很多时候也可以为他们创建相应的“目录”,称为索引,当创建索引后查询数据也会更加高效 . Mysql中的索 ...
- MySQL 10章_视图、事务
一. 视图: 视图(view)是保存了查询语句的一种数据库对象,其数据来源是查询语句对应的数据表,他的结果与数据表查询的结果一样也是一张虚拟的数据表 . 为什么需要视图: ) 不同的用户关心的数据可能 ...
- mysql 03章_完整性、约束
.完整性:数据库中数据的可靠性有效性和合理性我们称为数据的完整性,这样才能保证数据合理符合现实生活中的数据体现. 注:数据完整性的设计应该在设计表的时候就进行设计了,而不是等到数据库中已经存在数据才进 ...
随机推荐
- 你真的懂return吗?
递归算法中什么时候用return啥时候不用呢? 使用2个例子来说明:快速排序和二分查找 # 二分查找def binarySearch (arr, l, r, x): # 基本判断 if r >= ...
- Java控制台
Console类的目的是使Java程序和控制台之间的交互更容易.Console类是java.io包中的一个实用程序类,用于访问系统控制台.控制台不能保证在所有机器上的Java程序中可访问. 例如,如果 ...
- VC++ 2010 创建高级Ribbon界面详解(2)
Ribbon 控件的使用 1.命令按钮 命令按钮可以说是我们最常用的Ribbon控件了,我们通常都是通过命令按钮来发送某个命令,执行某个动作.它代替了过去的菜单命令,成为使用最频繁的Ribbon控件. ...
- [已解决]报错JSONDecodeError
报错: 解决:
- LBP算子
LBP算子特点 LBP(Local Binary Pattern),即局部二值模式,属于一种图像预处理算法,具有光照不变性和旋转不变性. 我目前做的项目是人脸表情识别,采用这种算法可以减少光照和人脸旋 ...
- Dubbo执行流程?
Dubbo执行流程? 0 start: 启动Spring容器时,自动启动Dubbo的Provider 1.register: Dubbo的Provider在启动后自动会去注册中心注册内容.注册的内容包 ...
- Redis Desktop Manager可视化工具连接不上redis
1.在centos中启动redis之后,redis进程也是可查的,但是一连接可视化工具就报错: can't connect to redis-server 2.原因分析: ①首先redis是肯定已经开 ...
- python 实现九九乘法表
代码如下: # for九九表 for i in range(1,10): for j in range(1,10): if j<=i: print('{}*{}={}'.format(i,j,i ...
- Android 防止切换横屏闪退
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- JAVA Java中@Override的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例 ...

3. E-R图:entity--relationship实体关系图,描述实体内容及实体间的关联关系图。
4. 组织结构图:项目中按层次从上到下可以分为多个层次的多个模块,这些模块可以通过组织结构图把他们表示出来
数据表设计的模板: