zoukankan      html  css  js  c++  java
  • 关系型和非关系型数据库——学习笔记

    关系数据库(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

    关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

    实体关系模型:实体关系模型(Entity-Relationship Model),简称E-R Model,是陈品山(Peter P.S Chen)博士于1976年提出的一套数据库的设计工具,他运用真实世界中事物与关系的观念,来解释数据库中的抽象的数据架构。实体关系模型利用图形的方式(实体-关系图(Entity-Relationship Diagram))来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论。

    关系操作:
    1)数据查询:
       A.选择
       B.投影
       C.连接
       D.并
       E.交
       F.差
       G.除
    2)数据操作:
       A.增加
       B.删除
       C.修改
       E.查询

    完整性约束包括
       1)实体完整性
       2)参照完整性

       3)用户定义完整性


    关系型数据库的特点
       1)关系型数据库的最大特点就是事物的一致性,为了维护一致性所付出的巨大代价就是读写性能比较差
       2)具有固定的表结构,扩展性差
       3)数据的持久化需要关系型数据库


    非关系型数据库:NoSQL,有时也称作Not Only SQL的缩写,NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展性的特征。NoSQL的实现具有二个特征:使用硬盘,或者把随机存储器作存储载体。

    主要分为一下几类:
       1)面向高性能并发读写的Key-Value数据库:Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet,Flare就是这类的代表。
       2)面向海量数据访问的面向文档数据库:这类数据库的特点是,可以在海量的数据中快速的查询数据。典型代表为MongoDB以及CouchDB。

       3)面向可扩展性的分布式数据库:这类数据库想解决的问题就是传统数据库在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,Google Appengine的Big Table就是这类的典型代表,并且,BigTable特别适用于Map Reduce处理。


    参考:

    http://zh.wikipedia.org/wiki/NoSQL

    http://zh.wikipedia.org/wiki/%E9%97%9C%E8%81%AF%E5%BC%8F%E8%B3%87%E6%96%99%E5%BA%AB

    http://www.sigma.me/2011/06/11/intro-to-nosql.html




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    第十四章:(2)Spring Boot 与 分布式 之 Dubbo + Zookeeper
    第十四章:(1)Spring Boot 与 分布式 之 分布式介绍
    第九章:Redis 的Java客户端Jedis
    第十三章:(2)Spring Boot 与 安全 之 SpringBoot + SpringSecurity + Thymeleaf
    第八章:(1)Redis 的复制(Master/Slave)
    java学习
    周末总结4
    java
    Cheatsheet: 2012 12.17 ~ 12.31
    Cheatsheet: 2012 10.01 ~ 10.07
  • 原文地址:https://www.cnblogs.com/Rex7/p/4752571.html
Copyright © 2011-2022 走看看