【一】初步认识数据库

  • 数据库概览
  • 数据库 缘起
    • 表(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.rhkb.cn/news/146552.html

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

相关文章

安卓玩机-----给app加注册码 app加弹窗 云注入弹窗

在对接很多工作室业务中有些客户需要在他们自带的有些app中加注册码或者验证码的需求。其实操作起来也很简单。很多反编译软件有自带的注入功能。例如注入弹窗。这个是需要对应的注册码来启动应用。而且是随机id。重新安装app后需要重新注册才可以继续使用,原则上可…

深入学习git

1、git原理及整体架构图 一些常用的命令 git add . 或 git add src/com/ygl/hello/hello.java 指定文件 git commit . 或 git commit src/com/ygl/hello/hello.java 指定文件 git push origin 分支名称 2、git stash的应用场景 场景一:你正在当前分支A开发&…

localStorage实现历史记录搜索功能

📝个人主页:爱吃炫迈 💌系列专栏:JavaScript 🧑‍💻座右铭:道阻且长,行则将至💗 文章目录 为什么使用localStorage如何使用localStorage实现历史记录搜索功能&#xff08…

代码随想录算法训练营第五十二天 | 300. 最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

1. 最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode) dp[i] 取决于 i 之前所有的dp class Solution {public int lengthOfLIS(int[] nums) {// dp[i] 第 0 - i 位的递增子序列长度int length nums.length;int[] dp new int[length];Arrays.fil…

基于SSM的微博系统网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

如何用ChatGPT学或教英文?5个使用ChatGPT的应用场景!

原文:百度安全验证 AI工具ChatGPT的出现大幅改变许多领域的运作方式,就连「学英文」也不例外!我发现ChatGPT应用在英语的学习与教学上非常有意思。 究竟ChatGPT如何改变英文学习者(学生)与教学者(老师)呢? 有5个应用场景我感到…

2023-09-28 monetdb-databae的概念和作用-分析

摘要: 每个数据库对于db,schema以及user,role都有一套自己的设计, 不同数据库间对于相同名字的东西例如database和schema可以说南辕北辙, 例如mysql中schema其实是database的同义词. 本文分析monetdb的database的概念和作用 database的概念和作用: 和mysql的database完全不同…

Linux开发工具之文本编译器vim

目录 Linux编辑器-vim使用 1. vim的基本概念 ● 正常/普通/命令模式(Normal mode) ● 插入模式(Insert mode) ● 末行模式(last line mode) 2. vim的基本操作 ● [正常模式]切换至[插入模式] ● [插入模式]切换至[正常模式] ● [正常模式]切换至[末行模式] ● 退出vi…

步力宝科技爆款产品定位,开创智能物联网新商业

数据显示,中国处于 “亚健康”状态人口数量约占总人口的70%,亚健康是一种临界状态,指介于健康和疾病之间的状态。亚健康是一个动态演变的过程,既有向慢病发展的趋势,也能通过合理的干预使人体重返健康状态,…

网络运营和电子商务有什么区别

大家好,我是网络工程师成长日记实验室的郑老师,您现在正在查看的是网络工程师成长日记专栏,记录网络工程师日常生活的点点滴滴 一个同学他问我,他说学网络运营的话,它是不是电子商务里面的这个东西?像电子大…

南京大学【软件分析】08 Pointer Analysis

文章目录 1. Motivation2. Introduction to Pointer Analysis3. Key Factors of Pointer Analysis3.1 Heap Abstraction3.2 Context Sensitivity3.3 Flow sensitivity3.4 Analysis scope 4. Concerned Statements 1. Motivation 指针分析存在不精确的问题。对于下面的例子&…

快排三种递归及其优化,非递归和三路划分

个人主页:Lei宝啊 愿所有美好如期而遇 目录 快排简介: 快排的三种递归实现: Hoare: 挖坑: 双指针: 小区间优化: 三数取中优化: 快排非递归实现: 快排的三路划…

Ubuntu配置深度学习环境(TensorFlow和pyTorch)

文章目录 一、CUDA安装1.1 安装显卡驱动1.2 CUDA安装1.3 安装cuDNN 二、Anaconda安装三、安装TensorFlow和pyTorch3.1 安装pyTorch3.2 安装TensorFlow2 四、安装pyCharm4.1 pyCharm的安装4.2 关联anaconda的Python解释器 五、VScode配置anaconda的Python虚拟环境 前言&#xff…

一维数组和二维数组的使用(char类型)

目录 导读1. 字符数组1.1 字符数组的创建1.2 字符数组的初始化1.3 不同初始化在内存中的不同1.3.1 strlen测试1.3.2 sizeof测试1.3.3 差异原因 1.4 字符数组的使用 2. 数组越界3. 数组作为函数参数博主有话说 导读 我们在前面讲到了 int 类型的数组的创建和使用: 一…

焕新古文化传承之路,AI为古彝文识别赋能

目录 1 古彝文与古典保护 2 古文识别的挑战 2.1 西文与汉文OCR 2.2 古彝文识别难点 3 合合信息:古彝文保护新思路 3.1 图像矫正 3.2 图像增强 3.3 语义理解 3.4 工程技巧 4 总结 1 古彝文与古典保护 彝文指的是云南、贵州、四川等地的彝族人使用的文字&am…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式(Chain Of Responsibility) 是一种行为设…

MAC手动修复『已损坏』问题 终端运行命令报错处理

安装一些第三方软件会出现已损坏的报错提醒,需要用命令sudo xattr -rd com.apple.quarantine进行修复,但是终端提示命令错误,怎么版 错误有几种: No module named ‘pkg_resources’ 这是mac电脑上python2,python3并…

mfc140u.dll是什么文件?mfc140u放在哪个文件夹?详细修复教程

今天我想和大家分享一个非常常见的问题——mfc140u.dll丢失的困扰以及解决方法。 首先,让我们来了解一下什么是mfc140u.dll。这是一个非常重要的动态链接库文件,它是Microsoft Foundation Class Library的一个组件。许多软件和游戏都需要这个文件的支持才…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

Qt多线程实现方式-moveToThread及其注意事项

Qt多线程实现方式-moveToThread及其注意事项 Chapter1 Qt多线程实现方式-moveToThread一、Qt下使用线程主要有两种方法。二、Qt下创建多线程也有两种方法。三、其它问题。 Chapter2 QT多线程接收串口数据1.前言2.功能作用3.软件测试效果4.基本步骤 Chapter3 利用Qt多线程机制实…