一、 什么是数据库?

数据库是电子化信息的集合。

将信息规范化并使之电子化,形成电子信息‘库’,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理

表 (table)

表
注意这些术语:
列/字段/属性/数据项
行/元组/记录
数据库就是若干个有关联关系的表的集合

二、什么是数据库系统?

数据库系统由5个要素构成

  • 数据库 DB(Database)
  • 数据库管理系统 DBMS(Database management system)
  • 数据库应用 DBAP(Database Application)
  • 数据库管理员 DBA (Database Administrator)
  • 计算机基本系统

表
数据库管理系统是由数据库管理员使用
数据库应用由普通用户使用

数据库系统是一个大的环境!而不是某个软件。
但数据库管理系统是一个软件

三、什么是数据库管理系统?

1、从用户角度来看,数据库应该能拥有哪些功能:

1)创建数据库: 数据库定义功能

定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等

  • DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户
  • 用户使用DDL描述其所要建立表的格式
  • DBMS依照用户的定义,创建数据库及其中的Table

2)修改数据库: 数据库操纵功能

数据库操纵: 向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等

  • DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户
  • 用户使用DML描述其所要进行的增、删、改、查等操作
  • DBMS依照用户的操作描述,实际执行这些操作

    3)控制用户权限:数据库控制功能

    数据库控制: 控制数据库中数据的使用—-哪些用户可以使用,哪些不可以
  • DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
  • 用户使用DCL描述其对数据库所要实施的控制
  • DBMS依照用户的描述,实际进行控制

2、数据库语言

1)概念

数据定义语言(DDL:Data Definition Language)
——DBMS提供给用户,以便用户定义数据格式
数据操纵语言(DML:Data Manipulation Language)
——DBMS提供给用户,以便用户对数据进行操作
数据控制语言(DCL:Data Control Language)
——DBMS提供给用户,以便用户对数据进行控制

SQL语言是一种结构化的数据库语言

2)与高级编程语言对比

一条数据库语言语句相当于高级语言的一个或多个循环程序
如:
数据库语言
数据库语言也可以嵌入到高级语言中使用

3、从系统角度,数据库管理系统应该有哪些功能?

数据库语言
解释语言并执行

  • 语言编译器:将用数据库语言书写的内容,翻译成DBMS可执行的命令。例如: DDL编译器, DML编译器, DCL编译器等;
  • 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
  • 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
  • 通信控制:提供网络环境下数据库操作与数据传输的手段
  • 事务管理:提供提高可靠性并避免并发操作错误的手段
  • 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等实用程序
  • 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段
  • 完整性控制:提供数据及数据操作正确性检查的手段
  • 数据字典管理:管理用户已经定义的信息
  • 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
  • 数据库数据装载、重组等实用程序
  • 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行

数据库语言

补充:数据库系统与文件系统的对比

文件系统的缺点:
1、数据的内容、格式具有任意性(鲁棒性)
2、数据不同步
3、检索困难
4、数据彼此分离
5、难以创建、添加约束
6、更新不是原子性的
7、难以实现并发控制