1第二章地图数据模型2空间数据模型:不同的模型下有不同的空间要素认知、抽象和表达方式以及不同的空间关系定义。空间数据结构:不同空间数据模型在计算机内的存储和表达方式。空间数据组织:大量计算机化的空间数据的统一管理方式。现实空间世界空间数据模型空间数据结构组织与管理计算机存储认知与抽象空间数据库3主要内容:模型概念数据模型数据库技术与面向对象技术的结合地图数据基本表示方法空间数据模型地图数据结构设计地图数据库的数据组织与管理4§2.1模型概念一、数据抽象二、模型三、模型分类四、地图模型5一、数据抽象数据库系统是面向计算机的,而应用是面向现实世界的,两个世界存在着很大差异,要直接将现实世界中的语义映射到计算机世界是十分困难的,因此引入一个信息世界作为现实世界通向计算机实现的桥梁。一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去,在计算机系统上最终实现。信息世界起到了承上启下的作用。§2.1模型概念6现实世界信息世界计算机世界概念化(数据抽象)形式化(数据模型)用户计算机§2.1模型概念7§2.1模型概念二、模型1.定义模型是对现实世界的表达或描述,是现实世界的本质反映或科学抽象,可反映事物的固有特征及其相互联系的运动规律。2.模型特点用能理解的东西表示希望了解的东西模型不等于被描述的对象是一种普遍采用的科学研究的方法8模型举例:§2.1模型概念9模型举例:§2.1模型概念10§2.1模型概念三、模型分类1.模拟模型模拟模型以连续的方式表示对象。实物模型建筑物模型地形模型抽象模型三维的图像模型几何图系统图功能系统图二维的11§2.1模型概念2.数字模型用离散的、数学的方法表示原型。数学模型用数学的形式语言来描述对象。数据模型是关于数据和联系的逻辑组织形式的表示,是计算机数据处理中较教高层次的数据描述,它独立于任何的DBMS。12。应用概念数据模型结构数据模型§2.1模型概念13概念数据模型按用户的观点来对数据和信息建模。用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系。这类模型强调其语义表达能力,概念简单、清晰,易于用户理解。它是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言。如E-R模型。§2.1模型概念14结构数据模型从计算机实现的观点来对数据建模。是信息世界中的概念和联系在计算机世界中的表示方法。一般有严格的形式化定义,以便于在计算机上实现。如层次模型、网状模型、关系模型、面向对象模型。§2.1模型概念15§2.1模型概念每一个具体的数据库都由一个相应的数据模型来定义,数据模型最终成为一组被命名的逻辑数据单位以及它们之间的逻辑联系所组成的全体;每一种模型以不同的数据抽象与表示能力来反映客观事物,有其不同的处理数据联系的方式;建模的目的是以最佳的方式反映本部门的业务对象及信息流程,或以最佳的方式为用户提供访问数据库的逻辑接口。16§2.1模型概念四、地图模型地图模型是建立在严格数学基础之上的现实世界表象的模拟模型,具有物质模型和概念模型两个方面的特点。物质模型地图与它所反映的客观世界在结构上存在着极大的相似性,人们可以利用这个模型来分析、观察和认识客观世界及其联系,还可进行分析、量算。17§2.1模型概念概念模型地图是客观世界的一种科学抽象,地图上的内容是经过制图者思维加工的,有一定的主观因素,用途的不同,观察的角度不同,同一客观存在会有不同的概念模型。数字地图是一种数据模型,是用各种不同的数据结构来描述客观世界的。组织地图数据的方式是多种多样的,因而地图的数据模型有不同的形式。建立合适的地图数据模型,是地图数据库必须解决的重要问题。18§2.1模型概念地图数据模型的设计,实质是确定地图数据和表示方法,确定数据结构形式及数据文件的组织方式。19§2.2数据模型一、概念数据模型二、结构数据模型三、结构数据模型示例四、关系数据库20一、概念数据模型1976年,P.P.S.Chen提出E-R模型(Entity-RelationshipModel),用E-R图来描述概念模型。观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。§2.2数据模型21实体(Entity):客观存在并可相互区分的事物叫实体。如学生张三、工人李四、计算机系、数据库概论。属性(Attribute):实体所具有的某一特性。一个实体可以由若干个属性来刻画。例如,学生可由学号、姓名、年龄、系、年级等组成。域(Domain):属性的取值范围。例如,性别的域为(男、女),月份的域为1到12的整数。§2.2数据模型22实体型(EntityType):实体名与其属性名集合共同构成实体型。例,学生(学号、姓名、年龄、性别、系、年级)。注意实体型与实体(值)之间的区别,后者是前者的一个特例。如(9808100,王平,21,男,计算机系,2)是一个实体。实体集(EntitySet):同型实体的集合称为实体集。如全体学生。§2.2数据模型23码(Key):能唯一标识实体的属性或属性组称作超码。超码的任意超集也是超码。其任意真子集都不能成为超码的最小超码称为候选码。从所有候选码中选定一个用来区别同一实体集中的不同实体,称作主码。一个实体集中任意两个实体在主码上的取值不能相同。如学号是学生实体的码。通讯录(姓名,邮编,地址,电话,Email,BP)§2.2数据模型24联系(Relationship):实体之间的相互关联。如学生与老师间的授课关系,学生与学生间有班长关系。联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。同类联系的集合称为联系集。联系的种类实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。可以有一对一的(1:1),一对多的(1:m),多对多的(m:n)几种情况。§2.2数据模型25设有两个实体集E1,E2一对一:E1中的一个实体与E2中至多一个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系。如“职工”与“部门”之间的“管理”联系(假定每个部门只有一个经理,一个职工不能兼任两个部门经理。一对多:E1中的一个实体与E2中n(n≥0)个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系。如“教师”和“学生”之间的“班主任”联系。多对多:E1中的一个实体与E2中n(n≥0)个实体相联系,并且E2中的一个实体与E1中m(m≥0)一个实体相联系。如“学生”和“课程”之间的“选修”联系。§2.2数据模型26学生课程选修学号姓名系别课程名先修课主讲老师成绩矩形表示实体集,在框内写上实体名椭圆表示实体的属性无向边把实体与其属性连接起来菱形表示实体间的联系将参与联系的实体用线段连接学生选修课程mn联系的数量§2.2数据模型27二、结构数据模型结构数据模型的三要素:§2.2数据模型数据结构数据操作数据的约束条件281.数据结构描述系统的静态特性,即组成数据库的对象类型。包括:数据本身:类型、内容、性质。如网状模型中的数据项、记录,关系模型中的域、属性,关系等。数据之间的联系:例如网状模型中的系型(SetType)在数据库系统中一般按数据结构的类型来命名数据模型。§2.2数据模型29描述系统的动态特性,即对数据库中对象的实例允许执行的操作的集合,包括操作及操作规则。一般有检索、更新(插入、删除、修改)操作。数据模型要定义操作含义、操作符号、操作规则,以及实现操作的语言。§2.2数据模型2.数据操作3.数据的约束条件数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效、相容。30三、结构数据模型示例§2.2数据模型层次模型网状模型关系模型31用树结构表示实体之间联系的模型叫层次模型。树由节点和连线组成,节点代表实体型,连线表示两实体型间的一对多联系。树有以下特性:每棵树有且仅有一个节点无父节点,此节点称为树的根(Root)。树中的其它节点都有且仅有一个父节点。§2.2数据模型1.层次模型32§2.2数据模型中国(面积,人口,总产值)河北省(面积,人口,总产值)河南省(面积,人口,总产值)湖北省(面积,人口,总产值)……信阳市(面积,人口,总产值)郑州市(面积,人口,总产值)新乡市(面积,人口,总产值)……33优点:结构简单,易于实现。缺点:支持的联系种类太少,只支持二元一对多联系。数据操纵不方便,子结点的存取只能通过父结点来进行。代表产品:IBM的IMS数据库,1969年研制成功。§2.2数据模型34是一个满足下列条件的有向图:可以有一个以上的节点无父节点。至少有一个节点有多于一个的父节点(排除树结构)。§2.2数据模型2.网状模型信阳市驻马店市武汉市孝感市阜阳市南阳市洛阳市三门峡市宜昌市35特点:表达的联系种类丰富。结构复杂。DBTG报告:1969年,由美国CODASYC(ConferenceOnDataSystemLanguage,数据系统语言协商会)下属的DBTG(DataBaseTaskGroup)组提出,确立了网状数据库系统的概念、方法、技术。§2.2数据模型36用二维表来表示实体及其相互联系§2.2数据模型属性(域)元组姓名学号年龄系别张军09701023男数学系王红09702011女物理系李明09708250男计算机系3.关系模型:37优点:简单,表的概念直观,用户易理解。非过程化的数据请求,数据请求可以不指明路径。数据独立性,用户只需提出“做什么”,无须说明“怎么做”。坚实的理论基础。§2.2数据模型38四、关系数据库§2.2数据模型在上述三种数据模型中,由于关系模型概念简单、清晰,用户易懂易用,有严格的关系数据理论支持,简化了程序员的工作和数据库开发建立的工作,因而关系模型在诞生以后发展迅速,很快就成为深受用户欢迎的数据模型。目前市面上比较流行的数据库系统,如ORACLE,SYBASE,SQLSERVER,FoxPro等均为关系型数据库。39关系数据库是以关系模型为基础的数据库。关系模型由三部分组成:数据结构:在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系操作:关系代数(或等价的关系演算)中并、交、差、选择、投影、连接等。关系语言的特点是高度的非过程化,其操作方式的特点是集合操作,即操作的对象和结果是集合。1.基本概念§2.2数据模型40关系完整性:实体完整性、参照完整性和用户自己定义的完整性。实体完整性是保证数据库中记录的唯一性,即每个记录的主键不能为空值也不能与其它记录的主键相同。参照完整性是保证表与表之间语意上的完整性,即当一个表引用在另一个表中定义的实体时,要保证这个实体的有效性。这两种完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。§2.2数据模型41结构化查询语言(StructuredQueryLanguage,简称SQL)的理论是1974年提出的,并在IBM公司的SystemR上实现。由于它功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中倍受青睐,很快得以推广。后来,美国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句。SQL虽被称为“查询语言”,其功能却包括查询、操纵、定义和控制四个方面,是一个综合、通用、功能强大的关系数据库语言。2.结构化查询语言(SQL)§2.2数据模型42SQL的功能可以分成以下四类:数据定义:用于定义和修改数据库对象。如CREATETABLE(创建表)、DROPTABLE(删除表)等。数据操纵:对数据的增、删、改和查询操作。如SELECT(查询数据)、INSERT(插入记录)、DELETE(删除记录