《计算思维导论》笔记:10.2 什么是数据库与数据库系统?

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学)
《10.2 什么是数据库与数据库系统?》

数据库

简单来讲,数据库就是相互有关联关系的数据的集合。

  • 一个表聚集了具有相同结构类型的若干个对象
  • 一行数据反映了某一对象的相关内容
  • 一列数据具有相同的数据类型
  • 表与表间也存在着相互关联

数据库系统

数据库系统包含数据库数据库管理系统应用程序和数据库管理员

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

在这里插入图片描述

数据库系统是一个大的环境,其核心组件是数据库。数据库实质上是一个由相互关联的数据所构成的集合,我们通常将这个数据集合称为 Database,简称DB。

为了有效地管理和控制数据库,必须配备一种特定的系统软件。这种专门用于管理数据库的系统软件被称为数据库管理系统,即Database Management System,简称DBMS。

应用程序是为普通用户与数据库进行交互而特别设计开发的软件工具。用户通过这些应用程序,间接地与数据库管理系统(DBMS)进行交流,从而实现对数据库的访问和使用。换句话说,普通用户借助应用程序这一中介,通过数据库管理系统来操作和利用数据库中的数据资源。

数据库管理员,即 DBA,可能是一个人,也可能是一个组织,他使用DBMS来管理和维护数据库。

数据库管理系统的基本功能

数据库定义

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

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

数据库操纵

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

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

数据库控制

控制数据库中数据的使用:哪些用户可以使用,哪些不可以

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

数据库维护

转储/恢复/重组/性能监测/分析…

  • DBMS提供一系列程序(实用程序/例行程序) 给用户
  • 在这些程序中提供了对数据库维护的各种功能
  • 用户使用这些程序进行各种数据库维护操作

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

DBMS后台程序

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

  • 数据库物理存储
  • 数据库查询执行及查询优化
  • 并发控制
  • 故障恢复
  • 安全性控制
  • 完整性控制
  • 数据字典管理
  • 应用程序接口(API)
  • … …

从系统的底层运作角度看,数据库管理系统(DBMS)背后运行着一系列复杂的程序。

这些后台程序负责至关重要的任务,比如如何有效地将数据库物理地存储在磁盘上,并确保数据能够快速且准确地从磁盘读取到内存中进行处理。

同时,当用户提交一个查询请求时,DBMS必须通过查询优化机制来高效检索和组织数据,以迅速提供用户期望的结果集。这是查询性能优化的关键所在。

此外,在多用户环境或者分布式环境下,不同的用户可能从不同地点对同一数据库进行操作。例如,在多人同时购买同一班次火车票的情况下,DBMS需要通过并发控制技术来避免出现重复购票的问题,确保数据的完整性和一致性。

最后,为了防止意外情况导致的数据丢失或不一致,如银行系统中用户账户信息因故障而受损,DBMS必须具备强大的故障恢复能力。这意味着在发生故障后,系统能及时检测、记录事务日志,并有能力将数据库恢复至故障前的正确状态,从而保障数据的安全性和可靠性。

小结

在这里插入图片描述

本节介绍了什么是数据库,什么是数据库系统。

对于数据库系统来讲,包括了数据库,数据库管理系统,数据库应用程序,数据库管理员和计算机的基本系统。这里面的核心是数据库管理系统。

数据库管理系统有数据定义功能,数据操作功能、数据控制功能。这些功能都是通过一套数据库语言(数据定义语言,数据操纵语言,数据控制语言)提供给用户。用户掌握了这套语言,就可以通过DBMS访问、管理和控制数据库。另外一方面就是数据库管理系统的背后是一系列程序,执行存储、查找、备份、解析语言等。

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

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

相关文章

Leetcode3002. 移除后集合的最多元素数

Every day a Leetcode 题目来源:3002. 移除后集合的最多元素数 解法1:贪心 可以将数组去重后分为三个部分:nums1 独有的,nums2 独有的,nums1 与 nums2 共有的。 求集合 S 时: 先选择两个数组独有的。…

JVM:双亲委派机制类加载器

JVM:双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程:5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包,里面有一个ClassLoader类 我们自定义一个String类在java.lang包下,下面的…

C#编程-使用事件

使用事件 事件是一个动作或发生的事情,例如:鼠标点击、按键、鼠标移动或系统产生的通知。应用程序可以在事件发生的时候做出响应。通知的一个示例是中断。事件是对象发生的消息以表示事件的发生。事件是进程内通信的有效方法。它们对对象时有用的,因为它们标识了单个状态改…

Leetcode 第 379 场周赛题解

Leetcode 第 379 场周赛题解 Leetcode 第 379 场周赛题解题目1:10035. 对角线最长的矩形的面积思路代码复杂度分析 题目2:10036. 捕获黑皇后需要的最少移动次数思路代码复杂度分析 题目3:10037. 移除后集合的最多元素数思路代码复杂度分析 题…

SpringBoot+SSM项目实战 苍穹外卖(11) Apache ECharts

继续上一节的内容,本节学习Apache ECharts,实现营业额统计、用户统计、订单统计和销量排名Top10功能。 数据统计效果图: 目录 Apache ECharts入门案例 营业额统计用户统计订单统计销量排名Top10 Apache ECharts Apache ECharts 是一款基于 …

