精华内容
下载资源
问答
  • 详谈关系数据库中的“

    千次阅读 2006-05-27 11:57:00
    关系数据库中的“”主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键...

                                                           关系数据库中的“键”

    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。

    必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。

    首先来谈:主键。

    关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途:1. 惟一地标识一行。

                                   2. 作为一个可以被外键有效引用的对象。

    基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:

            1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

            2. 主键应该是单列的,以便提高连接和筛选操作的效率。

                 注:使用复合键的人通常有两个理由为自己开脱,而这两个理由都是错误的。其一是主键应当具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,我也反对这种做法,理由是:复合主键常常导致不良的外键,即当连接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。

            3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

                     注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。

            4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

            5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

     

    展开全文
  • 数据库关系键

    千次阅读 2014-12-29 16:32:34
    关系关系数据库的重要组成部分。关系是一个表的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 数据库理论, 超、候选与主键之间的关系: • 候选是超的一种:不含有多余...
    

    关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。


    数据库理论中, 超键、候选键与主键之间的关系:
    • 候选键是超键的一种:不含有多余属性的超键
    • 某个候选键被选为主键

    主键:

           主键,又称主码(primary key)。数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

          从技术的角度来看,primary key和unique key有很多相似之处。但还是有以下区别:

    1. 作为primary key的域/域组不能为Null。而unique key可以。
    2. 在一个表中只能有一个primary key,而多个unique key可以同时存在。
    3. 更大的区别在逻辑设计上。primary key一般在逻辑设计中用作记录标识,这也是设置primary key的本来用意。而unique key只是为了保证域/域组的唯一性。

    超键

         超键(superkey),有的文献称“超码”,是在数据库关系模式设计中能够唯一标示多元组的属性集。

         包含所有属性的集叫做明显超键

    候选键

          在 关系模型中,候选键候选码candidate key)是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:

    1. 这个属性集合始终能够确保在关系中能唯一标识元组。
    2. 在这个属性集合中找不出合适的真子集能够满足条件(1)

          满足第一个条件的属性集合称为超键,因此我们也可以把候选键定义为“最小超键”,也就是不含有多余属性的超键。

         候 选键的重要性是它们能够在关系中唯一标识出不同的元组,因此超键也是在设计数据库模式时需要指定的最重要的约束之一。由于在关系模型中,每个关系都是一个集合(没有重复的元素),所以每个关系都至少有一个候选键(因为所有属性组合必然是个超键)。但是在某些关系型数据库中表也能代表多重集,所以在每个关系中都显式地定义至少一个候选键是一条很重要的设计原则。数据库管理系统通常都需要将每个关系中的某个候选键定义为主键,亦即这个候选键是区分不同元组时首选的识别方式,例如外键通常就是引用主键而非其他候选键。参看数据库系统概念,它还这么说:“候选键属性可以为null,主码属性不能为null”,那也就是说并不是所有的候选码都可以作为主键???希望网友给予指导,在此先谢谢了!!!

    外键

    外键foreign key),又称外部键。其实在关系数据库中,每个数据表都是由关系来连系彼此的关系,父数据表(Parent Entity)的主键(primary key)会放在另一个数据表,当做属性以创建彼此的关系,而这个属性就是外键。

    比如,学生跟老师之间是教学的关系,学生数据表会有个属性叫指导老师(FK),而这个值就是对应到老师数据表的老师代号(PK),学生的指导老师就是外键。

    代理键

    在关系型数据库设计中,代理键是在当数据表中的候选键都不适合当主键时,例如数据太长,或是意义层面太多,就会请一个无意义的但唯一的字段来代为作主键。

    代理键是:

    Surrogate (1) – Hall, Owlett and Codd (1976)
    一个代理键值确定了外部世界的一个实体。代理键值是数据库生成的,从来不显示给用户或应用程序看。
    Surrogate (2) – Wieringa and De Jonge (1991)
    一个代理键值确定了数据库中的一个对象。代理键值是数据库生成的,用户或应用程序看不到它。

    在实践中,代理键值通常是个自动递增的数字。在Sybase或SQL Server,用identity column标识代理键,PostgreSQL里用serial,Oracle里用SEQUENCE,在MySQL里用一个标记有AUTO_INCREMENT的字段。

    何时使用代理键

    以中国大陆的十八位身份证号为例,从左往右为六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

    一家公司想要将它的客户记入数据库,以客户的身份证号作为主键当然是可以的;但是这18位身份证号是用于标识大陆13多亿人口的,一家公司的客户显然没有这么多,所以用18位的数字作为主键有点浪费空间。

    另外,身份证号中包含了地区、生日信息,若以身份证号为主键,要不要另开字段记录客户的地区、生日也是个问题。如果不另开字段,从主键(身份证号)中提取地区、生日有点麻烦;如果开字段,主键和地区、生日字段的数据存在冗余。

    所以,一般的做法是,根本不记录客户的身份证号(除非有其他需求),用一个代理键作为主键,另开字段记录客户的地区、生日等信息。

    展开全文
  • 关系数据库与非关系数据库的区别

    万次阅读 2018-11-01 20:50:59
    当前主流的关系数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非关系数据库有 NoSql、Cloudant。 nosql和关系数据库比较? 优点: 1)成本:nosql数据库简单易部署,基本都是开源...

    当前主流的关系型数据库Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。

    非关系型数据库有 NoSql、Cloudant。

    nosql和关系型数据库比较?
    优点:
    1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
    2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。
    3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
    4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。
    缺点:
    1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
    2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。

    3)不提供关系型数据库对事物的处理。


    非关系型数据库的优势:1. 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

    关系型数据库的优势:1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。2. 事务支持使得对于安全性能很高的数据访问要求得以实现。对于这两类数据库,对方的优势就是自己的弱势,反之亦然。




    关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。

     

    关系型数据库的优势:

    1. 保持数据的一致性(事务处理)

    2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)

    3. 可以进行Join等复杂查询

    其中能够保持数据的一致性是关系型数据库的最大优势。

     

    关系型数据库的不足:

    不擅长的处理

    1. 大量数据的写入处理

    2. 为有数据更新的表做索引或表结构(schema)变更

    3. 字段不固定时应用

    4. 对简单查询需要快速返回结果的处理

    --大量数据的写入处理

    读写集中在一个数据库上让数据库不堪重负,大部分网站已使用主从复制技术实现读写分离,以提高读写性能和读库的可扩展性。

    所以在进行大量数据操作时,会使用数据库主从模式。数据的写入由主数据库负责,数据的读入由从数据库负责,可以比较简单地通过增加从数据库来实现规模化,但是数据的写入却完全没有简单的方法来解决规模化问题。

    第一,要想将数据的写入规模化,可以考虑把主数据库从一台增加到两台,作为互相关联复制的二元主数据库使用,确实这样可以把每台主数据库的负荷减少一半,但是更新处理会发生冲突,可能会造成数据的不一致,为了避免这样的问题,需要把对每个表的请求分别分配给合适的主数据库来处理。

    第二,可以考虑把数据库分割开来,分别放在不同的数据库服务器上,比如将不同的表放在不同的数据库服务器上,数据库分割可以减少每台数据库服务器上的数据量,以便减少硬盘IO的输入、输出处理,实现内存上的高速处理。但是由于分别存储字不同服务器上的表之间无法进行Join处理,数据库分割的时候就需要预先考虑这些问题,数据库分割之后,如果一定要进行Join处理,就必须要在程序中进行关联,这是非常困难的。

     

     

    --为有数据更新的表做索引或表结构变更

    在使用关系型数据库时,为了加快查询速度需要创建索引,为了增加必要的字段就一定要改变表结构,为了进行这些处理,需要对表进行共享锁定,这期间数据变更、更新、插入、删除等都是无法进行的。如果需要进行一些耗时操作,例如为数据量比较大的表创建索引或是变更其表结构,就需要特别注意,长时间内数据可能无法进行更新。

     

    --字段不固定时的应用

    如果字段不固定,利用关系型数据库也是比较困难的,有人会说,需要的时候加个字段就可以了,这样的方法也不是不可以,但在实际运用中每次都进行反复的表结构变更是非常痛苦的。你也可以预先设定大量的预备字段,但这样的话,时间一长很容易弄不清除字段和数据的对应状态,即哪个字段保存有哪些数据。

    --对简单查询需要快速返回结果的处理  (这里的“简单”指的是没有复杂的查询条件)

    这一点称不上是缺点,但不管怎样,关系型数据库并不擅长对简单的查询快速返回结果,因为关系型数据库是使用专门的sql语言进行数据读取的,它需要对sql与越南进行解析,同时还有对表的锁定和解锁等这样的额外开销,这里并不是说关系型数据库的速度太慢,而只是想告诉大家若希望对简单查询进行高速处理,则没有必要非使用关系型数据库不可。

    ---------------------------

    NoSQL数据库

    关系型数据库应用广泛,能进行事务处理和表连接等复杂查询。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。

    优点:

     易于数据的分散

    各个数据之间存在关联是关系型数据库得名的主要原因,为了进行join处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散,这也是关系型数据库并不擅长大数据量的写入处理的原因。相反NoSQL数据库原本就不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。

     

    典型的NoSQL数据库

    临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)

    一、 键值存储

    它的数据是以键值的形式存储的,虽然它的速度非常快,但基本上只能通过键的完全一致查询获取数据,根据数据的保存方式可以分为临时性、永久性和两者兼具 三种。

    (1)临时性

          所谓临时性就是数据有可能丢失,memcached把所有数据都保存在内存中,这样保存和读取的速度非常快,但是当memcached停止时,数据就不存在了。由于数据保存在内存中,所以无法操作超出内存容量的数据,旧数据会丢失。总结来说:

          。在内存中保存数据

          。可以进行非常快速的保存和读取处理

          。数据有可能丢失

     (2)永久性

           所谓永久性就是数据不会丢失,这里的键值存储是把数据保存在硬盘上,与临时性比起来,由于必然要发生对硬盘的IO操作,所以性能上还是有差距的,但数据不会丢失是它最大的优势。总结来说:

           。在硬盘上保存数据

           。可以进行非常快速的保存和读取处理(但无法与memcached相比)

           。数据不会丢失

    (3) 两者兼备

           Redis属于这种类型。Redis有些特殊,临时性和永久性兼具。Redis首先把数据保存在内存中,在满足特定条件(默认是 15分钟一次以上,5分钟内10个以上,1分钟内10000个以上的键发生变更)的时候将数据写入到硬盘中,这样既确保了内存中数据的处理速度,又可以通过写入硬盘来保证数据的永久性,这种类型的数据库特别适合处理数组类型的数据。总结来说:

           。同时在内存和硬盘上保存数据

           。可以进行非常快速的保存和读取处理

           。保存在硬盘上的数据不会消失(可以恢复)

           。适合于处理数组类型的数据

         

    二、面向文档的数据库

       MongoDB、CouchDB属于这种类型,它们属于NoSQL数据库,但与键值存储相异。

       (1)不定义表结构

         即使不定义表结构,也可以像定义了表结构一样使用,还省去了变更表结构的麻烦。

       (2)可以使用复杂的查询条件 

         跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据,虽然不具备事务处理和Join这些关系型数据库所具有的处理能力,但初次以外的其他处理基本上都能实现。

    三、 面向列的数据库

       Cassandra、HBae、HyperTable属于这种类型,由于近年来数据量出现爆发性增长,这种类型的NoSQL数据库尤其引入注目。

       普通的关系型数据库都是以行为单位来存储数据的,擅长以行为单位的读入处理,比如特定条件数据的获取。因此,关系型数据库也被成为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为单位读入数据。

    面向列的数据库具有搞扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。另外,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。但由于面向列的数据库跟现行数据库存储的思维方式有很大不同,故应用起来十分困难。

     

    总结:关系型数据库与NoSQL数据库并非对立而是互补的关系,即通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,让NoSQL数据库对关系型数据库的不足进行弥补。




    展开全文
  • 浅析关系数据库和NoSql非关系数据库

    千次阅读 2015-08-19 18:54:00
     支持关系模型的数据库系成之为关系数据库,是目前各类数据库使用最为广泛的数据库系统。关系数据库在经过二十几年的发展,已经变的功能强大,使用广泛,产品成熟的数据库系统,现在使用主流的数据库都为关系型...
    1 关系数据库 
    
      1.1 关系数据库的简介 
      支持关系模型的数据库系成之为关系数据库,是目前各类数据库中使用最为广泛的数据库系统。关系数据库在经过二十几年的发展,已经变的功能强大,使用广泛,产品成熟的数据库系统,现在使用主流的数据库都为关系型数据库,比较熟悉的如SQL Server、Mysql、Oracle、Sybase、Informix、DB2等。在网络上使用比较广泛的是Sql Server、Mysql和Oracle。 
      1.2 关系数据库的特点 
      关系数据库是支持关系模型的数据库系统。而关系模型是由二维表来表示实体和实体间联系的模型。使用二维表存储数据,对使用者来说很直观,更容易理解。使用关系数据库的优势主要表现在以下几个特性: 
      (1)操作方便性。通过开发应用程序和数据库连接,用户能方便的对数据库中数据进行操作,特别对没有数据库基础的人,也可以通过数据库管理系统,直接在数据库中操作。 
      (2)易于维护性。关系数据库在完整性约束中提供了实体完整性、参照完整性和用户定义的完整性,通过完整性约束可以大大降低了 数据存储 的冗余及数据不一致的概率。 
      (3)访问数据的灵活性。关系数据库中提供了诸如视图,存储过程,触发器,索引等对象,是访问数据更加灵活。 
      1.3 目前关系数据库面临的问题 
      随着互联网技术的发展,尤其是web2.0 技术使用,更注重用户和服务器以及用户和用户之间的交互作用,用户成为既是网站内容的浏览者,也是网站内容的制造者。例如:博客(BLOG)、社会网络(SNS)、以及现在比较热的微博等。对于在使用web2.0技术并且访问量比较大网站,使用传统关系数据库就会遇到一些问题,主要表现在以下几点: 
      (1)对数据库高并发读写的需求 
      Web 2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,无法使用动态页面静态化技术,因此数据库的并发负载非常高,往往要达到每秒上万次的的读写请求,此时服务器上的磁盘根本无法承受如此之多的读写请求。 
      (2)对海量数据的高效率存储和访问的需求 
      对于大型的社交网站网站,每天用户产生海量的用户动态,随着用户的不断增减,一个数据表中的记录可能有几亿条,对于关系型数据库来说,在一个有上亿条记录的表里面进行SQL询,效率是极其低下的。一些大型Web 网站的用户登录系统也是如此,如腾讯、163邮箱都有数亿的帐号。 
      (3)对数据库的高扩展性和高可用性的需求 
      在基于Web的架构中,数据库是最难进行横向扩展的,当用户量和访问量增加时, 数据库没有办法像Web Server 那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力,对于很多需要24 小时不间断服务的网站来说,对数据库系统的升级和扩展往往需要停机维护。 
      2 非关系数据库NoSql 
      2.1 NoSql概述 
      NoSql是应对关系数据库出现的问题而发展起来的,近几年随着web2.0技术的广泛应用,NoSQL 得到了快速的发展,NoSQL数据库指的是非关系性的、定义不是很明确的数据存储仓库。NoSQL数据库不再使用关系模型的概念,放弃了使用SQL语句对数据库进行操作。 
      NoSQL 数据库根据数据的存储模型和特点又分为很多种类。主要有 
      (1)面向列的存储系统。按列存储,区别于关系数据库中按行存储,容易扩展,适用与存储海量数据,对一个或几个字段进行查询的效率很高,但在复杂查询功能比较弱,如多表联合查询。此类数据库产品有BigTable、Hbase、assandra和Hypertable。 
      (2)面向文档存储系统。保证海量 数据存储 的同时,具有良好的查询性能。用JSON或类JSON格式进行存储,存储的内容是文档型的,文档中的格式是自由的。此类数据库产品有MongoDB和CouchDB。 
      (3)键-值(key/value)存储系统。是最简单的Nosql系统,具有极高的并发读写性能。通过key能够快速查询到value,并且不考虑value 的格式。此类数据库产品有Tokyo Cabinet/Tyrant、BerkeleyDB、MemcacheDB和Redis。 
      (4)图存储系统。图形关系的最佳存储模式。如Neo4J、FlockDB。 
      (5)对象存储。类似面向对象语言的语法操作数据库,通过对象的方式存取数据。此类数据库产品有db4o、Versant。 
      (6)xml 数据库。高效存储XML 数据,并支持XML的内部查询语法。此类数据库产品有Berkeley DBXML、BaseX。
      2.2 NoSql数据库的优势 
      相对于 关系数据库 ,No sql 数据库的优点主要表现在: 
      (1)容易扩展和高性能。NoSQL 数据库种类很多,但是都有一个共同的特点就是去掉关系型数据库的关系型特性。数据之间彼此无关系,这样就非常容易扩展。可以存储海量数据。同样由于数据之间无关系,数据库的结构简单,在处理大数据量时,NoSQL 数据库会有出色的读写性能。    (2)灵活的 数据模型 。NoSQL 数据库不使用传统的关系数据库模型,而是使用如key-value 存储、文档型的、列存储、图型 数据库 、xml 等方式存储数据模型,使用这些模型都无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。同时根据需求可以选择合适的模型。 
      (3)经济性 
      在数据量和访问量比较大的情况下,传统的关系数据库对服务器的要求比较高,甚至使用专用硬件设备,这样造价就比较高。而NoSQL数据库的易扩展的特点使配置较低服务器上运行,也可以使用低配服务器组成集群来使用,并且有研究证实使用NoSql数据库基于低配硬件的分布式存储解决方案比现在的高端关系数据库更加可靠。这样就极大的降低了投资成本。 
      2.3 NoSql的不足 
      (1)成熟度方面。NoSQL数据库的实际应用,近几年才逐渐开始使用,并且大部分NoSQL的产品都还处于实验和不断完善的阶段。在产品成熟度和稳定性方面,NoSq数据库远不及发展了二十多年且已被广泛使用的 关系数据库 。 
      (2)商业支持方面。大部分NoSQL数据库都是开源项目,没有专门的 数据库 厂商提供完善的服务,一旦出现故障,只能自己的能力解决,对于一般使用者来说风险比较大。 
      (3)使用习惯方面。软件开发人员已经习惯了关系数据库的模式,解决问题的思路已经被固定在关系模型上,而NoSQL数据库的开发以放弃了关系模型,要软件开发人员放弃原来的思路,而掌握和使用NoSql数据库是很困难的,导致使用NoSQL数据库的开发人员不可能在短时间内快速增加,这也成为NoSql数据库发展的一个障碍。 
      3 关系数据库与NoSQL 数据库结合使用 
      Web2.0时代,关系数据库不能满足对 数据库 高并发读写、海量数据的高效率存储和访问、高扩展性和高可用性方面的需求,而NoSql数据库可以解决这些问题,从而推动了NoSql数据库应用和发展,那是不是说NoSql数据库就能取代关系数据可了呢?从目前来看,基于NoSql数据库的不足,NoSql数据库还不能完全取代关系数据库,对NoSql数据库的使用,单独使用的情况很少,大多数情况下都是关系数据库和NoSql数据库结合使用。 
      关系数据库和NoSql数据库结合使用又分为两种模式: 
      (1)NoSql数据库作为辅助存储。在这种模式下,把所有的数据都存放在关系数据库中,可能被经常频繁读取的数据再存放在NoSql数据库中一份,其目的是提高数据的查询速度,减少 关系数据库 的并发访问负载。 
      (2)NoSql数据库作为主存储。在这种模式下,把所有的数据存储在NOSQL数据库中,为了一些特殊业务或功能的需要,在将数据存入NOSQL 的时候,同时存储到关系数据库一份。在数据存储和查询主要是由No sql 数据库完成,少量的数据是从关系数据库读取。 
      4 结语 
      目前 关系数据库 仍是主流数据库,仍被广泛使用,NoSQL数据库还不能完全取代关系数据库,虽然NoSql数据库打破了关系数据库存储的观念,采用创新的存储方式,在快速读写、海量存储,高扩展性上很好满足web2.0时代 数据存储 的要求,但NoSql数据库也有自己的缺陷。在现阶段的某些情况下,可以将关系型数据库和NoSQL数据库结合使用,相互弥补各自的不足。随着NoSql数据库的不断发展和完善,将来也有可能取代关系数据库成为主流数据库。 
      参考文献: 
      [1]卢冬海,何先波.浅析NoSQL数据库 中国西部科技 2011年02期 
      [2]黄贤立.NoSQL 非关系型数据库的发展及应用初探 福建电脑 2010年7期 

      [3]张华强.关系型数据库与NoSQL 数据库 电脑知识与技术 2010年20期

    原文地址:http://www.xzbu.com/8/view-4313920.htm


    展开全文
  • 1、关系数据库 1.1、什么是关系数据库? 关系型数据库是依据关系模型来创建的数据库。 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表...
  • 关系数据库中实现继承

    千次阅读 2014-01-02 14:53:56
    关系数据库中实现继承 在将对象保存到关系数据库中时,继承的概念发生几个有趣的问题。(请参阅参考资料的 "Building Object Applications That Work"。)问题从根本上归结为解释如何在您的持久模型组织...
  • 数据库应用程序开发入门篇—— 关系数据库中的基本概念 写在前面:关系数据库是目前应用最广泛的的数据库,了解关系型数据库的基本概念,有助于应用...关系数据库中涉及的基本概念(码和是同个意思,主码即主键)如下
  • 数据库中的各种

    千次阅读 2017-07-05 00:52:23
    关系中能唯一标识元组的属性集称为关系模式的超。 一个属性可以为作为一个超,多个属性组合在一起也可以作为一个超。超包含候选和主键。候选是最小超,即没有冗余元素的超。主键数据库对...
  • 数据库中(码)

    千次阅读 2019-08-13 15:51:20
    数据库中(key)也可以称为码,是关系模型的一个重要概念,它是逻辑结构,不是数据库的物理部分。 在一个关系中,存在一个或多个属性,可以在这个关系中将每个元组唯一标识。(可以粗略的理解:关系=表) 超...
  • 1、键中的属性函数决定了关系集合中所有其他属性; 2、键的真子集不能函数决定关系集合中所有其他的属性(就是说,键必须是最小的,不是唯一的)。 以上是我在关系类型数据库系统学习中的总结。关于键的学术一点的...
  • 当前数据库分为关系数据库和非关系数据库 关系数据库 关系数据库:指采用了关系模型来组织数据的数据库关系模型指的就是二维表格模型,而一个关系数据库就是由二维表及其之间的联系所组成的一个数据...
  • 文章目录关系的特性数学定义的关系关系的特性关系不可重复候选码/候选一个关系中可以有多个候选码/候选主码/主键主属性与非主属性外码/外键总结:什么是关系 关系的特性 列的同质性,每一列的分量来自与同一个...
  • 内存数据库关系数据库和非关系数据库 一、内存数据库关系数据库和非关系数据库 1.个人观点: 二、内存数据库(Redis,MongoDb,SQLite,Oracle等): 三、Raft分布式协议: 四、Redis出现宕机,...
  • 文章目录关系数据库关系操作基本关系操作关系数据库语言的分类关系模型的完整性实体完整性(Entity Integrity)参照完整性(Referential Integrity)用户定义完整性(User-defined Integrity)E-R图向关系模型的转换...
  • 关系数据库设计核心

    千次阅读 2020-04-10 16:32:32
    1、设计一个合适的关系数据库系统的关键是关系数据库模式的设计,即应构造几个关系模式, 每个模式有哪些属性,怎样将这些相互关联的关系模式组建成一个适合的关系模型,关系数据库 的设计必须在关系数据库设计理论...
  • 关系数据库和非关系数据库的区别

    千次阅读 多人点赞 2019-08-14 18:19:00
    关系模型的常用概念 优点 不足 非关系数据库关系数据库: 非关系数据库结构 优点 不足 分类 CAP 理论 关系型与非关系数据库的比较 最近的数据库排名 关系数据库 关系数据库: 指采用...
  • 前言:这几天研究数据库中,从书上的定义说,很绕,通过讨论及查阅资料,获得一些成果与大家分享 定义: :在数据库中关键码(简称,)由一个或多个属性组成。在实际应用,有下列:在关系中能...
  • 因此,在关系数据库中使用JSON时应当遵循一定的思想,从而既能受益于JSON的灵活性,又能发挥关系数据库的强大功能。 本文根据实际工作的经验,结合一些国内外现有的资料,总结了一些在关系数据库中使用JSON...
  • 数据库系统原理 - - (2)关系数据库

    千次阅读 多人点赞 2020-09-27 09:19:45
    文章目录二:关系数据库1.关系数据库概述a.关系数据库的产生历史b.关系数据模型的组成要素2.关系数据模型a.表(Table)b.关系(Relation)c.列(Column)d.行(Row)e.码或(Key)f.超码或超(Super Key)g.候选码...
  • 关系数据库关系数据模型关系是一个数学概念。 当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。 关系的数学定义例: 课程={离散,C语言…..},学生={张三,李四…..} 笛卡儿积...
  • 数据库原理—关系数据库

    千次阅读 2020-09-05 19:58:37
    1、关系数据库结构 (1)域:一组具有相同数据类型的值的集合(如整数、实数、指定长度的字符串集合) (2)笛卡尔积运算:假设两个集合D1和D2,其中D1={2,4},D2={1,3,5},这两个集合的笛卡尔积D1×D2={(2,1)...
  • 数据库中候选的确定

    千次阅读 多人点赞 2016-06-16 08:43:44
    首先来看候选的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选。 若W是候选,则必须满足两个条件:W的闭包是U;W没有冗余。 设关系模式RU=ABC.......等N个属性,U的属性...
  • redis非关系数据库详解

    万次阅读 2021-02-26 17:03:34
    Redis 是以key-value形式存储,和传统的关系数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 ...
  • 关系数据模型和关系数据库系统

    万次阅读 2017-02-12 13:10:58
    关系数据模型和关系数据库系统
  • 一、关系数据库与非关系数据库的对比 1、关系数据库: 采用关系模型(二维表)来组织数据结构的数据库 oracle DB2 SQLServer Mysql SQLite 优点:*容易理解,逻辑类似常见的表格 *使用方便,都使用sql...
  • 关系数据库系统(数据库原理)

    千次阅读 多人点赞 2019-06-12 22:15:51
    关系数据库系统(数据库原理) 目录 一、关系数据结构 二、关系的完整性 三、关系运算 四、关系的规范化 一、关系数据结构 1、关系的定义和性质 (1)、 关系的数学定义: 域:一组有相同数据类型的值得...
  • 快速理解数据库,候选,主键

    万次阅读 多人点赞 2018-12-14 22:14:06
    先了解下对这三种关键码的定义如下: ...也就是在候选键中在删除属性就不是键了。 主键(primary key) 用户选作元组标识的候选键称为主键。一般不加说明,键就是指主键。 即候选键是超键中选出来的,主键...
  • 数据库理论基本概念之关系键

    千次阅读 2014-03-17 15:21:32
    关系关系数据库的重要组成部分。关系是一个表的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 目录 1 主键2 超3 候选4 外键5 代理 5.1 何时使用代理 6 自然7...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 209,446
精华内容 83,778
关键字:

关系数据库中的键