数据结构论文
大数据论文3000字范文(精选5篇)

大数据论文3000字范文(精选5篇)第一篇:大数据论文3000字当人们还在津津乐道云计算、物联网等主题时, “大数据”一词已逐渐成为IT网络通信领域热门词汇。
争夺大数据发展先机俨然成为世界各国高度重视的问题, 其中不乏IBM、EMC.甲骨文、微软等在内的巨头厂商的强势介入, 纷纷跑马圈地, 它们投入巨额资金争相抢占该领域的主动权、话语权。
大数据时代的来临, 除了推动现有的信息技术产业的创新, 其对我们生产生活的方式也将产生重大影响。
从个人视角来看, 不管是日常工作中遇到的海量邮件或是从网上获取的社交、购物、娱乐、学习、理财等信息, 还是生活中最常见的手机存储, 大数据已经渗透到我们日常生活的方方面面, 极大地方便了我们的生活;对企业而言, 互联网公司已开始采用大数据来冲击传统行业, 精准营销与大数据驱动的产品快速迭代, 促进企业商业模式创新;在社会公共服务方面, 教育、医疗、交通等行业在大数据的影响下, 出现了各种新的应用, 数据化、社交化的新媒体平台、智能交通与城市数字监管系统, 以及病历存储调用的医疗云等, 此外, 政府还可以通过大数据来高效完成信息采集, 这样可优化升级管理运营。
然而大数据在给我们展示前所未有的发展机遇的同时, 也给国家信息安全、信息技术、人才等方面带来了很大的挑战。
不久前, 斯诺登披露了美国国家安全局(NSA)一直进行信息监视活动、已收集数以百万计的全球人的信息数据的消息, 在全球范围内掀起轩然大波。
该事件对“大数据”的信息安全敲响了警钟。
大数据让大规模生产、分享和应用数据成为可能, 将信息存储和管理集中化, 我们在百度上面的记录, 无意识阅读的产品广告、旅游信息, 习惯去哪个商场进行采购等这些痕迹, 却不知所有的关系和活动在数据化之后都被一些组织或商家公司掌控, 这也使得我们一方面享受了“大数据”带来的诸多便利, 但另一方面无处不在的“第三只眼”却在时刻监控着我们的行动。
数据结构与算法分析论文(递归的讨论)

