数据库系统概论、数据管理的三种方式

news2024/11/25 20:31:20

一、数据库系统概论

数据库系统管理数据的的方式是用数据库来组织和存储数据,利用数据库管理系统,在操作系统的支持下,统一管理和控制存储在磁盘上的数据库,各类用户通过不同的方式,借助于数据库管理系统(DBMS)来管理和访问数据库中的数据,数据库管理系统作为数据库系统的核心,大多遵循三级体系结构,为用户提供数据在不同层次上的抽象视图,在数据库管理系统中,采用三级模式结构,来描述三个级别的数据抽象,并在三级模式之间提供了二级映射机制,来完成各层间数据请求和结果转换,从而提供了数据的逻辑独立性和物理独立性,使得数据独立性成为数据库系统管理数据的显著特点

二、数据管理技术的发展

数据管理的三个阶段

1、人工管理

在20世纪50年代中期以前,计算机主要对数据进行批处理来完成科学计算,对数据的管理由用户在应用程序中,所以称为人工管理,人工管理数据阶段,外部存储器只有磁带、卡片和纸带等,还没有磁盘等直接存取设备,也没有出现操作系统和管理数据的软件,因此人工管理数据具有如下特点:

(1)数据面向应用

数据需要由应用程序自己设计、说明(定义)和管理,程序员在编写程序时自己规定数据的存储结构、存取方法和输入方式等。

(2)数据不保存

程序中的数据随着程序的运行完成,其所占用的内存空间同指令所占用的内存空间一起被释放,程序不能保存,数据更不能单独保存在计算机中

(3)数据不能共享

数据完全面向特定的应用程序,数据的产生和存储依赖于定义和使用数据的程序

多个程序使用相同的数据时,也必须各自定义,重复存储,因为数据不保存

一个程序所使用的数据,并不能为另一个程序所知,因此数据不能共享

 (4)不具有数据独立性

数据独立性是指用户的应用程序其所处理的数据是相互独立的,当数据的逻辑结构或物理结构发生变化时,应用程序保持不变的特性

在人工管理数据阶段,数据面向应用的,当数据的存储结构发生变化时,必须由应用程序做相应的修改,对数据进行重新定义,因此,不具有数据独立性

2、文件系统管理

20世纪50年代末到60年代中期,计算机不仅用于科学计算,还开始大量用于数据管理,这个时期有了磁盘、磁鼓等直接存取设备,计算机所能处理数据的量和速度得到了提高,不仅能进行批处理,还能进行联机实时处理,开始出现了操作系统和高级语言,如DOS操作系统和BASIC语言,对数据的管理由操作系统中的文件系统功能来完成,所以称为文件系统管理

前面我们采用人工管理数据的方式,用C语言编程实现了求十个数据之和和最大值,现在文件系统可以把应用程序所管理的数据组织成数据文件,数据可以以“文件”长期保存在磁盘等外部存储器上,即数据可以脱离应用程序单独存储,可以重复使用

利用按文件名访问、按记录存取的文件管理技术,应用程序可以通过文件系统磁盘上的文件中的数据进行操作,但文件的建立、存取、更新等操作,都要由应用程序来完成,数据需要用应用程序定义和管理

数据管理特点:

(1)由文件系统管理数据

(2)数据可以长期保存

(3)数据是面向应用的

由于利用文件系统,两个程序就可以“按名访问 ”相同的文件

(4)数据共享性

  • 数据具有了一定的共享性
  • 存在数据冗余

但对于在不同文件中存在的相同的数据则不能共享,例如在这三个数据文件中的关联数据只能冗余存储,而冗余存储会带来数据的不一致问题,比如学号相同表示同一个学生,可姓名却不相同,文件系统本身不能解决这个问题

因为数据文件可脱离应用程序单独存储在磁盘上,程序设备之间具有了“设备独立性”,但由于数据仍然是面向应用的,因此数据程序之间 仍缺乏数据独立性

(5)数据独立性

  • 具有设备独立性
  • 不具有数据独立性 

