关系型数据库

NoSQL 与 关系型数据库

爱⌒轻易说出口 提交于 2020-03-11 10:00:21
一、二者的基本概念 NoSQL,泛指非关系型的数据库。 关系数据库,是建立在关系模型基础上的数据库。 这里提到了关系模型, 关系模型是1970年由E.F.Codd提出的。 它和层次、网状模型相比,有以下特点: 1.数据结构简单(二维表格) 2.扎实的理论基础。 a.关系运算理论 b.关系模式设计理论 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征: 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。 分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。 异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样

关系型数据库设计的三大范式

江枫思渺然 提交于 2020-03-11 03:23:18
文章目录 第一范式(1 NF) 第二范式(2 NF) 第三范式(3 NF) 第一范式(1 NF) 数据表中所有的字段都是不可分割的原子值 不满足第一范式,一般通过拆列解决 若字段值还可以继续拆分开,显然就不满足第一范式,如有一个列字段中存了“湖北省武汉市xxx地区”,这样不满足第一范式,我们需要拆开为几列,当然开发中我们不一定非要满足第一范式,有时候开发时会发现不拆比拆开更好 第二范式(2 NF) 在满足第一范式的前提下,要求除了主键外的每一列都完全依赖于主键,否则不满足第二范式 不满足第二范式,一般通过拆表解决 打个比方,联合主键时候,其他非主键字段其实只依赖于联合主键中的一个列,这样是不满足第二范式的 第三范式(3 NF) 在满足第二范式的前提下,要求表中除了主键意外,其他列不能有传递依赖 可以通过拆表来解决 打个比方,学生表,主键为学号,表中还有身份证号,这样学生姓名还依赖于身份账号,这样就是传递依赖,不满足第三范式 来源: CSDN 作者: abcnull 链接: https://blog.csdn.net/abcnull/article/details/104758806

mysql关系型数据库

。_饼干妹妹 提交于 2020-03-10 18:03:59
参考:https://www.cnblogs.com/alex3714/articles/5950372.html 关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 RDBMS 术语 数据库: 数据库是一些关联表的集合。. 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余 :存储两倍数据,冗余可以使系统速度更快。(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。例如,学生的信息存储在student表中,院系信息存储在department表中。通过student表中的dept_id字段与department表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去department查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。) 主键 :主键是唯一的

数据库随笔 非关系型数据库Nosql

