精华内容
下载资源
问答
  • 至从,负责系统数据结构设计以来,跟产品功能设计人员沟通的机会多了起来,同时,也发现了很多产品设计人员的一个普遍问题:不明确什么是数据库逻辑结构,什么是物理结构,经常因为这些问题,相互争执。...

         至从,负责系统中数据结构设计以来,跟产品功能设计人员沟通的机会多了起来,同时,也发现了很多产品设计人员的一个普遍问题:不明确什么是数据库逻辑结构,什么是物理结构,经常因为这些问题,相互争执。作为一个合格的产品设计师,如果不能有效区分这些,相信这种设计对受众者员来说,一定不会是一个易于理解的好设计。

         如何有效区分逻辑和物理结构呢?

         逻辑结构:数据元素之间的逻辑关系,即人对数据的理解,而进行抽象的模型 。
         物理结构:数据元素在计算机中的存储方法,即计算机对数据的理解,逻辑结构在计算机语言中的映射。
         那么逻辑结构到底该如何描述呢?例如:一辆汽车由许多个零件构成。“汽车”这个实体具有型号、单价和牌号等属性,“零件”这个实体具有名称、单价和厂家等属性。汽车和零件通过关系模型来表示,就是1:N关系,作为逻辑结构,我们只需要描述出某汽车由那些零件组成,这些实体的属性的取值范围、长度和关系即可。而作为物理结构,就需要把这些描述成具体的关系实体,实体关系,实体属性对应的数据库的数据类型、长度、外键关系等。当然E-R关系图也是必不可少的,更重要的是还需要基本遵循数据库设计范式、高可扩展性的基本原则。
          当然,他们的区别是非常明显的,逻辑结构,更适合客户、测试、实施人员等非专业技术人员理解、查看,而物理结构,则更适合专业技术人员分析、使用。
         两者设计的初衷,当然也有本质的区别。
         逻辑结构设计的任务是将基本概念模型图转换为与选用的数据模型相符合的逻辑结构。逻辑结构设计的步骤:概念模型、一般数据模型、特定的数据模型、优化的数据模型。
         物理设计的任务是根据具体计算机系统的特点,为给定的数据模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。
    展开全文
  • 逻辑结构,存储结构,物理结构区分

    千次阅读 多人点赞 2018-01-29 17:48:51
    存储结构(又称物理结构):数据结构在计算机的表示(又称映像)。 很好理解,但是光靠这些官话,做题保准做一个错一个 不信?下面放一道题: 线索二叉树是一种( )结构? A. 逻辑 B. 逻辑和存储 C. ...

    官方定义

    逻辑结构:是指数据元素之间的逻辑关系,从逻辑关系上描述信息。
    存储结构(又称物理结构):数据结构在计算机中的表示(又称映像)。

    很好理解,但是光靠这些官话,做题保准做一个错一个这里写图片描述

    不信?下面放一道题:

    线索二叉树是一种( )结构?
    A. 逻辑
    B. 逻辑和存储
    C. 物理
    D. 线性

    是不是一般人都会想选A,犹豫一点的会想选B?然而答案却是C
    这里写图片描述

    原因何在?因为二叉树时一种逻辑结构,但是线索二叉树是加上线索后的链表结构,也就是说,它是计算机内部的一种存储结构,喔嚯嚯所以是物理结构。
    有没有有种被欺骗了的感觉,这丫就是文字游戏~

    下面附上真正的干货:
    这里写图片描述

    要注意呦,逻辑结构也就那么一丢丢的几种,除开这几种的话要判断是不是逻辑结构就要好好斟酌啦。

    展开全文
  • DiffServ:区分服务体系结构

    千次阅读 2017-08-03 21:27:23
     区分服务体系结构(DiffServ)定义了一种可以在互联网实施可扩展的服务分类的体系结构。一种“服务”,是由在一个网络内,在同一个传输方向,通过一条或几条路径传输数据包时的某些重要特征所定义的。这些特征...
            DiffServ:区分服务体系结构 (DiffServ: Differenciated Service ) 

       区分服务体系结构(DiffServ)定义了一种可以在互联网上实施可扩展的服务分类的体系结构。一种“服务”,是由在一个网络内,在同一个传输方向上,通过一条或几条路径传输数据包时的某些重要特征所定义的。这些特征可能包括吞吐率、时延、时延抖动,和/或丢包率的量化值或统计值等,也可能是指其获取网络资源的相对优先权。服务分类要求能适应不同应用程序和用户的需求,并且允许对互联网服务的分类收费。

      DiffServ 体系结构由许多在网络节点上实现的功能要素组成,包括每一跳转发小集合,数据包归类功能,和交通调节功能。其中,交通调节功能又包含测量、标记、整形、和监察策略四部分。在本体系结构,只在网络的边界节点上实现复杂的分类和调节功能,并且,通过在 IPv4 和 IPv6 包头的 DS 段做适当的标记 【DSFIELD】,聚合流量,然后根据所做的标记,采取不同的每一跳转发策略。因此,本体系结构具备可扩展性。“每一跳行为”保证了在互相竞争资源的数据流中为每个网络节点分配缓冲区和带宽资源时,有一个合理的处理力度。在核心网络节点上,无需维护每个应用程序流或每个用户转发状态。

      分类服务体系结构基于这样一个简单模型:进入网络的流量在网络边缘处进行分类和可能的调节,然后被分配到不同的行为集合中去。每一个行为集合由唯一的 DS 编码点标识。在网络核心处,数据包根据 DS 编码点对应的每一跳行为转发。在本节中,我们讨论在分类服务区域中的关键组件,流量分类和调节功能,以及分类服务是如何通过流量调节和基于 PHB 的转发而实现的。

    展开全文
  • 数据结构:八大数据结构分类

    万次阅读 多人点赞 2018-09-05 18:23:28
    数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合...数组是可以再内存连续存储多个元素的结构,在内存的分配也是连续的,数组的元素通过数组下标进行访问,数组下标从0开始...

    本文目录:

    数据结构分类

    数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。
    常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:
    这里写图片描述
    每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。

    1、数组

    数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例如下面这段代码就是将数组的第一个元素赋值为 1。

    int[] data = new int[100];data[0]  = 1;
    

    优点:
    1、按照索引查询元素速度快
    2、按照索引遍历数组方便

    缺点:
    1、数组的大小固定后就无法扩容了
    2、数组只能存储一种类型的数据
    3、添加,删除的操作慢,因为要移动其他的元素。

    适用场景:
    频繁查询,对存储空间要求不大,很少增加和删除的情况。

    2、栈

    栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。
    这里写图片描述
    栈的结构就像一个集装箱,越先放进去的东西越晚才能拿出来,所以,栈常应用于实现递归功能方面的场景,例如斐波那契数列。

    3、队列

    队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队,示例图如下:
    这里写图片描述
    使用场景:因为队列先进先出的特点,在多线程阻塞队列管理中非常适用。

    4、链表

    链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。
    这里写图片描述
    链表的优点:
    链表是很常用的一种数据结构,不需要初始化容量,可以任意加减元素;
    添加或者删除元素时只需要改变前后两个元素结点的指针域指向地址即可,所以添加,删除很快;

    缺点:
    因为含有大量的指针域,占用空间较大;
    查找元素需要遍历链表来查找,非常耗时。

    适用场景:
    数据量较小,需要频繁增加,删除操作的场景

    5、树

    是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

    • 每个节点有零个或多个子节点;
    • 没有父节点的节点称为根节点;
    • 每一个非根节点有且只有一个父节点;
    • 除了根节点外,每个子节点可以分为多个不相交的子树;

    在日常的应用中,我们讨论和用的更多的是树的其中一种结构,就是二叉树
    这里写图片描述
    二叉树是树的特殊一种,具有如下特点:

    1、每个结点最多有两颗子树,结点的度最大为2。
    2、左子树和右子树是有顺序的,次序不能颠倒。
    3、即使某结点只有一个子树,也要区分左右子树。

    二叉树是一种比较有用的折中方案,它添加,删除元素都很快,并且在查找方面也有很多的算法优化,所以,二叉树既有链表的好处,也有数组的好处,是两者的优化方案,在处理大批量的动态数据方面非常有用。

    扩展:
    二叉树有很多扩展的数据结构,包括平衡二叉树、红黑树、B+树等,这些数据结构二叉树的基础上衍生了很多的功能,在实际应用中广泛用到,例如mysql的数据库索引结构用的就是B+树,还有HashMap的底层源码中用到了红黑树。这些二叉树的功能强大,但算法上比较复杂,想学习的话还是需要花时间去深入的。

    6、散列表

    散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。

    记录的存储位置=f(key)

    这里的对应关系 f 成为散列函数,又称为哈希 (hash函数),而散列表就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里,这种存储空间可以充分利用数组的查找优势来查找元素,所以查找的速度很快。

    哈希表在应用中也是比较常见的,就如Java中有些集合类就是借鉴了哈希原理构造的,例如HashMap,HashTable等,利用hash表的优势,对于集合的查找元素时非常方便的,然而,因为哈希表是基于数组衍生的数据结构,在添加删除元素方面是比较慢的,所以很多时候需要用到一种数组链表来做,也就是拉链法。拉链法是数组结合链表的一种结构,较早前的hashMap底层的存储就是采用这种结构,直到jdk1.8之后才换成了数组加红黑树的结构,其示例图如下:
    这里写图片描述
    从图中可以看出,左边很明显是个数组,数组的每个成员包括一个指针,指向一个链表的头,当然这个链表可能为空,也可能元素很多。我们根据元素的一些特征把元素分配到不同的链表中去,也是根据这些特征,找到正确的链表,再从链表中找出这个元素。

    哈希表的应用场景很多,当然也有很多问题要考虑,比如哈希冲突的问题,如果处理的不好会浪费大量的时间,导致应用崩溃。

    7、堆

    堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质:

    • 堆中某个节点的值总是不大于或不小于其父节点的值;

    • 堆总是一棵完全二叉树。

    将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。

    堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。
    (ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4…n/2),满足前者的表达式的成为小顶堆,满足后者表达式的为大顶堆,这两者的结构图可以用完全二叉树排列出来,示例图如下:
    这里写图片描述
    因为堆有序的特点,一般用来做数组中的排序,称为堆排序。

    8、图

    图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

    按照顶点指向的方向可分为无向图和有向图:
    这里写图片描述
    这里写图片描述
    图是一种比较复杂的数据结构,在存储数据上有着比较复杂和高效的算法,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构,这里不做展开,读者有兴趣可以自己学习深入。

    展开全文
  • C/S结构和B/S结构、三层结构和两层结构、MVC和三层架构的区别
  • 【数据结构】节点和结点,到底怎么区分

    万次阅读 多人点赞 2018-11-06 17:10:39
    你们有没有纠结过这样一个问题,就是数据结构链表结点的“结”到底是哪个字? 说实话,在写这篇博客之前,我一直以为链表的结点叫“节点”,,所以不管是给代码写注释,还是理解方面,我都觉得是“节点”,今天...
  • 28、29、在数据库设计过程,设计用户外模式属于(C );数据的物理独立性和数据的逻辑独立性是分别通过修改( A)来完成的。 A.概念结构设计 B.物理设计 C.逻辑结构设计 D.数据库实施 A.模式与内模式之间的映像...
  • 1.结构张量原理 此处所说的张量不是相对论或黎曼几何里的张量,黎曼几何的张量好多论文都叫张量场...这个公式太常见了,在harris角点检测就用到了。其中Ix,Iy就是原对原图像在x和y方向求得的偏导。然后求矩阵E的
  • 数据结构 - 逻辑结构和存储结构

    万次阅读 2017-10-15 22:18:18
    程序=算法+数据结构 N.沃思(Niklaus Wirth)教授提出:  程序=算法+数据结构  以上公式说明了如下两个问题:  (1)算法决定如何构造和组织数据(算法→数据结构)。  (2)算法的选择依赖于作为基础的...
  • 数据结构基础概念篇

    万次阅读 多人点赞 2017-11-14 13:44:24
    数据结构一些概念 数据结构就是研究数据的逻辑结构和物理结构...数据元素:数据(集合)的一个“个体”,数据及结构中讨论的基本单位 数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。 数据类
  • Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像BTree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又...
  • java的数据结构——树

    千次阅读 2018-10-22 19:05:49
    树形结构是一种层级式的数据结构,由节点和连接它们的边组成, java语言编写的程序常常用引用来表示边。根是树顶端的节 点:它没有父节点。节点表示保存在树的数据对象。非平衡树是 指根左边的后代比右边多,...
  • 数据结构知识整理

    万次阅读 多人点赞 2018-07-30 18:50:47
    1.数据结构:是一门研究非数值计算的程序设计问题计算机的操作对象以及他们之间的关系和操作等的学科。 2.数据结构涵盖的内容: 3.基本概念和术语: 数据:对客观事物的符号表示,在计算机科学是指所有能...
  • 根据依存树分值包含的子树的复杂度,基于图的依存分析模型可以简单区分为一阶和高阶模型。 高阶模型可以使用更加复杂的子树特征,因此分析准确率更高,但是解码算法的效率也会下降。基于图的方法通常采用基于动态...
  • 关系数据库常用的数据结构

    万次阅读 2017-06-26 14:38:39
    先详细讨论线性数据结构的特点 1.数组:array,关系数据库数组的应用非常广泛,一个table就可以看作是一个二维数组。但是数组的访问效率较低,需要遍历所有数据才能找到满足条件的数据。 2.
  • 关于结构化、半结构化、非结构化数据的理解

    万次阅读 多人点赞 2018-08-06 11:36:03
    记得在课,老师说,结构化数据就是我们关系数据库里的表,剩下的都是半结构化和非结构化数据,好比XML文档就是半结构化数据,WORD文档就是非结构化数据,大数据就是半结构化和非结构化数据。心中一直有一个疑问?...
  • 数据结构中的树

    万次阅读 2012-03-06 15:06:04
    数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典...
  • 1,若希望循环队列的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队和出队算法。 思路:利用tag来...
  • 软件开发结构

    千次阅读 2015-12-23 20:32:33
    结构图和层次图类似,也是描绘软件结构的图形工具,图一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。因为按照惯例总是图位:rlL方的方框代表的模块调用下方...
  • 正则表达式 = /pattern/flags 其中flagsg表示匹配全部,i表示不区分大小写,m表示匹配多行。 pattern包含 ([{\^$|)?*+.]}元字符,若匹配的字符串包含元字符,使用\转义。 代码如下: var patter1 = /(.)u/gi;
  • 关于opencv图像的坐标原点的区分

    千次阅读 2018-08-24 15:06:51
    在opencv,处理图像的时候,经常需要来按坐标点来获取相应位置的像素...主要是看一个数据结构,那就是IplImage,在这个数据结构中,有一个成员叫做origin,查看其值,就可以知道了,如果origin=IPL_ORIGIN_TL(也...
  • 结构化、半结构化、非结构化数据

    千次阅读 2019-02-18 09:58:49
    简析:虽然专业角度看,结构化就是关系模型的说法并不准确,但针对目前业内现状,还是定义为关系模型最为妥善,因为它准确的代表了我们传统最熟悉的企业业务数据。 2.半结构化数据 定义:非关系模型的、有基本...
  •  能够区分图像的平坦区域,边缘,角点; 2.图像结构张量的定义  1)是一个矩阵;  2)与图像的水平,垂直梯度有关,定义如下: 在MATLAB,可以用如下语句求解:[Ix,Iy]=gradient(Image); 3)...
  • JVM之内存结构详解

    万次阅读 多人点赞 2019-10-18 12:49:05
    对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的重灾区。...下面,开启我们的第一篇文章《JVM之内存结构详解》。 学习也是要讲究方式方法...
  • Dreamweaverid和class的用法和区分

    千次阅读 2013-09-15 20:39:08
    id是一个标签,用于区分不同的结构和内容,就象你的名字,如果一个屋子有2个人同名,就会出现混淆;  class是一个样式,可以套在任何结构和内容,就象一件衣服;  概念说就是不一样的:  id是先...
  • java的mvc和三层结构究竟是什么关系

    万次阅读 多人点赞 2016-12-12 17:21:52
    屈指一算,手头做过的正式项目也有了四五六七个了,不管用的数据库和其他一些细节的技术如何,总的来说大的框架结构都是差不多的。 说白了,也就是mvc和三层结构。 而mvc和三层结构究竟是什么关系,我曾在面试...
  • 数据结构中 ElemType

    千次阅读 多人点赞 2014-03-13 15:38:18
    前段时间,我带了大一的上机课,有好多同学问我,数据结构的struct,ElemType是什么意思。我当时就操了,尼玛这不就是数据类型嘛!智商啊。后来我就慢慢想了,为什么用ElemType然后 #define ElemType int 来定义...
  • 谈谈PE和ELF结构中的那些小事

    千次阅读 2016-07-13 00:08:11
    如何区分32bit和64bitPE文件?PE结构中如何告诉系统是否需要动态基址?PE如何区分dll和exe?......
  • JVM运行时内存结构

    千次阅读 2019-02-26 08:20:52
    堆内存是JVM最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况年轻代按照8:1:1的比例来分配; 方法区存储类信息、常量、静态变量等数据,...
  • 数据结构:图结构的实现

    万次阅读 多人点赞 2018-02-07 19:44:45
    图是一种很重要的数据结构,不解释。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 578,182
精华内容 231,272
关键字:

如何区分上中下结构