《软件技术基础》第五章(QI)_第1页
《软件技术基础》第五章(QI)_第2页
《软件技术基础》第五章(QI)_第3页
《软件技术基础》第五章(QI)_第4页
《软件技术基础》第五章(QI)_第5页
已阅读5页,还剩228页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件技术基础第五章 数据库技术22本次课主要内容第五章 数据库技术5.1 数据库基本概念5.2 关系代数5.3 数据库设计5.4 关系数据库语言SQL数据库应用基础5.1 数据库基本概念 5.1.1 数据库技术与数据库系统5.1.2 数据描述5.1.3 数据模型35.1.1 数据库技术与数据库系统1、数据库管理的三个阶段人工管理阶段(20世纪50年代中期以前)这一阶段的背景是,计算机主要用于科学计算。从硬件看,外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;从软件看,没有操作系统,没有管理数据的软件,数据处理的方式是批处理。这个时期数据管理的特点是:数据不保存。没有软件系统对数据进行管

2、理。没有文件概念,数据的组织方式必须由程序员自行设计。一组数据对应一个程序,数据面向应用。5.1.1 数据库技术与数据库系统文件管理系统(20世纪50年代末60年代中)5.1.1 数据库技术与数据库系统这一阶段的背景是,计算机不仅用于科学计算,还大量用于管理。从硬件看,外存有了磁盘、磁鼓等直接存取的存储设备;从软件看,操作系统有了专门的管理数据软件,一般称为文件系统;从处理方式讲不仅有了文件批处理,而且能够联机实时处理。文件系统管理数据具有如下特点:文件系统利用“按文件名访问,按记录进行存取”的管理技术对数据进行管理。数据可以长期保存在存储设备上供用户使用。5.1.1 数据库技术与数据库系统5

3、.1.1 数据库技术与数据库系统 尽管用文件系统管理数据比人工管理数据有了长足的进步,但面对数据量大且结构复杂的数据管理任务仍然不能适应,主要表现在如下几点:数据独立性差。文件系统中文件逻辑结构的改变必须修改应用程序,文件之间是孤立的,不能反映现实世界事务之间的内在联系。 数据冗余度大且容易产生数据不一致性。数据是无结构的。数据无集中管理,其安全性、完整性得不到可靠保证并且在数据的结构、编码、输山格式等方面难以做到规范化和标准化。 下图描述了某销售公司的3个文件处理系统。包括订单填写系统、开发票系统、工资单系统。图中还显示了与每个应用相关联的主要数据文件(一个文件就是一个相关记录的集合)。5.

4、1.1 数据库技术与数据库系统数据库系统(20世纪60年代后)5.1.1 数据库技术与数据库系统这一阶段的背景是,计算机用于管理的规模更为庞大,应用越来越广泛,数据量急剧增长,而且数据的共享要求越来越强。从硬件看,外存有了大容量磁盘;联机实时处理要求更多,并开始提出和考虑分布处理软件价格上升,硬件价格下降。为编制和维护系统软件及应用程序所需的成本相对增加。5.1.1 数据库技术与数据库系统数据是结构化的,是面向系统的,数据的冗余度小。数据具有独立性。保证了数据的完整性、安全性和并发性。2、数据库技术的发展5.1.1 数据库技术与数据库系统 数据库技术自20世纪60年代产生到今天,已经经历了3代

5、演变,造就了C.W.Bachman、E.F.Codd和James Gray三位图灵奖获得者,带动了一个巨大的软件产业。 数据库技术一直是最活跃、发展速度最快、应用最广的IT技术之一。5.1.1 数据库技术与数据库系统 在过去20年里,数据库的应用和重要性都有了巨大的增长,几乎每个行业都要用数据库来存储、操纵、检索数据。如商业、医疗保健、教育、政府组织、图书馆、军事、工业控制等。 它已成为信息管理、电子商务、网络服务等应用系统的核心技术和重要基础。 从某种意义上说,数据库技术已成为计算机、控制、信息等相关专业的工程技术人员所必须具备的专业知识。2、数据库技术的发展5.1.1 数据库技术与数据库系

6、统2、数据库技术的发展数据库技术发展的3个阶段: 在20世纪60年代后期,为了克服文件系统的弊病,适应日益迅速增长的数据处理的需求,人们开始探索新的数据管理方法与工具。这一时期,磁盘存储技术取得重要进展,大容量和快速存取的磁盘相继投入市场,给新型数据管理技术的研制提供了良好的硬件条件。为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术由此应运而生,出现了统一管理数据的专门软件系统数据库管理系统(Data Base Management System,DBMS)。5.1.1 数据库技术与数据库系统2、数据库技术的发展数据库技术发展的3个阶段: 世界上最早推出的数据库系统

7、当属美国通用电气公司CWBachman等人于1963年研制的IDS(Integrated Data Store)系统。IDS奠定了网状数据库的基础,它可使多个COBOL程序共享数据库中的数据。IDS是数据库系统的先驱,为此,Bachman于l 973年获得了美国计算机协会(ACM)颁发的图灵(Turing)奖。 经过40年的发展,数据库已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到了第三代以面向对象模型为主要特征的数据库系统。5.1.1 数据库技术与数据库系统2、数据库技术的发展第一代数据库系统 20世纪70年代,数据库系统以广为流行的网状模型数据库和层次模型数据库为代表。