3、数据库系统管理

20世纪60年代后期,计算机管理的数据对象的规模越来越大,应用范围也越来越广泛,数据量急剧膨胀,对数据处理的速度和共享性提出了新的要求,对多种应用、多种语言互相交叉地共享数据集合的要求越来越强烈,这个时期外存有了大容量磁盘、光盘,硬件价格也大幅度下降,相反软件的价格不断上升,编制和维护软件及应用程序的成本相对增加,其中维护的成本更高

数据处理上,联机实时处理要求更高,并开始出现了分布处理,以文件系统进行数据管理已不能适应数据管理的需要

为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库管理技术应运而生,标志性的事件有:

1963年,美国Honeywell公司的IDS系统投入运行,揭开了数据库技术的序幕

1965年,美国一家火箭公司利用该系统帮助设计了阿波罗登月宇航器,推动了数据库技术的产生

1968年,美国IBM公司研发了基于层次模型的数据库系统IMS 

1969年,美国数据库系统语言协会下的数据库任务组提出了基于网状数据模型的的一个系统方案

1970年,美国E.F.Codd发表论文提出了关系数据模型

从此,数据库管理技术进入了蓬勃发展的时期

三、小结

1、计算机管理数据有三个阶段:人工管理、文件系统管理、数据库系统管理

2、人工管理和文件系统管理数据是面向应用的

