数据库设计方法与原则ppt课件.ppt

上传人:本田雅阁 文档编号:3185267 上传时间:2019-07-22 格式:PPT 页数:26 大小:1.01MB
返回 下载 相关 举报
数据库设计方法与原则ppt课件.ppt_第1页
第1页 / 共26页
数据库设计方法与原则ppt课件.ppt_第2页
第2页 / 共26页
数据库设计方法与原则ppt课件.ppt_第3页
第3页 / 共26页
数据库设计方法与原则ppt课件.ppt_第4页
第4页 / 共26页
数据库设计方法与原则ppt课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据库设计方法与原则ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库设计方法与原则ppt课件.ppt(26页珍藏版)》请在三一文库上搜索。

1、数据库设计方法与原则 软件技术系 冷亚洪,学习目标,5.,4.,3.,2.,1.,数据库设计概述,规范化,第一范式,第二范式,第三范式,数据库设计概述,良好的数据库设计能够: 节省数据的存储空间。 能够保证数据的完整性。 方便进行数据库应用系统的开发。 糟糕的数据库设计: 数据冗余、存储空间浪费。 内存空间浪费。 数据更新和插入的异常。,数据库规范化,在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。 正确进行表设计的正式名称就是“数据库规范化”。

2、,数据库规范化,CREATE TABLE Student ( SNo INT NOT NULL, -学生编号 Name VARCHAR(200), -学生姓名 ClassName VARCHAR(200), -班级名称 CourseName VARCHAR(20), -课程名称 CourseScore FLOAT -课程分数 TeacherName VARCHAR(20) -老师名字 ) 此表的设计是否有缺点?,数据库规范化,内容: SNo | Name | ClassName | CourseName | CourseScore | TeacherName 1 学生1 1班 C语言 85 M

3、r Li 1 学生1 1班 C#设计 98 Mr Leng 2 学生2 1班 C语言 80 Mr Li 3 学生3 2班 C语言 75 Mr Li 缺点: 数据冗余、存储空间浪费。 内存空间浪费。 数据更新和插入的异常。,数据库规范化,设计数据库的一般步骤: 收集信息。 抽取对象。 抽取每个对象的属性。 考虑对象之间的关系。 绘制E-R图。 将E-R图转换为表格。 最后应用三大范式规范化表格。,数据库规范化,收集信息(与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务) BBS论坛的基本功能: 用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息; 用户发贴,后台数据库需要

4、存放贴子相关信息,如贴子内容、标题等; 论坛版块管理:后台数据库需要存放各个版块信息,如版主、版块名称、贴子数等;,数据库规范化,标识对象(标识数据库要管理的关键对象或实体) 实体一般是名词: 用户:论坛普通用户、各版块的版主。 用户发的主贴。 论用户发的跟贴(回贴)。,数据库规范化,标识每个实体的属性(Attribute),数据库规范化,标志对象之间的关系(Attribute) 跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴。 版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况。 主贴和版块有主从关系:需要表明发贴是属于哪个版块的。 跟贴和版块有主从关系:需要

5、表明跟贴是属于哪个版块的。,数据库规范化,绘制ER图,数据库规范化,将ER图装换为表格 将各实体转换为对应的表,将各属性转换为各表对应的列。 标识每个表的主键列,需要注意的是:没有主键的表添加ID编号列,它没有实际含义,用于做主键或外键 在表之间建立主外键,体现实体之间的映射关系 。,数据库规范化,将ER图装换为表格,数据库规范化,将ER图装换为表格,使用范式,数据库基本概念回顾: 实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。它也可以是虚拟的,比如说“老师与学校的关系”。 属性:实体所具有的某一特性,比如说,“性别”是“人”的一个属性。在关系数据库

6、中,属性又是个物理概念,属性可以看作是“表的一列”。,使用范式,数据库基本概念回顾: 元组:表中的一行就是一个元组。 分量(没行中的列属性) :元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。 码(每行的主外键) :表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。,使用范式,数据库基本概念回顾: 主属性(主键或外键列):一个属性只要在任何一个候选码中出现过,这个属性就是主属性。 非主属性(非主外键列) :与上面相反,没有在

7、任何候选码中出现过,这个属性就是非主属性。 外码(外键列) :一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。,课堂示例一,范式(6个) 范式可以理解为一种规范等级,范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式,第一范式,第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 第一范式的特点: 主键不能为空。 主键不能重复。 字段不可以再分。 下表是否满足第一范式? StudyNo | Name | Sex | Contact 20040901 john Male Email:,phone:222456 20

8、040901 mary Famale Email: phone:123455,违反第一范式的示例,以上的表格是否又满足第一范式呢?,课堂示例一,注意:这两种情况都不满足第一范式。不满 足第一范式的数据库,不是关系数据库!所 以,我们在任何关系数据库管理系统中,做 不出这样的“表”来。,第二范式,第二范式(2NF):非主键列完全依赖主键列。 要求 (1)满足1NF (2)必须有一个主键 (3)没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 是否满足第二范式 OrderID | ProductID | UnitPrice | Discount | Quantity | Pro

9、ductName 1 1 25 80% 10 帽子 2 1 25 85% 5 帽子 3 2 500 100% 2 衣服,说明:UnitPrice与ProductName只依赖于ProductID,没有完全依赖于 主键OrderId,使得产生的冗余重复。,第二范式,正确的设计:将冗余部分独立成表,产品信息: ProductID | UnitPrice | ProductName 1 25 帽子 2 100 鞋子 3 500 衣服,订单信息: OrderID | ProductID | Discount | Quantity 1 1 80% 10 2 1 85% 5 3 2 100% 2,第三范式

10、,第三范式(3NF):非主键列必须直接依赖于主键 要求: (1)满足2NF (2)非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。 是否满足第三范式 StudyNo | Name | Sex | Email | bounsLevel | bouns 40901 john Male 良 $1000 40902 mary Famale 差 $600,说明:这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖。,第三范式,正确的设计:将间接传递的部分独立成表 学生表: StudyNo | Name | Sex | Email | BouunsNo 20040901 john Male 1 20040902 mary Famale 2 等级表: BounsNo | BounsLevel | Bouns 1 优秀 $1000 2 良 $600,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1