关系型数据库

如何理解关系型数据库的常见设计范式?

你说的曾经没有我的故事 提交于 2020-01-07 03:20:47
作者:知乎用户 链接:https://www.zhihu.com/question/24696366/answer/29189700 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ============ 2015-1-6 更新,补充了 BCNF 的解释 ============ 国内绝大多数院校用的王珊的《数据库系统概论》这本教材,某些方面并没有给出很详细很明确的解释,与实际应用联系不那么紧密,你有这样的疑问也是挺正常的。 我教《数据库原理》这门课有几年了,有很多学生提出了和你一样的问题,试着给你解释一下吧。 (基本来自于我上课的内容,某些地方为了不过于啰嗦,放弃了一定的严谨,主要是在“关系”和“表”上) 首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“ 符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度 ”。 很晦涩吧?实际上你可以把它粗略地理解为 一张数据表的表结构所符合的某种设计标准的级别 。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等。 数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。 一般在我们设计关系型数据库的时候,最多考虑到BCNF就够 。符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。

Mysql数据库简介

試著忘記壹切 提交于 2020-01-07 00:14:29
数据库的基本概念 数据 描述事物的符号记录称为ishuju(Data) 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起,就形成了“表” 是用来存储具体数据的 数据库 数据库就是表的集合,是存储数据库的仓库 以一定的组织方式存储的相互有关的数据 数据库介绍 关系型数据库,表示描述事物的符号记录 编写SQL规则,查询占据三分之二,修改占据三分之一 数据库的作用:数据的持久化保存,高可靠,高可用,数据的快速提取 数据库按存储类型划分为关系型数据库、非关系型数据库 关系型数据库:存储的是数值、字符、字符串、布尔值等 非关系型数据库:存储的是图片、视频、语音等 关系型数据库:mysql(属于oracle公司)、sql server(微软公司)、access(微软公司office)、oracle(oracle公司)、db2(IBM公司)、sybase(sybase公司)、等 sql server 高性能并发量很低,稳定性低,含有增值服务 税务局用的是oracle, 海关用的是oracle 国家电网用的是db2,操作是不可逆的 sybase可以承受亿级别的并发量 非关系型数据库(统称为NOSQL) MongoDB、redis(内存数据库,数据存放在内存中,也被叫做缓存数据库,以K-V(key-value)键值对存在变量名-——值)

redis笔记之一

让人想犯罪 __ 提交于 2020-01-06 15:32:49
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中。而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要NoSQL 主要传统的关系型数据库暴露了许多问题 1.对数据库高并发读写的需求 高并发就是同一时间有许多用户访问同一网站造成访问量太大容易造成服务器崩溃,而传统的解决方法就是搭建集群,通俗的讲就是原先一个服务器提供服务,现在变成多个服务器提供服务 2.高负载-对海量数据的高效率存储和访问的需求 通俗的讲就是数据量非常大,造成没地方存储或者访问查询sql的语句超过上千万造成查询非常低下 3.高扩展-对数据库的高可扩展性和高可用性的需求 通俗的讲相当于银行窗口排队,刚开始一个窗口不能满足需求,后来增加多个窗口,而增加窗口不会造成业务上的不同,也就是集群起来很方便 主流的NoSQL产品 主要有四大类 1.键值(key-value)存储数据库 主流产品:redis 典型应用:内容缓存,主要用于处理大量数据的高访问负载 优势:快速查询 劣势:存储的数据缺少结构化 2.列存储数据库 主流产品:HBase 典型应用:分布式的文件系统 优势:查询速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限 3.文档数据库 主流产品:MongoDB 典型应用:web应用 优势:数据结构要求不严格 劣势

数据库介绍与分类

匆匆过客 提交于 2020-01-06 00:30:57
第1章 数据库介绍与分类 1.1 数据库介绍 什么是数据库 简单的说,数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,我们可以通过数据库提供的多种方法来管理其中的数据。 1.2 数据库的种类 按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网状数据库和关系型数据库。而在当今的互联网企业中,最常用的数据库模式主要有两种,即关系型数据库和非关系型数据库。 1.2.1 关系型数据库介绍 (1)关系型数据库由来 虽然网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而关系数据库就可以比较好地解决这些问题。 (2)关系型数据库介绍 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。 关系型数据库诞生距今已有40多年了,从理论产生到发展到实现产品,例如:常见的MySQL和Oracle数据库,oracle在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而MySQL也是不容忽视的数据库

MySQL 5.6.37源码编译安装

百般思念 提交于 2020-01-06 00:30:29
MySQL 5.6.37 编译安装 什么是数据库? 简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。 数据库的种类 按照早起的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库,而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。 什么是关系型数据库? 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如老男孩教育某一期的学生关系就是一个二元关系。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系的表格分类、合并、连接或选取等运算来实现数据的管理。 关系型数据库诞生距今已有40多年了,从理论产生发展到显示产品,例如:大家最常见的mysql和oracle数据库,oracle在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而mysql也是不容忽视的数据库,以至于被oracle重金收购。 - 二维表格 - 市场占有量较大的为MySQL、oracle数据库,互联网运维最常用的就是MySQL。 - 通过SQL结构化查询语言来存取、管理数据。 - 在保持数据一致性方面很强。ACID理论。 -