8、第一代数据库系统发展过程中的突出代表有: 1964年,美国通用电气公司的Bachman等人开发成功世界上第一个DBMSIDS(Integrated Data Store)系统,奠定了网状数据库系统的基础。 1969年,美国IBM公司研制成功世界上第一个商品化DBMS产品IMS(Information Management System)系统,这是一个层次数据库系统。5.1.1 数据库技术与数据库系统2、数据库技术的发展 第二代数据库系统 20世纪70年代初关系数据模型的提出受到了人们的高度重视。然而,当时也有一些人认为关系模型仅仅是一种理想化的数据模型,用它来实现具有高查询效率的数据库管理系统

9、是困难的。在1974年,数据库界开展了一场分别以Codd和Bachman为首的支持与反对关系数据库的大辩论。这场论战促进了关系数据库的发展,吸引了更多的公司和研究机构对关系数据库原型进行研究,并不断推出一批研究成果。5.1.1 数据库技术与数据库系统2、数据库技术的发展 与此同时,1979年美国ORACLE公司推出了用于VAX小型机上的关系数据库软件Oracle(v2.0),这被认为是第一次实现了使用SQL语言的商品化关系数据库软件。 通常把支持关系数据模型的关系数据库系统称之为第二代数据库系统。关系模型建立在严格的数学理论基础之上,它概念简单、清晰,易于用户理解和使用。因而在这一时期得到迅猛

10、发展,几乎所有新推出的数据库系统都是关系型数据库系统。5.1.1 数据库技术与数据库系统2、数据库技术的发展 20世纪80年代是数据库技术逐渐走向成熟的时期,一批性能不断改善,版本不断更新的商品化关系数据库软件相继投入市场,如Oracle,Sybase,Informix,Ingres等关系数据库系统开始广泛应用于大型信息管理系统。5.1.1 数据库技术与数据库系统2、数据库技术的发展新一代数据库系统 随着计算机的广泛应用,特别是一些新的应用领域不断提出新的应用要求,关系型数据库、层次型数据库、网状型数据库都表现出不同程度的局限性。如CAD/CAM、CIM、OIS(办公信息系统)、GIS(地理信

11、息系统)、知识库系统、实时系统等,都需要数据库的支持,而其所需的数据管理功能有相当一部分是传统的数据库系统所不能支持的。5.1.1 数据库技术与数据库系统2、数据库技术的发展 因此,在20世纪80年代后期人们又提出了研制新一代数据库的设想。可以说新一代数据库技术的研究和发展呈现了百花齐放的局面。归纳起来其主要特征有:一是面向对象的方法和技术与数据库技术的结合;二是数据库技术与多学科技术的有机结合;三是面向应用领域的数据库技术的研究。 目前流行的数据库产品主要是关系型数据库。3. 数据库系统的构成 数据库系统是指引入了数据库技术后的计算机系统。广义地讲,数据库系统由数据库、DBMS(数据库管理系

12、统)、 DBA(数据库管理员)、应用程序以及用户组成。其组成可用下图表示。(1) 用户在应用程序中向DBMS发出读取记录的请求,同时给出记录名和要读取记录的关键字值;(2) DBMS接到请求后,利用应用程序A所用的子模式来分析这一请求;(3) DBMS调用模式,进一步分析请求,根据子模式与模式之间变换的定义,决定应读入哪些模式记录;(4) DBMS通过物理模式将数据的逻辑记录转换为实际的物理记录;(5) DBMS向操作系统发出读取所需物理记录的请求;(6) 操作系统对实际的物理存储设备启动读操作;(7) 读出的记录从保存数据的物理设备送到系统缓冲区;(8) DBMS根据模式和子模式的规定,将记

13、录转换为应用程序所需要的形式;(9) DBMS将数据从系统缓冲区传送到应用程序A的工作区;(10) DBMS向用户程序A发出本次请求执行情况的信息。5.1.2 数据描述1. 信息的存在形态(1) 现实世界(2) 观念世界概念模型的名词术语(1)实体(Entity):客观存在并可相互区别的事物称为实体。实体既可以是实际的事物,也可以是抽象的概念或联系。(2)属性(Attribute):属性就是实体所具有的特性,一个实体可以由若干个属性描述。(3)域(Domain):属性的取值范围称为该属性的域。(4)实体集(Entity Set):具有相同属性的实体的集合称为实体集。(5)键(Key):键是能够

14、惟一地标识出一个实体集中每一个实体的属性或属性组合,键也被称为关键字或码。(6)联系(Relationship):联系分为两种:一种是实体内部各属性之间的联系,另一种是实体之间的联系。 (3) 数据世界数据项(字段)(field)记录(record)记录型(record type)文件(fild)关键字(key)“教师”记录型教师”记录型与“教师”文件的示意图(1) 一对一(1:1)的联系 设有两个实体集E1和E2,如果E1和E2中的每一个实体最多与另一个实体集中的一个实体有联系,则称实体集E1和E2的联系是一对一的联系,通常表示为“1:1的联系”。例如,实体集学校与实体集校长之间的联系就是1

