1.Mysql数据库介绍

2019-05-23  本文已影响0人  好像在哪见过你丶

Mysql数据库

思考:用户通过表单提交了很多数据,数据在PHP脚本中绕一圈就没了,那么这个数据有什么价值呢?数据怎么样才能持续的保存下来,并方便的给其他用户分享呢?

引入:数据保存与交互是Web2.0的显著特点,如果只是数据在PHP脚本中过一遍,那么数据将变得没有任何意义。PHP本身可以将数据存放到文件中(文件编程),但是文件操作的代价偏高(受制于操作系统I/O),另外数据操作的效率也非常低,因此需要一种高效的数据管理和操作方式,这个就需要用到数据库。

1.数据库基本了解【了解】

定义:数据库==Database==,是按照数据结构来组织、存储和管理数据的仓库,是用户所需要的各种数据管理的方式。数据库能够长期的、高效的管理和存储数据。(狭义的数据库是按照一定方式组织存储的数据集合)

  1. 数据库的发展史:数据库概念从被提出到后来实现商业化一共经历了三个过程
  1. 数据库分类
  1. 关系型数据库
  1. 非关系型数据库

总结:数据库是一种高效存储和管理数据的集合,利用数据库可以实现数据的持久化存储和高效的管理。其中,基于数据的存储主要还是利用关系型数据库,而进行高并发处理的时候采用非关系型数据库,二者结合处理高并发需求的数据管理。


思考:关系型数据库是建立在关系模型上的数据库,最终存储方式是一个对应的二维表,那跟Excel是不是一样的结构呢?

引入:Excel本质也是一种数据库,只是这种数据库是需要通过人直接对数据进行操作的。关系型数据库存储数据的本质也就是一个类似的Excel二维表,但是为了管理的便捷性、操作的安全性和存储的高效性,从外到内分成四层对象。

2.关系型数据库系统【了解】

定义:关系型数据库系统(Database System,简称DBS),指的是关系型数据库这样的一种数据管理方式的内部方式。关系型数据库的结构从外到内四层对象分别为:数据库管理系统、数据库、数据表和字段(数据列)

  1. 数据库管理系统:DataBase Management System(DBMS),是数据库系统中最外层的部分,负责内部的管理操作以及与外部软件的交互,是一种用C语言底层实现的结构化查询语言(Structured Query Language,简称SQL)。所有对数据库的管理和操作指令都由DBMS完成实现
  2. 数据库:DataBase(DB),是数据存储的最高单元集合,通常是针对项目进行设置,一个项目对应一个数据库。数据库本身不存储数据
  3. 数据表:Table,是真正体现数据关系的对象,一个二维表通常代表一组数据关系。一个数据库中通常有很多张数据表
  4. 字段(数据列):field/column,是数据真实存储的最小单位,也是组成数据表的基本结构。一张表由多个字段组成
关系型数据库结构.png

总结:关系型数据库系统(DBS)内部由数据库管理系统(DMBS)进行管理,所有的指令都有DBMS执行,DMBS管理的单元是数据库(DB),一个系统内部可以管理多个数据库,数据库内部是管理多张数据表(T able),数据表由各种字段(Field)组成,字段是存储数据的最小单元。


思考:根据数据库的结构,如果要操作数据最终是落在数据表上,那么如何才能够实现数据在数据表的增删改查呢?

引入:数据库系统是一个成熟的软件,有自己的结构也有自己的语法规则,必须要通过特地的指令,并且是交由DBMS才能最终执行。对关系型数据库的操作指令称之为SQL(Structured Query Language),叫结构化查询语言。

3.SQL【掌握】

定义:SQL(Structured Query Language)结构化查询语言,是一种针对关系型数据库特殊标准化的编程语言,能够实现用户数据库查询和程序设计(不同数据库产品在自身产品设计上有一些不同,因此不能完全通用)。虽然SQL原意是结构化查询,但是实际上可以进行多种操作,针对Mysql数据库产品,SQL分为5个部分。

  1. DQL:Data Query Language,数据查询语言,用于查询和检索数据
  2. DML:Data Manipulation Language,数据操作语言,用于数据的写操作(增删改)
  3. DDL:Data Definition Language,数据定义语言,用于创建数据结构
  4. DCL:Data Control Language,数据控制语言,用于用户权限管理
  5. TPL:Transaction Process Language,事务处理语言,辅助DML进行事务操作(因此也归属于DML)

