前言
在学完诸多 Java 框架之后,深感本人根底不牢。打算从头开始学习计算机的基本知识,为后续的倒退做筹备。在诸多计算机基础知识中,我抉择了与我关联最大的数据库开始学习。数据库系统是一门十分形象的学科,冀望在实现这一系列文章之后,能联合本人的实际对数据库退出本人更深的了解
为什么要学数据库
- Everything Over DB:传统社会的业务工作曾经无奈满足古代社会的需要,咱们须要计算机的帮忙
- 信息积攒使用的根底:帮忙人们从沉重的数据管理中解脱进去
- 基于数据库的利用——大数据。所有以数据谈话。
学习数据库重要的不是技术,而是思维。
对“表”的形象
数据起源于表——人们对日常生活信息的整顿。在数据库中,表也作为最重要的主体局部。表也不是胡乱选取的,须要咱们对表做出正确的形象:了解 - 辨别 - 命名 - 表白。
咱们须要对生存中的信息有着足够的了解,并从中抽取出须要的信息
表 (Table) 的罕用术语
表由表名、表题目(格局)、表内容(值)组成。
其中表内容包含 行(row)
与 列(column)
,行又能够称为 元组 (tuple)
、 记录 (record)
,列又能够称为 字段 (field)
、 属性 (attribute)
、 数据项(data item)
。
Table 中形容了一批相互有关联关系的数据的汇合。
数据库与表的关系
数据库是有关联关系的若干个 table 的汇合。
数据库系统
根本术语
- 数据库(DB):DataBase。一组数据的汇合
- 数据库管理系统(DBMS):DataBase Management System。数据库管理软件
- 数据库利用(DBAP):DataBase Application。基于数据库开发的利用
- 数据库管理员(DBA):DataBase Administrator。通过数据库管理系统治理数据库。
数据库管理系统(DBMS)
DBMS 的性能
对于用户来说,对 DBMS 的要求有:
- 数据库定义:DBMS 为用户提供一套数据定义语言(DDL,Data Definition Language),用户应用 DDL 创立数据库及其中的 Table;
- 数据库操作:DBMS 为用户提供一套数据操纵语言(DML,Data Manipulation Language),用户应用 DML 来实现数据库的 CRUD(增删改查)操作;
- 数据库管制:DBMS 为用户提供一套数据管制语言(DCL,Data Control Language),用户应用 DCL 形容其对数据库所要施行的管制(包含且不限于管制哪些用户可能拜访哪些字段);
- 数据库保护:DBMS 提供一系列程序(应用程序 / 例行程序)给用户,用户应用这些程序来实现数据库的转储、复原、重组、性能检测和剖析等性能。
上述 1、2、3 点综合起来,造成了咱们操作数据库的 SQL 语言(结构化的数据库语言)
对于零碎,DBMS 的实现要求:模式 -> 结构 -> 自动化,实现解析语言并执行。
DBMS 为了实现数据库的治理,在后盾运行这一系列程序:
- 语言编译器:将用数据库语言书写的内容,翻译成 DBMS 可执行的命令。例如:DDL 编译器、DML 编译器、DCL 编译器等;
- 查问优化(执行引擎)与查问实现(根本命令的不同执行算法):进步数据库检索速度的伎俩。例如交叉于数据存取各个阶段的优化程序;
- 数据存取与索引:提供数据在磁盘、磁带上高效存取的伎俩。例如:存储管理器、缓冲区管理器、索引 / 文件和记录管理器等;
- 通信管制:因为数据库与数据库利用的通信要求,且古代大型项目的数据库通常是分布式治理。所以提供网络环境下数据库操作和数据传输的伎俩是必要的;
- 事务管理:进步可靠性防止并发操作谬误。如脏读…
- 是数据库 主动复原到故障产生前正确状态的伎俩,例如提供了运行日志操控等实用程序
- 安全性管制:提供合法性测验,防止非受权非法用户拜访数据库
- 完整性管制:提供数据及数据操作正确性查看的伎俩
- 数据字典治理:治理用户曾经定义的信息
- 利用程序接口(API):提供应用程序应用 DBMS 特定性能的伎俩‘
- 数据库数据装载、重组等应用程序
- 数据库性能剖析:统计在运行过程中数据库的各种性能数据,便于优化运行
数据库语言
数据库与高级语言
1. 一条数据库语言语句相当于高级语言的一个或多个循环程序。
例如:
select id, name 名字 from table where id = 1;
相当于 Java 中的:
for(int i=0; i<n; ++i) {if (user[i].id == id) {return user[i];
}
}
2. 数据库能够嵌入到高级语言(宿主语言)中应用
总结
本文是基于哈工大在慕课网发的《数据库系统》,待补充 …