关于数据库:数据库系统1数据库系统的概念与基本术语

4次阅读

共计 1834 个字符,预计需要花费 5 分钟才能阅读完成。

前言

在学完诸多 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 的要求有:

  1. 数据库定义:DBMS 为用户提供一套数据定义语言(DDL,Data Definition Language),用户应用 DDL 创立数据库及其中的 Table;
  2. 数据库操作:DBMS 为用户提供一套数据操纵语言(DML,Data Manipulation Language),用户应用 DML 来实现数据库的 CRUD(增删改查)操作;
  3. 数据库管制:DBMS 为用户提供一套数据管制语言(DCL,Data Control Language),用户应用 DCL 形容其对数据库所要施行的管制(包含且不限于管制哪些用户可能拜访哪些字段);
  4. 数据库保护: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. 数据库能够嵌入到高级语言(宿主语言)中应用

总结

本文是基于哈工大在慕课网发的《数据库系统》,待补充 …

正文完
 0