互联网公司的互联网的网站最大的瓶颈是后端(存储和数据库)
CDN加速、缓存、动态网页html
数据库缺点:“极难扩展”
数据库的定义:
数据库(英文Database):就是存放数据的仓库
应用:类似于储物间
管理数据库:通过数据库提供的多种方法来管理数据库数据
转变:从存储和管理数据库---》用户所需要的各种数据管理的方式
从单一到多样化
数据库的种类:
早期比较流行的数据库模型:层次式数据库、网络式数据库和关系型数据库。
网状数据库和层次数据库能解决数据的集中和共享问题
现在主流的数据库模型: 关系型数据库和非关系型数据库
关系型数据库:由来:(层次和网状)数据库在用户存取时,需要明确数据的存储结构和存取路径,很麻烦所以出现了关系数据库
简介:将复杂的数据结构结为简单的二元关系(二维表格形式)类似于excel表格的二维表格 结构查询语言,SQL语句
主流数据库是MySQL和Orale。
非关系型数据库:NoSQL数据库
NoSQL(全称NotOnlySQL) :非关系型数据库是对关系型数据库的补充,
NoSQL数据库在特定场景可以发挥出难以想象的高效率和高性能。
产生原因:(动态数据请求太多,对数据库要求要求越来越高,传统数据库达不到)如web2.0所以就出现了NoSQL
NoSQL应用:谷歌的BigTable amazon的Dynamo
开源的有:Facebook的Cassandra Apache的HBase
Redis ,mongodb是主流的
NoSQL数据库没有标准的查询语言(SQL),因此进行数据查询需要定制数据库模型。许多NoSQL数据库都有REST式的数据接口或者查询API
典型产品:
Neo4j :
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。
来自 <https://baike.baidu.com/item/Neo4j/9952114?fr=aladdin>
nfoGrid:
nfoGrid是一个post关系web应用程序的平台。
来自 <https://baike.baidu.com/item/InfoGrid>
常用关系型数据库产品:
1、Oreacle数据库: 前身是SDL 在1977年创办 甲骨文公司
主要应用范围:传统大企业,大公司 政府 金融等
2、 MySQL数据库:中小型关系型数据库管理系统, 雅典mySQL AB公司开发
2008年1月16被Sun收购---》oracle收购(甲骨文)
MySQL被广泛应用在internet上的大中小型网站中 ,mySQL的创始人:Michael Widenius
特点:体积小、速度快 总体拥有成本低,开放源码。
应用场景:互联网领域、大中小型网站、游戏公司、电商平台等
3、 MariaDB 数据库:是mySQL的分支
主要由开源社区维护,采用GPL授权
4、SQL Server 数据库
微软公司开发的大型关系性数据库系统
只能运行在window系统下
5、Access数据库
Microsoft公司于1994年推出的微机数据库管理系统
入门级小型桌面数据库,性能安全都很一般,可供个人管理或小型网站
适用于中小型应用系统
应用场景:小型程序系统asp+access系统 留言板、校友录等
6其他关系型数据库
DB2、PostgreSQL infomix Sybase
常用非关系型数据库产品:
1 Memcached(key-value)*
是一个开源的、高性能的、具有分布式内存对象的缓存系统。
特点:快、但是一重启数据就丢失了
网址:http://memcached.org/
在Memcached的基础上新浪开发了Memcachedb。
通过Memcached增加Berkeley DB的持久化存储机制和异步主铺复制机制
Memcachedb具有事务恢复能力、持久化数据存储能力和分布式复制能力。
特点:读写速度块、持久化保存
逐渐被redis所取代。
2、redis (key-value)----和Memcached类似
redis的数据是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者修改操作写入追加的记录文件, 并且再次基础上实现了master-slave(主从)同步
在部分场合是对关系数据库的补充作用
特点:支持内存缓存,这个功能相当于memcached。
支持持久化,这个功能相当于memcachedb,ttserver。
数据类型更丰富。比其他key-value库功能更强
支持集群,分布式
支持队列等特殊功能
应用:缓存从存储memcached跟改存取redis
3、mongoDB(Document-oriented):
介于关系数据库和非关系数据库之间的产品。 非关系数据库当中功能最丰富
支持数据结构非常松散,类似json的bjson格式,可以存储比较复杂的数据类型
最大特点是他支持的查询语言非常强大。 语法类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能。数据建立索引
网站:https://mariadb.org/
4、Cassandra (column-oriented)
是一套开源分布式key-value存储系统。(混合型的非关系型的数据库)
特性:分布式、基于column的结结构化、高伸展性
特点:他不是一个数据库,而是一堆数据库节点共同构成的一个分布式网络服务,
5、其他非关系型数据库
Hbase MemcacheDB、Berkeley DB、Tokyo Canbinet\tokyo Tyrant(ttserver)
数据库的历史:
重点:种类:非关系型和关系型(二维表)
代表产品:oracle MySQL
诞生背景web2.0
非关系型数据库:Memcached(key-value), redis和MongoDB
关系型数据库:oracle Mysql MariaDB SQLserver