精华内容
下载资源
问答
  • 主要介绍了C++ 数据封装和数据抽象的的相关资料,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
  • 数据抽象过程和数据模型

    千次阅读 2018-04-23 23:23:57
    - 数据抽象过程 【1】:概念模型设计阶段,分析用户需求,设计概念模型。 【2】:逻辑模型设计阶段,将概念模型转换为逻辑模型 【3】:物理模型设计阶段,数据库/数据仓库实现时,根据逻辑模型设计物理模型 - ...

    - 数据抽象过程

     【1】:概念模型设计阶段,分析用户需求,设计概念模型。
     【2】:逻辑模型设计阶段,将概念模型转换为逻辑模型
     【3】:物理模型设计阶段,数据库/数据仓库实现时,根据逻辑模型设计物理模型
    

    - 概念模型:数据的整体逻辑结构

     关系模型:关系型数据库、数据仓库一般采用实体建模法
    

    - 逻辑模型

     层次模型:
     网状模型:
     关系模型:关系型数据库采用关系模型,使用范式建模法
     多维模型:数据仓库采用多维模型和关系模型,使用维度建模法或者范式建模法
    

    - 物理模型

     关系模型表现形式:表结构设计、主键、属性设计等
     多维模型:事实表,维度表设计
    

    - 什么是实体建模法 ?

     任何业务需求可以看成 3 个部分:
     【1】:实体,主要指业务需求中特定的概念主体,指发生业务关系的对象。
     【2】:事件,主要指概念主体之间完成一次业务流程的过程,特指特定的业务过程。
     【3】:说明,主要是针对实体和事件的特殊说明。
    

    - 什么是多维模型 ?

     支持者,Ralph Kimball
     【1】:星形连接,事实表(中间),多张维度表
     【2】:雪花结构,多张事实表
    

    - 关系模型好坏的衡量标准 ?

     第一范式(1NF),关系模型中的每个属性都不可再拆分,其具有原子性。
     第二范式(2NF),1NF基础之上,添加实体的属性完全依赖于主关键字(带有主键)
     第三范式(3NF),2NF基础之上,实体的非主属性不依赖于其他非主属性
     BCNF,主属性(主关键字)不依赖于非主属性
     第四范式(4NF)
    

    - 事实表、维表区别 ?

    事实表:记录要分析的对象
    维表:记录度量要分析的对象
    

    参考资料:https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0803zhousb/index.html

    注:有关数据仓库等问题,有兴趣的同学可以联系我。TEL:18310801089

    展开全文
  • 1.3数据抽象级别

    千次阅读 2018-01-18 13:55:10
    一、数据抽象的级别1、概念数据模型2、逻辑数据模型3、外部数据模型4、内部数据模型表达用户需求观点的数据全局逻辑结构的模型,称之为概念模型;表达计算机实现观点的DB全局逻辑结构的模型,称之为逻辑模型;表达...

    一、数据抽象的级别

    1、概念数据模型

    2、逻辑数据模型

    3、外部数据模型

    4、内部数据模型

    表达用户需求观点的数据全局逻辑结构的模型,称之为概念模型;

    表达计算机实现观点的DB全局逻辑结构的模型,称之为逻辑模型;

    表达用户使用观点的DB局部逻辑结构的模型,称之为外部数据模型;

    表达DB物理结构的模型,称之为内部模型;

    二、数据库设计的过程

    数据库抽象的过程也就是数据库设计的过程

    1、根据用户需求设计概念模型,这是一个“综合”的过程。

    2、根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。

    3、根据用户的业务特点,设计不同的外部模型,外部模型与逻辑模型之间的对应性称为映像。

    4、数据库实现时,要根据逻辑模型设计其内部模型,内部模型跟逻辑模型之间的对应性称为映像。

    三、概念模型特点

    1、概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。

    2、概念模型是从用户需求的观点出发,对数据建模。

    3、概念模型独立于硬件和软件。

    4、概念模型是数据库设计人员与用户之间进行交流的工具。

    目前采用的概念模型主要是实体联系(ER)模型

    四、逻辑模型特点

    1、逻辑模型表达了DB的整体逻辑结构,它是设计人员对整个应用的全面描述。

    2、逻辑模型从数据库实现的观点出发,对数据建模。

    3、逻辑模型独立于硬件,但依赖于软件(DBMS)。

    4、逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。

    逻辑模型主要有层次、网状、关系三种。

    层次模型:用树型结构表示实体类型及实体间联系的数据模型称为层次模型。

    层次模型的特点是记录之间的联系是通过指针来实现,查询效率较高,用户和设计者面对的是逻辑数据而不是物理数据,逻辑数据和物理数据之间的转换由DBMS完成。

    层次模型的缺点:一、只能表示1:N联系;二、由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也很复杂。

    网状模型:用有向图结构表示实体类型及实体间的联系的数据模型称为网状模型。

    缺点:数据结构复杂、编程复杂。

    关系模型:用二维表格表达实体集,它与网状、层次模型的最大区别是用关键码代替指针导航数据。

    五、外部模型特点

    1、外部模型是逻辑模型的一个逻辑子集。

    2、外部模型独立于硬件,依赖于软件。

    3、外部模型显示用户使用数据库的观点。

    六、外部模型的优点

    1、简化了用户的观点,外部模型是针对具有用户应用需要的数据而设计的,与该用户无关的数据就不必放入了。

    2、有助于数据库的安全保护。

    3、外部模型是对概念模型的支持。

    七、内部模型

    1、内部模型又称为物理模型,是数据库最底层的抽象。

    八、三层模式和两级映像

    1、DB的数据结构有三个层次:外部模型,逻辑模型,内部模型,这三个层次要用DDL定义,定义后的内容称为模式(Schema),即外模式,逻辑模式,内模式。

    外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述,由若干个外部记录类型组成。

    逻辑模式:数据库中全部数据的整体逻辑结构的描述,它由若干个逻辑记录类型组成,还包括记录间的联系、数据完整性和安全性等要求。

    内模式:数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件组织方式,以及数据控制方面的细节。

    2、三层模式的特点

    ①用户使用DML语句对数据库进行操作,实际上只是对外模式的外部记录进行操作。

    ②逻辑模式必须不涉及到存储结构、访问技术等细节,数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而逻辑模式提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另一极的牵制。

    ③内模式不涉及到物理设备的约束

    3、两级映像

    ①外模式/逻辑模式映像存在于外模式和逻辑模式之间,用户定义外模式和逻辑模式之间的对应性,这个映像一般放在外模式中描述

    ②逻辑模式/内模式映像存在于逻辑模式和内模式之间,用户定义逻辑模式和内模式之间的对应性,这个模式一般在内模式中描述

    九、高度的数据独立性

    1、物理数据独立性

    如果内模式要修改,只要修改内模式与逻辑模式之间的对应性(即映像)即可,可以使逻辑模式尽可能保持不变。

    2、逻辑数据的独立性

    如果逻辑模式要修改,只要对外模式/逻辑模式中的映像做出相应的修改即可,可以使外模式和应用程序尽可能保持不变。

     

     

     

    展开全文
  • 对象和抽象数据类型(ADTs)是两种不同的数据抽象形式。它们都可以用来实现不具有复杂方法的简单抽象,但是对象具有扩展性而ADTs易于验证。在实现具有复杂操作(比如,比较或者组合操作)的抽象时,二者之间就会出现...
  • 封装类似list容器的类作为底层,解包程序作为中间控制层,分析程序放DLL里面作为外接,充分体现数据抽象,接口抽象理念设计
  • c++之第二招数据抽象

    2010-04-25 14:15:50
    c++之第二招数据抽象c++之第二招数据抽象c++之第二招数据抽象
  • c++之数据抽象

    千次阅读 2018-02-09 10:26:46
    C++ 数据抽象数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。让我们举一个现实生活中的真实例子,比如一...

    C++ 数据抽象

    数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。

    数据抽象是一种依赖于接口和实现分离的编程(设计)技术。

    让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在屏幕上。

    因此,我们可以说电视把它的内部实现和外部接口分离开了,您无需知道它的内部实现原理,直接通过它的外部接口(比如电源按钮、遥控器、声量控制器)就可以操控电视。

    现在,让我们言归正传,就 C++ 编程而言,C++ 类为数据抽象提供了可能。它们向外界提供了大量用于操作对象数据的公共方法,也就是说,外界实际上并不清楚类的内部实现。

    例如,您的程序可以调用 sort() 函数,而不需要知道函数中排序数据所用到的算法。实际上,函数排序的底层实现会因库的版本不同而有所差异,只要接口不变,函数调用就可以照常工作。

    在 C++ 中,我们使用来定义我们自己的抽象数据类型(ADT)。您可以使用类 ostream 的 cout 对象来输出数据到标准输出,如下所示:

    实例

    #include < iostream >

    using namespace std

    int main ( )
    {
    cout << " Hello C++ " << endl ;
    return 0 ;
    }

    在这里,您不需要理解 cout 是如何在用户的屏幕上显示文本。您只需要知道公共接口即可,cout 的底层实现可以自由改变。

    访问标签强制抽象

    在 C++ 中,我们使用访问标签来定义类的抽象接口。一个类可以包含零个或多个访问标签:

    • 使用公共标签定义的成员都可以访问该程序的所有部分。一个类型的数据抽象视图是由它的公共成员来定义的。
    • 使用私有标签定义的成员无法访问到使用类的代码。私有部分对使用类型的代码隐藏了实现细节。

    访问标签出现的频率没有限制。每个访问标签指定了紧随其后的成员定义的访问级别。指定的访问级别会一直有效,直到遇到下一个访问标签或者遇到类主体的关闭右括号为止。

    数据抽象的好处

    数据抽象有两个重要的优势:

    • 类的内部受到保护,不会因无意的用户级错误导致对象状态受损。
    • 类实现可能随着时间的推移而发生变化,以便应对不断变化的需求,或者应对那些要求不改变用户级代码的错误报告。

    如果只在类的私有部分定义数据成员,编写该类的作者就可以随意更改数据。如果实现发生改变,则只需要检查类的代码,看看这个改变会导致哪些影响。如果数据是公有的,则任何直接访问旧表示形式的数据成员的函数都可能受到影响。

    数据抽象的实例

    C++ 程序中,任何带有公有和私有成员的类都可以作为数据抽象的实例。请看下面的实例:

    实例

    #include < iostream >

    using namespace std

    class Adder
    {
    public :
    // 构造函数
    Adder ( int i = 0 )
    {
    total = i ;
    }
    // 对外的接口
    void addNum ( int number )
    {
    total += number ;
    }
    // 对外的接口
    int getTotal ( )
    {
    return total ;
    } ;
    private :
    // 对外隐藏的数据  
    int total ;
    } ;

    int main ( )
    {
    Adder a ;
    a . addNum ( 10 ) ;
    a . addNum ( 20 ) ;
    a . addNum ( 30 ) ;

    cout << " Total " << a . getTotal ( ) << endl ;

    return 0 ;
    }

    当上面的代码被编译和执行时,它会产生下列结果:

    Total 60

    上面的类把数字相加,并返回总和。公有成员 addNum 和 getTotal 是对外的接口,用户需要知道它们以便使用类。私有成员total 是用户不需要了解的,但又是类能正常工作所必需的。

    设计策略

    抽象把代码分离为接口和实现。所以在设计组件时,必须保持接口独立于实现,这样,如果改变底层实现,接口也将保持不变。

    在这种情况下,不管任何程序使用接口,接口都不会受到影响,只需要将最新的实现重新编译即可。

    展开全文
  • c++中数据抽象与数据封装的区别

    千次阅读 2018-10-13 09:58:44
    数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。 封装是:函数与数据在一起进行封装。 抽象是:仅仅将接口暴露,细节隐藏; 根据我...

    封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏

    数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。

    封装是:函数与数据在一起进行封装。

    抽象是:仅仅将接口暴露,细节隐藏;

    根据我现在的理解,其实差距不大,封装就是你自己做的,自己用,保证函数稳定性以及可以不断地复用,减少代码的冗杂。抽象在java中就是写数据逻辑,当做大型项目的时候,你就知道项目的逻辑,思路清晰是剁么的重要,这是决定开发时间的重要因素。在c++中抽象就是将接口的调用暴露,你只管调用以及获取返回值就可以。

    展开全文
  • C++ 数据抽象 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。 数据抽象是一种依赖于接口和实现分离的编程(设计)技术。 让我们举一个现实生活中的真实例子,...
  • 什么叫数据抽象

    千次阅读 2012-12-28 19:17:59
    数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。  如分类这种抽象是:定义某一类概念作为现实世界中...
  • 数据库的数据抽象、实例、模式

    千次阅读 2017-09-16 18:57:22
    数据抽象主要是为了向用户屏蔽复杂性。一共分为三层:1,物理层,物理层的数据抽象主要描述了数据在物理层面是怎么存储的数据,这主要是数据库的供应商来研究的。2,逻辑层,逻辑层的数据抽象主要描述了数据库中存储...
  • C++数据抽象和问题求解 第6版PDF 压缩第一部分 请下载其它六个部分到同一个目录并解压第一个文件
  • 数据抽象和数据库三级模式

    千次阅读 2019-06-09 19:23:14
    1.数据抽象 从三个层面进行数据抽象 物理层抽象,最低层次的抽象,描述数据实际是怎么存储的 逻辑抽象,比物理层次更高层次的抽象,描述数据库中存贮的什么数据,以及这些数据之间存在什么关系 视图层抽象(有...
  • 数据结构之数据抽象和问题求解-C++语言描述源代码 ,介绍和解决数据结构中经常用到的一些常见的问题和方法……很实用
  • C++数据抽象和问题求解 第6版PDF 压缩第五部分 请下载其它六个部分到同一个目录并解压第一个文件
  • 1.数据抽象的过程 模型是对现实世界的抽象,在数据技术中,我们用数据模型的概念描述数据库的结构和定义,对现实世界的数据进行抽象。 从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象的过程...
  • 数据库系统的一个主要目的是给用户提供数据的抽象视图,也就是说,隐藏关于数据存储和维护的某些细节。数据库系统的数据抽象可以分为物理层、逻辑层、视图层三个层次。
  • 第二章 什么是数据抽象

    千次阅读 2017-06-25 15:10:24
    数据抽象: 在忽略类对象间存在差异的同时, 展现了对用户而言最重要的特性。的确, 抽象应该对终端用户隐藏无关紧要的细节, 避免暴露有可能分散用户注意力或与使用环境毫不相干的细节● 设计 , 或者说抽象, ...
  • 数据抽象和封装基础知识__笔记

    千次阅读 2014-02-26 14:25:43
    数据抽象和封装基础知识__笔记,供以后复习用: 类背后蕴含的基本思想是数据抽象和封装   数据抽象是一种依赖于接口和实现分离的编程和设计技术。类的设计者必须关心类是如何实现的,但是使用该类的程序员不必了解...
  • 大多数的计算机运算是对现实世界的模拟,如果想用计算机来模拟现实世界需要用到数据抽象的方法。所谓抽象是从实际的人、物、事和概念中抽取所关心的共同特征,,忽略非本质的细节,吧这些特征用各种概念精确的加以...
  • 数据抽象和封装提供了两个重要优点
  • 数据库系统有一个主要目的是给用户提供数据抽象试图,隐藏数据库关于数据储存与维护的某些细节物理层 最底层的抽象,描述数据实际是怎样被储存逻辑层 比物理层稍高,描述数据库中存储了怎样的数据以及数据间的...
  • 声明定义,基本对象,抽象数据类型,对象细节、头文件的形式和嵌套结构
  • You have no choice about the necessity to integrateyour observations, your experiences, your knowledge into abstractideas, i.e., into principles. ——Ayn Rand, 《Philosophy: Who Needs It》 ...数据抽象
  • 【SICP归纳】2 高阶函数和数据抽象

    千次阅读 2015-03-14 15:35:55
    现在我们要让思想进一步的抽象,写这篇博客的时候并未学完整本书,更不敢说对书中的内容有一个多深的领悟。但我一路学习过来,就感觉书中的示例越来越抽象,作者所引导我们的也是如此方向。博文也会持续更新下去,...
  • 外模式:也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 内模式:也称存储模式...
  • 其中对数据抽象这个概念进行了深入的探讨,清晰地给出了抽象数据类型和对象的定义,并阐述了其区别以及对于实际编程的影响。因此抽空翻译出来供大家学习、参考。原文:http://www.cs.utexas.edu/~wcook/Drafts/2009/...
  • DataFrame是一种以RDD为基础的带有Schema元信息的分布式数据集,类似于传统数据库的二维表格 。 DataSet 什么是DataSet DataSet是保存了更多的描述信息,类型信息的分布式数据集。 与RDD相比,保存了更多的描述...
  • 行为抽象?数据抽象?属性?

    千次阅读 2005-06-05 16:22:00
    OOA时,通常我们最能做到的就是将对象进行行为抽象,统一...我们就要用动态数据管理了,我们可以将成员变量都抽象为属性,属性都有一定的特征,如:属性名,类型,值,具体来说形如:Name string "Oscar.Ken"Age BYT
  • Rectangle class area Triangle class area

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,014,031
精华内容 405,612
关键字:

数据抽象