精华内容
下载资源
问答
  • 层次关系有哪些
    千次阅读 多人点赞
    2020-09-21 22:13:39

    数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型。本文详细讲述传统三大数据模型和空间数据模型。

     

    一、数据模型概述


    数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型

    组织方式的不同,常见的有四种:

    1、传统数据模型(层次模型、网状模型、关系模型)

    2、面向对象模型

    更多相关内容
  • 层次关系数据库表的设计

    千次阅读 2021-01-28 19:52:15
    数据层次是表达数据的一种重要关系,在数据库的设计中,如:组织结构分解、工作任务分解、行政区划的分解等都是层次关系数据的典型实例。表达层次关系的数据一般需要实现如下属性:1.层次的最大级联层次数。如:中国...

    数据层次是表达数据的一种重要关系,在数据库的设计中,如:组织结构分解、工作任务分解、行政区划的分解等都是层次关系数据的典型实例。

    表达层次关系的数据一般需要实现如下属性:

    1.层次的最大级联层次数。如:中国->湖南省->长沙市->雨花区,就是4层。

    2.能反映同一层次之间的顺序关系。如:长沙市 必须在 衡阳市的前面,(因为其是省会)。

    3.能获取任意层次的父节点级子节点(子节点集)。

    4.直接获取任意层次的数据。比如:第三层 市级别的数据。

    5.能方便构造层次关系表达树。

    6.层次结构及排序方式的改变不影响其其他数据的内部逻辑关系。

    一般有三种方式来表现层次关系的数据:

    1.建立多个数据库表:

    如: COUNTRY: ID(主键) COUNTRY_NAME

    PROVINCE: ID(主键) COUNTRY_ID(外键),PROVINCE_NAME

    CITY: ID(主键), PROVINCE_ID(外键),CITY_NAME

    此种方式比较简单,但设计的灵活性不够,数据处理起来比较麻烦。

    2.采用表的自关联外键引用

    如: DISTRICT_INFO: ID(主键),PARENT_ID,(外键)DISTRICT_INFO

    通过外键(PARENT_ID)的自身引用主键(ID)来确立层次关系。

    优点:无限级别的层次关系,扩充性强。对于Oracle数据库来说,能简单通过 Start With,,,Connect By--语句来实现数据的查询。

    缺点:不能明确看出层次关系,无法实现排序。

    3.采用编码方式来实现层次

    DISTRICT: ID,CODE,NAME 其中CODE的特点是上级编码是下级编码的前缀

    优点:通过编码的内容能够很容易回去数据的层次关系。

    缺点:使用Like方法或函数查询来实现子集的查找,效率较低,能实现层次关系的级数有限(受CODE的字段长度影响)。

    优化方案:

    集合2,3的优点,采用固定编码级次的长度的方法来设计表。

    DISTRICT:ID,CODE,PARENT_ID,NAME

    其中ID为主键,CODE:规定为4位一级。表现的数据如下:

    ID,CODE PARENT_ID, NAME

    1 0001 中国

    2 00010001 1 湖南

    3 000100010001 2 衡阳

    4 000100010002 2 长沙

    5 0001000100020001 4 雨花

    从数据中可以看出,PARENT_ID可以直观表达层次的上下级关系

    而编码CODE可以直观表达层次关系与同一层次的顺序关系。

    如果要将长沙排在衡阳的前面,需要对调其编码即可,而外部的引用关系由于通过ID实现,不会受其影响。

    获取节点的父级别节点:

    Select * From DISTRICT Where ID=(Select PARENT_ID From DISTRICT Where ID=2)

    获取节点的子级别节点列表:

    Select * From DISTRICT Where PARENT_ID=2

    获取所有的子节点信息:

    Select level, * From DISTRICT d Start With PARENT_ID=2 Connect By d.PARENT_ID=Prior t.ID

    或 --排序模式

    Select * From DISTRICT d Where d.CODE Like '00010001%' Order By CODE

    获取某一层次(N)的节点信息(实现排序,层次码长度固定的意义):

    Select * From DISTRICT Where LENGTH(CODE)=4*N And CODE Like '0001%' Order By CODE......

    posted on 2008-08-26 11:29 都市淘沙者 阅读(3609) 评论(0)  编辑  收藏 所属分类: Oracle/Mysql/Postgres/

    展开全文
  • 层次数据模型     定义:层次数据模型是用树状<...其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都且仅一个根节点,其余的...
    层次数据模型

        定义:层次数据模型是用树状<层次>结构来组织数据的数据模型。

        满足下面两个条件的基本层次联系的集合为层次模型
        1. 有且只有一个结点没有双亲结点,这个结点称为根结点
        2. 根以外的其它结点有且只有一个双亲结点

    其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。
      在这里插入图片描述
      层次模型的特点:
        结点的双亲是唯一的
        只能直接处理一对多的实体联系
        每个记录类型可以定义一个排序字段,也称为码字段
        任何记录值只有按其路径查看时,才能显出它的全部意义
        没有一个子女记录值能够脱离双亲记录值而独立存在
      实例:
        在这里插入图片描述
        在这里插入图片描述
        
        层次模型的完整性约束条件
        无相应的双亲结点值就不能插入子女结点值
        如果删除双亲结点值,则相应的子女结点值也被同时删除
        更新操作时,应更新所有相应记录,以保证数据的一致性

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

    层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统


    网状数据模型

        定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
        满足下面两个条件的基本层次联系的集合称为网状数据模型:
        1. 允许一个以上的结点无双亲;
        2. 一个结点可以有多于一个的双亲。
    在这里插入图片描述
      其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。
      特征:
         1. 可以存在两个或者多个节点没有父节点;
         2. 允许单个节点存在多于一个父节点;
      网状数据模型中的,每个节点表示一个实体,节点之间的有向线段表示实体之间的联系。网状数据模型中需要为每个联系指定对应的名称。
      实例:  
    在这里插入图片描述

        优点:
        网状数据模型可以很方便的表示现实世界中的很多复杂的关系;
        修改网状数据模型时,没有层次状数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点,这样的插入在层次状数据模型中是不被允许的,除非是首先插入的是根节点;
        实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;

        缺点:
         网状数据模型的结构复杂,使用不易,随着应用环境的扩大,数据结构越来越复杂,数据的插入、删除牵动的相关数据太多,不利于数据库的维护和重建。
         网状数据模型数据之间的彼此关联比较大,该模型其实一种导航式的数据模型结构,不仅要说明要对数据做些什么,还说明操作的记录的路径;
        DDL、DML语言复杂,用户不容易使用
        记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节

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

    典型代表是DBTG系统,亦称CODASYL系统,是20世纪70年代由DBTG提出的一个系统方案。实际系统:Cullinet Software公司的 IDMS、Univac公司的 DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。


    三、关系型数据模型
      关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。
      定义:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
      关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。
      特征:
         1. 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系—一张二维表,在关系模型中,操作的对象和结果都是一张二维表,它由行和列组成;
         2. 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系—表,来实现多对多的关系;
         3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;
      实例:

    在这里插入图片描述

        优点:
         结构简单,关系数据模型是一些表格的框架,实体的属性是表格中列的条目,实体之间的关系也是通过表格的公共属性表示,结构简单明了;
        关系数据模型中的存取路径对用户而言是完全隐蔽的,是程序和数据具有高度的独立性,其数据语言的非过程化程度较高;
        操作方便,在关系数据模型中操作的基本对象是集合而不是某一个元祖;
         有坚实的数学理论做基础,包括逻辑计算、数学计算等;

        缺点:
        查询效率低,关系数据模型提供了较高的数据独立性和非过程化的查询功能(查询的时候只需指明数据存在的表和需要的数据所在的列,不用指明具体的查找路径),因此加大了系统的负担;
        由于查询效率较低,因此需要数据库管理系统对查询进行优化,加大了DBMS的负担;

        相关概念:
        关系(Relation):一个关系对应通常说的一张表
        元组(Tuple):表中的一行即为一个元组
        属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
        主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
        域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
        分量:元组中的一个属性值。
        关系模式:对关系的描述,关系名(属性1,属性2,…,属性n),如:学生(学号,姓名,年龄,性别,系名,年级)

        关系必须是规范化的,满足一定的规范条件
        最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表

        术语对比
    在这里插入图片描述

        关系的完整性约束条件
        实体完整性
        实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。
        参照完整性
        在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。
        用户定义的完整性
        用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。

    计算机厂商新推出的数据库管理系统几乎都支持关系模型



    展开全文
  • 层次,网状,关系数据库,对于初学这,很实用。
  • 层次关系数据库表的设计,无限层次

    千次阅读 2019-05-17 16:30:50
    数据层次是表达数据的一种重要关系,在数据库的设计中,如:组织结构分解、工作任务分解、行政区划的分解等都是层次关系数据的典型实例。  表达层次关系的数据一般需要实现如下属性:  1.层次的最大级联层次数。...

    数据层次是表达数据的一种重要关系,在数据库的设计中,如:组织结构分解、工作任务分解、行政区划的分解等都是层次关系数据的典型实例。

      表达层次关系的数据一般需要实现如下属性:

      1.层次的最大级联层次数。如:中国->湖南省->长沙市->雨花区,就是4层。

      2.能反映同一层次之间的顺序关系。如:长沙市 必须在 衡阳市的前面,(因为其是省会)。

      3.能获取任意层次的父节点级子节点(子节点集)。

      4.直接获取任意层次的数据。比如:第三层 市级别的数据。

      5.能方便构造层次关系表达树。

      6.层次结构及排序方式的改变不影响其其他数据的内部逻辑关系。

      一般有三种方式来表现层次关系的数据:

      1.建立多个数据库表:

      如: COUNTRY: ID(主键) COUNTRY_NAME

      PROVINCE: ID(主键) COUNTRY_ID(外键),PROVINCE_NAME

      CITY: ID(主键), PROVINCE_ID(外键),CITY_NAME

      此种方式比较简单,但设计的灵活性不够,数据处理起来比较麻烦。

      2.采用表的自关联外键引用

      如: DISTRICT_INFO: ID(主键),PARENT_ID,(外键)DISTRICT_INFO

      通过外键(PARENT_ID)的自身引用主键(ID)来确立层次关系。

      优点:无限级别的层次关系,扩充性强。对于Oracle数据库来说,能简单通过 Start With,,,Connect By--语句来实现数据的查询。

      缺点:不能明确看出层次关系,无法实现排序。

      3.采用编码方式来实现层次

      DISTRICT: ID,CODE,NAME 其中CODE的特点是上级编码是下级编码的前缀

      优点:通过编码的内容能够很容易回去数据的层次关系。

      缺点:使用Like方法或函数查询来实现子集的查找,效率较低,能实现层次关系的级数有限(受CODE的字段长度影响)。

      优化方案:

      集合2,3的优点,采用固定编码级次的长度的方法来设计表。

      DISTRICT:ID,CODE,PARENT_ID,NAME

      其中ID为主键,CODE:规定为4位一级。表现的数据如下:

    IDCODE PARENT_IDNAME
    11 中国
    2100011           湖南
    31000100012衡阳
    41000100022长沙
    500010001000200014雨花

     

     从数据中可以看出,PARENT_ID可以直观表达层次的上下级关系

      而编码CODE可以直观表达层次关系与同一层次的顺序关系。

      如果要将长沙排在衡阳的前面,需要对调其编码即可,而外部的引用关系由于通过ID实现,不会受其影响。

      获取节点的父级别节点:

      Select * From DISTRICT Where ID=(Select PARENT_ID From DISTRICT Where ID=2)

      获取节点的子级别节点列表:

      Select * From DISTRICT Where PARENT_ID=2

      获取所有的子节点信息:

      Select level, * From DISTRICT d Start With PARENT_ID=2 Connect By d.PARENT_ID=Prior t.ID

      或 --排序模式

      Select * From DISTRICT d Where d.CODE Like ‘00010001%‘ Order By CODE

      获取某一层次(N)的节点信息(实现排序,层次码长度固定的意义):

      Select * From DISTRICT Where LENGTH(CODE)=4*N And CODE Like ‘0001%‘ Order By CODE......

     

    原文: http://www.blogjava.net/jelver/articles/224432.html

    展开全文
  • 常见的关系型数据库和非关系型都有哪些

    万次阅读 多人点赞 2018-12-06 23:13:35
    常见的关系型数据库和非关系型都有哪些关系型数据库: 关系模型就是指二维表格形式存储的数据库,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。 常见的:Oracle、DB2、PostgreSQL、...
  • 数据库系统的数据模型:层次、网状、关系模型
  • 传统计算机系统由硬件底层到软件用户高层主要分为以下层次1、应用(问题)使用计算机的目的是完成或解决任何一个应用(问题),最开始是由自然语言描述的,但是计算机只能理解机器语言。传统计算机系统采用分层方式构建...
  • 常用的关系型数据库有哪些

    千次阅读 2021-08-17 08:27:58
    常用的关系型数据库有哪些?常用的关系型数据库类型关系模型组成1、Oracle2、MySQL3、Microsoft SQL Server4、Microsoft Access5、DB2 常用的关系型数据库类型 关系数据库,是建立在关系模型基础上的数据库,借助于...
  • 数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件, ...常见的数据模型有层次模型、网状模型和关系模型三种。 关系其实就是一个二维表的意思,行列对应,..
  • 1.2 计算机系统层次结构

    千次阅读 2021-06-30 05:09:43
    1.2 计算机系统层次结构计算机系统是一个由硬件与软件组成的综合复杂体,为了方便读者学习和对计算机的了解,可以把计算机系统看成是一个多层次结构的系统,从系统结构角度,可将计算机系统划分为如图1-1所示的层次...
  •  其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都且仅一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录...
  • 层次模型,网状模型,关系模型的优缺点总结
  • 数据库领域中主要的逻辑数据模型层次模型、网状模型、关系模型、面向对象数据模型等,我们重点讲解了**层次模型、网状模型、关系模型**。 1.1 层次模型 层次数据库系统的典型代表是IBM公司的Information ...
  • 层次、网状、关系模型

    万次阅读 多人点赞 2017-11-18 17:12:44
    层次、网状、关系模型都是逻辑上的,它们都是以一定的方式存储在数据库系统中,这是数据库管理系统的功能,是数据库管系统中的物理存储模型。 格式化模型层次模型和网状模型统称为格式化模型。格式化模型中数据结构...
  • 数据库课件,我们上课时用过的课件,对于初学者来说很实用
  • 软件工程-软件结构图、层次图、层次方框图的关系

    万次阅读 多人点赞 2018-10-10 23:19:08
    (在学习了软件工程这门课,太多的知识点,而且有些知识点很容易混淆,下面... 层次图用来描绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。用此图表示自顶向下分解所得系统的模块层次结构,H图又可称为...
  • 数据模型的概念 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。...逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。 物理模
  • html 标签之间的层次关系

    千次阅读 2017-09-06 14:39:12
    dom其实就是将一些标记型的文档以及文档中的内容当成对象,因为可以在对象中定义其属性和行为,可以方便操作这些对象; ...标签之间存在着层次关系: Html  |--head  |--title  
  • 现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型、网状数据模型以及关系数据模型做一个相信的介绍与对比分析。 一、层次数据模型 定义:层次数据模型是用树状&lt;层次&gt;结构来表示实体类型...
  • 马斯洛需求层次与产品的关系

    千次阅读 2018-12-04 22:16:19
    马斯洛需求层次分五层,即生理需求 安全需求 社交需求 尊重需求 自我实现需求 。 产品的需求可分三层来看。  第一层是最浅显的,即客户所表达的“我想要 我需要” ,但这样往往难以以最好的路径和方式实现目标,...
  • Qt:QWidget设置控件的层次关系

    万次阅读 2018-01-31 19:09:37
    设置控件置于父窗口的顶部:widget->raise(); 设置控件层次:widget->stackUnder(other_widget);
  • ① 数据结构 满足下面两个条件的基本层次联系的集合为层次模型 且只有一个结点没有双亲结点,这个结点称为根结点 根以外的其它结点且只有一个双亲结点 层次模型中的几个术语 根结点,双亲结点,兄弟结点,叶结点...
  • 一种基本接口,定义了用来实现键/值(key-value)映射关系维护的操作 HashMap Hashtable LinkedHashMap SortedMap 针对以键序排列存放其映射关系的映射,该接口扩展...
  • 数字集成电路的层次关系

    千次阅读 2019-02-27 20:34:34
    转发一篇博文,挺喜欢它的那个层次图,很清晰的反映了数字集成电路的层次关系:https://blog.csdn.net/bsbhenry/article/details/82556215 数字电路的设计,是按照层次化的方式进行的。在每一个设计层次上,一个...
  • 网络层次与主要设备的对应关系

    千次阅读 2017-10-05 23:25:03
    中继器,物理层,对接收信号进行再生和发送,只起到扩展传输距离用,对高层协议是透明的,但使用个数有限(以太网是4个) 网桥,数据链路层,根据帧物理地址进行网络间协议转发,可缓解网络通信繁忙度,提高效率,...
  • 以下关于TCP/IP协议栈中协议和层次的对应关系正确的是 解析: TCP协议和UDP协议都是基于IP协议的。 基于TCP的应用层协议:FTP、Telnet、SMTP、HTTP、POP3与DNS 基于UDP的应用层协议:TFTP、SNMP与DNS 其中DNS既可以...
  • 【软考之旅】网络层次与主要设备对应关系

    千次阅读 热门讨论 2017-10-08 21:53:20
    每个模式直接的关系与区别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 575,725
精华内容 230,290
热门标签
关键字:

层次关系有哪些

友情链接: FileChunk.rar