数据库篇(一)——关系型数据库与非关系型数据库

数据库篇这一系列整理数据库的相关知识点,便于记忆和查询~加油!!!
参考https://blog.csdn.net/lijinqi1987/article/details/51823506
http://wiki.jikexueyuan.com/project/mysql/introduction.html

数据库类型 特性 优点 缺点
关系型数据库SQLite、Oracle、mysql 1、关系型数据库,是指采用了关系模型来组织数据的数据库;2、关系型数据库的最大特点就是事务的一致性;3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;4、支持SQL,可用于复杂的查询。 1、为了维护一致性所付出的巨大代价就是其读写性能比较差;2、固定的表结构;3、高并发读写需求;4、海量数据的高效率读写;
非关系型数据库MongoDb、redis、HBase 1、使用键值对存储数据;2、分布式;3、一般不支持ACID特性;4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 1、无需经过sql层的解析,读写性能很高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 1、不提供sql支持,学习和使用成本较高;2、无事务处理,附加功能bi和报表等支持也不好;

注1:数据库事务必须具备ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。

注2:数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库。

关系型数据库管理系统(RDBMS)具有以下特点:

1、能够实现一种具有表、列与索引的数据库。
2、保证不同表的行之间的引用完整性。
3、能自动更新索引。
4、能解释 SQL 查询,组合多张表的信息。

RDBMS 术语

在继续讨论 MySQL 数据库系统之前,先让我们来说明一些关于数据库的术语定义:

  • 数据库(Database):数据库是带有相关数据的表的集合。
  • 表(Table):表是带有数据的矩阵。数据库中的表就像一种简单的电子表格。
  • 列(Column):每一列(数据元素)都包含着同种类型的数据,比如邮编。
  • 行(Row):行(又被称为元组、项或记录)是一组相关数据,比如有关订阅量的数据。
  • 冗余(Redundancy):存储两次数据,以便使系统更快速。
  • 主键(Primary Key):主键是唯一的。同一张表中不允许出现同样两个键值。一个键值只对应着一行。
  • 外键(Foreign Key):用于连接两张表。
  • 复合键(Compound Key):复合键(又称组合键)是一种由多列组成的键,因为一列并不足以确定唯一性。
  • 索引(Index):它在数据库中的作用就像书后的索引一样。

MySQL 数据库

MySQL 是一种快速易用的 RDBMS,很多企业(不分规模大小)都在使用它来构建自己的数据库。具备以下这些优点:
- 基于开源许可发布,无需付费即可使用。
- 自身的功能非常强大,足以匹敌绝大多数功能强大但却价格昂贵的数据库软件。
- 使用业内所熟悉的标准SQL数据库语言。
- 可运行于多个操作系统,支持多种语言,包括 PHP、PERL、C、C++ 及 Java 等语言。
- 非常迅速,即使面对大型数据集也毫无滞涩。
- 非常适用于 PHP 这种 Web 开发者最喜欢使用的语言。
- 支持大型数据库,最高可在一个表中容纳 5千多万行。每张表的默认文件大小限制为 4GB,不过如果操作系统支持,你可以将其理论限制增加到 800 万 TB。
- 可以自定义。开源 GPL 许可保证了程序员可以自由修改 MySQL,以便适应各自特殊的开发环境。

用于管理 MySQL 的一些命令

下面列出了一些重要且经常会用到的MySQL命令:
- USE Databasename 用于在MySQL工作区内选择具体某个数据库。
- SHOW DATABASES 列出 MySQL DBMS 所能访问的数据库。
- SHOW TABLES 一旦数据库被 use 命令选中,显示数据库中的表。
- SHOW COLUMNS FROM tablename 显示表的属性、属性类型、键信息、是否允许 NULL 值,默认值,以及其他一些信息。
- SHOW INDEX FROM tablename 显示表中所有索引的细节信息,包括PRIMARY KEY。
- SHOW TABLE STATUS LIKE tablename\G 报告MySQL DBMS的性能及统计的细节信息。

猜你喜欢

转载自blog.csdn.net/u010843421/article/details/81661894