关系型数据库与非关系型数据库

关系型数据库:

1、定义:

创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

2、关系模型常用概念:

(1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名

(2)元组:可以理解为二维表中的一行,在数据库中经常被称为记录

(3)属性:可以理解为二维表中的一列,在数据库中经常被称为字段

(4)域:属性的取值范围,也就是数据库中某一列的取值限制

(5)关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成

(6)关系模式:指对关系的描述。其格式为:关系名(属性1,属性2,... ,属性N),在数据库中成为表结构

3、关系模块中常用的操作:

(1)数据查询:选择、投影、连接、并、交、差、除

(2)数据操作:插入、删除、修改、查询

4、模式结构:

外模式、模式、内模式

5、特点:

(1)基于单一关系模型,结构化存储,有完整性约束

(2)通过二维表建立数据之间的联系

(3)采用结构化查询语言(SQL)做数据读写

(4)操作保存数据的一致性

6、优点:

(1)容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解

(2)使用方便:通用的 SQL 语言使得操作关系型数据库非常方便

(3)易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率

 7、缺点:

(1)高并发读写需求:用户并发性非常高,对于传统关系型数据库来说,硬盘 I/O 是一个很大的瓶颈

(2)海量数据的高效率读写:网站每天产生的数据量是巨大的,对于关系型数据库来说,

在一张包含海量数据的表中查询,效率是非常低的

(3)高扩展性和可用性:在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量

与日俱增时,数据库却没法像 web server 和 app server 那样简单的通过添加更多的硬件

和服务节点来扩展性能和负载能力

非关系型数据库:

1、定义:

(1)对不同于传统的关系数据库的数据库管理系统的统称

(2)其数据存储可以不需要固定的表格模式,也经常会避免使用 SQL 的 JOIN 操作,一般有水平可扩展性的特征

2、主要分类:

(1)面向高性能并发读写的 key-value 数据库:key-value数据库的主要特点即使具有极高的并发读写性能,

Redis,Tokyo Cabinet,Flare就是这类的代表

(2)面向海量数据访问的面向文档数据库:这类数据库的特点是,可以在海量的数据中快速的查询数据,

典型代表为 MongoDB 以及 CouchDB

(3)面向可扩展性的分布式数据库:这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,

可以适应数据量的增加以及数据结构的变化

3、特点:

(1)非结构化的存储

(2)基于多维关系模型

(3)具有特有的使用场景

4、优点:

(1)高并发,大数据下读写能力较强

(2)基本支持分布式,易于扩展,可伸缩

(3)简单,弱结构化存储

5、缺点:

(1)join 等复杂操作能力较弱

(2)事务支持较弱

(3)通用性差

(4)无完整约束复杂业务场景支持较差

总结:

1、关系型数据库和 NoSQL 数据库的选型,往往需要考虑几个指标:

(1)数据量     (2)并发量     (3)实时性

(4)一致性要求     (5)读写分布和类型

(6)安全性     (7)运维成本

2、常见软件系统数据库选型参考如下:

(1)内部使用的管理型系统:如运营系统,数据量少,并发量小,首选考虑关系型

(2)大流量系统:如电商单品页,后台考虑选关系型,前台考虑选内存型

(3)日志型系统:原始数据考虑选列式,日志搜索考虑选倒排索引

(4)搜索型系统:例如站内搜索,非通用搜索,如商品搜索,后台考虑选关系型,前台考虑选倒排索引

(5)事务型系统:如库存,交易,记账,考虑选关系型型+缓存+一致性型协议

(6)离线计算:如大量数据分析,考虑选列式或者关系型也可以

(7)实时计算:如实时监控,可以考虑选内存型或者列式数据库

(0)

相关推荐

  • 《数据库系统概论》课后答案||第五版,第二,三,四章

    回复关键词:数据库系统概论 即可获取相应资源 其他章节关注公众号获取 第 2 章 关系数据库 1 .尝试述关系模型的三个组成部分. 答:关系模型由关系数据结构. 关系操作集合和关系完整性约束三部分组成 ...

  • 2021年9月计算机二级公共基础知识押题151-170

    考前两周公共基础知识密训课程:[最新]未来教育计算机二级考前必看选择题干货:公共基础考前密训课程_哔哩哔哩_bilibiliwww.bilibili.com/video/BV1dX4y1V7SR?sp ...

  • 详细解说关系型数据库

    目录 1.1.认识关系型数据库 1.1.1 什么是关系型数据库 1.1.2  实体关系模型 1.1.3  关系型数据库管理系统RDBMS 1.1.4  使用SQL语言管理数据库 1.1.认识关系型数据 ...

  • 【竺】数据库笔记7——Mysql数据库备份

    *. mysql -u username -p password: 这个命令用于输入用户名和密码登陆mysql服务器: *.show databases;:用于查看mysql服务器中的数据库情况(会罗 ...

  • 中文科技期刊数据库[中文科技期刊数据库]

    <中文科技期刊数据库>源于重庆维普资讯有限公司1989年创建的<中文科技期刊篇名数据库>,其全文和题录文摘版一一对应,经过13年的推广使用和完善.全文版的推出受到国内广泛赞誉, ...

  • Oracle数据库实验一建立数据库

    实验日期:   2019 年  09 月  24  日 实验报告日期:   2019  年  09 月  28 日 一.      实验目的 熟悉oracle环境: 熟练掌握和使用PL-SQL建立数据 ...

  • (2条消息) 关系型数据库的范式

    解决问题no解决代码问题 2020-08-06 10:25:33   版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...

  • 07 | 数据访问:如何使用 JdbcTemplate 访问关系型数据库?

    06 讲我们详细介绍了 JDBC 规范的相关内容,JDBC 规范是 Java 领域中使用最广泛的数据访问标准,目前市面上主流的数据访问框架都是构建在 JDBC 规范之上. 因为 JDBC 是偏底层的操 ...

  • 06 | 基础规范:如何理解 JDBC 关系型数据库访问规范?

    从今天开始,我们将进入 Spring Boot 另一个核心技术体系的讨论,即数据访问技术体系.无论是互联网应用还是传统软件,对于任何一个系统而言,数据的存储和访问都是不可缺少的. 数据访问层的构建可能 ...

  • 基于关系型数据库的App Inventor网络应用

    一直想介绍这个题目,但顾虑重重.一方面担心自己为了面面俱到,迷失在对细节的纠缠中,另一方面,也担心读者的知识背景不尽相同,阅读过程中会止步于某个陌生的环节,半途而废. 我们的目标是用App Inven ...

  • 基于关系型数据库的App Inventor网络应用(2)

    第二节 后端技术 1. 网络结构 如图2所示,你一定见到过这类图,它被称作网络拓扑图,描述了网络应用中的几个重要角色以及它们之间的关系.以图中的云(internet)为分界线,云的一端是种类及型号繁多 ...

  • 基于关系型数据库的App Inventor网络应用(3)

    第三节 初识Node-RED 开发环境简介 如图8所示,整个浏览器窗口被划分为四个部分: (1) 顶部黑色通栏,左侧显示Node-RED的LOGO,右侧显著位置为部署按钮,部署按钮的右侧(三条横线)为 ...