首页 > 代码库 > 数据库基础
数据库基础
1、什么是数据库
简单的说,数据库是一个存放数据的仓库,这个仓库是按照一定的数据结构来组织存储的,可通过数据库提供的多种方法来管理数据库里的数据
2、数据库的种类
早期的数据库理论,有层次式数据库、网络式数据库和关系型数据库,目前常用的是关系型数据库和非关系型数据库
关系型数据库
由来:虽然 网状数据和层次数据库已很好解决了数据的文集中和共享问题,但在数据独立性和抽象级别上仍有很大欠缺,用户在对这两种数据库进行存取时,仍然需要明确数据库的存储结构,指出存取路径,现关系数据库可解决此问题
介绍:关系型数据库模型即二维表格。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据的管理
面试讲解什么是关系型数据库
1、关系数据库类似于excel表格的二维表来表示
2、关系型数据库使用结构化查询语言对数据进行存取
3、关系型数据代表作 mysql oracle
非关系型数据库(NoSQL) no only SQL
由来:随着互联网web2.0(以用户为主体,上传、下载、发布)网站的兴起,传统关系型数据库对大规模的海量数据,高并发的微信、微博的web2.0纯动态网站已力不从心,会出现数据库IO瓶颈,性能瓶颈问题,于是出现了针对特定场景,以高性能和使用便利为目的功能特异化的数据库存产品
产品:Google的BigTable Amazon的Dynamo
开源的NoSQL: Facebook的Cassandra Apache的Hbase Redis mongodb
非关系型数据库种类
1)键值(Key-Value)存储数据库
键值数据‘库类似传统语言中使用的哈希表,可以通过key来添加,查询或者删除数据
典型产品: Memcached Redis MemcacheDB BerkeleyDB
2)列存储(Column-oriented)数据库
列存储数据库将数据储存在列表中,一个列族存储经常被一起查询的相关数据。
典型产品:Cassandra HBase
3)面向文档(Document-Oriented)数据库
典型产品:MongoDB CouchDB
4)图形数据库
典型产品:Neo4J InfoGrid
3、常用关系型数据库产品介绍
3.1、Oracle数据库
1977年由Larry Ellison和另两个编程人员开发
主要应用范围:传统大企业、大公司、政府、金融、证券等等
版本:Oracle8i Oracle9i Oracle10g Oracle11g
3.2、MySQL数据库
MySQL数据库是一个中小型关系型数据库管理系统,由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购。应用于大中小型网站中,其特点体积小、速度快、总体拥有成本低
主要应用范围:互联网领域 大中小型网站 游戏公司 电商平台等等
3.3、MariaDB数据库
MariaDB是MySQL数据库的一个分支
4、常用非关系型数据库
4.1、Memcached
特点:重启数据丢失
为解决这一问题,后开发了Memcacheddb,Memcacheddb非常适合需要超高性能读写速度、持久化保存的应用场景
4.2、redis数据库
redis的数据都是缓存在内存中,区别是redis会周期性的把更新的数据写入磁盘或把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步
它提供了 python ruby erlang php客户端
redis特点;
1)支持内存缓存
2)支持持久化
3)数据类型更丰富,比其他key-value库功能更强
4)支持集群,分布式
5)支持队列等特殊功能
应用:缓存从存取memcached更改存取redis
4.3、MongoDB
MongoDB是介于关系数据库和非关系数据库之间的产品,它支持数据结构非常松散,类似json的bjson格式
特点:支持的查询语言非常强大
4.4、Cassandra
本文出自 “孤独没有颜色” 博客,请务必保留此出处http://tenderness.blog.51cto.com/8855468/1857781
数据库基础