• 【一】初步认识数据库


    数据库概览

    走马观花快速一瞥,数据库为何方神圣?

    在这里插入图片描述

    假设你现在有很多很多表,为了快速 添加、删除、修改、查找 数据,你需要想办法管理这些表:

    • 这些表中是一些 相互有关联关系的数据,这样的 表的集合叫做数据库 (Database);
    • 管理数据库(也就是管理这些表)的 系统软件叫做 数据库管理系统(DBMS);
    • 这些数据库管理系统 由谁来使用 呢?就是 数据库管理员(DBA);
    • 那数据库管理员怎么使用这些系统?就需要 数据库语言(SQL);所以你要成为 DBA,就要先掌握这个语言,才能操作数据库;
    • 如果有些人不学计算机,没有掌握数据库语言,怎么办呢?那我们学计算机的为他们开发 数据库应用程序(DBAP,图形界面);
    • 不同的用户使用不同的能完成某功能的 数据库应用程序通过数据库管理系统来操作数据库
    • 那如何根据数据库(那些表)设计 具体的数据库应用程序呢?需要从现实世界抽象出信息(ER图),再设计出关系模式,用数据库语言定义这些表,存储在计算机中;
    • 学习了 数据库设计,再进一步学习 数据库的维护和控制,再学习 数据库的存储和查询,这又涉及到数据的一致性、可靠性,即 数据库事务处理

    在这里插入图片描述

    • 数据库(DB): Database
    • 数据库管理系统(DBMS): Database Management System
    • 数据库管理员(DBA): DataBase Administrator
    • 数据库应用(DBAP): DataBase Application

    这就是,很多很多表引发的问题以及解决方法,即数据库。

    【重点与难点】

    • 一组概念的区分:数据库数据库系统数据库管理系统
    • 的相关要素和术语
    • 数据库系统 的构成、工作环境
    • 了解 数据库管理系统 的功能:从 用户角度 和从 系统角度

    数据库 缘起

    数据库是一种技术,更是一种思维。

    应用数据库,实现积累的收益。

    在这里插入图片描述

    表(Table)的理解

    这里的数据,就是上文提到的一些有关联关系的 表(Table),表是以 按行按列 形式组织和展现的数据。

    E.F.Codd, 基于对“表(Table)”的理解:

    • 提出了“关系”及关系模型
    • 提出了关系数据库理论
    • 开创了数据库的时代
    • 当前普遍应用的数据库管理系统的奠基者
    • 获得了 计算机领域最高奖“图灵奖”

    那么,表里有什么?

    这需要 抽象,抽象就是要 理解 表的要素,然后 区分 开各个要素,再给它们 命名,用以 表达 表的信息。

    在这里插入图片描述

    Table 中描述了一些 相互有关联关系的数据

    • “学生成绩单” 是这个表的 表名
    • “班级”、“课程”、…、“成绩”这一行是表的 表标题(格式);
    • 粉红色框框的一行行一列列的内容是表的 表内容(值);
    • 表名 和 表标题 构成这个表的 关系(模式)。
    • 表名、表标题和表内容 构成这个 (关系)。
    • 这个表内容的每一行又叫 行(row)/元组(tuple)/记录(record)
    • 这个表内容的每一列又包含 列名列值

    用表来定义数据库

    Database: 相互之间有关联关系的 Table 的集合。

    在这里插入图片描述

    除了表形式的关系数据库外,还有图像数据库和工程数据库。

    在这里插入图片描述

    数据库系统的理解

    概念层次的理解

    数据库系统(工作环境):

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

    在这里插入图片描述

    实例层次的理解

    数据库系统(工作环境):图书管理数据库系统

    在这里插入图片描述

    数据库管理系统的理解

    • 怎样利用数据库管理系统管理数据库?
    • 数据库管理系统应具有什么功能?

    从用户角度看

    1. 数据库定义: 定义数据库中 Table 的名称、标题(内含的属性名称及对该属性的值的要求)等。
    • DBMS 提供一套 数据定义语言 (DDL:Data Definition Language)给用户;
    • 用户使用 DDL 描述所要建立表的格式
    • DBMS 依照用户的定义,创建数据库及其中的 Table
      在这里插入图片描述
    1. 数据库操纵:向数据库的 Table 中 增加/删除/更新数据对数据进行查询、检索、统计 等。
    • DBMS 提供一套 数据操纵语言 (DML:Data Manipulation Language)给用户;
    • 用户使用 DML 描述 其所要进行的 增、删、改、查 等操作;
    • DBMS 依照用户的操作描述,实际执行 这些操作。

    在这里插入图片描述

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

    在这里插入图片描述

    1. 数据库维护:转储/恢复/重组/性能监测/分析…
    • DBMS 提供一系列 程序(实用程序/例行程序) 给用户;
    • 在这些程序中提供了对数据库维护的各种功能;
    • 用户使用 这些程序进行各种数据库维护操作。

    数据库维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的。

    在这里插入图片描述

    从系统实现角度看

    “形式->构造->自动化”–数据库管理系统的实现。

    在这里插入图片描述

    DBMS 为完成 DB 管理,在后台运行着一系列程序…

    • 语言编译器将用数据库语言书写的内容,翻译成 DBMS 可执行的命令。(可以类比 C 编译器可以把 C 语言代码编译成 CPU 可以懂的二进制指令 来理解)例如:DDL 编译器, DML 编译器, DCL 编译器等;
    • 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段。例如:贯穿于数据存取各个阶段的优化程序;
    • 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
    • 通信控制:提供网络环境下数据库操作与数据传输的手段。
    • 事务管理:提供提高可靠性并 避免并发操作错误 的手段。
    • 故障恢复使数据库自动恢复到故障发生前正确状态的手段。例如:提供了备份、运行日志操控等实用程序;
    • 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段。
    • 完整性控制:提供数据及数据操作正确性检查的手段。
      在这里插入图片描述

    典型的数据库管理系统

    • Oracle
    • MySQL
    • PostgreSQL
    • DB2(IBM)
    • Sybase
    • Microsoft SQL Server
    • Microsoft Access
    • Microsoft FoxPro
    • MongoDB(面向文档)

    在这里插入图片描述

    【总结】

    数据库管理系统,包括数据库语言,和数据库执行例行程序。

    在这里插入图片描述

    数据库语言

    数据库语言:使用者通过数据库语言利用 DBMS 操作数据库;

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

    数据库定义、操纵、控制语言

    • 数据定义语言(DDL:Data Definition Language) ----DBMS 提供给用户,以便用户定义数据格式;
    • 数据操纵语言(DML:Data Manipulation Language)----DBMS 提供给用户,以便用户对数据进行操作;
    • 数据控制语言(DCL:Data Control Language)----DBMS 提供给用户,以便用户对数据进行控制;
    • 数据库各种操作的执行----DBMS 按用户要求进行定义、操纵、控制和维护。

    在这里插入图片描述

    数据库语言 VS 高级语言

    1. 一条数据库语言语句相当于高级语言的一个或多个循环程序

    在这里插入图片描述

    数据库语言(标准的 SQL 语言):

    Select 学号,姓名 From 学生登记表 Where 性别 = ‘男’;
    
    • 1

    高级语言:

    For K=1 to 最后一条记录 
    	读第K条记录
    	If 性别=‘男’ then
    		显示第K条记录
    	Endif
    Next K
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 数据库语言可以嵌入到高级语言(宿主语言)中使用

    交互式数据库语言(标准的:SQL语言):

    Select 学号,姓名
    From 学生登记表
    Where 性别=‘男’;
    
    • 1
    • 2
    • 3

    嵌入式数据库语言(SQL 语句嵌入到某一种高级语言中):

    在这里插入图片描述

    内容回顾

    在这里插入图片描述

    练习

    1. 关于数据库系统和数据库管理系统,下列说法正确的是__________。

    A. 数据库系统和数据库管理系统指的是同一软件产品

    B. 数据库系统和数据库管理系统指的是不同软件产品

    C. 数据库管理系统是软件产品,而数据库系统不仅仅是软件产品

    D. 数据库系统是软件产品,而数据库管理系统不仅仅是软件产品

    正确答案:C

    1. 关于数据库系统,下列说法正确的是__________。

    A. 数据库系统的构成包括计算机/网络基本系统、数据库和数据库管理系统

    B. 数据库系统的构成包括计算机/网络基本系统、数据库、数据库管理系统和数据库应用程序

    C. 数据库系统的构成包括计算机/网络基本系统、数据库、数据库应用程序和数据库管理员

    D. 数据库系统的构成包括数据库、数据库管理系统、数据库应用程序、数据库管理员以及计算机与网络基本系统

    正确答案:D

    1. 从用户角度看数据库管理系统的功能,下列说法正确的是__________。

    A. 数据库管理系统就是通过数据库语言让用户操作进而提供数据库操纵功能的系统

    B. 数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义和数据库操纵功能的系统

    C. 数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统

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

    正确答案:D

    1. 从系统角度看数据库管理系统,其功能包括__________。

    A. 数据库语言及其编译

    B. 查询实现与查询优化

    C. 事务处理

    D. 不仅仅有(A)(B)(C )功能,还包括其他功能

    正确答案:D

    1. 从系统角度看数据库管理系统,其功能包括__________。

    A. X-查询实现与查询优化

    B. Y-事务处理

    C. Z-数据存储与索引

    D. 不仅仅包含X-、Y-、Z-功能,还包括其他功能

    正确答案:D

    1. 下列哪些功能不是数据库管理系统的功能__________。

    A. 完整性控制

    B. 并发控制

    C. 通讯控制

    D. 处理机控制

    正确答案:D

    1. 关于数据库系统语言,下列说法正确的是__________。

    A. 数据库系统语言包括了DDL和DML

    B. 数据库系统语言包括了DDL、DML和DCL

    C. 数据库系统语言包括了DDL、DML和C++/Java

    D. 数据库系统语言包括了DDL、DML和程序设计语言

    正确答案:B

    1. 关于DDL,下列说法正确的是__________。

    A. DDL是数据库定义语言

    B. DDL是数据库操纵语言

    C. DDL是数据库控制语言

    D. DDL是数据库维护语言

    正确答案:A

    1. 关于DML,下列说法正确的是__________。

    A. DML是数据库定义语言

    B. DML是数据库操纵语言

    C. DML是数据库控制语言

    D. DML是数据库维护语言

    正确答案:B

    1. 从用户角度看数据库管理系统,其功能包括__________。

    A. 数据库定义

    B. 数据库操纵

    C. 数据库控制

    D. 上述全部

    正确答案:D

    1. 从用户角度看数据库管理系统,其功能包括__________。

    A. 数据库定义

    B. 数据库操纵

    C. 数据库控制

    D. 数据库维护

    正确答案:A、B、C、D

  • 相关阅读:
    【C++ techniques】Reference counting(引用计数)
    为什么我学了几天 STM32 感觉一脸茫然?
    C++ Primer Plus 第六章笔记
    第五十三章 开发自定义标签 - Using csr %cspQuote Methods
    分布式ID生成
    win10系统中同时安装jdk8和jdk14,便于pyhanlp和neo4j的使用。
    零代码工具推荐---HiFlow
    一个简单好用的localstorage组件store
    【Python】简单的逻辑训练题目(计算机二级练习题)
    BFS模板:844. 走迷宫
  • 原文地址:https://blog.csdn.net/xiaoyuting999/article/details/133433055