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

上传人:m**** 文档编号:567626723 上传时间:2024-07-21 格式:PPT 页数:26 大小:1,020KB
返回 下载 相关 举报
数据库设计方法与原则ppt课件_第1页
第1页 / 共26页
数据库设计方法与原则ppt课件_第2页
第2页 / 共26页
数据库设计方法与原则ppt课件_第3页
第3页 / 共26页
数据库设计方法与原则ppt课件_第4页
第4页 / 共26页
数据库设计方法与原则ppt课件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

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

1、数据库设计方法与原则ppt课件Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望学习目标学习目标5.4.3.2.1.数据库设计概述数据库设计概述规范化规范化第一范式第一范式第二范式第二范式第三范式第三范式数据库设计概述数据库设计概述n良好的数据库设计能够:n节省数据的存储空间。n能够保证数据的完整性。n方便进行数据库应用系统的开发。n糟糕的数据库设计:n数据冗余、存储空间浪费。n内存空间浪费。n数据更新和插入的异常。数据库规范化数据库规范化在设计和操作维护数据库时,关键的步骤就是要确保

2、数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是“数据库规范化”。数据库规范化数据库规范化CREATETABLEStudent(SNoINTNOTNULL,-学生编号NameVARCHAR(200),-学生姓名ClassNameVARCHAR(200),-班级名称CourseNameVARCHAR(20),-课程名称CourseScoreFLOAT -课程分数TeacherNameVARCHAR(20)-老师名字)此表的设计是否有缺点?数据库规范化数据库规范化v内

3、容:SNo|Name|ClassName|CourseName|CourseScore|TeacherName1学生11班C语言85MrLi1学生11班C#设计98MrLeng2学生21班C语言80MrLi3学生32班C语言75MrLiv缺点:n数据冗余、存储空间浪费。n内存空间浪费。n数据更新和插入的异常。数据库规范化数据库规范化v设计数据库的一般步骤:收集信息。抽取对象。抽取每个对象的属性。考虑对象之间的关系。绘制E-R图。将E-R图转换为表格。最后应用三大范式规范化表格。数据库规范化数据库规范化v收集信息(与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务)BBS论坛的基本功能

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

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

6、一门课”等等。它也可以是虚拟的,比如说“老师与学校的关系”。属性:实体所具有的某一特性,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。使用范式使用范式v数据库基本概念回顾:元组:表中的一行就是一个元组。分量(没行中的列属性):元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。码(每行的主外键):表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。使用范式使用范式v数据库基本概

7、念回顾:主属性(主键或外键列):一个属性只要在任何一个候选码中出现过,这个属性就是主属性。非主属性(非主外键列):与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。外码(外键列):一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。课堂示例一课堂示例一v范式(范式(6个)个)范式可以理解为一种规范等级,范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式第一范式第一范式v第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。v第一范式的特点:主键不能为空。主键不能重复。字段不可以再分。v下表是否满足第一范式?S

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

9、二范式OrderID|ProductID|UnitPrice|Discount|Quantity|ProductName11252580%10帽子帽子帽子帽子21252585%5帽子帽子帽子帽子32500100%2衣服说明:UnitPrice与ProductName只依赖于ProductID,没有完全依赖于主键OrderId,使得产生的冗余重复。第二范式第二范式正确的设计:将冗余部分独立成表正确的设计:将冗余部分独立成表产品信息:产品信息:产品信息:产品信息:ProductID|UnitPrice|ProductName12525帽子帽子帽子帽子2100100鞋子鞋子鞋子鞋子3500 500

10、衣服衣服衣服衣服订单信息:订单信息:订单信息:订单信息:OrderID|ProductID|Discount|Quantity1180%102185%532100%2第三范式第三范式v第三范式(3NF):非主键列必须直接依赖于主键n要求:(1)满足2NF(2)非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键的情况。n是否满足第三范式StudyNo|Name|Sex|Email|bounsLevel|bouns40901johnM良良良良$1000$100040902maryF差差差差$600$600说明:这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖。第三范式第三范式正确的设计:将间接传递的部分独立成表学生表:StudyNo|Name|Sex|Email|BouunsNo20040901johnM120040902maryF2等级表:BounsNo|BounsLevel|Bouns1优秀$10002良$600

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号