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

news2024/10/7 14:32:42

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学)
《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.coloradmin.cn/o/1385239.html

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

相关文章

【Python数据分析系列】实现txt文件与列表(list)相互读写转换(源码+案例)

这是Python数据分析系列原创文章,我的第199篇原创文章。 一、问题 平时在做数据分析或者程序开发的时候,需要将中间的一些结果或最后的处理结果保存下来,比如保存为txt格式的文本文件,这就涉及列表与txt之间的一种读取和写入操作…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

《WebKit 技术内幕》之一: 浏览器和浏览器内核

第一章 浏览器和浏览器内核 浏览器的内核是浏览器的最核心的部件。 1.浏览器 1.1 浏览器发展简介 80年代后期90年代初期:由Berners-Lee 发明,诞生了世界上第一个浏览器 WorldWideWeb,后改名为 Nexus;并于1991年公布源代码&…

《2023年终总结》

笔者来回顾一下2023年的个人成长。 2023年总的来说,工作和生活都相对比较顺利。 工作上领导给予了肯定的评价,升职加薪,对我的鼓舞很大; 生活上和女朋友的感情越来越好,生气频率降低,也能相互理解&#xf…

【编码魔法师系列_构建型4】原型模式(Prototype Pattern)

学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通…

Meproc:简单高效的跨平台进程/任务管理工具

最近使用 Melang 语言写了一个 supervisor 相似服务Meproc来管理进程。 Meproc 有如下特性: 使用 HTTP API 管理控制 Meproc 来管理进程跨平台,支持 UNIX/Linux 、Mac 、Windows 等平台支持 cron 类定时调度任务支持简单的任务间依赖关系支持原生的协…

基于51单片机的模拟量输入输出通道实验

实验一 模拟量输入输出通道实验(C51) 一、实验目的: 1、了解A/D、D/A转换的基本原理。 2、了解A/D转换芯片ADC0809、D/A转换芯片DAC0832的性能及编程方法。 3、掌握过程通道中A/D转换与D/A转换与计算机的接口方法。 4、了解计算机如何进…

第二证券:利空因素影响成本端 豆粕期现价偏弱运行

上个买卖周,受利空要素影响,内盘豆粕期价刷新2021年12月14日以来收盘价新低。到上周五收盘,豆粕主力合约MO2405最低下探至3075元/吨,收报3078元/吨,周内累计跌幅近4%。业内人士以为,美国农业部超预期调高20…

pinyin-pro库使用方式

pinyin-pro 是一个专业的 JavaScript 中文转拼音的库,具备多音字识别准确、体积轻量、性能优异、功能丰富等特点。 pinyin-pro官网链接:介绍 | pinyin-pro 运行展示 pinyin-pro安装命令: # 选择一个你使用的包管理器进行安装即可# NPM $ n…

学网络必懂的华为CSS堆叠技术

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

2024多系统萎缩最新全球特效药治疗进展

多系统萎缩是一种罕见的神经退行性疾病,由于缺乏有效的治疗方法,患者经常面临症状无法缓解和生活品质下降的困扰。然而,近期刘家峰大夫基于中医理论研究和临床实践,采用中药治疗多系统萎缩取得了显著疗效,给患者带来了…

mysql原理--undo日志2

1.概述 上一章我们主要唠叨了为什么需要 undo日志 ,以及 INSERT 、 DELETE 、 UPDATE 这些会对数据做改动的语句都会产生什么类型的 undo日志 ,还有不同类型的 undo日志 的具体格式是什么。本章会继续唠叨这些 undo日志 会被具体写到什么地方&#xff0c…

RMI简介

RMI 介绍 RMI (Remote Method Invocation) 模型是一种分布式对象应用,使用 RMI 技术可以使一个 JVM 中的对象,调用另一个 JVM 中的对象方法并获取调用结果。这里的另一个 JVM 可以在同一台计算机也可以是远程计算机。因此,RMI 意味着需要一个…

Spring MVC中的一些常用注解

目录 RequestMapping 实现路由映射 限制请求方式 PathVariable 从url中获取变量的值 更改绑定参数的名字 RequestParam 可以传递集合 更改绑定参数的名字 可修改是否为必传参数 RequestBody 获取请求正文的内容 可修改是否为必传参数 RequestPart 可以支持上传…

Android中的SPI实现

Android中的SPI实现 SPI是JVM世界中的标准API,但在Android应用程序中并不常用。然而,它可以非常有用地实现插件架构。让我们探讨一下如何在Android中利用SPI。 问题 在Android中,不同的提供者为推送功能提供服务,而在大型项目中…

python入门,数据容器:字典dict

字典作用就和它的名字一样,我们可以通过某个关键字找到它对应的信息,或者讲的高级一点,就是key与value的对应关系 举例: 一场考试小明考了80分,小红考了90分,小东考了95分,在字典里&#xff0…

使用JDK自带的jvisualvm工具查看堆dump文件【回顾】

JDK自带的jvisualvm的使用 打开方式: 直接命令行输入:jvisualvm ,然后回车​​​​​​​ ​​ 或者去jdk的bin目录下找到打开 安装visual GC插件 检测死锁 再点击“死锁 dump”就可以看到死锁的线程信息了;

C++每日一练(16):数组逆序

题目描述 给你m个整数&#xff0c;将其逆序输出 输入 第一行一个整数m&#xff08;3 < m < 100 )&#xff1a;数的个数 第二行m个整数&#xff08;空格隔开&#xff09;&#xff08;这些数在0-9999999之间) 输出 m个整数&#xff08;空格隔开&#xff09; 输入样例 3 1 7…

SV-7041T 30W网络有源音箱校园教室广播音箱,商场广播音箱,会议广播音箱,酒店广播音箱,工厂办公室广播音箱

SV-7041T 30W网络有源音箱 校园教室广播音箱&#xff0c;商场广播音箱&#xff0c;会议广播音箱&#xff0c;酒店广播音箱&#xff0c;工厂办公室广播音箱 SV-7041T是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱&#xff0c;具有10/100M以太网接口&#xff0c;可将…

GZ075 云计算应用赛题第9套

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷9 某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenSt…