1k likes | 1.1k Views
第3章 计算学科中的3个学科形态. 李陶深 tshli@gxu.edu.cn. 3.1 一个关于“学生选课”的例 子. 对 “ 学生选课 ” 例子的感性认识. 现给出“学生”和“课程”两个实体,它们的 联系 为: 一个学生可以选修若干门课程 每门课程可以被任一学生所选修 请建立一个信息管理系统,以实现对“学生选课”这一信息的管理。. 概念模型. 用于信息世界的建模,是客观世界到信息世界的抽象。 概念模型中的主要概念有:实体、属性、码、域、联系等。 实体:客观存在并可相互区别的事物。 属性:实体所具有的某一种特性。 码:能惟一标识实体的属性集。
E N D
第3章 计算学科中的3个学科形态 李陶深 tshli@gxu.edu.cn
对“学生选课”例子的感性认识 • 现给出“学生”和“课程”两个实体,它们的联系为: • 一个学生可以选修若干门课程 • 每门课程可以被任一学生所选修 • 请建立一个信息管理系统,以实现对“学生选课”这一信息的管理。
概念模型 • 用于信息世界的建模,是客观世界到信息世界的抽象。 • 概念模型中的主要概念有:实体、属性、码、域、联系等。 • 实体:客观存在并可相互区别的事物。 • 属性:实体所具有的某一种特性。 • 码:能惟一标识实体的属性集。 • 域:属性的取值范围。 • 联系:指不同实体集之间的联系。两个实体之间的联系分为:一对一(1:1)、一对多(1:N)、多对多(N:M)3类。
E-R模型(Entity-Relationship) • 1976年,美籍华人陈平山(Peter Pingshan Chen)提出的 • 用E-R模型来描述客观世界并建立概念模型的抽象方法。 • 实体用矩形表示,属性用椭圆形表示,联系用菱形表示,实体间的联系有一对一(1:1)、一对多(1:N)和多对多(N:M)3种情况。 • 要实现对客观事物的感性认识,必须将客观世界(在例中客观世界就是“学生选课”)抽象为信息世界。
关系模型 • 概念模型不是机器世界所支持的数据模型,而是客观世界到机器世界的一个中间层次 • 概念模型还需要转换成机器世界能支持的数据模型。 • 在数据库领域中,数据库管理系统(DBMS)能支持的数据模型有:层次、网状、关系以及面向对象等数据模型。 • 关系模型支持的是一种二维表结构的数据模型,它由关系数据结构、关系数据操作和关系数据的完整性约束条件三部分组成。 • 其中关系就是一张二维表。
概念模型(E-R图)——》关系模型 • 转换: • 学生(学号,姓名,年龄,性别); • 课程(课程号,课程名); • 学生选课(学号,课程号,成绩) • 概念模型是对现实原形的理想化,因此,将概念模型直接转换成关系模型,还不能说完全达到了对“学生选课”这一客观世界的理性认识,换言之,就是所转换的关系模型有可能还存在问题。
感性认识中存在的问题 • 在学生(学号,姓名,年龄,性别)关系中增加系名、系主任等属性时,即学生关系变为(学号,姓名,年龄,性别,系名,系主任)时,便开始出现以下问题。 • 插入异常——一个系刚成立,系主任已确定,但还未招学生时,则无法将系名和系主任的名字插入到数据库中(学生实体中学号为码,码不能缺) • 删除异常——当一个系的学生全部毕业,删除所有毕业生时,系名和系主任的名字也就删除了 • 冗余太大——由于一个学生对应一个系名和系主任的名字,则该系系名和系主任的名字要重复。
关系模式的形式化定义 • 关系模式(R)是一个四元组,即 R=<U,D,dom,F> 其中: (1)U表示关系中所有属性的集合; (2)D表示属性集合U中属性所来自的域; (3)dom是属性到域的映射; (4)F是属性集合U上的一组数据依赖。
关系模式的形式化定义 由于D、dom与模式设计关系不大,可将关系模式简单地表示为一个二元组 R=<U,F> • 1NF的定义:作为一张二维表的关系,每一个分量必须是不可再分的数据项,满足这个条件的关系模式就属于1NF。 • 2NF的定义:若R∈1NF,且每一个非主属性不存在对码的部分函数依赖,则 R∈2NF。在定义中,非主属性为不属于码的那些属性。 • 3NF的定义:若R∈2NF,且每一个非主属性不存在对码的传递函数依赖,则 R∈3NF。
对“例子”问题的理性认识 • 例子最初是属于1NF、2NF、3NF,但是当在学生属性集U中增加系名和系主任后,就出现了这样的传递函数依赖:学号(码)→系名,系名→系主任。因此,它就不属于3NF了。 • 不属于3NF的所有关系模型都会出现插入异常、删除异常和冗余的问题。 • 还必须依靠分解算法对模式进行分解,并满足3NF的要求。 • 在数据依赖理论的指导下,可完成模式的分解任务。 • 就例子而言,可以再划分一个关系,即系(系号,系名,系主任名),从而满足了关系模式规范化的要求,实现了对例子的理性认识。
从概念模型向满足规范化要求的关系模型的转换,其实质是认识过程由感性认识(抽象)上升到理性认识(理论)的过程,这个过程包含两方面的内容:从概念模型向满足规范化要求的关系模型的转换,其实质是认识过程由感性认识(抽象)上升到理性认识(理论)的过程,这个过程包含两方面的内容: • 一方面是有关理论的建立; • 另一方面是如何在理论的指导下,在具体的设计中,实现对客观世界的理性认识。 • 前者是对科学研究而言的,而后者是对工程设计而言的。
“学生选课”系统的工程设计 • 建立起正确的关系模型后,还要根据具体的关系数据库管理系统对该模型进行定义,下面,给出定义该模型的SQL语句: • CREATE TABLE STUDENT • ( SNO CHAR(9) NOT NULL, • SN CHAR(16), • SAGE INT, • SEX CHAR(1) );
“学生选课”系统的工程设计 • CREATE TABLE COURSE • ( CNO CHAR(6) NOT NULL, • CN CHAR(22) ); • CREATE TABLE SC • ( SNO CHAR(9) NOT NULL, • CNO CHAR(6), • GRADE INT ); • CREATE TABLE DEPARTMENT • ( DNO CHAR(9) NOT NULL, • DN CHAR(16), • DEAN CHAR(8));
“学生选课”系统的工程设计 • 接下来,便可以进行数据的输入、修改和查询,从而完成对“学生选课”的管理。 • 一个简单的查询:查询选修了“数据库”课程,并且成绩在90分以上的所有学生的学号和姓名。 • SELECT SNO,SN • FROM STUDENT,SC,COURSE • WHERE CN='数据库' AND GRADE>90; • 系统运行以上语句后,即可在屏幕上显示所求的结果。
3.2 计算学科的3个学科形态 3.2.1 抽象形态
一般科学技术方法论中有关抽象形态的论述 • 科学抽象是指在思维中对同类事物去除其现象的、次要的方面,抽取其共同的、主要的方面,从而做到从个别中把握一般,从现象中把握本质的认知过程和思维方法。 • 学科中的抽象形态包含着具体的内容,它们是学科中所具有的科学概念、科学符号和思想模型。
计算学科中有关抽象形态的论述 • 《计算作为一门学科》报告认为:理论、抽象和设计是我们从事本领域工作的3种主要形态按人们对客观事物认识的先后次序,我们将报告中的抽象列为第一个学科形态,理论列为第二个学科形态。抽象源于实验科学。按客观现象的研究过程,抽象形态包括以下4个步骤的内容: (1)形成假设; (2)建造模型并作出预测; (3)设计实验并收集数据; (4)对结果进行分析。
例子中有关抽象形态的主要内容及其简要分析 • 在“学生选课”例子中,有关抽象形态的内容可以用集合的方式表示为: A={学生,属性,码,关系,学号,姓名,年龄,性别,课程,课程号,课程名,成绩,E-R图,“学生选课”E-R图,关系模型,“学生选课”关系模型,……} 对“学生选课”问题的抽象(感性认识)就是通过建立“学生选课”的E-R模型和关系模型来实现的,这一步是实现“学生选课”系统的关键。
3.2 计算学科的3个学科形态 3.2.2 理论形态
一般科学技术方法论中有关理论形态的论述 • 科学认识由感性阶段上升为理性阶段,就形成了科学理论。科学理论是经过实践检验的系统化了的科学知识体系,它是由科学概念、科学原理以及对这些概念、原理的理论论证所组成的体系。 • 理论源于数学,是从抽象到抽象的升华,它们已经完全脱离现实事物,不受现实事物的限制,具有精确的、优美的特征,因而更能把握事物的本质。
计算学科中有关理论形态的论述 • 在计算学科中,从统一合理的理论发展过程来看,理论形态包括以下4个步骤的内容: (1)表述研究对象的特征(定义和公理); (2)假设对象之间的基本性质和对象之间可能存在的关系(定理); (3)确定这些关系是否为真(证明); (4)结论。
例子中有关理论形态的主要内容及简要分析 • 在与“学生选课”例子有关的关系数据库领域中,理论形态的主要内容可以用集合的方式表示为: T={关系代数,关系演算,数据依赖理论,……} 在数据库理论的指导下,我们就可以在“学生选课”关系模型(感性认识)的基础上,建立对“学生选课”问题的理性认识,从而为“学生选课”管理系统的设计奠定基础。
3.2 计算学科的3个学科形态 3.2.3 设计形态
一般科学技术方法论中有关设计形态的论述 • 设计形态与抽象、理论两个形态存在的联系 设计源于工程,并用于系统或设备的开发,以实现给定的任务。 • 设计形态和抽象、理论两个形态具有许多共同的特点。设计必须以对自然规律的认识为前提。 • 设计必须创造出相应的人工系统和人工条件,还必须认识自然规律在这些人工系统中和人工条件下的具体表现形式 • 设计形态的主要特征与抽象、理论两个形态的主要区别: 设计形态具有较强的实践性、社会性、综合性。
计算学科中有关设计形态的论述 • 在计算学科中,从为解决某个问题而实现系统或装置的过程来看,设计形态包括以下4个步骤的内容: (1)需求分析; (2)建立规格说明; (3)设计并实现该系统; (4)对系统进行测试与分析。
例子中有关设计形态的主要内容及简要分析 • “学生选课”一例中,有关设计形态的内容是指:在数据库理论的指导下,运用E-R图和关系模型,实现对例子的感性认识和理性认识,最后借助某种关系DBMS(如Oracle等),实现“学生选课”应用软件的编制。最终成果是“学生选课”应用软件以及相关资料(如需求说明书)。 就例子而言,其内容可以用集合的方式表示为: D={“学生选课”应用软件,“学生选课”需求说明,……}
3.2 计算学科的3个学科形态 3.2.4 3个学科形态的内在联系
一般科学技术方法论中有关3个学科形态内在联系的简要论述一般科学技术方法论中有关3个学科形态内在联系的简要论述 • 在计算机科学与技术方法论的原始命题中,蕴含着人类认识过程的两次飞跃,第一次飞跃是从物质到精神,从实践到认识的飞跃。这次飞跃包括两个决定性的环节:一个是科学抽象,另一个是科学理论。 • 第二次飞跃是从精神到物质,从认识到实践的飞跃。这次飞跃的实质对技术学科(计算学科就是一门技术学科)而言,其实就是要在理论的指导下,以抽象的成果为工具来完成各种设计工作。
计算学科中有关3个学科形态内在联系 的论述 3个学科形态的内在联系 • 抽象源于现实世界。建立对客观事物进行抽象描述的方法 建立具体问题的概念模型,实现对客观世界的感性认识。 • 理论源于数学。建立完整的理论体系 建立具体问题的数学模型,从而实现对客观世界的理性认识。 • 设计源于工程 。对客观世界的感性认识和理性认识的基础上,完成一个具体的任务;对工程设计中所遇到的问题进行总结,提出问题,由理论界去解决它。
计算机语言在计算学科中占有特殊的地位,它是计算学科中最富有智慧的成果之一,它深刻地影响着计算学科各个领域的发展。不仅如此,计算机语言还是程序员与计算机交流的主要工具。因此,可以说如果不了解计算机语言,就谈不上对计算学科的真正了解。计算机语言在计算学科中占有特殊的地位,它是计算学科中最富有智慧的成果之一,它深刻地影响着计算学科各个领域的发展。不仅如此,计算机语言还是程序员与计算机交流的主要工具。因此,可以说如果不了解计算机语言,就谈不上对计算学科的真正了解。 3.7 计算机语言的发展及其 3个学科形态的内在联系
现在,我们从自然语言与形式化语言、图灵机和冯·诺依曼型计算机、机器指令与汇编语言、计算机的层次结构、虚拟机的意义和作用、高级语言、应用语言和自然语言的形式化问题等方面,介绍计算机语言的发展历程及其在抽象、理论和设计3个学科形态取得的主要成果,从而揭示计算机语言发展过程中3个学科形态的内在联系。现在,我们从自然语言与形式化语言、图灵机和冯·诺依曼型计算机、机器指令与汇编语言、计算机的层次结构、虚拟机的意义和作用、高级语言、应用语言和自然语言的形式化问题等方面,介绍计算机语言的发展历程及其在抽象、理论和设计3个学科形态取得的主要成果,从而揭示计算机语言发展过程中3个学科形态的内在联系。
3.7.1 自然语言与形式语言 自然语言的定义 人类的语言(文字)是人类最普遍使用的符号系统。 • 其最基本、最普遍的形式是自然语言符号系统 • 自然语言是某一社会发展中形成的一种民族语言。例如,汉语、英语、法语和俄语等。
自然语言符号系统的基本特征 • 歧义性; • 不够严格和不够统一的语法结构。 • 例3.2 他的发理得好。 • 他的理发水平高; • 理发师理他的发理得好。 • 例3.3 他的小说看不完。 • 他写的小说看不完; • 他收藏的小说看不完; • 他是个小说迷。
高级语言的歧义性问题 • 高级程序设计语言其实也有语义的歧义性问题,高级程序设计语言存在较少的歧义性而已 • 例3.4 IF (表达式1) THEN IF (表达式2) THEN 语句1 ELSE 语句2。 • IF (表达式1) THEN (IF (表达式2) THEN 语句1 ELSE 语句2); • IF (表达式1) THEN (IF (表达式2) THEN 语句1) ELSE 语句2。
形式语言 • 人们在自然语言符号系统的基础上,逐步建立起了人工语言符号系统(也称科学语言系统),即各学科的专门科学术语(符号),使语言符号保持其单一性、无歧义性和明确性。 • 人工语言符号系统发展的第二阶段叫形式化语言,简称形式语言。 • 形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。
形式语言的基本特点 • 有一组初始的、专门的符号集; • 有一组精确定义的,由初始的、专门的符号组成的符号串转换成另一个符号串的规则。 • 在形式语言中,不允许出现根据形成规则无法确定的符号串。
形式语言的语法 • 形式语言的语法:形式语言中的转换规则。 • 语法不包含语义。 • 在一个给定的形式语言中,可以根据需要,通过赋值或模型对其进行严格的语义解释,从而构成形式语言的语义。 • 语法和语义要作严格的区分。
例3.5 • 语言W定义为: • 初始符号集:{a,b,c,d,e}。 • 形成规则:上述符号组成的有限符号串中,能组成一英语单词的为一公式;否则不是。 • 问:W是否为一形式语言? • 答:不是。 • 因为,根据形成规则,无法精确地定义转换规则。 • 原因:形成规则(语法)中包含了语义。
例3.6 • 语言X定义为: • 初始符号集:{a,b,c,d,e,(,),,,,}。 • 形成规则:上述符号组成的有限符号串中,构成表达式的为一公式,否则不是。 • 问:X是否为一形式语言? • 答:不是。 • 原因:与例3.5相同。
例3.7 • 语言Y定义为: • 初始符号集:{a,b,c,d,e,(,),,,,}。 • 形成规则:上述符号组成的有限符号串中,凡以符号“(”开头且以“)”结尾的符号串,为一公式。 • 问:Y是否为一形式语言? • 答:不是。 • 因为,根据形成规则,无法对不是以符号“(”开头且以“)”结尾的符号串进行判定。例如,(a+b)c。
例3.8 • 语言Z定义为: • 初始符号集:{a,b,c,d,e,(,),,,,}。 • 形成规则:上述符号组成的有限符号串中,凡以符号“(”开头且以“)”结尾的符号串,为一公式,否则不是。 • 问:Z是否为一形式语言? • 答:是。
形式化的产物 • 由于技术科学(计算学科主要是一门技术科学)的语言从类型上说基本上是描述性、断定性而非评论性的,在描述性语言中又以分析陈述为主。 • 技术科学就更有可能充分运用形式语言来表达自己深刻而复杂的内容,并进行演算化的推理。 • 计算机语言是一种形式化语言。 • 计算机的诞生又与形式化研究的进程息息相关。 • 不论是计算机语言还是数字计算机,它们都是形式化的产物。
3.3 计算机语言的发展及其3个学科形态的内在联系 3.3.2 图灵机与冯·诺依曼型计算机
图灵机及其他计算模型 • 图灵的观点及结论: • 凡是能用算法方法解决的问题,也一定能用图灵机解决;凡是图灵机解决不了的问题,任何算法也解决不了。 • 与图灵机等价的计算模型: • 递归函数 • λ-演算 • POST规范系统 • 图灵机是从过程这一角度来刻画计算的本质,其结构简单、操作运算规则也较少,从而为更多的人所理解。
图灵机 • 图灵机由一条两端可无限延长的带子、一个读写头以及一组控制读写头工作的命令组成,
图灵机 • 写在带子上的符号为一个有穷字母表:{S0,S1,S2,…,Sp}。 • 可以认为这个有穷字母表仅有S0、S1两个字符, • 其中S0可以看作是“0”,S1可以看作是“1”, • 由 “0”和“1”组成的字母表可以表示任何一个数。
由于“0”和“1”只有形式的意义,因此,也可以将S0改称为“白”,S1改称为“黑”,甚至,还可以改称为“桌子”和“老虎”,这样改称的目的在于割断与直觉的联系,并加深对布尔域中的值{真,假},以及二进制机器本质的理解。机器的控制状态表为:{q1,q2,…,qm}。由于“0”和“1”只有形式的意义,因此,也可以将S0改称为“白”,S1改称为“黑”,甚至,还可以改称为“桌子”和“老虎”,这样改称的目的在于割断与直觉的联系,并加深对布尔域中的值{真,假},以及二进制机器本质的理解。机器的控制状态表为:{q1,q2,…,qm}。 • 将一个图灵机的初始状态设为q1,在每一个具体的图灵机中还要确定一个结束状态qw。
一个给定机器的“程序” • 机器内的五元组(qiSjSkR(或L或N)ql)形式的指令集,五元组定义了机器在一个特定状态下读入一个特定字符时所采取的动作。5个元素的含义如下: • qi表示机器目前所处的状态; • Sj表示机器从方格中读入的符号; • Sk表示机器用来代替Sj写入方格中的符号; • R、L、N分别表示向右移一格、向左移一格、不移动; • ql表示下一步机器的状态。