解锁 JavaScript 数组的强大功能:常用方法和属性详解(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

C++ 完成Client分页显示log

分页显示t_log 1、获取用户的输入 1.1、写一个Input成员函数&#xff0c;处理输入进来的语句 std::string XClient::Input() {//清空缓冲//cin.ignore(4096, \n);string input "";for (;;){char a getchar();if (a < 0 || a \n || a \r)break;cout <<…

GPT编程:运行你的第一个聊天程序

环境搭建 很多机器学习框架和类库都是使用Python编写的&#xff0c;OpenAI提供的很多例子也是Python编写的&#xff0c;所以为了方便学习&#xff0c;我们这个教程也使用Python。 Python环境搭建 Python环境搭建有很多种方法&#xff0c;我们这里需要使用 Python 3.10 的环境…

一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

背景 上篇介绍了文件读写框架设计与实现&#xff0c;同时顺便说明了本地磁盘存储模式的实现模式。 今天来说下基于文件读写框架&#xff0c;如何集成对象存储组件minio&#xff0c;集成之前&#xff0c;需要对minio进行必要的了解&#xff0c;本篇是minio的技术预研。 minio简…

两个Mesh路由、一个5口交换机,打造智能家居无缝网络覆盖

在现代家庭中&#xff0c;无线网络已经成为了必需品&#xff0c;每个人都希望享受到无缝连接的畅快体验。然而&#xff0c;由于信号覆盖范围的限制和信号干扰等问题&#xff0c;很多家庭在组网方面遇到了一些困难。 对于有需求的家庭而言&#xff0c;两个Mesh路由器是一种非常…

Linux|centos7操作系统|VMware虚拟机安装水星免驱USB网卡8188gu记录

引言&#xff1a; 最近对于嵌入式系统比较感兴趣&#xff0c;因此&#xff0c;计划先使用VMware workstation虚拟机试一试Linux系统下的网卡驱动安装 这不试不知道&#xff0c;一试吓一跳&#xff0c;发现Linux下的驱动安装还是比较麻烦的&#xff0c;下面将就本次的Linux系统…

机器学习 | 卷积神经网络

机器学习 | 卷积神经网络 实验目的 采用任意一种课程中介绍过的或者其它卷积神经网络模型&#xff08;例如LeNet-5、AlexNet等&#xff09;用于解决某种媒体类型的模式识别问题。 实验内容 卷积神经网络可以基于现有框架如TensorFlow、Pytorch或者Mindspore等构建&#xff…

格密码基础:SIS问题的困难性

目录 一. SIS问题的困难性 二. SIS问题归约的性质 2.1 2004年 [MR04] 2.2 2008年 【GPV08】 2.3 2013年【MP13】 三. 归约证明 3.1 核心理解 3.2 归约步骤 3.3 性质理解 一. SIS问题的困难性 推荐先阅读&#xff1a; 格密码基础&#xff1a;SIS问题的定义与理解-CSD…

专业课140总分410+大连理工大学852信号与系统考研经验电子信息与通信

通过将近一年的复习&#xff0c;今年如愿以专业140分&#xff0c;总分410被大连理工录取&#xff0c;回望这一年复习还是有很多做的不足&#xff0c;整理了一下自己复习的经验&#xff0c;希望可以对后面报考大连理工的同学有所帮助。●政治&#xff1a; 真心建议大家至少暑假…

python 列表的高级应用

当前版本&#xff1a; Python 3.8.4 简介 列表&#xff08;list&#xff09;是Python编程语言中的基本数据类型之一&#xff0c;也是一个非常重要的通用序列。在其它编程语言中&#xff0c;它们通常被称为“数组”。可以存储多个元素&#xff0c;包括数字、字符串、甚至其他列…

【RPC】序列化:对象怎么在网络中传输?

今天来聊下RPC框架中的序列化。在不同的场景下合理地选择序列化方式&#xff0c;对提升RPC框架整体的稳定性和性能是至关重要的。 一、为什么需要序列化&#xff1f; 首先&#xff0c;我们得知道什么是序列化与反序列化。 网络传输的数据必须是二进制数据&#xff0c;但调用…

(菜鸟自学)搭建虚拟渗透实验室——安装Ubantu 8.10 靶机

安装Ubantu 8.10 靶机 新建虚拟机 选择Ubuntu系统 网络适配器模式选用桥接模式 镜像选用ubuntu8.10版本 点击“开启此虚拟机”以开始安装Ubuntu Linux系统 安装ubuntu 首先需要选择安装时的语言&#xff0c;这里选择“中文&#xff08;简体&#xff09;” 选择“安装…

Pushmall智能AI数字名片— —SCRM客户资源管理系统

推贴数字AI名片说明&#xff1a; **Pushmall智能AI数字名片&#xff1a;**基于靠谱人脉的地理位置服务&#xff0c;资源查询&#xff0c;数字名片定制服务、企业名片&#xff1a;相互引荐、提供需求&#xff1b;建人脉群、客户群&#xff0c;及简介、短视频、宣传文档、电子图…

上海亚商投顾:创业板指冲高回落 光伏、航运股逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指1月12日冲高回落&#xff0c;创业板指午后跌近1%。北证50指数跌超6%&#xff0c;倍益康、华信永道、众诚科…