概念
强烈建议看一看:
B树/B-树/B+树/B*树:
http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html
比方说有个bbs,有100万个用户,一亿个帖子,怎样合理管理;
如查找用户,我可以使用索引,一个文件专门存放用户名,然后用户名的各种信息保存在其他的服务器中;
通过用户名索引查找到用户的信息,这个是索引;
用grep在大数据中查找,是最笨的;
通过二分法进行用户数据查找,100W大概14次,可以大大减少查找量,不过这种方式还是慢;
所以B+树索引算法是更好的
查找标准—-搜索码
所以开发一个程序来管理索引与数据是最为合适的;
叫做数据管理软件
如何管理数据是非常重要的
所以如何有效的查找数据是非常重要的
数据库管理系统最为重要
DBMS:dataBase Management System
DBA 数据库管理员
RDBMS:relational database management system “关系”数据库管理系统
- 数据库创建/删除;
- 创建表、删除表、修改表;
- 索引的创建、删除;
- 用户和权限;
- 数据增、删、改;
- 查询;
- DML:数据操作语言
- INSERT/REPLACE/UPDATE/DELETE
- DDL:数据定义语言
- CREATE/ALTER/DROP
- DCL:数据控制语言
- GRANT/REVOKE
- 数据的组织结构
- 层次型
- 网状型
- 关系型
SQL:结构化查询语言
RDBMS:
Oracle、Sybase、infomix(IBM)、SQLServer(Sybase变种)
MySQL、PostgreSQL(egreSQL的后来版本)、pgsql、EnterpriseDB
一体化的公司:Oracle IBM两大巨人
去IOE:IBM、Oracle、EMC
为了防止MySQL被Oracle私有化,所以原作者开发了MariaDB;
有个组织叫做Percona根据MySQL进行改进,不收费,赚服务费,叫percona server;
MySQL Connectors
进行数据库管理,调用API来对数据库的开发管理,如php、Java、c++等都可以,但是要想使用API,
就需要相应的驱动来连接,—–>即你想使用其他语言完成数据库的相关应用,可以调用API来开发自己
想要的东西,但是调用API得有相应的驱动使数据库支持对这种编程语言的支持,这种驱动叫做
数据库连接器;(这个很重要,为程序员提供支持的)
官网有下载
反关系模型
MongoDB
Redis
HBase