第2讲-数据模型与数据库系统开发过程_第1页
第2讲-数据模型与数据库系统开发过程_第2页
第2讲-数据模型与数据库系统开发过程_第3页
第2讲-数据模型与数据库系统开发过程_第4页
第2讲-数据模型与数据库系统开发过程_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第1部分:

引言

数据模型与数据库系统开发过程

教师:朱征宇

单位:重庆大学计算机学院

课程名称:数据库系统

--------------------一几种典型的数据模型层次数据模型网状数据模型关系数据模型对象数据模型XML数据模型思考问题:数据结构描述包括哪些方面?数据的内部结构&数据间的联系!21.1层次数据模型

第一个商用的层次数据模型系统:

IBM公司开发的数据库管理系统(IMS,InformationManagementSystem)

在数据库早期阶段曾经广泛应用!层次数据模型表现为倒立的树,用树形结构来表示实体间的联系。用户把层次数据库理解为段(segment)的层次,一个段等价于一个文件系统的‘记录型’。在层次数据模型中,文件或记录之间的联系形成层次。 换句话说,层次数据库把记录集合表示成倒立的树结构。简介层次数据模式层次模式 利用层次模型(记录&PCR)来描述应用,可以得到一个层次模式(数据库的结构)。型&实例 一个型多个实例

模式的型:“树”结构(图2-5)

模式的实例:森林结构(图2-6)系班教研组学生教师901班911班王一李四计算机系921班931班钱英周新硬件教研组软件教研组郑三

陈芝张三赵立孙玉吴坚洪流丁伟双亲子女关系1.1层次数据模型

非层次结构的描述问题:

M:N联系如何描述?

双亲联系如何描述?

多数客观数据不是层次型的,你该如何办呢?学生课程学生班运动队1.1层次数据模型6非层次结构的解决方案:

间接表示法方法一:采用副本 对M:N联系 对多双亲联系

缺点:数据冗余(增加空间,一致性维护难)学生课程课程学生班学生运动队学生1.1层次数据模型7方法二:虚拟记录

对M:N联系(图2-13)

双亲联系(图2-14)

不足:增加处理开销学生(课程)v课程(学生)v班学生运动队(学生)v1.1层次数据模型8非层次联系模式的实例*(虚拟记录方式)模式

M:N联系

(虚拟记录方式)实例

M:N联系的实例学生(课程)v课程(学生)v王一张三李四人工智能人工智能人工智能数据库数据库人工智能数据库王一张三李四张三李四虚拟记录实际记录虚拟记录实际记录非层次结构模式的实例什么样?1.1层次数据模型9层次模型的优缺点*优点:数据模型比较简单,操作简单。 采用定长记录(仅允许简单属性),物理实现(按树顺序扫描)为线性存储。对于实体间联系是固定的、且预先定义好的应用系统,其性能较高。提供较好的完整性支持。缺点:不适合于表示非层次性的联系。对插入和删除操作的限制比较多。查询子女结点必须通过双亲结点。导航式操作,要求熟悉详细组织结构如何评价层次模型?1.1层次数据模型1.2网状数据模型用网状结构来表示实体及其联系的模型。第一个网状数据模型系统(也是第一个DBMS):

美国通用电器公司(Bachman等人)开发的数据库管理系统IDS(IntegratedDataStore) 奠定了网状数据库的基础!20世纪70年代曾广泛应用。思考问题:(看图)

与层次模型的关键不同?

允许一个子节点可以有一个以上的 父节点没有父节点。 父节点与某个子节点记录之间可以 有多种关系(不同系型,见后说明)。简介系班教研组学生教师(网状模型)(层次模型)11网状数据模式网状模式 利用网状模型(记录&系)来描述应用,可以得到一个网状模式(数据库设计)。型&

实例 一个型(系,多属系)多个实例(值) 模式的型:“图” 模式的实例:“图”1.2网状数据模型Link指针系不能直接用来表示一个记录型的自身联系,图2-19(a)M:N联系需用link表示(学生-课程)多元联系也用link表示供应商-零件-工程项目)注:Link记录也可以附有关于联系的数据项!

