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

下载本文档

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

文档简介

1、数据库设计第三章目标数据库设计概述概念模式设计逻辑模式设计数据库实施与维护2数据库设计概述数据管理的发展历程 手工管理 文件管理 数据库管理 3数据库设计概述文件管理数据存在的问题? -共享性差 -更新、插入、删除异常 -安全性差5数据库概述数据库的发展阶段 网状数据库 关系数据库 面向对象数据库 6常见的数据库管理系统ACCESSSQL SERVER ORACLE DB27数据库设计和建模必要性好的数据库结构有利于:节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发设计不好的数据库结构将导致数据冗余、存储空间浪费内存空间浪费8需求收集和分析设计概念结构设计逻辑结构数据模型优化

2、设计物理结构评价设计,性能预测物理实现试验性运行使用、维护数据库应用需求数据、处理 转换规则、DBMS功能优化方法应用要求,DBMS详细特征需求分析阶段数据库运行、维护阶段不满意不满意 数据库实施阶段物理设计阶段逻辑设计阶段概念设计阶段数据库设计步骤10IPO表输入:输出:处理:CreatLoadMain( )ifthenend 分区1 分区2概念结构设计逻辑结构设计物理设计设计阶 段 设 计 描 述数 据处 理需求分 析 数据字典、全系统中数据项、 数据流、数据存储的描述数据流图和判定表(判定树)、数据字典中处理过程的描述 概念模型(E-R图) 数据字典 系统说明书包括: 新系统要求、 方案

3、和概图 反映新系统信息 流的数据流图 某种数据模型 关系 非关系 系统结构图 (模块结构) 存储安排 方法选择 存取路径建立 模块设计 IPO表实施阶段 编写模式 装入数据 数据库试运行 程序编码、 编译联结、 测试运行、维护 性能监测、转储/恢复 数据库重组和重构 新旧系统转换、运行、维护(修正性、适应性、改善性维护)12设计数据库 不管数据库的大小和复杂程度如何,可以用下列基本步骤来设计数据库:收集信息标识对象设计数据模型标识每个对象的信息类型标识对象之间的关系14.需求分析调查组织机构总体情况熟悉业务活动明确用户需求确定系统边界用户 数据库 设计人员.DDDDDFD概念设计图6.6 需求

4、分析过程15数据建模的概念 将现实世界的数据转换成信息世界的数据 的过程称为建模16概念设计17实体关系模型-基本概念实体属性键码联系18实体关系模型-E-R 图的符号符号含义实体类型弱实体类型关系类型属性键属性多值属性复合属性派生属性20关系的类型X X X X Y Y Y Y 一对一X X X X Y Y Y Y 一对多X X X X Y Y Y 多对一X X X X Y Y Y Y 多对多21销售管理子系统分E-R图的设计顾 客支付参照1参照2组成订货折扣规则产品描述顾 客订 单应收帐1111nnnnn1销售管理子系统的分E-R图23设计关系模式如:营业厅(营业厅编号,地址,负责人)销售

5、记录(营业厅编号,机型,数量,日期,经办人)手机销售单价(机型,单价)手机用户信息(手机号码,用户名,住址,证件号码)手机通话记录(手机号码,被叫号码,日期,起始时刻,通话时长)手机话费信息(手机号码,话费,漫游费,短信费)话费缴费信息(手机号码,缴费日期,金额,缴费营业厅)码?销售记录?课堂练习24E-R图向关系模型的转换E-R图向关系模型的转换要解决的问题 如何将实体型和实体间的联系转换为关系模式如何确定这些关系模式的属性和码 转换内容将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。26E-R图向关系模型的转换实体型间的联系有以下不同情况 :(1)一个1:1联系

6、可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式 与某一端实体对应的关系模式合并(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。 转换为一个独立的关系模式与n端对应的关系模式合并27E-R图向关系模型的转换(3) 一个m:n联系转换为一个关系模式。例,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(学号,课程号,成绩)28医生病人药品帐单包括有有N1N1NN数据库的E-R图30数据库的逻辑结构图 31E-R图向关系模型的转换32关系数据库逻辑设计问题关系数据库逻辑设计问题

7、 构造几个关系模式?每个关系由哪些属性组成?例:教务管理系统,需要存储下列信息 学号,姓名, 系名,系主任名,课名, 成绩 SNO, SNAME, SDEPT, MNAME, CNAME, GRADE设计一个关系模式:S=SNO, SNAME, SDEPT, MN, CNAME, G33关系数据库逻辑设计问题Student中的样本数据学号系别系主任课程名成绩01001电子系张三C+语言9501001电子系张三密码学9001001电子系张三数字信号处理8501002电子系张三C+语言9401002电子系张三密码学9001002电子系张三数字信号处理8801003计科系李四C+语言9201003计

8、科系李四操作系统9101003计科系李四编译原理9001004数学系王五数学分析9634关系数据库逻辑设计问题该关系模式存在四个主要问题:数据冗余度大插入异常删除异常潜在的不一致性解决方法:将该关系模式分解为三个SnoSnameSdeptSdeptMnameSnoCnameGrade35关系规范化理论范式关系1NF2NF3NFBCNF4NF5NF36函数依赖的概念 通过讨论函数依赖,可以消除数据冗余和操作异常,设计出好的关系模式,从而在此基础上构建合理、高效的数据库结构。 对于数学函数:y = f(x) = sin(x) 当每给定一个x值时,都有一个y与之对应。可以表示为:XY,称为X函数决定

9、Y,或Y函数依赖于X。37函数依赖的概念 1)如果XY ,但Y不包含于X,则称XY是非平凡的函数依赖;若Y包含于X,则称XY是平凡的函数依赖;2)如果XY,则称X为决定因素;3)如果XY且YX,则记为: XY;4)若Y不依赖于X,则记为XY ; 5)如果XY,并且对于任意一个X的真子集X,都有XY,则称Y完全函数依赖于X,记为XY;否则,称Y部分函数依赖于X,记为XY。6)如果XY,YZ,但Y不包含于X,且YX,则称Z传递函数依赖于X。记为: XZfp传递38函数依赖 例:在关系模式SC(Sno, Sname, Cno, Credit, Grade)中,各属性分别为:学号、姓名、课程号、学分、

