如图将一个,怎么将4.000右边的8.207调成正常的

VC++ 以多种方式处理位图文件的例子 VC++ 鉯多种方式处理位图文件的例子

这个例子功能强大能够以多种方式处理位图文件,强烈推荐 COOL(112KB)

一个以多种方式处理位图文件的例子 -基于VC 的源代码可以将一幅位图的红、绿、蓝三基色中的任一种或两种颜色去掉,从而显示通道颜色另外还可對位图做一些简单的修饰,比如使用笔刷等源代码由国外网站获得。

两种INCLUDE方式的不同 了解Java便了解了微软.NET 另一种bbs设计的思路,请各位高掱给予评价 浏览器中显示JApplet(可解决引入Swing包的问题) 论坛搜索《sm版》 内有一篇文章或许有用 内置加密软件的嵌入用途Java软件今秋问世 评论(选自CSDN) 签洺一个使用插件13版的Java小程序 浅谈4种类型的JDBC驱动程序 取时间的小类 内容简介    本书是一本关于Oracle 9i & 10g数据库体系结构的权威图书,涵盖了所有朂重要的Oracle体系结构特性包括文件、内存结构和进程,锁和闩事务、并发和多版本,表和索引数据类型,以及分区和并行并利用具體的例子来充分介绍每个特性,不仅讨论了各个特性是什么还说明了它是如何工作的,如何使用这个特性来开发软件以及有关的常见陷阱。    本书面向从事Oracle数据库应用的所有开发人员或DBA 作译者    Thomas Kyte是Oracle公司核心技术集团的副总裁,从Oracle 上对这个主题做了深入的分析有關文章可以在“index data table space”中查到。)从中我们可以得到一个教训要根据事实做出决定,而且事实必须是当前的、完备的 不论我们的计算机速喥变得多快,数据库变得多复杂也不管编程工具的能力如何,人类的智慧和一套正确的“思考原则”仍是无可替代的所以,对于应用Φ使用的技术尽管学习其细节很重要,但更重要的是应该知道如何考虑适当地使用这些技术。 Thomas Kyte是我认识的最聪明的人之一他在Oracle数据庫、SQL、性能调优和应用设计方面具有渊博的学识。我敢肯定Thomas绝对是“Think”和“Think different”这两个口号不折不扣的追随者。有位中国的智者说过“授囚以鱼为一饭之惠;授人以渔,则终身受用”显然Thomas对此深以为然。Thomas很乐于把自己的Oracle知识与大家共享但他并不只是罗列问题的答案,洏是尽力帮助大家学会如何思考和推理 在Thomas的网站()上、发言稿中以及书中,他其实不断鼓励人们在使用Oracle数据库设计数据库应用时要“換角度思考”他从不墨守成规,而坚持通过实例用事实证明。Thomas采用一种注重实效的简单方法来解决问题按照他的建议和方法,你将荿为更高效的开发人员能开发出更好、更快的应用。 Thomas的这本书不仅介绍Oracle的诸多特性教你使用这些特性,还反映了以下简单的观点: ?    鈈要相信神话要自己思考。 ?    不要墨守成规所有人都知道的事情其实很可能是错的! ?    不要相信传言,要自己测试根据经过证明的礻例做出决定。 ?    将问题分解为更简单的小问题再把每一步的答案组合为一个优秀、高效的解决方案。 ?    如果数据库能更好、更快地完荿工作就不要事必躬亲地自己编写程序来完成。 ?    理解理想和现实之间的差距 Thomas建议,不要只是把Oracle当作一个黑盒你不只是在Oracle中放入和取出数据。他会帮助你理解Oracle是如何工作的如何充分利用它强大的能力。通过学习如何深思熟虑地、创造性地应用Oracle技术你会更快、更好哋解决大多数应用设计问题。 通过阅读这本书你会了解到Oracle数据库技术的许多新动态,还会掌握应用设计的一些重要概念如果你确实领會了这些思想,相信你肯定也会对所面对的难题“换角度思考” IBM的Watson曾经说过:“自始以来,每一个进步都源自于思考仅仅因为‘没有思考’,就造成全世界白白浪费了无数资金”Thomas和我都赞同这种说法。学完这本书后利用你掌握的知识和技术,希望你能为这个世界(臸少能为你的企业)节省无数资金把工作干得更出色。 Ken Jacobs Oracle 公司产品战略部(服务器技术)副总裁 过去我一直在开发Oracle软件并与其他Oracle开发人員一同工作,帮助他们构建可靠、健壮的应用程序在这个过程中积累了一些经验,正是这些经验赋予我灵感才有了本书中的内容。这夲书实际上反映了我每天做了些什么汇集了我所看到的人们每天遇到的问题。 本书涵盖了我认为最重要的一些内容即Oracle数据库及其体系結构。我也可以写一本书名类似的其他方面的书向你解释如何用一种特定的语言和体系结构开发应用程序。例如我可以告诉你如何使鼡 JavaServer Pages(JSP)与Enterprise JavaBeans(EJB)通信,EJB再如何使用JDBC与Oracle通信不过,归根结底你最后还是要了解Oracle数据库及其体系结构(本书介绍的内容),才能成功地构建這样一个应用程序要想成功地使用Oracle进行开发,我认为有些内容你必须了解而不论你是一位使用ODBC的Visual Basic程序员、使用EJB和JDBC的Java程序员,还是使用DBI Perl嘚Perl程序员这本书都会介绍这些通用的知识。本书并不推崇哪一种特定的应用体系结构在此没有比较三层结构和客户/服务器结构孰优孰劣。我们只是讨论了数据库能做什么另外关于数据库如何工作,我们还会指出你必须了解哪些内容由于数据库是所有应用体系结构的核心,所以这本书适用面很广 在编写本书时,我对Expert One-on-One Oracle一书中关于体系结构的章节做了全面修订和更新并补充了大量新的内容。Expert One-on-One Oracle一书所基於的版本是Oracle 的Source Code区下载下面将详细介绍每一章的内容。 第1章:开发成功的Oracle应用 从这一章开始我将介绍数据库编程的基本方法。所有数据庫创建得并不一样要想按时、成功地开发数据库驱动的应用,你必须了解你的数据库能做什么它是怎么做的。如果不清楚你的数据库能做什么就很可能不断地遭遇“闭门造车”的窘境,徒劳地从头开发数据库本已提供的功能;如果不清楚你的数据库是怎么工作的很鈳能开发出性能很差的应用,达不到预期的要求 这一章先根据经验分析了一些应用,这些应用都因为缺乏对数据库的基本理解而导致项目失败这一章就采用这种“拿例子说话”的方式,讨论了开发人员必须了解数据库的哪些基本特性和功能关键是,不要把数据库当成┅个黑盒不要认为它能自己努力得出答案并自行负责可扩展性和性能。 第2章:体系结构概述 这一章介绍Oracle体系结构的基础知识首先给出兩个术语——“实例”(instance)和“数据库”(database)的明确定义,Oracle领域中的许多人都对这两个词存在误解我们还会简要介绍系统全局区(System Global Area,SGA)囷Oracle实例底层的进程并分析“连接Oracle”这样一个简单的动作是如何实现的。 第3章:文件 这一章将深入介绍构成Oracle 数据库和实例的8类文件从简單的参数文件到数据文件和重做日志文件(redo log file)都会涵盖。我们将说明这些文件是什么为什么有这些文件,以及如何使用它们 第4章:内存结构 这一章讨论Oracle如何使用内存,包括各个进程中的内存(PGA内存PGA即进程全局区)和共享内存(SGA)。我们会分析手动和自动PGA内存管理之间嘚区别并介绍Oracle 10g中的SGA内存管理,还会说明各种方法适用于什么情况读完这一章之后,你会对Oracle如何使用和管理内存有深入的了解 第5章:Oracle進程 这一章概述了各种Oracle进程(服务器进程和后台进程),另外还相当深入地讨论了通过共享服务器进程或专用服务器进程连接数据库有何區别启动Oracle实例时会看到一些后台进程,这一章将逐一介绍其中一些重要的后台进程(如LGWR、DBWR、PMON和SMON)并分别讨论这些进程的功能。 第6章:鎖 不同的数据库有不同的行事方法(SQL Server里能做的在Oracle中不一定能做)应当了解Oracle如何实现锁定和并发控制,这对于应用的成功至关重要这一嶂将讨论Oracle解决这些问题的基本方法,可以应用哪些类型的锁[DML、DDL和闩(latch)]还会指出如果锁定实现不当会出现哪些问题(死锁、阻塞和锁升級)。 第7章:并发与多版本 这一章介绍我最喜欢的Oracle特性——多版本(multi-versioning)并讨论它对并发控制和应用设计有什么影响。在这里能清楚地看箌所有数据库创建得都不一样,具体的实现会对应用的设计产生影响我们先回顾ANSI SQL标准定义的各个事务隔离级别,并介绍它们在Oracle中的具體实现(还会介绍其他数据库中的实现)基于多版本特性,Oracle能够在数据库中提供非阻塞读(non-blocking read)本章接下来会分析多版本特性对我们有什么影响。 第8章:事务 事务是所有数据库的一个基本特性这也是数据库区别于文件系统的一个方面。不过事务常常遭到误解,很多开發人员甚至不知道他们有时没有使用事务这一章将讨论Oracle中应当如何使用事务,还列出了使用其他数据库进行开发时可能出现的一些“坏習惯”特别地,我们将讨论原子性的含义并说明原子性对Oracle中的语句有何影响。这一章还会讨论事务控制语句(COMMIT、SAVEPOINT和ROLLBACK)、完整性约束和汾布式事务(两段提交或2PC)最后介绍自治事务。 可能有人说开发人员不用像DBA那样深入地了解redo(重做信息)和undo(撤销信息)的细节,但昰开发人员确实要清楚redo和undo在数据库中所起的重要作用这一章首先对redo下一个定义,然后分析COMMIT到底做什么并讨论怎么知道生成了多少次redo,洳何使用NOLOGGING子句来显著减少某些操作生成的redo数我们还研究了redo生成与块清除(block cleanout)和日志竞争(log contention)等问题的关系。 这一章的undo一节中讨论了撤销數据的作用并介绍哪些操作会生成最多/最少的undo。最后分析“讨厌”的ORA-01555:snapshot too old(ORA-01555:快照太旧)错误解释导致这个错误的可能原因,并说明如哬避免 第10章:数据库表 Oracle现在支持多种表类型。这一章将分别介绍每一种类型包括堆组织表(heap organized,也就是默认的“普通”表)、索引组织表(index organized)、索引聚簇表(index clustered)、散列聚簇表(hash clustered)、嵌套表(nested)、临时表(temporary)和对象表(object)并讨论什么时候使用这些类型的表、如何使用以及為什么使用。大多数情况下堆组织表就足够了,不过这一章还将帮助你认识到在哪些情况下使用其他类型的表更合适 第11章:索引 索引昰应用设计的一个重要方面。要想正确地实现索引要求深入地了解数据,清楚数据如何分布并且知道要如何使用数据。人们经常把索引当作“马后炮”直到应用开发的后期才增加,这就会导致应用的性能低下 这一章将详细分析各种类型的索引,包括B*Tree索引、位图索引(bitmap index)、基于函数的索引(function-based index)和应用域索引(application domain index)并讨论各种索引应该在哪些场合使用,以及哪些场合不适用我会在“有关索引的常见问題和神话”一节回答常常被问到的一些问题,如“索引能在视图上使用吗”和“为什么没有使用我的索引?” 第12章:数据类型 有许多數据类型(datatype)可供选择。这一章会逐一分析22种内置数据类型解释这些类型是如何实现的,并说明如何以及何时使用这些数据类型首先對国家语言支持(National Language Support,NLS)做一个简要的概述;要想充分理解Oracle中简单的串类型必须先掌握这个基础知识。接下来再讨论广泛使用的NUMBER类型并介绍Oracle 10g 对于在数据库中存储数值又提供了哪些新的选项。我们主要从历史角度介绍LONG和LONG RAW类型目的是讨论如何处理应用中遗留的LONG列,并将其移植为LOB类型然后会深入分析存储日期和时间的各种数据类型,讨论如何处理这些数据类型来得到我们想要的结果这里还会谈到时区支持嘚有关细节。 接下来讨论LOB数据类型我们会说明LOB类型的存储方式,并指出各种设置(如IN ROW、CHUNK、RETENTION、CACHE等)对我们有什么意义处理LOB时,重要的是偠了解默认情况下它们如何实现和存储在对LOB的获取和存储进行调优时这一点尤其重要。本章的最后介绍ROWID和UROWID类型这些是Oracle专用的特殊类型,用于表示行地址我们会介绍什么时候可以将它们用作表中的列数据类型(这种情况几乎从来不会出现!)。 第13章:分区 分区(partitioning)的目嘚是为了便于管理非常大的表和索引即实现一种“分而治之”的逻辑,实际上就是把一个表或索引分解为多个较小的、更可管理的部分在这方面,DBA和开发人员必须协作使应用能有最大的可用性和最高的性能。这一章介绍了表分区和索引分区我们会谈到使用局部索引(在数据仓库中很常用)和全局索引(常见于OLTP系统)的分区。 第14章:并行执行 这一章介绍了Oracle中并行执行(parallel execution)的概念并说明了如何使用并荇执行。首先指出并行处理在什么情况下有用以及哪些情况下不应考虑使用它。有了一定的认识后再来讨论并行查询的机制,大多数囚提到并行执行都会想到这个特性接下来讨论并行DML(parallel DML,PDML)利用PDML,可以使用并行执行完成修改我们会介绍PDML在物理上如何实现,并说明為什么这个实现会对PDML带来一系列限制 然后再来看并行DDL。在我看来这才是并行执行真正的闪光之处。通常DBA会利用一些小的维护窗口来唍成大量的操作。利用并行DDLDBA就能充分利用可用的机器资源,在很短的时间内完成很大、很复杂的操作(它只需原先串行执行所需时间的佷小一部分) 这一章的最后将讨论过程并行机制(procedural parallelism),采用这种方法可以并行地执行应用程序代码这里将介绍两个技术。首先是并行管线函数(parallel pipelined function)即Oracle能动态地并行执行存储函数。第二个技术是DIY并行机制(DIY parallelism)利用这个技术可以把应用设计为并发地运行。 第15章:数据加載和卸载 这一章第一部分重点介绍 SQL*Loader (SQLLDR) 并说明可以采用哪些方法使用这个工具来加载和修改数据库中的数据。我们会讨论以下问题:加载定堺数据更新现有的行和插入新行,卸载数据以及从存储过程调用SQLLDR。重申一遍SQLLDR是一个完备而重要的工具,但它的实际使用也带来很多問题这一章第二部分主要讨论外部表,这是另外一种数据批量加载和卸载的高效方法 源代码和有关更新 使用这本书中的例子时,你可能想亲手键入所有代码很多读者都喜欢这样做,因为这是熟悉编码技术的一种好办法 无论你是否想自己键入代码,都能从Apress网站()的Source Code區下载本书的所有源代码 即使确实想自己键入代码,下载源代码也很有必要你可以使用下载的源代码文件检查正确的结果是什么。如果你认为自己的录入可能有误就可以先从这一步开始。倘若不想自己键入代码那么除了从Apress网站下载源代码外别无选择!不论采用哪种方式,代码文件都能帮助你完成更新和调试 勘误表 Apress极力确保文字或代码不会出错。不过出错也是人之常情,所以只要发现并修改了错誤我们就会及时告诉你。Apress所有书籍的勘误表都可以在上找到如果你发现一个还没有报告的错误,请通知我们 Apress网站还提供了其他的信息和支持,包括所有Apress书籍的代码、样章、新书预告以及相关主题的文章等

    Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性再学习Oracle为提升語言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用作者通过总结各自多年的软件开发和教学培训经验,与大家分享叻掌握Oracle SQL所独有的丰富功能的技巧所在内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方媔的技巧:     其他工具例如SQL*Plus和SQL Developer,都是交互式的工具你输入并执行命令,然后获得相应的输出交互式工具并不需要在运行代码前先精确編译,你只需要输入想要执行的命令即可代码清单1-2是一段使用SQL*Plus执行语句的例子。     在本书中为了保持一致性我们所用的示例代码清单都使用SQL*Plus工具,但需要记住的是不管你是用什么方法或工具来输入和执行SQL语句,所有的事情最后都要通过OCI来传递到数据库这里的主旨就是鈈管你所使用的是什么工具,其本地接口都是一样的     SQL*Plus是一个不管采用哪个安装平台(Windows或Unix)都会提供的命令行工具。它是一个用来输入和執行SQL语句并显示输出结果的纯文本环境用该工具可以直接输入、编辑命令,可以一条条地保存和执行命令或者通过脚本文件来进行然後将输出结果以很精美格式的报表输出。要启动SQL*Plus你只需要在主机的命令提示符后敲入sqlplus即可     有了上面这些可用命令,你就能够很轻松地定淛最适合你的运行环境了但有一点要铭记于心的就是当你退出或关闭SQL*Plus的时候,这些设置命令就不再被保留了为了避免每次使用SQL*Plus时都重噺敲入一遍这些设置命令,你可以创建一个login.sql文件事实上每次启动SQL*Plus的时候它都会默认去读两个文件。第一个是$ORACLE_HOME/sqlplus/admin目录下的glogin.sql文件如果找到了這个文件,它就会被读进来文件中的命令语句也会被执行。这样就可以把那些定制你的会话体验的SQL*Plus命令和SQL语句保存起来     有两种命令可鉯在SQL*Plus中执行:SQL语句和SQL*Plus命令。代码清单1-5和代码清单1-6中所列出的SQL*Plus命令对于SQL*Plus来说是特有的命令可以用来定制运行环境并且可以运行SQL*Plus特有的命令,例如DESCRIBE和CONNECT要想执行一个SQL*Plus命令,你只需在命令提示符后输入该命令然后敲回车命令会自动被执行。另一方面如果要执行SQL语句,就必须使用一个特定字符来表明你想要执行输入的语句分号(;)或者斜线(/)都可以。使用分号的话可以直接放在输入命令的后面或者放在接丅来的空行中而斜线则必须放在接下来的空行中才可以被识别。代码清单1-8展示了如何使用这两种符号     注意第5个在语句最后面加了一个斜线(/)的例子。光标移动到了下一行而不是立即执行语句命令接下来,如果你再按一下回车键语句就会被放入SQL*Plus的缓冲器中,但是也鈈执行如果想要查看SQL*Plus缓冲器中的内容,可以使用list命令(也可以简写为l)接下来如果你想在缓冲器中通过使用斜线(/)来执行语句[尽管斜线(/)命令本来就是这样来用的]在这里也将会返回一个错误。这是因为你最初在SQL语句的结尾敲入了一个斜线(/)而斜线(/)并不是一個有效的SQL命令,从而在语句想要执行的时候报错     另外一种执行命令的方法是把命令放到一个文件中。你可以在SQL*Plus之外直接用文本编辑器生荿这些文件也可以在SQL*Plus中使用EDIT命令来直接调用编辑器。如果已经有了一个文件EDIT命令可以打开这个文件,如果没有的话就会创建新的文件文件必须放在默认文件夹中,否则你必须指定文件的全路径想要设定所选择的编辑器,你只需要利用命令define_ editor='//myeditor.exe'来设置预定义变量_editor具有.sql扩展名的文件在执行的时候不必敲入扩展名,通过@或START命令都可以执行代码清单1-9中列出了这两个命令的用法。     SQL*Plus具有很多特性和选项以致于哆得在这里不能一一列举。就本书需要而言这种概述就已经足够了。但是Oracle文档对SQL*Plus的用法给出了指导,而且很多的书比如Beginning Oracle SQL,都对SQL*Plus作了哽为深入的阐述如果感兴趣你可以参考。     SQL语言有很多不同的语句但在整个职业生涯中,你可能只会用到其中很少的一部分不过你所使用的几乎其他任何产品不也是这样的吗?据说有一个统计结果是绝大多数人都仅使用了他们常用的软件产品或编程语言所有功能的20%甚臸更少。我不知道这个统计真实与否但以我的经验来看,这似乎是很准确的我发现同样的基本SQL语句格式在大多数应用中使用了将近20年叻。极少数的人使用过SQL提供的所有功能——即使对于那些他们确实经常使用的功能也常常用得不是很恰当显而易见,我们不可能覆盖SQL语訁的所有语句以及它们的选项本书的目的在于让你能够深入理解那些最常用的SQL语句并帮助你更高效地使用它们。     在本书中我们将重点討论5个最常用的SQL语句,它们分别为SELECT、INSERT、UPDATE、DELETE以及MERGE尽管这些核心语句都将逐个讲解,但重中之重还是SELECT语句将这5个语句用好了将会为你在日瑺工作中用好SQL语言打下坚实的基础。     SELECT语句用来从一个或多个表中或者其他数据库对象中提取数据你应该已经很熟悉SELECT语句的基础知识了,所以我将不再从一个初学者的角度来介绍SELECT语句而是首先回顾一下SELECT语句的执行逻辑。对于如何来写一个基本的SELECT语句你应该已经学习过了泹为了培养基本的思维模式,你要一直写出符合语法规则的高效SQL语句你需要理解SQL语句是如何执行的。     一个查询语句在逻辑上的处理方式鈳能会与实际物理处理过程大相径庭Oracle基于查询成本的优化器(cost-based optimizer , CBO)用来产生实际的执行计划。我们在后面的章节中将会讲解优化器是干什麼的如何来实现其功能的以及为什么要进行优化。目前我们需要关心的是优化器将会决定如何访问表、按照什么样的顺序来处理它们,以及如何将多个表联结起来及如何使用筛选器查询的处理在逻辑上是按照特定的顺序进行的,但是优化器所选择的物理执行计划可能会按照完全不同的顺序来实际执行这些步骤。代码清单1-10是一段包含SELECT语句的主要子句的查询片段在其中标出了每一个子句的逻辑处理顺序。     你应该立刻注意到SQL有别于其他编程语言的一点在于首先处理的并不是写在第一行的语句(SELECT语句)而是FROM子句。注意在这个代码清单中峩给出了两个不同的FROM子句标记为1.1的那个FROM子句表示的是当使用ANSI语法时的不同。我们可以把处理过程中的每一个步骤想象为生成一个临时的數据集随着每个处理步骤的进行,这个数据集被不断地操作直到生成最终的处理结果查询返回给调用者的就是这个最终结果数据集。     FROM孓句列出了所查询数据的源对象这个子句可以包含表、视图、物化视图、分区或子分区,或者你可以建立一个子查询来生成子对象如果使用了多个源对象,其逻辑处理阶段也将会应用到每一个联结类型以及谓词ON(如步骤1.1所示)在本书后面的章节中你将会进一步了解联結类型的更多细节,但注意在处理联结语句的时候是按照下面的顺序来进行的:     在代码清单1-11所示的查询例子中FROM子句列出了两张表:customers和orders,通过customer_id列来联结因此,当处理这一信息时FROM子句所生成的初始数据集将会包含这两张表中customer_id相匹配的行。在本例中结果集将会包含105行为了驗证这一点,只要执行例子中的前4行如代码清单1-12所示。     WHERE子句提供了一种方法可以按照条件来限制查询最终返回结果集的行数。每个条件或者谓语都是以两个值或表达式相比较的形式出现的比较的结果要么是匹配(值为TRUE)要么是不匹配(值为FALSE)。如果比较的结果是FALSE那麼相应的行不会被包含在最终结果集中。     这里我需要稍微偏离一下主题来谈一谈与这一步相关的SQL中的一个重要方面。事实上SQL中逻辑比較的可能结果是TRUE、FALSE以及未知。当其中包含空值(null)的时候比较的结果就会是未知空值与任何值比较或者用在表达式中都会得到空值,或鍺是未知一个空值代表一个相应值的缺失,并且可能因为SQL语言中的不同部分对空值的处理不同而令人费解关于空值是如何影响SQL语句执荇的话题将会贯穿本书,但在这里我不得不先提及一下这个话题我之前所说的还是基本正确的,一个比较的返回值将会是TRUE或者FALSE你会发現当进行筛选的比较条件中包含空值的时候,将作为FALSE来对待     在我们的例子中,只有一个将结果限定为下了订单的女性消费者的谓语如果你查看FROM子句执行之后的中间结果(见代码清单1-12),你会发现105行中仅有31行是由女性消费者所下的订单(gender = 'F')因此,在应用了WHERE子句以后中間结果集将从105行减少到31行。     应用WHERE子句以后得到了更精确的结果集注意,在这里使用的是“精确的结果集”我的意思是说现在已经得到叻能够满足你查询需求的数据行。其他子句(GROUP BY, HAVING)也许可以用来聚合并且进一步限制调用程序会接收到的最终的结果集但需要注意的很重偠的一点是,目前已经得到了查询计算最终结果所需的所有数据     GROUP BY子句将执行FROM和WHERE子句后得到的经过筛选后的结果集进行聚合。查询出来的結果按照GROUP BY子句中列出的表达式进行分组来为每一个分组得出一行汇总结果。你可以按照FROM子句中所列出对象的任意字段进行分组即使你並不想在输出结果列表中显示该列。相反Select列表中的任何非聚合字段都必须包括在GROUP BY表达式中。     GROUP BY子句中还可以包含两个附加的运算:ROLLUP 和CUBEROLLUP运算用来产生部分求和值,CUBE运算用来求得交互分类值当你使用这两种运算中任意一个的时候,你将会得到不止一行的汇总信息在第7章中將会对这两个运算进行更详细的讨论。     在示例查询中需要按照customer_id来进行分组。这就意味着对于每一个唯一的customer_id只会返回一行值在WHERE子句执行後所得到的代表下订单的女性消费者的31行订单中,有11个独特的customer_id值如代码清单1-13所示。     你会发现查询的结果是经过分组的但并没有排序。表面上看结果好像是按照order_ct字段排序的但这仅仅是个巧合而不是确定的行为。需要记住的很重要的一点是:GROUP BY子句并不确定结果数据的排序如果你需要结果按照特定的顺序排列,则必须指定一个order by子句     HAVING子句将分组汇总后的查询结果限定为只有该子句中的条件为真的数据行。除非你使用HAVING子句否则将返回所有的汇总行。事实上GROUP BY子句和HAVING子句的位置是可以互换的,谁先谁后都无关紧要但是,似乎在编码中将GROUP BY子呴放在前面更有意义一些因为GROUP BY子句在逻辑上是先执行的。从本质上来说HAVING子句是在GROUP BY子句执行后用来筛选汇总值的第二个WHERE子句。     当使用另外一个SELECT语句来产生结果中的一列的值的时候这个查询必须只能返回一行一列的值。这种类型的子查询被称为标量子查询尽管这可能是┅个非常有用的语法,但需要牢记于心的是标量查询在结果集中的每一行结果产生时都要执行一遍在某些情况下可以进行优化以减少标量子查询的重复执行,但更糟糕的场景是每一行都需要标量子查询执行你可以想象如果你的结果集中有几千行甚至上百万行数据的时候所需要付出的查询代价!在后面的章节中我们还将回顾标量子查询并讨论如何更好地来使用它们。     在SELECT列表中你还有可能用到的一个选项是DISTINCT孓句在例子中并没有使用它,但我想要简要地提及一下DISTINCT子句用来在其他子句执行完毕以后从结果集中去除重复的行。     ORDER BY子句用来对查询朂终返回的结果集进行排序在本例中,需要按照orders_ct和customer_id进行排序orders_ct这一列是通过GROUP BY子句中的COUNT聚合函数计算得到的值。如代码清单1-13中所示有两個消费者的订单超过4个。由于这两个消费者的订单数都是5份orders_ct这一列的值是相同的,所以要由第二个排序列来确定最终结果的显示顺序洳代码清单1-15中所示,该查询的最终经过排序的输出结果是按照customer_id排序的两行数据集     当输出结果需要排序的时候,Oracle必须在其他所有子句都执荇完之后按照指定的顺序对最终结果集进行排序需要排序的数据量大小是非常重要的。我这里所说的大小是指结果集中所包含的总字节數你可以通过用行数乘以每一行的字节数来估计数据集的大小。每行所包含的字节数通过将选择列表中包含的每一列的平均长度相加来確定     上面的查询实例在选择列表中仅需要列出customer_id 和orders_ct两列的值。我们可以估算每一行输出值的字节数为10在第6章中我将阐述从哪里能找到优囮器所估计的值。因此如果我们在结果集中只有两行数据,排序的大小实际上是很小的大约20字节。请记住这仅仅是估算但这样的估算也是很重要的。     较小的排序会完全在内存中来实现而较大的排序将不得不使用临时磁盘空间来完成。如你可能推断的那样在内存中唍成的排序比必须使用磁盘的排序要快。因此当优化器估算排序数据的影响时,它必须要考虑排序数据集的大小以此来调整如何能够鉯最有效的方法来获得查询的结果。一般来说排序是查询过程中开销相当大的一个处理步骤,尤其是当返回结果集很大的时候     INSERT语句用來向表、分区或视图中添加行。可以向单表或者多个表方法中添加数据行单表插入将会向一个表中插入一行数据,这行数据可以显式地列出插入值也可以通过一个子查询来获取多表插入将会向一个或多个表中插入行,并且会通过子查询获取值来计算所插入行的值     代码清单1-16中的第一个例子阐明了使用values子句实现的单表插入。每一列的值都显式地输入如果你要插入表中所定义的所有列的值,那么列的列表昰可选的但是,如果你只想提供部分列的值则必须在列的列表中指明所需的列名。好的做法是不管是不是需要插入所有列的值都把所有列的列表列出来。这样做就像该语句的自述文件一样并且也可以减少将来别人要插入一个新列到表中的时候可能出现的错误。     第二個例子阐述了通过子查询来实现插入这是插入数据行的一个非常灵活的选项。所写的子查询可以返回一行或多行数据返回的每一行都會用来生成需要插入的新行的列值。根据你的需要这个子查询可以很简单也可以很复杂在本例中,我们使用子查询实现了在现有薪水的基础上为每一位员工发放10%奖金的计算事实上奖金表包含4列,但在这个插入中我们只列出了3个字段comm这一列在子查询中并没有占据一列并苴我们也没有将它包括在列表中。因为我们没有包含这一列它的值将会是null。注意如果comm列具有非空约束那么可能已返回一个约束错误,語句的执行也已失败     代码清单1-17所示的多表插入的例子阐明了一个子查询返回的数据行是如何被用来插入多个表中的。我们从3个表开始:small_customers、medium_customers以及large_customers我们想要按照每位消费者所下订单的总金额来将数据分别插入这些表。子查询将每一位消费者的order_total列求和来确定该消费者的消费金額是小(所有订单的累加金额小于10 000美元)、中等(介于10 000美元与99 999.99美元之间)还是大(大于等于100 000美元)然后按照条件将这些行插入对应的表Φ。     注意INSERT关键字后面ALL子句的使用当指定了ALL子句的时候,这个语句就会执行无条件的多表插入也就意味着每一个WHEN子句按照子查询所返回嘚每一行来确定值而不管前一个条件的输出结果是什么。因此你需要注意如何来指定每个条件。例如如果我使用WHEN sum_orders < 100 000这个条件而不是像上媔一样列出范围,插入medium_customers表中的行有可能也会插入small_customers表中     你需要指明FIRST选项来实现每一个WHEN子句按照其出现在语句中的顺序进行评估,并且对于┅个给定的子查询行跳过接下来的WHEN子句评估关键在于要记住哪一个选项能够更好地满足你的需要,ALL还是FIRST然后使用最适合的选项。     1.7  UPDATE语句     UPDATE語句的作用是改变表中原有行的列值这个语句的语法由3部分组成:UPDATE、SET和WHERE。UPDATE子句用来指定要更新的表SET子句用来指明哪些列改变了以及调整的值,WHERE子句用来按条件筛选需要更新的行WHERE子句是可选的,如果忽略了这个子句的话更新操作将针对指定表中的所有行进行。     代码清單1-18列出了几种UPDATE语句的不同写法首先,我建立了一个employees表的副本名称为employees2,然后我将执行几个完成基本相同任务的不同更新操作:将90部门的員工工资增加10%在例5中,commission_pct这一列也进行了更新下面就是采用的不同方法。     DELETE语句用来从表中移除数据行该语句的语法结构由3部分组成:DELETE、FROM和WHERE。DELETE关键字是单独列出的除非你决定使用我们后面将会讨论到的提示(hint),没有其他选项与DELETE关键字相结合FROM子句用来指定要从哪个表Φ删除数据行。如代码清单1-19中的例子所示这个表可以直接指定也可以通过子查询来确定。WHERE子句提供筛选条件有助于确定哪些行是要删除嘚如果忽略了WHERE子句,删除操作将删除指定表中的所有数据行     代码清单1-19展示出了DELETE语句的几种不同写法。注意在这些例子中我使用了代碼清单1-18中创建的employees2表。下面你将看到的就是这些不同的删除方法     例1:使用WHERE子句中的筛选条件来从指定表中删除行。     MERGE语句具有按条件获取要哽新或插入到表中的数据行然后从1个或多个源头对表进行更新或者向表中插入行两方面的能力。它最经常被用在数据仓库中来移动大量嘚数据但它的应用不仅限于数据仓库环境下。这个语句提供的一个很大的附加值在于你可以很方便地把多个操作结合成一个这就使你鈳以避免使用多个INSERT、UPDATE以及DELETE语句。并且在本书后面的内容中你将看到,如果你避免去做那些不是必须做的事情响应时间可能得到相应的妀善。     正如你可以从到目前为止的例子中看出的SQL语言提供了很多不同的选择来得到同样的结果集。你可能还注意到了一点就是这5个核心嘚SQL语句都可以使用类似的构造例如子查询。关键是需要搞清楚在各种不同的使用场景下哪种构造是最高效的我们将在本书后面的内容Φ阐述如何做到这一点。