为何需要引入link指针?1.2网状数据模型网状数据模型的物理实现网状数据模型的存储结构依具体系统不同而不同,常用的方法是链接法,包括单向链接、双向链接、环状链接、向首链拉等。(采用指针链实现,允许复杂属性结构)由此可推知:数据类型可以是各种复杂类型。网状模型数据如何实际存储?1.2网状数据模型网状模型-的物理存储结构-实例*网状模型数据的存储实例什么样?1.2网状数据模型15网状数据模型的优缺点*优点:能够更为直接地描述现实世界。是早期实用非常广泛的模型 (网状数据库之父CharlesBachman,1973年曾获ACM图灵奖)具有良好的性能,存取效率较高。缺点:其DDL语言极其复杂。数据独立性较差。导航式操作:由于实体间的联系本质上通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。如何评价网状数据模型?1.2网状数据模型RelationalModelExampleoftabulardataintherelationalmodelRelationalschema:instructor(id,name,dept_name,salary)ColumnsRows1.3关系数据模型关系模型如何描述数据?ASampleRelationalDatabase关系模型有型与实例区分?关系模型如何描述数据间的联系?[型模式][实例关系]系与建筑大楼间的联系(什么系位于什么大楼)数据结构用关系描述!数据间联系也用关系!描述物描述事1.3关系数据模型关系数据模型的优缺点*优点:

(参:1.13节&2章首页)在商用数据处理应用中,关系模型已成为当今主要的数据模型描述形式简单(关系),数据处理高效与网状和层次模型相比,关系模型有效地简化了编程者的工作。 (使用描述性语言SQL,而非导航式操作,不需考虑底层细节)设计应用程序时不需考虑执行效率(数据库提供有效支持)关系数据库具有坚实的理论基础(集合论与关系代数-2、6章,规范化理论-8章等)缺点:

(参:王能斌-《数据库系统教程》2章)以记录为基础,不能很好地面向用户和应用不能以自然的方式表示实体间的联系数据类型太少(仅简单数据类型),难以满足应用需要如何评价关系模型?1.3关系数据模型基于对象的数据模型面向对象程序设计已经成为占统治地位的软件开发方法,直接导致了面向对象数据模型的发展(object-baseddatamodel,OBDM)面向对象模型支持封装、方法、继承、和对象标识等概念支持丰富的类型系统(可定义各种复杂数据类型)数据被封装在数据对象中,对外提供方法作为数据访问接口目前,在数据建模中常有应用;上时间80年代,开发有多种基于面向对象数据模型的数据库系统目前,主要的数据库厂商都支持对象-关系数据模型(object-relationaldatamodel,ORDM)1.4对象数据模型为什么会出现对象数据模型?对象数据模型已得到普遍使用?Object-RelationalDataModels*(Relationalmodel:flat,“atomic”values)ObjectRelationalDataModels (ItisproducedbyconbiningRDMwithOBDM)Extendtherelationaldatamodelbyincludingobjectorientationandconstructstodealwithaddeddatatypes.Allowattributesoftuplestohavecomplextypes,includingnon-atomicvaluessuchasnestedrelations.Preserverelationalfoundations,inparticularthedeclarativeaccesstodata,whileextendingmodelingpower.Provideupwardcompatibilitywithexistingrelationallanguages.什么是对象关系数据模型,有何特点?1.4对象数据模型对象数据模型的优缺点*优点:能够支持复杂数据类型和结构可以对象为基础,很好地面向用户和应用描述数据特别适用于应用设计的数据建模阶段目前主要的数据库厂商,都支持对象-关系数据模型缺点:描述形式相对复杂,数据处理效率降低增加了编程工作的复杂性真正基于对象的数据库系统还少见,目前还不是主流如何评价对象数据模型?1.4对象数据模型XML:ExtensibleMarkupLanguageDefinedbytheWWWConsortium(W3C)OriginallyintendedasadocumentmarkuplanguagenotadatabaselanguageTheabilitytospecifynewtags,andtocreatenestedtagstructuresmadeXMLagreatwaytoexchangedata,notjustdocumentsXMLhasbecomethebasisforallnewgenerationdatainterchangeformats.Awidevarietyoftoolsisavailableforparsing,browsingandqueryingXMLdocuments/data(XqueryLanguage)1.5XML数据模型为什么会出现XML数据模型?XML数据模型已得到普遍使用?异构数据的集成异构系统的互通互联和数据交换尤其是互联网应用的普及<course>

Thiscourseisbeingofferedforthefirsttimein2009.

<courseid>BIO-399</courseid>

<title>ComputationalBiology</title>

<deptname>Biology</deptname>

<credits>3</credits>

</course>XML数据模型的优缺点*优点:(1.13节&23章首页&23.6节)能够支持复杂数据类型和结构的描述可以新增标签和定义标签语义尤其适合于异构系统间的数据集成和数据交换,广泛应用于数据交换和复杂数据类型的存储XML数据可存储在非关系数据库中,也可存储在关系数据库中缺点:为半结构化数据描述形式相对复杂,数据处理效率降低增加了编程工作的复杂性尤其是要实现关系数据库特点(事务、安全性、高效存储访问)更为困难如何评价XML数据模型?1.5XML数据模型24一个大型DBS几乎用到所有数据库技术经常用到的技术,可从DBS的设计、开发和使用环节说起!Step1:需求分析 (数据流图---待续) 数据需求分析

