1.什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,长期储存在计算机内、有组织的、可共享的数据集合。
数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。
2.主要特点
⑴ 实现数据共享
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
⑵ 减少数据的冗余度
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
⑶ 数据的独立性
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
⑷ 数据实现集中控制
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
⑸数据一致性和可维护性,以确保数据的安全性和可靠性
主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
⑹ 故障恢复
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
3.数据库种类
(1).比较流行的数据库模型有三种:层次式数据库,网络式数据库,关系型数据库.现在最常用的是关系型数据库和非关系型数据库,这两类就是现在用的最广泛的.
4.关系型数据库
关系型数据库就是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或者多个关系表格上,通过对这些关联的表格分类,合并,连接或者选取等运算来实现数据的管理.主要的关系型数据库代表为:MySQL,Oracle.
MySQL:
被广泛的应用在Internet的大中小网站中,体积小,速度快,开源,所以很受欢迎,
主要使用者:互联网,各种网站,游戏公司,电商平台.
Oracle:
性能优越,不开源,价格昂贵.
主要是传统的大企业,大公司,政府,金融,证券等行业使用.
5.非关系型数据库(NOSQL)
NoSQL,泛指非关系型的数据库。NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状。Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库,Facebook的Cassandra,Apache的HBase.redis,mongodb.
6.数据库缓存机制:
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
由于memcached为纯内存软件,一旦重启所有数据都会丢失,所以新浪基于其开发了持久化存储机制,和异步主辅复制机制,使其具有事务恢复功能,持久化数据存储和分布式复制能力,最近几年逐步被redis所替代.
新浪基于这个开发了一个机制,断电之后,数据还是会保存.
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。