LOGO 1.1 数据库基本概念
1.1.1 数据库
数据 (Data)
数据是描述现实世界事物的符号记录,是用物理符号记录的可以鉴别的信息。包括文字、图形、声音等,他们都是用来描述事物特性的。
数据处理数据处理是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。包括:收集原始数据、编码转换、数据输入、数据处理、数据输出等。
数据库 (DataBase,简记为 DB)
数据库是长期存储在计算机内、有组织的、可共享的数据集合。这种集合具有如下特点:
最小的冗余度
应用程序对数据资源共享
数据独立性高
统一管理和控制返回首页
LOGO 1.1 数据库基本概念
1.1.2 数据库系统
数据库应用系统数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。例如:财务管理系统,人事管理系统等等。
数据库管理系统( DBMS)
数据库管理系统是位于用户与操作系统之间的一个数据管理软件,它的基本功能包括以下几个方面:
数据定义功能用户通过数据定义语言对数据库中的数据对象进行定义 。
数据操纵功能用户可以使用数据操纵语言操纵数据,如查询,插入,删除和修改 。
数据库的运行管理功能数据库在建立,运行和维护时由数据库管理系统统一管理和控制 。
数据库的建立和维护功能它包括数据库初始数据的输入,转换功能,数据库的转储,恢复功能等 。
返回首页
LOGO 1.1 数据库基本概念
数据库系统的组成数据库系统由 5部分组成:硬件系统、数据库集合、数据库管理系统、应用系统和人员。其中,
人员包括:数据库管理员、系统分析员、数据库设计员、应用程序员和最终用户等。其中,
数据库管理员是对数据库进行规划、设计、维护、监视等的专业人员。
用 户数据库管理员操作系统应用系统数据库管理系统应用开发工具用户用户数据库返回首页
LOGO 1.1 数据库基本概念
数据库系统的结构数据库系统在总体结构上一般都体现为三级模式的结构特征,即外模式、模式和内模式,分别反映了看待数据库的 3个角度。
■ 模式 Schema):又称概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。
■ 外模式 (External Schema):也称子模式或用户模式,是数据库用户看见和使用的局部数据的逻辑结构和特征的描述。
■ 内模式( Internal Schema)又叫做存储模式,是数据在数据库系统中的内部表示,即数据的物理结构和存储方式的描述。
如果把一个话剧团看作一个数据库系统,那么,所有演员的集合就是它的模式,
它不同于其他话剧团;观众看到的某一场话剧的演员为外模式,它只是全体演员即模式的子集;演员的住宿方式就是内模式了,它表述了演员的物理存在形式返回首页
LOGO 1.1 数据库基本概念
三级模式之间的关系数据库系统在三级模式中提供了两次映像:外模式到模式的映像和模式到内模式的映像,而这两次映像就实现了数据库中数据两个层次的独立性,即物理独立性和逻辑独立性 。
数据库模 式外模式 1
内模式外模式 2外模式 3
应用 1 应用 2 应用 3 应用 4 应用 5
模式 /内模式映象模式 /外模式映象返回首页
LOGO 1.1 数据库基本概念
1.1.3 数据库技术的发展数据管理技术的发展经历了人工管理、文件系统和数据库系统 3个阶段。
人工管理阶段这一阶段是指 20世纪 50年代中期以前,计算机主要用于科学计算,当时的计算机硬件状况是:外存只有磁带,卡片,纸带,没有磁盘等直接存取的存储设备;软件状况是:没有操作系统,没有管理数据的软件,数据处理方式是批处理 。 人工管理阶段的特点是:数据不保存,数据无专门软件进行管理,数据不共享,数据不具有独立性,数据无结构 。
文件系统阶段这一阶段从 20世纪 50年代后期到 60年代中期,计算机硬件和软件都有了一定的发展 。 计算机不仅用于科学计算,还大量用于管理 。 这时硬件方面已经有了磁盘,磁鼓等直接存取的存储设备 。 在软件方面,操作系统中已经有了数据管理软件,一般称为文件系统 。 处理方式上不仅有了文件批处理,而且能够联机实时处理返回首页
LOGO 1.1 数据库基本概念
数据库系统阶段
20世纪 60年代末数据管理进入新时代 —— 数据库系统阶段。 数据库系统阶段出现了统一管理数据的专门软件系统,即数据库管理系统。数据库系统是一种较完善的高级数据管理方式,也是当今数据管理的主要方式,获得了广泛的应用。
分布式数据库系统阶段分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。
面向对象数据库系统面向对象编程( Object Oriented Programming,OOP,面向对象程序设计 )是一种 计算机 编程 架构 。 OOP 的一条基本原则是 计算机程序 是由单个能够起到子 程序 作用的单元或 对象组合而成。 OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。面向对象数据库吸收了面向对象程序设计方法的核心概念和基本思想,采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等 。
返回首页
LOGO 1.2 数据库管理的实现
1.2.1 三个世界的转化
现实世界数据库管理的对象存在于现实世界中,现实世界中的事物存在着各种各样的联系。这种联系是客观存在的,是由事物本身的性质决定的。例如,学校考务管理系统中有老师、学生、
课程、教室等构成元素。
概念世界概念世界也叫做信息世界,是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。从现实世界到概念世界是通过概念模型来表达的。如对学生的描述可分为:
学号、姓名、班级、籍贯、性别等概念。
数据世界存入计算机系统的数据是将概念世界中的事物数据化的结果。为准确地反映事物本身及事物之间的各种联系,数据库中的数据一定存在一个结构,数据模型可用来准确描述这种结构。
在实现数据库管理,也就是三个世界的转化过程中,概念模型和数据模型是实现现实世界数据化的桥梁,是对现实世界中的事物进行抽象的工具。
返回首页
LOGO 1.2 数据库管理的实现三个世界的转化过程示意图返回首页
LOGO 1.2 数据库管理的实现
1.2.2 数据模型
模型概念模型( model):一般而言,模型是现实世界某些特征的模拟和抽象,分为实物模型与抽象模型。建筑模型,汽车模型,飞机模型等都是实物模型,它们通常是客观事物的某些外观特征或者功能的模拟与刻画;数学模型 s=πr2是一种抽象模型,它抽象描述了园的面积和园的半径之间的数量关系,揭示客观事物的某些本质的、内部的特征。
数据模型在实现数据库管理的过程中,数据模型起着关键作用。整个数据库技术的发展就是沿着数据模型的主线展开的。现有的数据库均是基于某种数据模型,了解数据模型的基本概念是学习数据库的基础。根据模型应用的不同目的,可以将这些模型划分为两类,他们分属于两个不同的层次。
第一类模型是概念模型,也称信息模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计。
另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于 DBMS的实现,这种数据模型也叫结构数据模型。
返回首页
LOGO 1.2 数据库管理的实现
数据模型的要素:
数据结构数据结构是所研究的对象类型的集合,这些对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象;一类是与数据之间联系有关的对象。
数据操作数据操作是指对数据库中各种对象的(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作,
数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。
数据的约束条件数据约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。如:入学年龄不超过 30岁,成绩不得有三门以上不及格等。
返回首页
LOGO 1.2 数据库管理的实现
1.2.3 概念模型
概念模型的相关概念
( 1)实体( Entity):客观存在并相互区别的事物及其事物之间的联系。例如,一个学生、
一门课程、学生的一次选课、一次考试等都是实体。
( 2)属性 (Attribute):实体所具有的某一特性。例如,学生的学号、姓名、性别、出生年份、系、入学时间等。
( 3)码 (Key):唯一标示实体的属性集。例如,学号是学生实体的码。
( 4)域 (Domain):属性的取值范围。例如,年龄的域为 15至 35之间。
( 5)实体型 (Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生 (学号,姓名,性别,出生年份,系,入学时间 )就是一个实体型。
( 6)实体集 (Entity Set):同型实体的集合称为实体集。如,全体学生就是一个实体集。
( 7)联系 (Relationship):实体与实体之间以及实体与组成它的各属性间的关系。
返回首页
LOGO 1.2 数据库管理的实现
实体间联系的三种情况
( 1)一对一联系( 1,1)
如果对于实体集 A中的每一个实体,实体集 B中至少有一个(也可以没有)实体与之联系,
反之亦然,则称实体集 A与实体集 B具有一对一联系,记为 1,1。例如,一个学生只能有一个学号,而一个学号只能指向一个学生,则学生与学号之间具有一对一联系。
( 2)一对多联系( 1,n )
如果对于实体集 A中的每一个实体,实体集 B中有个 n实体( n≥0 )之联系,反之,对于实体集 B中的每一个实体,实体集 A中至多只有一个实体与之联系,则称实体集 A与实体集 B有一对多联系,记为 1,n 。例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
( 3)多对多联系( m,n)
如果对于实体集 A中的每一个实体,实体集 B中有 n 个实体( n≥0 )与之联系,反之,对于实体集 B中的每一个实体,实体集 A中也有 m 个实体( m≥0 )与之联系,则称实体集 A与实体集 B具有多对多联系,记为 m,n 。例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。
注意:实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
返回首页
LOGO 1.2 数据库管理的实现
概念模型的表示方法
概念模型的表示方法很多,最常用的是实体 — 联系方法。该方法用 E-
R(Entity— Relationship Approch) 图来描述现实世界的概念模型。
E-R图提供了表示实体型、属性和联系的方法。 E-R图有三个要素:
( 1)实体型:用矩形表示,矩形框内写明实体名。
( 2)属 性:用椭圆形表示,并用无向边将其与相应的实体连接起来。
( 3)联 系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型 (1,1,1,n或 m,n)。。
返回首页
LOGO 1.2 数据库管理的实现返回首页
LOGO 1.2 数据库管理的实现
1.2.4 数据模型
这里讲的数据模型是在概念级的模型(概念模型)的基础上形成的,为计算机上某一
DBMS支持的数据模型。本书主要介绍前三种模型。
层次模型
若用图来表示,层次模型是一棵倒立的树。在数据库中,满足以下条件的数据模型称为层次模型,① 有且仅有一个结点无父结点,这个结点称为根结点; ② 其他结点有且仅有一个父结点。
返回首页
LOGO 1.2 数据库管理的实现
网状模型在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构是很不直接的,网状模型则可以克服这一弊病。网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。 ① 允许一个以上的结点无父结点; ② 一个结点可以有多于一个的父结点。
从以上定义看出,网状模型构成了比层次结构复杂的网状结构,适宜表示多对多的联系。网状模型和网页上的“超链接数据”模式有类似之处。
返回首页
LOGO 1.2 数据库管理的实现
关系模型
以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。从模型的三要素角度看,关系模型的内容为:
数据结构:一张二维表格。
数据操作:数据表的定义,检索、维护、计算等。
数据约束条件:表中列的取值范围即域值的限制条件。
关系模型的几个常见概念:
( 1)关系:一个关系就是一张二维表,每个关系都有一个关系名,即数据表名。
( 2)元组:表中的行称为元组,一行就是一个元组,对应表中一条记录。
( 3)属性:表中的列称为属性,即字段。字段名称为属性名,字段值称为属性值。
( 4)域,属性的取值范围,如,分数在 0~ 100之间。
( 5)关键字:表中的一个属性(组),它的值可以唯一地标志一个元组。如:学号。
( 6)候选码:表中的某一个属性,它的值可以唯一地标志一个元组。一个表中可能有多个候选码,选择一个作为主键,主键的属性称为主属性。
(7) 外关键字:如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,
则称其为该关系的外关键字。
返回首页
LOGO 1.2 数据库管理的实现返回首页
LOGO 1.2 数据库管理的实现
关系模型的完整性关系模型对 数据 一般都具有一定的限制,这种限制称为完整性或完整性约束。关系模型的完整性是保证关系数据表正确的关键。关系模型支持实体完整性约束、参照完整性约束和域约束 3种完整性约束。
( 1)实体完整性约束假设 A是一个表 R的主键,则 A不能接收空值,即单列主键的值不能为空,复合主键的任何列也不能接收空值。例如,在学生信息表中,“学号”为该表的主键,那么在数据库的任何记录中,“学号”列的值都不能为空。这样的约束称为实体完整性约束。
( 2)参照完整性约束参照完整性约束关心的是逻辑相关的表中值与值之间的关系。假设 X是一个表 A的主键,在表 B中是外键,那么若 K是表 B中一个外部键值,则表 A中必然存在在 X上的值为 K的记录。例如,“系编码”是院系信息表的主键,而在学生信息表中是相对于院系信息表的外键(学生信息表中的主关键字是由“学号”和
“系编码”组合而成),对于学生信息表的任何记录,其所包含的“系编码”的值,在院系信息表的“系编码”列中必然存在一个相同的值。这样的约束称为参照完整性约束。
返回首页
LOGO 1.2 数据库管理的实现
( 3)域约束域是逻辑相关的值的集合,从域中可以得出特定列的值。
例如,在学生信息表中:
●“出生日期”域的值必须按照特定的统一格式存放,而不能有时用:
1986.12.23格式,有时用,12/23/1986格式,造成数据混乱;
●“学生名字”、“院系名称”等域的值必须属于字符集合;
●对于“性别”,该域中的值必须局限于男、女等。
返回首页
LOGO 1.2 数据库管理的实现
1.2.5 关系运算
关系的基本运算有两类:传统的集合运算和专门的关系运算。
传统的集合运算
( 1)并( Union):设有两个关系 R和 S,它们具有相同的结构。 R和 S的并是由属于 R或属于 S的元组组成的集合,运算符为 ∪ 。
例如:设每个班有一个学生关系 R1,R2,R3,? 则全校学生关系 T是,T= R1 ∪ R2 ∪ R3 ∪?
( 2)差 (Difference),设有两个关系 R和 S,它们具有相同的结构。 R和 S的差是由属于 R但不属于 S的元组组成的集合。运算符为-。
例如:设有参加计算机小组的学生关系R,参加桥牌小组的学生关系S。求参加了计算机 小组但没有参加桥牌小组的学生。结果放在关系T 1中,则 T1=R-S。
( 3)交( Intersection):设有两个关系 R和 S,它们具有相同的结构。 R和 S的交是由既属于 R又属于 S的元组组成的集合,运算符为 ∩ 。交运算的结果是 R和 S的共同元组。
例如:设有参加计算机小组的学生关系R,参加桥牌小组的学生关系S。求既参加了计算机小组又参加桥牌小组的学生。结果放在关系T 2中,则T 2 =R ∩S 。关系的交可以用关系的差来表示。即 R∩S= R -( R
– S),所以,上式也可以写成:T 2 =R-( R – S)。
返回首页
LOGO 1.2 数据库管理的实现
专门的关系运算
( 1)选择( Selection ):按照给定条件从指定的关系中挑选出满足条件的元组构成新的关系,其关系模式不变,但其中元组的数目小于等于原来的关系中元组的个数,它是原关系的一个子集。这是从行的角度进行的运算,即水平方向抽取元组。
( 2)投影( projection):从指定的关系中挑选出某些属性构成新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。投影的结果将取消由于取消了某些列而产生的重复元组。
例如:设有读者关系,读者(借书证号,姓名,性别,单位,职称,地址)。按照单位在前,姓名在后的次序列出读者名单。 此运算结果包括元组数目不变,但减少了列的数目,
同时改变了列的显示顺序
( 3)联接( join):联接是将两个和多个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系包含满足联接条件的元组。例如:设有三个关系:学生(学号,姓名,所在系,性别,现住址);课程(课程号,课程名,学分);选修(学号,课程号,
成绩)。若想查询成绩 90分以上的学生姓名。联接结果包括学生、课程、选修三个关系中属性的并集。自然联接:是去掉重复属性的等值连接。它属于联接运算的一个特例返回首页
LOGO 1.3 关系数据库设计
1.3.1 数据库设计方法
手工试凑法
数据库的设计水平和与设计人员的经验有直接关系。数据库设计只是一种经验的反复实施,而不能称为是一门科学,缺乏科学分析理论基础和工程手段的支持,所以设计质量很难保证。
规范设计法
主要是将设计的步骤分为:需求分析、概念设计、逻辑设计和物理设计等几个步骤,并采用了许多规范化的手段和工具完成每个阶段的任务。比如基于
E-R模型的数据库设计方法,基于 3NF(第三范式)的设计方法,基于抽象语法规则的设计方法等,就是在数据库设计的各个过程中采用的具体的技术与方法。
注意:规范设计法仍旧是一种手工方法。对于大型的项目,规范化是必须遵循的设计思想。
返回首页
LOGO 1.3 关系数据库设计
1.3.2 数据库设计步骤按照规范化的设计方法,数据库设计步骤分为六个阶段,这个过程也叫数据库的生命周期。
需求分析,这个阶段的工作是要充分调查研究,了解用户需求概念结构设计:概念结构是整个系统的信息结构。它是现实世界的真实反映,包括实体与实体之间的关系。
逻辑结构设计,这个阶段的任务是将概念结构转换成与所选用的 DBMS所支持的数据模型相符合的过程。
物理结构设计,这个阶段的任务是为一个给定的逻辑数据模型选取一个合适的物理结构,并对物理结构进行评价。
返回首页
LOGO 1.3 关系数据库设计
物理结构设计,这个阶段的任务是为一个给定的逻辑数据模型选取一个合适的物理结构,并对物理结构进行评价。
编码测试,进入这个阶段后,就要按照逻辑设计和物理设计的结果利用 DBMS
的数据定义语言把数据库描述出来个阶段
运行维护,。试运行的主要工作是检查应用程序的功能,测量系统的性能指标,
在物理设计阶段所做的评估是否正确,此时可以得到检验。
返回首页
LOGO 1.3 关系数据库设计
1.3.3 数据库设计规范
范式的概念,规范化是数据库设计中的一个重要过程,可以通过它来剔除数据库中冗余的数据。 EF – Codd在 1971年提出规范化理论,他和后来的研究人员为数据库结构定义了五种规范化模式,简称范式。规范化的优点:
◆ 大大减少了数据冗余
◆ 改进了数据库整体组织
◆ 增强了数据的一致性
◆ 增加了数据库设计的灵活性
前面讲过的完整性约束主要对域值(关系表中列值)进行限制和规范,现在要讲的范式,
主要是对域(列)之间的关系,特别是非主键与主键之间的依赖关系进行约束、规范。
本书中只介绍第一范式 (1NF)、第二范式 (2NF)、第三范式 (3NF)、第四范式 (4NF)。这 4种范式,这对于绝大多数数据库来说已经足够了。
返回首页
LOGO 1.3 关系数据库设计
第一范式第一范式规定表的每个列的值都是不可分的简单数据项。在任何一个数据库中,第一范式都是一个最基本的要求。
返回首页
LOGO 1.3 关系数据库设计
第二范式第二范式有两项要求:
( 1)所有表必须符合第一范式;
( 2)表中每一个非主键列都必须完全函数依赖于主键(关键字)。
表的不完全函数依赖关系将导致很多问题的发生。
◆ 数据冗余:如果外语系有 700个学生,就得重复 700次相同系名。
◆ 更新异常:如果“外语系”升格成了“外语学院”,那么所有原外语系学生的元组都要
◆ 更新,很难保证修改不出错误。
◆ 插入异常:如果增加了一个新系,但该系还没有学生,那么这个系将不能入数据库。
返回首页
LOGO 1.3 关系数据库设计
第三范式
第三范式有两项要求:
( 1)所有表必须符合第二范式。
( 2)表中每一个非主键列对主键都不存在传递依赖,而应是直接依赖。
传递依赖的存在与违背第二范式一样,也将会导致添加、删除、更新、冗余等问题。
表中出现上述问题的原因是对主键依赖的传递。解决的方法同样是在遵守无损分解的条件下,将表分解成多个表,从而消除传递依赖的情况。
返回首页
LOGO 1.3 关系数据库设计
第四范式
第四范式禁止了主键列和非主键列之间的一对多关系。
在表中,一个学生可以有多种喜欢的运动,也可以有多类喜欢的图书。这样在同一表中具有这样两个不相关的列,与主键存在多对一关系,使得表中存在冗余现象和不对称情况,因为不知道每个人的喜好情况,也就无法知道哪列的值多,哪列的值少,使得表格中出现了很多不规则的空白。
解决的方法同样是在遵守无损分解的条件下,将表分解成多个表,从而消除传递依赖的情况。
返回首页
LOGO
返回首页