数据库原理与统计笔记-1.1数据系统概述

2024-01-10 12:48

本文主要是介绍数据库原理与统计笔记-1.1数据系统概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、数据库的4个基本概念
    • [1]. 数据(data)
    • [2]. 数据库(DataBase ,DB)
    • [3]. 数据库管理系统(DataBase Management System,DBMS)
    • [4]. 数据库系统(DataBase System,DBS)
  • 二、数据管理技术的产生和发展
    • [1]. 人工管理阶段
    • [2]. 文件系统阶段
    • [3]. 数据库系统阶段
  • 三、数据库系统的特点
    • [1]. 数据结构化
    • [2]. 数据的共享性高、冗余度低且易扩充
    • [3]. 数据独立性高
    • [4]. 数据由数据库管理系统统一管理和控制
    • [5]. 总结

前言

有关数据库原理与统计的笔记,内容为书本的原文概括。

一、数据库的4个基本概念

[1]. 数据(data)

数据是数据库中存储的基本对象,描述事物的符号记录称为数据。

[2]. 数据库(DataBase ,DB)

数据库是存放数据的仓库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库的数据有永久存储、有组织和可共享三个基本特点。

[3]. 数据库管理系统(DataBase Management System,DBMS)

数据库管理系统可以科学地组织和存储数据,高效地获取和维护数据。
数据库管理系统是位于用户和操作系统之间的一层数据管理软件,和操作系统一样是计算机的基础软件。

主要功能介绍
数据定义功能数据库管理系统提供数据定义语言DDL,用户通过它可以方便地对数据库中的数据对象的组成与结构进行定义。
数据组织、存储和管理数据库管理系统需要分类组织、存储和管理各种数据。需要确定相应的文件结构和存储方式在存储级上组织这些数据,实现数据之间的联系。其基本的目标是提高存储空间利用率和方便存储,提供多种存取方法来提高存取效率。
数据操纵功能提供数据操纵语言DML,用户可以使用它操纵数据,实现对数据库的基本操作。
数据库的事务管理和运行管理数据库在建立、运用和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
数据库的建立和维护功能数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序或管理工具完成的。
其他功能包括数据库管理系统与网络中其他软件系统的通信功能,一个数据库管理系统与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。

[4]. 数据库系统(DataBase System,DBS)

数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

在这里插入图片描述

二、数据管理技术的产生和发展

数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。
数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。

数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段。

背景人工管理阶段文件系统阶段数据库系统阶段
应用背景科学计算科学计算、数据管理大规模数据管理
硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘、磁盘阵列
软件背景没有操作系统有文件系统有数据库管理系统
处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理
特点人工管理阶段文件系统阶段数据库系统阶段
数据的管理者用户(程序员)文件系统数据库管理系统
数据面向的对象某一应用程序某一应用现实世界
数据的共享程度无共享,冗余度极大共享性差,冗余度大共享性高,冗余度小
数据的独立性不独立,完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立性
数据的结构化无结构记录内有结构、整体无结构整体结构化,用数据模型描述
数据控制能力应用程序自己控制应用程序自己控制由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

[1]. 人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算。
硬件状况:外村只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备。
软件状况:没有操作系统,没有管理数据的专门软件,数据处理方式是批处理。

特点介绍
数据不保存当时计算机主要用于科学计算,一般不需要将数据长期保存,只是在计算某一课题时将数据输入,用完就撤走。
应用程序管理数据数据需要由应用程序自己设计、说明和管理,没有响应的软件系统负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等。因此程序员负担很重
数据不共享数据是面向应用程序的,一组数据只能对应一个程序。当多个应用程序涉及某些相同的数据时必须各自定义,无法互相利用、互相参照,因此程序之间有大量的冗余数据。
数据不具有独立性数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,数据完全依赖于应用程序,称之为数据缺乏独立性,加重了程序员的负担。

[2]. 文件系统阶段

20世纪40年代后期到60年代后期,硬件方面已有磁盘、磁鼓等直接存取存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上不仅有了批处理,而且能够联机实时处理。

特点介绍
数据可以长期保存由于计算机大量用于数据处理,数据需要长期保留在外存上反复进行查询、修改、插入和删除等操作。
由文件系统管理数据由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“文件名访问,按记录进行存取”的管理技术,提供了对文件进行打开与关闭、对记录读取和写入等存取方式。
缺点介绍
数据共享性差,冗余度大在文件系统中,一个文件基本上对应一个应用程序,即文件仍然是面向应用的。当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度大,浪费存储空间。同时由于相同数据的重复存储、各自管理,容易造成数据的不一致性,给数据的修改和维护带来了困难。
数据独立性差文件系统的文件是为某一特定应用服务的,文件的逻辑结构是针对具体的应用来设计和优化的,因此想要对文件中的数据再增加一些新的应用会很困难。而且当数据的逻辑结构改变时,应用程序中文件结构的定义必须修改,应用程序中对数据的使用也要改变,因此数据依赖于应用于程序,缺乏独立性。可见文件系统仍然是一个不具有弹性的无整体结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内在联系

[3]. 数据库系统阶段

20世纪60年代后期,为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。从文件系统到数据库系统标志着数据管理技术的飞跃。

三、数据库系统的特点

[1]. 数据结构化

数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
在文件系统中,文件中的记录内部具有结构,但是记录的结构和记录之间的联系被固化在程序中,需要由程序员加以维护。这种工作模式既加重了程序员的负担,又不利于结构的变动。
整体结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,数据之间是具有联系的。不仅要考虑某个应用的数据结构还要考虑整个组织的数据结构。
在数据库系统中,记录的结构和记录之间的联系由数据库管理系统维护,从而减轻了程序员的工作量,提高了工作效率。
在数据库系统中,不仅数据是整体结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个或一组数据项、一个记录或一组记录;而在文件系统中,数据的存取单位是记录,粒度不能细到数据项。

[2]. 数据的共享性高、冗余度低且易扩充

数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能避免数据之间的不相容性与不一致性。
所谓数据的不一致性是指同一数据不同副本的值不一样。在数据库中数据共享减少了由于数据冗余造成的不一致现象。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这结构化的数据就使得数据库系统弹性大,已于扩充,可以使用各种用户的要求。可以选取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。

[3]. 数据独立性高

数据独立性是借助数据库管理数据的一个显著优点,包括数据的物理独立性和逻辑独立性
物理独立性:用户的应用程序与数据库中数据的物理存储是相互独立的。用户程序不需要了解数据在数据库中怎样存储是由数据库管理系统管理的,应用程序仅需要处理的只是数据的逻辑结构,这样当数据的物理存储改变时应用程序不用改变。
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变时用户程序也可以不变。
数据与程序的独立把数据的定义从程序中分离出去,加上存取数据的方法又由数据库管理系统负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

[4]. 数据由数据库管理系统统一管理和控制

数据库的共享性将会带来数据库的安全隐患,而数据库的共享是并发的共享。多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据,这又会带来不同用户间相互干扰的隐患,数据库中数据的正确与一致也必须得到保障,所以数据库管理系统需要提供相应的数据控制功能。

功能介绍
数据的安全性保护数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。每个用户只能按规定对某些数据以某些方式进行使用和处理。
数据的完整性检查数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,并保证数据之间满足一定的关系。
并发控制当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
数据库恢复计算机系统的硬件故障、软件故障、操作员的失误以及故意破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。数据库管理系统必须具有将数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复功能。

[5]. 总结

数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又能简化应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。

这篇关于数据库原理与统计笔记-1.1数据系统概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590869

相关文章

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析