数据库基础知识大总结

数据库基础知识大总结

本节针对上一篇基础之上,对数据库的一些原理进行总结。
主要包括

  • 数据库系统概述
    • 数据库系统定义
    • 数据模型
    • 三层模式两层映像
  • 关系数据库
    • 三个完整性
    • 视图
    • 数据字典
  • 范式
  • 数据库编程
    • 断言
    • 触发器
    • 存储过程
    • MySQL中的存储引擎

1.数据库系统概述

1.1 数据库系统
数据库系统由 数据库、数据库管理系统、应用程序、数据库管理人员 组成的存储管理、处理和维护数据的系统。

1.2 数据模型

  • 分类
    • 概念模型
      按用户观点对数据信息建模(比如E-R图)
    • 逻辑模型
      按计算机系统观点对数据建模(建立具体的数据库表)。
      现在企业常用的都是关系模型,除此之外还有层次模型和网状模型等。
    • 物理模型
      数据在磁盘或磁带上的存储方式和存取方法(比如索引)
  • 组成元素
    数据结构、数据操作、数据完整性约束

1.3 三层模式两层映像
数据库系统结构如下:

  • 模式
    也称为逻辑模式,是数据库中所有用户的公共数据视图。
  • 外模式
    也称为用户模式,模式的子集。
  • 内模式
    也称为存储模式,数据物理结构和存储方式的描述。
    两层映像分别保证数据与程序的逻辑独立性物理独立性

2.关系模型

关系模型是属于逻辑模型的一种,就是现在主流使用的。
2.1 三个完整性
实体完整性(主键非空且唯一);
参照完整性(外键有的对应主键必须有);
用户自定义完整性(比如设置某整型字段数据<100)

2.2 视图
视图是从一个或几个基本表(或视图)导出的表,是一个虚表,不存放对应的数据。
视图消解: 将对视图的操作转换为对具体表的操作。
视图作用:简化用户操作、提供一定程度逻辑独立性、对机密数据提供安全保护

3.范式

合理的关系模型数据库设计能尽量避免:数据冗余、更新插入删除异常等问题。因此一些大佬们设计了5个范式。

4.数据库编程

4.1 断言
断言可以定义为涉及多个表或聚集操作的比较复杂的完整性约束。
好吧,上面一句话不好懂,说白了断言就是会对断言中的子句进行检查,当为真值才允许执行。

  • 断言定义

    1
    create assertion 断言名 检查子句
  • 举例

    1
    2
    3
    4
    # 限制每学期每门课最多60人选修
    create assertion 断言名 check(
    60 >= select count(*) from SC group by cno
    )

这样在插入的时候就会触发检查该断言,满足条件才允许插入,否则就会拒绝插入。

4.2 触发器
触发器又称为 事件-条件-动作规则,当执行事件时会对条件进行检查,满足条件会进一步执行相应动作。
比如我们平时写功能,在一个表插入数据,另一个也需要跟着插入数据就可以通过触发器实现。

4.3 存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而 一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速 度。

4.4 MySQL中的存储引擎
有两个常用存储引擎:MyISAM与InnoDB(MySQL默认的)
关于两个存储引擎的区别可参考该链接[link]

# MySql

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×