MySQL基础 - 基本概念

概念

  • 数据(data):描述事物的符号记录称为数据。
  • 数据库(DataBase,DB):是长期存储在计算机内、有组织的、可共享的大量数据的集合,具有永久存储、有组织、可共享三个基本特点。
  • 数据库管理系统(DataBase Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。
  • 数据库系统(DataBase System,DBS):是有数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator DBA)组成的存储、管理、处理和维护数据的系统。
  • 实体(entity):客观存在并可相互区别的事物称为实体。
  • 属性(attribute):实体所具有的某一特性称为属性。
  • 码(key):唯一标识实体的属性集称为码。
  • 实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
  • 实体集(entity set):同一实体型的集合称为实体集。
  • 联系(relationship):实体之间的联系通常是指不同实体集之间的联系。
  • 模式(schema):模式也称逻辑模式,是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
  • 外模式(external schema):外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
  • 内模式(internal schema):内模式也称为存储模式(storage schema),一个数据库只有一个内模式。他是数据物理结构和存储方式的描述,是数据库在数据库内部的组织方式。

常用数据模型

  • 层次模型(hierarchical model)
  • 网状模型(network model)
  • 关系模型(relational model)
    • 关系(relation):一个关系对应通常说的一张表
    • 元组(tuple):表中的一行即为一个元组
    • 属性(attribute):表中的一列即为一个属性
    • 码(key):表中可以唯一确定一个元组的某个属性组
    • 域(domain):一组具有相同数据类型的值的集合
    • 分量:元组中的一个属性值
    • 关系模式:对关系的描述,一般表示为 关系名(属性1, 属性2, ..., 属性n)
  • 面向对象数据模型(object oriented data model)
  • 对象关系数据模型(object relational data model)
  • 半结构化数据模型(semistructure data model)

MySQL体系结构

MySQL体系结构:

  • 连接层

最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

  • 服务层

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SOL的分析和优化,部分内置函数的执行。所有跨存 储引擎的功能也在这一层实现,如 过程、函数等。

  • 引擎层

存储引擎真正的负责了MySOL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。数据库中的索引是在存储引擎层实现的。

  • 存储层

数据存储层, 主要是将数据(如: redolog、undolog、数据、索引、二进制日志、错误日志、查询日志、慢查询日志等)存储在文件系统之上,并完成与存储引擎的交互。

和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎上,插件式的存储引擎架构,将查询处理和其他的系统任务以及数据的存储提取分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

数据库概述

数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加、修改、删除、查询等操作。具有持久化存储、读写速度极高、保证数据的有效性的特点

数据库的分类

数据库大体上可以分为两类:关系型数据库和非关系型数据库。

关系型数据库

是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调使用表格的方式存储数据。

关系型数据库效果图:

1

关系型数据库中核心元素:

  • 数据行
  • 数据列
  • 数据表
  • 数据库(数据表的集合)

常用的关系型数据库:

  • Oracle
  • Microsoft SQL Server
  • MySQL
  • SQLite

非关系型数据库

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 的方式存储数据。

常用的非关系型数据库:

  • MongoDB
  • Redis

数据库排行榜效果图:

2

关系型数据库管理系统

数据库管理系统(Relational Database Management System,简称RDBMS)是为管理关系型数据库而设计的软件系统,如果大家想要使用关系型数据库就需要安装数据库管理系统,其实就是一个应用软件。

关系型数据库管理系统可以分为:

  • 关系型数据库服务端软件
  • 关系型数据库客户端软件

关系型数据库服务端软件:

主要负责管理不同的数据库,而每个数据库里面会有一系列数据文件,数据文件是用来存储数据的, 其实数据库就是一系列数据文件的集合。

关系型数据库客户端软件:

主要负责和关系型数据库服务端软件进行通信, 向服务端传输数据或者从服务端获取数据.以MySQL为例,服务端软件为mysql-server,客户端软件为mysql-client。

关系型数据库管理系统的效果图:

3

说明:

  1. 用户操作关系型数据库客户端,实现数据库相关操作。
  2. 关系数据库客户端借助网络使用SQL语言和关系型数据库服务端进行数据通信
  3. 关系型数据库服务端管理着不同的数据库,每个数据库会有一系列的数据文件,数据都保存在数据文件里面,每个数据库可以理解成是一个文件夹。 通过上面的效果图我们可以得知,数据库客户端和数据库服务器想要通信需要使用SQL。

通信流程效果图:

4

SQL简介

SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库的语言。也就是说通过 SQL 可以操作 oracle,sql server,mysql,sqlite 等关系型的数据库。

作用是实现数据库客户端和数据库服务端之间的通信,SQL就是通信的桥梁。

SQL语言主要分为:

  • DQL:数据查询语言,用于对数据进行查询,如select
  • DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete
  • TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
  • DCL:数据控制语言,进行授权与权限回收,如grant、revoke
  • DDL:数据定义语言,进行数据库、表的管理等,如create、drop