数据库是什么意思

数据库是什么意思,第1张

数据

data base

为满足某一部门中多个用户多种应用的需要,按照一定的数据模型在计算机系统中组织、存储和使用的互相联系的数据集合。

带有数据库的计算机系统,除具备一般的硬件、软件外,必须有用以存储大量数据的直接存取存储设备、管理并控制数据库的软件——数据库管理系统(DBMS)、管理数据库的人员——数据库管理员 (DBA)。这样的数据、硬件、软件和管理人员的总体构成数据库系统。数据库仅是数据库系统的一个组成部分。

数据库系统的功能和特征 数据库系统由文卷系统发展而来。与文卷系统相比,这种系统具有数据、体系和控制三个方面的主要特征。

数据特征 在文卷系统中虽然程序与数据之间可用存取方法进行转换,但文卷还是与应用程序对应的,即数据仍面向应用。每一应用各自建立自己的一组文卷。不同的应用若涉及相同的数据,则这些数据分别纳入各自的文卷之中。文卷的各种记录之间没有建立联系,因而数据冗余度大。增加新的应用,必须同时增加新的文卷。因此,文卷系统中的文卷是无结构的、不易扩充的信息集合。数据库则不仅描述数据本身,而且描述数据之间的联系。它的数据结构反映了某一部门的整体信息结构,数据冗余度小、易于扩充新的应用,因而是面向数据总体结构的信息集合,可为多个用户共享。

体系特征 一切数据都有逻辑和物理两个侧面。在数据库系统中,数据逻辑结构的描述称为逻辑模式。逻辑模式又分为描述全局逻辑结构的全局模式(简称模式)和描述某些应用所涉及的局部逻辑结构的子模式。数据物理结构的描述称为存储模式。这两种模式总称为数据库模式。

数据库系统中,用户根据子模式编制程序。子模式与模式模式与存储模式之间有软件进行映射。因此,程序与数据之间具有两级独立性:物理独立性和逻辑独立性。数据的存储模式改变,而模式可以不改变,因而不必改写应用程序,这称为物理独立性。模式改变时,子模式可能不改变,也就不必改写应用程序,这称为逻辑独立性。由于数据库系统具备比较高的程序与数据的独立性,可以使程序员在编制应用程序时集中精力考虑算法逻辑,不必过问物理细节,而且可以大大减少应用程序维护的工作量。

控制特征 数据库数据数量庞大,结构复杂,又为多个用户所共享。因此,必须由数据库管理系统在定义、建立、运行以及维护时进行统一管理和控制,以保证数据库数据的安全性、完整性和并发 *** 作的一致性。此外,还必须有数据库管理员专门负责对数据库的管理、控制监督和改进。

由于数据库系统具有上述特征,它的出现使信息系统的研制从围绕加工数据的程序为中心,转变到围绕共享的数据库来进行。这便于数据的集中管理,有利于应用程序的研制和维护。数据减少了冗余度和提高了相容性,从而提高了作出决策的相容性。因此,大型复杂的信息系统大多以数据库为核心,数据库系统在计算机应用中起着越来越重要的作用。

研究课题 数据库研究的课题,主要涉及三个领域。

数据库管理系统软件的研制 DBMS是数据库系统的基础。研制DBMS的基本目标,是扩大功能,提高性能和可用性,从而提高用户的生产率。70年代以来,研制的重点是探索关系数据库管理系统的设计,内容包括关系数据语言、查询优化、并发控制和系统性能等。另一类课题是对DBMS标准化的研究,即研究一个统一的DBMS体系结构的规范。

数据库设计 这是在计算机系统具有的数据库管理系统的基础上,按照应用要求以及计算机系统所提供的数据模型和功能,设计一个结构良好、使用方便、效率较高的,以数据库为核心的应用信息系统。这一领域主要的研究课题,是数据库设计方法学和设计工具的探索。例如,运用软件工程的方法和工具指导数据库设计;研究数据库设计各个阶段中完备的方法和工具;以关系数据库的规范化理论为指南进行数据库逻辑设计等。

