ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库系统原理

数据库系统原理

原创 Linux操作系统 作者:tolywang 时间:2005-01-20 00:00:00 0 删除 编辑

数据库系统原理

 

第一章  绪论

重点难点释疑

一、用数据库系统来管理软件所具有的特点

首先必须理解数据库系统的相关基本概念。在此基础上进一步理解其特点所在。


1)数据结构化:这是数据库与文件系统的根本区别,这一特点使得数据之间的联系必须以某种约定规则进行描述;

2)数据的共享性好,冗余度低:数据库系统中的数据不是面向单个具体应用,而是面向整个系统,既能减少数据冗余,又能避免数据的不相容和不一致;

3)数据独立性高:理解两种映像。一类存在于数据的总体逻辑结构与局部逻辑结构之间;另一类存在于数据的存储结构与逻辑结构之间;

4)数据由DBMS统一管理和控制:了解DBMS的主要管理功能和控制功能。

二、理解概念模型

首先必须理解相关的基本概念,如实体、属性、码、域等;进一步理解实体之间的联系及其类型定义,此处比较难的是多对多联系的概念。由于是初次接触数据库原理,可能对这个概念的认识有限,必须在本教材后继章节中不断体会其定义的内涵所在。注意教材第11页到第12页文字部分对其形式化的定义和分析。

学习简单的E-R图,理解教材中所举的例子。需要注意的是,联系本身也是一种实体型,也可以有属性。

三、掌握最常用的数据模型,特别是其中的关系模型

任何一个数据库管理系统都至少提供了一种数据模型,因此数据模型是数据库研究的基础。根据某种数据模型,人们可以用数据世界来合理表示现实世界的某一部分,并且将数据世界映照成一个意识世界(用户界面)。数据模型有两方面含义:数据以何种形式存储、用户以何种形式看待数据。常见的数据模型有层次模型、网状模型、关系模型、逻辑模型、实体联系(E-R)模型和面向着对象模型等。层次模型的每一个结点代表一个记录类型,而这些记录类型之间的关系具有层次性。一般它只能直接表示一对多的联系,如果要用它表示多对多联系则必须使用冗余结点法或虚拟结点法进行分解。

网状模型允许结点没有或有多个双亲结点,也允许两个结点之间出现多个联系。层次模型可视为其特例。

关系数据模型最为常用和复杂。其相关基本概念在教材21页至22页,这里只是简单陈述,具体内容将会在后继章节中展开。

四、关于数据库设计步骤

  需求分析阶段要在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通过对组织、部门、企业等进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。

  概念设计阶段要产生反映企业各组织信息需求的数据库概念结构,即概念模型。概念模型必须具备丰富的语义表达能力、易于交流和理解、易于变动、易于向各种数据模型转换、易于从概念模型导出与DBMS有关的逻辑模型等特点。

  逻辑设计阶段除了要把ER图的实体和联系类型,转换成选定的DBMS支持的数据类型,还要设计子模式并对模式进行评价,最后为了使模式适应信息的不同表示,需要优化模式。

物理设计阶段的主要任务是对数据库中数据在物理设备上的存放结构和存取方法进行设计。数据库物理结构依赖于给定的计算机系统,而且与具体选用的DBMS密切相关。物理设计常常包括某些操作约束,如响应时间与存储要求等。

 

 

第二章  关系数据库

重点难点释疑

一、关于关系的定义

关系是笛卡尔积的子集,所以关系可以看作是一个二维表,表的每行对应一个元组,表的每列对应一个域。若关系中的某一属性组的值能够唯一标识一个元组,而其真子集不行,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个作为主码。

关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。

基本关系有六条性质:

1)每一列中分量的数据类型相同。一般还要进一步要求每一列的数据量范围相同,即同一列的数据值不能偏差过大;

2)域名和属性名之间要有一个转换映射的关系;

3)列的顺序可以交换,不影响基本表的内容描述;

4)不能有完全一样的两个元组出现同一张基本表中,否则就会产生数据冗余;

5)行的次序也可以交换;

6)分量不可再分。这也就是说,每一个分量必须是最小的描述单位,不能使用原子描述的集合来构造为一个分量。

二、理解关系模式

关系模式是一个五元组。关系模式用来描述关系这个元组集合的结构特性,即它是有哪些属性构成的,这些属性来自哪些域等等。它可以形式化地表示为:

