关系型数据库基础
2020-03-17 本文已影响0人
Simon_Ye
数据的时代
- 设计的数据量大
- 数据不随程序的结束而消失
- 数据被多个应用程序共享
- 大数据
数据库的发展史
萌芽阶段:文件系统
使用磁盘文件来存储数据
初级阶段:第一代数据库
出现了网状模型、层次模型的数据库
中级阶段:第二代数据库
关系型数据库和结构化查询语言
高级阶段:新一代数据库
“关系 - 对象” 型数据库
文件管理系统的缺点
- 编写应用程序不方便
- 数据冗余不可避免
- 应用程序依赖性
- 不支持对文件的并发访问
- 数据间联系弱
- 难以按用户视图表示数据
- 无安全控制功能
数据库管理系统的优点
- 相互关联的数据集合
- 较少的数据冗余
- 程序与数据相互独立
- 包组数据的安全、可靠
- 最大限度地保证数据的正确性
- 数据可以并发使用并能同时保证一致性
数据库管理系统(DBMS)
- 数据库是数据的汇集,它以一定的组织形式存于存储介质上
- DMMS是管理数据库的系统软件,它实现数据库系统的各种功能,是数据库系统的核心
- DBA:负责数据库的规划、设计、协调、维护和管理等工作
- 应用程序指以数据库为基础的应用程序
数据库管理系统的基本功能
- 数据定义
- 数据处理
- 数据安全
- 数据备份
数据库系统的架构
- 单机架构
- 大型主机/终端架构
- 主从式架构(C/S)
- 分布式架构
关系型数据库概念
- 关系:关系就是二维表。并满足如下性质:
表中的行、列次序并不重要 - 行row:表中的每一行,又称为一条记录
- 列column:表中的每一列,称为属性,字段
- 主键(Primary key):用于惟一确定一个记录的字段
- 域domain:属性的取值范围,如,性别只能是“男”和“女”两个值
关系数据库
RDBMS:
- MySQL:MySQL,MariaDB,Percona Server
- PostgreSQL:检测pgsql,EnterpriseDB
- Oracle:
- MSSQL:
- DB2:
事务 transaction:多个操作被当作一个整体对待
- ACID:
- A:原子性(不可分隔,必须保证事务的完整)
- C:一致性(保证数据处于一致状态)
- I:隔离性(多个事务相互隔离)
- D:持久性(保存的数据持久影响)
实体 - 联系模型E - R
实体Entity
- 客观存在并可以相互区分的客观事务或抽象时间称为实体
- 在E - R图中用矩形框表示实体,把实体名写在框内
属性
- 实体所具有的特征或性质
联系
联系是数据直接的关联集合,是客观存在的应用语义链
- 实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
- 实体之间的联系:指不同实体之间联系。例学生选课实体和学生基本信息实体之间
- 实体之间的联系用菱形框表示
联系类型
- 一对一联系(1 : 1)
- 一对多联系(1 : n)
- 多对多联系(m : n)
数据三要素
数据结构:包括两类
- 一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;
- 另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构
数据的操作:
- 数据提取:在数据集合中提取感兴趣的内容。SELECT
- 数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE
数据的约束条件:是一组完整性规则的集合
- 实体(行)完整性 Entity integrity
- 域(列)完整性 Domain Integrity
- 参考完整性 Referential Integrity
约束
约束:constraint,表中的数据要遵守的限制
- 主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即 NOT NULL,一个表只能有一个
- 唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个
- 外键:一个表中的某个字段可填入的数据取决于另一个表的主键或唯一键已有的数据
- 检查:字段值在一定范围内
简易数据规划流程
第一阶段:收集数据,得到字段
- 收集必要且完整的数据项
- 转换成数据表的字段
第二阶段:把字段分类,归入表,建立表的关联
- 关联:表和表间的关系
- 分割数据表并建立关联的有点
- 节省空间
- 减少输入错误
- 方便数据修改
第三阶段:
- 规范化数据库
数据库的正规化分析
- RDMSB设计范式基础概念
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同范式,各种方式呈递次规范,越高的范式数据库冗余越小 - 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以此类推。一般说来,数据库只需满足第三范式(3NF)即可
范式
1NF:
无重复的列,每一列都是不可分隔的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
2NF:
属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识PK,非PK的字段需要与整个PK有直接相关性
3NF:
属性不依赖于其他非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系
SQL概念
SQL:Structure Query Language
结构化查询语言
SQL解释器:
数据存储协议:应用层协议,C/S
S:server
监听于套接字,接收并处理客户端的应用请求
C:Client
- 客户端程序接口
CLI
GUI - 应用编程接口
ODBC:Open Database Connectivity
JDBC:Java Data Base Connectivity
基本概念
索引
将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储
关系运算
- 选择:挑选出符合条件的行
- 投影:挑选出需要的字段
- 连接:表间字段的关联
数据模型
数据抽象
- 物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
- 逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
- 视图层:用户角度,描述DB中的部分数据
关系模型的分类:
- 关系模型
- 基于对象的关系模型
- 半结构化的关系模型:XML数据
关系型数据库的常见组件
- 数据库:database
- 表:table
行:row
列:column - 索引:index
- 视图:view
- 用户:user
- 权限:privilege
- 存储过程:procedure,无返回值
- 存储函数:function,有返回值
- 触发器:trigger
- 事件调度器:event scheduler,任务计划