版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 对讲机租赁合同
- 2025两江新区小学招聘语文教师2人考试重点题库及答案解析
- 2025济南市市中区残联公开招聘派遣制残疾人工作“一专两员”招聘(2人)考试重点题库及答案解析
- 2026年华东政法大学单招职业技能考试题库及完整答案详解1套
- 2026年青岛远洋船员职业学院单招职业技能测试题库附答案详解
- 2025广西百色西林县句町咖啡发展贸易有限公司冬季招聘工作人员3人考试核心试题及答案解析
- 2026年上海第二工业大学单招职业技能测试题库及答案详解1套
- 会计岗位常见面试问题及答案解析
- 2025福建厦门海峡投资有限公司社会招聘6人备考核心题库及答案解析
- 2026年榆林职业技术学院单招职业倾向性测试题库及答案详解一套
- 西游记五庄观课件
- 人际传播教程 课件 第6周 建构主义与信息生成理论
- DBJT15-101-2022 建筑结构荷载规范
- 2025年幼儿教师之《幼儿游戏与指导》考试题库(附答案)
- 知道智慧树管理学(浙江财经大学)满分测试答案
- 2025冷冻食品运输合同(肉类)
- TLR2对角膜移植术后MDSC分化及DC成熟的调控机制研究
- 建筑设计防火规范-实施指南
- 2025年广西中考英语试卷真题(含答案解析)+听力音频
- 高压开关房管理制度
- CJ/T 511-2017铸铁检查井盖
评论
0/150
提交评论