15、:1的联系。2. 实体间的联系(2) 一对多(1:n)的联系设有两个实体集E1和E2,如果E2中的每一个实体与E1中的任意个实体(包括零个)有联系,而E1中的每一个实体最多与E2中的一个实体有联系,则称这样的联系为“从E2到E1的一对多的联系”,通常表示为“1:n的联系”。例如,实体集学校与实体集教师之间的联系为一对多的联系。(3) 多对多(m:n)的联系 设有两个实体集E1和E2,其中的每一个实体都与另一个实体集中的任意个(包括零个)实体有联系,则称这两个实体集之间的联系是“多对多的联系”,通常表示为“m:n的联系”。例如,教师实体集与学生实体集之间的联系是多对多的联系。又如。学生实体集和课

16、程实体集之间的联系也是一种多对多的联系。1. 层次模型建立数据的层次模型需要满足下列两个条件:(1) 有一个数据记录没有“父亲”,这个记录即是根结点;(2) 其他数据记录有且只有一个“父亲”。5.1.3 数据模型学校行政机构的层次模型网状数据模型的特点:(1) 可以有一个以上的结点无“父亲”;(2) 至少有一个结点有多于一个的“父亲”。2. 网状模型学校教学情况的网状模型3. 关系模型关系数据模型是由IBM公司的E.F.Codd于1970年首次提出,以关系数据模型为基础的数据库管理系统,称为关系数据库系统(RDBMS),目前广泛使用。关系数据模型的定义把数据看成一个二维表,每一个二维表称为一个

