软件开发流程(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中数据库的设计的更多相关文章

  1. [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF

    一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢!   二.具体说明: 首先要明白”范 ...

  2. mysql中数据库database、实例instance、会话session的关系

    1. No suitable driver found for http://127.0.0.1:3306/test jdbc_url错误,jdbc走自己的协议. 正确的路径应该是:jdbc:mysq ...

  3. 用命令查看Mysql中数据库、表的空间大小

    要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息)use information_schema;2.查询所有数据的大小:selec ...

  4. 修改mysql中数据库存储主路径

    一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开文件夹C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini文件 ...

  5. mysql中数据库与数据表编码格式的查看、创建及修改

    一.查看数据库编码格式 ? 1 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 ? 1 mysql> s ...

  6. 使用sql对比Mysql中数据库2个表结构

    比较两个数据表的结构 SELECT column_name, max( CASE WHEN table_name = 'table1' AND table_schema = 'db1' THEN 'Y ...

  7. MySQL中一些关于索引的知识点

    什么是索引 索引是一种数据结构,其作用就是用来提高数据查询效率.比较常用的比喻就是将其类比为书籍的目录.通过目录可以精确的找到某一章节的内容所在页. 在数据量较小的时候使用索引其实也没有什么意义,即使 ...

  8. MySQL中Identifier Case Sensitivity

    在MySQL当中,有可能遇到表名大小写敏感的问题.其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系.下面总结一下,有兴趣可以查看官方文档"Ide ...

  9. mysql切换数据库提示警告:Reading table information for completion of table and column names

    登录数据库后,选择数据库时发现以下提示, mysql> use testReading table information for completion of table and column ...

随机推荐

  1. [bzoj3436]小K的农场_差分约束

    小K的农场 bzoj-3436 题目大意:给定n个点,每个节点有一个未知权值.现在有m个限制条件,形如:点i比点j至少大c,点i比点j至多大c或点i和点j相等.问是否可以通过给所有点赋值满足所有限制条 ...

  2. Linux系统备份还原工具3(使用Clonezilla/再生龙对硬盘进行镜像和克隆,类似于Ghost)

    说明:经过实验验证,再生龙主要是适合在本机还原原大小的分区,不适合将镜像备份还原到不同大小分区,期间可能有很多莫名奇妙的问题出现.硬盘对拷和PXE网刻这些没发现什么不好.如果要还原到别的电脑镜像制作时 ...

  3. Windows Socket IO 模型

    http://www.cppblog.com/huangwei1024/archive/2010/11/22/134205.html

  4. 使用maven时,如何修改JVM的配置参数;maven命令执行时到底消耗多少内存?

    maven是使用java启动的,因此依赖JVM,那么如何修改JVM参数? MAVEN_OPTS 在系统的环境变量中,设置MAVEN_OPTS,用以存放JVM的参数,具体设置的步骤,参数示例如下: MA ...

  5. win7 多用户远程登录

    win7多用户远程登录 远程桌面服务使局域网(LAN)上的计算机可以连接到服务器(也称为远程计算机)并运行位于服务器上的程序.这可以只需要在1台机器上安装应用程序,其他机器共享使用.远程桌面连接使用远 ...

  6. 在GNS3中模拟交换机和PC

    一.目标:使用ios c3640交换模块,模拟交换机 二.使用VPCS模拟PC机 VPCS模拟PC机软件下载:   http://down.51cto.com/data/195524 步骤1.启动GN ...

  7. Cookie对象的特点

    1.存储少量不重要的数据2.存储在客户端的文本文件中(必须设置有效期,否则不被存储)3.安全性差4.存储的数据类型--字符串5.浏览器窗口无关,但与访问的站点相关6.具体特定的过期时间和日期7.在客户 ...

  8. [GraphQL] Query Local and Remote Data in Apollo Link State

    In this lesson, you will learn how to query local and remote data in Apollo Link State in the same c ...

  9. AES加密算法的C++实现

    摘要:作为新一代的加密标准,AES 旨在取代 DES(请看<DES加密算法的C++实现>),以适应当今分布式开放网络对数据加密安全性的要求.本文在分析了 AES 加密原理的基础上着重说明了 ...

  10. 编程算法 - 两个升序列的同样元素 代码(C)

    两个升序列的同样元素 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 两个升序列的同样元素, 须要使用两个指针, 依次遍历, 假设相等输出, 假设小于或 ...