数据库的定义
数据库是数据的汇集,它以一定的组织形式存于存储介质上
数据库的发展史
发展阶段 | 数据库形式 | 数据库特点 |
---|---|---|
萌芽阶段 | 文件系统方式 | 使用磁盘文件来存储数据 |
初级阶段 | 网状数据库 | 出现了网状模型、层次模型的数据库 |
中级阶段 | 关系型数据库 | 关系型数据库和结构化查询语言【二维表(横行纵列)】 |
高级阶段 | 面向对象数据库 | “关系-对象” |
文件系统方式的明显缺点
需要一定的规范
需要分析文本内容的格式
会消耗大量精力在分析文本内容格式上,而不是数据本身(舍本逐末)
不支持并发访问
文件权限无法控制文件内容的权限分层
数据库方式的优点
数据和程序相独立
会以与程序相匹配的格式来存放数据文件
可以在数据库上加精确权限,实现非常灵活的安全管理
日志功能:支持还原,更加可靠
增加约束,限制用户输入数据的范围
DBMS
全称:Database Managerment System 数据库管理系统
用来管理数据库的系统软件,实现数据库系统的各种功能,是数据库系统的核心组成
DBA
全称:Database Administrator 数据库管理员
岗位职责:负责数据库的规划、设计、协调、维护和管理等工作
DBMS的基本功能
基本功能 | 说明 |
---|---|
数据的定义 | 应该以何种形式来存储数据 |
数据的处理 | 如何对数据做增删改查操作 |
数据的安全 | 对数据库做分层的访问权限控制 |
数据的备份 | 通过日志将数据库还原到指点时间点 |
RDBMS
全称:Relational Database Management System 关系型数据库管理系统
将数据组织为相关的行和列的系统
RDBMS的相关概念
关系
关系就是二维表
表中的行、列次序并不重要
row 行
表中的每一行
又称为一条记录
英文词汇:record
column 列
表中的每一列
又称为属性或字段
英文词汇:field
Primary Key 主键
是一个属性,作用在表的某个列上,这个列上的所有字段不能重复
作用:避免表中出现重复记录
约束条件:
1、只能有一个
2、不允许为空 NULL
Foreign Key 外键
一张表的字段通过另一张表的字段来获取
作用:用来实现一对多的关系
约束条件:
不允许出现另一张表中不存在的字段
Uniq Key 唯一键
可以有多个
允许为空:NULL
作用:保证每条记录不会出现重复
复合主键
由多个列共同组成一个主键
domain 域
属性的取值范围
举例:性别只能是“男”和“女”两个值
transaction 事务
定义:多个操作被当作一个整体对待
事务具有ACID特性
特性简称 | 特性全称 | 说明 |
---|---|---|
A | 原子性 | 不可分割 |
C | 一致性 | 保持总数据(总帐)时时刻刻不变 |
I | 隔离性 | 多个事务相互隔离,不会看到事务结束前的脏数据 |
D | 持久性 | 事务结束后的数据会永久保存 |
注意:
支持回滚rollback
事务结束之前存在脏数据
实体-联系模型E-R
实体
客观存在并可以相互区分的客观事物或抽象事件称为实体
在E-R图中用矩形框表示实体,把实体名写在框内
属性
实体所具有的特征或性质
联系
联系是数据之间的关联集合,是客观存在的应用语义链
实体内部的联系
指组成实体的各属性之间的联系
举例:职工实体中,职工号和部门经理号之间有一种关联关系
实体之间的联系
指不同实体之间联系
举例:学生选课实体和学生基本信息实体之间
实体之间的联系用菱形框表示
联系类型
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)
数据三要素
数据结构
数据的类型、内容
数据之间的联系
数据的操作
SELECT 查询
UPDATE 修改
INSERT 增加
DELETE 删除
数据的约束条件
设置限制性保证数据的完整性、合法性
(行)实体完整性:主键、唯一键
(列)域完整性
参考完整性:外键
简易数据规划流程
第一阶段:收集数据,得到字段
收集必要且完整的数据项
转换成数据表的字段
第二阶段:把字段分类,归入表,建立表的关联
关联:表和表间的关系
分割数据表并建立关联的优点
节省空间
减少输入错误
方便数据修改
第三阶段:规范化
主键、唯一键、约束
保证数据库不出现重复数据,节约存储空间
RDMBS设计范式
定义
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式
各种范式呈递次规范,越高的范式数据库冗余越小
目的:减少数据库冗余
主流范式
属性完全依赖于主键
复合主键
无重复的列
这是RDBMS的基本要求
1NF
2NF
3NF
属性不依赖于其他非主属性某些场景下:范式是用来打破的;目的是减少查询复杂度,提高性能
SQL概念
全称:Structure Query Language 结构化查询语言
特点:只关注要得到的数据,不关心数据在磁盘上保存的格式(数据在磁盘上的操作过程)
数据存储协议:应用层协议,C/S
Server服务器
IP+port=socket:套接字
TCP3306:MySQL
TCP1521:Oracle
TCP1433:MSSQL
Client客户端
ODBC:Open Database Connectivity
JDBC:Java Database Connectivity
CLI
GUI
客户端程序接口
API应用编程接口
基本概念
constaint 约束
主键
外键
唯一键
检查
表中的数据要遵守的限制
约束类型
全表扫描
从头到尾做完整查询
索引
类似于书的目录
代价:占用一部分空间
数据变化频繁时,不推荐使用索引!
关系运算
表间字段的联系
挑选特定的字段
挑选出特定的记录
选择
投影
连接
数据模型
数据抽象
用户角度
抽取数据库中的部分数据,只能看到希望被看到的数据
DBA角度
数据之间的关联
数据库的数据和日志分开存放
物理层
逻辑层
视图层
关系模型的分类
举例:xml格式、json格式
关系模型
基于对象的关系模型
半结构化的关系模型
原文出处:https://blog.csdn.net/linyonfeng/article/details/81239309