数据库理论 主要研究关系数据库理论。关系数据库理论研究的意义,一方面在于它为数据库学科奠定了理论基础;另一方面它为数据库设计提供了判别标准,从而成为数据库设计的有力指南。研究的主要内容是关系的规范化理论。关系规范化理论已应用于数据库设计的各个阶段。

发展 数据库技术是计算机科学中发展最快的领域之一,新的领域越来越多。

分布式数据库系统 随着70年代后期分布计算机系统的发展,相应地研究成功分布式数据库系统。分布式数据库系统是一个在逻辑上完整,而在物理上分散在若干台互相连接的结点机上的数据库系统。它既具有分布性又具有数据库的综合性。这是数据库系统发展的一个重要方向。分布式数据库系统结构复杂,其中最复杂的是分布式数据库管理系统。

数据库机器 新的计算机系统的体系结构。它把由中央处理器包办的数据库 *** 作分散给一些局部的部件来执行,或转移到一个与主计算机相连的专用计算机去执行,以提高并行性。数据库机器的发展,包括智能控制器和存储器,专用处理机和数据库计算机。

数据库语义模型 数据库的数据模型基本上属于语法模型,语义体现很不完备,不能明显地含有现实世界的意义。因此,用户只能按照DBMS所提供的数据 *** 纵语言访问数据库。语义模型能准确地描述现实世界中某个部门的信息集合及其意义,使用户能基于对现实世界的认识或用类似于自然语言的形式来访问数据库。这方面的研究已发展为数据语义学。

数据库智能检索 数据库技术和人工智能相结合,根据数据库中的事实和知识进行推理,演绎出正确答案,这就是数据库的智能检索。这涉及到自然语言用户接口、逻辑演绎功能和数据库语义模型等问题,如70年代末所开始的知识库管理系统和演绎数据库的研究。

办公室自动化系统中的数据库 研究在办公室自动化系统中数据库技术的应用,其中主要研究对各种非格式化数据如图像、声音、正文的处理,以及面向端点用户的高级语言接口。

数据库系统

database systems

由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。

数据库系统一般由4个部分组成:①数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。②数据库管理系统(DBMS)。它是一组能完成描述、管理、维护数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的 *** 作。③数据库管理员(DBA)。④用户和应用程序。对数据库系统的基本要求是:①能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。②冗余数据少,数据共享程度高。③系统的用户接口简单,用户容易掌握,使用方便。④能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。⑤有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户 *** 作特性的变化,改善由于频繁插入、删除 *** 作造成的数据组织零乱和时空性能变坏的状况。⑥具有可修改性和可扩充性。⑦能够充分描述数据间的内在联系。

数据库计算机

database computer

实现数据库的存储、管理和控制的一种专用计算机系统。它能十分快速而有效地完成各种数据库 *** 作,并能适应大型数据库的管理。

由于微处理机技术和简约指令集计算机(RISC)技术的飞速发展,使高档微机和各种工作站(见计算机工作站)的价格越来越低,而处理能力和存储容量却越来越高。可以说,通用处理机在这方面的发展在较大程度上降低了人们对数据库机的进一步研究的积极性,使得数据库机的发展在一定程度上处于停顿状态。面对这种严峻形势,它的进一步发展必须解决成本太高和使用太专等问题,以争得用户。数据库机的未来发展概括起来大概有以下几方面:①充分利用大规模集成电路技术、并行处理和其他先进硬件技术,提高数据库机的性能/价格比。②研究新的数据库机体系结构和相应的并行 *** 作算法和软件,提高整机系统的性能,使它能适应一些特殊应用中对海量数据库进行管理的需求。③将它与人工智能技术结合,做出有一定智能的数据库机,使这种机器不但能对数据进行管理和控制,而且能支持对知识的加工和运用,从而在知识处理领域发挥作用。④充分利用分布数据库技术,发展面向通用硬件和软件的能在网络环境下使用的数据库机,提高数据库机的通用性。

计算机科学与技术学习反思录

计算机理论的一个核心问题--从数学谈起:

记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。

其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。

我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。

我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看菲赫金哥尔茨的“微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》也是很好的教材。

中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。

正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。

概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。

计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应用结合得不太紧。

每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。

古典集合论,北师大出过一本《基础集合论》不错。

数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。

学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introduction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。

