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章_完整性、约束
.完整性:数据库中数据的可靠性有效性和合理性我们称为数据的完整性,这样才能保证数据合理符合现实生活中的数据体现. 注:数据完整性的设计应该在设计表的时候就进行设计了,而不是等到数据库中已经存在数据才进 ...
随机推荐
- C++变长参数
如果C++的变长参数经过了多轮的调用,就可能失去作用 间接引址,但是只能引用到第一个变长参数. va_list marker; va_start(marker, format); s_logger ...
- python 实现异常退出
https://blog.csdn.net/u013385362/article/details/81206822 有时当一个条件成立的情况下,需要终止程序,可以使用sys.exit()退出程序.sy ...
- JDK8新特性之重复注解
什么是重复注解 下面是JDK8中的重复注解(java.lang.annotation.Repeatable)定义的源码. @Documented @Retention(RetentionPolicy. ...
- delphi文件后缀全解
delphi文件后缀全解 1. 项目文件(.dpr):Delphi项目文件,用于保存窗体.单元等的信息,以及程序运行的初始化代码等,这种文件实际上包含了Pascal源代码. 2. 单元文件(.pas) ...
- mongo之$rename更新一个字段的名称(可批量)
$rename操作逻辑执行$unset 老名称和新的名称,然后执行 $set新名称运行.因此,操作可能不保留文档中字段的顺序; 即重命名的字段可以在文档内移动. 1.重命名字段:一级字段 格式: db ...
- 使用wireshark在windows平台下捕获HTTP协议数据包中的帐号密码信息
1.打开wireshark软件,从Interface List中选择相应的网卡,例如我的PC机上是“本地连接”,然后选择”Start”启动抓包程序. 2.打开学校主页,输入账号和密码登录校内邮箱. 3 ...
- oracle中的round()方法的用法
[oracle中的round()方法的用法] Round( ) 函数 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 oracle一般常用于计算表空间内存还有多少空间 语法 ROUN ...
- Effective C++之条款2:尽量以const enum inline替换 #define
本文的标题也可以改成“用编译器替换预处理器”: const double AspectRatio = 1.653; //最好使用上述代码替换下述代码: #define ASPECT_RATIO 1.6 ...
- Tools: java安装指南
参考: https://www.cnblogs.com/smyhvae/p/3788534.htmljava安装 (1)新建->变量名"JAVA_HOME",变量值" ...
- ThreadLocal知识点
ThreadLocal是什么 ThreadLocal 表面上看他是和多线程,线程同步有关的一个工具类,但其实他与线程同步机制无关.线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每个 ...