mysql中数据库的设计
软件开发流程(CMMI):
1):项目启动;
2):项目计划:
3):需求分析; 需要得到的结果是什么?
4):系统设计; 该怎么做?
5):系统开发;
6):系统测试;
7):系统部署维护
软件项目开发周期中的数据库设计
需求分析阶段: 分析客户的业务设计和数据处理需求
概要设计阶段: 设计数据库的E-R模型图,确认需求信息的正确和完整
详细设计阶段: 应用数据库三大范式审核数据库结构
代码编写阶段: 物理实现数据库,编码实现应用
软件测试...................
设计数据库的步骤:
1):收集信息: 充分了解用户需求,理解数据库需要完成的任务
酒店:
客人可以住哪儿房间
2):标识实体: 标识数据库要管理的关键对象
酒店实体:
客人
房间
3):标识实体的属性: 标识数据库要管理的对象的属性
客人: 姓名、身份证、房间号、入住日期、结账日期、押金、总金额
房间: 房间号、房间名称、床位数、房间状态、入住人数、客人类型、价格
4):标识实体与实体之间的关系
跟房间的关系:客人入住房间
绘制E-R图(实体关系图)
组成:
1):实体(使用矩形表示)
2):属性(使用椭圆表示)
3):关系(使用菱形表示)

绘制E-R图工具:Power Designer(推荐)

E-R图的映射基数
一对一
一对多(多对一)
多对多
酒店管理系统E-R图

将E-R图转换成数据模型
1):一对一关系
将一方的主关键字纳入到另一方作为外键。如果关系中有属性的,也一并纳入。
例如:(一个仓库,一类商品)
仓库(名字)
商品(编号、类型)
------》
仓库(名字)
商品(编号、类型、仓库名字)
2):一对多关系
将一方的主关键字纳入到多方作为外键。如果关系中有属性的,也一并纳入。
例如:(一个仓库,多个商品)
仓库(编号、名字、状态)
商品(编号、类型、价格、生产日期等等)
--------》
仓库(编号、名字、状态)
商品(编号、类型、价格、生产日期等等、仓库编号、仓库名字)
3):多对多关系
将双方的关键字纳入到新的一方(第三方)作为外键,如果关系中有属性的,也一并纳入。
例如:
老师(编号,名字)
课程(课程编号、课程名称、课程说明)
---------》
老师(编号,名字)
课程(课程编号、课程名称、课程说明)
授课:(老师编号、老师名字、课程编号、课程名字、课程说明)
数据的规范化
三大范式,最小冗余的表结构。
第一范式:确保每列的原子性。每列不可以在进行分割。
原子性:每列都是不可再分的最小单元。
第二范式: 满足第一范式,除了逐渐以外的列都依赖于该主键.
一张表只描述一件事.
第三范式: 满足第二范式,除了主键以外的列都不传递依赖于主键列.
除了主键以外的其他列都不传递依赖与主键列
mysql中数据库的设计的更多相关文章
- [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF
一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢! 二.具体说明: 首先要明白”范 ...
- mysql中数据库database、实例instance、会话session的关系
1. No suitable driver found for http://127.0.0.1:3306/test jdbc_url错误,jdbc走自己的协议. 正确的路径应该是:jdbc:mysq ...
- 用命令查看Mysql中数据库、表的空间大小
要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息)use information_schema;2.查询所有数据的大小:selec ...
- 修改mysql中数据库存储主路径
一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开文件夹C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini文件 ...
- mysql中数据库与数据表编码格式的查看、创建及修改
一.查看数据库编码格式 ? 1 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 ? 1 mysql> s ...
- 使用sql对比Mysql中数据库2个表结构
比较两个数据表的结构 SELECT column_name, max( CASE WHEN table_name = 'table1' AND table_schema = 'db1' THEN 'Y ...
- MySQL中一些关于索引的知识点
什么是索引 索引是一种数据结构,其作用就是用来提高数据查询效率.比较常用的比喻就是将其类比为书籍的目录.通过目录可以精确的找到某一章节的内容所在页. 在数据量较小的时候使用索引其实也没有什么意义,即使 ...
- MySQL中Identifier Case Sensitivity
在MySQL当中,有可能遇到表名大小写敏感的问题.其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系.下面总结一下,有兴趣可以查看官方文档"Ide ...
- mysql切换数据库提示警告:Reading table information for completion of table and column names
登录数据库后,选择数据库时发现以下提示, mysql> use testReading table information for completion of table and column ...
随机推荐
- <项目><day11>查看用户浏览过的商品
<项目>查看用户浏览过的商品 1.创建一个entity包储存实体对象 1.1创建一个Product的类存储实体对象 对象具有以下属性,并添加set和get方法,含参和不含参的构造方法,to ...
- 系统无法安装 OfficeControl.ocx 控件如何解决
在OA上要直接查看word等公告文件,就必须安装office控件.要安装office控件,需要在IE浏览器中做相应的设置.如何设置呢,下面由小编具体介绍下. 工具/原料 OA IE浏览器 方法 ...
- mysql数据类型和java数据类型匹配
Java数据类型和MySql数据类型对应一览 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR L+N VARCHAR java. ...
- Mariadb 索引及外键
索引 索引相当于一本书的目录,在一个数据库或表有索引的情况下,会很便于查询数据,使查询更加效率,相对的也有缺点,不利于去修改,比较麻烦,有索引便于查询,那就意味着索引创建的越多越好么?然而并不是:索引 ...
- Appium、selenium与Robot Framework
Robot Framework + Appium Appium-Python-Client: 与Appium Library和Appium Server的交互Appium Library通过Appii ...
- qt-qml移动开发之在ios上开发和部署app流程简单介绍
qt5.3已经全面支持移动开发,除了mac,windows,linux.还支持ios,android,wp,meego等移动平台,本教程是作者依据自己的经验,从头讲怎么样在ios上公布自己的app.因 ...
- UVA 11488 Hyper Prefix Sets (Trie)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- [项目机会]使用lync的统一通信平台
[项目内容]基于微软的lync或者其他思科.腾讯等公司技术,建立一个员工统一的通讯平台,可以随时的保持员工之间沟通. [项目价值] 1.保持项目团队成员之间的随时随地高效的电话或者视频会议: 2.集成 ...
- GuiLite 1.2 发布(希望通过这100+行代码来揭示:GuiLite的初始化,界面元素Layout,及消息映射的过程)
经过开发群的长期验证,我们发现:即使代码只有5千多行,也不意味着能够轻松弄懂代码意图.痛定思痛,我们发现:虽然每个函数都很简单(平均长度约为30行),可以逐个击破:但各个函数之间如何协作,却很难说明清 ...
- Bootstrap Dropdown 源码分析
/* ======================================================================== * Bootstrap: dropdown.js ...