数据库系统#1——数据库系统的概念与基本术语

前言

在学完诸多Java框架以后,深感本身基础不牢。打算从头开始学习计算机的基本知识,为后续的发展作准备。在诸多计算机基础知识中,我选择了与我关联最大的数据库开始学习。数据库系统是一门很是抽象的学科,指望在完成这一系列文章以后,能结合本身的实践对数据库加入本身更深的理解java

为何要学数据库

  • Everything Over DB:传统社会的业务工做已经没法知足现代社会的需求,咱们须要计算机的帮助
  • 信息积累运用的基础:帮助人们从繁重的数据管理中解脱出来
  • 基于数据库的应用——大数据。一切以数听说话。

    学习数据库重要的不是技术,而是思惟。算法

对“表”的抽象

数据起源于表——人们对平常生活信息的整理。在数据库中,表也做为最重要的主体部分。表也不是胡乱选取的,须要咱们对表作出正确的抽象:理解-区分-命名-表达。sql

咱们须要对生活中的信息有着足够的理解,并从中抽取出须要的信息数据库

表(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提供一系列程序(使用程序/例行程序)给用户,用户使用这些程序来实现数据库的转储、恢复、重组、性能检测和分析等功能。

    上述一、二、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.数据库能够嵌入到高级语言(宿主语言)中使用

总结

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

相关文章
相关标签/搜索