数据库设计课件_第1页
数据库设计课件_第2页
数据库设计课件_第3页
数据库设计课件_第4页
数据库设计课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库的设计数据库的设计总结总结本章任务q学习设计数据库的步骤学习设计数据库的步骤q绘制学生选课系统数据库的绘制学生选课系统数据库的E-R图图q把学生选课系统数据库的把学生选课系统数据库的E-R图转化为表图转化为表q用三大范式规范数据库设计用三大范式规范数据库设计本章目标q如何标识实体对象如何标识实体对象q如何画如何画E-R图图q如何将如何将E-R图转换为数据表图转换为数据表q数据规范化设计数据规范化设计三大范式三大范式学生选课系统为什么需要数据库设计q复杂的数据库需要规范化设计。复杂的数据库需要规范化设计。什么是数据库设计现实世界现实世界信息世界信息世界数据(电脑)世界数据(电脑)世界数据库

2、设计的步骤数据库设计第一步:标识实体q数据库中的数据对象,称为实体。数据库中的数据对象,称为实体。q实体有一个或多个属性。实体有一个或多个属性。q在需求分析阶段,需要知道要在数据库中存储哪在需求分析阶段,需要知道要在数据库中存储哪些信息。些信息。q数据库设计的第一步:标识实体。数据库设计的第一步:标识实体。标识实体q标识学生选课系统中的实体对象标识学生选课系统中的实体对象学生信息学生信息教员信息教员信息通知通知课程信息课程信息标识实体的属性q学生信息学生信息q学号、姓名、性别、年龄、班级学号、姓名、性别、年龄、班级q教员信息教员信息q工号、姓名、性别、年龄、教龄、职称工号、姓名、性别、年龄、教

3、龄、职称q课程信息课程信息q课程号、名称、学时、学分课程号、名称、学时、学分q通知通知q标题、内容标题、内容实体之间的关系q大部分实体并不是孤立的,它们之间存在着各种关大部分实体并不是孤立的,它们之间存在着各种关系。系。丈夫与妻子之间丈夫与妻子之间一对一的关系一对一的关系班级与学生之间班级与学生之间一对多的关系一对多的关系学生与课程之间学生与课程之间多对多的关系多对多的关系学生选课系统中各实体之间的关系学生信息学生信息教员信息教员信息课程信息课程信息一名学生可以选修多门课程一名学生可以选修多门课程一门课程由一个或多名学生选修一门课程由一个或多名学生选修一名教员讲授一至多门课程一名教员讲授一至多

4、门课程一门课程只能由一名教员讲授一门课程只能由一名教员讲授数据库设计第二步:绘制ER图qE-R图图(Entity Relationship Diagram),中文称,中文称为为“实体实体-关系图关系图”,提供了表示实体、属性和,提供了表示实体、属性和关系的图形符号。关系的图形符号。实体名实体名属性名属性名关系名关系名实体表示实体表示关系表示关系表示属性表示属性表示学生选课系统中的ER图ER图如何表示实体之间的关系ER图如何表示实体之间的关系学生选课系统完整的ER图课堂练习q画出仓库画出仓库-商品的商品的E-R图图q提示:仓库的属性包括:地点、面积等;商品的属性提示:仓库的属性包括:地点、面积等

5、;商品的属性包括:商品名称、价格等。包括:商品名称、价格等。n1仓库商品存放地点面积仓库号商品号价格数量商品名数据库设计第三步:ER模型转换为数据表q 将将E-R模型转换为数据表的基本原则:模型转换为数据表的基本原则:1. 将各将各实体实体转换为对应的转换为对应的表表,将各,将各属性属性转换为各表对应转换为各表对应的的列列。2. 标识每个表的标识每个表的主键列主键列,需要注意的是:没有主键的表,需要注意的是:没有主键的表要添加要添加ID编号列,它没有实际含义,用于做主键。编号列,它没有实际含义,用于做主键。 例如:通知数据表中除了标题、内容外,还应加一个例如:通知数据表中除了标题、内容外,还应

6、加一个ID主键列,用以区分每条记录。主键列,用以区分每条记录。3. 如果实体之间有某种如果实体之间有某种关系关系,还要在表中添加,还要在表中添加外键外键。学生选课系统中各实体转换为数据表如何将ER图中的关系转换为数据表q 如果实体如果实体A和实体和实体B之间存在一对一的关系,将之间存在一对一的关系,将E-R图转换为数据表有以下三种方法:图转换为数据表有以下三种方法:1. 把把A实体的主关键字实体的主关键字加入到加入到B实体转换后的数据实体转换后的数据表中作为外键表中作为外键,如果关系有属性也一并加入。,如果关系有属性也一并加入。2. 把把B实体的主关键字实体的主关键字加入到加入到A实体转换后的