17、关系。实体和联系均用二维表来表示的数据模型称之为关系数据模型。关系模型的优点。(1) 数据结构比较简单(2) 具有很高的数据独立性(3) 可以直接处理多对多的联系(4) 有坚实的理论基础一个关系的属性名表称为关系模式,也就是二维表的表框架,相当于记录型。若某一关系的关系名为R,其属性名为 A1,A2,An则该关系的关系模式记为 R(A1,A2,An)关系名为ER关系模式(即二维表的表框架)为ER(S#,SN,SD)其中:S#,SN,SD分别是这个关系中的三个属性的名字S1,S2,S3,S4,S5是属性S#(即学号)的值域 CHANG,WANG,LI,HU,MA是属性SN(即学生姓名)的值域MA

18、TH,EL,PHYS,COM是属性SD(即所属系)的值域5.2关系代数1.并运算(union)2. 差运算(difference)3. 交运算(intersection)4. 笛卡尔积(Cartesian product)5. 选择运算(selection)6. 投影运算(projection)7. 联接运算(join)8. 自然联接运算(Natural join)传统的集合运算当集合运算并、交、差用于关系时,要求参与运算的两个关系必须时相容的,即两个关系的度数一致,并且关系属性的性质必须一致。假设有n元关系R和n元关系S,它们相应的属性值取自同一个域,则它们的并仍然是一个n元关系,它由属于关

19、系R或属于关系S的元组组成,并记为RS。 并运算满足交换律,即RS与SR是相等的。1. 并运算(union)假设有n元关系R和n元关系S,它们相应的属性值取自同一个域,则它们的交仍然是一个n元关系,它由属于关系R且又属于关系S的元组组成,并记为RS。交运算满足交换律,即RS与SR是相等的。2. 交运算(intersection)假设有n元关系R和n元关系S,它们相应的属性值取自同一个域,则n元关系R和n元关系S的差仍然是一个n元关系,它由属于关系R而不属于关系S的元组组成,并记为RS。差运算不满足交换律,即RS与SR是不相等的。3. 差运算(difference)设有m元关系R和n元关系S,则

20、R与S的笛卡尔积记为RS,它是一个mn元组的集合(即mn元关系),其中每个元组的前m个分量是R的一个元组,后n个分量是S的一个元组。RS是所有具备这种条件的元组组成的集合。 在实际进行组合时,可以从R的第一个元组开始到最后一个元组,依次与S的所有元组组合,最后得到RS的全部元组。 RS共有m*n个元组。4. 笛卡尔积(Cartesian product)关系R ABCa1b1c1a1b2c2a2b2c1关系SABCa1b2c2a1b3c2a2b2c1关系SRSABCa1b2c2a2b2c1RSABCa1b1c1a1b2c2a2b2c1a1b3c2R-SABCa1b1c1S-RABCa1b3c2

21、RSABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1专门的关系运算专门的关系运算包括:选择、投影和连接,用于数据查询服务。选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。选择运算用公式表示为Rg r|rR且g(r)为真 或g(R) r|rR且g(r)为真 公式中的R是关系名;g为一个逻辑表达式,取值为真或假。g由逻辑运算符或and(与)、或or(或)、或not(

22、非)联接各算术比较表达式组成;算术比较符有、,其运算对象为常量、或者是属性名、或者是简单函数。在后一种表示中,为选择运算符。5. 选择运算(selection)投影运算是在给定关系的某些域上进行的运算。通过投影运算可以从一个关系中选择出所需要的属性成分,并且按要求排列成一个新的关系,而新关系的各个属性值来自原关系中相应的属性值。给定关系R在其域列SN和C上的投影用公式表示为RSN,C 或 SN,C(R)6. 投影运算(projection)联接运算是对两个关系进行的运算,其意义是从两个关系的笛卡尔积中选出满足给定属性间一定条件的那些元组。 设m元关系R和n元关系S,则R和S两个关系的联接运算用

23、公式表示为7. 联接运算(join)运算的结果为mn元关系。其中:|是联接运算符;为算术比较符;i与j分别表示关系R中第i个属性的属性名和关系S中第j个属性的属性名,它们之间应具有可比性。这个式子的意思是:在关系R和关系S的笛卡尔积中,找出关系R的第i个属性和关系S的第j个属性之间满足关系的所有元组。比较符有以下三种情况:当为“”时,称为等值联接;当为“”时,称为小于联接;当为“”时,称为大于联接。联接运算的上述公式还可以表示为RfS rs|rR且sS且f(r,s)为真 其中:f为布尔函数(即联接条件),其取值为真或假;rs是关系R和关系S的笛卡尔积中的任一元组。设关系R和关系S具有公共的属性

24、,则关系R和关系S的自然联接的结果,是从它们的笛卡尔积RS中选出公共属性值相等的那些元组。如果关系R和关系S具有相同的属性名A1,A2,Ak,则它们的自然联接是从笛卡尔积RS中选出RA1SA1RA2SA2RAkSAk的所有元组,并去掉重复属性的元组集合,记为 R|S8. 自然联接运算(Natural join)其中RA1,RA2,RAk表示RS中对应于关系R中的属性A1,A2,Ak的属性名;同样,SA1,SA2,SAk表示RS中对应于关系S中的属性A1,A2,Ak的属性名。如果用j1,j2,jm来表示RS中除去SA1,SA2,SAk以后按顺序列出的所有其他分量的序号,则根据自然联接的定义,可以

25、用选择运算和投影运算来表示自然联接:R|Sj1,j2,jm(RA1SA1RA2SA2RAkSAk (RS)上式表明,自然联接运算分以下三步进行:(1) 计算笛卡尔积RS;(2) 选出同时满足RAiSAi(Ai为为R和S的公共属性)的所有元组;(3) 去掉重复属性。例找出关系R平均成绩(AVER)在85分以上的学生姓名和学号。即PS#,SN(AVER85(R)(S1,MA),(S3,FAN),(S4,WANG)例有关系T和P。要找出讲授课程G1的教师姓名、所在系和他的职称。即TPTN,TD,T(TGG1(T|P)学生-课程数据库Student学号Sno姓名Sname性别Ssex年龄Sage所在系

26、Sdept95001李勇男20CS95002刘晨女19IS95003王名女18MA95004张立男19ISCourse课程号Cno课程名Cname先行课Cpo学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64SC学号 Sno课程号Cno成绩Grade9500119295001285950013889500229095002380例1查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student) 例2 查询年龄小于20岁的元组Sage20(Student)或420(Student)SnoSname Sse

27、xSageSdept95002刘晨女19IS95004张立男19ISSnoSnameSsexSageSdept95002刘晨女19IS95003王名女18MA95004张立男19IS例3 查询学生关系Student在学生姓名和所在系两个属性上的投影sname,sdept(Student)或2,5(Student)Sname Sdept李勇CS刘晨IS王名MA 张立IS例4 查询学生关系Student中都有哪些系,即查学生关系Student 在所在系属性上的投影sdept(Student)SdeptCSISMA例5 设关系R,S分别为下表中的(a)(b),R连接S条件是CE的结果和R连接S条件是

28、R.B=S.B以及RS的自然连接ABCa1b15a2b26a2b38a2b412BEb13b27b310b32b52RSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCEa1b153a1b267a2b3810a2b382例设有一关系W,现要在关系W中存入一个元组(a,b,c,d,e,f,g)。对于这个操作可以用以下运算来实现: W(a,b,c,d,e,f,g) GIVING W其中GIVING表示经过并运算后的结果赋于W。5.3 数据库设计5.3.1

29、 数据库设计的基本概念5.3.2 数据库设计的过程5.3.3 数据字典何谓数据库设计?数据库设计是指对于一个给定的应用环境,构造(设计)出某种数据库管理系统所支持的优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据处理要求。 数据库已经成为现代信息系统的基础和核心部分,而数据库设计的好坏直接影响到整个系统的效率和质量。 数据库设计有别于其他软件系统的设计,有其独特的特点以数据为中心。由于DBMS和前台开发技术进步,数据的表现形式可以比较容易的实现。设计人员把注意力放在数据的组织结构和数据处理过程中的流向问题

30、。5.3.1 数据库设计的基本概念数据库设计的任务和目标 一个成功的管理系统 =50%的业务+50%的软件50 %的成功软件=25 %的数据库设计+25%的程序 数据库设计的任务 狭义上讲,就是对某个给定的应用领域,设计优化的数据库逻辑结构和物理结构,并建立数据库 。 广义地讲是数据库及其应用系统的设计,即设计整个的数据库应用系统。数据库设计的目标创建一个完整的、尽可能规范化的和完全集成的概念、逻辑和物理数据库模型。具体要达到以下要求:减少有害的数据冗余,提高程序共享性;保证数据的独立性,可修改,可扩充;访问数据库的时间要短;数据库的存储空间要小;要保证数据的安全性和保密性;易于维护。数据库设

31、计的特点 三分技术,七分管理,十二分数据 数据库的建设中不仅涉及数据库的设计和开发等技术,也涉及管理问题。这里的管理不仅仅包括项目管理,也包括与该项目关联的企业的业务管理。基础数据的收集、整理是非常繁琐吃力的事情。数据库设计方法直观设计法(手工试凑法) 数据库设计只是一种经验的反复实施,而不能称为是一门科学,缺乏科学分析理论基础和工程手段的支持,所以设计质量很难保证。规范设计法 (新奥尔良法) 新奥尔良法将数据库设计分成需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。 常用的规范设计方法 基于ER模型的数据库设计方法;P.P.S.chen

32、于1976年提出 基于3NF的数据库设计方法;SAtre提出 ODL(Object Definition Language)方法;语义对象模型(Semantic Object)方法。计算机辅助设计法 计算机辅助设计法是指在数据库设计的某些过程中模拟某一规范化设计的方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。 Oracle 公司开发的 Designer Sybase公司开发的 PowerDesigner这些软件简称为CASE(Computer Aided Software Engineering)工具。 自动化设计法 数据库设计的步骤 按规范设计法可将数据库设计分为四个

33、阶段:系统需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理设计阶段。而一个完整的数据库系统的开发过程还需增加数据库实施和数据库运行与维护两个阶段 。不满意不满意需求收集和分析应用需求(数据、处理)设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计,性能预测物理实现试验性运行使用维护数据库需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施数据库运行和维护转换规则、DBMS功能、优化方法应用要求、DBMS详细特征数据库设计5.3.2 数据库设计的过程1. 需求分析(1) 了解组织机构。(2) 了解具体的业务现状。(3) 了解外部要求。(4) 了解长远规划中的应用范围和要求。需求

34、分析的任务 对现实世界要处理的对象(组织、部门、企业等)进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。 调查分析用户的活动 调查组织机构情况 ,调查各部门的业务活动情况 。 收集和分析需求数据,确定系统边界 信息需求;处理需求;安全性;完整性的需求 编写需求分析说明书 (系统分析报告) (1) 系统概况,系统的目标、范围、背景、历史和现状; (2) 系统的原理和技术,对原系统的改善; (3) 系统总体结构与子系统结构说明; (4) 系统功能说明; (5) 数据处理概要、工程体制和设计阶段划分; (6) 系统方案及技术、经济、功能和操作上

35、的可行性 随系统分析报告要提供下列附件:(1) 系统的硬件、软件支持环境的选择及规格要求(所选择的数据库管理系统、操作系统、汉字平台、计算机型号及其网络环境等)。(2) 组织机构图、组织之间联系图及各机构功能业务一览图。(3) 数据流程图、功能模块图和数据字典等图表。需求分析的方法 主要方法有自顶向下和自底向上两种。(a)自顶向下的需求分析(b)自底向上的需求分析需求需求需求需求需求需求需求需求需求需求需求需求需求需求 需求分析的方法自顶向下的分析方法(Structured Analysis,简称SA方法)是最简单实用的方法。SA方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把

36、每一层用数据流图(Data Flow Diagram,DFD)和数据字典(Data Dictionary,DD)描述。 数据流图表达了数据和处理过程的关系。在数据流图中,用命名的箭头表示数据流,用圆圈表示处理,用矩形或其他形状表示数据的存储。 数据流数据流数据存储数据来源处理数据输出处理需求信息需求数据流图读者借书登记资格核查借书单书籍一个简单的系统可用一张数据流图来表示。当系统比较复杂时,为了便于理解,控制其复杂性,可以采用分层描述的方法。一般用第一层描述系统的全貌,第二层分别描述各子系统的结构。 需求分析过程中要注意的点:第一,应用部门的业务人员常常缺少计算机的专业知识,而数据库设计人员又

37、常常缺乏应用领域的业务知识,因此相互的沟通往往比较困难。第二,不少业务人员往往对开发计算机系统有不同程度的抵触情绪。有的认为需求调查影响了他们的工作,给他们造成了负担,特别是新系统的建设常常伴随企业管理的改革,这会遇到不同部门不同程度的抵触。 第三,应用需求常常在不断改变,使系统设计也常常要进行调整甚至要有重大改变。 面对这些困难,设计人员特别应该注意: 1用户参与的重要性 2用原型法来帮助用户确定他们的需求 3预测系统的未来改变2. 概念结构设计 概念模型主要特点:能充分反映实际应用中的实体及其相互之间的联系,是现实世界的一个真实模型。由于概念模型独立于具体的计算机系统和具体的数据库管理系统

38、,因此,便于用户理解,有利于用户积极参与设计工作。概念模型容易修改。当问题有变化时,反映实际问题的概念模型可以很方便地扩充和修改。便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。 概念设计就是将需求分析得到的用户需求抽象为信息结构,即概念(语义)数据模型(简称概念模型)。概念模型作为概念设计的表达工具,为数据库提供一个说明性结构,是设计数据库逻辑结构(逻辑模型)的基础 。概念模型必须具备以下特点 :语义表达能力丰富;易于交流和理解; 易于修改和扩充;易于向各种数据模型转换。 概念结构设计要借助于某种方便又直观的描述工具,E-

39、R(实体-联系,Entity-Relationship)图是设计概念模型的有力工具。在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名;实体与其属性之间以无向边联接,菱形框与相关实体之间也用无向边联接,并在无向边旁标明联系的类型。描述实体集联系的E-R图多个实体集联系的E-R图同一个实体集内实体联系的E-R图实体属性的E-R图实体集之间联系属性的E-R图(1) 建立分E-R图划分实体和属性的原则:属性与其所描述的实体之间的联系只能是一对多的;属性本身不能再具

40、有需要描述的性质或与其他事物具有联系。能作为属性的尽量作为属性而不划分为实体,以简化E-R图。例在一个简单的教学管理系统中,主要的实体型是学生、教师、课程、课外科技小组,在这些实体型之间有以下几种联系:“课程-学生”联系,记为“C-S”联系,这是多对多的联系;“课程-教师”联系,记为“C-T”联系,这也是多对多的联系;“学生-科技小组”联系,记为“S-R”联系,这也是多对多的联系;“教师-科技小组”联系,记为“T-R”联系,这是一对一的联系。(2) 设计初步E-R图属性域冲突。即同一个属性在不同的分E-R图中其值的类型、取值范围等不一致或者是属性取值单位不同。命名冲突。即属性名、实体名、联系名

41、之间有同名异义或异名同义的问题存在。结构冲突。这主要表现在同一对象在不同的应用中有不同的抽象。(3) 设计基本E-R图商店管理的初步E-R图 商店管理的基本E-R图一个好的ER模式,除了能够准确、全面的反映用户需求之外,还应该达到下列要求:实体类型的个数应尽量少;实体类型所含属性个数应尽可能少;实体类型间的联系应无冗余。优化初步ER图的方法: 实体类型的合并。指相关实体类型的合并。因为实体类型最终要转换成关系模式,涉及多个实体类型的信息要通过连接操作获得。减少实体类型个数,可减少连接的开销,提高处理速度。一般可以把一对一联系的两个实体类型合并。 消除冗余。在这里指冗余的数据和实体之间冗余的联系

42、。冗余的数据是指可由基本的数据导出的数据,冗余的联系是由其他的联系导出的联系。冗余的存在容易破坏数据库的完整性,给数据库的维护增加困难,应该消除。 消除冗余的方法主要有两种:分析方法消除冗余和规范化理论消除冗余。 采用分析的方法消除冗余,是以数据字典和数据流图为依据,根据数据字典中关于数据项之间的逻辑关系的说明消除冗余; 规范化理论消除冗余主要是运用函数依赖提供的工具实现。 3. 逻辑结构设计(1) 逻辑结构设计的步骤将概念模型转换成一般的数据模型;将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。(2) 逻辑结构设计的目标确定整个数据库由哪些关系模式组成,即确定有哪些“表”组成;确

43、定每个关系模式由哪些属性组成,即确定每个“表”中的字段;确定每个关系模式中的关键字属性。(3) 逻辑结构设计的规则每一个实体型转换为一个关系模式每个联系分别转换为关系模式4. 物理结构设计(1) 物理结构设计的准备工作要充分了解和掌握所用的数据库管理系统的性能和特点。要十分熟悉存放数据的外存设备的特性。要了解并熟悉应用要求。(2) 物理结构设计的内容确定数据的存储结构选择存取路径确定数据存放的位置确定存储分配 数据字典是对系统中数据的详细描述,是各类数据结构和属性的清单。它与数据流图互为注释。数据字典贯穿于数据库需求分析直到数据库运行的全过程,在不同的阶段其内容和用途各有区别。在需求分析阶段,

44、数据字典通常包含以下五部分内容: 数据项 数据项是数据的最小单位,其具体内容包括:数据项名、含义说明、别名、类型、长度、取值范围、与其他数据项的关系。5.3.3 数据字典数据结构 数据结构是数据项有意义的集合。内容包括:数据结构名、含义说明,这些内容组成数据项名。数据流 数据流可以是数据项,也可以是数据结构,它表示某一处理过程中数据在系统内传输的路径。内容包括:数据流名、说明、流出过程、流入过程,这些内容组成数据项或数据结构。 数据存储 处理过程中数据的存放场所,也是数据流的来源和去向之一。可以是手工凭证,手工文档或计算机文件。 处理过程 处理过程的处理逻辑通常用判定表或判定树来描述,数据字典

45、只用来描述处理过程的说明性信息。 需求分析得到的DFD图集和数据字典中的内容必须返回用户,并且用非专业术语与用户交流。在反馈时,设计者与用户一起检查与修改那些没有如实反映现实世界的错误或遗漏。修改DFD图、补充数据字典的过程可能需要反复多次,最终取得用户的认可。最终形成的数据流图和数据字典为“需求分析说明书”的主要内容,这是下一步进行概念设计的基础。也是将来系统维护的基础。 1. 数据字典的作用(1)对数据进行标准化管理(2)使收集的信息文本化(3)为数据库设计和系统分析提供了有力的工具(4)为数据库管理系统对数据库的存取控制和管理提供条件(5)为数据库的维护和扩充提供依据2. 数据字典的内容

46、描述数据库系统的所有对象。描述数据库中各种对象之间的联系。记录所有对象在不同场合、不同视图中的名称对照。描述模式、子模式和物理模式,包括这些模式的修改情况记录。5.4 关系数据库语言SQL5.4.1 SQL语言概述5.4.2 数据库定义5.4.3 数据查询5.4.4 数据修改5.4.5 数据控制5.4.6 嵌入式SQL5.4.1 SQL语言概述 结构化查询语言SQL (Structured Query Language) 是一种面向集合的数据库查询语言。SQL语言是集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数

47、据控制(Data Control)于一体的一种非过程化语言。1.SQL语言的功能与特点 1)集DDL、DML、DCL于一体 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动 。2)高度非过程化 SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,用户无需了解存取路径 。3)面向集合的操作方式4)一种语法提供两种操作方式: 交互式操作和嵌入式操作。5)功能强大、语言简洁 设计巧妙,语言十分简洁 ,核心功能只用了9个动词:CREATE、ALTER、DROP、SELECT、INSERT、UPDA

