您好,欢迎访问三七文档
第一章数据库设计课程回顾数据库基本操作建库建表加约束创建登录帐户基本的数据操纵语句有增(INSERT)删(DELETE)改(UPDATE)查(SELECT)常用的聚合函数有MAX、MIN、COUNT、AVG表连接分为内连接、左外连接、右外连接、全连接本章内容数据库设计的必要性数据库设计的步骤E-R图数据规范化本章目标了解数据库设计的步骤掌握如何绘制数据库的E-R图能够使用三大范式规范数据库设计1.数据库规范化设计的必要性需要规范化的设计吗?(Y/N)需要规范化的设计吗?(Y/N)数据库比较复杂时,需要进行规范化的设计1.数据库规范化设计的必要性悉尼歌剧院美轮美奂的设计央视新大楼糟糕的设计差的设计:数据冗余、存储空间浪费内存空间浪费数据更新和插入的异常好的设计:节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发2.数据库设计的步骤物理设计数据库设计的六个阶段需求分析逻辑结构设计概念设计实施运行和维护贯穿于整个SDLC2.数据库设计的步骤收集信息标识实体标识实体的属性标识实体之间的关系现实世界概念模型物理数据库数据库设计有4个步骤2.1收集信息与客户进行交流、坐谈,充分理解数据库需要完成的任务和功能HR数据库要求一家建筑设计公司在3个城市都设有办事处。公司准备快速扩大规模,划分了10个部门,每个部门都有部门负责人。为了招聘合适的新员工,人事部门规划了70种员工需要具备的技能,为将来人事管理作好准备。员工被招进时,每一种技能的专业等级都被确定2.1收集信息收集信息时,从宏观上确定数据库要完成的任务招聘员工解雇员工管理员工个人信息管理公司所需的技能信息管理哪位员工有哪些技能管理部门信息管理办事处信息2.2标识实体标识实体就是要标识对象。对象一般是名词,一个对象只描述一个事情,不可重复描述办事处(Office)部门(Department)员工(Employee)技能(Skill)HR标识的实体2.3标识实体的属性实体属性最终会成为表中的列【办事处】:办事处编号办事处地址办事处电话【部门】:部门编号部门名称负责人【技能】:技能编号技能名称详细描述【员工】:员工编号员工姓名员工部门员工办事处家庭住址联系电话出生日期员工技能2.4标识实体之间的关系员工与部门之间存在关系,需要知道员工属于哪个部门员工与办事处之间也存在关系,需要知道员工属于哪个办事处员工与技能之间存在关系,每个员工都拥有什么样的技能,以及技能的等级关系是通过业务规则分析出来的小结2数据库设计分为哪几个阶段?数据库设计有哪几个步骤?3.E-R图E-R图(Entity-Relationship)EntityAttributeRelationshipAssociateEntityAssociateAttribute可使用Visio、PowerDesigner、RetionalRose等工具进行绘制3.1E-R模型映射基数(一对一)1:1XYEmployee归属于DepartmentX中的一个实体最多与Y中的一个实体相关联E-R模型映射基数(一对多)1:NXYOffice拥有EmployeeX中的一个实体可以与Y中的任意个数的实体相关联YYE-R模型映射基数(多对一)N:1XYEmployee属于OfficeX中的一个实体最多与Y中的一个实体关联,但Y中的一个实体可以与X中的任意数量的实体关联XXE-R模型映射基数(多对多)M:NXYEmployee拥有/属于SkillX中的一个实体可以与Y中的任意数量的实体关联,反之,Y中的一个实体也可以与X中的任意数量的实体关联XXYY3.2绘制E-R图E-R图中实体之间使用有箭头的直线连接,箭头指向的一方是被关联的一方。属性与实体之间使用无箭头的直线连接3.3将E-R图转换为数据库的表将实体转换为对应的表,将属性转换为对应的列标识每个表的主键。对于没有主键列存在的表,可以添加标识列Office(办事处)表:OfficeCode(办事处编号,主键)OfficeAddress(办事处地址)OfficeTelephone(办事处电话)Department(部门)表:DeptId(部门编号,主键)DeptName(部门名称)Principal(部门负责人)Employee(员工)表:EmpNo(员工编号,主键)EmpName(员工姓名)EmpAddress(住址)EmpPhone(电话)Birthday(生日)HireDate(就职日期)Deptment(所属部门)Office(所属办事处)Skill(拥有的技能)Skill(技能)表:SkillId(技能编号,主键)SkillName(技能名称)SkillDesc(技能详细描述)小结3E-R图由哪几部分组成?映射基数有哪几种?每一种的含义是什么?4.数据规范化不同的人设计同一个数据库,因为思考的角度不同,设计时标识的实体和实体的属性可能会不同,要找出一个最佳方案或者最优设计,需要使用一些规则来对数据库的设计进行规范化。这些规则就是数据库设计中的范式(NormalFormate)需要有统一规则来进行规范化!4.1数据库设计中的三大范式第一范式(1stNF-FirstNormalFromate)第二范式(2ndNF-SecondNormalFromate)第三范式(3rdNF-ThirdNormalFromate)4.2应用三大范式规范化数据库的设计第一范式(1NF):确保每一列的原子性。如果每列都是不可再分的最小单位,即满足第一范式EmpNoEmpNameE001JamesWhiteEmpNoFirstNameLastNameE001JamesWhite应用三大范式规范化数据库的设计第二范式(2NF):满足了第一范式,并且确保每列都与主键相关,即满足第二范式。第二范式处理冗余数据的删除问题。当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式。学号姓名年龄课程成绩学分学号姓名年龄课程学分学号课程成绩应用三大范式规范化数据库的设计第三范式(3NF):满足了第二范式,并且确保每列都与主键直接相关而不是间接相关,则满足第三范式EmpNoEmpNameAddressSkillTelephoneE001JamesNewYork5stStreat.108#501SoftTesting02-786-2435EmpNoEmpNameAddressTelephoneE001JamesNewYork5stStreat.108#50102-786-2435应用三大范式规范化数据库的设计经过规范化以后的HR数据库小结4范式是数据库设计时规范化的形式第一范式(1NF)要确保每一列的原子性。如果每列都是不可再分的最小单位,即满足第一范式第二范式(2NF):满足了第一范式,并且确保每列都与主键相关,即满足第二范式。第二范式处理冗余数据的删除问题。当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式第三范式(3NF):满足了第二范式,并且确保每列都与主键直接相关而不是间接相关,则满足第三范式本章总结在项目的需求阶段,数据库设计需要收集信息、标识实体、标识实体的属性、标识实体之间的关系在概要设计阶段,绘制E-R图在详细设计阶段,将E-R图转换为数据库表,并且使用三大范式来规范化表的设计数据规范化是指将数据库精简为最简洁的形式从表中除去任何冗余的列标识出所有依赖于其他数据的数据
本文标题:数据库设计
链接地址:https://www.777doc.com/doc-3665442 .html