7、数据实体转换后的数据表中作为外键表中作为外键,如果关系有属性也一并加入。,如果关系有属性也一并加入。3. 直接将直接将关系转换为数据表关系转换为数据表,表中包含两个实体的主,表中包含两个实体的主关键字,如果关系有属性也一并加入。关键字,如果关系有属性也一并加入。一对一的关系转换为数据表丈夫(身份证号,姓名,职业,出生日期)丈夫(身份证号,姓名,职业,出生日期)妻子(身份证号,姓名,职业,出生日期,妻子(身份证号,姓名,职业,出生日期,丈夫身份证号丈夫身份证号,子女数子女数,婚龄婚龄)一对多的关系转换为数据表q如果实体如果实体A和实体和实体B之间是一对多的关系,关系转之间是一对多的关系,关系转换

8、方法为:换方法为:q可将可将“一方一方”实体的主关键字实体的主关键字纳入纳入“n方方”实体实体转换后的数据表中作为转换后的数据表中作为“外部关键字外部关键字”,同时把,同时把关系的属性也一并其中。关系的属性也一并其中。 一对多中的关系转换为数据表班级(班级编号、班级名称)班级(班级编号、班级名称)学生(学号、姓名、性别、年龄、学生(学号、姓名、性别、年龄、班班级编号级编号)多对多的关系转换为数据表q 如果实体如果实体A和实体和实体B之间是多对多的关系,必须按之间是多对多的关系,必须按以下原则转换化数据表:以下原则转换化数据表:1. 必须对必须对“关系关系”单独建立一个数据表。单独建立一个数据表

9、。2. 该数据表的属性中至少要包括实体该数据表的属性中至少要包括实体A和实体和实体B的主关键的主关键字作为外键,并且如果关系有属性,也要归入这个关系字作为外键,并且如果关系有属性,也要归入这个关系中。中。多对多的关系转换为数据表学生(学号、姓名、性别、年龄)学生(学号、姓名、性别、年龄)课程(课程号、名称、课时、学分)课程(课程号、名称、课时、学分)选课(编号、选课(编号、学号学号、课程号课程号)学生选课系统的数据表数据规范化q 假设某建筑公司要设计一个数据库。公司的业假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:务规则概括说明如下:1. 公司承担多个工程项目,每一项工程有:工程

10、号、公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等工程名称、施工人员等2. 公司有多名职工,每一名职工有:职工号、姓名、公司有多名职工,每一名职工有:职工号、姓名、性别、职务等性别、职务等3. 公司按照工时和小时工资率支付工资,小时工资率公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定由职工的职务决定为什么要数据规范化q表中存在大量冗余信息表中存在大量冗余信息q插入数据、更新数据、删除数据时都可能会引插入数据、更新数据、删除数据时都可能会引发异常发异常第一范式q第一范式的目标是确保每列的原子性。即数据第一范式的目标是确保每列的原子性。即数据表中的字段都是单一属性的

11、,不可再分。表中的字段都是单一属性的,不可再分。姓名姓名性别性别年龄年龄地址地址张三张三男男19北京市北京市海淀区海淀区中关村大街中关村大街20号号李四李四男男20石家庄市石家庄市桥西区桥西区中山路中山路112号号王五王五男男19北京市北京市海淀区海淀区学府路学府路210号号赵六赵六男男21北京市北京市朝阳区朝阳区樱花街樱花街32号号第二范式q第二范式是在第一范式的基础上,确保表中的每第二范式是在第一范式的基础上,确保表中的每列都和主键相关。即要求一个表只描述一件事情。列都和主键相关。即要求一个表只描述一件事情。 职工信息职工信息工程信息工程信息劳资信息劳资信息第二范式第三范式q第三范式是在第

12、二范式的基础上,确保表中每第三范式是在第二范式的基础上,确保表中每列都和主键直接相关,而不是间接相关。间接列都和主键直接相关,而不是间接相关。间接相关又称为传递依赖。相关又称为传递依赖。q假设数据表中假设数据表中A、B、C三列,如果三列,如果A-B,而,而B-C,则则A-C。我们称。我们称A与与C之间存在间接关系(传递依之间存在间接关系(传递依赖)。赖)。 第三范式满足三大范式的工资数据表满足三大范式的学生选课的数据表规范化和性能的关系q规范化设计数据库虽然消除了大量的数据冗余,规范化设计数据库虽然消除了大量的数据冗余,杜绝了一些问题的发生,但会降低数据库的操作杜绝了一些问题的发生,但会降低数据库的操作性能性能。q为了显示职工的工资,必须采用多表联合查询,并且为了显示职工的工资,必须采用多表联合查询,并且实发工资还要重新计算实发工资还要重新计算 q为了提高职工工资表的显示速度,可能要增加为了提高职工工资表的显示速度,可能要增加“实发实发工资工资”冗余字段冗余字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论