MySQL基础理论

知识点
  • SQL/MySQL;
  • 事务,隔离,并发控制,锁;
  • 用户和权限;
  • 监控:STATUS;
  • 索引类型:查询,VARIABLES;
  • 备份和恢复;
  • 复制功能;
  • 集群;
文件
  • 数据冗余(同一份文件可能重复多次)和不一致性(保持一份文件修改时要同时修改);
  • 数据访问困难(保存一千行文本,找出符合条件的文本太困难。);
  • 数据是孤立的。(每一个数据的定义是不规范的,是孤立的);
  • 完整性问题(一个账户给另一个账户转账500,无论成功是否总和应该不变,无法得到保证);
  • 原子性问题(一个账户减去500另一个账户加上500,两个操作必须同时完成);
  • 并发访问异常(多个用户同时访问同一个数据);
  • 安全性问题(需要做数据的部分授权时候没办法做到)。
DBMS(数据库管理系统)
  • 层次模型;
  • 网状模型;
  • 关系模型:关系模型(结构化数据模型);E-R实体-关系模型;对象关系模型(基于对象的数据模型);半结构化的数据模型(每一行不仅存储数据本身,还要把数据的标签存下来)。

DML(数据操纵语言):增删查改; INSERT、DELETE、SELECT、UPDATE。
DDL(数据定义语言):库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器; CREATE、DROP、ALTER。满足数据的约束性:域约束(数据类型约束)、外键约束(引用完整型约束)、主键约束(此字段可以唯一标识实体,且主键不允许为空)、唯一性约束(每一行的某字段都不允许出现重复,可以为空)、检查性约束(不可以违反现实逻辑)
**DCL(数据控制语言):**数据库里的用户的权限管理; GRANK、REVOKE。
数据存储和查询:
1)存储管理器、DDL(权限管理及完整性管理器、事务管理器、文件管理器、缓冲区管理器);
2)查询管理器、DML (负责接受用户查询,理解用户查询,将用户的查询、存储转换为对应的存储管理器能够 理解的语句或者逻辑,将数据从硬盘上存储或者删除;DML解释器、DDL解释器、查询执行引擎)。
关系运算:

  • 投影(只选择指定的属性);
  • 选择(只选择指定的行);
  • 自然链接(具有相同名字的所有属性上取值相同的行);
  • 笛卡尔积;
  • 并(集合运算)。
SQL语句

SQL语言的组成部分(可以粗略地理解为DDL、DML、DCL)

  • DDL;
  • DML;
  • 完整性定义语言:DDL的一部分功能;
  • 视图定义;
  • 事务控制;
  • 嵌入式SQL和动态SQL;
  • 授权:DCL。

MySQL模块
image.png

连接管理器用于监听用户的请求;线程管理器负责跟踪用户请求,负责每一个用户的连接请求;用户模块主要是用来验证用户身份的;命令分发模块是将请求分发给缓存模块、日志模块或者解析器;解析器是解析查询并生成执行数的,之后交给特定的模块去处理;优化器负责创建响应请求时的最佳响应策略;表管理器是将表的定义转换成对应的文件,负责创建读取或修改表定义文件,维护表描述符高速缓存,管理表锁;表定义模块是表创建、删除、重命名、移除、更新或插入之类的操作;表维护模块是表的检查、修改、备份、恢复、优化及解析;访问控制模块用来是否真正具有权限来执行所请求的操作。

image.png
1)5.5.8 MyISAM 特别适用于仓库
2) 5.5.8后 InnoDB 特别适用于事务在线处理
文件中记录组织:

  • 堆文件组织:一条记录可以存在任何地方;
  • 顺序文件组织:根据“搜索码”顺序存放文件。
  • 散列文件组织:

表结构定义文件、表数据文件
表空间 table space, 用一个文件放多个表的数据的另外一个逻辑管理空间。
数据字典:Data Dictionary。,关系的元数据。

  • 关系的名字
  • 字段的名字
  • 字段的类型和长度
  • 视图
  • 约束
  • 用户名字、权限、密码

使用程序设计语言如何和RDBMS交互
1)嵌入式SQL:与动态SQL类似,但其语言必须程序编译时完全确定下来,如ODBC;
2)动态SQL:程序设计语言使用函数(mysqk_connect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句。并将结果保存至变量中而进行处理,如JDBC。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值