数据库概念全解
文章平均质量分 78
从关系语言到高级SQL,再到ER模型再到事务管理。从本源到应用,彻底全解数据库。让你的简历再多一行。
QuinnNorris
蚂蚁金服 - 开发工程师
展开
-
1、2、3及BC范式概念
第一范式定义关系中的每个属性都不可再分。理解基本的数据库都满足第一范式。第二范式定义1)关系中不存在非主属性对于主属性的部分函数依赖。2)非主属性必须对主属性完全依赖。举例比如主属性为:A、B,而C作为一个非主属性,只与A有依赖关系,C与B无关,那么此时C对于A、B只存在部分依赖,此时不符合第二范式。理解符合第二范式的关系能够保证每一个非主属性都严格的依赖主属性。就是任何一个非主属性都必须和所有的...原创 2018-07-12 17:30:35 · 1828 阅读 · 0 评论 -
数据库锁
锁在数据库中用来保持并发时的安全性,确保同一时间对数据库的操作是不会出现问题的。锁的性质分类乐观锁:乐观锁是一种概念,不为数据加显示的锁,但是会维护一个版本号或者时间戳,在完成数据操作的时候会检查这个版本号,如果不大于之前获取的值则说明在此期间没有发生更新,可以完成事务。乐观锁有更好的并行性,但是在事务处理比较集中的时候失败率比较高,在事务分散的时候效率不错。而且在多服务多系统中,如果其他的服务调...原创 2018-07-06 10:08:05 · 256 阅读 · 0 评论 -
SQL慢查询
分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。1 导致SQL慢查询的原因在遇到慢 SQL 情况时,不能简单的把原因归结为 SQL 编写问题(虽然这是最常见的因素),实际上导致慢 SQL 有很多因素,甚至包括硬件和 mysql 本身的 bug。SQL编写问题锁业务实例相互干绕对...原创 2018-07-10 18:22:09 · 946 阅读 · 0 评论 -
StorageEngine
1 什么是存储引擎?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持...原创 2018-07-10 18:22:35 · 653 阅读 · 0 评论 -
MySQL数据库原理
MySQL架构连接池:最上层负责和客户端进行连接,比如jdbc,odbj这样的数据库连接的API,在这一层有连接池的概念,类似于线程池,连接池可以同时处理很多个数据库请求。同时这一层有SSL的安全概念,可以确保连接是安全的。SQL接口:当SQL语句进入MySQL后,会先到SQL接口中,这一层是封装层,将传过来的SQL语句拆散,将底层的结果封装成SQL的数据格式。解析器:这一层负责将SQL语句进行拆...原创 2018-07-11 09:35:15 · 1418 阅读 · 0 评论 -
CAP
CAPConsistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容忍性) 可靠性C:一致性,就是说所有的服务器上面的数据都是一样的,A:可用性,用户访问服务器上面的数据,响应时间在可以接受的范围内P:分区容忍性,其实就是高可用性,一个节点崩了,并不影响我们其它的节点1:满足C,所有的机器上的...原创 2018-07-11 10:04:24 · 2233 阅读 · 0 评论 -
JAVA并发编程(五)乐观锁 悲观锁
悲观锁认为随时有可能发生冲突,用锁保护所有临界区。日常使用的锁绝大多数都是悲观锁。优点: 1. 确保安全性,悲观锁临界区内不会发生并发问题。 2. 简单方便。 3. 使用悲观锁,在临界区内操作数据成功率高。缺点: 1. 如果临界区内耗时长,会影响程序整体工作效率。 2. 可能产生死锁。乐观锁乐观的认为不会发生并发冲突,不为临界区代码加锁,但会持有在运行临界原创 2018-02-07 21:10:00 · 910 阅读 · 0 评论 -
【翻译】MySQL-Tutorial ( 3 )
学好MySQL要有好的教程,这里翻译了几篇官方的MySQL教程(MySQL-Tutorial)和大家分享下。 MySQL Tutorial.pdf–链接里有这几篇Tutorial的英文原版pdf,可供英文较好的朋友们学习。MYSQL初学者实例1.总结MySQL命令全部语法如果希望了解更详细语法,请查阅MySQL手册 http://dev.mysql.com/doc/refman/5.5/en原创 2017-05-23 15:52:24 · 794 阅读 · 0 评论 -
【翻译】MySQL-Tutorial ( 2 )
学好MySQL要有好的教程,这里翻译了几篇官方的MySQL教程(MySQL-Tutorial)和大家分享下。 MySQL Tutorial.pdf–链接里有这几篇Tutorial的英文原版pdf,可供英文较好的朋友们学习。安装MySQL 5.7 Windows,Mac OS,CentOS,Ubuntu 使用SQL编程【翻译】MySQL-Tutorial ( 1 )3.3 第四步:开启客户端回原创 2017-05-22 00:01:20 · 966 阅读 · 0 评论 -
【翻译】MySQL-Tutorial ( 1 )
学好MySQL要有好的教程,这里翻译了几篇官方的MySQL教程(MySQL-Tutorial)和大家分享下。 MySQL Tutorial.pdf–链接里有这几篇Tutorial的英文原版pdf,可供英文较好的朋友们学习。MySQL-Tutorial安装MySQL 5.7 Windows,Mac OS,CentOS,Ubuntu 使用SQL编程1.关系数据库和SQL简介1.1关系数据库关系数原创 2017-05-20 13:07:55 · 2046 阅读 · 0 评论 -
SQL——SQL语言全部关键字详解
数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就是数据库。虽然这种观点是错误的,但是也确实从一个方面体现了这种面向结果的查询语言的重要性。原创 2017-05-01 21:05:32 · 70154 阅读 · 9 评论 -
SQL 形式化语言——关系代数
关系代数是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。关系代数的基本运算有: 选择 select σ 投影 project Π 并 union ∪ 集合差 set-difference - 笛卡儿积 Cartesian-product × 更名 rename ρ除了上面的6种基本运算之外,还有一些原创 2017-04-25 19:43:12 · 21846 阅读 · 10 评论 -
SQL——关系模型
上一篇文章中介绍过数据库模型共有四种:关系模型,ER模型,基于对象的数据模型,半结构化模型。这四种模型中,最为常用和流行的就是关系模型,SQL语言所支持的数据库产品就基于关系模型。关系模型利用表的集合来表示数据和数据之间的关系。关系数据库的结构关系数据库由表(table)的集合构成,每张表有自己唯一的名字,每张表有很多行和列。在关系模型中,定义了专业的术语来表示上述概念,用“关系”(r原创 2017-04-24 16:08:23 · 7016 阅读 · 0 评论 -
数据库管理系统DBMS概论
数据库管理系统(DataBase Management System,DBMS)由一个互相关联的数据的集合(数据库)和一组用以访问这些数据的程序组成。DBMS的主要目标是提供一种可以方便高效的存取数据库信息的途径。数据库系统优势在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。实际上,除了使用数据库,我们还可以用其他的方法来持久化数据,比如:文件系原创 2017-04-22 22:08:21 · 2372 阅读 · 0 评论