风格不统一 提交于 2020-03-10 03:13:18
Nosql——非关系型数据库 关系型数据库:ACID(四种都能满足 原子性、一致性、独立性及持久性 非关系型数据库: CAP(只能同时满足两种,且可用性高于一致性 一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance) 分布式:多台服务器上部署不同的服务模块 集群式:一台服务器上部署多个相同的服务模块 来源: CSDN 作者: Mush1 链接: https://blog.csdn.net/qj4865/article/details/104760129

关系型数据库

这一生的挚爱 提交于 2020-03-09 14:42:11
目录 2、关系型数据库 一、基本概念 1、表 2、列 3、行 4、关键字 5、候选键 6、外部关键字 7、域 8、数据类型 二、数据库基本性质 2、关系型数据库 关系型数据库是目前应用最广泛的数据库,它以关系模型作为逻辑数据模型,采用关系作为数据的组织形式,其数据库操作建立在关系代数的基础上,具有坚实的数学基础。关系数据库具有较高的数据独立性,当数据的存储结构发生改变时,不会影响应用程序,这样,能大大减少系统维护的工作量。 一、基本概念 1、表 表(Table)也称为关系,由表名、构成表的各个列及若干行数据组成。 2、列 表中的列(Field)也称作字段或属性。 3、行 表中的数据是按行存储的。表中的行(Row)也称作元组(Tuple)或记录(Record)。 4、关键字 关键字(Key)是表中能够唯一确定一个元组的属性或属性组。关键字也称作码或主键 5、候选键 如果一个表中具有多个能够唯一标识一个元组的属性,则这些属性称为候选键 6、外部关键字 外部关键字(Foreign Key)也称作外键。如果表的一个字段不是本表的主键或候选键,而是另外一个表的主键或候选键,则该字段称为外键。 7、域 域(Domain)表示属性的取值范围。 8、数据类型 表中每个列都有相应的数据类型,它限制(或容许)该列中存储的数据。 二、数据库基本性质 关系型数据库具有下列基本属性:

非关系型数据库----MongoDB

霸气de小男生 提交于 2020-03-09 12:30:39
一、什么是MongoDB?   MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。   在高负载的情况下,添加更多的节点,可以保证服务器性能。   MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。   MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 主要特点 MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。 Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。 Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。 Map和Reduce。Map函数调用emit(key,value

【Hbase】知识总结

萝らか妹 提交于 2020-03-09 06:14:56
Hbase的简介 Hbase的来源 1、数据量越来越大,传统的关系型数据库,不能满足存储和查询功能的需求。而hive虽然能够满足存储的要求,但是hive的本质也是利用底层的mr,所以读写速度不快,而且hive不能满足非结构化,半结构化的存储,hive主要的作用是分析和统计,hive用于存储是毫无意义的。 2、起源于Google在2006发表的一篇论文《bigtable》,是对bigtable的开源实现的java版本 Hbase的定义 Hbase是一个在HDFS上运行的,面向列的,分布式的,hadoop数据库。他是一个非关系型()(Not Only Sql)的数据库,不是传统的非关系型数据库,对事物支持很差起源于《BigTable》 Hbase的特征 1、适合存储超大规模的数据集,可以提供数据的实施读写。 2、线性扩展好,高的可靠性。 3、Hbase的表模型与关系型数据库的表模型不同: a)Hbase表中没有固定的字段定义 b)Hbase表中每行存储的都是些key-value对 c)Hbase表中有列簇的划分,用户可以指定将哪些kv插入哪个列簇 d)Hbase的表在物理存储上,是按照列簇来切分的,不同列簇的数据一定存储在不同的文件中 e)Hbase表中的每一行都有固定的行键作为唯一标识,每行的行键在表中是不能重复的 4、Hbase中的数据,包含行键、key、value都是byte[

简单介绍之数据库历史与市场

◇◆丶佛笑我妖孽 提交于 2020-03-09 00:12:06
我知道你一定听过Mysql,听过oracle,也可能听过redis,hive和mariaDB等等,他们都被人们称作数据库。但是你知道为什么数据库要分这么多种么?这么多数据库存在的价值是什么?这篇我们放轻松,浅略一下数据库的种类和各自特性。 一,从数据库的历史说起 我之前在 技术面试 中区分过数据库和DBMS的区别,这里指的数据库概念要自己区分好。 数据库是用来存储数据的,随着计算机技术的发展,数据库被赋予了更多的功能并作为后端不可缺少的一部分。数据库的发展历史大致可以分为: 磁盘文件存储->导航类型数据库(层次结构模型->网络结构模型)->关系结构模型数据库->后关系模型数据库 导航类型数据库 上世纪60年代的数据库模型有点类似于传递指针,命令请求数据就像导航一样在存储介质中快速进行查找,由此人们终于可以抛弃基于磁带系统的批处理的方式进行数据查找,而是可以通过数据库共享交互式使用数据。 关系型数据库 转眼到了70年代,导航型数据库得到改进,因为他缺乏了很多紧缺的功能,比如搜索,事务的安全性,存储数据的规范等等。抛弃链接和指针,一个关键的概念“表”产生了,从此,慢慢开始为关系型数据库演化出查询语言SQL,建设关系型数据库的关系模型,表和表之间的运算,增加索引等等,关系型数据库的演化周期很长,到今天仍然不断更新来适用人们的需求。从而市场上开始涌现越来越多的数据库

Redis系列 —— 简介与安装

女生的网名这么多〃 提交于 2020-03-08 14:55:56
Redis简介   Redis是完全是开源免费的,遵循BSD协议(是一个给与使用者很大自由的协议),是一个高性能(NOSQL非关系型数据库)的key-value数据库,并提供多种语言的API。   它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 特点: 1.性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s。 2.丰富的数据类型-Redis支持的类型String,List, Hash, Set及Ordered Set数据类型操作。 3.原子-Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 4.丰富的特性-Redis还支持publish/subscribe,通知, key过期等等特性。 关系型数据库和非关系型数据库    关系型数据库 最典型的数据结构是表,表与表之间建立关联关系。 优点:   1、易于维护:都是使用表结构,格式一致;   2、使用方便:SQL语言通用,可用于复杂查询;   3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。 缺点:   1、读写性能比较差

MySQL数据库表的基础操作(增删改查)---讲解一

末鹿安然 提交于 2020-03-06 18:47:56
MySQL环境配置(mysql有下载包) MySQL数据库表的基础操作(增删改查)---讲解一 MySQL数据库表的模糊/多行/分组/排序/分页查询以及字mysql数据类型的讲解---讲解二 MySQL字段约束及多表查询---讲解三 1.数据库概述 1.1 什么是数据库 数据库:存储和管理数据的仓库 数据库是一个专业的存储和管理数据的软件系统,比传统的人工或文件保存数据小路更高、更安全、更可靠。 数据库有哪些分类(了解) 早期:层次是数据库、网络型数据库 现在:==关系型数据库==和非关系型数据库 1.2什么是关系型数据库? 关系型数据库就是底层以二维表的形式保存数据的库就是关系型数据库 保存学生信息(student表) 编号 | 姓名 | 成绩 -------- | ----- |----- 1 | 王二妮|88 2 | 李铁柱 |74 3 | 陈翠花|97 常见的关系型数据库有哪些?(了解) SqlServer: 微软提供、适用于中型、大型的项目中,收费,在Java中的使用占比不高(不超过10%) .NET Oracle: 甲骨文公司提供、适用于大型、超大型的项目中,收费,在Java中使用占比非常高- 50%) 性能优异,功能强大。 Mysql:瑞典MYSQLAB公司提供,免费、开源,小巧轻量,在Java中占比约为20% 被甲骨文公司收购了。Mariadb DB2: