数据库设计详细教程上篇(数据库设计流程)

MySQL数据库作为数据存储的介质为应⽤系统提供数据存储的服务,我们如何设计出合 理的数据库、数据表以满⾜应⽤系统的数据存储需求呢?

  • ⻋库:是⽤来存放⻋辆的,⻋库都需要划分⻋位,如果不划分⻋位,⻋⼦杂乱⽆章的存放可能会导致⻋辆堵塞,同时也可能造成场地的浪费——有限的场地能够停放最多的⻋辆,同时⽅便每⼀辆⻋的出⼊。

  • 数据库:是⽤来存放数据的,我们需要设计合理的数据表——能够完成数据的存储,同时能够⽅便的提取应⽤系统所需的数据。

img

一、 数据库设计流程

前言:数据库是为应⽤系统服务的,数据库存储什么样的数据也是由应⽤系统来决定的。 当我们进⾏应⽤系统开发时,我们⾸先要明确应⽤系统的功能需求——软件系统的需求 分析

1. 根据应⽤系统的功能,分析数据实体(实体,就是要存储的数据对象)

比如我们喜闻乐见的电商系统它的实体通常有:商品、订单、用户......

img

再比如我们上学时的教务管理系统:学生、课程、成绩......

2. 提取实体的数据项(数据项,就是实体的属性)

比如商品正常情况下有的实体属性:商品名称、商品信息、商品价格.....

再比如用户用户名、用户id、用户密码.....

3. 根据数据库设计三范式规范视图的数据项 检查实体的数据项是否满⾜数据库设计三范式

如果实体的数据项不满⾜三范式,可能会导致数据的冗余,从⽽引起数据维护困难、破坏数据⼀致性等问题

第⼀范式 :要求数据表中的字段(列)不可再分

第二范式 :不存在⾮关键字段对关键字段的部分依赖

第三范式 :不存在⾮关键字段之间的传递依赖

4. 绘制E-R图 (实体关系图,直观的展示实体与实体之间的关系)

实体关系图又称E-R模型图,是一种提供了实体,属性和联系的方法,用来描述现实世界的概念模型。通俗点讲就是,当我们理解了实际问题的需求之后,需要用一种方法来表示这种需求,概念模型就是用来描述这种需求。

基础元素

1) 实体 实际问题中客观存在的并且可以相互区别的事物称为实体。实体是现实世界中的对象,可以具体到人,事,物。可以是学生,教师,图书馆的书籍。

2)属性 实体所具有的某一个特性称为属性,在E-R图中属性用来描述实体。比如:可以用姓名、年龄、性别来描述人。

3) 实体集 具有相同属性的实体的集合称为实体集。例如:全体学生就是一个实体集,(200170901,爱坤,男,1999/12/12)是学生实体集中的一个实体。

4) 键 在描述实体集的所有属性中,可以唯一标识每个实体的属性称为键。键也是属于实体的属性,作为键的属性取值必须唯一且不能“空置”。

5) 实体型 具有相同的特征和性质的实体一定有相同的属性,用实体名及其属性名集合来抽象和刻画同类实体称为实体型,其表示格式为:实体名(属性1,属性2,……)

6)联系 世界上任何事物都不是孤立存在的,事物内部和事物之间都有联系的,实体之间的联系通常有3种类型:一对一联系,一对多联系,多对多联系。

事物之间的关系

1)一对一联系(1:1):

 对于实体集A中每一个实体,实体集B中最多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A和实体集B具有一对一联系。

  一般来说,一个班级只有一个正班长,且一个班长只在一个班中任职,所以我们说班长和班级之间具有一对一联系。

(2)一对多联系(1:n):

 实体集A中每一个实体,实体集B中有n个实体(n‎ ≥ 0)与之联系,反之,B中的每一个实体,实体集A中至多只有一个与之联系,则称实体集A与实体集B具有一 对多联系。

 一般来说,一个班级中有若干个学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多的联系。

(3)多对多联系(m:n):

 因该不难推测,多对多就是实体集A中每一个实体,在实体集B中有n(n ‎≥ 0)个与之联系,反正实体集B中每一个实体,A中也有m(m ‎≥ 0)个实体与之联系。我们则称A与B具有多对多联系。

 一门课程同时有若干个学生选修,一个学生一次可以选择若干门课程,所以课程与学生之间的联系属于多对多的联系。

E-R图的绘制

基本要素的表示方法: 长方形——实体 椭 圆——属性 菱 形——联系 说明:在相应的框内要写上实体名、属性名或联系名。

绘制方法: 实体与属性用直线相连 实体与联系用直线相连 联系与属性用直线相连 同时在菱形与矩形的连线上标上联系的类型。 (1:1、1:n、m:n)

5. 数据库建模

  • 三线图进⾏数据表设计

  • PowerDesigner

  • PDManer

我平时是用PDManer,别问为什么不用PowerDesigner因为我菜还是PDManer简洁适合我这个小白

 

6. 建库建表 编写SQL指令创建数据库、数据表

