数据库是按照数据结构来组织、存储和管理数据的仓库,数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件。
先上一张整体架构图
最开始的时候,DBMS只提供了API接口,这样一来只有程序员能够直接面对DBMS,而普通用户只能在程序员开发出来的应用程序上面进行数据库的管理,但是对数据要求的场合实在太多,程序又不能面面俱到。这样一来对于那些有特殊要求,但是并不具备高端开发人员来说,DBMS实在太不友好了。有需求就有创造,对于国外大牛们来说,没有什么是不可能的。从Unix的出现再到C语言的发明过程就能看的出来。。这个时候。SQL语言应运而生。
SQL全称结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,只需要了解SQL就行。
简单来说,就是DBMS开发人员将一些常用接口(查,改,删…)制作成了一个一个的命令,这个就是SQL。
常用关系型DBMS:(随便介绍一下,有个认知就好)
Sqlite:
简单的,本地的,非服务化的纯粹基于API的关系型数据库接口。嵌入式系统使用,说是DBMS,其实只是一个引擎,数据还是以普通文件的形式存放,只不够通过调用其API能实现关系型数据库的功能。 嵌入式系统使用的比较多
PostgreSQL:
前身eSQL,组建了EnterpriseDB,号称有甲骨文功能,但是价钱只有其1/3
MySQL:
作者Monty,My是其女儿名字。
发展过程:
- 1979年出现雏形,1996年MySQL 1.0发布
- 1999-2000年 MySQL AB公司成立
- 2008年1月 MySQL AB公司被Sun公司以10亿美金收购。
- 2009年4月 Sun公司被Oracle公司以74亿美金收购。
- 至今,曾经核心服务都在使用二次开发过的MySQL的公司,比如google facebook apple,现在都放弃了MySQL转而使用其他数据库,其中转移到MariaDB的比较多,转移到PosrgreSQL的也有
MariaDB:
MariaDB数据库管理系统是MySQL的一个分支,其作者依然是Monty,Maria是其小孙女的名字。
成立于2009年,MySQL之父Michael “Monty” Widenius用他的新项目MariaDB完成了对MySQL的“反戈一击”。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去几年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。虽然现在MariaDB市场占有率不高,但是就好像Nginx一样,大公司使用MariaDB的还是比较多。
MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。而且从MySQL迁移到MariaDB也是非常简单的,也就是说,在大多数情况下,完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
SQL Server:
Microsoft和Sysbase一起开发,途中Sysbase放弃继续开发,Microsoft买断之后独立开发,只运行在Windows平台,不过在今年3月8日,Microsoft推出了Linux版SQL Server预览版,并将于2017年中全面发布这款产品
Oracle:
主要优势在于一致性,基本上银行电商的核心业务必须用Oracle(当然阿里的去IOE行动也证明了Oracle在电商中也不是不可以被放弃的)。Oracle的优化器,也是Oracle被称为高性能数据库的原因。收费:按核来收费,收费特别贵,而且营销手段比较特别,所以Oracle特别有钱。称号:大流氓,Oracle的DBMS很强大,但同样强大的还有它对开源界的破坏能力,
- Openoffice在被Oracle收购过来之后闭源,其开发团队又自行开发了Libreoffice,Openoffice有因为没人购买再次开源,不过之后也没多少人用了
- 和Google打官司要收取Java的授权费用,5月27日败诉,这个消息应该会让很多Jave开发者大松一口气,但是Oracle还宣布了关闭Java.net和kennai.com社区。
- MySQL被Oracle收购之后,也隐隐展现出闭源的意思,而在这之前,各方反应就可以看的出来Oracle大流氓称号的威慑力
DB2:
IBM收购90年代数据库行业巨头Informix之后开发的数据库。不怎么了解。
好了,先就写到这里,关系型数据库的点实在太多,事务、锁、存储引擎、隔离级别、并发管理、约束等等实在太多。还是以后慢慢写