redis笔记之一

孤街浪徒 提交于 2020-01-04 01:11:55
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中。而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要NoSQL 主要传统的关系型数据库暴露了许多问题 1.对数据库高并发读写的需求 高并发就是同一时间有许多用户访问同一网站造成访问量太大容易造成服务器崩溃,而传统的解决方法就是搭建集群,通俗的讲就是原先一个服务器提供服务,现在变成多个服务器提供服务 2.高负载-对海量数据的高效率存储和访问的需求 通俗的讲就是数据量非常大,造成没地方存储或者访问查询sql的语句超过上千万造成查询非常低下 3.高扩展-对数据库的高可扩展性和高可用性的需求 通俗的讲相当于银行窗口排队,刚开始一个窗口不能满足需求,后来增加多个窗口,而增加窗口不会造成业务上的不同,也就是集群起来很方便 主流的NoSQL产品 主要有四大类 1.键值(key-value)存储数据库 主流产品:redis 典型应用:内容缓存,主要用于处理大量数据的高访问负载 优势:快速查询 劣势:存储的数据缺少结构化 2.列存储数据库 主流产品:HBase 典型应用:分布式的文件系统 优势:查询速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限 3.文档数据库 主流产品:MongoDB 典型应用:web应用 优势:数据结构要求不严格 劣势

mysql使用学习记录

假装没事ソ 提交于 2020-01-01 13:02:51
1 什么是关系型数据库 关系型数据库面向的是表,java面向的是对象。 2 RDBMS RDBMS:指的是关系型数据库管理系统。 其实我们是学习如何和仓库管理员进行打交道。mysql就是一个仓库管理员。 3 表结构和表记录 数据库表是一个多行多列的表格,表结构是指的列类型信息(第一列是什么字段,是什么类型),表记录是指的表中的数据(这一条数据中包含了各个字段的信息)。创建表的时候就需要有表结构,然后再存储数据。 4 windows下启动和关闭mysql 以管理员身份运行命令控制台 启动数据库: net start mysql 关闭数据库: net stop mysql 5 远程登陆mysql 可以在控制台远程登陆mysql: mysql -uroot -p -h60.205.209.100 -P3306 退出: quit 6 mysql中的数据类型 int:整型 double:浮点型,例如double(5,2)表示最多五位,其中2位是小数。 decimal:浮点型,用于表示钱,不会丢失精度。 char:固定长度字符串类型,例如char(255)最大是255。 varchar:可变长度字符串类型,最大值为65535。 text(clob):字符数据类型 blob:字节类型 date:日期类型 time:时间类型 tiestamp:时间戳类型 7 sql语言介绍 sql:结构化查询语言

初识Mongodb总结

丶灬走出姿态 提交于 2020-01-01 01:43:26
MongoDb 概述 MondoDb是什么 MongoDB 是一个面向文档的数据库系统。使用C++编写,不支持SQL,但有自己功能强大的查询语法。MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table。是当前 NoSql 数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。 NoSQL与关系型数据库设计理念比较 关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储, 它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构 ,可以减少一些时间和空间的开销。 特点 高性能、易部署、易使用,存储数据非常方便。 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片

MongoDB数据库基本操作

空扰寡人 提交于 2020-01-01 01:38:50
为了保存网站的用户数据和业务数据,通常需要一个数据库。MongoDB和Node.js特别般配,因为Mongodb是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像。本文将详细介绍MongoDB数据库 数据库 数据库,顾名思义,是数据存储的仓库,主要功能有两个 1、有组织地存放数据 与在磁盘上自己存放文件不同,数据库替用户组织了数据的存储形式,用户只需要按照数据库提供的接口将数据写入,数据便会按照标准的格式被存储起来 2、按照不同的需求进行查询 数据库不仅要能写入数据,还支持数据查询,并且能够按照不同的需求进行查询。因为存储是有组织的,因此查询上可以更规范化,查询速度也会快很多 不同的数据库的区别就是存放数据的组织不同,同时提供了不同种类的查询。用户可以按照自己的需求,选择合适的数据库 【分类】 数据库的分类有很多种,按照对SQL语言的支持,可以分为以下两种: 1、SQL数据库,比如Oracle、Mysql等 2、NoSQL数据库,比如Redis、MongoDB等 随着在规模互联网应用的出现,传统的SQL数据库遇到了一些设计上的弊端。比如,SQL对表的定义使应用不够灵活,横向扩展比较困难。与一些特性难以满足相比,反而是SQL数据库的很多特性没有用武之地。比如,在很多场景下,及时存取并不是必要的

redis的事务

送分小仙女□ 提交于 2019-12-31 01:03:52
Oracle:的事务目的是为了保证数据完整,安全。 Redis 的事务是为了进行redis语句的批量化执行(相当于批量执行 sql) multi:开启事务用于标记事务开始,其后执行的命令都被存在命令队列,直到执行exce时候    这些命令才会 被原子执行,类似与关系型数据库中的:begin transation exce:提交事务,类似与关系型数据库的commit     执行批量化 discard : 事务回滚,类似与关系型数据库的rollback    不执行批量化 来源: https://www.cnblogs.com/f1209/p/7552925.html