这个我相信各位应该非常熟练了吧!

img

DROP TABLE IF EXISTS SIMS_COLLEGE;
CREATE TABLE SIMS_COLLEGE(
    `COLLEGE_ID` VARCHAR(32) NOT NULL   COMMENT '学院ID' ,
    `COLLEGE_NAME` VARCHAR(90)    COMMENT '学院名称' ,
    `SHORT_NAME` VARCHAR(90)    COMMENT '学院简称' ,
    `INTRO` VARCHAR(900)    COMMENT '学院介绍' ,
    `PROFESSION_NUMBER` INT    COMMENT '专业个数' ,
    `STUDENT_NUMBER` INT    COMMENT '学生人数' ,
    `PRESIDENT` VARCHAR(90)    COMMENT '院长' ,
    `TENANT_ID` VARCHAR(32)    COMMENT '租户号' ,
    `REVISION` INT    COMMENT '乐观锁' ,
    `CREATED_BY` VARCHAR(32)    COMMENT '创建人' ,
    `CREATED_TIME` DATETIME    COMMENT '创建时间' ,
    `UPDATED_BY` VARCHAR(32)    COMMENT '更新人' ,
    `UPDATED_TIME` DATETIME    COMMENT '更新时间' ,
    PRIMARY KEY (COLLEGE_ID)
)  COMMENT = '学院';

7. 添加测试数据SQL测试

太多太长了我懒得写,大家脑补一下。

img

### 回答1: 《数据库设计开发规范-阿里 pdf》是阿里巴巴公司数据技术中心所发布的一份数据库设计开发规范。该规范内容丰富、系统完备,具有一定的指导意义。 该规范首先明确了数据库设计开发应着重考虑的三个方面:数据建模、物理设计SQL编写规范。在数据建模方面,规范强调了规范化设计、模型可视化等关键要素,提出了详细的模型设计规范;在物理设计方面,则从数据存储、索引设计、性能优化等角度,提出了一系列具体的指导建议;而在SQL编写规范方面,规范涵盖了SQL语法、性能、安全性等多个方面,对SQL优化提出了具体的操作建议,使得开发人员能够高效地编写SQL语句。 此外,规范还提出了数据字典、版本管理、测试等方面的指导意见,保障了数据库开发的质量和可维护性。特别是在数据字典方面,规范强调了数据字典的必要性,提供了详细数据字典设计原则和实施建议,为开发人员提供了有价值的参考。 总之,《数据库设计开发规范-阿里 pdf》提供了一套完整的数据库设计开发指南,让开发人员可以根据规范实际操作,提高开发效率和代码质量。虽然该规范是阿里巴巴公司的内部规范,但它的理念和思想值得其他公司、组织和开发者借鉴,从而在数据库开发方面得到提升。 ### 回答2: 阿里巴巴提出的《数据库设计开发规范》pdf是一份非常规范并且具有实际指导意义的文档,旨在帮助开发人员在数据库设计和开发过程中能够遵循一定的规范,提高代码质量和可维护性。 规范主要从以下几个方面入手: 1.数据库命名规范:包括数据库、字段等的命名规范,遵循易读易懂、有意义而不冗长的原则,以便更好的理解和维护数据库。 2.数据类型规范:包括是否使用自增ID、数据类型的选择、字符集等的规范,以满足实际业务需求,减少存储空间和提高性能。 3.索引规范:包括索引的创建、使用、维护等的规范,以提高查询性能和减少额外的开销。 4.SQL语句规范:包括SQL语句编写、注释、执行等的规范,以提高开发效率和代码质量。 5.数据备份和恢复规范:包括数据备份、恢复策略等的规范,以保证数据的完整性和可靠性。 在实际开发中,遵循这些规范可以帮助开发人员降低错误率、提高工作效率、节省开发成本和提高系统的可维护性。因此,《数据库设计开发规范》pdf是一份非常值得推广和使用的文档。 ### 回答3: 阿里巴巴发布的《数据库设计开发规范》是针对数据库设计开发人员的一份指导性材料,主要包含数据库设计和开发规范、编码规范、命名规范、性能指导、错误处理、测试和版本管理等方面内容。 首先,规范的设计和开发可以确保数据结构的一致性和可用性,避免因为设计规范不当或开发人员的不规范行为导致数据质量下降或无法支持业务需求。 其次,编码规范、命名规范和错误处理等方面规范的实施可以减少代码中的错误和问题,提高代码质量和可维护性。 此外,该规范还提供了性能指导,包括了如何优化 SQL 查询、如何优化索引以及如何分析性能问题等。这些指导可以让开发人员更好地优化数据库,以达到更好的性能现。 最后,该规范还包含了测试和版本管理等方面的指导,以确保每一次修改都是正常的,并减少因错误导致的不可逆的损失。 总的来说,阿里巴巴发布的《数据库设计开发规范》是一个非常有价值的指导性材料,可以让数据库设计和开发人员遵循统一的标准和规范,提高数据库的质量和性能现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值