数据库&关系型数据库&MySQL

一、数据库概述

数据库是指长期存储在计算机内部,有组织可共享的数据以及数据和数据之间关系的集合,数据库中的数据按照一定的数据模型组织、描述和存储,具有较高的独立性、较小的冗余度,并可被多个用户锁共享。

  1. 按照一定的数据模型进行组织、描述和存储

    常见的数据模型:层次模型、网状模型、关系模型【目前主流,带表头的二维表格,并通过SQL语言进行数据的查询和操作】,下一代是对象模型(将数据视为对象的形式)。

    数据若需要永久存储则需要依赖于文件系统和磁盘,需要压缩和加密存储(DBMS 提供,对用户透明)

  2. 使用数据库的目的:数据共享,数据安全,避免信息孤岛效应

    数据库使得多个用户或应用程序能够同时访问和操作同一份数据;

    使用锁机制以提供数据的安全性;

    “信息孤岛”是指在数据信息单元单独存放,不能自动实现信息共享与交换,需要靠人工与外界进行联系的一种现象。通过数据库,可以实现数据的集中存储、管理和共享,从而避免了信息孤岛效应。

  3. 数据库要求具有较小的冗余度

    冗余的最大缺点之一是容易造成数据不一致。当数据在多个地方被存储时,如果没有适当的同步机制,一处数据的修改可能不会反映到其他存储该数据的地方,从而导致数据的不一致;

    过多的冗余会导致数据库总体积的增大,尤其是在处理大量数据时;

    适当的冗余度可以提高查询性能,所以根据查询效率的要求,经常会采用数据冗余;

    数据冗余是不能消除的,只能尽量减少冗余。

  4. 关系型数据库是建立在关系模型的基础上的数据库

    关系模型就是带有表头的二维表格,表格是加载数据项的收集体,这些数据能以不同的方式被存取或者重新召集。目前主流的关系型数据库有 Oracle、DB2、SQL Server、Sybase、MySQL 等。在具体的开发应用中不是直接使用数据库,而是通过一个支撑软件数据库管理系统使用数据库:

    (1)DBMS(数据库管理系统):是一种用于创建、定义、查询、更新和管理数据库的计算机软件系统。科学的组织和存储数据、高效地获取和维护数据。

    (2)RDBMS (关系型数据库管理系统):用于管理关系数据库,并将数据逻辑组织起来。

关系型数据库

关系型数据库是建立在关系数据模型基础上的数据库,关系模型可以简单理解为二维表格模型,一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织,它以行(row)和列(column)的形式存储数据,以便于用户理解,这一系列的行和列被称为表(table),一组表组成了数据库(database)。表和表之间的数据记录有关系,对照现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示,所以关系型数据库就是建立在关系模型基础上的数据库。

二、MySQL

(一)MySQL数据库特点

MySQL 是一个广泛使用的关系型数据库管理系统,具有以下特点:

1、开源和免费【社区版】。MySQL 遵循 GNU 通用公共许可证 GPL,用户可以免费下载和使用。

2、支持多种操作系统。可以在 Linux、Windows、MacOS 等多种操作系统上运行。

3、高性能和稳定性。MySQL 以其稳定性和高可靠性著称,能够处理大规模数据和高并发访问。

4、支持多种存储引擎【组件】。如 InnoDB、MyISAM 等,适用于不同的应用场景。

5、强大的查询能力【82 或者 37 原则】。支持标准的 SQL 语言,提供丰富的函数和操作符。

6、可扩展性。支持水平和垂直扩展【切分】,可以通过主从复制、分区和集群等技术来处理大规模数据和高并发访问。

7、跨平台。支持多种编程语言,如 PHP、Java、Python 等。

8、体积小、安装方便、易于维护。对于个人用户和中小型企业来说,是一个经济实惠且可靠的数据库解决方MySQL 关系型数据库授课文档 案。

9、安全性。支持访问控制和数据加密,确保数据的安全性。

(二)MySQL已存在的数据库

information_schema 系统数据库,这个数据库保存了MySQL服务器中所有其他数据库的元数据信息,例如表和列的名称、数据类型、访问权限等这个数据库的损坏会导致系统无法正常启动,这个数据库不要用户使用。

mysql 系统数据库,其中主要包括时区设置、权限等相关配置,一般不直接修改

sys 系统数据库,其中保存和锁、统计等相关信息,不直接修改

performance_shema 系统数据库,用于监控 mysql 的执行情况

