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

下载本文档

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

文档简介

1、第一章数据库设计课程地位Logic JavaC#SQL BasePrevSQL Advance.Net OOPJava OOPJavaScriptWinformsJava WebTestingOracleASSH2Ajax&Web2.0A MVCLinuxOOAD&UMLWindows MobileAndroidNTCSE&PM企业企业项目项目实训(商业项目)实训(商业项目)课程介绍v数据库设计是项目开发过程中比较关键的环节,本课程第一章详细介绍了如何设计数据库。v本书的重点是:SQL编程和存储过程v存储过程在数据库应用系统中应用非常广泛。vSQL编程是编写存储过程的基

2、础。本章案例v学生选课系统v企业职工工资表的规范化设计学生选课系统企业职工工资表本章目标v如何标识实体对象v如何画E-R图v如何将E-R图转换为数据表v数据规范化设计三大范式预习检查 E-R图中每个图形符号表示什么图中每个图形符号表示什么? 实体之间的关系有哪些实体之间的关系有哪些? 第一范式的原则是什么第一范式的原则是什么? 什么是传递依赖什么是传递依赖?为什么需要数据库设计v复杂的数据库需要规范化设计。什么是数据库设计现实世界现实世界信息世界信息世界数据(电脑)世界数据(电脑)世界数据库设计的步骤数据库设计第一步:标识实体v数据库中的数据对象,称为实体。v实体表有一个或多个属性。v在需求分

3、析阶段,需要知道要在数据库中存储哪些信息。v数据库设计的第一步:标识实体。标识实体v标识学生选课系统中的实体对象学生信息学生信息教员信息教员信息通知通知课程信息课程信息标识实体的属性v学生信息q学号、姓名、性别、年龄、班级v教员信息q工号、姓名、性别、年龄、教龄、职称v课程信息q课程号、名称、学时、学分v通知q标题、内容实体之间的关系v大部分实体并不是孤立的,它们之间存在着各种关系。丈夫与妻子之间丈夫与妻子之间一对一的关系一对一的关系班级与学生之间班级与学生之间一对多的关系一对多的关系学生与课程之间学生与课程之间多对多的关系多对多的关系学生选课系统中各实体之间的关系学生信息学生信息教员信息教员

4、信息课程信息课程信息一名学生可以选修多门课程一名学生可以选修多门课程一门课程由一个或多名学生选修一门课程由一个或多名学生选修一名教员讲授一至多门课程一名教员讲授一至多门课程一门课程只能由一名教员讲授一门课程只能由一名教员讲授数据库设计第二步:绘制ER图vE-R图(Entity Relationship Diagram),中文称为“实体-关系图”,提供了表示实体、属性和关系的图形符号。实体名实体名属性名属性名关系名关系名实体表示实体表示关系表示关系表示属性表示属性表示学生选课系统中的ER图ER图如何表示实体之间的关系ER图如何表示实体之间的关系学生选课系统完整的ER图课堂练习v画出仓库-商品的E

5、-R图q提示:仓库的属性包括:地点、面积等;商品的属性包括:商品名称、价格等。n1仓库商品存放地点面积仓库号商品号价格数量商品名数据库设计第三步:ER模型转换为数据表v 将E-R模型转换为数据表的基本原则:1. 将各实体转换为对应的表,将各属性转换为各表对应的列。2. 标识每个表的主键列,需要注意的是:没有主键的表要添加ID编号列,它没有实际含义,用于做主键。 例如:通知数据表中除了标题、内容外,还应加一个ID主键列,用以区分每条记录。3. 如果实体之间有某种关系,还要在表中添加外键。学生选课系统中各实体转换为数据表如何将ER图中的关系转换为数据表v 如果实体A和实体B之间存在一对一的关系,将

6、E-R图转换为数据表有以下三种方法:1. 把A实体的主关键字加入到B实体转换后的数据表中作为外键,如果关系有属性也一并加入。2. 把B实体的主关键字加入到A实体转换后的数据表中作为外键,如果关系有属性也一并加入。3. 直接将关系转换为数据表,表中包含两个实体的主关键字,如果关系有属性也一并加入。一对一的关系转换为数据表丈夫(身份证号,姓名,职业,出生日期)丈夫(身份证号,姓名,职业,出生日期)妻子(身份证号,姓名,职业,出生日期,妻子(身份证号,姓名,职业,出生日期,丈夫身份证号丈夫身份证号,子女数子女数,婚龄婚龄)一对多的关系转换为数据表v如果实体A和实体B之间是一对多的关系,关系转换方法为

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

8、程号、名称、课时、学分)课程(课程号、名称、课时、学分)选课(编号、选课(编号、学号学号、课程号课程号)学生选课系统的数据表数据规范化v 假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:1. 公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等2. 公司有多名职工,每一名职工有:职工号、姓名、性别、职务等3. 公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定为什么要数据规范化v表中存在大量冗余信息v插入数据、更新数据、删除数据时都可能会引发异常第一范式v第一范式的目标是确保每列的原子性。即数据表中的字段都是单一属性的,不可再分。姓名姓名性别性别年龄年龄地址地

9、址张三张三男男19北京市北京市海淀区海淀区中关村大街中关村大街20号号李四李四男男20石家庄市石家庄市桥西区桥西区中山路中山路112号号王五王五男男19北京市北京市海淀区海淀区学府路学府路210号号赵六赵六男男21北京市北京市朝阳区朝阳区樱花街樱花街32号号第二范式v第二范式是在第一范式的基础上,确保表中的每列都和主键相关。即要求一个表只描述一件事情。 职工信息职工信息工程信息工程信息劳资信息劳资信息第二范式第三范式v第三范式是在第二范式的基础上,确保表中每列都和主键直接相关,而不是间接相关。间接相关又称为传递依赖。q假设数据表中A、B、C三列,如果A-B,而B-C,则A-C。我们称A与C之间存在间接关系(传递依赖)。 第三范式满足三大范式的工资数据表满足三大范式的学生选课的数据表规范化和性能的关系v规范化设计数据库虽然消除了大量的数据冗余,杜绝了一些问题的发生,但会降低数据库的操作性能。q为了显示职工的工资,必须采用多表联合查询,并且实发工资还要重

温馨提示

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

最新文档

评论

0/150

提交评论