【一】初步认识数据库

  • 数据库概览
  • 数据库 缘起
    • 表(Table)的理解
    • 用表来定义数据库
    • 数据库系统的理解
      • 概念层次的理解
      • 实例层次的理解
    • 数据库管理系统的理解
      • 从用户角度看
      • 从系统实现角度看
      • 典型的数据库管理系统
    • 数据库语言
      • 数据库定义、操纵、控制语言
      • 数据库语言 VS 高级语言
  • 内容回顾
  • 练习

数据库概览

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

在这里插入图片描述

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

  • 这些表中是一些 相互有关联关系的数据,这样的 表的集合叫做数据库 (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 性别 = ‘男’;

高级语言:

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

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

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

嵌入式数据库语言(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/31058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT笔记——QT自定义事件

我们有时候想发送自定义事件 1:创建自定义事件,首先我们需要知道它的条件 1:自定义事件需要继承QEvent 2:事件的类型需要在 QEvent::User 和 QEvent::MaxUser 范围之间,在QEvent::User之前 是预留给系统的事件 3&#…

前端先行模拟接口(mock+expres+json)

目录 mock模拟数据:data/static.js 路由:index.js 服务器:server.js yarn /node 启动服务器:yarn start 客户端:修改代理路径(修改设置后都要重启才生效) 示例 后端框架express构建服务器 前端发起请求 静态数…

smtplib.SMTPHeloError: (500, b‘Error: bad syntax‘)

如果你编写邮件收发工具的时候,有可能会遇到这个问题。这里直接给出解决办法。 目录 1、检查系统版本 2、点击右侧的更改适配器选项

0基础学C#笔记08:插入排序法

文章目录 前言一、过程简单描述:二、代码总结 前言 我们在玩打牌的时候,你是怎么整理那些牌的呢?一种简单的方法就是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候,为了…

十九、docker学习-Dockerfile

Dockerfile 官网地址 https://docs.docker.com/engine/reference/builder/Dockerfile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的集合,只要理解它的逻辑和语法格式,就可以很容易的编写Docke…

为什么DNS协议运行在UDP之上?

DNS (Domain Name System) 运行在 UDP (User Datagram Protocol) 上主要是出于以下原因: 简单性和效率:UDP 是无连接的,这意味着与建立和维护 TCP 连接相比,UDP 有更少的开销。当 DNS 查询被发送时,它只需要一个小的请…

[ MySQL ] — 数据库环境安装、概念和基本使用

目录 安装MySQL 获取mysql官⽅yum源 安装mysql yum 源 安装mysql服务 启动服务 登录 方法1:获取临时root密码 方法2:无密码 方法3:跳过密码认证 配置my.cnf 卸载环境 设置开机启动(可以不设) 常见问题 安装遇到秘钥过期的问题&…

创建型设计模式:4、建造者模式(Builder Pattern)

目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…

时序预测 | MATLAB实现CNN-BiGRU-Attention时间序列预测

时序预测 | MATLAB实现CNN-BiGRU-Attention时间序列预测 目录 时序预测 | MATLAB实现CNN-BiGRU-Attention时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-BiGRU-Attention时间序列预测,CNN-BiGRU-Attention结合注意力机制时…

详解如何计算字符中的字节数

文章目录 字符概念转义 进制的表示前缀区分后缀区分 什么是ASCII产生表述局限性字节计算 什么是Unicode编码方式UCS-2UCS-4 实现方式UTF的字节序和BOM字节计算 JavaScript中使用字符字符使用缺陷规避字符使用缺陷 MIME 编码Base64编码字节计算QP(Quote-Printable) 总结 字符概念…

触控触感方案原厂18按键触摸芯片电路图

VK3618I具有18个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较 高的集成度,仅需极少的外部组件便可实现触摸按键的检测。 提供了2组I2C输出功能,1个INT中断输出脚,2组I2C脚和INT可并联,每组单键输出…

Prometheus流程图(自绘)-核心组件-流程详解

阿丹手绘流程图:图片可能有点小查看的时候放大看看哈! prometheus核心组件 prometheus server Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。Prometheus Server可以通过静态配置管理…

【MySQL】创建高级联结

目录 一、使用表别名 二、使用不同类型的联结 1.自联结 2.自然联结 3.外部联结 3.使用带聚集函数的联结 4.使用联结和联结条件 一、使用表别名 别名除了用于列名和计算字段外,SQL还允许给表名起别名。 起别名有两个好处: 一个是缩短SQL语句&am…

ROS实现机器人移动

开源项目 使用是github上六合机器人工坊的项目。 https://github.com/6-robot/wpr_simulation.git 机器人运动模型 运动模型如下所示:👇 机器人运动的消息包: 实现思路:👇   为什么要使用/cmd_vel话题。因为这…

leetcode 33.搜索旋转排序数组

⭐️ 题目描述 🌟 leetcode链接:搜索旋转排序数组 ps: 本题是二分查找的变形,旋转排序数组之后其实会形成两个有序的区间。算出平均下标先判断是否与 target 相等,因为这样可以减少代码的冗余。如果前者不成立则使用平…

TransNetR:用于多中心分布外测试的息肉分割的基于transformer的残差网络

TransNetR Transformer-based Residual Network for Polyp Segmentation with Multi-Center Out-of-Distribution Testing 阅读笔记 1. 论文名称 《TransNetR Transformer-based Residual Network for Polyp Segmentation with Multi-Center Out-of-Distribution Testing》 用…

AP2915DC-DC降压恒流驱动IC LED电源驱动芯片 汽车摩托电动车灯

AP2915 是一款可以一路灯串切换两路灯串的降压 恒流驱动器,高效率、外围简单、内置功率管,适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功 率管输出功率可达 12W,电流 1.2A。 AP2915 一路灯亮切换两路灯亮,其中一路灯亮可 以全亮&a…

【C++11】列表初始化 | decltype操作符 | nullptr | STL的更新

文章目录 一.列表初始化1. 花括号初始化2. initializer_list 二.decltype三.nullptr四.STL的更新1.STL新增容器2.字符串转换函数3.容器中的一些新方法 一.列表初始化 1. 花括号初始化 { }的初始化 C98中,标准允许使用大括号{}对数组或者结构体元素进行统一的列表初…

竞赛项目 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…

【Linux】网络编程套接字

文章目录 网络编程套接字1. 认识TCP协议2. 认识UDP协议3. 网络字节序4. socket编程接口4.1 sockaddr 结构 5. 简单的UDP网络程序6. 简单的TCP网络程序6.1 TCP socket的封装6.2 TCP协议通讯流程 网络编程套接字 1. 认识TCP协议 传输层协议有连接可靠传输面向字节流 2. 认识UD…