(用户需求说明书)

*功能需求分析 (功能需求规格说明书)Step2:数据结构设计 概念设计

(概念模型-抽象结构,一般与DBMS无关) 逻辑设计

(逻辑模型-与DBMS密切相关)Step3:数据存储访问设计 数据存储设计(物理设计)(物理模型-与DBMS密切相关)

数据访问设计(物理设计)

(索引) 数据控制设计(完整性&安全性&视图)Step4:数据库实现(建立数据库,数据录入)------------------此外,应涉及的工作还有:----------------------Step5:*应用功能开发

(数据查询技术,嵌入式编程)Step6:系统运行&维护(数据结构更新,数据更新)Step7:*数据分析

(数据仓库,数据挖掘技术)二数据库系统的开发过程DBS开发涉及哪些数据库技术?DBS的设计有哪些主要环节?

主要环节:涉及数据库技术进行数据库设计首先必须准确的了解和分析用户需求。需求分析阶段是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建的数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。252.1数据需求分析涉及数据库技术26分析系统的业务处理流程分析流程中各个业务环节功能需求分析:业务环节中具体处理功能(编程要求)数据需求分析:处理功能中涉及哪些数据(数据库要求)分析产生结果:数据流图(处理功能+相关数据)主要:数据流图分析方法收集数据对象收集数据字典辅助:数据抽取分析方法E-R模型,统一建模语言UML

(初步,客户交流)数据视图应用需求分析的任务是什么?数据需求分析涉及哪些数据库技术?首页2.1数据需求分析涉及数据库技术27数据流程图(样例)《数据系统原理教程》王珊-清华大学,P185数据流图及作用?

(第二层数据流图)2.1数据需求分析涉及数据库技术28分析数据对象特征和使用需求建立数据模型(对象内部结构和外部关联)概念设计(抽象描述数据及关联)逻辑设计(确定便于实现的逻辑结构)特别指出,还应当包括:根据开发需要调整和选择数据模型 数据结构优化!分析和描述数据约束E-R模型,UML(概念设计) ---面向客观世界!关系数据模型(逻辑设计)对象数据模型(逻辑设计)---面向计算机实现!XML数据模型(逻辑设计)2.2数据结构设计涉及的数据库技术数据结构设计的任务是什么?数据结构设计涉及哪些数据库技术?概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体的DNMS的概念模型。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。29概念结构设计是什么?逻辑结构设计是什么?2.2数据结构设计涉及数据库技术30多层抽象概念(三层模式结构)物理层(Physicallevel):

(物理模式、内模式)

describeshowarecord(e.g.,customer)isstored.逻辑层(Logicallevel):

(逻辑模式、外模式)

describesdatastoredindatabase,andtherelationshipsamongthedata. type

customer=record

customer_id:string;

customer_name:string;

customer_street:string;

customer_city:integer;end;视图层(Viewlevel)/应用层:

(子模式、视图)

applicationprogramshidedetailsofdatatypes.Viewscanalsohideinformation(suchasanemployee’ssalary)forsecuritypurposes.三层模式之间如何关联,有何优点?如何体现数据结构的设计效率?2.2数据结构设计涉及数据库技术31三层模式两级映射及优点第一级映射第二级映射两级独立:

应用独立性!

物理独立性!首页2.2数据结构设计涉及数据库技术数据库物理设计是为逻辑数据模型选取一个最合适应用环境的物理结构(包括存储结构和存取方法)322.3数据库物理设计数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。332.4数据库实现数据库应用系统经过试运行后,即可投入正式运行。在数据库系统运行过程中必须不断对其进行评价、调整与修改。设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述几个阶段的不断反复的过程。342.5数据库运行和维护阶段35352.6数据库技术总结DBS开发涉及的数据库技术大型商用数据库产品(实现了上述各种数据库技术)1数据分析与挖掘应用开发应用设计和开发需求分析数据流图数据字典数据视图ER模型&UML结构设计E-R模型&URL对象数据模型关系数据模型XML数据模型存储访问SQL存储和文件结构查询处理查询优化信息检索索引与散列数据控制事务管理并发控制DBMS体系结构安全性控制并行数据库分布式数据库备份与恢复系统数据维护开发环节各环节涉及的数据库技术

数据库技术

温馨提示

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

评论

0/150

提交评论