1全国计算机四级考试复习资料———————数据库(六)一、数据模型1.数据模型的三要素(1)数据结构数据结构是所研究的对象类型(ObjectType)的集合。这些对象和对象类型是数据库的组成成分。一般可分为两类:一类是与数据类型、内容和其它性质有关的对象;一类是与数据之间的联系有关的对象。前者如网状模型中的数据项和记录,关系模型中的域、属性和关系等。后者如网状模型中的关系模型(settype)。在数据库领域中,通常按照数据结构的类型来命名数据模型,进而对数据库管理系统进行分类。如层次结构、网状结构和关系结构的数据模型分别称作为层次模型、网状模型和关系模型。相应地,数据库分别称作为层次数据库、网状数据库和关系数据库。(2)数据操作数据操作是指对各种对象类型的实例(或值)所允许执行的操作的集合,包括操作及有关的操作规则。在数据库中,主要的操作有检索和更新(包括插入、删除、修改)两大类。数据模型定义了这些操作的定义、语法(即使用这些操作时所用的语言)。数据结构是对系统静态特性的描述,而数据操作是对系统动态特性的描述。两者既有联系,又有区别。(3)数据的约束条件数据的约束条件是完整性规则的集合。完整性规则是指在给定的数据模型中,数据及其联系所具有的制约条件和依存条件,用以限制符合数据模型的数据库的状态以及状态的变化,确保数据的正确性、有效性和一致性。2.概念模型数据模型是数据库系统的核心和基础。每个DBMS软件都是基于某种数据模型的。为了把现实世界中的具体事物或事物之间的联系表示成DBMS所支持的数据模型,人们首先必须将现实世界的事物及其之间的联系进行抽象,转换为信息世界的概念模型;然后将信息世界的概念模型转换为机器世界的数据模型。也就是说,首先把现实世界中的客观对象抽象成一种信息结构。这种信息结构并不依赖于具体的计算机系统和DBMS。然后,再把概念模型转换为某一计算机系统上某一DBMS所支持的数据模型。因此,概念模型是从现实世界到机器世界的一个中间层次。现实世界的事物反映到人的大脑之中,然后人们开始认识这些事物,经过选择、命名、分类和组织等抽象工作之后形成概念模型,并进入到信息世界。•用户(user)关心的是现实世界中的事物、事物的属性及其相互关系。例如,用户可能关心他的顾客及其属性,如顾客地址、银行帐号等等。用户也关心自己的定货帐目,如谁订的货、订的什么和订多少等等。•系统分析员(analyst)同样也关心现实世界,但是系统分析员需要分析用户的信息需求。作为需求分析的结果,分析员必须以文档的形式对需求进行结构化的描述;这个文档就是信息模型。•实体(Entity)实体是构成数据库的基本元素。实体是指一个存在的东西以区别这个东西所具有的属性和这个东西与其它东西的联系。实体可以是人,也可以是物;可以是实际对象,也可以是概念;可以是事物本身,也可以是指事物之间的联系。•属性(Attribute)一个实体可以由若干个属性来刻画。属性是相对实体而言的,是实体所具有的特性。•关键字(Key)能唯一地标识实体的属性的集合称为关键字(或码)。•域(Domain)属性的取值范围称作域。•实体型(EntityType)一类实体所具有的共同特征或属性的集合称为实体型。一般用实体名及其属性来抽象地刻画一类实体的实体型。•实体集(EntitySet)同型实体的集合叫实体集。例如,学生就是一个实体集。实体集的名即是实体型。对于学生和(学号,姓名,年龄,系,年级)均是实体型,而学生是对实体型(学号,姓名,年龄,系,年级)所起的名称,两者是指同一客观对象。但本科生和研究生可以为相同实体型,而实体集不同。•联系(Relationship)现实世界的事物之间是有联系的。一般存在两类联系:一是实体内部的组成实体的属性之间的联系,二是实体之间的联系。在考虑实体内部的联系时,是把属性看作为实体。一般来说,两个实体之间的联系可分为三种:(1)一对一(1∶1)联系若对于实体集A中的每一个实体,实体集B中至多有唯一的一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记作1∶1。(2)一对多(1∶n)联系若对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1∶n。相应地有多对一(n∶1)联系多对一联系,从本质上说,是一对多联系的逆转。其定义同一对多联系类似,不再赘述。(3)多对多(m∶n)联系若对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之对应,则称实体集A与实体集B具有多对多联系,记作m∶n。实质上,多对多联系是任意一种联系。另外,同一实体集内的各个实体间也可以有各种联系。概念模型的表示方法最常用的是实体一联系方法(Entity-RelationshipApproach),简称E-R方法。该方法是由P.P.S.Chen在1976年提出的。E-R方法用E-R图来描述某一组织的概念模型。在这里仅介绍E-R图的要点。在E-R图中:(1)长方形框表示实体集,框内写上实体型的名称。(2)用椭圆框表示实体的属性,并用有向边把实体框及其属性框连接起来。(3)用菱形框表示实体间的联系,框内写上联系名,用无向边把菱形框及其有关的实体框连接起来,在旁2边标明联系的种类。如果联系也具有属性,则把属性框和菱形框也用无向边连接上。3.三种主要的数据模型实际DBMS所支持的数据模型主要有三种:•层次模型(HierarchicalModel)•网状模型(NetworkModel)•关系模型(RelationalModel)其中,关系模型是当前DBMS所支持的数据模型的主流。90年代运行的DBMS几乎都是基于关系模型的。层次模型和网状模型统称为非关系模型。非关系模型的结构可以和图论中的图相对应,比较直观,但在理论上不完备,实现效率较低,故此目前很少用。但是最近,层次模型在研究面向对象的DBMS中已得到重视。在关系模型中,数据在用户的观点中(或在用户视图中)的逻辑结构是一张二维表(Table)。•关系(Relation),对应于平常讲的一张表。•元组(Tuple),表中的一行。•属性(Attribute),表中的一列称为一个属性,给每一列起一个名,称为属性名。这一列或这个属性所有可能取的值的集合称为这个属性的值域(Domain),值域中的一个元素叫做这个属性的值。•主关键字(PrimaryKeyAttribute或PrimaryKey),是指能唯一标识一个元组的一个或一组属性。•分量(Attributevalue),是指元组中的一个属性值。•关系模式(RelationalSchema),是对关系的描述,一般用关系名(属性名1,属性名2,…,属性名n)来表示。同层次模型和网状模型相比较,关系模型具有下列特点:(1)概念单一在关系模型中,无论是实体还是实体之间的联系都用关系来表示。在关系模型中,在用户的观点中,数据的逻辑结构就是表,也只有这唯一的概念。在非关系模型中,用户要区分记录型与记录型之间的联系两个概念;当环境复杂时,数据结构异常复杂,难以掌握。而关系模型,由于概念单一,可以变复杂为直观、简单,易学易用。(2)规范化所谓关系规范化是指在关系模型中,每一个关系都要满足一定的条件要求。这些条件被称为规范条件。对于关系,一个最基本的规范条件是,要求关系中的每一个属性(或分量)均是不可分的数据项;也就是说不允许表中有表,表是不可嵌套的。(3)在关系模型中,用户对数据的操作的输入和输出都是表,也就是说,用户通过操作旧表而得到一张新表。总之,关系模型概念简单,结构清晰,用户易学易用,有严格的以数学为基础的关系理论作指导,便于DBMS的实现。基于关系的DBMS简化了应用程序员的工作,便于数据库应用系统的设计和维护。故此,关系模型自诞生以后就得到了迅速的发展,成为应用最为广泛的、唯一的数据模型。二、数据库系统的结构1.数据库系统的三级模式结构数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式(externalschema),或子模式(subschema)或用户模式(userschema),是指数据库用户所看到的数据结构,是用户看到的数据视图。模式(schema)或逻辑模式(logicschema),是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式(internalschema),或存储模式(storageschema),或物理模式(physicalschema),是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。模式描述的是数据的全局的逻辑结构,决定了DBMS的功能。外模式涉及的仅是局部的逻辑结构,是模式的子集,是对模式的调用。数据库系统的三级模式是对数据进行三个层次抽象的工具。通过三级模式,把对数据的具体组织留给DBMS来完成,使得用户能在高层次上处理数据的逻辑结构,而不必关心数据的物理结构。为了实现这三个层次这间的联系,DBMS在沟通三级模式中提供了两个映象:外模式-模式映象模式-内模式映象(1)模式模式规定了数据库中全部数据的一个逻辑表示或描述形式。模式既不同于内模式,也不同于外模式。它比内模式抽象,不涉及数据的物理结构和存储介质。它与具体的应用程序或高级语言无关。(2)外模式外模式是个别用户的数据视图,即与某一应用有关的数据的逻辑表示。(3)内模式内模式是全部数据库的内部表示或底层描述,是用来定义数据的物理结构和存取方式的。(4)二级映象对于同一个模式,可以有任意多个外模式。外模式-模式的映象定义了某个外模式和模式之间的对应关系。这些映象的定义通常包含在各自的外模式中。当模式改变时,外模式-模式的映象要做相应的改变,以保证外模式的不变性。这是数据库管理员(DBA)的责任。模式-内模式的映象定义了数据逻辑结构和存储结构之间的对应关系。例如,字段的内部表示等。当数据库的存储结构改变时,模式-内模式的映象也须做相应的修改,以使得模式保持不变性。这仍是DBA的责任。正是由于上述二级映象的功能及其自动实现,使得数据库系统中的数据具有较高的逻辑独立性和物理独立性,从而大大地方便了用户的使用。(5)概念模式与模式ANSI研究组于1975年2月提出一个临时报告。1978年提出一个最终报告,称之为ANˉSI/SPARC报告,简称为SPARC报告。SPARC报告中指出,数据库管理系统应具有三级模式的结构,即概念模式、外模式和内模式。其中外模式和内模多与上面所讲的大致相当。但SPARC报告中的概念模式是指一个组织或部门所对应的现实世界的真实模型,即概念模型。概念模式仅描述实体及其属性和联系,不涉及机器世界的概念。概念模型是信息世界范畴内的信息的结构,而模式是机器世界范畴内的概念模型的逻辑表示。概念模型独立于具体的计算机系统,甚至是和计算机无关的,是一个组织或部门的模型。常用的描述概念模式的方法是E-R方法。模式是依赖于具体的计算机及其DBMS的。模式通过三种具体模型:层次模型、网状模型和关系模型来加以实现。概念模式必须转换成具体的数据模型,然后才能在相应的3DBMS上实现。概念模型和模式都是描述信息或数据的整体结构的,然而它们是在不同的抽象层次上加以描述的。概念模型离机器更远,形式化程度低。从远离机器的观点看,概念模型更抽象些,但更接近现实世界。而模式描述使用的是形式化的语言-模式DDL,而概念模型描述使用的是E-R图和一些自然语言。2.使用数据库的计算机系统结构广义地讲,实际上使用数据库的计算机系统由下列几个部分组成的:(1)硬件部分包括主机、外部存储设备、网络设备和电源等。(2)软件部分包括操作系统、DBMS、编译系统和应用开发工具软件等。(3)人员包括数据库管理员(DataBaseAdministrator-DBA),系统分析员(SystemAnaˉlyst)、应用程序员(Applicati