如何独立进行数据库设计详解及基本的知识概念
2017-06-25 23:40
561 查看
什么是数据库设计? 简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选用的DBMS(数据库管理系统),为 这个业务系统构造出最优的数据存储模型。并建立好的数据库中的表结构及表与表之间的关联关系的过程。 使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问。 数据库设计的步骤 需求分析--逻辑设计--物理设计--维护优化 1.需求分析 分析模块属性 可选唯一标识属性 存储特点 eg:如注册 包括属性:用户名、密码、电话、邮箱、身份证号、地址、姓名、昵称 可选唯一标识属性:用户名、身份证、电话 存储特点:随系统上线时间逐渐增加,需要永久存储 2.逻辑设计 第一范式--二维表 定义由行和列组成的 数据库表中所有字段都是单一属性不可再分由基本数据类型所构成。 第二范式--所有单关键字段的表都符合每二范式 数据库的表中不存在非关键字段对任一选关键字段的部分函数依赖。 eg:商品名称 价格 重量 供应商名称 供应商电话 可以拆分成 商品表 和供应商表 以及关联俩个表的商品供应商ID表 第三范式 如果数据表中不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式 eg:商品名称 价格 分类 分类描述 分类关联着分类描述不符合第三范式 拆分为 商品表 分类表 关联商品和分类ID表 第三范式扩展--BC范式 在第三范式的基础之上,数据库表中如果不村子任何字段对任一候选关键字段的传递函数依赖则符合BC范式 也就是说复合关键字,则复合关键字之间也不能存在函数依赖关系。 eg:供应商 商品ID 供应商联系人 商品数量 饮料一厂 1 张三 10 饮料二厂 1 李四 20 供应商 -> 供应商联系人 供应商联系人->供应商 如果饮料二厂刚签完合同没有提供商品 则看不到二厂的信息 联系人等 拆分成 供应商商品表 和 供应商联系人表 3.物理设计 建立数据库表结构 选择数据库eg: oracle mysql sqlserver 定义数据库、表及字段的命名规范 建表建库选择字段类型 范式化设计 选择数据库考虑成本 mysql 开源数据库 适合互联网项目 oracle sqlserver商业数据库 适合企业项目 如金融类项目 表及字段命名规则 1.可读性原则 2.表意性原则 3.长命原则 eg: pwd password 如何选择主键? 1.区分业务主键和数据库主键 业务主键进行表与表之间关联数据库主键为了优化数据库存储 2.根据数据库的类型,考虑主键是否要顺序增长 有些数据库是按主键的顺序逻辑存储的 可以设置自动增长 3.主键字段类型所占空间要尽可能的小 对于使用聚集索引方式存储的表,每个索引后都会附加主键信息 外键 1.降低数据导入恶效率 2.增加维护成本 3.虽然不建议使用外键约束,但是相关联的列上一定要建立索引 触发器 1.降低数据导入的效率 2.可能会出现意想不到的数据异常 3.使业务逻辑变得复杂 严禁使用预留字段 后期维护成本高 4.维护优化 维护和优化要做什么? 1.维护数据字典 2.维护索引 3.维护表结构 4.在适当的时候对表进行水平拆分或垂直拆分 可以使用第三方工具对数据字典进行维护
相关文章推荐
- SEO基本概念:如何进行关键词分析?
- 进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开。
- 开发人员如何有效地进行数据库设计
- 数据库设计基本知识
- 开发人员如何有效的进行数据库设计
- mongodb 3.2 实战(一)非关系型数据库设计,如何进行mongo的数据库设计?
- -数据库速成教程-(一) 基础知识与基本概念
- [数据库设计]如何合理和有效的进行数据库设计
- 如何进行数据库设计
- MySQL对数据库数据进行复制的基本过程详解
- 面向对象分析设计中如何进行数据库设计
- 【自考】数据库系统原理(二)——详解(数据库系统基本概念)
- 开发人员如何有效的进行数据库设计
- mysql详解--数据库基本概念
- [ZT]如何使用Erwin进行基于MYSQL的数据库设计
- 如何使用ERwin进行基于Mysql的数据库设计
- DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
- DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
- 数据建模与数据库设计——基本概念
- 基础知识|数据库的一些基本概念