(三)常用 MySQL 命令(不是SQL语句 )

启动客户端:

命令格式: mysql -u 用户名 -p 口令 -P 端口号 -h 主机名称 。例如:在 bin 目录下 mysql -uroot -p123456

在实际应用中,不建议直接使用-p 口令的这种格式。

默认情况下 mysql 数据库只允许本地访问,如果需要远程访问则需要进行配置开启。如果正常启动,则可以看到命令提示符 mysql>,如果需要在任意目录都可以打开客户端,则需要将 bin 的绝对目录添加到 path 系统环境变量中

查看所有的数据库:show databases;

information_schema、mysql、sys、performance_schema都属于系统数据库,不要直接操作这些数据库

切换当前数据库:use 数据库名称;

查看当前数据库下的所有数据表:show tables;

查看某个数据表的结构定义: desc 数据表名称;

退出客户端: quit

(五)SQL结构化查询语言

SQL 是 Structured Query Language 的缩写,是一种用于操作数据库的非过程式编程语言。

SQL 在 MySQL 中分为 DDL、DML、DQL 和 DCL4 种

  1. DDL 数据定义语言:数据库对象的增删改操作,例如创建表、删除表等。create 创建、alter 修改、drop删除、truncate table 表的截断

  2. DML 数据操纵语言:提供了表中数据的增删该操作,例如插入数据,删除数据等。insert 插入、update 修改、delete 删除

  3. DCL 数据控制语言:提供针对数据库操作权限的定义,例如授权或者回收权限,grant 授权操作,revoke回收权限【撤销】

  4. DQL 数据查询语言:提供针对数据的查询操作,select

SQL 是 1986 年 10 月由美国国家标准局 ANSI 通过的数据库语言美国标准,接着国际标准化组织 ISO 颁布了SQL 正式国际标准。SQL 标准的发展和完善为关系数据库管理系统提供了统一和规范的语言,使得不同数据库系统之间的数据操作和查询可以相互兼容和转换。

补充1:Oracle vs MySQL

Oracle数据库是一个大型、功能丰富的系统,提供了许多高端特性,如分布式事务处理、灾难恢复、数据仓库等,能够支持大型、高并发的应用程序,以及数百个CPU和数百万个事务。Oracle主要面向大型企业级用户,因为他们对性能要求以及安全性有更高的要求。

MySQL 是一个体积相对较小、速度比较快、总体成本低,可处理上千万条记录的大型数据库,可以支持大约64个CPU和数千个事务。MySQL是开源的,可以免费使用和修改,还有商业许可版本提供额外的功能,使得很多互联网公司、中小型网站选择了 MySQL 作为网站数据库。例如 Facebook、Twitter、YouTube、阿里巴巴、蚂蚁金服、去哪儿、美团外卖、腾讯等

补充2:MySQL 体系结构

MySQL 是主要是由 SQL 接口、解析器、优化器、缓存和存储引擎构成的。其体系结构可分为多个层次:

(1)连接层:是最上层,包含客户端和服务器的连接服务;会提供本地socket通信和基于客户端/服务端工具实现的通信;在这一层可以实现基于SSL的安全链接,并验证客户端的操作权限。

(2)服务层:主要包含SQL接口、解析器、优化器、缓存等组件;SQL接口是服务器与客户端应用程序之间的交互点;解析器负责解析客户端发送的SQL语句;优化器根据解析结果选择最佳的执行计划;缓存用于存储经常访问的数据或查询结果。

(3)引擎层:存储引擎是MySQL体系结构的核心部分,负责数据的存储和提取。

(4)存储层:主要负责将数据存储在运行于裸设备的文件系统之上,与存储引擎交互,确保数据的正确存储和检索。

举个例子:MySQL如何处理一个查询请求?

(1)客户端向 MySQL服务器发送一条查询请求。SQL是一种非过程式编程语言,意味着用户只需描述所需的结果,而不需要知道如何获得这些结果。

(2)服务器先检查查询缓存,看是否有与当前查询完全相同的结果存储在缓存中。如果找到,则服务器会立即返回存储在缓存中的结果;否则进入下一步。

(3)服务器首先进行SQL解析,检查其语法正确性,然后进行预处理,再由优化器根据解析和预处理的结果生成对应的 SQL 执行计划。

(4)根据优化器生成的SQL执行计划,服务器调用相应的存储引擎API来执行实际的查询操作。

(5)执行完成后,服务器将查询结果返回给客户端,同时缓存查询结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值