数据结构论文——递归算法的讨论所谓递归算法是把问题转化为规模缩小了的同类问题的子问题。
然后递归调用函数(或过程)来表示问题的解。
一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)。
递归过程一般通过函数或子过程来实现。
递归方法:在函数或子过程的内部,直接或者间接地调用自己的算法。
递归算法是一种直接或者间接地调用自身算法的过程。
在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。
递归算法解决问题的特点:(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。
递归次数过多容易造成栈溢出等。
所以一般不提倡用递归算法设计程序。
下面就让我们结合例子详细讨论一下递归算法。
一、递归算法的原理递归算法简单的说就是在函数中调用函数自身,不断调用,直到满足函数得出计算结果(某个条件)。
因为其需要不断循环的调用自身,所以称为递归调用。
递归的原理,其实就是一个栈(stack), 比如求5的阶乘,要知道5的阶乘,就要知道4的阶乘,4又要是到3的,以此类推,所以递归式就先把5的阶乘表示入栈, 在把4的入栈,直到最后一个,之后呢在从1开始出栈, 看起来很麻烦,确实很麻烦,他的好处就是写起代码来,十分的快,而且代码简洁,其他就没什么好处了,运行效率出奇的慢。
还有一个十分形象的例子:从前有座山,山里有个庙,庙里有个老和尚正在讲故事:从前有座山,山里有个庙,庙里有个老和尚正在讲故事:从前有座山,山里有个庙,庙里有个老和尚正在讲故事……如此循环往复到最终的要求。
递归分为2种,直接递归和间接递归。
直接递归,比如方法A内部调用方法A自身。
间接递归,比如方法A内部调用方法B,方法B内部调用方法C,方法C 内部调用方法A。
数据结构学习方法论文

探讨数据结构的学习方法数据结构在计算机科学中是一门综合性的专业基础课。
数据结构是介于数学、计算机硬件和计算机软件三者之间的一门课程。
数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译原理、软件工程、人工智能、操作系统、数据库管理系统、数据库系统及其他系统程序的重要基础课,是一门十分重要的核心课程。
学习数据结构目的是使学生能够根据实际问题的需要选择合适的数据结构和算法,提高编写应用软件的能力。
打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程都是十分有益的。
数据结构是数据存在的形式。
要熟悉数据结构的逻辑结构和存储结构。
理解数据结构主要是用来存储数据和对数据进行操作。
存储则要弄清楚数据之间的结构,操作主要是用来对有用数据进行插入,无用数据进行删除等;数据结构有逻辑上的数据结构和物理上的数据结构之分。
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。
对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,一个数据结构必须同时讨论在该类数据上执行的运算才有意义。
数据的存储结构是数据结构的实现形式,是其在计算机内的表示;而物理上的数据结构反映成分数据在计算机内部的存储安排。
理解顺序表的概念、生成算法,对简单顺序查找和二分查找,对分块查找做到理解掌握;排序问题中,由于冒泡排序在c语言课上已经学习过,再来学习应感觉很轻松。
对插入排序和选择排序理解不会很难,但是,并归排序学习起来都较吃力,需要花较多的时间来补习。
此外串的模式匹配也是较难理解的一个地方。
链表,除对双向循环链表这一知识点理解较困难之外,其他的知识点像单链表的建立和基本算法等都应较熟悉。
接下来的有关堆栈以及队列的知识点较少,栈是一种后进后出机制,它只允许访问访问一个数据项,即栈顶(最后插入的数据项)。
它有主要的三种操作:push,向栈内压入值;pop,弹出栈顶的值,即返回栈顶的值,并把它从栈内删除;peek,只返回但不删除栈顶。
数据结构论文

数据结构论文题目:数据结构院(部)名称:学生姓名:专业:指导教师姓名:论文提交时间:学位授予时间:论文题目:数据结构前言数据结构与算法这门课程中,基础性实验设计十分重要。
虽然有许许多多的关于数据结构与算法的书籍,但这些书籍基本上都是着重理论讲解,很少对课程中所涉及的实验进行单独的研究与开发。
而本论文通过单独及全面的强化课程的核心实验研究,进一步利用C语言进行编程和调试程序,能够利用C语言编写较复杂的程序,加深对教学内容的理解,验证所学的算法和数据结构,培养了设计数据结构的能力和根据数据结构设计算法的能力,掌握了非数值问题的数据结构和算法的设计方法,通过对具体问题的分析、设计和实现,培养了软件开发所需要的实践能力。
什么是数据结构;《数据结构》作为计算机专业的一门专业基础课,其主要内容包括将现实世界转化为在计算机世界中的抽象的数据描述,数据在计算机中的组织以及不同数据类型的基本操作实现等,是相对比较难于理解和掌握的课程。
它不仅要有计算机方面的高级语言、计算机基础和计算机组成原理等软硬件基础知识,还需要有一定的如离散数学等数学理论。
这门课程也是联系一般基础课和专业课的“桥梁”,它既是程序设计的入门课程,也是诸如操作系统、编译原理、计算机网络以及数据库原理等后续课程的重要的基础课程,它不仅是构筑这些课程体系与知识结构的核心课程之一,同时对奠定学生计算机专业的基础具有重要意义从多年对计算机专业的学生跟踪情况看,数据结构课程掌握的程度与学生对学习后续课程的积极性密切相关,甚至影响到对整个专业知识的掌握。
对毕业学生工作情况的跟踪调查看,工作中的程序设计能力也需要有数据结构的相关知识。
一般来说,具有较好数据结构基础知识的学生,在工作过程中适应工作变动、开辟新的研究阵地的能力较强。
从而能较好地紧跟信息技术的高速发展。
在计算机当中数据结构是计算机的基础但是也是很重要的一门专业课,学好并了解其中的知识对今后的社会和经济发展起到很好的促进作用。
数据结构与算法论文

课 程 学 习 总 结
班级
学号
姓名
考核成绩
一、学习内容总结(按章节进行)
第一章:数据结构和算法
本章主要是对数据、数据类型、数据结构、算法及算法分析等基本概念的掌握,而如何合理地组织数据、高效地处理数据正是扩大计算机领域、提高软件效率的关键,所以对这些概念的理解就显得十分重要。
数据是指描述客观事物的数值、字符、相关符号等所有能够输入到计算机中并能被计算机程序处理的符号的总称,其基本单位是数据元素,而数据类型是一个同类值的集合和定义在这个值集上的一组操作的总称。在高级程序语言中定义一种数据类型时,编译程序编译系统就能获得如下信息:(1)、一组性质相同的值的集合;(2)、一个预订的存储体系;(3)、定义在这个值集合上的一组集合。数据结构是指数据元素之间的关系,它包括数据的逻辑结构、存储结构、一组运算集合;数据的逻辑结构(即数据结构)分为线性结构和非线性结构,数据的存储方法有:顺序存储方法、连接存储方法、索引存储方法和散列存储方法。接下来便是关于算法的有关概念,算法是为解决一个特定问题而采取的确定的有限步骤集合,它具有有穷性、确定性、可行性、输入和输出。关于算法的性能分析,分为时间性能分析和空间性能分析,在这里要记得常见的时间复杂度的比较:O(1)< O(log n)< O(n)< O(nlog n)<(n )< O(n )< O(n )< O(2 )。
数据结构论文

级课程(设计)论文题目阿克曼函数专业班级学号学生姓名指导教师指导教师职称学院名称完成日期:年月日武汉工程大学本科课程设计(论文)目录目录 (I)摘要 (II)前言 (II)第1章绪论 (1)1.1课题背景 (1)1.2课题意义 (1)1.3文献综述 (1)第2章课题的具体分析及程序的实现 (1)2.1 课题分析 (1)2.2 递归算法 (3)2.2.1 递归 (3)2.2.2 递归算法程序的设计 (3)2.2.3 实验结果 (3)2.3 利用栈的非递归算法 (9)2.3.1 栈 (9)2.3.2 主要成员函数的设计 (9)2.3.3利用栈的非递归算法程序的设计 (88)2.3.4实验结果 (99)2.4算法的复杂性分析 (10)2.5存在的问题及改进 (10)第3章总结 (11)致谢 (11)参考文献 (11)附录 (15)武汉工程大学本科课程设计(论文)摘要“数据结构”是计算机程序设计的重要理论技术基础,它是计算机学科的核心课程。
用数据结构中的知识、算法、思想解决一些实际问题可使得一些问题变得一目了然,易懂。
本课程设计的目的是通过C++语言平台实现阿克曼函数问题的算法设计,采用递归调用和以栈作为存储的非递归调用的方法解决,使抽象的数学问题程序化,并一目了然,更便于理解。
关键词:数据结构,阿克曼函数,递归,非递归武汉工程大学本科课程设计(论文)前言本文解决了递归和非递归方法实现阿克曼函数的问题,同时在非递归调用时利用了栈作为元素的存储空间。
全文共3章,详细的介绍了对本课题的算法设计过程及类容。
第1章介绍了课题背景和课题的意义。
在本章中,还给出了我们查阅并借用的一些参考文献的主要内容。
第2章主要介绍了课题的分析与算法的设计,对存在的问题作了简要分析并予以改进以及算法的复杂性的分析。
第3章是本次课程设计的总结。
全文的最后是致谢、参考文献和对程序优化处理的源代码。
高金金2011-1-6于武汉工程大学理学院武汉工程大学本科课程设计(论文)第1章 课题背景1.1课题背景阿克曼函数是数学中的经典问题,是非原始递归函数的例子。
数据结构论文--关于线性表的链式结构

数据结构课程小论文题目:线性表的链式表示学号:090510126姓名:叶妍莉班级:090510学院:经济管理学院2011年12月8日一.引言: --------------------------------------------------------------------- 2 - 二.链表的概述 --------------------------------------------------------------- 2 -1.线性链表里的一些概念: ------------------------------------------ 3 -2.链表的有关概述: --------------------------------------------------- 3 -3.链表的存储方法: --------------------------------------------------- 4 -4.链表的分类: --------------------------------------------------------- 4 - 三.线性表的链式实现 ------------------------------------------------------ 4 -1.“插入”和“删除”操作的实现: ------------------------------ 5 -2.“合并链表”操作的实现: --------------------------------------- 6 - 四.链表的优点与缺点 ------------------------------------------------------ 6 - 五.总结 ------------------------------------------------------------------------ 7 -线性表的链式表示姓名:叶妍莉班级:090510 学号:090510126摘要:线性表对于学过数据结构的人来说都是再熟悉不过了,它是数据结构的一个基本内容,是最常用且最简单的一种数据结构。
大学计算机数据结构与算法设计期末结课论文

大学计算机数据结构与算法设计期末结课论文随着信息时代的到来,计算机科学领域的发展日新月异。
计算机数据结构与算法设计作为计算机科学的核心领域之一,扮演着重要的角色。
本文将探讨大学计算机数据结构与算法设计的相关内容,深入研究其重要性以及在计算机科学中的应用。
## 一、引言计算机数据结构与算法设计是计算机科学课程中的基石。
数据结构是一种组织和存储数据的方式,而算法则是解决问题的方法。
这两者共同构成了计算机程序的基础。
在大学计算机科学的课程中,数据结构与算法设计通常是一门重要的必修课程,学生必须深入理解和掌握这些概念。
## 二、数据结构### 2.1 数组数组是一种基本的数据结构,它将数据存储在连续的内存位置中。
数组的访问速度很快,但插入和删除元素的操作可能比较慢。
了解如何正确使用数组是计算机科学学生的必备知识。
### 2.2 链表链表是一种动态数据结构,它由节点组成,每个节点都包含了数据和指向下一个节点的指针。
链表的插入和删除操作非常高效,但访问元素需要遍历链表。
学习链表的设计和操作是数据结构课程的重要一部分。
### 2.3 栈和队列栈和队列是两种常见的数据结构,用于管理数据的存储和访问。
栈采用后进先出(LIFO)的原则,而队列采用先进先出(FIFO)的原则。
它们在许多实际应用中都有广泛的应用,如操作系统的进程管理和图形算法。
## 三、算法设计### 3.1 排序算法排序算法是计算机科学中的经典问题之一。
它们用于按照特定的顺序排列数据。
常见的排序算法包括冒泡排序、快速排序和归并排序。
了解不同排序算法的性能和适用场景对于优化程序至关重要。
### 3.2 查找算法查找算法用于在数据集中查找特定元素。
二分查找、线性查找和哈希查找是常见的查找算法。
这些算法在数据库管理系统和搜索引擎中有广泛的应用。
### 3.3 图算法图算法用于解决与图相关的问题,如最短路径、最小生成树和网络流。
它们在社交网络分析、地理信息系统和交通规划等领域发挥着关键作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据管理技术探讨1404091051软工一班范克强摘要:随着计算机技术的发展,特别是在计算机软件.硬件与网络技术发展的前提下,人们的数据处理要求不断提高,在此情况下,数据管理技术也不断改进。
数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它成为计算机信息系统与应用系统的核心技术和重要基础。
关键字:人工管理、文件系统、数据库系统。
数据管理的水平是和计算机硬件、软件的发展相适应的,是随着计算机技术的发展人们的数据管理技术经历了三个阶段的发展:人工管理阶段;文件系统阶段;数据库系统阶段。
1.人工管理阶段:20世纪50年代中期以前,计算机主要用于科学计算。
硬件方面,计算机的外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备,存储量非常小;软件方面,没有操作系统,没有高级语言,数据处理的方式是批处理,也即机器一次处理一批数据,直到运算完成为止,然后才能进行另外一批数据的处理,中间不能被打断,原因是此时的外存如磁带、卡片等只能顺序输入。
人工管理阶段的数据具有以下的几个特点。
(1)数据不保存。
由于当时计算机主要用于科学计算,数据保存上并不做特别要求,只是在计算某一个课题时将数据输入,用完就退出,对数据不作保存,有时对系统软件也是这样。
(2)数据不具有独立。
数据是作为输入程序的组成部分,即程序和数据是一个不可分隔的整体,数据和程序同时提供给计算机运算使用。
对数据进行管理,就像现在的操作系统可以以目录、文件的形式管理数据。
程序员不仅要知道数据的逻辑结构,也要规定数据的物理结构,程序员对存储结构,存取方法及输入输出的格式有绝对的控制权,要修改数据必须修改程序。
要对100组数据进行同样的运算,就要给计算机输入100个独立的程序,因为数据无法独立存在。
(3)数据不共享。
数据是面向应用的,一组数据对应一个程序。
不同应用的数据之间是相互独立、彼此无关的,即使两个不同应用涉及到相同的数据,也必须各自定义,无法相互利用,互相参照。
数据不但高度冗余,而且不能共享。
(4)由应用程序管理数据:数据没有专门的软件进行管理,需要应用程序自己进行管理,应用程序中要规定数据的逻辑结构和设计物理结构(包括存储结构、存取方法、输入\输出方式等)。
因此程序员负担很重。
综上所说,所以有人也称这一数据管理阶段为无管理阶段。
2.文件系统阶段:20世纪50年代后期到60年代中期,数据管理发展到文件系统阶段。
此时的计算机不仅用于科学计算,还大量用于管理。
外存储器有了磁盘等直接存取的存储设备。
在软件方面,操作系统中已有了专门的管理数据软件,称为文件系统。
从处理方式上讲,不仅有了文件批处理,而且能够联机实时处理,联机实时处理是指在需要的时候随时从存储设备中查询、修改或更新,因为操作系统的文件管理功能提供了这种可能。
这一时期的特点是:(1)数据长期保留。
数据可以长期保留在外存上反复处理,即可以经常有查询、修改和删除等操作。
所以计算机大量用于数据处理。
(2)数据的独立性。
由于有了操作系统,利用文件系统进行专门的数据管理,使得程序员可以集中精力在算法设计上,而不必过多地考虑细节。
比如要保存数据时,只需给出保存指令,而不必所有的程序员都还要精心设计一套程序,控制计算机物理地实现保存数据。
在读取数据时,只要给出文件名,而不必知道文件的具体的存放地址。
文件的逻辑结构和物理存储结构由系统进行转换,程序与数据有了一定的独立性。
数据的改变不一定要引起程序的改变。
保存的文件中有100条记录,使用某一个查询程序。
当文件中有1000条记录时,仍然使用保留的这一个查询程序。
(3)可以实时处理。
由于有了直接存取设备,也有了索引文件、链接存取文件、直接存取文件等,所以既可以采用顺序批处理,也可以采用实时处理方式。
数据的存取以记录为基本单位。
上述各点都比第一阶段有了很大的改进。
但这种方法仍有很多缺点,主要是:(1)数据共享性差,冗余度大。
当不同的应用程序所需的数据有部分相同时,仍需建立各自的独立数据文件,而不能共享相同的数据。
因此,数据冗余大,空间浪费严重。
并且相同的数据重复存放,各自管理,当相同部分的数据需要修改时比较麻烦,稍有不慎,就造成数据的不一致。
比如,学籍管理需要建立包括学生的姓名、班级、学号等数据的文件。
这种逻辑结构和学生成绩管理所需的数据结构是不同的。
在学生成绩管理系统中,进行学生成绩排列和统计,程序需要建立自己的文件,除了特有的语文成绩、数学成绩、平均成绩等数据外,还要有姓名、班级等与学籍管理系统的数据文件相同的数据。
数据冗余是显而易见的,此外当有学生转学走或转来时,两个文件都要修改。
否则,就会出现有某个学生的成绩,却没有该学生的学籍的情况,反之亦然。
如果系统庞大,则会牵一发而动全身,一个微小的变动引起一连串的变动,利用计算机管理的规模越大,问题就越多。
常常发生实际情况是这样,而从计算机中得到的信息却是另一回事的事件。
(2)数据和程序缺乏足够的独立性。
文件中的数据是面向特定的应用的,文件之间是孤立的。
不能反映现实世界事物之间的内在联系。
在上面的学籍文件与成绩文件之间没有任何的联系,计算机无法知道两个文件中的哪两条记录是针对同一个人的。
要对系统进行功能的改变是很困难的。
如在上面的例于中,要将学籍管理和成绩管理从两个应用合并成一个应用中,则需要修改原来的某一个数据文件的结构,增加新的字段,还需要修改程序,后果就是浪费时间和重复工作。
此外,应用程序所用的高级语言的改变,也将影响到文件的数据结构。
比如BASIC 语言生成的文件,COBOL语言就无法如同是自己的语言生成的文件一样顺利地使用。
总之数据和程序之间缺乏足够的独立性是文件系统的一个大问题。
文件管理系统在数据量相当庞大的情况下,已经不能满足需要。
美国在60年代进行阿波罗计划的研究。
阿波罗飞船由约200万个零部件组成。
分散在世界各地制造。
为了掌握计划进度及协调工程进展,阿波罗计划的主要合约者罗克威尔(Rockwell)公司曾研制了一个计算机零件管理系统。
系统共用了18盘磁带,虽然可以工作,但效率极低,维护困难。
18盘磁带中60%是冗余数据。
这个系统一度成为实现阿波罗计划的严重障碍。
应用的需要推动了技术的发展。
文件管理系统面对大量数据时的困境促使人们去研究新的数据管理技术,数据库技术应运而生了!例如,最早的数据库管理系统之一IMS就是上述的罗克威尔公司在实现阿波罗计划中与IBM公司合作开发的,从而保证了阿波罗飞船1969年顺利登月。
3.数据库系统阶段从20世纪60年代后期开始,数据管理进入数据库系统阶段。
这一时期用计算机管理的规模日益庞大,应用越来越广泛,数据量急剧增长,数据要求共享的呼声越来越强。
这种共享的含义是多种应用、多种语言互相覆盖地共享数据集合。
此时的计算机有了大容量磁盘,计算能力也非常强。
硬件价格下降,编制软件和维护软件的费用相对在增加。
联机实时处理的要求更多,并开始提出和考虑并行处理。
在这样的背景下,数据管理技术进入数据库系统阶段。
现实世界是复杂的,反映现实世界的各类数据之间必然存在错综复杂的联系。
为反映这种复杂的数据结构,让数据资源能为多种应用需要服务,并为多个用户所共享,同时为让用户能更方便地使用这些数据资源,在计算机科学中,逐渐形成了数据库技术这一独立分支。
计算机中的数据及数据的管理统一由数据库系统来完成。
数据库系统的目标是解决数据冗余问题,实现数据独立性,实现数据共享并解决由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。
为实现这一目标,数据库的运行必须有一个软件系统来控制,这个系统软件称为数据库管理系统(Database Management System,DBMS)。
数据库管理系统将程序员进一步解脱出来,就像当初操作系统将程序员从直接控制物理读写中解脱出来一样。
程序员此时不需要再考虑数据中的数据是不是因为改动而造成不一致,也不用担心由于应用功能的扩充,而导致程序重写,数据结构重新变动。
在这一阶段,数据管理具有下面的优点:(1)数据结构化:数据结构化石数据库系统与文件系统的根本区别。
在文件系统中,相互独立的文件的记录内部是有结构的,传统文件的最简单形式是等长同格式的记录集合。
这样就可以节省许多储存空间.数据的结构化是数据库主要特征之一。
这是数据库与文件系统的根本区别。
至于这种结构化是如何实现的,则与数据库系统采用的数据模型有关,后面会有较详细的描述。
(2)数据共享性高,冗余度小,易扩充。
数据库从整体的观点来看待和描述数据,数据不再是面向某一应用,而是面向整个系统。
这样就减小了数据的冗余,节约存储空间,缩短存取时间,避免数据之间的不相容和不一致。
对数据库的应用可以很灵活,面向不同的应用,存取相应的数据库的子集。
当应用需求改变或增加时,只要重新选择数据子集或者加上一部分数据,便可以满足更多更新的要求,也就是保证了系统的易扩充性。
(3)数据独立性高。
数据库提供数据的存储结构与逻辑结构之间的映像或转换功能,使得当数据的物理存储结构改变时,数据的逻辑结构可以不变,从而程序也不用改变。
这就是数据与程序的物理独立性。
也就是说,程序面向逻辑数据结构,不去考虑物理的数据存放形式。
数据库可以保证数据的物理改变不引起逻辑结构的改变。
数据库还提供了数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映像或转换功能。
当总体的逻辑结构改变时,局部逻辑结构可以通过这种映像的转换保持不变,从而程序也不用改变。
这就是数据与程序的逻辑独立性。
举例来讲,在进行学生成绩管理时,姓名等数据来自于数据的学籍部分,成绩来自于数据的成绩部分,经过映像组成局部的学生成绩,由数据库维持这种映像。
当总体的逻辑结构改变时,比如学籍和成绩数据的结构发生了变化,数据库为这种改变建立一种新的映像,就可以保证局部数据——学生数据的逻辑结构不变,程序是面向这个局部数据的,所以程序就无需改变。
(4)统一的数据管理和控制功能,包括数据的安全性控制、数据的完整性控制及并发控制、数据库恢复。
数据库是多用户共享的数据资源。
对数据库的使用经常是并发的。
为保证数据的安全可靠和正确有效,数据库管理系统必须提供一定的功能来保证。
数据库的安全性是指防治非法用户的非法使用数据库而提供的保护。
比如,不是学校的成员不允许使用学生管理系统,学生允许读取成绩但不允许修改成绩等。
数据的完整性是指数据的正确性和兼容性。
数据库管理系统必须保证数据库的数据满足规定的约束条件,常见的有对数据值的约束条件。
比如在建立上面的例子中的数据库时,数据库管理系统必须保证输入的成绩值大于0,否则,系统发出警告。
数据的并发控制是多用户共享数据库必须解决的问题。
要说明并发操作对数据的影响,必须首先明确,数据库是保存在外存中的数据资源,而用户对数据库的操作是先读入内存操作,修改数据时,是在内存在修改读入的数据复本,然后再将这个复本写回到储存的数据库中,实现物理的改变。