如何独立进行数据库设计详解及基本的知识概念

来源:互联网 发布:索菲亚机器人 知乎 编辑:程序博客网 时间:2024/06/05 00:33
什么是数据库设计?简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选用的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.在适当的时候对表进行水平拆分或垂直拆分可以使用第三方工具对数据字典进行维护 
原创粉丝点击