据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好。搞定这本书,也标志着图论入了门。 外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少是“紧跟时代的理论知识”。

组合感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典“具体数学”吧,西安电子科技大学出版社有翻译版。

抽象代数,国内经典为莫宗坚先生的“代数学”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的:这本“Introduction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。

数论方面,国内有经典而且以困难著称的”初等数论“(潘氏兄弟著,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introduction to Algorithmic Number Theory"。

计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等著的"Introduction to Algorithms"为最优。对入门而言,这一本已经足够,不需要再参考其它书。

再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫“宫室之美,百官之富”!

计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门。

最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。

随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。

离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科 :

1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。

2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是

算法,而大量的算法建立在图和组合的基础上。

3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。

但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。DEKnuth(他有多伟大,我想不用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:

首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,都是有用的数学!

理论与实际的结合--计算机科学研究的范畴

前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一些例子。

由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。

现代密码学至少包含以下层次的内容:

第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?

第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。

第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。

第四,密码学的新应用。例如,数字现金,叛徒追踪等。

在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果例如,死锁没有实用的方法能完美地对付。例如, *** 作系统研究过就自己去举吧!

如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。

我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了,8年,应该差不多了

这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用 *** 作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学者,才比较透彻的了解了什么是计算机科学。

一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。关于第一程序设计语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。

汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM-PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。

模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的“电路原理”,也许此后再看模拟电路底气会足些。教材:康华光的“电子技术基础”(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。

数字电路比模拟电路要好懂得多。清华大学阎石的书算一本好教材,遗憾的一点是集成电路讲少了些。真有兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。

计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的"Computer Organization and Architecture:Designing for Performance"(清华影印

本)。国际上最流行的则是“Computer architecture: aquantitative approach", by Patterson & Hennessy。

*** 作系统可以随便选用《 *** 作系统的内核设计与实现》和《现代 *** 作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领域属于Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《 *** 作系统》吧,高教司司长张尧学写的,我们教材用的是那本。 另外推荐一本《Windows *** 作系统原理》机械工业出版社的,这本书是我国 *** 作系统专家在微软零距离考察半年,写作历时一年多写成的,教 *** 作系统的专家除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述 *** 作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍,

如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。

推荐教材:Kenneth CLouden写的“Compiler Construction Principles and Practice”即是《编译原理及实践》(机械工业出版社的译本)

学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程--理工结合,互相渗透。另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。推荐教材:Abraham Silberschatz等著的 "Database System Concepts"作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。

计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多读RFC,里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。

数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:

当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:

1 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上如果不是,则要自己设计数据结构。

2 问题所要求编写的算法属于以下哪种类型(建立数据结构,修改数据结构,遍历,查找,排序)

3 分析问题所要求编写的算法的数学性质是否具备递归特征(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成)

4 继续分析问题的数学本质根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性如果题目对算法有时空方面的要求,证明你的设想满足其要求一般的,时间效率和空间效率难以兼得有时必须通过建立辅助存储的方法来节省时间

5 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路或者说,你已经可以用自然语言把你的算法简单描述出来继续验证其正确性,努力发现其中的错误并找出解决办法在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思

6 确认你的思路可行以后,开始编写程序在编写代码的过程中,尽可能把各种问题考虑得详细,周密程序应该具有良好的结构,并且在关键的地方配有注释

7 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题

8 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。

9 撰写思路分析,注释

对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了)要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。

关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模

事物最根本的是保持理性的唯物主义,分析它的可能作用与历史构成,然后分析它的社会人文意义,分析它在人类社会中的作用,再调查其他一般文化水平的人对它的认知如何,根据心理学进行判断,然后做出自己的观点,安排自己的行为与认知的合理性可行性与灵活可变性,这就是基本的高层次认知了,如果你想更进一步,请结合你能连续到的所有因素,各种变量与定量,宏观与微观,物质与精神,科学与伦理,法律要求与大众认知,等等,综合起来分析,当你全面分析并不断深入时,你会发现你的认知已经极高了,对于非伟人,这已经可以了

以上就是关于数据库是什么意思全部的内容,包括:数据库是什么意思、推荐一本数据库原理的好书。中文的,如果是翻译的,要公认翻译的不错的。、如何建立高层次认知体系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9716186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存