48、TE、DELETE、GRANT、REVOKE 。SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2内模式外模式模 式SQL数据库体系结构(三级模式)2.SQL的数据类型(1)CHARACTER(长度) 定义数据类型为字符串,并给定字符串的长度。例如s1 CHAR(20) 定义了s1是长度为20的字符串。(2)NUMERIC(精度,标度)定义数据类型为数值型,并给定精度(总的有效位)或标度(十进制小数点右边的位数)。例如s2 NUMERIC(3,2) 定义s2是精度为3,标度为2的数值型。(3)DECIMAL(精度,标度) 定义数据类型为数值型,且给定精度或标度。例如s3 D

49、EC(4,3) 定义s3是由执行机构确定的精度大于或等于4及标度为3的数值型。(4)INTEGER可简写为INT。定义数据类型为整数数值型,它的精度由执行机构确定,它的标度总为0。(5)SMALLINT定义数据类型为短整数数值型,它的精度由执行机构确定,它的标度总为0。SMALLINT的精度总是小于INTEGER。(6)FLOAT(精度) 定义数据类型为浮点数值型,它的精度等于或大于给定的精度。例如:s4 FLOAT(10) 定义s4是精度大于或等于10的浮点数值型(即该浮点数的尾数部分的有效数字位数大于或等于10)。(7)REAL 定义数据类型为浮点数值型,它的精度有执行机构确定。(8)DO

