1.数据库(DataBase,DB)
数据库结构
SQL(Structure Query Language,结构化查询语言)
SQL的语法
SQL的分类
DDL数据定义语言 | Data Definition Language | DDL操作数据库,DDL操作表 |
DML数据操纵语言 | Data Manipulation Language | DML操作表记录-增删改 |
DQL数据查询语言 | Data Query Language | DQL操作表记录-查询 |
DCL数据控制语言 | Data Control Language | 用户权限的设置 |
2.关系型的数据库:存储在磁盘中
常见的关系型数据库
MySQL | 开源免费,中小型的数据库 | 已经被Oracle收购(MySQL6.X版本也开始收费) |
OracleSQL | 收费的 大型数据库 | Oracle公司的产品 |
DB2 | 收费的 银行系统中 | IBM公司的数据库产品 |
SQLServer | 收费的 中型的数据库 | MS公司 |
SyBase | 已经淡出历史舞台 | 提供了一个非常专业数据建模的工具PowerDesigner(创始人王晓昀) |
SQLite | 嵌入式的小型数据库 | 应用在手机端 |
3.非关系型的数据库 NoSQL(Not Only SQL):存储在内存中
为了解决三高问题,才需要NoSQL
常见的NoSQL非关系型数据库
分类 | 相关产品 | 应用场景 | 优点 | 缺点 |
---|---|---|---|---|
键值存储数据库 (Key-Value) | Redis、MemCache | 内容缓存,如会话、配置文件、参数等; 频繁读写、拥有简单数据模型的应用 | 扩展性好,灵活性好,大量操作时性能高 | 数据无结构化,通常只被当做字符串或者二进制数据,只能通过键来查询值 |
列族存储数据库 (分布式) | HBase、Cassandra、 Bigtable | 分布式数据存储与管理 | 可扩展性强,查找速度快,复杂性低 | 功能局限,不支持事务的强一致性 |
文档数据库 <key,value>中value是JSON结构的文档 | MongoDB、CouchDB | Web 应用,存储面向文档或类似半结构化的数据 | 数据结构灵活,可以根据 value 构建索引 | 缺乏统一查询语法 |
图形(Graph)数据库 | Neo4j、InfoGrid | 社交网络、推荐系统,专注构建关系图谱 | 支持复杂的图形算法 | 复杂性高,只能支持一定的数据规模 |