为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

第4章 数据库及其应用

2012-01-11 13页 doc 669KB 30阅读

用户头像

is_692459

暂无简介

举报
第4章 数据库及其应用12 13 第四章 数据库设计 4.1.1数据库系统的基本概念 1.数据 数据被定义为表达信息的符号记录。 数据型、数据值之分。 数据框架也称数据结构,在数据库中称为数据模式。 2. 数据库 数据库,就是相关联的数据的集合。数据库中存放着信息系统所需要的各种相关数据,是信息系统的重要组成部分。 3. 数据库管理系统 数据库管理系统(DBMS)是专门处理数据库的软件,数据库的所有工作,包括数据库的定义、数据的操纵,并发,服务以及数据库的维护和安全保护等,都通过DBMS完成,DBMS是数据库系统的核心。DBMS也需要其它...
第4章  数据库及其应用
12 13 第四章 数据库 4.1.1数据库系统的基本概念 1.数据 数据被定义为达信息的符号记录。 数据型、数据值之分。 数据框架也称数据结构,在数据库中称为数据模式。 2. 数据库 数据库,就是相关联的数据的集合。数据库中存放着信息系统所需要的各种相关数据,是信息系统的重要组成部分。 3. 数据库管理系统 数据库管理系统(DBMS)是专门处理数据库的软件,数据库的所有工作,包括数据库的定义、数据的操纵,并发,服务以及数据库的维护和安全保护等,都通过DBMS完成,DBMS是数据库系统的核心。DBMS也需要其它相关的工具软件协助工作。DBMS及工具软件要处理数据库及其中的数据都须通过操作系统。 数据语言: 1) 数据定义语言 2) 数据操纵语言 3) 数据控制语言 数据语言使用方式工: 1) 交互式命令 2) 宿主型语言 4.数据库管理员 5.数据库系统 数据库系统是指在计算机中引入数据库后的系统构成,由计算机软硬件、数据库、数据库管理系统(DBMS)、应用程序以及数据库管理员(DBA:Data Base Administrator)和数据库用户构成。典型的数据库系统构成见图1-1。 6.数据库应用系统 4.1.2 数据管理与数据库技术 计算机数据处理过程涉及的数据量很大,对数据的管理格外重要。数据管理指对数据的组织、存储、查询、维护和传输。数据库技术是目前最主要的数据管理技术。 1.数据管理技术的进展 计算机数据管理技术随着计算机软硬件技术的发展经历了三个阶段:手工管理阶段、文件系统阶段、数据库阶段。 50年代后期到60年代,计算机开始大量用于数据处理,磁盘等直接存取设备已经发明,有了操作系统,数据管理进入文件系统阶段。 用文件系统管理数据,数据可以长期保存,操作系统中有专门的文件管理模块,使应用软件不必过多考虑数据存储的物理细节;数据由应用程序定义,数据不独立,共享性差,冗余度大。 60年代中期以后,文件系统已不能满足实际需要,于是产生了数据库技术,出现了统一管理数据的专门软件──数据库管理系统(DBMS:Data Base Management System)。数据库技术有以下特点: ⑴.数据结构化:数据库是存储在外存上的按一定的结构组织好的数据集合。在文件系统中,文件之间是没有联系的,而数据库中的文件是相互联系的。 ⑵.数据共享性好、冗余度低:所谓数据共享是指不同应用程序使用同一个数据库上的数据时不需各自定义和存储数据(这正是文件系统的缺陷之一)。数据库中的数据是面向系统内所有用户需求、面向整个组织的,是完备的。而针对特定用户的应用程序所使用的数据是从数据库中抽取出来的,所以数据库中的数据无需重复保存,这样使数据冗余度减到最低,也增强了数据库中数据的一致性。 ⑶.数据独立性强:由于数据库采用三级模式、两级映射,使数据库具有很强的数据独立性。由于物理设备的改变而使物理数据库发生变化不会影响数据库逻辑结构的变化,这称为物理数据独立性;如果数据库的全局逻辑结构发生变化,但用户应用程序使用的数据没有变化,则这种变化不影响用户程序,这称为逻辑数据独立性。 ⑷.DBMS统一管理:数据库的定义、创建、维护、运行操作等所有功能由DBMS统一管理和控制,使数据库的性能和使用方便性都有充分的体现。 2.数据模型 每一个DBMS都是基于某一种数据模型设计的,如层次模型、网状模型、关系模型。 数据模型,就是对客观世界的事物以及事物之间联系的形式化描述。目前广泛使用的是关系数据模型,按照关系模型建立的数据库称为关系型数据库。 目前常用的有实体联系模型。 将数据库设计的过程用分层转换的形式表现出来:将用户所在的实际领域称为现实世界;概念模型以概念和符号为表达方式,所在的层次为信息世界;关系模型(或DBMS所依赖的其他模型)位于数据世界。 通过将概念模型转化为数据模型进入数据世界,然后由DBMS建立起最终的实际物理数据库。 这就是数据库设计的整个变化过程(如图)。 数据库设计过程 4.2 实体联系模型 4.2.1 基本概念 在实体联系模型中,主要包括实体、属性、域、实体集、实体码以及实体联系等概念。 1.实体与属性 实体(Entity)指现实世界中任何可相互区别的事物。实体既可以是实际存在的事物(如电视机),也可以是概念性的东西(如电视机的质量)。人们通过描述实体的特征即属性来描述实体。在建立信息系统的概念模型时,实体就是系统关注的对象。 属性(Attribute)指实体某一方面的特性。一个实体可以由若干个属性来刻画。 2.域 每个属性都有一个取值范围,属性的取值范围称为域(Domain)。域是值的集合。 3.实体型、实体值与实体集 信息系统要处理众多具有相同属性构成的实体。如学生管理系统中,每一个学生都是一个实体,而全校所有学生实体的属性构成都是相同的。因此将同类实体的属性构成加以抽象,就得到实体型的概念。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型(Entity Type)。例如学生(学号,姓名,性别,年龄,专业)定义了学生实体型。 每个学生实体的具体取值就是实体值。如{“200301001”,“张三”,“男”,“18”,“工商管理”}就是一个实体值, 同型实体的集合称为实体集(Entity Set)。 4.码 能够唯一确定实体集中每一个实体的属性或属性组合称为码(Key)。 5.实体与实体的联系 实体间的联系方式可以分为三类: ⑴.一对一联系: ⑵.一对多联系: ⑶.多对多联系: 4.2.2实体-联系方法 1976年P.P.Chen提出实体-联系方法(Entity Relationship Approach),用实体-联系(E-R)图来建立实体联系模型。 矩形框中写上实体名表示实体; 椭圆框中写上属性名,在实体和它的属性间连上连线; 菱形框中写上联系名,用连线将相关实体连起来,并标上联系类别。 【例1-1】 建立学生管理系统的E-R模型。 图1-3(a) 实体及其属性 图1-3(b) 学生管理E-R图模型 4.3 关系模型 1.3.1 关系 关系模型中最重要的概念就是关系。所谓关系(Relation),直观的看,就是由行和列组成的二维表,一个关系就是一张二维表。 1.关系及相关概念 关系中的一列称为关系的一个属性(Attribute),一行称为关系的一个元组(Tuple)。 表1.1:员工关系 员工编号 姓名 性别 生日 职务 基本工资 部门 1002 赵向容 女 63.02.20 总经理 5000.00 总经理室 2001 张建国 男 73.10.11 经理 3200.00 财务部 4002 李远声 男 71.05.31 组长 1560.00 电视部 4010 章曼 女 78.12.02 营业员 920.00 电视部 5002 杨一明 男 72.04.05 营业员 1200.00 空调部 5008 钱 红 女 69.09.13 营业员 1200.00 空调部 7010 任达伟 男 82.11.01 营业员 860.00 冰箱部 关系是元组的集合。 一个关系中元组的个数称为该关系的基数。 关系的一列是一个属性。为区分各个属性,每个属性都有一个名字,称为属性名。一个关系的所有属性反映了关系中各个元组值的结构。 一个关系中属性的个数称为关系的度或目(Degree)。 每个属性都从一个有确定范围的域(Domain)中取值。域是值的集合。 候选码和主码的概念。在一个关系中,可以唯一确定每个元组的属性或属性组称为候选码(Candidate Key),从候选码中挑选一个作为该关系的主码(Primary Key)。 有些属性在不同的关系都出现,如果在一个关系中有一个属性(组)是另一个关系的主码,并作为这两个关系连接的纽带,这个属性(组)就是“外码”。存放在一个关系中的另一个关系的主码称为外码(Foreign Key)。它们分别是员工关系和商品关系的主码。 2.关系的特点 并不是任何的二维表都可以称为关系。关系具有以下特点: ⑴.关系中的每一列属性都是原子属性,即属性不可再分; ⑵.关系中的每一列属性都是同质的,即每一个元组的该属性取值都表示同类信息; ⑶.关系中的属性间没有先后顺序; ⑷.关系中元组没有先后顺序; ⑸.关系中不能有相同的元组(但有些DBMS中对此不加限制,但如果关系定义了主码,则每个元组的主码值不允许重复)。 3.关系模式 一个关系模式(Relation Schema),包括关系模式名、关系模式的属性构成、关系模式中涉及的域以及各属性到域的对应情况。 关系模式可以表示为: 关系模式名(属性1,属性2,…,属性n)。 4.3. 2 E-R模型向关系模型的转化 E-R模型向关系模型的转化比较直接,可以归纳为以下几点: ⑴.每个实体型都转化为一个关系模式。 给该实体型取一个关系名,实体的属性成为关系的属性。实体的码成为关系的码。 ⑵.实体间的每一个联系都转化为一个关系模式。 一般的转换方式是:给联系取一个关系名,联系涉及的各实体的码成为该关系的属性,联系的属性成为该关系其余的属性。 ⑶.对实体、实体联系转化成关系后的优化。 【例1-4】 将图1-3所示学生管理的E-R模型转化为关系模型。 ①. 基本档案(学号,姓名,性别,生日,民族,学院号,简历) ②. 学院信息(学院号,学院名,院长) ③. 课程(课程号,课程名,学分) ④. 成绩单(学号,课程号,成绩) 表1.5:基本档案关系 学号 姓名 性别 生日 民族 学院号 简历 01102001 范小默 男 82.04.10 汉 102 01102003 曾 晓 女 83.10.18 汉 102 01204002 叶盛佳 男 82.12.02 瑶 204 01204009 吴 敏 女 83.04.20 汉 204 01307010 张 宁 女 83.04.03 蒙古 307 01307021 王 景 男 83.11.23 汉 307 01307025 马汉生 男 82.08.23 汉 307 1.4.4 在不同场合使用的术语对照 在数据库设计的过程中经历了从实体联系模型到关系模型再到利用实际的DBMS(如VFP6.0)建立计算机上物理数据库的各个环节,在不同的场合,为了保持概念的独立性和完整性,分别使用了不同的术语,这里将常用的术语对照列出(表1.17),便于读者进行比较。 表1.17:术语对照表 实体联系模型 关系模型 VFP数据库 实体集 关系 表 实体型 关系模式 表结构 实体 元组 记录 属性 属性 字段 域 域 数据类型 码 候选码、主码 候选索引、主索引关键字 4.4 关系运算 由于关系是元组的集合,所以集合的并、交、差等也适用于关系。此外,关系还可以进行选择、投影和连接运算。 4.1.1 关系的并、交、差 关系的并(∪)、交(∩)、差(-)运算属于传统的集合运算,它将关系的元组看成集合的元素。但元组是由属性值构成的,是有结构的,因此,在做这三种运算时,参与运算的关系必须满足以下的两个条件: ⑴.关系的度数相同(即属性个数相同); ⑵.对应属性取自相同的域(即两个关系的属性构成相同)。 在实用时,这两项条件可以理解为参与运算的关系具有相同的关系模式。 1.并(Union) 设有关系R、S满足上述条件,定义R与S的并(Union)运算的结果是:由出现在R或出现在S中所有元组(去掉重复元组)的集合组成的关系。记作R∪S。 2.交(Intersection) 设有关系R、S满足上述条件,定义R与S的交(Intersection)运算的结果是:由同时出现在R中和S中的相同元组的集合组成的关系。记作R∩S。 3.差(Difference) 设有关系R、S满足上述条件,定义R与S的差(Difference)运算的结果是:由只出现在R中而未在S中出现的元组的集合组成的关系。记作R-S。 关系R和S的并、交、差的运算结果如图中阴影示意(见图2-1)。 R∪S R∩S R-S 图2-1 关系的并、交、差示意图 从上述运算的定义可知,交运算可以由差运算来实现,即:R∩S=R-(R-S)。 【例2-1】 已知R,S关系如表2.1、表2.2所示,则R∪S,R∩S,R-S的结果见表2.3、表2.4、表2.5。 【例2-2】 若关系SP1、SP2分别是2000年上半年和下半年已销售的商品清单,它们具有相同的关系模式,即(商品编号,商品名,型号,单位,厂家),则: 运算SP1∪SP2 意指全年已销售的商品清单; 运算SP1∩SP2 意指上下半年都有销售的商品清单; 运算SP1-SP2 意指只在上半年有销售而下半年没有销售的商品清单。 4.1.2 关系笛卡儿积(Cartesian Product) 传统的集合运算还包括笛卡儿积运算。关系的笛卡儿积将传统集合运算用在关系中。设有关系R(A1,A2,…,An),S(X1,X2,…,Xm),关系的笛卡儿积(Cartesian Product)运算记为R×S,运算结果关系的模式是(A1,A2,…,An,X1,X2,…,X m),而结果关系的元组是由R的所有元组与S的所有元组两两互相配对拼接而成。若R的基数为M1,S的基数为M2,则R×S基数为M1×M2。 【例2-3】 已知R,S关系如表2.6、表2.7所示,则R×S结果见表2.8。 4.1.3 选择(Selection) 关系的选择(Selection)运算是从一个关系中选取满足条件的元组组成结果关系。这个运算只有一个运算对象,运算的结果和原关系具有相同的关系模式。在选择运算式中,单个条件的基本表示方法是: <属性>θ<值>。 其中θ是以下运算符中之一:{=,≠,>,≥,<,≤ }。条件的运算结果为真(TRUE)表示条件成立,为假(FALSE)表示条件不成立。有时候,一个选择运算需要同时用到多个单项条件,这时,应将各个单项条件根据要求用逻辑运算符NOT(求反)、AND(并且)、OR(或者)连接起来,如果一个条件运算式中有多个逻辑运算符,它们的优先运算顺序是:NOT →AND→OR,相同的逻辑运算符按从左到右的顺序,可以用括号改变运算顺序。 选择运算的表示方法是:σ条件表达式(关系名) 【例2-4】对于关系R(表2.10),求σA=“a1” AND B=1(R)。结果见表2.11。 【例2-5】 查询学生数据库的成绩单(表1.8)中学号为“99307010”的学习情况,在基本档案关系(表1.5)中查询信息管理学院的女生数据。 查询运算式分别是: σ学号=“99307010”(成绩单) σ学院号=“307” AND 性别=“女”(基本档案) 4.1.4 投影(Project) 投影(Project)运算是在给定关系中指定若干属性(列)组成一个新关系。结果关系的属性由投影运算式指定,结果关系中的元组是由原关系中的元组去掉没有指定的属性的分量值后剩下的值组成。由于去掉了一些属性,结果中可能出现相同的元组,投影运算会去掉结果关系中相重复的元组,所以结果关系的元组可能少于原关系。 投影的表示方法:π(属性表)(关系名) 运算式中的(属性表)即是投影运算指定的要保留的属性。 【例2-6】 对于关系R(表2.12),求πA,C(R)。结果见表2.13。 【例2-7】 求表1.5基本档案关系中学生姓名和他们的民族。 π姓名,民族(基本档案) (读者可自己写出结果) 4.1.5 连接(Join) 关系的笛卡儿积可以将两个关系拼接成为一个关系,这种拼接在实际的数据库操作中很有必要,但是,笛卡儿积将两个关系所有元组都不加区分的相互拼接起来,这样拼接得到的元组很多都是无意义的,应该在做元组拼接时有所选择。连接运算实现了这一要求。 连接(Join)运算是根据给定的连接条件将两个关系中的所有元组一一进行比较,符合连接条件的元组(即使连接条件运算式为TRUE)组成结果关系。结果关系包括两个关系的所有属性。 连接的表示方法:关系1 关系2 连接条件的基本表示方法是: <关系1属性>θ<关系2属性>。 其中θ是以下运算符中之一:{=,≠,<,≤,>,≥ }。当有多个连接条件时用逻辑运算符NOT、AND或者OR连接起来。 【例2-8】 对于关系R(表2.14),S(表2.15),求: 。结果见表2.16。 由于一个关系中不允许属性名相同,所以在结果关系中针对相同的属性,在其前面加上原关系名前缀“关系名.”。 【例2-9】 针对学生关系模型(表1.5~表1.8),求每个学生及其所在学院的信息。 学生的基本信息放在“基本档案”关系中,但对于所在学院,“基本档案”中存放的是学院号,因此应将“基本档案”关系和“学院信息”关系做连接运算,连接条件是双方的关系中的学院号相等。连接运算式是: 在该运算式中,连接条件是对两个关系中都有的属性进行相等比较。写出结果关系,会发现“学院号”属性出现了两次,但是值却相同。 在连接条件中使用“=”进行相等比较,这样的连接称为等值连接。 2.1.6 自然连接(Natural Join) 虽然等值连接并不要求进行比较的属性是相同属性,只要两个属性可比即可,但对两个关系按照相同的属性进行等值连接却是连接运算中最常见的,然而等值连接的结果关系中包括原来关系中的所有属性,这样就造成相同属性的重复。如果在结果关系中去掉相同属性,这样就得到最重要的连接运算,称其为自然连接(Natural Join)。与一般的连接相比,自然连接有两个特点: ⑴.自然连接是将两个关系中相同的属性进行相等比较; ⑵.结果关系中去掉重复的属性。 自然连接的表示方法:关系1 关系2 4.2 数据完整性 最主要的是要满足三类数据完整性约束规则:实体完整性、参照完整性和用户定义的完整性。 2.2.1 实体完整性规则 在关系中,如果定义了主码,则指定主码的属性值,就能够确定唯一的元组。 如表2.18所示学生关系,学号是主码,其中第2个元组的学号为空值(NULL),这样在关系数据库使用时存在问题:由于主码是唯一标识各元组的属性,因此没有学号值意味着存在不可识别的学生元组(实体),这是不允许的。 实体完整性规则:定义了主码的关系中,不允许任何元组的主码属性值为空值。 因为关系中的一个元组对应实体联系模型中的一个实体,所以实体完整性规则保证数据库中关系的每个元组(即实体)都是可以区分的。 2.2.2 参照完整性规则 参照完整性规则:关系S的主码作为外码出现在关系R中,它在R中的取值只能符合两种情形之一:或者为空值(NULL);或者在关系S的主码中存在对应的值。 这里,关系R称为参照关系,关系S称为被参照关系。R和S可以是同一个关系。 当学生关系中的学院号取值为空时,表示该学生尚未在任何学院注册;已经在某一学院注册的学生的学院号的取值一定能在学院关系中在学院号属性找到对应的编码值。 这一规则也叫引用完整性规则,它用来防止对不存在的数据的引用。 2.2.3 用户定义的完整性规则 用户定义的完整性规则:用户根据实际需要对数据库中的数据及数据间的相互关系可以定义约束条件,所有这些约束构成了用户定义的完整性规则。 在用户定义的完整性规则中,比较重要的一种称为域完整性的约束,可以在数据库中定义关系时自动实现。关系中每一列的属性都有一个确定的取值范围即域。但即便确定了域(可以看到,在数据库实现时,域对应数据类型的概念),在实际的数据取值时,仍然常常会对取值的范围要做进一步的明确和限制。 域完整性规则:用户对于关系中单个属性取值范围定义的约束条件。 一般关系DBMS中都提供了完整性的实现机制。如在VFP6.0中提供了自动实现上述完整性的检验功能。在数据库中定义表(关系)时,通过定义表的主码、定义外码和指定参照表就能自动实现实体完整性和参照完整性检验;在定义每个字段(属性)时指定域检验的条件(数据类型、宽度、一个逻辑表达式的检验等),这样VFP就会实现域完整性。 对于用户定义的其它完整性约束,DBMS可通过“触发器”或“存储过程”,由数据库设计者编制完整性检验程序代码,在进行数据更新时自动执行这些程序来实现检验。 当数据库刚刚定义完毕时,数据库是满足完整性要求的。当数据库有数据变化时有可能破坏完整性,而数据库的变化只有在发生数据的增加、删除、更改操作时出现(正常情况下),因此,只要有这些数据更新操作发生,DBMS就会自动进行完整性检查,凡是会破坏数据库数据完整性的更新都会被拒绝。 表2.7:关系S X� Y� Z� � x2� y1� z2� � x1� y1� z1� � x2� y3� z3� � 表2.6:关系R A1� A2� � 1� 1� � 2� 3� � 表2.8:关系R×S A1� A2� X� Y� Z� � 1� 1� x2� y1� z2� � 1� 1� x1� y1� z1� � 1� 1� x2� y3� z3� � 2� 3� x2� y1� z2� � 2� 3� x1� y1� z1� � 2� 3� x2� y3� z3� � 表2.9:逻辑运算结果 X� Y� NOT X� X AND Y� X OR Y� � TRUE� TRUE� FALSE� TRUE� TRUE� � TRUE� FALSE� FALSE� FALSE� TRUE� � FALSE� TRUE� TRUE� FALSE� TRUE� � FALSE� FALSE� TRUE� FALSE� FALSE� � 表2.3: R∪S A� B� C� � a1� b1� c1� � a2� b3� c2� � a2� b2� c1� � a2� b1� c2� � a2� b3� c1� � a1� b2� c2� � 表2.4:R∩S A� B� C� � a1� b1� c1� � 表2.5:R-S A� B� C� � a2� b3� c2� � a2� b2� c1� � 表2.1:关系R A� B� C� � a1� b1� c1� � a2� b3� c2� � a2� b2� c1� � 表2.2:关系S A� B� C� � a2� b1� c2� � a1� b1� c1� � a2� b3� c1� � a1� b2� c2� � 表2.18:学生关系 学号� 姓名� 性别� 生日� 学院号� � 01102001� 范小默� 男� 82.04.10� 102� � null� 叶盛佳� 男� 82.12.02� 102� � 01204009� 吴敏� 女� 83.04.20� 204� � 01307021� 王景� 男� 83.11.23� 307� � 01307025� 马汉生� 男� 82.08.03� ?� � 表2.19:学院关系 学院号� 学院� 院长� � 102� 工商管理� 张建� � 204� 人文� 李龙� � 307� 信息管理� 杨一飞� � 表2.15:S B� D� � 2� d1� � 3� d2� � 4� d1� � 表2.14:R A� B� C� � a1� 1� c1� � a2� 3� c2� � a3� 2� c1� � a2� 4� c2� � a1� 3� c3� � 表2.16:� EMBED PBrush ��� A� R.B� C� S.B � D� � a2� 3� c2� 2� d1� � a2� 4� c2� 2� d1� � a2� 4� c2� 3� d2� � a1� 3� c3� 2� d1� � 表2.12:关系R A� B� C� � a1� 1� c1� � a2� 3� c2� � a2� 2� c1� � a2� 1� c2� � a2� 3� c1� � a1� 1� c2� � 表2.13:πA,C(R) A� C� � a1� c1� � a2� c2� � a2� c1� � a1� c2� � 表2.11:σA=“a1” AND B=1(R) A� B� C� � a1� 1� c1� � a1� 1� c2� � 表2.10:关系R A� B� C� � a1� 1� c1� � a2� 3� c2� � a2� 2� c1� � a2� 1� c2� � a2� 3� c1� � a1� 1� c2� � � EMBED PBrush ���
/
本文档为【第4章 数据库及其应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索