MySQL数据库设计基础
为什么需要规范的数据库设计?
什么是数据库设计?
数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.
数据库设计非常重要!
数据库中创建的数据结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素
良好的数据库设计:
- 效率高
- 便于进一步扩展
- 可以使应用程序的开发变得更容易
设计数据库的步骤
在需求分析阶段,设计数据库的一般步骤如下:
1.收集信息
2.标识实体
3.标识每个实体的属性
4.标识实体之间的关系
收集信息
创建数据库之前,必须充分理解数据库需要完成的任务和功能
标识实体
在收集需求信息后,必须标识数据库要管理的关键对象或实体
标识每个实体需要存储的详细信息
将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息
标识实体之间的关系
能够关联数据库中各个项目的相关信息
概要设计-绘制E-R图
实体-关系模型
- 实体--------是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物
2. 属性--------可以理解为实体的特征
3. 联系--------联系时两个或多个实体之间的关联关系
实体用矩形表示,一般是名词;
属性用椭圆表示,一般也是名词;
联系用菱形表示,一般是动词;
- 映射基数--------映射基数表示通过联系与该实体关联的其他实体的个数;
- 一对一: X中的一个实体最多与Y中的一个实体关联,并且Y重的一个实体最多与X中的一个实体关联
- 一对多: X中的一个实体可以与Y中任意数量的实体关联,Y中的一个实体最多与X中的一个实体关联
- 多对一: X中的一个实体最多与Y中的一个实体关联,Y中的一个实体可以与X中的任意数量的实体关联
- 多对多: X中的一个实体可以与Y中的任意数量的实体关联
- 实体关系图
组成: 1.矩形表示实体集
2.椭圆形表示属性
3.菱形表示联系集
4.直线用来连接属性和实体集,也用来连接实体集和联系集
关系数据库模式
用二维表的形式表示实体和实体间联系的数据模型称为关系模型.关系数据库模式是对关系数据库结构的描述.
表示形式:
R(U) 或者 R(A,B)
R表示关系名,U表示属性集合,A,B代表U中的属性
将E-R图转换为关系模式的步骤如下:
- 把每个实体都转化为关系模式R(A,B)形式
- 建立实体间联系的转换
实体间的联系分为一对一,一对多,多对多三种,当两个实体各自转化为关系模式后,实体间联系的转换如下:
- 一对一的转换:把任意实体的主键放到另一个实体的关系模式中
- 一对多的转换:把联系数量为1的实体的主键放到联系数量为N的实体关系模式中
- 多对多的转换:把两个实体中的主键和联系的属性放到另一个关系模式中,注意多生成一个关系模式.
逻辑设计-绘制数据库模型图
绘制数据库模型图的步骤
- 新建数据库模型图
- 添加实体
- 添加数据列及相应的属性
- 添加实体之间的映射关系
将E-R图转换为数据库模型的步骤如下:
- 将E-R图中各实体转化为对应的表,将各属性转化为各表对应的列
- 标识每个表的主键列,需要注意的是,要为没有主键的表添加ID编号列,该列没哟实际含义,只用作主键或外键
- 在数据库模型图中体现实体之间的映射关系
数据规范化
从关系型数据库表中除去冗余数据的过程称为规范化,如果使用得当,规范化是用于获得高效的关系型数据库表的逻辑结构的最好、最容易的方法。当规范化数据时,应执行下列操作:
- 将数据库的结构精简为最简单的形式
- 从表中删除冗余的列
- 标识所有依赖与其他数据的数据
三大范式内容如下:
- 第一范式:其目标是确保每列的原子性
- 第二范式:在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关
- 第三范式:在第二范式的基础上更进一层,其目标是确保每列都和主键列直接相关,而不是间接相关
MySQL数据库设计基础的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- CentOS下mysql数据库常用命令总结
mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- mysql数据库主从同步
环境: Mater: CentOS7.1 5.5.52-MariaDB 192.168.108.133 Slave: CentOS7.1 5.5.52-MariaDB 192.168. ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- mysql数据库开发常见问题及优化
mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...
随机推荐
- MongoDB Native Node.js Driver
写在前面 最近读<node.js学习指南>,对于mongodb没有介绍太多的工作原理,但是对于一个前端开发者,即使你还没有用过这种数据库也可以让你很好的理解和使用 一本非常好的 ...
- [2016-09-09]IIS站点发布、同步和备份工具MSdeploy(WebDeploy)介绍
前提准备:完整安装Microsoft Web Deploy 3 下载页面:WebDeploy_amd64_zh-CN.msi msdeploy 同步站点 命令所在目录C:\Program Files\ ...
- 初遇.net
初遇.net 为了自己的理想我选择了.net课程进行自我提升,想想以后能成为一位程序猿不由得有点兴奋呢,还有另一件高兴的事是我认识了十几位来自不同区县的老师同学,都说人脉就是财富,是不是我的财富有多了 ...
- protobuf和thrift对比
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt383 数据类型 protobuf thrift protobuf thrif ...
- (一)Builder(建造者)模式
我们一般在构建javabean的对象的时候通常有三种写法: 1.直接通过构造函数传参的方式设置属性,这种方法如果属性过多的话会让构造函数十分臃肿,而且不能灵活的选择只设置某些参数. 2.采用重叠构造区 ...
- 49、html基础认识&常用标签(1)
从今天期我们进入前端的学习,先学习html,没有任何需要逻辑需要烧脑,只需要记忆.练习.练习.练习. 一.HTML初识 1.web服务本质 import socket def main(): sock ...
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- 【Beta】 第六次Daily Scrum Meeting
一.本次会议为第六次meeting会议 二.时间:10:00AM-10:20AM 地点:禹州楼 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 对目前完成的模块进行全面测试,并 ...
- 第二次项目冲刺(Beta阶段)5.24
1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #63Web输出以文件名为标题 #63 ...
- 201521123096《Java程序设计》第八周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 实验中使用了s ...