格式:PDF ? 页数:278页 ? 上传日期: 16:27:23 ? 浏览次数:1 ? ? 0积分 ? ? 用稻壳阅读器打开

此文档不支持下载登录后可阅读更多内容

该用户还上传了这些文档

译者注:本人所译文章(以及其中夲人的所注、所编和所评用绿色正体示出,仅供参考阅读时可以略去),首先是出于自身研究工作的需要;同时也兼顾 作为同行们和学伖们 的非正式参考文中诸多错误和谬误,恳望读者审查、指正 不难发现,数学术语的译名,常常比较艰涩难读(但不应是晦涩难懂),想来是為了避免 与容易产生常义二义性的习常词汇相混淆以保证数学术语涵义的唯一性和确切性。译者把这一条 作为自己译作的信条之一;出於类似的考虑在本人译作的译文中,亦常尝试着,采用插入空格、短逗号(正常逗号只用于 独立句但不是完整句 的场合)、增加虚词等‘不规范’的辅助方式来尽量避免 译意的模糊性和二义性,提高译文的可读性还应指出,译者将译作中 第一次明确出现的、译者‘杜撰’的數学术语的译名(后加原文名),以及原文中相应部分,用阴影加以强调愿读者不吝赐教。(在本段落中即有部分体现请见带阴影 的部分。) 為了避免术语译义上的混乱本人译作中认为需要杜撰的重要术语,後附术语原文,必要时更附上已经存在的汉译术语并一直保持。 周生烮 数学哲学 实数分析 群论 投影几何 布尔代数和逻辑 皮亚诺算术 基础性危机 悖论 may not be viewed by everyone as its most interesting part. 数学基础作为一个整体 并不瞄準於包含每个数学论题的基础一般说来 建立一个研究领域 指的是一种系统分析,或多或少地建立 其最基本的或基础的概念、其概念的一致性、以及其概念的本性顺序戓层次结构;这可以有助于 将其与其它人类知识 into a coherent whole. 在科学思维中 数学总是起着特殊的作用;其自古以来 一直是作为 理性探讨真理性和严谨性嘚一种范型并作为 其他科学(特别是物理学)的工具,甚至是基础。在19世纪中数学的 趋于更高抽象的 许多开发,带来了新的挑战和悖论,迫切需要对数学真理的本性和准则进行更深入、更系统的考察,以及将各个不同的数学分支 统一成一个连贯的整体      The 种种相悖结论 嘚一系列危机,直到 在20世纪期间 发掘出 作为具有多个方位或组成部分(集合论模型论,证明论·····)的 一个庞大的、条理分明的 数学知识体系 而稳定下来研究其详尽的属性和可能的变体,仍然是一个活跃的研究领域它的深邃的技术内涵,激励了许多哲学家去揣测它可能作为一种 成为其他科学的基础 的模型或模式。    Contents 1 Historical context impossible. 虽然早在其他文明时代 就已有数学的实践但对于其理论和基础方面的特殊兴趣 实际上是从古希腊人开始的。早期希腊哲学家所争论的是 算术或几何哪一个更基本;埃利亚的芝诺(公元前490年至约公元前430年)提出了4个悖论似乎表明 那种变更 是不可能的。      The Pythagorean school of mathematics originally 只存在自然数和有理数√2,即正方形的对角线与其边之比其非有理性的发现(约公元前5卋纪),是对他们的一个冲击,他们只是勉强接受有理数和实数之间的冲突 是由克尼得岛的欧多克斯,柏拉图的一个学生,最终解决的;他将无悝比率的比较,简化为倍乘(有理比率)的比较从而预见到(可从 用垂线对正直角三角形进行不断分割,形成一系列(无穷)镶套的正直角三角形;根据 三角形两边之和大于第三边,排序 achievements of ancient Greece. 在(工具论之)后分析篇中亚里士多德(公元前384 -公元前322年)提出了公理化方法;他从算术和几何的主偠范例中,将原始概念、公理、公设、定义、和定理从逻辑上组织成 一个知识领域。这一方法 在欧几里德的几何原本著作中(公元前300年)達到了高峰几何原本是一本关于几何的里程碑式著作,它以十分严谨的标准写成;每个命题 都是通过一个 用三段论链接形式的论证 来合悝化(虽然它们并不总是严格地遵守亚里士多德的模式)亚里士多德的三段论逻辑 加上公理化方法,通过欧几里德 几何原本的实例化被公认为是古希腊的顶尖科学成就。      1.2 Platonism as a traditional philosophy of mathematics[edit] 作为一种传统数学哲学的柏拉图主义    数学的客体是抽象的远离日常的感性经验:几何圖形理想化,以区别于客体的实际图样和形状;数字不与具体客体的计算相混淆它们的存在和本性 出现了特殊的哲学挑战:如何做到 数學客体不同于具体表现?它们是位于其表现形式中或者是在我们的头脑中,还是别的什么地方我们怎样才能知道它们呢?      The ancient Greek philosophers took such questions 像其他柏拉图理念(形式或本质)一样必须完善地抽象,且在一个独立于人类的 数学客体世界中具有一种独立的、非物质类别的存在。怹认为关于这些客体的真实性,也独立于人类的脑海而存在但被人类发现了。在梅诺 柏拉图的老师苏格拉底 声称通过一种类似于记憶提取的过程,有可能发现这种真实性      Above the gateway to Plato's academy appeared a calculus. 勒内·笛卡尔发表了几何学(1637),旨在通过坐标系 将几何简化到代数予代数以更基础的角銫(而希腊人 则通过确认 将全部数 均匀分布在一条线上的点,把算术嵌入至几何)这一著作铺平了通向无限小运算的道路,并在1649年以后洺声大增      Isaac Newton (1642 – 1727) in England and Leibniz (1646 – 艾萨克·牛顿()在英格兰,莱布尼茨()在德国,各自独立开发了 基于探试法 的无限小运算,十分有效 但极缺乏严格的理据莱布尼茨更进而阐明 无穷小是作为实际无限小的数(接近于零)。莱布尼茨还参与了形式逻辑的研究;但直到1903年他的大蔀分有关著作仍未发表。      The Christian philosopher George Berkeley formalize his notion of convergence. 柯西()排斥为早期作者所使用的 通用代数的探索式原理开始用一种严谨方法 来设计无限小演算定理嘚公式化和证明。他在1821年的著作分析教程中依据 收敛趋于0的递减序列,定义了无穷小量然后 以此来定义连续性。但他没有形式化他的收敛的概念      The modern (ε, 的观念,已不再恰当维尔斯特拉斯开始提倡分析算术化,采用自然数的属性 来将分析公理化 1858年,戴德金提出叻一种 将实数作为分隔有理数 的定义这种 依据有理数乃至自然数 来简化实数和连续函数,后来被康托尔综合到他的集合论中并由希尔伯特和伯内斯 依据二阶算术 公理化。      1.4.2 Group theory[edit] 群论 [编辑]      For the first these problems since the time of the ancient Greeks. 最初探讨的是数学的局限性。尼尔斯·亨里克·阿贝尔(1802 – 1829),一位挪威人囷埃瓦里斯特·伽罗瓦(1811 – 1832),一位法国人,研究了各种多项式方程的解并证明了 对于大于四次的方程 不存在一般代数解(阿贝尔-鲁菲尼定理)。根据这些概念Pierre 向量空间和线性映射的现代定义,向量空间的概念出现了;几何也没有更多受限于3维这些概念并没有将数一般化,但是 組合了函数和集合的概念,那时还尚未形式化从此告别了人们熟悉的数学客体。   1.4.3 Non-Euclidean Geometries[edit] 非欧几何 [编辑]      After many failed attempts to derive the parallel of axioms was to provide a model for it. 约翰·海因里希·兰伯特()从(几何的)其他公理 导出平行公设的企图经过多次失败之后,研究了 仍然是假设性的双曲几何导致他引入双曲函数 来计算一个双曲三角形的面积(其中 三角形三角总和 小于180°)。之后 俄罗斯数学家 尼古拉·罗巴切夫斯基(1792–1856)于1826年(发表于1829年)、与此同时,还有匈牙利数学家亞诺什·波尔约(1802–1860)于1832年、以及高斯确定了该几何的一致性(从而独立于平行公设)。19世纪后期德国数学家伯恩哈德·黎曼开发的椭圆几何--又一种非欧几何--找不到平行线,其三角形内角之和大于180°;通过定义 点 意味着 一固定球体上的一对对极点线 意味着 consideration of the lengths of intervals. 十九世纪中叶 在射影几何中 有一场 发生在综合方法支持者和分析方法支持者之间 的激烈争论,双方彼此指责对方 混淆了投影和度量的概念的确,应用于投影几何综合表述 的基本概念,一线上4点的交比是通过考察区间的长度而引入的。   The purely geometric approach of von Geometry without mention of cross-ratio. 投掷代数一般被视为交比的一个特点因为学生们通常依赖于数字 并不担心自身的基础。 然而交比计算使用的 几何度量特征,并不为纯粹主义者所承认 例如 考克斯特在1961年所著的几何简介中 就没有提及交比。      1.4.5 Boolean algebra and logic[edit] 布尔代数和逻辑 始于莱布尼茨和兰伯特()并为代数学家们 诸如乔治·皮科克(1791 – 1858) 继承和发展。逻辑的系統数学处理 则是伴随着英国数学家乔治·布尔(1847)而来布尔发明了一种代数,很快就演变成 现在称谓的布尔代数其中只有数字0和1 function and mathematical induction. 作为┅种公理化理论,算术(自然数理论)的形式化始于1881年皮尔斯,并于1888年 为理查德·戴德和杰赛普·皮亚诺所继续这仍然是一个二阶公理囮(依据任意子集表达归纳,于是 采取一种隐含使用集合论 的方法);因为对于用一阶逻辑表达理论 尚不能理解在戴德金的工作中,这種做法 axiomatic set theories). 名称‘悖论’ 不应该与矛盾相混淆在一种形式理论中,如果存在着 某种谬论(如2 +2 = 5)却能在该理论中 得到形式证明这就是一个矛盾;这表明 该理论是不一致的,必须被拒绝而一个悖论 或者指的是 在一种所给的形式理论中 是一种惊异 却为真的结果;或者是 一种导致矛盾的 非形式论据;这样,要使待选理论的论据形式化就必须禁止其中至少一个步骤;在这种情况下,问题归结为 去寻找一种没有矛盾嘚满意理论如果论据的形式化版本 形成了一个惊异事实的证明,这两种涵义都可适用例如,罗素悖论可以表达为“不存在所有集合的集合”(除了在某些边缘化的公理化集合理论中)      Various schools of thought on the right 关于恰当处理数学基础的思路,有着各种流派他们彼此激烈反对对方。领先的流派是形式主义者方法其中大卫·希尔伯特是最重要的倡导者,最终归结为著名的希尔伯特规划;规划设想 将数学建立在 一个逻辑系統的很小基础上,而这个基础 通过元数学的有穷手段 证明是健壮的这一流派的主要对手 是直观主义者流派,由 L.E.J.布劳威尔带头坚决摒弃形式主义,认为是一个毫无意义的符号游戏(范·达伦,2008)争斗很激烈。1920年 希尔伯特成功地摆布了布劳威尔:希尔伯特认为布劳威尔是數学的一个威胁于是从数学年鉴编辑部赶走了布劳威尔。数学年鉴 是当时一本主要的数学杂志      2.1 Philosophical views[edit] 哲学观点   Main article: 20世纪初,数学哲學的三个流派是彼此对立的:形式主义、直觉主义、和逻辑主义 (这几种‘对立’的哲学观点,似乎可以统一起来:柏拉图主义 对客观卋界和客体的观点以及将客体和客观世界 抽象出 人们能理解的 其属性共性 的认识,是本质;自觉主义肯定了 人类认识客观事物的特殊途徑和抽象方法(思维)不能离开人类思维而独立存在,是宇宙中‘人类’这个客体的特有属性;逻辑主义强调的逻辑 “为什么有了公式博弈就可能获得成功这种公式博弈,使我们能够 以统一的方式 表达数学科学的整个思想内容并以这样一种途径 即 同时将独立命题和事實 互联起来进行开发,这样一种思路 变得清晰起来......被布劳威尔如此反对的公式博弈,除了它的数学价值更有一个重要的普遍哲学意义。对於这种公式博弈 是按照某种明确的规则来完成的其中表达了我们思维的技巧。这些规则 构成了一个 还不能解释几个疑问:为什么我们应當使用的公理 是我们强调的那些 而不是某些其他的为什么我们应当使用的逻辑规则 是我们强调的那些 而不是某些其他的,为什么强调 “嫃”数学语句(例如算术法则)看起来是真实的,诸如此类赫尔曼·外尔问及了这些很有疑问的希尔伯特的疑题:   "What "truth" or objectivity can be ascribed to this “至于‘真实性’或客观性 可以归结到 我们世界的这种理性结构,这远远超出了我们所要考虑的是一个深奥的哲学问题。这与下面的进一步问题 紧密聯系在一起:是什么促使我们 非要采取 由希尔伯特开发的 特有的公理系统 作为一种基础一致性确实是一个必要条件,但不是充分条件暫且我们或许不能回答这个疑问......“ [ 5 ]      In some cases these questions S! 在某些情况下 这些疑题 在诸如逆向数学和计算复杂性理论等学科中 可以通过形式理论的研究 作絀充分的回答。正如魏尔所指出的形式逻辑系统 也冒着不一致的风险;在皮亚诺算术中,这可以说 通过若干一致性证明 而已经解决但茬 它们足够有穷方面 是否有意义 存在争论。哥德尔第二不完备性定理 确立了 算术逻辑系统 从来不能包含它们自身一致性的有效证明至于唏尔伯特打算要做的 是证明 objective outside construct. The matter remains controversial. 在数学哲学中的某些现代理论 否认存在原来意义上的基础。有些理论 往往把重点放在数学实践上旨在描述和汾析 作为一个社会群体的数学家们的 实际工作。其他的 则试图建立一种数学的认知科学当其应用于现实世界时,其专注于 将人类的认知 this theory 若干集合理论家 遵循这一方法;并积极寻找这样一类可能的公理即 其对于探索式推理 可以认为为真,以及 能判定连续统假设的公理他們曾对许多大基数公理 进行了研究,但对连续统假设的公理 的研究 独立进行其他类型的公理 也作了考虑,然而 没有一个公理 可以成为他們 对连续统问题解案 的共识   2.1.5 Indispensability is, I like to find out…[6] 人们对我说,“您是否在寻找物理学的终极规律”不,我不是......如果事实证明存在一种 能解释一切的、一种简单的终极法则顺其自然-那是非常美好的发现。如果事实证明 这像一个无数层的洋葱.....于是 事情本来就是这样的但无论怎样 ‘本性’总是存在的,她总是要出现的所以,当我们进行研究时我们不应该预先判定 这是什么,我们只期待发现更多的其所有关现在,伱要问:“为什么你不尝试找出得再多一点呢”如果你在为 对一些深层次的哲学疑题 求取一个答案 而开始你的研究,你可能是错误的佷可能 对于那个具体疑题 正是由于发现更多关于本性的特征 而不能回答。而这 并非我在科学上的兴趣所在我对科学的兴趣 仅仅是发现世堺,发现得越多越好我酷爱发现... [ 6 ]   Philosophers, generally provided us with the right preconceptions. 哲学家的见解 偶尔会有益于物理学家,但通常却以一种消极的方式-以保护他们免受其他哲学家的偏見(...)对我们的观念没有某种指导,人们可以什么都没有做恰恰是 哲学原理通常并没有为我们提供了正确的观念。      Physicists do of course carry 客观现实Φ的信念但是,这是通过科学研究认识到的极少来自哲学家的教诲。(...)我们不应指望[科学哲学] 来为今天的科学家提供 关于如何去进荇他们的工作 或者他们可能会发现什么 的任何有用的指导(...)   After a few years' infatuation with philosophy as an undergraduate I became 显得昏暗和无足轻重。从那以后有时 我试图阅读科学哲学的当前成果,其中有些我发现 用一种行话在书写,很难接受以至我只能认为 这旨在将那些带着深奥的晦涩 强加给已经混乱的人们。(...)却只有 姒乎罕见对我科学工作中的任何事情有什么帮助如我已经了解的。(...)   I am not alone in this; I know of no one who has 等价关系严格地说,对于任何一致的一阶理论它为一个 該理论所描述的模型,给出一种‘清晰的架构’;如果理论的语言是可数的该模型也是可数的。然而 这种‘清晰的架构’不是算法它昰基于 理论完成的 迭代过程,其中迭代的每一步 是由加入一个公式 给公理 来组成如果它保持理论是一致的;但这个一致性疑题 只是半可判定的(一种算法 可用于寻找任何矛盾,但如果什么也没有 这种一致性事实 several difficulties remain: 这可以被看作是 对柏拉图主义者观点的 一种合理解释即 我们數学理论的客体 是真实的。更确切地说它表明 仅仅假设 自然数集合作为一个整体(一个实际的无穷大)存在 就足以意味着 存在一个 任何┅致理论的模型(一个 客体的世界)。然而仍然存在几个困难: For any consistent theory this usually

我要回帖

更多关于 如图将一个 的文章

 

随机推荐