10、成绩,主码为(Sno, Cno),则有函数依赖关系: SnoSname (Sno, Cno)Gradepf39三级范式1-3第一范式的定义: 如果一个表中所有属性都是不可再分的数据项,则这个表属于第一范式(常记成1NF)。 例如,图1中的表属于1NF,它的关键字是。40关系模式的设计问题异常情况举例:下图模式1是管理职工工资的一个常见的简化的关系模式。工资管理模式1工号姓名级别基本津贴考勤扣款违纪扣款实发额001张三一级 8002000 120 10 2670002李四三级12004000 20 5180说明:应发工资额为基本工资和津贴之和,应发工资减去扣款项目为实发工资额,基本工资和津贴的额

11、度由级别决定,扣款额根据实际情况决定。41三级范式2-3第二范式的定义: 如果一个表属于1NF,且不包含部分依赖性,既没有任何属性只依赖于关键字的一部分,则这个表属于第二范式(常记成2NF )。 将1NF转换成2NF的方法是分解。42非主属性是指不包含在任何主键中的属性。满足2NF的条件:消除了从 非主属性 到 主属性 的“部分函数依赖” .第二范式2NF的定义 如果关系R属于1NF,且每个非主属性完全函数依赖于主关键字,则关系模式R属于第二范式。规范化处理后存在部分函数依赖的关系模式存在的问题。1 数据冗余、更新异常2 插入、删除异常43三级范式3-3第三范式的定义: 如果一个表属于2NF,

12、且不包含传递依赖性,则这个表是第三范式(常记成3NF)。 满足3NF的表中不包含传递依赖,即没有一个非关键属性依赖于另一个非关键属性,或者说没有一个非关键属性决定另一个非关键属性。44第三范式(3NF) 与传递函数依赖思考下表虽然满足2NF,但仍是一个 蹩脚的设计 : 传递函数依赖: 在一个关系模式中,若存在 A-B 和 B-C, 则必有 A-C 成立,即C传递函数依赖于A。如上表中存在 A-C 和 C-D ,即“专业”传递函数依赖于“学号”。 满足3NF的条件:消除了“传递函数依赖”第三范式3NF的定义如果R属于2NF,且每个非主属性都不传递函数依赖于主关键字,则关系模式R属于第三范式。学号

13、姓名班级专业9901001陈小蕾计算机9901班计算机应用专业9901002李泉勇计算机9901班计算机应用专业9901003张小芳计算机9901班计算机应用专业9903003笪小波建筑9902班建筑设计专业9903002李群建筑9902班建筑设计专业9905056高明服装9901班服装设计专业修改上表45学生表学号姓名班级9901001 陈小蕾计算机9901班9901002李泉勇计算机9901班9901003张小芳计算机9901班9903003笪小波建筑9902班9903002李群建筑9902班9905056高明服装9901班班级专业计算机9901班计算机应用专业建筑9902班建筑设计专业服

14、装9901班服装设计专业班级专业表 46关系规范化小结各种范式及规范化过程47规范化实例1-5假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等;公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等;公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)。公司定期制定一个工资报表,如图-1所示。48规范化实例2-5工程号工程名称职工号姓名职务小时工资率工时实发工资A1花园大厦1001齐光明工程师6513845.001002李思岐技术员6016960.00

15、1004葛宇宏律师60191140.00小计2945.00A2立交桥1001齐光明工程师6515975.001003鞠明亮工人5517935.00小计1910.00A3临江饭店1002李思岐技术员60181080.001004葛宇洪技术员6014840.00小计1920.00图-1 某公司的工资表49数据库的实施数据库实施的工作内容用DDL定义数据库结构组织数据入库编制与调试应用程序数据库试运行50数据库的实施、运行与维护数据库的实施、运行与维护阶段的主要包括定义结构加载初始数据编制与调试程序数据库试运行数据库的备份与恢复数据库的安全性和完整性控制数据库性能的分析和改进数据库的重组织和重构 5

16、1数据库实施定义数据库结构数据装载 数据库试运行数据库物理设计数据库运行和维护物理模型编制与调试应用程序数据库系统52一、定义数据库结构确定了数据库的逻辑结构与物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格描述数据库结构。53定义数据库结构例,对于前面的例子,可以用SQL语句如下定义表结构:CREATE TABLE 学生 (学号 CHAR(8), );CREATE TABLE 课程 ( ); 54定义数据库结构 接下来是在这些基本表上定义视图:CREATE VIEW . ( ); 如果需要使用聚簇,在建基本表之前,应先用CREATE CLUSTER语句定义聚族。55二、

17、数据装载数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。数据装载方法人工方法计算机辅助数据入库56数据装载(续)人工方法:适用于小型系统步骤1) 筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。2) 转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。 3) 输入数据。将转换好的数据输入计算机中。 4) 校验数据。检查输入的数据是否有误。57数据装载计算机辅助数据入库:适用于中大型系统步骤1) 筛选数据2) 输入数据。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。3) 校验数据。数据输入子系统采用多种检验技术检查输入数据的正确性。58数据装载4) 转换数据。数据输入子系统根据数据库系统的要求,从录入的数据中

温馨提示

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

评论

0/150

提交评论