MySQL相关的基本概念

数据(data):是数据库中存储的基本对象。

数据库(database):数据库是长时期存储在计算机中的有组织的,可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的数据冗余、较高的数据独立性和易扩展性,并可为多种用户共享。数据库数据具有永久存储、有组织和可共享三个基本特点。数据库是存放数据的仓库,只是这个仓库是存储在计算机存储设备上的,而且是按一定的格式存储的。

数据库管理系统(DBMS):是一个专门用于实现对数据进行管理和维护的系统软件。位于应用程序与操作系统之间。
DBMS的功能:
 1、数据库的建立和维护功能
 2、数据定义功能  
 3、数据组织、存储和管理功能
 4、数据操作功能
 5、事务的管理和运行功能
RDBMS的核心功能:
 管理存储(由存储引擎进行管理)
 安全性管理(管理的是用户访问的授权)
 管理元数据(数据分为元数据和数据)
 事务(transactions)管理(事务就是指可以被看成一个整体的多个SQL语句,只有符合ACID测试的才可以被称作事务)
 支持(并发)连接
 性能优化
 提供备份和(back-up)恢复(recovery)的机制
 处理对数据的检索和修改的请求

数据库系统(database system):由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。

数据库模型;
 层次模型:一个子节点只能有一个父节点,数据库结果与应用程序耦合度很高。
 网状模型:一个子节点可以有多个父节点,一个父节点也可以有多个子节点,数据库结果与应用程序耦合度很高。
 关系型数据库模型:是由IBM的研究员codd在上个世纪70年代发表了一篇论文,而后被Larry Erison发展成为现在的Oracle。
 (下面无特别说明,就是指的关系型数据库)

关系型模型中的对象:
 表
 键
 数据库(一个数据库称为一个schema)
 视图(视图是虚表,是被存储下来的SELECT语句)
 触发器
 索引(是可以加速查询操作的工具,但会减慢写操作)
 存储过程、存储函数(这两个统称为存储例程)
 游标
 用户
 事件调度器 
 
SQL:Structure Query Language,结构化查询语言
 SQL是一种操作接口,也是一种解释型编程语言,主要用于实现应用程序与数据库中的数据进行交互。
 
关系型数据库中的基本命令:
 DDL:数据定义语言
  用于创建数据库对象
  CREATE 创建
  ALTER 插入
  DROP 删除
 DML:数据操纵语言
  用于管理数据表中的数据
  INSERT,REPLACE 插入
  DELECTE 删除
  SELECT 查看,选择
  UPDATE 更新
 DCL:数据控制语言
  用于管理数据权限
  GRANT 授权
  REVOKE 收权

在关系型数据库中常用到的几种键有:
主键:(primary key)
 不能为空(即Not NULL)
 不能有相同值
 唯一的标识表中每一个字段
 一张表只能有一个主键
 
外键(foreign key)
 在两个表之间建立关联关系
 
唯一性约束/键(unique key)
 允许为空
 如果有值,则值不能相同
 一个表中可以有多个唯一键
 
ANSI Standard 的三个级别:
 Entry
 Intermediate
 Full


MySQL特征:
 支持完全多线程和查询缓存
 可靠、并具有可伸缩性
 容易安装部署
 方便快捷移植能力
 支持多用户,每一个用户用一个单独的线程来响应
 国际化的支持能力
 支持广泛的编程语言
 开源(遵循GPL规范)

Mysql的发展历史及增加的新功能:

MySQL的逻辑结构:
 当客户端发起请求时,连接/线程处理会生成一个线程响应用户;此时会先查询缓存,如果缓存中有就直接响应用户;如果缓存中没有就请请求给分析器,查询分析、获取访问对象权限,然后交给优化器分析SQL语句,并将结果缓存至缓存;最后将结果返回给用户。

 
MySQL如何完成初始化:
 (1)在Linux系统上:MySQL在查找配置文件时会依次查找下面这五个文件:

  
  
  
  
  1. /etc/my.cnf  
  2. /etc/mysql/my.cnf  
  3. $MYSQL_HOME/my.cnf  
  4. /path/to/file when defaults-extra-file=/path/to/file is specified  
  5. ~/.my.cnf 


 (2)在Windows系统上:MySQL在查找配置文件时会依次查找下面这五个文件:

  
  
  
  
  1. %WINDIR%\my.ini, %WINDIR%\my.cnf(eg. C:\my.ini, C:\my.cnf)  
  2. %INSTALLDIR%\my.ini, %INSTALLDIR%\my.cnf  
  3. /path/to/file when defaults-extra-file=/path/to/file is specified 

注意:当一个参数在多个文件中被定义时,以最后找到的为准。

MySQL的初始账号:
(1)所有的初始账号是没有密码的
(2)包含3个root账号:root@localhost,
[email protected],,[email protected],root@::1
(3)包含2个匿名账号:
‘’@localhost‘’@localhost.localdomain 

 

为了安全,需要给root账号添加密码,并删除匿名账号:
(1)给root账号添加密码的方法有:

  
  
  
  
  1. 方法一:  
  2. //当账号密码为空时,直接添加新密码  
  3. # mysqladmin -u root password ’new-password’  
  4. //为指定的主机名,添加密码  
  5. # mysqladmin -u root -h host_name password ’new-password’ 

 

  
  
  
  
  1. 方法二:  
  2. mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD(’new_password‘);  
  3. 或者使用 mysql> UPDATE mysql.user SET password = PASSWORD(’new_password’) WHERE user = ’root’ and host='host_name';   
  4.  
  5. mysql> FLUSH PRIVILEGES; //注意:此时是为了重读授权表,让设置的密码立即生效  

 

(2)删除匿名用户和主机为IPv6地址的用户:

  
  
  
  
  1. mysql> DROP USER ’’@localhost;  
  2. 为了保证成功删除,可以使用下面这条命令查看一下:  
  3. mysql> SELECT user,host,password FROM mysql.user WHERE user=’’; 


你可能感兴趣的:(RDBMS)