3、用数据库系统管理管理数据将使应用程序摆脱繁杂的数据管理,实现了数据独立性(应用程序具有数据独立性

 

 

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

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

相关文章

Android简单登录界面布局设计

<ImageView android:id“id/yxlg” android:layout_marginTop“12dp” android:layout_marginLeft“80dp” android:layout_width“30dp” android:layout_height“30dp” android:background“drawable/net” /> <TextView android:paddingTop“5dp” andr…

【面试干货】HashSet 和 TreeSet 的区别

【面试干货】HashSet 和 TreeSet 的区别 1、实现方式HashSetTreeSet 2、性能添加、删除和查找操作的时间复杂度HashSetTreeSet 3、元素唯一性4、迭代顺序HashSetTreeSet 5、使用场景HashSetTreeSet 6、示例代码 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不…

fastapi+vue3+primeflex前后端分离开发项目第一个程序

安装axios axios是用来请求后端接口的。 https://www.axios-http.cn/docs/intro pnpm 是一个前端的包管理工具&#xff0c;当我们需要给前端项目添加新的依赖的时候&#xff0c;就可以使用pnpm install 命令进行安装。 pnpm install axios安装 primeflex primeflex是一个cs…

MySQL之复制(十二)

复制 复制的问题和解决方案 未定义的服务器ID 如果没有在my.cnf里面定义服务器ID,可以通过CHANGE MASTER TO 来设置备库&#xff0c;但却无法启动复制。 mysql>START SLAVE; ERROR 1200(HY000):The server is not configured as slave;fix in config file or with CHANG…

【shell脚本速成】mysql备份脚本

文章目录 案例需求脚本应用场景&#xff1a;解决问题脚本思路实现代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻…

ubuntu链接mysql

C链接mysql 报错 sudo apt-get update sudo apt-get install libmysqlclient-dev 指令编译 g -o mysql_example mysql_example.cpp -I/usr/include/mysql -lmysqlclient g mysql_test.cpp mysql_config --cflags --libs 安装mysql sudo apt updatesudo apt install mysql-…

2024各省自考报名时间汇总❗所需材料❗

天津&#xff1a;5月27日-5月31日&#xff08;已结束&#xff09; 河北&#xff1a;6月10日~6月15日&#xff08;已结束&#xff09; 贵州&#xff1a;6月17日~26日 山东&#xff1a;6月18日~6月24日 江西&#xff1a;6月26日-7月7日&#xff08;6月下旬&#xff09; 浙江&…

pytest测试框架pytest-xdist插件并发执行测试用例

Pytest提供了丰富的插件来扩展其功能&#xff0c;本章介绍下插件pytest-xdist&#xff0c;主要是提供并行测试、分布式测试、循环测试等功能&#xff0c;可以加快测试速度。 pytest-xdist官方显示没有严格的python和pytest版本限制。 pytest-xdist安装 使用pip命令安装: pip…

如何解决代码中if…else-过多的问题,建议收藏

逻辑表达模式固定的 if…else 实现与示例 if (param.equals(value1)) { doAction1(someParams); } else if (param.equals(value2)) { doAction2(someParams); } else if (param.equals(value3)) { doAction3(someParams); } // … 可重构为 Map<?, Function<?>…

电脑有哪些重复文件删除工具?分享四个一键去重软件!

重复文件删除工具有哪些&#xff0c;哪个重复文件删除工具好用&#xff1f;日常工作生活中&#xff0c;如果需要对重复文件进行查找和删除&#xff0c;我们可以借助专业的金舟重复删除工具、czkawka、Wise Duplicate Finder和DiskBoss四种方法解决&#xff0c;具体操作如下&…

2024年6月大众点评成都餐饮店铺POI分析22万家

2024年6月大众点评成都餐饮店铺POI共有221002家 店铺POI点位示例&#xff1a; 店铺id CACuqlcUQApLA7Ki 店铺名称 峨眉山豆腐脑(百吉街店) 十分制服务评分 7.3 十分制环境评分 7.5 十分制划算评分 7.1 人均价格 18 评价数量 38 店铺地址 百吉街86号1层 大类 美食 中类…

MySOL数据库基础

一、数据库简介 1.数据库的特点 存储大量信息&#xff0c;方便检索和访问。保持数据的完整性&#xff0c;一致性&#xff0c;降低数据冗余。应用共享和安全。 2.数据库的基本概念 数据&#xff1a;描述事物的符号记录&#xff0c;包括数字&#xff0c;文字&#xff0c;图形…

问题-小技巧-python-一键装第三方库

有网但是没第三方环境的地方&#xff0c;能快速装上环境 代码&#xff1a; import osprint(开始安装模块...) #os.system(pip install &#xff08;在这敲上你需要装的库&#xff09; -i https://pypi.tuna.tsinghua.edu.cn/simple) os.system(pip install requests -i https…

密码没有未来

无密码认证的好处 引领无密码未来之路万能钥匙 英国通过具体法律打击可预测密码 强密码是抵御网络威胁的第一道防线 如何破解价值百万美元的加密钱包密码 复制此链接到微信打开阅读全部以发布文章 新 GPU 在不到一小时内打开了网络上 59% 的密码。 现代计算机的能力不断增…

024基于SSM+Jsp的超市管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

栈和递归介绍

在计算机科学中&#xff0c;栈&#xff08;Stack&#xff09;是一种常见的数据结构&#xff0c;它遵循后进先出&#xff08;Last In, First Out, LIFO&#xff09;的原则。栈可以用来实现递归&#xff08;Recursion&#xff09;&#xff0c;递归是一种自我调用的方法或函数。 栈…

使用Gradle查看Android项目中库的依赖关系

| | -- com.android.support:support-compat:25.3.1 | | | — com.android.support:support-annotations:25.3.1 | | -- com.android.support:support-media-compat:25.3.1 | | | -- com.android.support:support-annotations:25.3.1 | | | — com.android.support:support…

Flutter ListView详解

文章示例代码 ListView常用构造 ListView 我们可以直接使用ListView 它的实现也是直接返回最简单的列表结构&#xff0c;粗糙没有修饰。 ListView 默认构建 效果 ///默认构建 Widget listViewDefault(List list) { List _list new List(); for (int i 0; i < list.le…

Python17 多进程multiprocessing

1.多进程与多线程的区别 在Python中&#xff0c;多线程&#xff08;multithreading&#xff09;和多进程&#xff08;multiprocessing&#xff09;是两种并行执行任务的方式&#xff0c;它们有一些关键的区别&#xff1a; 进程和线程的基本区别&#xff1a; 进程&#xff1a;进…