R (U, D, DOM, F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。

深入理解关系和关系模式的“关系”。关系实际上是关系模式在某一时刻的状态或内容。也就是说,关系模式是类型,关系是该类型中的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新数据库中的数据。

三、参照完整性

理解参照完整性之前必须先弄清楚实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。注意这里的不能取空值是针对基本关系的所有主属性而并非仅仅主码整体,主码整体相当是属性的集合,这是不同的概念。

为了更好地掌握参照完整性的内涵,还要认真学习几个基本定义。设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。关系RS不一定是不同的关系。注意,KSF必须定义在同一个(或一组)域上。

参照完整性规则是指如果属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值必须为或者是取空值(注意是每个属性值都空)或者等于S中的某个元组的主码值。

四、关系代数

关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。它的运算对象是关系,运算结果也为关系。它的运算符包括四类,即集合运算符、专门的关系运算符、算术比较符和逻辑运算符。

专门的运算符主要包括以下类型:

1)选择:又称限制,是在关系R中选择满足给定条件的诸元组。它实际上是从关系R中选取是逻辑表达式F为真的元组。这是从行的角度进行的运算;

2)投影:是指从关系R中选择出若干属性列组成新的关系。投影是从列的角度进行的运算;

3)连接:是指从两个关系的笛卡尔积中选取属性间满足一定条件的元组。连接运算又分为等值连接和自然连接两种;

4)除:给定关系R (X, Y) S(Y, Z),其中X, Y, Z均为属性组。RS的除运算得到一个新的关系P(X)PR中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集YX包含SY上投影的集合。除操作是同时从行和列角度进行运算。

五、关系演算

按照教材内容编排,主要掌握以下两大类关系演算语言:

1)元组关系演算语言ALPHA:主要包括GET, PUT, HOLD, UPDATE, DELETE, DROP六条语句,基本格式是操作语句+工作空间名(表达式)+:+操作条件。其中表达式用于指定语句的操作对象,可以是关系名或属性名,一条语句可以同时操作多个关系或多个属性。操作条件是一个逻辑表达式,用于将操作对象限定在满足条件的元组中,操作条件可以为空

2)域关系演算语言QBE:域关系演算以元组变量的分量即域变量作为谓词变元的基本对象。QBE最突出的特点是它的操作方式。它是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格形式显示。

 

 

第三章  关系数据库标准语言SQL

重点难点释疑

一、关系数据库标准语言SQL的特点

是一个标准的数据库语言,是面向集合的描述性非过程化语言。它功能强,效率高,简单易学易维护。然而SQL语言由于以上优点,同时也出现了这样一个问题:它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作:(1)扩充SQL,在SQL中引入过程性结构;(2)把SQL嵌入到高级语言中,以便一起完成一个完整的应用。

二、SQL语言共分为四大类

数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

(1)数据查询语言DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块;

(2)数据操纵语言:数据操纵语言DML主要有三种形式:1) 插入INSERT

2) 更新UPDATE3) 删除:DELETE;

(3)数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象------表、视图、索引、同义词、聚簇等;

4)数据控制语言DCL:数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

三、数据定义

SQL数据定义功能包括定义数据库、基本表、索引和视图。 这部分主要有以下要点和难点:
   
1)基本表的定义及变更:基本表是非导出关系,其定义涉及表名、列名及数据类型等,新建的表由两部分组成:其一为表和一组列名,其二是实际存放的数据(即可在定义表的同时,直接存放数据到表中);列名为用户自定义的易于理解的名称,列名中不能使用空格

NOT NULL/NULL]指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是不知道无意义的值,值得注意的是数据“0”和空格都不是空值,系统一般默认允许为空值,所以当不允许为空值时,必须明确使用NOT NULL
UNIQUE]将列按照其规定的顺序进行排列,如不指定排列顺序,则按列的定义顺序排列;
PRIMARY KEY]用于指定表的主键(即关系中的主属性),实体完整性约束条件规定:主键必须是唯一的,非空的;
   
2)视图定义与删除:在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的表,是从现有基本表中抽取若干子集组成用户的“专用表”。这种构造方式必须使用SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在系统的数据中,而并不直接存储视图对应的数据,直到用户使用视图时才去求得对应的数据。
   
3)索引的定义与删除:索引属于物理存储概念,而不是逻辑的概念。SQL中抛弃了索引概念,直接使用主键概念。值得一提的是,有些关系DBMS同时包括索引机制和主键机制,推荐使用主键机制,因为它对系统资源占用较低且效率较高。
四、查询

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84250/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14357675