总结

  1. SQL是一种编程语言,早起因为程序语言不够强大,可以直接使用数据库编程实现某些功能
  2. 后来随着编程语言的过程强化,数据库部分弱化了过程控制的功能,更多的关注数据的存储管理。因此,SQL部分中DQL、DML(TPL)这两种是实际开发中使用最多的部分,DDL和DCL通常是在开发前期使用。

思考:这么多关系型数据库,为什么要选择Mysql来作为Web服务器的数据库部分呢?

引入:理论上来讲任何关系型数据库都是可以作为Web数据库来进行数据管理的,PHP也支持多种数据库操作。但是Mysql作为一种开源且免费的特点,与PHP不谋而合,所以也就有了PHP和Mysql这对黄金搭档。

4.Mysql基本介绍【了解】

  1. Mysql历史
  1. Mysql存储引擎:存储引擎是数据库存储数据的方式,针对存储机制、索引技巧、锁定水平有不同的能力区分
  1. Mysql是一种C/S结构的软件,因此进行mysql数据库操作的时候需要借助于客户端来操作服务端

总结:Mysql提供了不止以上三种方式的存储引擎,但是实际普遍使用的就是以上三种,当前主流是InnoDB,Oracle还在继续支持。因此,在实际开发中,通常只要使用默认的存储引擎即可。Mysql作为一种C/S结构软件,需要客户端和服务端共同协作才能完成相关操作。


思考:Mysql是一种C/S结构的软件,且服务器是加入到Windows服务中来进行管理的,如果想要进行服务器的管理的话,该如何操作呢?

引入:虽然mysql服务器端mysqld.exe是随系统启动和关闭的,但是本质而言属于Windows系统下的一个应用软件,因此不只是可以通过服务进程实现启动和关闭,也可以使用mysqld.exe相应的命令来实现。

5.Mysql服务器运行管理【了解】

定义:Mysql服务器运行管理,即对服务器端的运行(启动和关闭)进行管理。在Windows下安装成服务后,可以采用两种方式来进行服务器端的运行管理。

  1. Windows系统服务管理:即通过Windows服务本身进行启动和关闭操作:右键计算机->管理->服务和应用程序->服务->MySQL服务
  2. 通过Windows服务命令管理:net start/stop 服务名(需要管理员运行CMD控制台)
  3. 暴力形式关闭服务端:任务管理器->mysqld.exe->结束任务

总结:MySQL服务管理通常情况下不需要特别操作,随系统自启动和关闭即可。但是如果在运行过程中修改配置文件想要让服务器立即生效,课可以使用Windows服务方式进行mysql服务器端启动和关闭操作。


思考:MySQL是一种C/S结构的软件,那么客户端该如何实现与服务器端的通信呢?

引入:C/S结构的软件都是通过客户端运行,然后根据相应的规则与服务器建立连接并进行通信的。

5.登录和退出MySQL系统【掌握】

定义:登录和退出MySQL系统,即根据MySQL客户端与服务器端的登录规则实现客户端与服务端的关联,然后再根据相应规则断开与服务端的连接。

  1. 客户端登录服务端:首先要明确一点,实际开发中客户端和服务端通常不会在一台电脑上,而且服务端作为数据重地,数据安全是要考虑的重要因素。基于这样的一种情况,客户端想要登录服务端,需要使用以下规则来提供信息

注意:一个客户端只能连接一台服务器,但是一台服务器可以同时连接多个客户端,具体数量看安装MySQL的时候指定的数量(默认500连接数)

  1. 客户端与服务端断开连接:客户端在连接服务器处理完所有需求后,应该主动断开与服务端的连接,让出连接资源,让服务端能够更有效的服务于更多用户。客户端退出服务端有两种模式:主动断开和被动断开

总结

  1. MySQL作为一种C/S结构软件,需要通过客户端来实现服务器端操作
  2. 客户端登录服务端包含建立连接(主机地址+端口)和登录验证(用户名+密码)信息,如果是本机操作可以省略连接信息(系统自动匹配本机)
  3. 因为数据库的连接数是有限的,所以要养成使用完毕主动断开连接释放资源的习惯。
上一篇 下一篇

猜你喜欢

热点阅读