MySQL个人总结(一) 数据库

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现
  • 2.每行为各种记录名称
  • 3.每列为记录名称所对应的数据域
  • 4.许多的行和列组成一张表单
  • 5.若干的表单组成database


数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)

RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键(但主键有两种,单一的和复合的)。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

分类

根据数据库存储介质的不同,可以将其分为两类,即:关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。


举例

关系型数据库:

  • 大型:Oracle、DB2 等;
  • 中型:SQL Server、MySQL 等;
  • 小型:Access 等。

非关系型数据库:

  • Memcached、MongoDB 和 Redis 等。


区别

关系型数据库:

  • 安全,其将数据保存到磁盘之中,基本不可能出现丢失数据的情况;
  • 比较浪费空间,因为其用二维表的形式存储数据。

非关系型数据库:

  • 存储数据的效率比较高;
  • 不是特别安全,突然断电时会导致数据丢失。


关系型数据库

1 定义

关系型数据库,是一种建立在关系模型(数学模型)上的数据库。

至于关系模型,则是一种所谓建立在关系上的模型,其包含三个方面,分别为:

  • 数据结构:数据存储的形式,二维表(行和列);
  • 操作指令集合:所有的 SQL 语句;
  • 完整性约束:表内数据约束(字段与字段)和表与表之间的约束(外键)。

2 设计

  • 数据库:从需要存储的数据需求中分析,如果是一类数据(实体),则应该设计成二维表;
  • 二维表:由表头(字段名,用来规定数据的名称)和数据(实际存储的内容)部分组成。

二维表示例:

ID EEROR_CODE DESCRIPTION
1 US0001 此用户未注册
2 OR0001 订单生成失败
3 SY0001 系统未知异常

在此处,如果表中对应的某个字段值为空,但是系统依然会为其分配存储空间,这也就是关系型数据库比较浪费空间的原因啦!

3 关键字说明

  • DB:Database,数据库;
  • DBMS:Database Management System,数据库管理系统;
  • DBS:Database System = DBMS + DB,数据库系统;
  • DBA:Database Administrator,数据库管理员。
  • 行\记录:row\record,本质都是指表中的一行(一条记录),行是从结构角度出发,记录则是从数据角度出发。
  • 列\字段:column\field,本质都是指表中的一列(一个字段),列是从结构角度出发,字段则是从数据角度出发。

4 SQL

SQL:Structured Query Language,结构化查询语言(数据以查询为主,99% 都是在进行查询操作)。

SQL 主要分为三种:

  • DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库、表),代表指令为createdropalter等。
  • DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(表中的内容)代表指令为insertdeleteupdate等,不过在 DML 内部又单独进行了一个分类,即 DQL(Data Query Language),数据查询语言,代表指令为select.
  • DCL:Data Control Language,数据控制语言,主要是负责(用户)权限管理,代表指令为grantrevoke等。

SQL 是关系型数据库的操作指令,是一种约束,但不强制,类似于 W3C,因此这意味着:不同的数据库产品(如 Oracle 和 MySQL)内部可能会有一些细微的区别。



猜你喜欢

转载自blog.csdn.net/love_everybody/article/details/79986437