MySQL数据库建模部分重要过程

MySQL数据库建模过程可以分为

  需求分析阶段、概要设计阶段、详细设计阶段、代码编写阶段、软件测试阶段

  下面主要介绍一下概要设计阶段的E-R模型图的设计以及三大范式。

E-R图设计

  在E-R图中,实体用矩形表示,属性用椭圆表示,关系用菱形表示。

  实体之间的关系:

    一对一(1:1):一个实体最多只能能另一个实体相关联,另一个实体如是。

          例:一个只能有一张身份证。

    一对多(1:n): 一个实体可以和别的实体任意关联(他们只能和前面的实体关联)

          例:一个班有多名学生。

    多对多:(n:n):一个实体可以和别的实体任意关联(他们也可以和前面的实体任意关联)

          例:一个学生可以选择多门课程,一门课程对应多名学生。

  实例:   

  设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。;车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有“聘用开始时间”和“聘期”两个属性;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有“使用日期”和“公里数”两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
  请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型。

  E-R图:

  

三大范式

  第一范式: 要求表的每个字段必须是不可分割的独立单元

  student : name -- 违反第一范式
      张小名|狗娃
  sutdent : name old_name --符合第一范式
       张小名 狗娃

  第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。

  employee(员工):
  员工编号 员工姓名 订单名称 --违反第二范式

  员工表:员工编号 员工姓名
  订单表: 订单编号 订单名称 -- 符合第二范式  

  第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。

  员工表: 员工编号(主键) 员工姓名 部门编号 部门名
               --符合第二范式,违反第三范式 (数据冗余高)

  员工表:员工编号(主键) 员工姓名 部门编号
               --符合第三范式(降低数据冗余)
  部门表:部门编号 部门名

 

原文地址:https://www.cnblogs.com/zhai113/p/11472648.html

时间: 2024-11-10 11:40:10

MySQL数据库建模部分重要过程的相关文章

FUCK, 排查python写入mysql数据库过慢的过程(心都碎了)

最近写了一个程序,实时读取rsyslog日志,但是遇到一个问题:mysql插入速度存在延时,速度非常慢,于是开始了排查: 1. 分析程序,将认为比较耗时的地方进行线程分析,无效: 2. 按照网上说的,多行插入,commit都没有效果: 3. 重装mysql驱动,无效: 4. 编写简单的测试语句插入数据库,发现较慢,进一步在mysql中执行sql语句发现较慢,确定是mysql的问题: 5. 查看mysql的日志大小,以及目录空间,发现都没有问题,排除: 6. 关闭myql的bin选项,发现插入速度

使用PowerDesigner导出MySQL数据库建模

数据库服务器在linux上面,客户端本子win8系统 1.安装odbc 1.1 下载odbc,http://dev.mysql.com/downloads/connector/odbc/  Windows (x86, 64-bit), MSI Installer 1.2 安装odbc(略) 1.3 打开odbc连接MySQL server,控制面板-查看方式选择小图标-管理工具-odbc数据源(64位)如图1-添加“MySQL ODBC 5.3 Unicode Driver”如图2-图3 图1

MySQL数据库学习

一)Centos下安装MySQL数据库 A. 源码编译安装 MySQL数据库源码下载地址: https://dev.mysql.com/downloads/mysql/ MySQL数据库的编译安装过程,可参考如下地址: https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html 注意: 安装MySQL数据库有很多工具及包的依赖,安装所有需要的工具和包,参考下列命令: yum -y install gcc

yum安装mysql数据库

1) 操作系统环境:CentOS6.6 2) 任务:源码安装mysql 3)  问题:mysql源码配置失败,不知道是包的问题还是系统缺少库文件?没法编译,通过rpm包也无法安装,以失败告终. 4)   解决:为了解决问题,通过采用yum安装成功MYSQL数据库. 5)   装过程如下: [[email protected] tools]#yum –y install  mysql-server [[email protected] tools]#yum  -y install php-mysq

记录一次Spring boot 搭建框架连接Mysql数据库注解事务不回滚的故障

搭建了一个新框架,使用了spring boot 替换以简化原来繁杂的spring配置,使用Spring注解管理事务,持久层使用mybatis. 连接mysql数据库完成项目的过程中发现不支持事务,因为用的新框架自己本身也不是很了解,刚开始一直以为是自己的框架搭建的有问题, 后来发现是mysql数据库引擎的问题 解决方案 MyISAM不支持事物,InnoDB支持事物 先检查你的mysql版本 ,mysql 4.0系列之前是不支持事务的.    SELECT VERSION(); 检查你的数据库支持

运用Loadrunner测试Mysql数据库性能 TRON?极客

1.前言 针对数据库的性能测试,loadrunner本身支持sql server和oracle数据库,这两种数据库可以用loadrunner直接录制进行测试.而我们项目中使用的是mysql数据库,针对用 loadrunner测试mysql数据库的方法网上也有很多介绍文章,主要有两种方案.一种是利用ODBC连接测试mysql,但是这种方法配置比较麻 烦,如果要录制的话需要安装支持ODBC连接的查询分析器,这工具不好找,能找到的也只能算凑合能用.如果大家有兴趣试试这种方法,可以上网搜搜,学习配 置一

Centos6.5系统下面破解MySql数据库的密码

MySql数据库在使用的过程中往往会出现密码忘记,或者是密码验证失败,出现种情况,我在这里汇总出现以下两种方法: 第一种方法: 报错代码: mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)' 解决办法: 先停止MySql数据库的服务 service mysqld stop 然后启用MySql数据库的安全

MySQL主从复制原理及配置过程

一.Mysql数据库的主从复制原理过程: Mysql的主从复制是一个异步的复制过程,数据将从一个Mysql数据库(master)复制到另一个Mysql数据库(slave),在Master和Slave之间实现整个主从复制的过程是由三个线程参与完成的.其中有两个线程(SQL线程和I/O线程)在Slave端,另外一个线程(I/O线程)在Master端 ,要实现Mysql的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现.因为整个复制过程实际上就是Slave从Master获取b

MySQL数据库ab主从复制出错及解决过程

MySQL数据库ab主从复制出错及解决过程 一.mysql主从服务器报错描述:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0 mysql slave stop ; mysql slave start; mysql show slave status ; 如果Slave_IO_Running=YES ...解决过程 :1 如果:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0m