本书以培养学生的计算思维能力为目标,以计算机中信息的表示、存储、压缩、处理和传输为主线,以易得易用且前景看好的Python、SQLite等语言和软件为工具,系统讲解了“大学计算机基础”课程涵盖的知识和技术。本书的主要内容包括3个方面: 计算机软件、硬件的概念及基本工作方式;算法的概念、算法与数据结构以及常用算法的基本思想;数据库系统的概念、工作方式及基本操作方法。 本书着重讲解计算机科学技术的基础知识和基本思想方法,对涉及的程序设计语言和软件工具的介绍也力图、清晰,便于读者学习和运用。本书可用作高等院校非计算机专业“大学计算机基础”课程的教材,也可作为科技工作者或其他工作人员的参考书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
本书作者长期从事计算机基础课的教学工作,具有丰富的教学、科研经验,编写的教材符合教学规律,已被多所高校选用。
目录
大学计算机基础教程第1章计算机与信息化社会1
1.1计算机的诞生和发展1
1.2了解计算机3
1.2.1计算机是如何工作的3
1.2.2什么是程序设计语言5
1.2.3什么是机器语言6
1.2.4什么是汇编语言7
1.2.5什么是高级语言8
1.3信息化生存9
1.3.1从互联网思维谈起9
1.3.2无所不在的计算设备12
1.3.3无远弗届的云计算13
1.3.4与人绑定15
1.3.5线上到线下17
习题119
第2章Python语言20
2.1Python编程环境和解释器20
2.1.1Python编程环境的使用20
2.1.2Python程序的一般结构22
2.1.3Python解释器的使用23
2.2数据的表示及输入输出26
2.2.1常量与变量26
2.2.2数据的输入输出28
2.2.3常用函数29
2.2.4运算符与表达式31
2.3序列34
2.3.1字符串34
2.3.2列表36
2.3.3元组37
2.3.4字典39
2.4程序的控制结构40
2.4.1分支语句40
2.4.2while循环语句41
2.4.3for循环语句42
2.4.4用户自定义函数44
2.4.5模块46
2.5类和对象47
2.5.1类的定义和使用48
2.5.2面向对象程序设计方法50
2.5.3类的继承性52
2.5.4异常处理54
习题256
大学计算机基础教程目录
第3章数据的计算机表示61
3.1逻辑电路及逻辑运算61
3.1.1门电路及基本逻辑运算61
3.1.2组合逻辑电路63
3.1.3时序逻辑电路64
3.2数值的计算机表示67
3.2.1二进制数68
3.2.2十六进制数及数制转换70
3.2.3数的补码表示71
3.2.4定点数73
3.2.5浮点数74
3.2.6IEEE标准浮点数76
3.2.7BCD码79
3.3文字的计算机表示81
3.3.1ASCII码81
3.3.2GB 2312—1980汉字编码标准83
3.3.3GB 18030汉字编码标准84
3.3.4Unicode标准88
3.3.5Unicode字符的存储格式90
3.4图片与声音的数字化93
3.4.1数字化图形和图像93
3.4.2图像的采样及存储96
3.4.3数字化音频98
3.5信息量与数据压缩101
3.5.1信息量101
3.5.2信息熵103
3.5.3信息熵与数据压缩105
3.5.4熵编码算法108
习题3112
第4章数据结构115
4.1数据结构的概念115
4.1.1数据及数据元素115
4.1.2数据结构的研究对象117
4.1.3数据结构的定义118
4.2线性表119
4.2.1线性表的概念120
4.2.2线性表的顺序存储结构121
4.2.3线性表的链式存储结构123
4.2.4栈127
4.2.5队列129
4.3树与二叉树131
4.3.1树的概念131
4.3.2二叉树的概念及性质133
4.3.3二叉树的存储结构135
4.3.4二叉树的遍历136
4.4图138
4.4.1图的概念138
4.4.2图的存储结构140
4.4.3图的遍历142
4.5查找143
4.5.1查找的概念144
4.5.2顺序查找145
4.5.3折半查找147
4.6排序148
4.6.1排序的概念148
4.6.2插入排序150
4.6.3交换排序152
4.6.4选择排序154
习题4156
第5章数据库160
5.1数据库系统组成与结构160
5.1.1数据库的概念160
5.1.2数据库系统组成163
5.1.3数据库系统的三级模式结构165
5.2数据库管理系统167
5.2.1关系数据库167
5.2.2数据库管理系统的功能170
5.2.3常见数据库管理系统171
5.3SQL语言及数据库操作173
5.3.1SQL语言的功能与特点174
5.3.2SQL语言的语句175
5.3.3创建SQLite数据库179
5.3.4SQLite数据库的数据查询与更新183
5.3.5Python程序操作SQLite数据库185
习题5188
第6章算法设计191
6.1算法的特征及评价191
6.1.1算法的概念191
6.1.2算法的特征193
6.1.3算法求解与解析解194
6.1.4算法的表示196
6.1.5算法的复杂度198
6.2递推、迭代和递归202
6.2.1递推法202
6.2.2递推法与代数解法205
6.2.3迭代法207
6.2.4递归法208
6.2.5尾递归法211
6.3构造算法的常用方法212
6.3.1穷举法212
6.3.2贪心法215
6.3.3分治法218
6.3.4动态规划算法222
6.3.5回溯法228
6.3.6分支限界法234
6.3.7分支限界法求解单源最短路径问题241
习题6245
第7章数据的传输248
7.1计算机网络概述248
7.1.1计算机网络的历史发展248
7.1.2计算机网络的功能250
7.1.3计算机网络的传输介质251
7.1.4网络体系结构与网络协议252
7.2编码与加密255
7.2.1编码与解码255
7.2.2检错与纠错260
7.2.3加密与解密技术262
7.3网络结构266
7.3.1网络的分类266
7.3.2网络地址269
习题7272
第8章操作系统275
8.1操作系统概述275
8.1.1操作系统的历史回顾275
8.1.2无所不在的操作系统277
8.1.3操作系统的目标与功能279
8.2进程与线程281
8.2.1进程的概念281
8.2.2线程的概念283
8.2.3多线程285
8.2.4生产者消费者问题286
8.3死锁问题291
8.3.1死锁的概念291
8.3.2银行家算法292
8.4设备管理294
8.4.1I/O控制方式294
8.4.2缓冲技术296
8.5分布式操作系统299
习题8301
参考文献303
第5章数据库数据库技术是使用计算机进行数据处理的主要技术。它广泛地应用于人类社会的各个方面。在以大批量数据的存储、组织和使用为基本特征的仓库管理、财务管理、人事档案管理以及企事业单位的生产经营管理等事务处理活动中,都要使用称为DBMS(Data Base Management System,数据库管理系统)的软件来构建专门的数据库系统,并在DBMS的控制下组织和使用数据,从而执行管理任务。不仅如此,在情报检索、专家系统、人工智能、计算机辅助设计等各种非数值计算领域以及基于计算机网络的信息检索、远程信息服务、分布式数据处理、复杂市场的多方面跟踪监测等方面,数据库技术也都得到了广泛应用。时至今日,基于数据库技术的管理信息系统、办公自动化系统以及决策支持系统等已经成为企业、行业或地区从事生产活动以及日常生活的重要基础。5.1数据库系统组成与结构数据库系统是一种有组织地、动态地存储大量关联数据,方便用户访问的计算机软件和硬件资源组成的系统。存储于数据库中的数据与应用程序是相互独立的。数据是按照某种数据模型组织在一起,保存在数据库文件中的。数据库系统对数据的完整性、性、安全性提供统一而有效的管理手段。并对用户提供管理和控制数据的各种简单明了的操作命令或者程序设计语言。用户使用这些操作命令或者编写程序来向数据库发出查询、修改、统计等各种命令,以得到满足不同需要的数据。数据库系统的结构可以从多种不同的层次或角度来考察。从DBMS的角度看,数据库系统通常采用三级模式结构。5.1.1数据库的概念现代社会中,需要管理和利用的数据资源越来越庞杂。例如,一所大学要将描述学生、课程、教师以及学生选课、教师授课等各种事物的数据有机地组织起来,以便随时查询、更新和抽取,从而指导日常教学;一个商贸公司要将描述商品、客户、雇员和订单的数据组织起来,用于指导经营活动。为了有效地收集、组织、存储、处理和利用来自于生产活动和日常生活中的各种数据,数据库技术应运而生并成为当今数据处理的主要技术。简单地说,数据库是按照一定的方式来组织、存储和管理数据的“仓库”。数据库是由称之为DBMS的软件来统一管理的。用户根据自己的业务需求选择某种适用的DBMS(如Microsoft SQL Server、MySQL等),按照它所提供的操作界面来创建数据库并随时存取或更新其中的数据。一般来说,一个数据库是基于相应业务所涉及的多个部门或个人之间的所有数据而构建的,其中的数据自然要为每个部门或个人用户所共享。当然,不同部门和个人之间需要存放和操纵的数据的范围可以有所不同。例51一所大学的数据库。大学需要存储和处理教师、学生、课程等各方面的相关数据,这些数据存储于通过某种DBMS创建的数据库中,并分别由人事部门、教务部门、学生管理部门和学术委员会根据自己的业务来存取和操纵相关范围内的数据,如图51所示。大学计算机基础教程第5章数据库图51一所大学的数据库系统目前,数据库系统基本上都是按照“关系数据模型”来组织数据的。这种方式将满足所有下属部门业务需求的数据存放在多个称为“关系”的数据表中,相关人员通过DBMS来存取、查询或更新(插入、删除或修改)其中的数据。例如,可以将学生、课程和选课的相关数据分别存放在如图52所示的3个表中。图52数据库中的学生表、课程表和选课表这3个表中,有些数据项(栏目、列)是同名且存放相同类型数据的,可用于建立表和表之间的联系,如图53所示。图53数据库中3个表之间的联系1. 数据库中的表数据库(特指按照关系模型创建的数据库)的基本成分是一些存放数据的表。数据库中的表从逻辑结构上看相当简单,它是由若干行和列简单交叉形成的,不能表中套表。要求表中每个单元都只包含一个数据,可以是字符串、数字、货币值、逻辑值、时间等较为简单的数据。表中的一行称为一个记录。记录的集合即为表的内容。一个记录的内容是描述一类事物中的一个具体事物的一组数据,如一个学生的学号、姓名、入学分等。一般地,一个记录由多个数据项构成,数据项的名称、顺序、数据类型等由表的标题决定。表名以及表的标题是相对固定的,而表中记录的数量和多少则是经常变化的。注意: 数据库中的表与外形相似的Excel中的“工作表”是不一样的。工作表可看作单元格的集合,每个单元格都可以随意存放不同类型的数据,也可以使用公式求得数据。而数据库表中的每个记录都是相同结构的,每个单元格都受标题的约束,只能存放符合条件的数据。表与表之间可以通过彼此都具有的相同字段联系起来。例如,学生表和选课表都有“学号”字段,学生表中一条记录可以关联选课表中多条记录。这样就不必在选课表中重复包含学生的其他信息,减少了数据冗余。2. 数据库系统的功能数据库系统是将累积了一定数量的记录管理起来以便再利用的数据处理系统,故不难推测,建立数据库的主要目的是以下几个: (1) 输入记录。规定了表的格式或者说创建了表的结构之后,就可以按照这种规定来“填充”表中的数据了。DBMS提供相应的输入方式(操作命令或图形用户界面),使得用户可以方便地输入每个记录。例如,在Microsoft Access中,打开类似于图52所示的“学生”表,即可逐个输入每个学生的记录。(2) 输出报表。报表是按照某种条件筛选记录之后形成的记录的集合,可以打印成文书、形成电子文档或者作为某种数据处理系统的加工对象。DBMS提供输出报表的各种方式,用户可以按照需求选择不同的内容以及输出格式。例如,可以逐行打印出某个班级所有学生某门课程的成绩。(3) 查询。按照DBMS规定的格式设置查询条件并找出符合条件的记录。例如,输入一个SQL语言(将在5.3节讲解)的查询语句作为操作命令:SELECT课程号, 课程名, 学分FROM课程WHERE学分>5即可在课程表中查询那些5个以上学分的课程的课程号、课程名和学分。(4) 修改记录。现实世界中的事物是不断变化的,相应数据库中的数据也应该随之而变。例如,一所大学中,每年都有毕业的学生和新入学的学生,数据库中的学生表就应该随时调整。相关人员可以按照DBMS所提供的方法(SQL语言的数据操纵语句或图形化用户操作界面)来进行调整。5.1.2数据库系统组成数据库系统是一种按照数据库方式存储、管理数据并向用户或应用系统提供数据支持的计算机应用系统,是存储数据的介质、数据处理的对象和管理系统的集合体。图54数据库系统这种系统通常由存储数据的数据库、操纵数据的应用程序以及数据库管理员(DBA)等各种人员组成,在DBMS软件的统一管理下工作,如图54所示。1. 数据库数据库是一个单位或组织按某种特定方式存储在计算机内的数据的集合,如工厂中的产品数据,政府部门的计划统计数据,医院中的病人、病历数据等。这个数据集合按照能够反映出数据的自然属性、实际联系以及应用处理要求的方式有机地组织成一个整体存储,并提供给该组织或单位内的所有应用系统(或人员)共享使用。应该注意的是: 数据库中的数据是一种处理用的中间数据,称为业务数据。它与输入输出数据不同。当然,可以将输入数据转变为业务数据存入数据库中,也可以从数据库中的数据推导产生输出数据。数据库通常由两大部分组成: 一是有关应用所需要的业务数据的集合,称为物理数据库,它是数据库的主体;二是关于各级数据结构的描述数据,称为描述数据库,通常由一个数据字典系统管理。运行数据库系统的计算机要有足够大的内存储器、大容量磁盘等联机存储设备和较高速的数据传输硬件设备,以支持对外存储器的频繁访问,还需要有足够数量的脱机存储介质,如软盘、外接式硬盘、磁带、可擦写式光盘等,以存放数据库备份。2. DBMS及其软件支持系统DBMS(数据库管理系统)是数据库系统的核心。DBMS一般是通用软件,由专门的厂家提供。DBMS负责统一管理和控制数据库,执行用户或应用系统交给的定义、构造和操纵数据库的任务,并将执行的结果提供给用户或应用系统。DBMS是在操作系统(可能还包括某些实用程序)支持下工作的。因为计算机系统的硬件和软件资源是由操作系统统一管理的,故当DBMS进行分配内存、创建或撤销进程、访问磁盘等操作时,必须通过系统调用请求操作系统为其服务。操作系统从磁盘取出来的是物理块,对物理块的解释则是由DBMS完成的。数据库系统中的软件通常还包括应用程序,数据库应用程序是通过DBMS访问数据库中的数据并向用户提供服务的程序。简单地说,它是允许用户插入、删除和修改并报告数据库中数据的程序。这种程序由程序员通过程序设计语言或某些软件开发工具(如Python、Java、Delphi、Visual C 等),按照用户的要求编写的。DBMS将数据和操纵数据的程序隔离开来。程序必须与DBMS接口才能对数据库中的数据进行查询、插入、删除、更新等各种操作。因而可以由DBMS集中实施安全标准,以保障数据的一致性和完整性。另外,用户不必考虑数据的存储结构,可以将注意力集中在数据本身的组织和使用上。3. 人员开发、管理和使用数据库系统的人员主要有数据库管理员、系统分析员、数据库设计人员、应用程序员和最终用户。(1) 数据库管理员(DataBase Administrator,DBA)。对于较大规模的数据库系统来说,必须有人负责建立、维护和管理数据库系统,承担这种任务的人员称为DBA。DBA是控制数据整体结构的人,负责保护和控制数据,使数据库能为任何有权使用的人所共享。DBA的职责包括: 定义并存储数据库的内容,监督和控制数据库的使用,负责数据库的日常维护,必要时重新组织和改进数据库等。DBA负责维护数据库,但对数据库的内容则不负责。而且,为了保障数据的安全性,数据库的内容对DBA应该是封锁的。例如,DBA知道职工记录类型中含有工资数据项,他可以根据应用的需要将该数据项类型由6位数字型扩充到7位数字型,但是他不能读取或修改任一职工的工资值。(2) 系统分析员和数据库设计人员。系统分析员负责应用系统的需求分析和规范说明,要与用户及DBA配合,确定系统的软件和硬件配置,并参与数据库的概要设计。数据库设计人员负责确定数据库中的数据,并在用户需求调查和系统分析的基础上,设计出适用于各种不同种类的用户需求的数据库。在很多情况下,数据库设计人员是由DBA担任的。(3) 应用程序员。他们具备一定的计算机专业知识,可以编写应用程序来存取并处理数据库中的数据。例如,库存盘点处理、工资处理等通常都是这类用户完成的。(4) 最终用户。最终用户指的是为了查询、更新以及产生报表而访问数据库的人们,数据库主要是为他们的使用而存在的。最终用户可分为以下3类: 偶然用户。主要包括一些中层或高层管理者或其他偶尔浏览数据库的人员。他们通过终端设备,使用简便的查询方法(命令或菜单项、工具按钮)来访问数据库。他们对数据库的操作以数据检索为主,例如,询问库存物资的金额、某个人的月薪等。 简单用户。这类用户较多,银行职员、旅馆总台服务员、航空公司订票人员等都属于这类用户。他们的主要工作是经常性地查询和修改数据库,一般都是通过应用程序员设计的应用系统(程序)来使用数据库的。 复杂用户。包括工程师、科技工作者、经济分析专家等博学的最终用户。他们地了解自己工作范围内的相关知识,熟悉DBMS的各种功能,能够直接使用数据库语言,甚至有能力编写自己的程序来访问数据库,完成复杂的应用任务。典型的DBMS会提供多种存取数据库的工具。简单用户很容易掌握它们的使用方法;偶然用户只需会用一些经常用到的工具即可;博学用户则应尽量理解大部分DBMS工具的使用方法,以满足自己的复杂需求。5.1.3数据库系统的三级模式结构从DBMS的角度看,数据库系统有一个严谨的体系结构,从而保障其功能得以实现。根据ANSI/SPARS(美国标准化协会和标准计划与需求委员会)提出的建议,数据库系统是三级模式和二级映像结构,如图55所示。图55数据库系统的三级模式结构1. 三种模式数据库的基本结构是由用户级、概念级和物理级组成的三级结构,分别称为概念模式、外模式和内模式。(1) 概念模式。简称模式,是数据库中全体数据的逻辑结构和特征的描述,即数据库所采用的数据模型。一个数据库只有一个概念模式,它是由数据库设计者综合所有用户数据,按照统一的观点构造而成的。在定义模式时,不仅要定义数据的逻辑结构,例如,数据记录由哪些数据项组成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。DBMS提供模式描述语言DDL来定义概念模式。概念模式是数据库系统模式的中间层,既不涉及数据库物理存储细节和硬件环境,也与具体的应用程序,与所使用的程序设计语言或应用开发工具无关。它由数据库管理员(DBA)统一组织管理,故又称为DBA视图。(2) 外模式。又称子模式,它是数据库用户(包括应用程序员和最终用户)能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与具体的应用有关的数据的逻辑表示。外模式通常是概念模式的子集,一个数据库可以有多个外模式。外模式的描述随用户的应用需求、处理数据的方式的不同而不同,即使是来自模式中同样的数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另外,同一外模式也可为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。(3) 内模式。又称存储模式或物理模式,它是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录是顺序存储还是按B树结构或按Hash(散列)方式存储,索引按什么方式组织,数据是否压缩存储、是否加密,数据的存储记录结构有什么规定,等等。一个数据库只有一个内模式。从形式上来看,一个数据库就是存放在外存储器上的一个或多个物理文件的集合。无论哪一级模式都只是处理数据的一个框架,按这些框架填入的数据才是数据库的内容。以外模式、概念模式或内模式为框架的数据库分别称为用户数据库、概念数据库和物理数据库。物理数据库是实际存放在外存储器里的数据,而概念数据库和用户数据库只不过是对物理数据库的抽象的逻辑描述而已。用户数据库是概念数据库的部分抽取;概念数据库是物理数据库的抽象表示;物理数据库是概念数据库的具体实现。2. 二级映像数据库系统的三级模式是对数据的三个抽象级别,而数据实际上只存在于物理层。在一个基于三层模式结构的DBMS中,每个用户实际上只需要关注自己的外模式。因此,DBMS必须将外模式中的用户请求转换成概念模式中的请求,然后再将其转换成内模式中的请求,并根据这一请求完成在数据库中的操作。例如,如果用户的请求是检索数据,则先要从数据库中抽取数据,然后转换成与用户的外部视图相匹配的格式。为了实现三个层次之间的联系和转换,DBMS提供了二级映像: 外模式/模式映像和模式/内模式映像。注意: 所谓映像是用来指定映像双方如何进行数据转换的对应规则。(1) 外模式/模式映像。一个模式可以对应多个外模式,每个外模式在数据库系统中都有一个外模式/模式映像,它定义了这个外模式和模式之间的对应关系。映像的定义包含在各自外模式的描述中。当模式改变(如增加新的关系、属性,改变属性的数据类型等)时,DBA会相应地改变各个外模式/模式映像,可以使外模式保持不变,从而使得依据外模式编写的应用程序不必修改,这就保障了数据与程序的逻辑独立性。(2) 模式/内模式映像。数据库中只有一个模式,也只有一个内模式,故模式/内模式映像是的,它定义了数据库全局逻辑结构与存储结构之间的关系。模式/内模式映像定义通常包含在模式描述中。当数据库的存储结构改变时,DBA会相应地改变模式/内模式映像,从而使模式保持不变,也不必修改应用程序,这就保障了数据与程序的物理独立性。用户根据外模式来操纵数据库时,数据库系统通过外模式/模式映像使用户数据库与概念数据库相联系,又通过模式/内模式的映像与物理数据库相联系,从而使用户实际使用物理数据库中的数据。其间的转换工作是由DBMS完成的。5.2数据库管理系统DBMS(数据库管理系统)是为数据库的建立、使用和维护而配置的软件系统,是数据库系统的核心组成部分,可看作用户和数据库之间的接口。目前常用的DBMS大都是关系型的,称为RDBMS(Relational DataBase Management System,关系数据库管理系统)。DBMS建立在操作系统的基础上,负责对数据库进行统一的管理和控制。数据库系统的一切操作,包括查询、更新以及各种控制等,都是通过DBMS进行的。用户或应用程序发出的各种操作数据库中数据的命令也要通过DBMS来执行。DBMS还承担着数据库的维护工作。它能够按照DBA(数据库管理员)的规定和要求,保障数据库的安全性和完整性。5.2.1关系数据库目前绝大多数数据库都是关系数据库,即以关系(特定形式的二维数据表)的形式来表现数据以及数据之间的联系,并在RDBMS的支持下进行关系的创建以及其中数据的查询、存取和更新等操作。例52Northwind数据库。Northwind数据库是微软Access软件的一个示例数据库。其中包含虚构的Northwind商贸公司的业务数据。该公司进行世界范围内的食品采购与销售,这些食品分属于饮料、点心和调味品等几大类,分别由多个供应商提供,并由销售人员通过填写订单销售给客户。所有业务数据分别存放在Northwind数据库的“产品”“类别”“供应商”“雇员”“订单”“订单明细”以及“客户”等几个表中。其中“产品”表和“类别”表如图56所示。图56Northwind数据库的产品表和类别表1. 关系数据库的层次结构完整的关系数据库可以分为4级: 数据库(database)、表(table)或视图(view)、记录(record)、字段(field),相应的关系理论中的术语是数据库、关系、元组和属性。(1) 数据库。数据库可按其数据存储方式以及用户访问方式分为两种: 本地数据库和远程数据库。本地数据库(如dBASE、Access等)驻留于本机或局域网中。如果多个用户并发访问数据库,则采取基于文件的锁定(防冲突)策略,故又称为基于文件的数据库。远程数据库通常驻留于其他计算机中,而且往往分布于不同的服务器上。用户在自己的计算机上通过SQL(Structured Query Language,结构化查询语言)访问其中的数据,故又称为SQL服务器。典型的SQL服务器有Oracle、IBM DB2、Informix以及SQL Server等。(2) 表与视图。关系数据库的基本成分是一些存放数据的表(行列结构的数据集,关系理论中称为关系)。表是由若干行若干列数据简单交叉形成的(不能表中套表)。表中每个单元都只包含一个数据,如字符串、数字、货币值、逻辑值、时间等。表的标题也称为关系模式,即组成关系的属性的集合。数据库中所有关系模式的集合构成了数据库模式。对于不同的数据库系统来说,数据库对应物理文件的映射是不同的。例如,在dBASE和Paradox数据库中,一个表就是一个文件,索引以及其他一些数据库元素也都存储在各自的文件中。而在Access和SQLite数据库中,所有表以及其他成分都聚集在一个文件中。为了方便地使用数据库,很多DBMS都提供对于视图(Access中称为查询)的支持。视图是能够从一个或多个表中提取数据的数据定义。数据库中只存放其定义,而数据仍存放在作为数据源的基表中。故当基表中数据有所变化时,视图中的数据也随之变化。(3) 记录。表中的一行称为一个记录(关系理论中称为元组)。一个记录是一组数据,用于描述一类事物中的一个具体事物,如一种产品的编号、名称、单价,一次商品交易过程中的订单编号、商品名称、客户名称、单价、数量等。一般地,一个记录由多个数据项(字段)构成,记录中的字段结构由表的标题(关系模式)决定。记录的集合(元组集合)称为表的内容。值得注意的是,表名以及表的标题是相对固定的,而表中记录的数量和多少则是经常变化的。(4) 字段。表中一列称为一个字段。每个字段表示表中所描述的对象的一个属性,如产品名称、单价、订购量等。每个字段都有相应的描述信息,如字段名、数据类型、数据宽度、数值型数据的小数位数等。由于每个字段都包含了数据类型相同的一批数据,因此,字段名相当于一种多值变量。字段是数据库操纵的最小单位。2. 主键与索引一个关系数据库中常有多个表。每个表中都需要挑选一个或多个字段来标识记录,称为主键或主码。例如,在“产品”表中,一个产品对应一条记录,“产品ID”作为主键,地标识每种产品的记录。又如,在“类别”表中,“类别ID”作为主键,地标识一类产品。可以看出,每个记录中,作为主键的字段的值都不能空缺;多个记录中,作为主键的字段的值都不能相同。当某个或某些字段被当作查找记录或排序的依据时,可将其设定为索引。一个表中可建立多个索引,每个索引确定表中记录的一种逻辑顺序。可为单个字段创建索引,也可在多个字段上创建索引。3. 表与表之间的联系表与表之间可以通过彼此都具有的相同字段(字段名不必相同)联系起来。例如,类别表和产品表都有“类别ID”字段,类别表的一条记录可以联系到产品表的多条记录。所谓关系数据库主要就是通过表与表之间的联系来体现的,这种联系反映了现实世界中客观事物之间的联系。Northwind数据库中表与表之间的关系如图57所示。图57选课数据库中表与表之间的联系可以看出,类别表字段列表中的“类别ID”字段与产品表字段列表中的“类别ID”字段之间由一条线连接起来了,而且类别表标记为1方,产品表标记为多(∞)方。这就意味着: 一个类别ID值可以在产品表中出现多次,但只能在类别表中出现一次,这种符号所描述的实际意义是: 一种类别可以包含多种产品。对于产品表来说,“类别ID”字段将本表与另一个表关联在一起的同时又是另一个表的主键,称之为外键。外键在两个表之间创建了一种“约束”,使得本表中指定字段的每个