从用户角度看:
    数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义数据库操纵数据库控制功能的系统,同时提供了一系列程序能够实现对数据库的各种存储与维护

    • 数据库定义:定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等。DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户,用户使用DDL描述其所要建立表的格式。
    • 数据库操纵:向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等。DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户,用户使用DML描述其所要进行的增、删、改、查等操作。
    • 数据库控制 :控制数据库中数据的使用—-哪些用户可以使用,哪些不可以。DBMS提供一套数据控制语言(DCL:Data Control Language)给用户,用户使用DCL描述其对数据库所要实施的控制。
    • 数据库维护:转储/恢复/重组/性能监测/分析等等。DBMS提供一系列程序(实用程序/例行程序)给用户,在这些程序中提供了对数据库维护的各种功能,用户使用这些程序进行各种数据库维护操作。数据库维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的

    从系统实现角度看
    DBMS为了完成DB管理,在后台运行着一系列程序。

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

    DBMS的两大类型:

    • 关系型数据库(SQL):
      • 如MySQL,Oracle,SqlServe,DB2,SQLlite
      • 通过表与表之间、行与列之间的关系进行数据的存储表
    • 非关系型数据库(Not Only SQL):
      • 如Redis,MongDB
      • 通过对象存储,通过对象自身的属性来决定操作