数据库设计
简介
简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选的数据库管理系统,为这个业务系统构造出最优的数据库存储模型.并建立好数据库中的表结构及表与表之间的关联关系的过程.使之能有效的对应应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问.
-
常用关系型数据库:mysql、Oracle、SQL server、PgSql
-
常用非关系型数据库:Mongo、Memcache、Redis
数据库设计作用
优良的设计 | 糟糕的设计 |
---|---|
减少数据冗余 | 存在大量数据冗余 |
避免数据维护异常 | 存在数据插入,更新,删除异常 |
节约存储空间 | 浪费大量存储空间 |
高效的访问 | 访问数据低效 |
维护调整方便 | 较难调整维护 |
数据库设计步骤
-
需求分析
-
数据库是什么
-
数据库有哪些属性
-
数据库和属性各自的特点有哪些
-
-
逻辑设计
- 使用ER图对数据库进行逻辑建模
-
物理设计
- 根据使用的数据库自身的特点把逻辑设计转换为物理设计
-
维护优化
-
新需求进行表建立
-
索引优化
-
大表拆分
-
需求分析
1.了解系统中所要存储的数据
2.了解数据的存储特点
3.了解数据的生命周期
需求分析要搞清以下问题
-
实体及实体之间的关系(1对1,1对多,多对多)
-
实体所包含的属性有什么
-
哪些属性或属性的组合可以唯一标识一个实体
实例演示需求分析过程
-
以小型电子商务网站为例,包含的模块:
-
用户模块
-
包括属性:用户名、密码、电话、邮箱、身份证号、地址、姓名、昵称
-
可选唯一标识属性:用户名、身份证、电话
-
存储特点:随系统上线时间逐渐增加,需要永久存储;在物理设计中对用户模块考虑分库和分表的问题
-
-
商品模块
-
包括属性:商品编码、商品名称、商品描述、商品品类、供应商名称、重量、有效期、价格…
-
可选唯一标识属性:(商品名称、供应商名称组合)、(商品编码)
-
存储特点:对于下线商品可以归档存储,不在销售的商品可以迁移到其它表中,使商品表保持小数量级
-
-
订单模块
-
包括属性:订单号、用户姓名、用户电话、收货地址、商品编号、商品名称、数量、价格、订单状态、支付状态、订单类型
-
可选唯一标识属性:订单号
-
存储特点:永久存储(分表、分库存储)
-
-