精华内容
下载资源
问答
  •  缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能比面向过程低...
    面向过程 

      优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 

      缺点:没有面向对象易维护、易复用、易扩展 

       面向对象 

      优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 

      缺点:性能比面向过程低 

       面向对象程序设计的一些显著的特性包括: 

      .程序设计的重点在于数据而不是过程; 

      .程序被划分为所谓的对象; 

      .数据结构为表现对象的特性而设计; 

      .函数作为对某个对象数据的操作,与数据结构紧密的结合在一起; 

      .数据被隐藏起来,不能为外部函数访问; 

      .对象之间可以通过函数沟通; 

      .新的数据和函数可以在需要的时候轻而易举的添加进来; 

      .在程序设计过程中遵循由下至上(bottom-up)的设计方法。 

      面向对象程序设计在程序设计模式中是一个新的概念,对于不同的人可能意味着不同的内容。我们对面向对象程序设计的定义是”面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。这样的程序设计方法称为面向对象程序设计。” 

      从以上定义可以看到,一个对象被认为是计算机内存中的一个独立区间,在这个区间中保存着数据和能够访问数据的一组操作。因为内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。 

       什么是面向对象程序设计? 

      面向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而给你的程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,你会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。同时,你会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。当你定义了一个对象,你就隐含的创建了一个新的数据类型。 

       对象 

      在一个面向对象的系统中,对象是运行期的基本实体。它可以用来表示一个人或者说一个银行帐户,一张数据表格,或者其它什么需要被程序处理的东西。它也可以用来表示用户定义的数据,例如一个向量,时间或者列表。在面向对象程序设计中,问题的分析一般以对象及对象间的自然联系为依据。如前所述,对象在内存中占有一定空间,并且具有一个与之关联的地址,就像Pascal中的record和 C中的结构一样。 

      当一个程序运行时,对象之间通过互发消息来相互作用。例如,程序中包含一个”customer”对象和一个 “account”对象,而customer对象可能会向account对象发送一个消息,查询其银行帐目。每个对象都包含数据以及操作这些数据的代码。即使不了解彼此的数据和代码的细节,对象之间依然可以相互作用,所要了解的只是对象能够接受的消息的类型,以及对象返回的响应的类型,虽然不同的人会以不同的方法实现它们。 

       类 

      我们刚才提到,对象包含数据以及操作这些数据的代码。一个对象所包含的所有数据和代码可以通过类来构成一个用户定义的数据类型。事实上,对象就是类类型(class type)的变量。一旦定义了一个类,我们就可以创建这个类的多个对象,每个对象与一组数据相关,而这组数据的类型在类中定义。因此,一个类就是具有相同类型的对象的抽象。例如,芒果、苹果和桔子都是fruit类的对象。类是用户定义的数据类型,但在一个程序设计语言中,它和内建的数据类型行为相同。比如创建一个类对象的语法和创建一个整数对象的语法一模一样。 

       数据抽象和封装 

      把数据和函数包装在一个单独的单元(称为类)的行为称为封装。数据封装是类的最典型特点。数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为”数据隐藏”。 

      抽象指仅表现核心的特性而不描述背景细节的行为。类使用了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重量和价格,以及操作这些属性的函数。类封装了将要被创建的对象的所有核心属性。因为类使用了数据抽象的概念,所以它们被称为抽象数据类型(ADT)。 

      封装 

      封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。 

      在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。 

       继承 

      继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。例如,知更鸟属于飞鸟类,也属于鸟类。这种分类的原则是,每一个子类都具有父类的公共特性。 

      在 OOP中,继承的概念很好的支持了代码的重用性(reusability),也就是说,我们可以向一个已经存在的类中添加新的特性,而不必改变这个类。这可以通过从这个已存在的类派生一个新类来实现。这个新的类将具有原来那个类的特性,以及新的特性。而继承机制的魅力和强大就在于它允许程序员利用已经存在的类(接近需要,而不是完全符合需要的类),并且可以以某种方式修改这个类,而不会影响其它的东西。 

      注意,每个子类只定义那些这个类所特有的特性。而如果没有按级分类,每类都必须显式的定义它所有的特性。 

       多态 

      多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。举个例子,对于不同的实例,某个操作可能会有不同的行为。这个行为依赖于所要操作数据的类型。比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。 

      多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。 

      面向对象程序设计语言支持多态,术语称之为”on e interface multiple method(一个接口,多个实现)”。简单来说,多态机制允许通过相同的接口引发一组相关但不相同的动作,通过这种方式,可以减少代码的复杂度。在某个特定的情况下应该作出怎样的动作,这由编译器决定,而不需要程序员手工干预。 

      在多函数程序中,许多重要的数据被声明为全局变量,这样它们才可以被所有的函数访问。每个函数又可以具有它自己的局部变量。全局变量很容易被某个函数不经意之间改变。而在一个大程序中,很难分辨每个函数都使用了哪些变量。如果我们需要修改某个外部数据的结构,我们就要修改所有访问这个数据的函数。这很容易导致bug的产生。 

      在结构化程序设计中,另一个严重的缺陷是不能很好的模拟真实世界的问题。这是因为函数都是面向过程的,而不是真正的对应于问题中的各个元素。 

       面向过程的程序设计的一些特点如下  

      .强调做(算法); 

      .大程序被分隔为许多小程序,这些小程序称为函数; 

      .大多数函数共享全局数据; 

      .数据开放的由一个函数流向另一个函数。函数把数据从一种形式转换为另一种形式。 

      采用由上至下的程序设计方法。 

       动态绑定 

      绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定的意思是,与给定的过程调用相关联的代码只有在运行期才可知。它与多态和继承的联系极为紧密。一个多态引用的函数调用决定于这个引用的动态类型。 

       消息传递 

      一个面向对象的程序由许多对象组成,这些对象之间需要相互沟通。因此,在面向对象程序设计语言中,程序设计的主要步骤如下: 

      1、创建类,这些类定义了对象及其行为; 

      2、由类定义创建对象; 

      3、建立对象之间的通讯。 

      对象之间通过收发信息相互沟通,这一点类似于人与人之间的信息传递。信息传递的概念使得真实世界的直接模拟更易于和建立系统交流。 

      对于某个特定对象来说,消息就是请求执行某个过程,因此,消息的接收对象会调用一个函数(过程),以产生预期的结果。传递的消息的内容包括接收消息的对象的名字,需要调用的函数的名字,以及必要的信息。 

      对象就有一个生命周期。它们可以被创建和销毁。只要对象正处于其生存期,就可以与其进行通讯。 

       OOP的优点 

      OOP具有许多优点,无论是对于程序设计者或者用户来说都是如此。面向对象为软件产品扩展和质量保证中的许多问题提供了解决办法。这项技术能够大大提高程序员的生产力,并可提高软件的质量以及降低其维护费用。其主要的优点陈列于下: 

      1、通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途; 

      2、我们可以在标准的模块上(这里所谓的”标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率; 

      3、数据隐藏的概念帮助程序员们保护程序免受外部代码的侵袭; 

      4、允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰; 

      5、允许将问题空间中的对象直接映射到程序中; 

      6、基于对象的工程可以很容易的分割为独立的部分; 

      7、以数据为中心的设计方法允许我们抓住可实现模型的更多细节; 

      8、面向对象的系统很容易从小到大逐步升级; 

      9、对象间通讯所使用的消息传递技术与外部系统接口部分的描述更简单; 

      10、更便于控制软件复杂度。 

      当需要将以上所说的所有特性有机的结合于一个面向对象系统中,它们之间的相对重要性就取决于工程的类型和程序员的喜好。为了获得上述的某些优势,必须考虑很多事情。例如,对象库必须可以被重用。技术还在不停的发展,现有的产品也会很快的更新换代。如果重用没有能够实现,那么就需要进行严格的控制和管理。 

      易于使用的开发软件往往难以编写。面向对象程序设计工具有望解决这个问题。 

       面向对象程序设计语言 

      面向对象技术并不是某个特定语言的特权。如同结构化程序设计一样,OOP概念可以在很多语言比如C和Pascal中实现。但是,当程序越来越大时,程序设计工作会变得拙劣而混乱。而一个支持OOP概念的程序设计语言则可以让一切变得简单。 

      一个语言必须支持几个主要的OOP概念才能称其是面向对象的。根据所支持的OOP特性,语言可以分为以下两类: 

      1、基于对象的程序设计语言; 

      2、面向对象的程序设计语言。 

      基于对象的程序设计语言仅支持封装和对象辨识。 

      一个面向对象的程序设计语言所要支持的重要特性如下: 

      .数据封装 

      .数据隐藏和访问机制 

      .对象的自动初始化和清除 

      .操作符重载 

      支持对象风格程序设计的语言称为基于对象的程序设计语言。它们不支持继承和动态绑定。 

      Ada就是一个典型的基于对象的程序设计语言。 

      面向对象的程序设计不仅仅包含基于对象程序设计的特性,还支持继承和动态绑定。 

      OOP的应用 

       OOP最有前途的应用领域如下 : 

      1、实时系统; 

      2、仿真和建模; 

      3、面相对象数据库; 

      4、超文本、超媒体和扩展文本; 

      5、AI和专家系统; 

      6、神经网络和并行程序设计; 

      7、决策支持和 办公 自动化系统; 

      8、CIM/CAM/CAD系统。 

      Via 

      业务逻辑比较简单的适合用面向过程,例如统计当前在线用户数,一条SQL语句就可以搞定的没有多大必要用面向对象,也没有必要用什么设计模式,那样就是简单问题复杂化了。 

      业务逻辑比较复杂的适合用面向对象,这样当需求有变化时,维护起来会比较方便。 

      面向对象的局部是面向过程的,比如某个类里面某个方法里面实际就是面向过程的,而面向过程会借用面向对象的一些优点来进行优化。 

       网上发现了一篇文章,说了一下OP与OO的不同,并且打了一个比喻,通俗易懂。 

      有人这么形容OP和OO的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。 

      蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。 

      蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。 

      到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。 

      盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是”可维护性”比较好,”饭” 和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。
    展开全文
  • 两大类数据模型客观对象的抽象过程---两步抽象3.数据模型的组成要素(1)数据结构(2)数据操作(3)数据的完整性约束条件4.概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体型之间的联系① 一对一联系(1:1...


    0.思维导图

    在这里插入图片描述

    1.数据模型的概念

    • 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
    • 通俗地讲数据模型就是现实世界的模拟

    数据模型应满足三方面要求:

    • 能比较真实地模拟现实世界
    • 容易为人所理解
    • 便于在计算机上实现

    2.两大类数据模型

    数据模型分为两类(分属两个不同的层次)

    • (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
    • (2) 逻辑模型物理模型
      逻辑模型主要包括网状模型层次模型关系模型面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
      物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

    客观对象的抽象过程—两步抽象

    • 现实世界中的客观对象抽象为概念模型
    • 概念模型转换为某一DBMS支持的数据模型
      在这里插入图片描述

    3.数据模型的组成要素

    (1)数据结构

    数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面:
    (1)数据本身:类型、内容、性质。例如关系模型中的域、属性、关系等。
    (2)数据之间的联系:数据之间是如何相互关联的,例如关系模型中的主码、外码联系等。

    (2)数据操作

    数据操作

    • 对数据库中各种对象(型)实例(值)允许执行的操作,及有关的操作规则

    数据操作的类型

    • 查询
    • 更新(包括插入、删除、修改)

    (3)数据的完整性约束条件

    • 数据的完整性约束条件是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。

    完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则

    4.概念模型

    (1)用途与基本要求

    概念模型的用途:

    • 概念模型用于信息世界的建模
    • 是现实世界到机器世界的一个中间层次
    • 是数据库设计的有力工具
    • 数据库设计人员和用户之间进行交流的语言

    对概念模型的基本要求:

    • 较强的语义表达能力
    • 能够方便、直接地表达应用中的各种语义知识
    • 简单、清晰、易于用户理解

    (2) 信息世界中的基本概念

    • (1) 实体(Entity)
      客观存在并可相互区别的事物称为实体。
      可以是具体的人、事、物或抽象的概念。
    • (2) 属性(Attribute)
      实体所具有的某一特性称为属性。
      一个实体可以由若干个属性来刻画。
    • (3) (Key)
      唯一标识实体的属性集称为码。
      (4) (Domain)
      属性取值范围称为该属性的域。
    • (5) 实体型(Entity Type)
      实体名及其属性名集合来抽象和刻画同类实体称为实体型
    • (6) 实体集(Entity Set)
      同一类型实体的集合称为实体集
    • (7) 联系(Relationship)
      • 现实世界中事物内部以及事物之间联系在信息世界中反映为实体内部的联系和实体之间的联系。
      • 实体内部的联系通常是指组成实体的各属性之间的联系
      • 实体之间的联系通常是指不同实体集之间的联系

    (3)两个实体型之间的联系

    在这里插入图片描述

    ① 一对一联系(1:1)

    实例

    • 一个班级只有一个正班长
    • 一个班长只在一个班中任职
      在这里插入图片描述

    定义:
    如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然。则称实体集A与实体集B具有一对一联系,记为1:1

    ② 一对多联系(1:n)

    实例

    • 一个班级中有若干名学生,
    • 每个学生只在一个班级中学习
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n

    ③ 多对多联系(m:n)

    实例

    • 课程与学生之间的联系:
    • 一门课程同时有若干个学生选修
    • 一个学生可以同时选修多门课程
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n

    (4)两个以上实体型之间的联系

    ① 一对多联系(1:m||1:n)

    • 若实体集E1,E2,…,En存在联系,对于实体集Ej(j=1,2,…,i-1i+1,…,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1E2,…,Ei-1,Ei+1,…,En之间的联系是一对多的。

    实例

    • 课程、教师与参考书三个实体型
      一门课程可以有若干个教师讲授,
      使用若干本参考书,
      每一个教师只讲授一门课程,
      每一本参考书只供一门课程使用

    在这里插入图片描述

    ② 一对一联系(1:1:1)

    实例

    • 一个独生子女只有一个父亲,一个母亲
    • 一个父亲也只有一个独生子女
    • 一个母亲也只有一个独生子女
      在这里插入图片描述

    ③ 多对多联系(m:n:p)

    实例
    供应商、项目、零件三个实体型
    一个供应商可以供给多个项目多种零件
    每个项目可以使用多个供应商供应的零件
    每种零件可由不同供应商供给
    在这里插入图片描述

    (5)单个实体型内的联系

    ① 一对多联系(1:n)

    实例
    职工实体型内部具有领导与被领导的联系
    某一职工(干部)“领导”若干名职工
    一个职工仅被另外一个职工直接领导
    这是一对多的联系

    在这里插入图片描述

    ② 一对一联系(1:1)

    • 身份证可以唯一确认一个人的身份,人与身份证有确认和被确认的关系
    • 一个身份证唯一确定一个人
    • 一个人也唯一确认一个身份证
      在这里插入图片描述

    ③ 多对多联系 (m:n)

    • 饮料和厂商之间有制造和被制造的关系
    • 多个饮料可以被多个厂商制造
    • 多个厂商可以制造出多种饮料
      在这里插入图片描述

    (6)概念模型的一种表示方法

    ① 实体-联系方法(E-R方法)

    • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用E-R图来描述现实世界的概念模型
    • E-R方法也称为E-R模型

    ② 实体型

    用矩形表示,矩形框内写明实体名。
    在这里插入图片描述

    ③ 属性

    用椭圆形表示,并用无向边将其与相应的实体连接起来
    在这里插入图片描述

    ④ 联系

    • 联系本身:
      用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
      在这里插入图片描述

    ⑤ 联系的表示方法

    在这里插入图片描述

    ⑥ 联系的表示方法示例

    在这里插入图片描述

    ⑦ 联系的属性

    • 联系本身也是一种实体型也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
      在这里插入图片描述

    ⑧ 一个实例

    用E-R图表示某个工厂物资管理的概念模型

    • 实体
      仓库: 仓库号、面积、电话号码
      零件 :零件号、名称、规格、单价、描述
      供应商:供应商号、姓名、地址、电话号码、帐号
      项目:项目号、预算、开工日期
      职工:职工号、姓名、年龄、职称

    实体之间的联系如下:

    • (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
      (2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
      (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
      (4)供应商、项目和零件三者之间具有多对多的联系
      在这里插入图片描述

    5.非关系模型

    (1)层次模型(Hierarchical Model)

    • 层次模型是数据库系统中最早出现的数据模型
    • 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
    • 层次模型用树形结构来表示各类实体以及实体间的联系

    ① 数据结构

    满足下面两个条件的基本层次联系的集合为层次模型

    • 有且只有一个结点没有双亲结点,这个结点称为根结点
    • 根以外的其它结点有且只有一个双亲结点

    层次模型中的几个术语
    根结点,双亲结点,兄弟结点,叶结点
    在这里插入图片描述

    ② 特点

    • 结点的双亲是唯一
    • 只能直接处理一对多的实体联系
    • 每个记录类型可以定义一个排序字段,也称为·码字段
    • 任何记录值只有按其路径查看时,才能显出它的全部意义
    • 没有一个子女记录值能够脱离双亲记录值而独立存在

    在这里插入图片描述
    在这里插入图片描述

    ③ 多对多联系在层次模型中的表示

    方法:

    • 将多对多联系分解成一对多联系

    分解方法:

    • 冗余结点法
    • 虚拟结点法

    ④ 数据操纵与完整性约束

    层次模型的数据操纵:

    • 查询
    • 插入
    • 删除
    • 更新

    层次模型的完整性约束条件:

    • 无相应的双亲结点值就不能插入子女结点值
    • 如果删除双亲结点值,则相应的子女结点值也被同时删除
    • 更新操作时,应更新所有相应记录,以保证数据的一致性

    ⑤ 存储结构

    邻接法:
    按照层次树前序遍历(T-L-R)的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。又可分为:子女-兄弟链接法层次序列链接法

    在这里插入图片描述

    ❶ 子女-兄弟链接法
    • 每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟
      在这里插入图片描述
    ❷ 层次序列链接法
    • 按树的前序穿越顺序链接各记录值
      在这里插入图片描述

    ⑥ 优缺点

    • 优点:
      层次模型的数据结构比较简单清晰
      查询效率高,性能优于关系模型,不低于网状模型
      层次数据模型提供了良好的完整性支持
    • 缺点:
      多对多联系表示不自然
      插入删除操作的限制多,应用程序编写比较复杂
      查询子女结点必须通过双亲结点
      由于结构严密,层次命令趋于程序化

    (2)网状模型(Network Model)

    网状数据库系统采用网状模型作为数据的组织方式

    • 典型代表是DBTG系统:
      亦称CODASYL系统
      70年代由DBTG提出的一个系统方案
      奠定了数据库系统的基本概念、方法和技术
    • 实际系统:
      Cullinet Software Inc.公司的 IDMS
      Univac公司的 DMS1100
      Honeywell公司的IDS/2
      HP公司的IMAGE

    ① 数据结构

    网状模型:
    满足下面两个条件的基本层次联系的集合:

    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。

    表示方法(与层次数据模型相同):
    实体型:用记录类型描述
    每个结点表示一个记录类型(实体)
    属性:用字段描述
    每个记录类型可包含若干个字段
    联系:用结点之间的连线表示记录类型(实体)之
    间的一对多的父子联系

    网状模型与层次模型的区别:

    • 网状模型允许多个结点没有双亲结点
    • 网状模型允许结点有多个双亲结点
    • 网状模型允许两个结点之间有多种联系(复合联系)
    • 网状模型可以更直接地去描述现实世界
    • 层次模型实际上是网状模型的一个特例

    网状模型中子女结点与双亲结点的联系可以不唯一
    要为每个联系命名,并指出与该联系有关双亲记录子女记录
    在这里插入图片描述
    在这里插入图片描述

    多对多联系在网状模型中的表示:
    方法:将多对多联系直接分解成一对多联系

    例如:一个学生可以选修若干门课程,·某一课程可以被多个学生选修,学生与课程之间是多对多联系 ·

    • 引进一个学生选课的联结记录,由3个数据项组成
      学号
      课程号
      成绩
      表示某个学生选修某一门课程及其成绩

    在这里插入图片描述

    ② 网状数据模型的操纵与完整性约束(续)

    网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束

    • :唯一标识记录的数据项的集合
    • 一个联系中双亲记录子女记录之间是一对多联系
    • 支持双亲记录和子女记录之间某些约束条件

    ③ 存储结构

    关键:

    • 实现记录之间的联系

    常用方法:

    • 单向链接
    • 双向链接
    • 环状链接
    • 向首链接

    在这里插入图片描述

    ④ 优缺点

    • 优点
      能够更为直接地描述现实世界,如一个结点可以有多个双亲;
      具有良好的性能,存取效率较高;

    • 缺点
      结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
      DDL、DML语言复杂,用户不容易使用;

    6.关系模型

    关系数据库系统采用关系模型作为数据的组织方式
    1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
    计算机厂商新推出的数据库管理系统几乎都支持关系模型

    (1)数据结构

    在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由组成。
    几个名词解释:

    • 关系(Relation)
      一个关系对应通常说的一张表

    • 元组(Tuple)
      表中的一行即为一个元组

    • 属性(Attribute)
      表中的一列即为一个属性,给每一个属性起一个名称即属性名

    • 主码(Key)
      表中的某个属性组,它可以唯一确定一个元组

    • (Domain)
      属性的取值范围。

    • 分量
      元组中的一个属性值。

    • 关系模式
      对关系的描述
      关系名(属性1,属性2,…,属性n)
      学生(学号,姓名,年龄,性别,系,年级)
      在这里插入图片描述
      举几个例子:

    • 例1
      学生、系、系与学生之间的·一对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      系 (系号,系名,办公地点)

    • 例2
      系、系主任、系与系主任间的一对一联系

    • 例3
      学生、课程、学生与课程之间的多对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      课程(课程号,课程名,学分)
      选修(学号课程号,成绩)

    规范化:

    • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
    • 图1.27中工资和扣除是可分的数据项 ,不符合关系模型要求
      在这里插入图片描述

    在这里插入图片描述

    (2)关系数据模型的操纵与完整性约束

    • 数据操作是集合操作,操作对象和操作结果都是关系
      查询
      插入
      删除
      更新

    • 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”

    • 关系的完整性约束条件
      实体完整性
      参照完整性
      用户定义的完整性

    (3)存储结构

    • 实体及实体间的联系都用来表示
    • 表以文件形式存储
      有的DBMS一个表对应一个操作系统文件;
      有的DBMS自己设计文件结构;

    (4)优缺点

    • 优点
      • 建立在严格的数学概念的基础上;
      • 概念单一:
        实体和各类联系都用关系来表示;
        对数据的检索结果也是关系;
      • 关系模型的存取路径对用户透明;
        具有更高的数据独立性,更好的安全保密性
        简化了程序员的工作和数据库开发建立的工作;
    • 缺点
      • 存取路径对用户透明导致查询效率往往不如非关系数据模型;
      • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度;

    7.面向对象数据模型

    • 语义数据模型面向对象程序设计方法结合起来,用面向对象观点来描述现实世界实体(对象)的逻辑组织对象间限制联系等的模型

    • 一系列面向对象核心概念构成了面向对象数据模型( Object Oriented Data Model, 00模型)的基础,主要包括以下一些概念:

      • (1)现实世界中的任何事物都被建模为对象。每个对象具有一个唯一的对象标识
        (OID)。
      • (2)对象是其状态和行为的封装,其中状态是对象属性值的集合,行为是变更对象状
        态的方法集合。
      • (3)具有相同属性和方法的对象的全体构成了类,类中的对象称为类的实例。
      • (4)类的属性的定义域也可以是类,从而构成了类的复合。类具有继承性,一个类可以继承另一个类的属性与方法,被继承类和继承类也称为超类和子类。类与类之间的复合与继承关系形成了一个有向无环图,称为类层次。
      • (5)对象是被封装起来的,它的状态和行为在对象外部不可见,从外部只能通过对象显式定义的消息传递对对象进行操作。
    • 面向对象数据库(OODB)的研究始于20世纪80年代,有许多面向对象数据库产品相继问世,较著名的有Object Store、02、ONTOS等。

    • 与传统数据库一样,面向对象数据库系统对数据的操纵包括数据查询、增加、删除、修改等,也具有并发控制、故障恢复、存储管理等完整的功能。不仅能支持传统数据库应用,也能支持非传统领域的应用,包括CAD/CAM、OA、CIMS、GIS以及图形、图像等多媒体领域、工程领域和数据集成等领域。

    • 尽管如此,由于面向对象数据库操作语言过于复杂,没有得到广大用户,特别是开发人员的认可,加上面向对象数据库企图完全替代关系数据库管理系统的思路,增加了企业系统升级的负担,客户不接受,·面向对象数据库产品终究没有在市场上获得成功。

    8.对象关系模型

    • 对象关系数据库系统(Object Relational DataBase System, ORDBS) 是关系数据库面向对象数据库的结合。
    • 它保持了关系数据库系统的非过程化数据存取方式和数据独立性,继承了关系数据库系统已有的技术,支持原有的数据管理,又能支持00模型和对象管理。各数据库厂商都在原来的产品基础上进行了扩展。
    • 1999 年发布的SQL标准(也称为SQL99),增加了SQL/Object Language Binding, 提供了面向对象的功能标准。SQL99对ORDBS标准的制定滞后于实际系统的实现。所以各个ORDBS产品在支持对象模型方面虽然思想一致,但是所采用的术语、语言语法、扩展的功能都不尽相同。
    展开全文
  • 1.引言  经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的...为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型面向实体的数据模型,并分析了

    1.引言

      经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的GIS仍然是以数据为中心的,在完整表达客观地理世界、进行高层次的空间分析和直接提出决策方案的能力方面还远远不够,导致这种情况的根本原因在于现有GIS的数据模型不能准确地表达客观地理世界。为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型和面向实体的数据模型,并分析了它们各自的优缺点,指出应该在整体论的基础上为地理空间建立一个能够直接反映人们认知的整体数据模型。

    2.面向对象的整体数据模型

      GIS本质上是对客观地理世界的近似模拟,其理想状态应该是尽可能准确地反映地理世界,同时做到数据量最小,又便于人们从中获取所需要的信息和规律。要达到这种理想状态,我们需要做好两步工作:1)准确理解地理空间;2)为地理空间建立面向对象的整体数据模型---一个基于地理空间整体论、完全以面向对象方式组织的GIS数据模型。


      地理空间的理解可以简单概括为[1]:地理空间是一个目标组合排列集,每个目标或说对象都具有位置、属性和时间信息,及与其它对象的拓扑关系、语义关系等。基于这一认识,我们可以得到,表达地理空间的整体GIS数据模型有如下特征:


      ■ 将地理空间按照人的思维方式理解为基于目标的空间和定义在地球表层目标集上的关系。除了要研究对象的几何位置及拓扑关系外,还要重视研究对象间的语义关系。


      ■ 整体数据模型虽然要求我们将客观世界作为整体看待,但在执行具体的数据组织时也需要对众多的地理实体进行分层。分层是基本的和必要的,但由于为一种目的进行的分层很难满足另外的需求,因此重要的不是提供一种通用的分层,而是对方便地加入、删除对象等维护层的操作予以足够的支持。复合图层含有不按对象维数分层的含义,能够很好地体现客观 世界的整体特征,为不同层中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,整体数据模型尤其应该增强复合图层的功能,使用户能够自由地加入、删除、修改、查询任意类型(点、线、面和复杂实体)的地理实体,同时能够进行强大的空间分析;


      ■ 虽然传统的GIS数据模型常将基于对象的模型用矢量结构表达,而将基于场的模型用栅格结构表达[2][3],其实可将对象和连续场这两种看似对立的模型统一在面向对象的整体数据模型中,因为面向对象的方法作为一种框架不仅可以描述基于对象的模型,也可以描述基于场的模型[3][4]。


      ■ 空间对象是处在三维空间中的,并具有多尺度特征。


      ■ 整个数据模型完全以面向对象的方式组织。


      由上可见,在整体数据模型中,地理空间被表达为一个具有相互关系的对象集。每个对象不仅具有自己的几何信息、属性信息和时间信息,而且与其它对象之间具有拓扑关系和语义关系。所有这些信息在整体数据模型中都处于同等重要的地位,其中起着连接作用的是对象本身。根据对象的形状特点,同时为了方便计算机实现与管理,我们可以将地理空间中的对象分为5种基本对象:点、线、面、注记和复杂对象。其中,前面四种对象比较简单,统称为简单对象,这里只介绍第5种对象---复杂对象。


      复杂对象是由简单对象组合派生的,可以划分为如下两种类型:


    1)单纯型复杂对象


      多个同样类型的对象合并成为一个单纯型复杂对象。·复杂点:点群,由多个点状对象构成的集合,整个集合是一个对象,如聚集在一起的多个水文站等;?复杂线:线群,由多个线状对象构成的集合,整个集合是一个对象,如一线状水系,一径流网络等;·复杂面:面群,由多个面状对象构成的集合,整个集合是一个对象,如一湖泊群,一海洋群岛等。


    2)混合型复杂对象


      点、线、面共存的复杂对象。混合型复杂对象的混合种类包括:点与线混合,点与面混合、线与面混合及点、线、面同时存在的混合,多个不同类型对象合并成一个就构成了混合型复杂对象,因此混合型复杂对象不属于点、线、面中的某一基本类型,在属性上也就不具备这些基本类型对象的一些特有信息,如线对象的长度,面对象的面积和周长等,这在数据库表结构的设计中要予以必要的考虑。


      单纯型复杂对象可以在相应类型的简单对象集中存贮和在相应图层中显示,也可以在复合对象集中存贮和在复合图层中显示;混合型复杂对象只能在复合对象集中存贮和在复合图层中显示,它们不适合存入简单对象集,也不宜在点、线、面简单图层中显示,因为它们的加入会破坏简单对象集和简单图层的专题特性,也不便于管理。


      上面介绍的这5种对象在地理空间中都是以三维形态存在的,但由于三维GIS建设的成本较高,在技术实现上也有相当的难度,而目前二维GIS能够满足大部分实际需求,因此我们在表达三维客观地理世界、实现整体GIS数据模型时以开发二维GIS为主,而在某些需要查看具体三维细节的地方提供机制以表现其三维结构,例如可以另开辟一个小的三维地图窗口来表现对象的三维形状、结构和拓扑关系等。


      时间问题[5]-[8]、语义关系和拓扑关系[9]-[11]一直是GIS界长期研究的热点,虽然它们在整体数据模型里面占有很重要的位置,但是本文的重点在于确定整个数据模型和系统的总体组织,对它们的具体讨论将在以后逐步展开。

    3 系统数据组织

    3.1 对象集

      对象集是指由众多对象构成的集合。划分对象集的目的在于存储和管理对象的方便,它可以是由同种几何类型的对象构成的集合,也可以是由不同类型对象组成的集合。在整体GIS数据模型中,有如下三类对象集:


      ■ 简单对象集:包括简单点对象集、线对象集、面对象集和注记对象集四类;点对象集是由简单点对象或单纯型复杂点对象组成的集合,线对象集是由简单线对象或单纯型复杂线对象组成的集合,面对象集是由简单面对象或单纯型复杂面对象组成的集合。简单对象集也可称为专题对象集。


      ■ 复合对象集:由简单点、线、面对象、注记对象、单纯型复杂对象或混合型复杂对象等不同类型对象组成的集合。在这种对象集合中,可以包含任意类型的对象元素;


      ■ 场:场是由有机关联的对象构成的集合,其中的元素在几何上不再相互独立,而是紧密相关,这一点与以上两种对象集不同。如TIN、GRID、影像和网络等。场中的元素对象一般较多,场本身就是一个对象集,因此我们在概念上不再另设场对象和场对象集。


      由上可见,对象类型与对象集类型并不是完全一一对应的,例如:单纯型复杂线对象与简单线对象一样分别存贮与显示在简单线对象集和简单线图层中,不必要专门的单纯型复杂线对象集和单纯型复杂线图层来存贮和显示。


      除了点、线、面三种单纯型复杂对象外,其它各种对象(点、线、面简单对象、注记对象和混合型复杂对象)与对象集类型都是一一对应的。另外,场是一种对象集,不过由于其中的元素并不是场对象(没有场对象概念),因而场与场中的元素也不存在一一对应的关系,但在实现时开发者完全可以设计一个场类来管理各种各样的场。


      值得指出的是,整体GIS数据模型认为人们感知的客观世界是一个由众多类型不同的地理实体组成的整体世界,而不是人为分割的、僵化的对象层,但由于分层能够为GIS管理和显示地理对象提供极大的方便,因此我们在基本分层(在本文中是对象集)的基础上,特别提出并强调复合对象集的概念,以此来表达和实现整体GIS数据模型的整体思想。复合对象集打破了GIS中传统分层的框架,为不同对象集中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,但同时也为系统开发和管理带来了一定难度。比如,单纯型对象集的显示、修改、存贮、管理、分析和输出都可采用统一的方法进行,而复合对象集的这些操作则必须在内部进行分别处理(按对象类型)。虽然如此,但单纯型对象集与复合对象集都是为了满足不同的用户需求而设计的,二者在对象组织、系统实现和空间分析上各有优缺点,一个功能强大的GIS应该同时支持它们。

    3.2 图层

      对象集加上自己特有的显示属性即是图层,因此对象集类型与图层类型是一一对应的。由于对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此图层也有相应的点、线、面、注记图层、复合图层和场图层6种基本类型。对象集用来存贮对象的空间与属性数据,而图层则用来设置对象集的显示风格并控制对象集的显示范围、显示比例和操作特性(如可显示、可选择、可编辑和可捕捉等),二者各司其职又相互联系。在对应关系上,一个图层只对应一个对象集,而一个对象集却可显示在不同的地图窗口中对应多个图层,因此对象集与图层之间的关系是一对多的关系。

    3.3 数据库

      我们这里所说的数据库是指广义的数据库,其定义为“存贮对象的集合”。物理上不管是以文件形式还是以商业数据库形式存在,只要存贮有对象,我们都称为数据库。就综合性能而言,一般是文件系统在小量数据方面有自己的长处,而商业数据库则对大量数据的支持有着文件系统无法替代的优势。


    3.4 地图或地图窗口

      对象集是用来存贮地理对象的,图层是用来控制对象的显示的,两者都不等同于地图或地图窗口。我们的地图或地图窗口是一种框架,是显示对象的实际载体,也是控制图层并对之进行操作和分析的主体。

    3.5 工作空间

      工作空间是为系统管理方便而设计的,相当于一个大的仓库,里面存贮有数据的基本信息,如数据库的名字与尺寸、地图和其它资源(如点、线、面型符号)。系统运行时可调入数据库对之进行管理控制。

    展开全文
  • 关系数据库系统与面向对象数据库系统各自的优缺点 关系数据库系统的优点 a.灵活性和建库的简单性:目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。 b....

    关系数据库系统与面向对象数据库系统各自的优缺点

    • 关系数据库系统的优点

    • a.灵活性和建库的简单性:目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。

    • b.结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元组),可为用户或程序提供多个复杂的视图。

    • 关系数据库系统的缺点

    • a.数据类型表达能力差:理论上看关系数据模型不直接支持复杂的数据类型,所有的数据必须转换为简单的类型,如整数、实数、双精度数和字符串。这种不能支持复杂数据类型的典型结果就是需要额外地分解数据结构工作,且从基本成分重构时也非常繁琐和费时间。

    • b.复杂查询功能差:关系数据库系统的某些优点也同时是它的不足之处。虽然SQL语言为数据查询提供了很好的定义方法,但当用于复杂信息的查询时可能是非常繁琐的。

    • c.支持长事务能力差;由于RDBMS记录锁机制的颗粒度限制,对于支持多种记录类型的大段数据的登记和检查来说,简单的记录级的锁机制是不够的,但基于键值关系的较复杂的锁机制来说却很难推广也难以实现。

    • d.环境应变能力差:在要求系统频繁改变的环境下,关系系统的成本高且修改困难。

    • 面向对象数据库系统的优点

    • a.能有效地表达客观世界和有效地查询信息:面向对象的方法符合一般人的思维规律、即将现实世界分解成明确的对象,这些对象具有属性和行为。系统设计人员用ODBMS创建的计算机模型能更直接反映客观世界,最终用户不管是否是计算机专业人员,都可以通过这些模型理解和评述数据库系统。

    • b.可维护性好:在耦合性和内聚性方面,面向对象数据库的性能尤为突出。这使得数据库设计者可在尽可能少影响现存代码和数据的条件下修改数据库结构

    • c.能很好地解决"阻抗不匹配"问题。面向对象数据库还解决了一个关系数据库运行中的典型问题:应用程序语言与数据库管理系统对数据类型支持的不一致问题,这一问题通常称之为阻抗不匹配问题。

    • 面向对象数据库系统的缺点

    • a.技术还不成熟。与许多新技术一样,风险就在于应用。ODBMS如今还存在着标准化问题,由于缺乏标准化,许多不同的ODBMS之间不能通用。

    • b.面向对象技术需要一定的训练时间:人们还需要学习一套新的开发方法使之与现有技术相结合。此外,面向对象系统开发的有关原理才刚开始具有雏形,还需一段时间在可靠性、成本等方面令人可接受。

    • c.理论还需完善:还需要设计出坚实的演算或理论方法来支持ODBMS的产品。此外,既不存在一套数据库设计方法学,也没有关于面向对象分析的一套清晰的概念模型,怎样设计独立于物理存储的信息还不明确

    展开全文
  • 本文重在模型之间的比较(优缺点、适用范围等),而不在于模型定义的阐述.^-^ 不过还是要先提几个基本概念滴: 1.软件生存周期:软件是会迭代的,软件从生到死的整个过程被称为软件生命周期(Software Development...
  • 结构化范型和面向对象范型的要点及优缺点 要点 优点 缺点 结构化范型 (1)结构化范型也称生命周期方法学,属于传统方法学。(2)传统的软件开发方法大部分采用瀑布模型。这种模型要求每一阶段都以前一阶段...
  • ①关系数据库系统的优点 ...与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准的数据存取方法。 b.结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元组),可为用户或程序
  •  缺点:没有面向对象易维护、易复用、易扩展   面向对象   优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 
  • 数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型。...2、面向对象模型 3、时态GIS模型 4、三维数据模型 二、传统数据模...
  • NoSql的四种数据类型和各自的优缺点

    千次阅读 2018-09-19 21:24:10
    基本上只关注过key-value,其他的看过,没过脑子,所以今天特意找到四种不同的数据类型的优缺点和使用场景。 -----------------------------------废话不多说,来吧---------------------------------...
  • 软件开发模型优缺点

    万次阅读 2018-04-05 16:30:27
    目录边做边改模型(Build-and-Fix-Model)瀑布模式(Waterfall-Model)螺旋模型(Spiral-Model)快速原型模型(Rapid-Prototype-Model)增量和迭代模型增量模型(Incremental-Model)迭代模型(Stagewise-Model)...
  •  喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个...
  • 面向对象编程的优缺点

    千次阅读 2008-08-04 08:35:00
    如果你是程序员,在面试的时候90%的项目leader都会问你"你是怎么认识 面向对象编程 面向对象编程的优缺点能否说说"先看看 别人是怎么说的======================别人 oop的理解================================面向...
  • 1、软件的实质:程序+数据+文档。 2、软件工程的三维空间观:过程+方法+工具。...4、面向对象方法与软件过程模型  1)基本模型 线性顺序模型:瀑布模型迭代模型:原型法模型基于构件的开发模型  2
  • 面向对象优缺点

    千次阅读 2008-11-22 21:48:59
    你是怎么认识 面向对象编程 面向对象编程的优缺点能否说说" 先看看 别人是怎么说的 ======================别人 oop的理解================================ 面向对象编程(Object Oriented Programming...
  • 结构化方法与面向对象方法之比较

    千次阅读 2016-12-21 11:31:00
    结构化方法和面向对象方法是计算机软件设计中最常用的两种方法。结构化方法在一定程度上解决了软件的可靠性、可维护性和可理解性等问题,而20世纪80年代中期以后,面向对象方法开始风靡全球,被广泛应用于计算机软件...
  • C++面向对象程序设计 面向对象编程

    万次阅读 多人点赞 2018-09-12 22:39:50
    1.1 面向过程的编程风格与面向对象的编程风格 C语言是面向过程语言,也称为命令型语言,面向过程通常采用自顶向下设计,问题复杂时不断运用自顶向下设计(即函数分解法)直到容易处理。自顶向下设计优点是直观有...
  • 通过对多媒体数据特征的分析,在比较了关系模型面向对象模型优缺点后,提出了基于对象一关系模型的多媒体数据建模方法。设计了一个多媒体数据建模的基本框架,并结合具体例子实现了这一模型
  • 浅谈面向对象方法学

    千次阅读 热门讨论 2020-05-15 18:00:32
    六、面向对象方法学的优点与缺点 优点 缺点 一、面向对象的基本概念 对象、类、实例、消息、方法 对象:对象能够表示现实或抽象的事物,具有良好定义的责任和良好定义的行为,以及良好 定义的接口。 对象具有...
  • 什么是面向对象

    万次阅读 多人点赞 2019-09-09 16:54:50
    面向对象(OOP)概述 从我们开始接触Java这门语言后,就有人告诉我们这是一门面向对象的语言。说的最多的是new个对象,其实并不知道什么是对象。以为对象就是一个class(类),并不觉得有什么特殊。直到很久之后,...
  • 面向对象数据库简介

    千次阅读 2020-03-03 21:18:18
    面向对象数据的定义 面向对象数据库(OODB)是一个基于面向对象编程语言(OOP)的数据库,其数据都是以对象/类的形式表示并存储在面向对象数据库中。简单来讲,面向对象数据库 = 面向对象编程语言 + 关系型数据库特性。...
  • 数据模型、空间数据模型、GIS数据模型 数据模型 说明 是什么 为了将复杂的地理事物和现象重载到计算机世界中,如何对其进行简化和抽象成为了GIS的基础性问题,而对现实世界进行抽象建模的结果就是数据模型,...
  • 数据库领域中主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型等,我们重点讲解了**层次模型、网状模型、关系模型**。 1.1 层次模型 层次数据库系统的典型代表是IBM公司的Information ...
  • Chrome多线程模型优缺点

    千次阅读 2014-12-15 19:48:49
    关于各种模式的优缺点,官方有官方的说法,大家自己也会有自己的评述。不论如何,至少可以说明,Google不是由于白痴而采取多进程的策略,而是实验出来的效果。。。 大家可以用Shift+Esc观察各模式下进程状况,...
  • C++面向对象基础

    万次阅读 多人点赞 2018-05-20 12:40:59
    面向对象基础面向对象三大特性封装性:数据和代码捆绑在一起,避免外界干扰和不确定性访问。封装可以使得代码模块化。优点:确保用户代码不会无意间破坏封装对象的状态被封装的类的具体实现细节可以随时改变,而无须...
  • 在介绍时空数据模型的研究进展的同时也讨论了当前主要时空数据模型优缺点。时空数据模型根据其建模思路主要地可分为4类,即着重于描述时空状态序列的过程模型,着重于描述某个时间点上形成的时空因果联系的时间点...
  • [GIS原理] 3 空间数据模型

    千次阅读 多人点赞 2018-11-22 20:31:05
    文章目录相关概念空间数据模型地理空间空间现象空间实体地理空间与空间抽象概念数据模型逻辑数据模型物理数据模型空间数据结构GIS所考虑的对象...栅格数据模型矢量——栅格一体化数据模型镶嵌数据模型面向对象数据模型...
  • C++基础---面向对象建模方法

    千次阅读 2015-09-13 17:41:38
    1. 面向对象的建模方法 1.1 OMT/Rumbaugh方法 OMT(Object Modeling Technique)方法: (1)OMT方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。Jim Rumbaugh在1991年正式把OMT...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,407
精华内容 30,562
关键字:

面向对象数据模型优缺点