50、UBLE PRECISION 定义数据类型为双精度浮点数值型,它的精度由执行机构确定,它一定比REAL的精度大。SQL语句是以动词开始,紧跟其后的是动词“应该做什么”的确切信息类似与英语中的 “动宾结构”。3. SQL的语句结构4. SQL的命令分类(1) 查询语言(QL) SELECT子句FROM子句WHERE子句组成的查询块。(2)数据操纵语言(DML)INSERT(插入)、UPDATE(修改)和DELECT(删除)。(3) 数据定义语言(DDL)CREATE TABLE、CREATE VIEW和CREATE INDEX等。(4) 数据控制语言(DCL)SQL语言主要有个部分: 数据定义:

51、这一部分也称为“DDL”,用于定义SQL模式、基本表、视图和索引。 数据操纵:这一部分也称为“DML”。数据操纵分为数据查询和数据更新两类,其中数据更新又分插入、删除和修改三种操作。 数据控制:这一部分也称为“DCL”,包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。注意:目前各公司都在自己的DBMS上实现了对SQL语言的支持,但在语言的功能上都根据实际需要进行了扩充或简化。特别是,都增加了对过程化语句的支持功能。例如: Oracle所支持的是 PL/SQL SQL Server 2000支持的是 Transact-SQL数据定义(DDL) Create table Drop ta

