资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,现代数据库技术,计算机科学与工程学院,姚全珠,本课程教授内容,第一章 应用数据库系统开发技术,6,第二章 分布式数据库,12,第三章 面向对象数据库,4,第四章 空间数据库,4,第五章 时态数据库,4,推荐教材,汤庸,叶小平,.,高级数据库技术与应用,.,高等教育出版社,.2008.2,王能斌,.,数据库系统原理下册,.,出版社:电子工业出版社,.2002,年,2,版,邵佩英,.,分布式数据库系统及应用,.,出版社:科学出版社,.2005,年,2,版,David,M.Kroenke,著、施伯乐等译,.,数据库处理,基础设计与实现,.,出版社:电子工业出版社,.2003,年,8,版,成绩,1,平时作业(,30,),2,考试成绩(,70,),第一章 应用数据库系统开发技术,数据库系统的组成,开发方法,数据建模,数据规范化,数据模型到关系数据库的映射,系统安全设计,第一节数据库系统的组成,数据库,用户数据,元数据,索引和其它系统数据,应用元数据,数据库引擎,设计工具,表生成工具,窗体生成工具,查询生成工具,报表生成工具,过程语言编译器,执行时间,窗体处理器,查询处理器,报表书写器,过程语言执行时间,应用程序,应用程序,图,1,数据库系统的组件,开发人员,用户,数据库包含的,4,个要素,用户数据,:,用户希望此系统保存和使用的数据。,索引,:,为了改变数据库的性能和可访问性所增加的一组辅助性数据。,元数据,:,数据库自身结构描述的数据。,应用元数据,:,用来存放用户表格,报表,查询和其他形式的应用组件。,用户数据,sno,sname,ssex,sage,20080010,张明,男,21,20080011,李虎,男,23,20080012,王英,女,20,STUDENT,cno,cname,proc,credit,872301,数据库,860101,3,872401,系统结构,860102,2,COURSE,元数据,(sys tables,表,),Table name,Number of columns,Primary key,student,4,sno,course,4,cno,sc,4,Sno,cno,Column name,Table name,Data type,length,sno,student,char,8,sname,student,char,8,cno,course,char,6,Syscolumns,表,索引(学号),sno,sname,ssex,sage,20080010,张明,男,22,20080011,李虎,男,23,20080012,宋丽,女,22,20080013,王英,女,20,sage,sno,20,20080013,22,20080010,,,20080012,23,20080011,年龄索引,三个子系统,设计工具子系统,:,它有一个方便数据库及其应用产生的工具箱集,典型的包含产生表,窗体,查询和报表的工具,,DBMS,还提供编程语言和对编程语言的接口。此部分功能通常由数据定义语言(,DDL,)实现,完成数据库定义功能。,运行子系统,:,它处理用设计工具开发的应用组件,此外还有一种运行组件,由它处理应用程序读写数据库数据的请求。此部分功能通常由数据操纵语言(,DML,)实现、完成数据库存取功能。,DBMS,引擎,:,它介于设计工具子系统及运行子系统和数据库本身之间。,DBMS,引擎从其它两个组件接受请求,并把它们翻译成对操作系统的命令,从而读写物理介质上的数据。,DBMS,引擎还涉及事务管理,锁定、备份和恢复。此部分功能通常由数据控制语言(,DCL,)实现、提供数据库例行程序。,第,2,节,.,开发方法,开发数据库的策落有两种:自顶向下和自底向上。,自顶向下是从一般到特殊,它开始于对组织战略目标、完成这些目标的方法、达到这些目标必须完成的需求和需要提供这些信息的系统的研究,从这些研究可以构造抽象数据模型。,自底向上方式、采用与抽象相反的方式进行。开始于开发特定系统的要求,然后把每一个开发好的子系统逐步集成,直到完成整个系统。,概念结构设计策略,自顶向下策略 自底向上策略,子需求,全局概念模式,概念模式,概念模式,概念模式,概念模式,概念模式,概念模式,需求,子需求,子需求,概念模式,概念模式,概念模式,概念模式,概念模式,全局概念模式,第,3,节,.,数据建模,一、需求分析常用方法,1,组织机构及岗位职责调查,2,业务流程调查,3,数据内容、格式、及处理量调查,组织机构调查,岗位职责,1,岗位职责,2,岗位职责,n,输入工作实绩表,输入扣除款表,考勤文件,计算工资,奖金发放标准,工资,档案,库,扣除款文件,实发工资库,职工存款库,工资报表,领导及职工签名,工作业绩文件,输入考勤表,银行帐管理,工资报表生成,程序,存取款处理,存取款清单打印,存取款清单,计算工资业务流程,数据内容、格式、及处理量调查,表,1,业务项目描述表,科室或单位名称:调研人:,业务人或岗位名称:调研日期:,业务名称,业务简介,业务来源,业务去向,业务流量,备注,表,2,数据录入调查表,科室或单位名称:调研人:,业务人或岗位名称:调研日期:,序号,录入具体内容,数据格式,录入频率,数据有效期,数据保密等级,录入方式,备注,填表人:填表日期:审查人:审查日期:,表,3,数据查询调查表,科室或单位名称:调研人:,业务人或岗位名称:调研日期:,序号,查询内容,查询格式,查询频率,查询权限,查询建议,备注,填表人:填表日期:审查人:审查日期:,表,4,需求调查表,科室或单位名称:调研人:,业务人或岗位名称:调研日期:,交叉重复 的业务,无法理顺的业务,旧系统中不满意的地方,旧系统中满意的地方,对不满意的改进建议,希望新系统补充的功能,最需要计算机取代的手工劳动,填表人:填表日期:审查人:审查日期:,二、数据概念建模工具,E-R,图(,Entity-Relationship Approach,),语义对象模型,E-R,模型,E-R,模型是由,Peter Chen,在,1976,年提出的。,实体是可以从用户工作环境中标识的事物。实体可归结为实体类或同一类型的实体集合。实体类是一个事物的一般形式或描述。而实体类的一个实例则表示一个特定实体。,实体具有属性,有时也称作性质,是用来描述实体的特征的。,实体可以通过联系相互关联。,E-R,模型包含联系和联系类,联系类是实体类之间的联系,联系是实例之间的联系,联系也可拥有属性。,两个实体之间的联系有,3,种类型:,1,对,1,联系,,1,对多联系,多对多联系。,仓库主任,仓库,1,:,1,领导,性别,姓名,年龄,住址,职工号,库名,面积,地址,传真,电话,仓库,库管员,1,:,M,工作,面积,库名,地址,传真,电话,姓名,性别,年龄,住址,职工号,库管员,物资,M,:,N,管理,姓名,年龄,性别,住址,职工号,规格,单价,编码,名称,数量,例,2,公司雇员实体类。因为有些雇员是工程师,,在雇员和工程师之间有一个子类型联系。每个工程,师必须是一个雇员;工程师有一个对汽车的,1,:,1,联系;其每个汽车必须分配给一个工程师,但并非所有的工程师都拥有汽车。,工程师为客户提供服务,一个工程师能提供,0,到多个服务,但一项给定的服务必须且只能由一个工程师提供。客户可以有多项服务,一项服务可被多个客户请求。一个客户必须购买至少一项服务,但服务不必一定有客户。客户,-,服务联系有一个属性收费。,有时客户会相互参照,一个客户可以参照多个客户,但一个客户最多只能被一个客户参照。,一个工程师可能已经获得了某项认证。,CERTIFICATION,是描述特定证书的实体,.,EMPLOYEE,TRUK,ENGINEER-CERTIFICATION,SERVICE,CLIENT,CERTIFICATION,1:1,N:M,N:1,1:n,ENGINEER,1:N,1:n,ENG-SKILL,TRUCK-ASSGN,SERVICE-PROVIDERN,CLIENT-SERVICEL,QUAL-ENGINEER,REFERRED-BY,Fee,例,3,jefferson,舞蹈俱乐部教授交际舞,提供私人授,课和集体授课两种服务,.,对于私人授课,jefferson,收,取每人,(,或每对,),每小时,45,美元的费用,;,对于集体授课,jefferson,收取每人每小时,6,美元的费用,.,私人授课从中午,12,点到晚上,10,点提供,每周,6,天,.,集体授课晚上提供,.,Jefferson,雇佣了两种类型的老师,:,专职教师和兼职教师,.,专职教师每周付给固定的工资,而兼职教师则是按一个晚上或一节特定的课程付给预定的工资,.,除了授课外,Jefferson,每周主办两次舞会,参加者每人收取,5,美元,.,星期五晚上的舞会更受欢迎,平均有,80,人参加,;,星期六晚上的舞会大约能吸引到,30,人参加,.,Jefferson,想开发一个信息系统来跟踪学生和他们所选的课程,.Jefferson,的经理还希望知道每一个老师所教授的课程数量和类型,用以统计每个老师每节课的平均费用,.,customer,Private-lesson,Group-lesson,teacher,Dance,Fulltime teacher,Part-time teacher,2:n,N:m,N:2,N:mMm,1:n,图,3 Jefferson,俱乐部的,R,图,例,4 San Juan,帆船出租公司是一个向客户收费出,租帆船的代理,,San Juan,本人并没有帆船,它是替那些希望自己不使用帆船时赚取收入的帆船主出租帆船。,San Juan,为自己的服务收取费用,而专门经营可以出租多日或一周的船。最小的船是,28,英尺长,最长的船是,51,英尺长。,每一只船在出租时都是完全装备的,大多数设备由船主提供,有一些是由,San Juan,加上去的。船主提供的设备包括固定在船上的设备,如无线电、指南针、深度计及其他仪器、炉子、冰箱等,其他船主提供的设备没有安装在船上,这种设备包括帆、绳子、锚、救生艇、救生衣和船舱内的碟子、银器、烹调器皿、床等。,San Juan,提供消费品,也可以说是补给,如航海图、导航书籍、潮汐表、和一些类似的物品。,San Juan,的一个重要的责任就是跟踪船上的设备,多数设备比较昂贵,有些设备(特别是那些没有装在船上的)很容易丢失或被盗窃。在出租期间,由客户负责所有的设备。,San Juan,想精确地记录客户和出租的情况,这不仅用于开拓市场,还用于记录客户所走的行程。有些路线和气候条件比其他的危险,因此,,San Juan,想知道哪些客户有什么经验。,San Juan,的大部分业务是裸船出租,也就是说不提供船长或水手。但有些情况下,客户要求船长或水手,因此,San Juan,雇佣了一些这类兼职人员。,帆船经常需要维护。,San Juan,与船主签订的,合同要求,San Juan,精确地记录所有的维护活动和费用,包括像清洁和换机油这样的例常工作和不定期的维修。某些情况下,维修需要在出租后进行。,例如,帆船的发动机可能在远离,San Juan,维修部的时候出故障,这时,客户用无线电通知调度员,由他来确定最好的维修部,并派遣维修部的人到发生故障的船上去。为了做出这些决断,调度员需要关于维修部的信息和船只的维修质量与费用的历史信息。,OWNER,SCHEDOULED-,MAINTENACE,BOTA,EQUIPMENT,REPAIR,N,:,M,N,:,M,1:N,1:N,1:N,N:M,PART-TIME,CREW,N:M,LEASE,CUSTOMER,WEATHER-,ITINERARY,1:1,N:1,语义对象模型,语义对象的概念是,David,M.Kroenke,1988,年在数据库处理一书的第三版中提出的。,在,ER,模型中称为实体的事物在语义对象模型中被称为语义对象,语义对象是用来部分地对用户数据的含义建模的。,语义对象代表明确的本体,是足以描,述一个确切本体属性的命名集合,是用户需,要跟踪和报告的事物。,对象也有一个属性集合,每个属性代表所表示对象的一个特征。,属性有三种类型,,简单属性,是单值的,例如姓名、性别等。,属性组,是其他属性的组合,例如地址,它包含属性,省分,区,/,县,街道,,。第三种属性是,语义对象属性,,它是在语义对象和另一个语义对象之间建立关系的属性。在下图,中给出了仓库语义对象的描述。,仓库,id,库名,面积,地址,省,市,/,县,街道,电话,区号,市内号码,传真,仓库主任,库管员,物资,仓库主任,id,职工号,姓名,性别,年龄,地址,省,市,/,县,街道,仓库,库管员,id,职工号,姓名,性别,年龄,地址,省,市,/,县,街道,仓库,物资,物资,id,编码,名称,规格,数量,单价,库管员,仓库,第,4,节,.,数据规范化,在分析问题的过程中,通常把问题分解,按子系统建模,然后再把子模型集成起来形成完整系统模型。在集成的过程中会产生数据冗余,有时会发生冲突,冲突体现在以下三个方面:,属性冲突:包括属性值的类型、取值范围和取值集合不同,单位冲突(如:重量单位用吨和公斤、但管材的单位有时用长度等);,结构冲突:同一属性组的外延不同、不同,E-R,图中实体和属性存在冲突,例如一个事物在此处被看作属性,而在其他地方又被看作实体;,命名冲突:同名异义、异名同义。,冗余数据消除,冗余数据指可由基本数据导出的数据,冗余的存在容易破坏数据库的完整性,可用分析法消除冗余,但最常用的却是规范化理论。,规范化理论的一个重要的目标就是将数据分割存储在特定的地方来消除冗余、简化数据库的更新,提高数据库完整性,并且减少存储的要求。,学生,课程,教师,教材,选课,开设,选用,选用,m,n,m,1,1,1,1,1,一、下图表示,一个公司各部门的层次结构。,图,1,部门层次图,对每个部门,数据库中包含部门号(惟一的),D#,、,预算费(,BUDGET,),以及此部门领导人的职工号,E#,(,惟一的)信息。,对每一个部门,还存有关于此部门的全部职工、生产与科研项目以及办公室的信息。,职工信息包括:职工号、他所参加的生产与科研项目号(,J#,)、,他所在办公室的电话号码(,PHONE#,)。,生产科研项目包括:项目号(惟一的)、预算费。,办公室信息包含办公室房间号(惟一的)、面积。,对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。,对每个办公室包含此办公室中全部电话号码的信息。,请给出你认为合理的数据依赖,把这个层次结构转换成一组规范化的关系。,(,1,)首先画出一些重要的函数依赖,所有这些函数依赖都是根据文字说明和语义假设导出。,语义假设如下:,1,),一个职工不能同时成为多个部门的领导人;,2,),一个职工不能同时在多个部门就职;,3,),一个职工不能同时参加多个生产项目;,4,),一个职工不能同时在两个不同的办公室办公;,5,),一个职工不能同时拥有两部或两部以上的电话;,6,),一个生产项目不能同时分配给多个部门;,7,),一个办公室不能同时分配给多个部门;,8,),部门号、职工号、项目号、办公室号码及电话号码是全局惟一的。,图,2,关系模式函数依赖图,(,2,)先按照图,1,设计一组关系模式,它们都是属于,1NF,的。,DEPT(DEPT#,DBUDGET,MGR_EMO#),PRIMARY KEY(DEPT#),DEPT#,和,MGR_EMP#,都是侯选码,把,DEPT#,作为主码。,F=DEPT,#,DBUDGET,DEPT#,MGR_EMO#,MGR_EMO#,DEPT,#,EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#),PRIMARY KEY(EMP#),F=EMP#,DEPT#,EMP#,PROJ#,EMP#OFF#,EMP#PHONE#,PHONE#OFF#,OFF#DEPT#,PROJ#DEPT#,JOB(EMP#,JOBTITLE),PRIMARY KEY(,EMP#,JOBTITLE,),F=,EMP#,JOBTITLE,EMP#,EMP#,JOBTITLE,JOBTITLE,SALHIST(EMP#,JOBTITLE,DATA,SALARY),PRIMARY KEY(,EMP#,DATE,),F=,EMP#,DATE,JOBTITLE,EMP#,DATE,SALARY,PROJ(PROJ#,DEPT#,PBUDGET),PRIMARY KEY(PROJ#),F=PROJ#,DEPT#,PROJ#PBUDGET,OFFICE(OFF#,DEPT#,AREA),PRIMARY KEY(OFF#),F=OFF#,DEPT#,OFF#AREA,PHONE(PHONE#,OFF#),PRIMARY KEY(PHONE#),F=PHONE#,OFF#,(,3,),现在来分析一下这,7,个关系模式,发现:,SALHIST(EMP#,JOBTITLE,DATA,SALARY),的属性包含了,JOB(EMP#,JOBTITLE),的属性,所以,JOB(EMP#,JOBTITLE),可以消去。,EMP1,中,OFF#,和,DEPT#,都传递函数依赖于主码(,EMP#,)。,OFF#,通过,PHONE#,,,DEPT#,通过,PROJ#,或,OFF#,(,然后通过,PHONE#,),传递依赖于(,EMP#,),所以可以把,EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#),分解成以下,4,个,3NF,的关系模式:,EMP(EMP#,PROJ#,PHONE#),PRIMARY KEY(EMP#),X(PHONE#,OFF#),PRIMARY KEY(PHONE#),Y(PROJ#,DEPT#),PRIMARY KEY(PROJ#),Z(OFF#,DEPT#),PRIMARY KEY(OFF#),然而,,X,就是,PHONE,,,Y,就是,PROJ,的投影,,Z,就是,OFFICE,的投影,所以,X,、,Y,、,Z,都可以消去。,最后可以得到以下,6,个关系模式,所有这些关系模式都是属于,3NF,的,进一步发现它们也是,BCNF,的。,DEPT(DEPT#,DBUDGET,MGR_EMO#),PRIMARY KEY(DEPT#),EMP(EMP#,PROJ#,PHONE#),PRIMARY KEY(EMP#),SALHIST(EMP#,JOBTITLE,DATA,SALARY),PRIMARY KEY(EMP#,DATE),PROJ(PROJ#,DEPT#,PBUDGET),PRIMARY KEY(PROJ#),OFFICE(OFF#,DEPT#,AREA),PRIMARY KEY(OFF#),PHONE(PHONE#,OFF#),PRIMARY KEY(PHONE#),第,5,节,.,数据概念模型到关系数据模型的映射,数据库逻辑设计,:,将概念设计所得到的概念模型转换为某一具体的数据模型(层次、网状、关系、面向对象),向某一具体,DBMS,支持的模型转换,对逻辑模型进行优化,
展开阅读全文