精华内容
下载资源
问答
  •     模型是现实...逻辑数据模型(LDM)3.物理数据模型(PDM) 1.概念数据模型(CDM)     现实世界主要涉及以下一些概念:     (1)实体(Entity)     客观存在并可相互区别的事物称为实体。...

        模型是现实世界特征的模拟和抽象。在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。



    1.概念数据模型(CDM)

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

        概念数据模型是现实世界到信息世界的第一层抽象,主要是在高水平和面向业务的角度对信息的一种描述,通常作为业务人员和技术人员之间沟通的桥梁。作为现实世界的概念化结构,这种数据模型使得数据库的设计人员在最初的数据库设计阶段将精力集中在数据之间的联系上,而不用同时关注数据的底层细节(如所用的计算机系统的特性以及数据库管理系统—DBMS的特性)。

        概念数据模型主要的贡献在于分析数据之间的联系,它是用户对数据存储的一种高度抽象,反应的是用户的一种业务层面的综合信息需求。

        在这个阶段一般会形成整个数据模型或者是软件系统中的实体的概念以及实体之间的联系,为构建逻辑数据模型奠定基础。下图中描述了现实世界和信息世界以及最终转换成计算机世界信息的转换流程。

    图 1    数据的抽象以及转换流程图

        设计概念数据模型的主要工具是E-R图,扩展的E-R图。
        概念模型的表示方法最常用的是P.P.Chen于1976年提出的"实体-联系图方法(Entity-Relationship Approach),简称E-R模型"。E-R实体联系图是直观表示概念模型的工具,其中包含了实体、联系、属性三个成分,联系的方法为一对一(1:1)、一对多(1:N)、多对多(M:N)三种方式,联系属于哪种方式取决于客观实际本身。
        E-R模型图,既表示实体,也表示实体之间的联系,是现实世界的抽象,与计算机系统没有关系,是可以被用户理解的数据描述方式。通过E-R模型图可以使用户了解系统设计者对现实世界的抽象是否符合实际情况,从某种程度上说E-R模型图也是用户与系统设计者进行交流的工具,E-R模型图已成为概念模型设计的一个重要设计方法。
      在这里插入图片描述
    在这里插入图片描述



    2.逻辑数据模型(LDM)

    数据模型由三部分组成:数据结构、数据操作和数据约束。
      (1)数据结构:数据结构主要描述数据的类型、内容、性质、以及数据之间的联系,是整个数据模型的基础,而针对数据的操作和数据之间的约束都是建立在数据结构的基础上的;
      (2)数据操作:主要定义了在相应的数据结构上的操作类型和操作方式(数据库中的增删改查等);
      (3)数据约束:数据约束主要用来描述数据库中数据结构之间的语法、词义联系以及彼此之间的相互约束和制约关系(如MySQL中使用外键保证数据之间的数据完整性)

    逻辑数据模型是对概念数据模型进一步具体化,在概念数据模型定义实体的基础上定义了各个实体的属性,是用户从数据库的角度能够看到的数据的模型,是所使用的数据库管理系统(Database Management System,DBMS)所支持的数据类型(网状数据模型、层次数据模型、关系数据模型)。这种数据模型架起了用户和系统之间的桥梁,既要面向用户,同时也考虑到了所用的DBMS所支持的特性。

    逻辑数据模型反映了系统分析设计人员针对数据在特定的存储系统(如MySQL)的观点,是对概念数据模型的进一步细化和划分。逻辑数据模型是根据业务之间的规则产生的,是关于业务对象、业务对象数据以及业务对象彼此之间关系的蓝图。

    逻辑数据模型的内容包括所有的实体、实体的属性、实体之间的关系以及每个实体的主键、实体的外键(用于维护数据完整性)。其主要目标是尽可能详细的描述数据,但是并不涉及这些数据的具体物理实现。逻辑数据模型不仅会最终影响数据库的设计方向,并最终会影响到数据库的性能(如主键设计、外键等都会最终影响数据库的查询性能)。

    逻辑数据模型是开发物理数据库的完整文档,逻辑数据模型主要采用的是层次模型、网状模型、关系模型,其中最常用的是关系模型,对应的数据库称之为关系型数据库,如MySQL。
      常用的结构数据模型是关系模型和面向对象模型,关系模型的理论基础是数学理论,数据的操作通过关系运算实现。在关系模型中用二维表表示实体及实体之间的联系,关系模型的实例称为关系。从数学的观点上看,关系是集合,其元素是元组(记录)。遵循一定的规则后,可以将E-R模型图转换成关系模型。


        将E-R模型图转换成关系模型的规则
    E-R模型图中的主要成分是实体及实体之间的联系,对于实体的转换方式是:
      1) 将一个实体转换成一个关系模型。实体的属性为关系模型的属性,实体的标识符为关系模型的关键字,如上图所示的E-R模式中有两个实体:学生、课程,可以分别转换学生模型和课程模型:
        学生模型(学号,姓名,性别,年龄),学号是学生模型的关键字
        课程模型(课程号,课程名,学时数),课程号是课程模型的关键字
        2) 联系转换为关系模型。联系转换成关系模型时,要根据联系方式的不同采用不同的转换方式:
        若联系的方式是一对一的(1:1),可以在两个实体关系模型中的任意一个关系模型中加入另一个关系模型的关键字和联系类型的属性。
        若联系方式是一对多的(1:N),则在N端(为多的一端)实体的关系模型中加入1端实体关系模型的关键字和联系类型的属性
        若联系方式是多对多的(M:N),则将联系也转换成关系模型,其属性是互为联系的两个实体的关键字和联系的属性
    在这里插入图片描述



    3.物理数据模型(PDM)

    物理数据模型,又称为物理模型,是概念数据模型和逻辑数据模型在计算机中的具体表示。该模型描述了数据在物理存储介质上的具体组织结构,不但与具体的数据库管理系统相关,同时还与具体的操作系统以及硬件有关,但是很多工作都是由DBMS自动完成的,用户所要做的工作其实就是添加自己的索引等结构即可。

    物理数据模型是在逻辑数据模型的基础上,综合考虑各种存储条件的限制,进行数据库的设计,从而真正实现数据在数据库中的存放。其主要的工作是根据逻辑数据模型中的实体、属性、联系转换成对应的物理模型中的元素,包括定义所有的表和列,定义外键以维持表之间的联系等,具体例子如下:

    图2 逻辑数据模型到对应的数据库之间的转换示例

    展开全文
  • JAVA的运算符,分为四类:算数运算符、关系运算符、逻辑运算符、位运算符算数运算符(9):+ - * / % ++ --关系运算符(6):== != > >= < <=逻辑运算符(6):&& || ! ^ &...

    JAVA的运算符,分为四类:

    算数运算符、关系运算符、逻辑运算符、位运算符

    算数运算符(9):+  -  *  /  %  ++  --

    关系运算符(6):==  !=  >  >=  <  <=

    逻辑运算符(6):&&  ||  !  ^  &  |

    位运算符(7):&  |  ~  ^  >>  <<  >>>

     

    Java基本数据类型

    数值类型:

    整型:byte、short、int、long

    非整型:double、float

    非数值类型:char[字符]、boolean[布尔]

     

    一:算数运算符

    注:算数运算符操作数必须是数值类型

    分为一元运算符和二元运算符;

    一元运算符,只有一个操作数;

    二元运算符有两个操作数,运算符在两个操作数之间。

    一元运算符:正‘+’负‘-’自加‘++’自减‘--‘这四个。

    ①”++“和”--“运算符,只允许用于数值类型的变量,不允许用于表达式中;

        "++"和”--“可以用于数值变量之前或者之后;

        两处使用差别:

               ”++“和”--“用于数值变量之前,在赋值操作中,先对被”++“或”--“操作变量值先加1或者先减1,然后在进行其他的操作;

               "++"和”--“用于数值变量之后,在赋值操作中,先用被”++“或”--“的操作变量值进行其他的操作,然后在对其值加1或者减1。

     

    复制代码
     1     package com.numerical;  
     2       
     3     public class Operator {  
     4         public static void main(String[] args) {  
     5             int a = 5;  
     6             int b,c,d,f,g,h;  
     7             b = +a; //正值  
     8             System.out.println("b="+b+",a="+a);  
     9             c = -a; //负值  
    10             System.out.println("c="+c+",a="+a);  
    11             int l = 2;  
    12             d = ++l; //先l=l+1;再d=l  
    13             System.out.println("d="+d+",l="+l);  
    14             int m = 3;  
    15             f = m++;//先f=m;再m=m+1  
    16             System.out.println("f="+f+",m="+m);  
    17             int n = 4;  
    18             g = --n;//先n=n-1;再g=n  
    19             System.out.println("g="+g+",n="+n);  
    20             int o = 6;  
    21             h = o--;//先h=o;再o=o-1  
    22             System.out.println("h="+h+",o="+o);  
    23         }  
    24     }  
    复制代码

    上代码,输出结果为:

    b=5,a=5
    c=-5,a=5
    d=3,l=3
    f=3,m=4
    g=3,n=3
    h=6,o=5

    注:一元运算符和前后的操作数之间有空格,可能在有些编译器下编译时会出错。

     

    2.二元运算符,加'+'减'-'乘'*'除'/'求余'%'

    在算数运算符中,”+“,”-“,”*“,”/“完成加减乘除四则运算,%是求两个操作数相除后的余数。

    运算规则和数学运算基本相同,在算数运算中,计算时按照从左向右的顺序计算,乘除和求余优先于加减,不同的是,程序中的乘运算符不可省略,在数学中可写为”y=2x“而程序中必须写为”y=2*x“。

    当二元运算的两个操作数的数据类型不同时,运算结果的数据类型和参与运算的操作数的数据类型中精度较高(或位数较长)一致。

    复制代码
    1 1 int a = 3;  
    2 2 double b = 3.53;//或者3.53d  
    3 3 float c = 1.7f;  
    4 4 int d = 1;  
    5 5 System.out.println("int /int :a/d="+a/d);  
    6 6 System.out.println("double/int:b/a="+b/a);  
    7 7 System.out.println("float/int:c/a="+c/a);
    复制代码

    输出结果为:

    int /int :a/d=3
    double/int:b/a=1.1766666666666665
    float/int:c/a=0.56666666

    转换原则:
        从低精度向高精度转换byte 、short、int、long、float、double

            低精度到高精度会自动转换,而高精度到低精度则要类型强制转换。

     1 int a = 7; 2 double b = 5.33; 3 b = a; 4 a = (int) b;  

     

    计算机的数据长度:

    位:一个二进制数据0或1,是1bit(位);

    字节:存储空间的计量单位,是1byte = 8bit;如数据库的VARCHAR为字节;   

     

    复制代码
    1 boolean 类型变量的取值有:ture、false,1字节(8位)  
    2 char数据类型有:unicode字符,16位  
    3 byte:一个字节(8位)(-128~127)(-2的7次方到2的7次方-14 short:两个字节(16位)(-32768~32767)(-2的15次方到2的15次方-15 int:四个字节(32位)(一个字长)(-2147483648~2147483647)(-2的31次方到2的31次方-16 long:八个字节(64位)(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-17 float:四个字节(32位)(3.402823e+38 ~ 1.401298e-45)(e+38是乘以10的38次方,e-45是乘以10的负45次方)  
    8 double:八个字节(64位)(1.797693e+308~ 4.9000000e-324)
    复制代码

     

     对应java的基本数据类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long

    注意:
    ①数值计算中语法现象——“晋升”,即:byte、short和char(低于int的数据类型)进行算术运算后,结果会自动提升成int类型;
    ②两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换;
    ③算数运算可以加入小括号"()"提高优先级,优先小括号内运算,再其他运算符运算;
    ④算数运算前操作数变量必须赋值,反之,报语法错误。

     

     二:关系运算符

    关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型(boolean布尔类型)的数值。

    等于'=='不等于'!='大于'>'大于等于'>='小于'<'小于等于'<='

    以下代码为:

     

    1     System.out.println("9.5<8 :"+(9.5<8));  
    2     System.out.println("8.5<=8.5:"+(8.5<=8.5));  
    3     System.out.println("a~z:"+((int)'a')+"~"+((int)'z'));  
    4     System.out.println("A~Z:"+((int)'A')+"~"+((int)'Z'));  
    5     System.out.println("'A' < 'a':"+('A' < 'a'));//字符'A'的Unicode编码值小于字符'a'  

     

     

     

     输出结果为:

    9.5<8 :false
    8.5<=8.5:true
    a~z:97~122
    A~Z:65~90
    'A' < 'a':true

    注: boolean类型只能比较相等和不相等,不能比较大小;

         >=的意思是大于或等于,两者成立一个即可,结果为true,<=亦如此;

         判断相等的符号是两个等号,而不是一个等号,这个需要特别小心。

         实际代码中,数值、变量以及运算结果都可以直接参与比较,只是程序中为了增强可读性,有些时候需要将比较分开进行书写。

         比较运算符是程序设计中实现数据比较的基础,也是很多逻辑实现的基础,在程序逻辑中,经常通过比较一定的条件,来判断后续的程序该如何执行。

    三:逻辑运算符

    逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。

    逻辑运算的数据和逻辑运算符的运算结果是boolean类型。

     逻辑与'&&'逻辑或'||'逻辑非'!'逻辑异或'^'逻辑与'&'逻辑或'|'

    逻辑运算符的真值表:

    A和B是逻辑运算的两个逻辑变量;

    两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。
    &和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
    对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。
    所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。
    对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。
    所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;
    对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。
    所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。 
    
    利用短路现象:
    在程序设计时使用&&和||运算符,不建议使用&和|运算符。 
    四:位运算符:
    位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 
    位与'&'位或'|'位非'~'位异或'^'右移'>>'左移'<<'0填充的右移'>>>' 
    位运算的位与'&',位或'|',位非'~',位异或'^'与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值boolean型。
    
    
    下边为位&运算:
        int a = 15;    //x等于二进制数的00001111
        int b = 6;     //y等于二进制数的00000110
        int c = x&y    //z等于二进制数的00000110
    
    二进制数的00000110
    右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。
         将一个数左移"<<"会使该值乘以2的幂。
       将一个数右移>>"会使该值除以2的幂。
       右移(补零)运算符,即无符号右移,">>>"永远不会产生负号,因为其符号位总是被补零。 不论被移动数是正数还是负数,左边移进的部分一律补0。
     1 System.out.println(1<<3); 2 System.out.println(8>>3);  
    
    
     
        int x = 70;   //x等于二进制数的01000110
        int y = 2;
        int z = x>>y  //z等于二进制数的00010001
        即运算结果为z等于二进制数00010001,即z等于十进制数17。
        int x = -70;  //x等于二进制数的11000110
        int y = 2;
        int z = x>>y  //z等于二进制数的11101110
        即运算结果为z等于二进制数11101110,即z等于十进制数-18。
        右移和左移操作,是整数机器数的补码表示法。
    &运算符规定必须信号A和B都被充电,其结果才是充电。(1表示充电,0表示未充电)
    ^异或(XOR)运算符规定如果信号A或B之一被充电,但是信号A和B不是同时被充电,则结果为充电。
    ~运算符也称为按位求补,它翻转所有的充电状态值。
    

    五:赋值运算符与其他运算符的简捷使用方式


    ① 赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。

     

    在程序开发中,大量使用“一元运算符或移位运算符等”该区别简化代码的书写,这样做,因为这样将增加阅读代码的难度,尽量注释。
    
    ② 方括号[]和圆括号()运算符 
    
     方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。
    
     圆括号()运算符用于改变表达式中运算符的优先级。
        String [] sa = {"a","b","c","d"};  
        System.out.println(sa[2]);  

     

     输出为:c ③ 字符串加(+)运算符 
    当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,并连接为一个字符串。

    String a ="aa";  
    int c = 555;  
    String b = a+"bbb"+c;  
    System.out.println(b); 

     

     输出为:aabbb555

     

    ④ 条件运算符(三目运算符)
        <表达式1> ?<表达式2> : <表达式3> 
    先计算<表达式1>的值,
    当<表达式1>的值为true时,则将<表达式2>的值作为整个表达式的值;
    当<表达式1>的值为false时,则将<表达式3>的值作为整个表达式的值。

        int a = 55,b = 132,res;  
        res = a > b ? a : b;  
        System.out.println(res);  
    
    

     输出为:132

     

    ⑤强制类型转换符
    强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型

     

    1     int a;  
    2     double b = 5.66600;  
    3     a = (int) b;  
    4     System.out.println(a);  

     输出为:5

     

    运算符优先级表

    优先级自上而下,级别由高到低。

    展开全文
  • 常用逻辑用语

    万次阅读 2019-02-12 21:18:14
    (3)四命题及关系 (4)命题的真假判断 2.充要条件 3.全称量词与存在量词 (1)两量词 (2)含有一个量词的命题的否定 .温馨提示 1.读法和写法 2.四命题 3.命题的否定和命题的否命题 一.知识网络...

    目录

    一.知识网络

    二.常用逻辑用语 

    1.命题

    (1)定义

    (2)逻辑连接语 

    (3)四种命题及关系

    (4)命题的真假判断

    2.充要条件

    3.全称量词与存在量词

    (1)两种量词

    (2)含有一个量词的命题的否定

    三.温馨提示

    1.读法和写法

    2.四种命题

    3.命题的否定和命题的否命题


    一.知识网络

    二.常用逻辑用语 

    1.命题

    (1)定义

     一般地,我们把用语言、符号或式子表达的,可以判断真假陈述句叫做命题。(注意关键词)

    命题分为两部分:题设(条件)结论。比如:读作:若p,则q;写作:p\rightarrow q

    命题还分真假命题,能够满足命题要求的是真命题,不能满足命题要求的是假命题。比如:若c>0,则2*c>0,就是真命题。

    (2)逻辑连接语 

    逻辑连接语有(很好理解,其实就是||,&&,!)。

    的否定为的否定为的否定为不都

    (3)四种命题及关系

    先来认识一下四种命题:

    ①原命题(p\rightarrow q

    ②逆命题:就是将原命题的题设和结论交换位置(q\rightarrow p

    ③否命题:就是原命题的否定(表示否定,比如:>的否定为<

    ④逆否命题:就是把逆命题和否命题综合一下(

    好,来看一下这四种命题之间的关系:

    (4)命题的真假判断

    不含逻辑连接语的命题为简单命题,否则为复合命题。

    如果是简单命题,可以直接推出;

    如果是复合命题,如:p或q,p且q,非q,可以用真值表判断它们的真假。真值表如下:

    pqp或qp且q非q
    00001
    01100
    10101
    11110

    (1表示true,0表示false,就是bool变量)

    还可以通过四种命题的关系推断名题的真假

    ①原命题的逆否命题与原命题同真假;

    ②原命题的逆命题与否命题同真假(与结论①相似)。(反证法)

    2.充要条件

    先来认识一下充分和必要条件:p\rightarrow q若为真,则p是q的充分条件,q是p的必要条件。

    充要条件就是既充分又必要的条件,例如:p\rightarrow qq\rightarrow p都为真,那么p是q的充要条件,q也是p的充要条件。

    共有这四种条件(真值表):

    p\rightarrow qq\rightarrow pp对于q的名称
    11充要条件
    10充分不必要条件
    01必要不充分条件
    00不必要不充分条件

    那么,为什么以充分和必要条件命名呢?可以用集合的思想来理解(韦恩图):

    p\rightarrow qq\rightarrow pp对于q的名称理解
    11充要条件
    10充分不必要条件
    01必要不充分条件
    00不必要不充分条件 

    3.全称量词与存在量词

    (1)两种量词

    表示包括全体的量词叫做全称量词,通常用“任意”,“所有”,“全部”表达,通常用表示,含有全称量词的命题叫做全称命题。例:,其中p(x)是关于x的命题,M为给定集合,整个命题读作:M集合中的任意一个x都满足命题p(x)。

    表示只含一部分的量词叫做存在量词,通常用“一部分”,“一点”,“有点”表达,通常用表示,含有存在量词的命题叫做特殊命题。例:,其中p(x)是关于x的命题,M为给定集合,整个命题读作:M集合中的一部分x都满足命题p(x)。

    (2)含有一个量词的命题的否定

    注意:题的否定与命题的否命题是不同的.命题的否定只对命题的结论进行否定(否定一 次),而命题的否命题则需要对命题的条件和结论同时进行否定(否定二次)。

    全称量词的否定为存在量词,存在量词的否定为全称量词。

    例:命题p: 的否定为,全称命题的否定为特殊命题;

    命题p:的否定为,特殊命题的否定为全称命题。

    三.温馨提示

    以上常用逻辑用语是数论的基础,需要我们掌握的。

    但有很多易错点:

    1.读法和写法

    比如把写成E,把写反了等。熟能生巧,只要多用一用,相信你不会错的。

    2.四种命题

    容易把否命题逆命题搞反,要记住:否命题是将命题的题设和结论进行否定,而逆命题是将命题的题设和结论交换

    3.命题的否定和命题的否命题

    再重复一遍:命题的否定与命题的否命题是不同的.命题的否定只对命题的结论进行否定(否定一 次),而命题的否命题则需要对命题的条件和结论同时进行否定(否定二次)。

    谢谢!

    展开全文
  • 现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型、网状数据模型以及关系数据模型做一个相信的介绍与对比分析。 一、层次数据模型 定义:层次数据模型是用树状&lt;层次&gt;结构来表示实体类型...

    上一篇文章简单介绍了概念数据模型、逻辑数据模型、物理数据模型的基本概念、特性以及三者所对应的数据库的开发阶段。现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型、网状数据模型以及关系数据模型做一个相信的介绍与对比分析。

      一、层次数据模型

      定义:层次数据模型是用树状<层次>结构来表示实体类型和实体间联系的数据模型。(来自百度百科)

      其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。

      特征:树的性质决定了树状数据模型的特征

         1. 整个模型中有且仅有一个节点没有父节点,其余的节点必须有且仅有一个父节点,但是所有的节点都可以不存在子节点;

         2. 所有的子节点不能脱离父节点而单独存在,也就是说如果要删除父节点,那么父节点下面的所有子节点都要同时删除,但是可以单独删除一些叶子节点;

         3. 每个记录类型有且仅有一条从父节点通向自身的路径;

      实例:

         如图1,以学校某个系的组织结构为例,说明层次数据模型的结构。

         1.  记录类型系是根节点,其属性为系编号和系名;

         2.  记录类型教研室和学生分别构成了记录类型系的子节点,教研室的属性有教研室编号和教研室姓名,学生的属性分别是学号、姓名和成绩;

                3.  记录类型教师是教研室这一实体的子节点,其属性由教师的编号,教师的姓名,教师的研究方向。

      优点:

           1. 层次数据模型的结构简单、清晰、明朗,很容易看到各个实体之间的联系;

         2. 操作层次数据类型的数据库语句比较简单,只需要几条语句就可以完成数据库的操作;(百度百科)

         3. 查询效率较高,在层次数据模型中,节点的有向边表示了节点之间的联系,在DBMS中如果有向边借助指针实现,那么依据路径很容易找到待查的记录;

         4. 层次数据模型提供了较好的数据完整性支持,正如上所说,如果要删除父节点,那么其下的所有子节点都要同时删除;如图1,如果想要删除教研室,则其下的所有教师都要删除;

      缺点:

             1. 层次数据模型只能表示实体之间的1:n的关系,不能表示m:n的复杂关系,因此现实世界中的很多模型不能通过该模型方便的表示;

             2. 查询节点的时候必须知道其双亲节点的,因此限制了对数据库存取路径的控制;

    图 1. 院系人员组成结构图

      二、网状数据模型

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

      其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。

      特征:

         1. 可以存在两个或者多个节点没有父节点;

         2. 允许单个节点存在多于一个父节点;

      网状数据模型中的,每个节点表示一个实体,节点之间的有向线段表示实体之间的联系。网状数据模型中需要为每个联系指定对应的名称。

      实例:  

         同样是以教务管理系统为例,下面说明了院系的组成中,教师、学生、课程之间的关系。

    图 2. 院系的教务管理系统

        由上图中可以看出课程(实体)的父节点由专业、教研室、学生。以课程和学生之间的关系来说,他们是一种m:n的关系,也就是说一个学生能够选修多门课程,一门课程也可以被多个学生同时选修。

      优点:

         1. 网状数据模型可以很方便的表示现实世界中的很多复杂的关系;

         2. 修改网状数据模型时,没有层次状数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点,这样的插入在层次状数据模型中是不被允许的,除非是首先插入的是根节点;

         3. 实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;

      缺点:

         1. 网状数据模型的结构复杂,使用不易;

         2. 网状数据模型数据之间的彼此关联比较大,该模型其实一种导航式的数据模型结构,不仅要说明要对数据做些什么,还说明操作的记录的路径;

       三、关系型数据模型

      关系型数据模型对应的数据库自然就是关系型数据库了,这是是目前笔者最熟悉的数据库。

      定义:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。

      关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。

      特征:

         1. 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系---一张二维表,在关系模型中,操作的对象和结果都是一张二维表;

         2. 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系---表,来实现多对多的关系,如下例子中的学生选课系统中学生和课程之间表现出一种多对多的关系,那么需要借助第三个表,也就是选课表将二者联系起来;

         3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;

      实例:

         下面以学生选课系统为例进行说明。学生选课系统的实体包括:学生、教师、课程;其联系一般为学生与课程之间是一种多对多的关系,教师与课程之间是多对多的关系。学生可以同时选择多门课程,一门课程也可以同时被多个学生同时选择;一位教师可以教授多门课程,一门可能可以由多个教师教授。因此他们之间的联系如下:

     

    图 3 学生选课系统示意图

      将该图映射为关系数据模型中的表格为图4。从中可以看到学生与课程之间的联系以及教师和课程之间的多对多联系都被映射成了表格。其中选课表中的sut_id和cour_id分别是引用学生表和课程表的cour_id的外键;教课表也是如此。

     图 4 关系数据模型的表格

      优点:

         1. 结构简单,关系数据模型是一些表格的框架,实体的属性是表格中列的条目,实体之间的关系也是通过表格的公共属性表示,结构简单明了;

         2. 关系数据模型中的存取路径对用户而言是完全隐蔽的,是程序和数据具有高度的独立性,其数据语言的非过程化程度较高;

         3. 操作方便,在关系数据模型中操作的基本对象是集合而不是某一个元祖;

         4. 有坚实的数学理论做基础,包括逻辑计算、数学计算等;

      缺点:

         1. 查询效率低,关系数据模型提供了较高的数据独立性和非过程化的查询功能(查询的时候只需指明数据存在的表和需要的数据所在的列,不用指明具体的查找路径),因此加大了系统的负担;

         2. 由于查询效率较低,因此需要数据库管理系统对查询进行优化,加大了DBMS的负担;

      关系数据模型的三种约束完整性:

      关系数据模型定义了三种约束完整性:实体完整性、参照完整性以及用户定义完整性。

      实体完整性:实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。

      参照完整性:在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。如上表中的选课关系的stu_id和cour_id分别是参考学生和课程的外键,那么对于现实的系统而言,stu_id和cour_id必须分别出现在学生和课程关系中,这就是外键参考的完整性,同时删除的时候根据设置的不同有不同的处理方式。

      用户定义完整性:用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。

    展开全文
  • 常用逻辑电平介绍

    千次阅读 2019-05-20 11:17:14
    常用逻辑电平由TTL、CMOS、LVTTL、ECL、PECL、GTL、RS232、RS422、RS585、LVDS等。其中TTL和CMOS的逻辑电平按典型电压可以分为四类:5V系列(5V TTL和5V CMOS)、3.3V系列、2.5V系列和1.8V系列。 5V TTL和5V CMOS...
  • 数据模型所描述的内容包括个部分:数据结构、数据操作、数据约束。  1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在...
  • 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第关系—表,来实现多对多的关系;  3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;  实例:      ...
  • 逻辑表达式三种化简方法

    万次阅读 多人点赞 2019-07-19 11:48:48
    逻辑表达式三种化简方法 目录: ① 公式化简法 ② 卡诺图化简法 ③ 机器化简法 一、公式法化简:是利用逻辑代数的基本公式,对函数进行消项、消因子。常用方法有: ①并项法 利用公式AB+AB’=A 将两个与项...
  • 若两乘积项中分别包含A,A’两个因子,而且这两个乘积项的其余因子组成第个乘积项时,则第个乘积项是多余的,可以消去,进一步推广:AB+A’C+BCD=AB+A’C; 6.A(AB)’=AB’ 当A和一个乘积项的非相乘,并且A为乘积...
  • 实时数据库,内存数据库,关系型数据库比较

    万次阅读 多人点赞 2018-09-26 18:55:10
    内存数据库 内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺序访问...采用关系模型建立起来的数据库叫做关系数据库。关系数据库是建立在集合代数基础上...
  • 数据库简介、及常用数据库介绍

    万次阅读 多人点赞 2018-09-17 22:10:14
    数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库(SQL)和非关系型数据库...
  • 复合逻辑运算 j将三种基本运算组合可以得到以下复合逻辑运算 如下图 与非运算 或非运算 异或逻辑运算 同或运算
  • 一、数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括: 集合 数据结构中的元素之间除了“同属一个...
  • 数据模型的三种类型:概念模型、逻辑模型、物理模型 逻辑模型包括:层次数据模型、网状数据模型、关系数据模型 关系数据模型的四个特点: 数据结构单一 2)采用集合运算 3)数据完全独立 4)有数学理论支持 ...
  • 1.三种基本的逻辑关系 ①与 ②或 ③非 ④几种常用的复合逻辑运算 2.逻辑代数的基本公式和常用公式 ①基本公式 ①基本公式 3.逻辑代数的基本定理 ①代入定理:在任何一个包含A的逻辑式中,若以另外一个逻辑式...
  • 什么是数据结构?

    千次阅读 2019-06-19 20:25:39
    什么是数据结构?数据结构是什么? 数据结构是计算机存储、组织数据的方式...数据结构是指相互之间存在着一或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。也就是说,数组结构指的是数据集合及...
  • 逻辑连接词关系

    千次阅读 2018-06-12 12:31:40
    逻辑“或”||“与”&amp;&amp;“非”!。优先级:“与”&amp;&amp;运算高于“或”||运算,它们都低于算数运算符(+-*/)和关系运算符(!=)。C语言优先级编辑优先级运算符名称或含义使用形式结合...
  • 数字电路基础知识——数字逻辑代数(逻辑代数公式、卡洛图的运用、Q-M法化简(列表法)) ...逻辑函数的两标准式 四、逻辑函数的卡洛图化简 五、Q-M法化简逻辑函数(奎恩-麦克拉斯基),也叫列表化简法
  • 离散数学逻辑常用公式

    千次阅读 2021-04-07 15:55:56
    等值关系式 重言蕴含式 真值表
  • 数据结构四种关系

    千次阅读 2018-12-25 15:44:42
    分为四种关系 1 集合机构 2线性结构 特点: 除第一个和最后一个元素外,都是一对一关系; 3树形结构 特点: 一对多关系; 4图形结构 特点: 多对多关系; 算法依赖于逻辑结构,实现取决于物理结构; ....
  • 关系型数据库和非关系型数据库的区别

    千次阅读 多人点赞 2019-08-14 18:19:00
    关系模型中的常用概念 优点 不足 非关系型数据库 非关系型数据库: 非关系型数据库结构 优点 不足 分类 CAP 理论 关系型与非关系型数据库的比较 最近的数据库排名 关系型数据库 关系型数据库: 指采用...
  • 【数电】常用组合逻辑电路模块总结

    千次阅读 多人点赞 2021-01-09 18:56:51
    BCD-七段显示译码器 7448. 数据选择器I. 二选一数据选择器II. 双4选1数据选择器 74HC153四. 加法器I. 半加器II. 全加器III. 双全加器 74LS183IV. 4位超前进位加法器 74HC283五. 数值比较器I. 1位数值比较器II. 4...
  • 10大类逻辑关系

    千次阅读 2015-03-24 17:06:30
    转载网址:...并列关系 & 部分常用标志词和短语 and, and also, or, neither……nor, either……or, not only……but also, likewise, similarly, equally, in the same way
  • 数据库领域中最常用逻辑模型有:层次模型(树状图)、网状模型(网,图)、关系模型。 1.层次模型: 优点: 1.结构清晰,便于观看实体间的联系 2.操作简单 3.查询效率高 缺点: 1.结构灵活性低,当需要更新或修改...
  • 在介绍关系运算和逻辑运算之前,先说下R的逻辑常量:TRUE和FALSE。 在R中,TRUE和FALSE分别表示逻辑常量真和假,其值分别为1和0。 &gt; TRUE + 0 [1] 1 &gt; FALSE + 0 [1] 0 在其它语言中,TRUE和FALSE...
  • 常用逻辑恒等式(附真值表)德.摩根律真值表设定内容居中、居左、居右KaTeX数学公式 德.摩根律 ¬(p∨q)⇔¬p∧¬q \lnot(p \lor q) \Leftrightarrow \lnot p \land \lnot q ¬(p∨q)⇔¬p∧¬q ¬(p∧q)⇔¬p∨¬q ...
  • 【数据库学习】数据库总结

    万次阅读 多人点赞 2018-07-26 13:26:41
    1,数据库 1)概念 数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。 常见数据库管理系统有:Access、mysql、sql server 2)特点 ...逻辑数据独立性(logical data...
  • Spring常用三种注入方式

    万次阅读 多人点赞 2017-10-28 21:45:39
    Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面...
  • UML常用图的几种关系的总结

    千次阅读 2017-09-08 11:08:46
    在UML的 类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合...【泛化关系】:是一继承关系, 表示一般与特殊的关系, 它指定
  • PLC梯形图编程实战【逻辑实现】

    千次阅读 多人点赞 2019-05-21 22:37:18
    在今天这个教程里,我们将学习如何采用梯形逻辑解决实际问题,以及如何进行PLC编程,同时我们还会学习一些新的梯形逻辑指令。 让我们从上一个教程中的锁存(latch)指令继续。在PLC编程中,锁存并不是保持线圈状态的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 359,533
精华内容 143,813
关键字:

常用的三种逻辑关系