52、ble Create View Drop View Create Index Drop Index 数据操纵(DML) Select Update Insert Delete数据控制(DCL) Grant Revoke定义基本表,定义视图和定义索引。主要语句有: CREATE TABLE CREATE VIEW CREATE INDEX DROP TABLE DROP VIEW DROP INDEX ALTER TABLE5.4.2 数据库定义1. 表、视图和索引(1) 表2008040020080401200804022008040320080404200804052008040020080

53、4012008040220080403200804042008040520080400200804022008040320080404200804012008040520080402200804032008040420080402 视图是另一种常用的模式对象。视图是一种虚拟表,其数据是由其他表和视图中提取的。视图有很多与表相似的特点,它也可以被查询、修改或删除。视图和表的区别:视图和表的一个重要差别是:视图并不真正包含数据,一个视图不分配任何存储空间。但视图可以像一般表那样操作,因此视图也称为虚表,而真正物理存在的表称为实表或基本表。视图的优点:视图提高了数据库对于应用程序的独立性,有利于保持

54、数据的一致性;其次简化了复杂的查询,可以在视图上查询;最后是视图提供了保持数据库安全性的手段。可以通过视图给用户授权,只向用户提供视图而不提供基本表,从而不让用户知道基本表中某些数据的内容。(2) 视图(3) 索引索引是为了表而建立的。定义一个合适的索引可以使查询速度提高几倍,尤其对于复杂的查询以及记录行数目很大的表上的查询。这是因为,SQL的优化器将是利用索引的列值查找记录行,而不是整个表。(1) 表的建立CREATE TABLE (列名1 类型NOT NULL ,列名2 类型NOT NULL) 其它参数; 例如 CREATE TABLE STUDENTS (NUMBER NUMERIC(6

55、,0) NOT NULL, NAME CHAR(8) NOT NULL, SEX CHAR(2), AGE NUMERIC(3,0), NATION_PLACE CHAR(30)2. 表的建立、修改和删除在现存的基本表中增加新列的语句格式为:ALTER TABLE ADD (列名 类型); 例如 ALTER TABLE STUDENTS ADD (ADDR CHAR(40);增大已存在的某个字段的语句格式为: ALTER TABLE MODIFY (列名 类型); 例如 ALTER TABLE STUDENTS MODIFY (ADDR CHAR(50);(2) 表的修改(3) 表的删除DRO

56、P TABLE 例如: DROP TABLE STUDENTS;(1) 视图的建立 CREATE VIEW (列名1 ,列名2 ) AS WITH CHECK OPTION;3. 视图的建立、修改和删除不能含有ORDER BY及COMPUTE子句;不能含有DISTINCT及INTO键字;不准引用临时表。定义中的任选项WITH CHECT OPTION表示对视图进行UPDATE和INSERT操作时要保证更新或插入的行满足视图定义中的谓词条件。AS,其中的SELECT语句有如下限制例如,建立一个只包含学生学号、姓名、性别的视图STUDENTS_BASECREATE VIEW STUDENTS_BA

57、SE AS SELECT NUMBER, NAME, SEX FROM STUDENTS; 例如,建立一个北京地区学生学生学号、姓名、性别的视图STUDENTS_BJCREATE VIEW STUDENTS_BJ AS SELECT NUMBER, NAME, SEX FROM STUDENTS WHERE NATION_PLACE北京;需要加入WITH CHECK OPTION CREATE VIEW GRADE_TABLE AS SELECT NAME,SUBJECT,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.NUMBER=ENR

58、OLLS.NUMBER AND COURSES.S_NO=ENROLLS. S_NO;例如,要从学生情况表(STUDENTS)、学生课程表(COURSES)和选课表(ENROLLS)中产生一个视图GRADE_TABLE,包括学生的姓名、课程名和成绩。UPDATE,INSERT语句只能在单个基础表中的视图列中使用;不准对视图中的虚列(基于表达式形式的列)进行任何操作;对包含集函数和GROUP BY子句的视图不准进行修改操作;只要基础表中的某个NOT NULL列未包含在此视图的定义内,则不得对其执行INSERT操作;不允许对视图中的text和image数据列使用WRITEXET语句。 (2) 视图

59、的修改(3) 视图的删除DROP VIEW 例如,删除视图GRADE_TABLE的语句为: DROP VIEW GRADE_TABLE;(1) 索引的建立 CREATE UNIQUE INDEX ON 基本表名 (列名次序, 列名次序) 其它参数; 例如 CREATE UNIQUE INDEX S_NUMBER ON STUDENTS(NUMBER);(2) 索引的删除 DROP INDEX 例如 DROP INDEX S_NUMBER;4. 索引的建立和删除SELECT 目标列 FROM 基本表(或视图) WHERE 条件表达式 GROUP BY 列名1HAVING 内部函数表达式 ORDE

60、R BY 列名25.4.3 数据查询(1) 选出指定列 SELECT 目标列 FROM ; SELECT * FROM ; 例 给出学生的详细资料。 SELECT * FROM STUDENTS;或:SELECT NUMBER,NAME,SEX,AGE,NATION_PLACE FROM STUDENTS;例 给出学生学号和姓名组成的表。 SELECT NUMBER, NAME FROM STUDENTS;1. 单表查询例 给出学生学号和出生的年份组成的表。 SELECT NUMBER, 1998-AGE FROM STUDENTS; 查询结果如下: NUMBER 980400 1979 98

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论