大家好,又见面了,我是你们的朋友全栈君
数据库系统
第一章 绪论
本章属于基础知识,主要是对一些概念的理解和记忆。没有难点,相对的重点在于ER模型的设计和关系模型的掌握。
一、数据管理技术的发展阶段(识记)
数据管理技术共经历了三个阶段:人工管理阶段、文件系统阶段、数据库阶段:
1、人工管理阶段的特点:
(1)数据不保存在机器中
(2)没有专用软件对数据进行管理
(3)只有程序的概念,没有文件的概念。
2、文件系统阶段的特点与缺陷:
(1)数据可长期保存在磁盘上。
(2)数据的逻辑结构与物理结构有了区别
(3)文件组织呈现多样化
(4)数据不再属于某个特定程序,可以重复使用。
其缺陷是:
数据冗余性
数据不一致性
数据联系弱
3、数据库阶段的特点
采用复杂的数据模型表示数据结构
有较高的数据独立性(数据结构分成用户的逻辑结构、整体逻辑结构和物理结构三级)
数据库系统为用户提供方便的用户接口,可以使用查询语言、终端命令或程序方式操作数据库。
系统提供了四个方面的数据控制功能:数据库的恢复、并发控制、数据完整性和数据安全性。
对数据的操作不一定以记录为单位,还可以数据项为单位。
数据库技术中的四个名词:DB、DBMS、DBS、数据库技术。其概念是不同的,要分清。
DB:数据库(Database),DB是统一管理的相关数据的集合。
DBMS:数据库管理系统(Database Management
System),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。
DBS:数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
数据库技术:是一门研究数据库结构、存储、管理和使用的软件学科。
二、数据描述的术语(领会)
1、数据描述的三个领域:现实世界、信息世界和机器世界。
信息世界中的几个概念:实体(即客观存在可以相互区别的事物)、实体集(同类实体的集合)、属性(实体的特性)、实体标识符(唯一标识实体的属性(集))。
机器世界中的四个概念:字段、记录、文件、键(关键码)。
2、数据描述的两种形式:物理描述和逻辑描述。前者是指数据在存储设备上的存取方式,后者是指程序员或用户以用以操作的数据形式。
3、数据联系的描述:
1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为”一对一联系”,记为”1:1″。
1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是”一对多联系”,记为”1:N”。
M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是”多对多联系”,记为”M:N”。
三、数据模型
1、数据模型的概念(领会):
表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。
2、 概念数据模型(领会):
它是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。(掌握ER模型)
3、 结构数据模型:它是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为”结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。
层次模型(识记):用树型结构表示实体间联系的数据模型
关系模型(领会):是由若干个关系模式组成的集合,其主要特征是用二维表格结构表达实体集,用外鍵表示实体间联系。
四、数据库的体系结构(领会)
1、三级结构模式:数据库的体系结构分为三级:内部级、概念级和外部级:
外部级:单个用户所能看到的数据特性,称外模式。
概念级:涉及到所有用户的数据定义,是全局的数据视图,称“概念模式“。
内部级:最接近于物理存储,涉及到实际数据存储的结构,称“内模式“。
2、两级映象:
模式/内模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。
外模式/模式映象:用于定义外模式和概念模式间的对应性。一般在外模式中描述。
3.两级数据独立性:
物理数据独立性:修改内模式时尽量不影响概念模式及外模式,则达到物理数据独立性。
逻辑数据独立性:修改概念模式时尽量不影响外模式和应用程序。
五、数据库管理系统(DBMS 领会)
1、DBMS的主要功能:
(1)数据库的定义功能
(2)数据库的操纵功能
(3)数据库的保护功能
(4)数据库的存储管理
(5)数据库的维护功能
(6)数据字典
2、DBMS的组成:
由两大部分组成:查询处理器和存储管理器,前者包括DDL编译器、DML编译器、嵌入型DML预编译器、查询运行核心程序。后者包括授权和完整性管理器,事务管理器、文件管理器,缓冲区管理器。
六、数据库系统(DBS 领会)
DBS由四部分组成:数据库、硬件、软件、数据库管理员。
DBS的全局结构及DBS的效益,了解一下。
第二章 关系数据库
本章为次重点章,我们经常使用的数据库均采用关系模型,本章主要介绍了关系模型的关系运算理论,主要在于对关系演算运算的理解,为后面章节的SQL作准备。
一、关系模型的基本概念(识记)
1、关系模型的基本术语:
用二维表格结构表示实体集、外键表示实体间联系的数据模型称为关系模型。
基本术语有:字段(属性)、字段值(属性值)、记录(元组)、二维表格(元组集合、关系或实例)。在这里,括号中的表述为关系模型中的术语。它与表格中术语可以一一对应。还有,关系中属性个数称为元数,元组个数为基数。
键:由一个或几个属性组成。(注意键不一定是唯一的一个属性)。
超键:在关系中能唯一标识元组的属性集称为关系模式的超键。(注意,超键也是一个属性集,不一定只是一个属性)
候选键:不含有多余属性的超键称为候选键。
主键:用户选作元组标识的一个候选键为主键。
外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。
2、关系模式、关系子模式
关系模式:关系模式实际上就是记录类型。它包括:模式名,属性名,值域名以及模式的主键。关系模式仅是对数据特性的描述。 (这通常在数据库中表现为一个数据表的结构)
关系子模式:就是用户所用到那部分数据的描述。
3、关系模型的三类完整性规则
实体完整性规则:要求关系中组成主键的属性上不能有空值。
参照完整性规则:要求不引用不存在的实体。
用户定义完整性规则:由具体应用环境决定,系统提供定义和检验这类完整性的机制。
4、关系模型的形式定义:数据结构、数据操作和完整性规则。
二、关系代数运算(简单应用)
1、关系代数的五个基本操作:并、差、笛卡尔积、投影和选择。
并(∪):两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。
差(-):同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。
投影(σ):对关系进行垂直分割,消去某些列,并重新安排列的顺序。
选择(π):根据某些条件关系作水平分割,即选择符合条件的元组。
2、关系代数的四个组合操作:交、联接、自然联接和除法
交(∩):R和S的交是由既属于R又属于S的元组构成的集合。
联接包括θ联接和F联接,是选择R×S中满足iθ(r j)或F条件的元组构成的集合,特别注意等值联接(θ为等号”=”)。
自然联接(R|X|S):在R×S中,选择R和S公共属性值均相等的元组,并去掉R×S中重复的公共属性列。如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。
除法(÷):首先除法的结果中元数为两个元数的差,以例2.6为例,我们可以直接用观察法来得到结果,把S看作一个块,拿到R中去和相同属性集中的元组作比较,如果有相同的块,且除去此块后留下的相应元组均相同,那么可以得到一条元组,所有这些元组的集合就是除法的结果。
对于上述的五个基本操作和组合操作,应当从实际运算方面进行理解和运用,对其形式定义可不必深究。注意课本上的例子和给的练习题。
3、关系代数表达式及应用
在关系代数表达式中,复合了上述五个基本操作,在给出相应的表格(关系)中,应该能够根据给出的关系代数表达式计算关系值,也要能根据相应查询要求列出关系表达式。
在列关系表达式时,通常有以下形式:
π…(σ…(R×S))或者π…(σ…(R|X|S))
首先把查询涉及到的关系取来,执行笛卡尔积或自然联接操作得到一张大的表格,然后对大表格执行水平分割(选择)和垂直分割(投影)操作。但是注意当查询涉及到否定或全部值时,就不能用上述形式,而要用到差或除法操作。
第三章关系数据库SQL语言
本章为重点章,应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用,特别是数据查询的应用。结合上机操作进行理解和掌握。
一、SQL概述。
1、SQL发展历程(识记)
SQL从1970年美国IBM研究中心的E.F.Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中,SQL(结构式查询语言)虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。
2、SQL数据库的体系结构(领会)
SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为”基本表”,存储模式称为”存储文件”,子模式称为”视图”,元组称”行”,属性称”列”。
SQL数据库体系的结构要点如下:
(1)一个SQL数据库是表的汇集。
(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。
(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。
(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。
(5)用户可以用SQL语句对表进行操作,包括视图和基本表。
(6)SQL的用户可以是应用程序,也可以是终端用户。
3、SQL的组成(识记)
SQL由三部分组成:
(1)数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。
(2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。
(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。
二、SQL的数据定义(简单应用)
1、SQL模式的创建和撤消:
SQL模式的创建可简单理解为建立一个数据库,定义一个存储空间,其句法是:
CREAT SCHEMA
<模式名> AUTHORIZATION <用户名>
撤消SQL模式的句法为:
DROP SCHEMA <模式名>
[CASCADE|RESTRICT]
方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。
2、SQL提供的基本数据类型
数值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定长,后者为变长串
位串型:bit(n),bit varying(n),同上。
时间型:date、time。
3、基本表的创建、修改和撤消
基本表的创建:(可理解为建立表结构)
CREAT TABLE SQL 模式名.基本表名
(列名,类型,
……
完整性约束…)
完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY).
基本表结构的修改
ALTER TABLE 基本表名 ADD/DROP(增加/删除) 列名 类型名(增加时写出)
删除时有子句 [CASCADE|RESTRICT],前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。
基本表的撤消
DROP TABLE 基本表名 [CASCADE|RESTRICT]
4、视图的创建和撤消
创建:CREAT VIEW 视图名(列名表) AS SELECT 查询语句
撤消:DROP VIEW 视图名
5、索引的创建和撤消
创建:CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名表 [ASC|DESC])
撤消:DROP INDEX 索引名
总结:凡创建都用CREAT ,删除都用DROP,改变用alter,再跟类型和名字,附加子句很容易了。
三、SQL的数据查询(综合应用)
这一段是本章的重点内容,应该熟练掌握。首先了解基本句法:
1、SELECT-FROM-WHERE句型
SELECT 列名表(逗号隔开) FROM 基本表或视图序列 WHERE 条件表达式
在这里,重点要掌握条件表达式中各种运算符的应用,如=,>,<,<>等算术比较运算符、逻辑运算符AND、OR、NOT、集合成员资格运算符:IN,NOT
IN,以及嵌套的SELECT语句的用法要特别注意理解。针对课本的例题和课后习题进行掌握。
在查询时,SELECT语句可以有多种写法,如联接查询、嵌套查询和使用存在量词的嵌套查询等。最好都掌握,但是起码应能写出一种正确的查询语句。
2.SELECT 语句完整的句法:
SELECT 列名表(逗号隔开)
FROM 基本表或视图序列
[WHERE 条件表达式] (此为和条件子句)
[GROUP BY 列名序列] (分组子句)
[HAVING 组条件表达式] (组条件子句)
[ORDER BY列名[ASC|DESC]..] (排序子句)
这段关于完整句法的内容能够理解也就问题不大了。
3、SELECT语句中的限定
这一段内容主要是对SELECT语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。
要求输出表格中不出现重复元组,则在SELECT后加一DISTINCT
SELECT 子句中允许出现加减乘除及列名,常数的算术表达式
WHERE 子句中可以用BETWEEN…AND…来限定一个值的范围
同一个基本表在 SELECT语句中多次引用时可用AS来增加别名
WHERE子句中字符串匹配用LIKE和两个通配符,%和下划线_.
查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作
查询空值操作不是用=’null’,而是用 IS NULL来测试。
集合成员资格比较用 IN/NOT IN ,集合成员算术比较用元组θSOME/ALL
可以用子查询结果取名(表名(列名序列))来作为导出表使用
基本表的自然联接操作是用 NATURAL INNER JOIN来实现的。
四、SQL的数据更新(简单应用)
简单应用就是掌握基本的句型并能套用在一些简单的查询要求上。
1、数据插入:
INSERT INTO 基本表名(列名表)
VALUES (元组值)
或
INSERT INTO 基本表名(列名表)
SELECT 查询语句
其中元组值可以连续插入。用查询语句可以按要求插入所需数据。
2、数据删除:
DELETE FROM 基本表名 [WHERE条件表达式]
3、数据修改:
UPDATE 基本表名
SET 列名=值表达式,[列名=值表达式…]
[WHERE 条件表达式]
这一节的关于增删改的操作要和前面关于数据库模式、表的增删改操作进行对比学习,以加深理解。不要忘记上机实践。
第五章 关系数据理论
本章的理论性较强,学习时有无从下手的感觉,在学习时应多加思考,从概念出发去理解理论,前后的理论有较强的联系,因此要逐个理解,但对于理论的证明等内容则不必深究,本章重点是函数依赖和范式的概念。
一、关系模式的设计问题(识记)
关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上就是一张二维表,表的行称为元组,列称为属性。
关系模式是用来定义关系的,这里的关系模式我们可以简单地理解为一个表的结构,一个关系数据库包含一组关系,也就是包含一组二维表,这些二维表结构体的集合就构成数据库的模式(也可以理解为数据库的结构)。
关系数据库设计理论包括三个方面内容:数据依赖、范式、模式设计方法。核心内容是数据依赖。
关系模式的存储异常:数据冗余、更新异常、插入异常和删除异常
二、函数依赖(FD)
1、函数依赖的定义(领会):设有关系模式R(A1,A2,…An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。
这个定义可以这样理解:有一张设计好的二维表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。如下图所示:
教师 | 课程 |
---|---|
张老师 | 物理 |
杨老师 | 化学 |
李老师 | 物理 |
在表中,凡教师名相同的,对应的课程名也必是相同的,则此时说
教师名函数决定课程名,或“课程名“函数依赖于”教师名“。但是反过来不一定,课程名相同时并不一定教师名相同,所以这里的Y→X是不成立的。
要特别注意的是,在这张表中,任何一行的关系均应符合上述条件,如果有一行不符合函数依赖的条件,则函数依赖对于这个关系就不成立。
还有应该了解的是,函数依赖是否成立是不可证明的,只能通过属性的含义来判断,上述表是一个关系实例,可以一条条进行验证,但是对于模式设计来说,开始时并没有数据插入,我们只能从属性的含义出发,如这个关系模式保存了全校所有教师和课程对应关系,则有可能出现相同的教师名而课程名不是一样的情况(有同名教师),那么“课程名→教师名“这个函数依赖就不成立了。
上述例子可对照课本理论进行领会。
2、键和FD的关系(领会)
键是唯一标识实体的属性集。对于键和函数依赖的关系:有两个条件:设关系模式R(A1,A2…An),F是R上的函数依赖集,X是R的一个子集,
(1)X→A1A2…An∈F (它的意思是X能够决定唯一的一个元组)
(2)不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键。(它的意思是X能决定唯一的一个元组但又没有多余的属性集)
包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性为非主属性(非键属性),注意主属性应当包含在候选键中。
3、函数依赖(FD)的推理规则(了解)
前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵,但是我们需要一个推理规则才能完全确定F或F 的所有函数依赖。
设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:
自反律:如果Y X U,则X→Y在R上成立。
增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。(XZ表示X∪Z,下同)
传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
合并律:如果X→Y和X→Z成立,那么X→YZ成立。
伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
分解律:如果X→Y和Z Y成立,那么X→Z成立。
三、关系模式的范式(领会)
1、1NF、2NF、3NF、BCNF的定义:
1NF:第一范式。
即关系模式中的属性的值域中每一个值都是不可再分解的值。如果某个数据库模式都是第一范式的,则称该数据库模式是属于第一范式的数据库模式。
比如有一个关系 顾客={顾客,送货地址},若有这样几行记录:
顾客 送货地址
张三 北京、上海
李四 北京
这时的第一条记录就表示本关系模式不是1NF的,因为课程中的值域还是可以分解的,它包括了两个地址,如分为:
顾客 送货地址
张三 北京
张三 上海
李四 北京
就成为第一范式的关系模式。
2NF:第二范式。
如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称为第二范式模式。
在这里要先了解“非主属性”、”完全函数依赖”、”候选键”这三个名词的含义。
候选键就是指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。
非主属性也就是非键属性,指关系模式R中不包含在任何建中的属性。
设有函数依赖W→A,若存在X W,有X→A成立,那么称W→A是局部依赖,否则就称W→A是完全函数依赖。
在分析是否为第2范式时,应首先确定候选键,然后把关系模式中的非主属性与键的依赖关系进行考察,是否都为完全函数依赖,如是,则此关系模式为2NF。如果数据库模式中每个关系模式都是2NF的,则此数据库模式属于2NF的数据库模式。
3NF:第三范式。
如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式的模式。
这里首先要了解传递依赖的含义: 在关系模式中,如果Y→X,X→A,且X不决定Y和A不属于X,那么Y→A是传递依赖。
注意的是,这里要求非主属性都不传递依赖于候选键。
BCNF:这个范式和第三范式有联系,它是3NF的改进形式。若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。
纵观四种范式,可以发现它们之间存在如下关系:
BCNF 3NF 2NF 1NF
1NF
↓ 消去非主属性对键的部分函数依赖
2NF
↓ 消去非主属性对键的传递函数依赖
3NF
↓ 消去主属性对键的传递函数依赖
BCNF
2、多值依赖。简单了解一下。
第六章 数据库设计
与上一章不同,本章的实用性较强,详细讲述了数据库应用系统设计的全过程。重点是概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型的转换方法。
一、数据库设计概述(识记)
1、软件生存期:是指从软件的规划、研制、实现、投入运行后的维护、直到它被新的软件所取代而停止使用的整个期间。它包括六个阶段:(规需设编试运维)
(1)规划阶段
(2)需求分析阶段
(3)设计阶段
(4)程序编制阶段
(5)调试阶段
(6)运行维护阶段
2、数据库系统生存期
数据库应用系统的开发也是一项软件工程,称为数据库工程,数据库应用系统也有生存期的概念,通常包括七个阶段:
(1)规划阶段
(2)需求分析阶段
(3)概念设计阶段
(4)逻辑设计阶段
(5)物理设计阶段
(6)实现阶段
(7)运行维护阶段
3、数据库设计方法学
一个好的数据库设计方法应该能在合理的期限内,以合理的工作量产生一个有实用价值的数据库结构。
数据库及其应用系统的设计分为以下几个阶段:规划、需求分析、概念设计、逻辑设计、物理设计。
二、需求分析(识记)
需求分析阶段应对系统的整个应用情况作全面的、详细的调查、确定用户的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户需求,并把这些要求写成用户和数据库设计者都能够接受的文档。
确定用户需求可以通过对不同层次的企业管理人员进行个人访问得到。还应了解系统将来要发生的变化,充分考虑系统的可能的扩充和变动,使系统设计更符合未来发展方向。
需求分析的步骤大致分为三步:即需求信息的收集、分析整理和评审。
数据字典:是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。它包含以下几个部分:数据项、数据结构、数据流、数据存储和加工过程。
三、概念设计(识记)
1、概念模型:可以看成是现实世界到机器世界的一个过渡的中间层次。在设计数据库系统时,要把现实世界的事物通过认识和抽象转换为信息世界的概念模型,再把概念模型转换为机器世界的数据模型。
2、概念设计的主要步骤:分三步完成:(1)进行数据抽象,设计局部概念模式;(2)将局部概念模式综合成全局概念模式;(3)评审。
3、数据抽象:数据抽象的两种形式:聚集和概括:
聚集:其数学意义就是笛卡尔积的概念,通过聚集,形成对象之间的一个联系对象。如有一些对象:”老师,课程,班级,上课时间”,通过聚集可以得到一个联系对象”课程表”。聚集表示的是”is_part_of”的关系。
概括:是从一类其他对象形成一个对象。如有桃树、李树、杏树等对象,我们通过概括或以得到一个对象“树”。概括表示的是”is_a”的关系,如”李树”是一种”树”。
4、基本ER模型的扩展(领会)
ER(实体联系)模型是对现实世界的一种抽象,它的主要成份是实体、联系和属性。但是在现实世界中还有一些特殊的语义。需要扩展ER模型的概念才能更好地模拟现实世界。
依赖联系:在现实世界中,有些实体对一另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,如在人事管理系统中,职工子女的信息就是以职工的存在为前提的,子女实体是弱实体,子女与职工的联系是一种依赖联系。在ER图中用双线框表示弱实体。用箭头表示依赖联系。
子类:在现实中,存在某个实体类型中所有实体同时也是另一实体类型中的实体,此时,我们称前一实体类型为者的子类,后一实体类型称为超类。子类有一个很重要的性质继承性。在ER图中,超类用两端双线框表示,并用加圈的线与子类相连。
5、采用ER方法的数据库概念设计(领会)
采用ER方法进行数据库概念设计分成三步进行:
首先设计局部ER模式
然后把各局部ER模式综合成全局ER模式
最后对全局ER模式进行优化
四、逻辑设计
1、 概念设计的结果是得到一个与DBMS无关的概念模式。而逻辑设计的目的是把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。
2、 转换的规则
其它内容 数据库保护
主要内容包括数据库保护的四种措施:数据库事务管理与备份恢复、并发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式。
一、数据库的事务与备份(领会)
1、事务的概念:事务是一个操作序列。这些操作要么什么都做,要么都不做,是一个不可分割的工作单位。事务以BEGIN
TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。
一个程序的执行可通过若干事务的执行序列来完成。
2、事务的性质:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。称为事务的ACID性质。
通过教材的例子来理解事务的性质。
3、数据备份与恢复
了解SQLServer的备份与恢复机制
二、数据库的并发控制(领会)
1、并发控制带来的三类问题:
(1)丢失更新的问题
(2)不一致分析问题
(3)”脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为”脏数据”。)
2、为解决并发控制带来的问题,通常要采用封锁(locking)技术,常用的封锁有:排它型封锁(X封锁)和共享型封锁(S封锁)两种。
3. 死锁:有两个或以上的事务处于等待状态,每个事务都在等待另一个事务解除封锁,它才能继续执行下去,结果任何一个事务都无法执行,这种现象就是死锁。
解除死锁的方法是由DBMS中的”死锁测试程序”来检查,如发现死锁则牺牲一个事务,并做回退操作,解除它的所有封锁。
三、数据库的完整性(领会)
1、数据库的完整性是指数据的正确性和相容性。数据库中数据发生错误,往往是由非法更新引起的。
数据库完整性是通过DBMS的完整性子系统实现的,它有两个功能:
(1)监督事务的执行,并测试是否违反完整性规则。
(2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。
2. 完整性分类
两种分类方法:1。域完整性、实体完整性、参照完整性和用户自定义完整性
2.六种完整性约束
3. 六种完整性约束的实现方法(领会)
例如:可在SQL中实现的完整性约束
在SQL中,表达完整性约束的规则有主键约束、外键约束、属性值约束和全局约束等多种形式。
主键约束:可用主键子句或主键短语 PRIMARY KEY 来定义。
外键约束:可用外键子句来定义如 FOREIGN KEY (S#) REFERNCE S(S#)
属性值约束:包括非空值约束(NOT NULL)和基于属性的检查子句(CHECK) 及域约束子句 如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)
全局约束:包括基于元组的检查子句(CHECK)和触发器。
注意:事务机制也是一种完整性约束实现手段,它可以实现动态关系约束。
四、数据库的安全性(识记)
数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。
1、用户或应用程序使用数据库的方式称为权限,权限的种类:
访问数据权限:读、插入、修改、删除四种
修改数据库模式权限:索引(创建或删除索引)、资源(创建新关系)、修改(增删关系结构属性)和撤消权限(撤消关系)
2、权限的转授与回收:画一个权限图,只要根结点到用户结点之间存在一条路径,那么它就有权限,回收时就是删去某些路径。
3. SQL中的安全性控制
SQL中有两个安全机制:一是视图机制、二是授权子系统。
视图是从一个或几个基本表导出的表,是虚表,视图定义后可以像基本表一样用于查询和删除,但其更新操作(增、删、改)会受到限制。
视图机制把用户可以使用的数据定义在视图中,这样用户就不能使用视图定义外的其他数据,从而保证了数据库的安全性。视图机制使系统具有三个优点:数据安全性、数据独立性和操作简便性。
授权机制(grant/revoke/deny等语句)可以保证用户只能进行其权限范围内的操作。
数据挖掘
第一章 绪论
本章属于基础知识,主要是对一些概念的理解和记忆。没有难点,相对的重点在于ER模型的设计和关系模型的掌握。
一、数据管理技术的发展阶段(识记)
数据管理技术共经历了三个阶段:人工管理阶段、文件系统阶段、数据库阶段:
1、人工管理阶段的特点:
(1)数据不保存在机器中
(2)没有专用软件对数据进行管理
(3)只有程序的概念,没有文件的概念。
2、文件系统阶段的特点与缺陷:
(1)数据可长期保存在磁盘上。
(2)数据的逻辑结构与物理结构有了区别
(3)文件组织呈现多样化
(4)数据不再属于某个特定程序,可以重复使用。
其缺陷是:
数据冗余性
数据不一致性
数据联系弱
3、数据库阶段的特点
采用复杂的数据模型表示数据结构
有较高的数据独立性(数据结构分成用户的逻辑结构、整体逻辑结构和物理结构三级)
数据库系统为用户提供方便的用户接口,可以使用查询语言、终端命令或程序方式操作数据库。
系统提供了四个方面的数据控制功能:数据库的恢复、并发控制、数据完整性和数据安全性。
对数据的操作不一定以记录为单位,还可以数据项为单位。
数据库技术中的四个名词:DB、DBMS、DBS、数据库技术。其概念是不同的,要分清。
DB:数据库(Database),DB是统一管理的相关数据的集合。
DBMS:数据库管理系统(Database Management
System),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。
DBS:数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
数据库技术:是一门研究数据库结构、存储、管理和使用的软件学科。
二、数据描述的术语(领会)
1、数据描述的三个领域:现实世界、信息世界和机器世界。
信息世界中的几个概念:实体(即客观存在可以相互区别的事物)、实体集(同类实体的集合)、属性(实体的特性)、实体标识符(唯一标识实体的属性(集))。
机器世界中的四个概念:字段、记录、文件、键(关键码)。
2、数据描述的两种形式:物理描述和逻辑描述。前者是指数据在存储设备上的存取方式,后者是指程序员或用户以用以操作的数据形式。
3、数据联系的描述:
1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为”一对一联系”,记为”1:1″。
1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是”一对多联系”,记为”1:N”。
M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是”多对多联系”,记为”M:N”。
三、数据模型
1、数据模型的概念(领会):
表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。
2、 概念数据模型(领会):
它是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。(掌握ER模型)
3、 结构数据模型:它是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为”结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。
层次模型(识记):用树型结构表示实体间联系的数据模型
关系模型(领会):是由若干个关系模式组成的集合,其主要特征是用二维表格结构表达实体集,用外鍵表示实体间联系。
四、数据库的体系结构(领会)
1、三级结构模式:数据库的体系结构分为三级:内部级、概念级和外部级:
外部级:单个用户所能看到的数据特性,称外模式。
概念级:涉及到所有用户的数据定义,是全局的数据视图,称“概念模式“。
内部级:最接近于物理存储,涉及到实际数据存储的结构,称“内模式“。
2、两级映象:
模式/内模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。
外模式/模式映象:用于定义外模式和概念模式间的对应性。一般在外模式中描述。
3.两级数据独立性:
物理数据独立性:修改内模式时尽量不影响概念模式及外模式,则达到物理数据独立性。
逻辑数据独立性:修改概念模式时尽量不影响外模式和应用程序。
五、数据库管理系统(DBMS 领会)
1、DBMS的主要功能:
(1)数据库的定义功能
(2)数据库的操纵功能
(3)数据库的保护功能
(4)数据库的存储管理
(5)数据库的维护功能
(6)数据字典
2、DBMS的组成:
由两大部分组成:查询处理器和存储管理器,前者包括DDL编译器、DML编译器、嵌入型DML预编译器、查询运行核心程序。后者包括授权和完整性管理器,事务管理器、文件管理器,缓冲区管理器。
六、数据库系统(DBS 领会)
DBS由四部分组成:数据库、硬件、软件、数据库管理员。
DBS的全局结构及DBS的效益,了解一下。
第二章 关系数据库
本章为次重点章,我们经常使用的数据库均采用关系模型,本章主要介绍了关系模型的关系运算理论,主要在于对关系演算运算的理解,为后面章节的SQL作准备。
一、关系模型的基本概念(识记)
1、关系模型的基本术语:
用二维表格结构表示实体集、外键表示实体间联系的数据模型称为关系模型。
基本术语有:字段(属性)、字段值(属性值)、记录(元组)、二维表格(元组集合、关系或实例)。在这里,括号中的表述为关系模型中的术语。它与表格中术语可以一一对应。还有,关系中属性个数称为元数,元组个数为基数。
键:由一个或几个属性组成。(注意键不一定是唯一的一个属性)。
超键:在关系中能唯一标识元组的属性集称为关系模式的超键。(注意,超键也是一个属性集,不一定只是一个属性)
候选键:不含有多余属性的超键称为候选键。
主键:用户选作元组标识的一个候选键为主键。
外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。
2、关系模式、关系子模式
关系模式:关系模式实际上就是记录类型。它包括:模式名,属性名,值域名以及模式的主键。关系模式仅是对数据特性的描述。 (这通常在数据库中表现为一个数据表的结构)
关系子模式:就是用户所用到那部分数据的描述。
3、关系模型的三类完整性规则
实体完整性规则:要求关系中组成主键的属性上不能有空值。
参照完整性规则:要求不引用不存在的实体。
用户定义完整性规则:由具体应用环境决定,系统提供定义和检验这类完整性的机制。
4、关系模型的形式定义:数据结构、数据操作和完整性规则。
二、关系代数运算(简单应用)
1、关系代数的五个基本操作:并、差、笛卡尔积、投影和选择。
并(∪):两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。
差(-):同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。
投影(σ):对关系进行垂直分割,消去某些列,并重新安排列的顺序。
选择(π):根据某些条件关系作水平分割,即选择符合条件的元组。
2、关系代数的四个组合操作:交、联接、自然联接和除法
交(∩):R和S的交是由既属于R又属于S的元组构成的集合。
联接包括θ联接和F联接,是选择R×S中满足iθ(r j)或F条件的元组构成的集合,特别注意等值联接(θ为等号”=”)。
自然联接(R|X|S):在R×S中,选择R和S公共属性值均相等的元组,并去掉R×S中重复的公共属性列。如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。
除法(÷):首先除法的结果中元数为两个元数的差,以例2.6为例,我们可以直接用观察法来得到结果,把S看作一个块,拿到R中去和相同属性集中的元组作比较,如果有相同的块,且除去此块后留下的相应元组均相同,那么可以得到一条元组,所有这些元组的集合就是除法的结果。
对于上述的五个基本操作和组合操作,应当从实际运算方面进行理解和运用,对其形式定义可不必深究。注意课本上的例子和给的练习题。
3、关系代数表达式及应用
在关系代数表达式中,复合了上述五个基本操作,在给出相应的表格(关系)中,应该能够根据给出的关系代数表达式计算关系值,也要能根据相应查询要求列出关系表达式。
在列关系表达式时,通常有以下形式:
π…(σ…(R×S))或者π…(σ…(R|X|S))
首先把查询涉及到的关系取来,执行笛卡尔积或自然联接操作得到一张大的表格,然后对大表格执行水平分割(选择)和垂直分割(投影)操作。但是注意当查询涉及到否定或全部值时,就不能用上述形式,而要用到差或除法操作。
第三章关系数据库SQL语言
本章为重点章,应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用,特别是数据查询的应用。结合上机操作进行理解和掌握。
一、SQL概述。
1、SQL发展历程(识记)
SQL从1970年美国IBM研究中心的E.F.Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中,SQL(结构式查询语言)虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。
2、SQL数据库的体系结构(领会)
SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为”基本表”,存储模式称为”存储文件”,子模式称为”视图”,元组称”行”,属性称”列”。
SQL数据库体系的结构要点如下:
(1)一个SQL数据库是表的汇集。
(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。
(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。
(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。
(5)用户可以用SQL语句对表进行操作,包括视图和基本表。
(6)SQL的用户可以是应用程序,也可以是终端用户。
3、SQL的组成(识记)
SQL由三部分组成:
(1)数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。
(2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。
(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。
二、SQL的数据定义(简单应用)
1、SQL模式的创建和撤消:
SQL模式的创建可简单理解为建立一个数据库,定义一个存储空间,其句法是:
CREAT SCHEMA
<模式名> AUTHORIZATION <用户名>
撤消SQL模式的句法为:
DROP SCHEMA <模式名>
[CASCADE|RESTRICT]
方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。
2、SQL提供的基本数据类型
数值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定长,后者为变长串
位串型:bit(n),bit varying(n),同上。
时间型:date、time。
3、基本表的创建、修改和撤消
基本表的创建:(可理解为建立表结构)
CREAT TABLE SQL 模式名.基本表名
(列名,类型,
……
完整性约束…)
完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY).
基本表结构的修改
ALTER TABLE 基本表名 ADD/DROP(增加/删除) 列名 类型名(增加时写出)
删除时有子句 [CASCADE|RESTRICT],前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。
基本表的撤消
DROP TABLE 基本表名 [CASCADE|RESTRICT]
4、视图的创建和撤消
创建:CREAT VIEW 视图名(列名表) AS SELECT 查询语句
撤消:DROP VIEW 视图名
5、索引的创建和撤消
创建:CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名表 [ASC|DESC])
撤消:DROP INDEX 索引名
总结:凡创建都用CREAT ,删除都用DROP,改变用alter,再跟类型和名字,附加子句很容易了。
三、SQL的数据查询(综合应用)
这一段是本章的重点内容,应该熟练掌握。首先了解基本句法:
1、SELECT-FROM-WHERE句型
SELECT 列名表(逗号隔开) FROM 基本表或视图序列 WHERE 条件表达式
在这里,重点要掌握条件表达式中各种运算符的应用,如=,>,<,<>等算术比较运算符、逻辑运算符AND、OR、NOT、集合成员资格运算符:IN,NOT
IN,以及嵌套的SELECT语句的用法要特别注意理解。针对课本的例题和课后习题进行掌握。
在查询时,SELECT语句可以有多种写法,如联接查询、嵌套查询和使用存在量词的嵌套查询等。最好都掌握,但是起码应能写出一种正确的查询语句。
2.SELECT 语句完整的句法:
SELECT 列名表(逗号隔开)
FROM 基本表或视图序列
[WHERE 条件表达式] (此为和条件子句)
[GROUP BY 列名序列] (分组子句)
[HAVING 组条件表达式] (组条件子句)
[ORDER BY列名[ASC|DESC]..] (排序子句)
这段关于完整句法的内容能够理解也就问题不大了。
3、SELECT语句中的限定
这一段内容主要是对SELECT语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。
要求输出表格中不出现重复元组,则在SELECT后加一DISTINCT
SELECT 子句中允许出现加减乘除及列名,常数的算术表达式
WHERE 子句中可以用BETWEEN…AND…来限定一个值的范围
同一个基本表在 SELECT语句中多次引用时可用AS来增加别名
WHERE子句中字符串匹配用LIKE和两个通配符,%和下划线_.
查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作
查询空值操作不是用=’null’,而是用 IS NULL来测试。
集合成员资格比较用 IN/NOT IN ,集合成员算术比较用元组θSOME/ALL
可以用子查询结果取名(表名(列名序列))来作为导出表使用
基本表的自然联接操作是用 NATURAL INNER JOIN来实现的。
四、SQL的数据更新(简单应用)
简单应用就是掌握基本的句型并能套用在一些简单的查询要求上。
1、数据插入:
INSERT INTO 基本表名(列名表)
VALUES (元组值)
或
INSERT INTO 基本表名(列名表)
SELECT 查询语句
其中元组值可以连续插入。用查询语句可以按要求插入所需数据。
2、数据删除:
DELETE FROM 基本表名 [WHERE条件表达式]
3、数据修改:
UPDATE 基本表名
SET 列名=值表达式,[列名=值表达式…]
[WHERE 条件表达式]
这一节的关于增删改的操作要和前面关于数据库模式、表的增删改操作进行对比学习,以加深理解。不要忘记上机实践。
第五章 关系数据理论
本章的理论性较强,学习时有无从下手的感觉,在学习时应多加思考,从概念出发去理解理论,前后的理论有较强的联系,因此要逐个理解,但对于理论的证明等内容则不必深究,本章重点是函数依赖和范式的概念。
一、关系模式的设计问题(识记)
关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上就是一张二维表,表的行称为元组,列称为属性。
关系模式是用来定义关系的,这里的关系模式我们可以简单地理解为一个表的结构,一个关系数据库包含一组关系,也就是包含一组二维表,这些二维表结构体的集合就构成数据库的模式(也可以理解为数据库的结构)。
关系数据库设计理论包括三个方面内容:数据依赖、范式、模式设计方法。核心内容是数据依赖。
关系模式的存储异常:数据冗余、更新异常、插入异常和删除异常
二、函数依赖(FD)
1、函数依赖的定义(领会):设有关系模式R(A1,A2,…An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。
这个定义可以这样理解:有一张设计好的二维表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。如下图所示:
教师 | 课程 |
---|---|
张老师 | 物理 |
杨老师 | 化学 |
李老师 | 物理 |
在表中,凡教师名相同的,对应的课程名也必是相同的,则此时说
教师名函数决定课程名,或“课程名“函数依赖于”教师名“。但是反过来不一定,课程名相同时并不一定教师名相同,所以这里的Y→X是不成立的。
要特别注意的是,在这张表中,任何一行的关系均应符合上述条件,如果有一行不符合函数依赖的条件,则函数依赖对于这个关系就不成立。
还有应该了解的是,函数依赖是否成立是不可证明的,只能通过属性的含义来判断,上述表是一个关系实例,可以一条条进行验证,但是对于模式设计来说,开始时并没有数据插入,我们只能从属性的含义出发,如这个关系模式保存了全校所有教师和课程对应关系,则有可能出现相同的教师名而课程名不是一样的情况(有同名教师),那么“课程名→教师名“这个函数依赖就不成立了。
上述例子可对照课本理论进行领会。
2、键和FD的关系(领会)
键是唯一标识实体的属性集。对于键和函数依赖的关系:有两个条件:设关系模式R(A1,A2…An),F是R上的函数依赖集,X是R的一个子集,
(1)X→A1A2…An∈F (它的意思是X能够决定唯一的一个元组)
(2)不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键。(它的意思是X能决定唯一的一个元组但又没有多余的属性集)
包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性为非主属性(非键属性),注意主属性应当包含在候选键中。
3、函数依赖(FD)的推理规则(了解)
前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵,但是我们需要一个推理规则才能完全确定F或F 的所有函数依赖。
设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:
自反律:如果Y X U,则X→Y在R上成立。
增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。(XZ表示X∪Z,下同)
传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
合并律:如果X→Y和X→Z成立,那么X→YZ成立。
伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
分解律:如果X→Y和Z Y成立,那么X→Z成立。
三、关系模式的范式(领会)
1、1NF、2NF、3NF、BCNF的定义:
1NF:第一范式。
即关系模式中的属性的值域中每一个值都是不可再分解的值。如果某个数据库模式都是第一范式的,则称该数据库模式是属于第一范式的数据库模式。
比如有一个关系 顾客={顾客,送货地址},若有这样几行记录:
顾客 送货地址
张三 北京、上海
李四 北京
这时的第一条记录就表示本关系模式不是1NF的,因为课程中的值域还是可以分解的,它包括了两个地址,如分为:
顾客 送货地址
张三 北京
张三 上海
李四 北京
就成为第一范式的关系模式。
2NF:第二范式。
如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称为第二范式模式。
在这里要先了解“非主属性”、”完全函数依赖”、”候选键”这三个名词的含义。
候选键就是指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。
非主属性也就是非键属性,指关系模式R中不包含在任何建中的属性。
设有函数依赖W→A,若存在X W,有X→A成立,那么称W→A是局部依赖,否则就称W→A是完全函数依赖。
在分析是否为第2范式时,应首先确定候选键,然后把关系模式中的非主属性与键的依赖关系进行考察,是否都为完全函数依赖,如是,则此关系模式为2NF。如果数据库模式中每个关系模式都是2NF的,则此数据库模式属于2NF的数据库模式。
3NF:第三范式。
如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式的模式。
这里首先要了解传递依赖的含义: 在关系模式中,如果Y→X,X→A,且X不决定Y和A不属于X,那么Y→A是传递依赖。
注意的是,这里要求非主属性都不传递依赖于候选键。
BCNF:这个范式和第三范式有联系,它是3NF的改进形式。若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。
纵观四种范式,可以发现它们之间存在如下关系:
BCNF 3NF 2NF 1NF
1NF
↓ 消去非主属性对键的部分函数依赖
2NF
↓ 消去非主属性对键的传递函数依赖
3NF
↓ 消去主属性对键的传递函数依赖
BCNF
2、多值依赖。简单了解一下。
第六章 数据库设计
与上一章不同,本章的实用性较强,详细讲述了数据库应用系统设计的全过程。重点是概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型的转换方法。
一、数据库设计概述(识记)
1、软件生存期:是指从软件的规划、研制、实现、投入运行后的维护、直到它被新的软件所取代而停止使用的整个期间。它包括六个阶段:(规需设编试运维)
(1)规划阶段
(2)需求分析阶段
(3)设计阶段
(4)程序编制阶段
(5)调试阶段
(6)运行维护阶段
2、数据库系统生存期
数据库应用系统的开发也是一项软件工程,称为数据库工程,数据库应用系统也有生存期的概念,通常包括七个阶段:
(1)规划阶段
(2)需求分析阶段
(3)概念设计阶段
(4)逻辑设计阶段
(5)物理设计阶段
(6)实现阶段
(7)运行维护阶段
3、数据库设计方法学
一个好的数据库设计方法应该能在合理的期限内,以合理的工作量产生一个有实用价值的数据库结构。
数据库及其应用系统的设计分为以下几个阶段:规划、需求分析、概念设计、逻辑设计、物理设计。
二、需求分析(识记)
需求分析阶段应对系统的整个应用情况作全面的、详细的调查、确定用户的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户需求,并把这些要求写成用户和数据库设计者都能够接受的文档。
确定用户需求可以通过对不同层次的企业管理人员进行个人访问得到。还应了解系统将来要发生的变化,充分考虑系统的可能的扩充和变动,使系统设计更符合未来发展方向。
需求分析的步骤大致分为三步:即需求信息的收集、分析整理和评审。
数据字典:是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。它包含以下几个部分:数据项、数据结构、数据流、数据存储和加工过程。
三、概念设计(识记)
1、概念模型:可以看成是现实世界到机器世界的一个过渡的中间层次。在设计数据库系统时,要把现实世界的事物通过认识和抽象转换为信息世界的概念模型,再把概念模型转换为机器世界的数据模型。
2、概念设计的主要步骤:分三步完成:(1)进行数据抽象,设计局部概念模式;(2)将局部概念模式综合成全局概念模式;(3)评审。
3、数据抽象:数据抽象的两种形式:聚集和概括:
聚集:其数学意义就是笛卡尔积的概念,通过聚集,形成对象之间的一个联系对象。如有一些对象:”老师,课程,班级,上课时间”,通过聚集可以得到一个联系对象”课程表”。聚集表示的是”is_part_of”的关系。
概括:是从一类其他对象形成一个对象。如有桃树、李树、杏树等对象,我们通过概括或以得到一个对象“树”。概括表示的是”is_a”的关系,如”李树”是一种”树”。
4、基本ER模型的扩展(领会)
ER(实体联系)模型是对现实世界的一种抽象,它的主要成份是实体、联系和属性。但是在现实世界中还有一些特殊的语义。需要扩展ER模型的概念才能更好地模拟现实世界。
依赖联系:在现实世界中,有些实体对一另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,如在人事管理系统中,职工子女的信息就是以职工的存在为前提的,子女实体是弱实体,子女与职工的联系是一种依赖联系。在ER图中用双线框表示弱实体。用箭头表示依赖联系。
子类:在现实中,存在某个实体类型中所有实体同时也是另一实体类型中的实体,此时,我们称前一实体类型为者的子类,后一实体类型称为超类。子类有一个很重要的性质继承性。在ER图中,超类用两端双线框表示,并用加圈的线与子类相连。
5、采用ER方法的数据库概念设计(领会)
采用ER方法进行数据库概念设计分成三步进行:
首先设计局部ER模式
然后把各局部ER模式综合成全局ER模式
最后对全局ER模式进行优化
四、逻辑设计
1、 概念设计的结果是得到一个与DBMS无关的概念模式。而逻辑设计的目的是把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。
2、 转换的规则
其它内容 数据库保护
主要内容包括数据库保护的四种措施:数据库事务管理与备份恢复、并发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式。
一、数据库的事务与备份(领会)
1、事务的概念:事务是一个操作序列。这些操作要么什么都做,要么都不做,是一个不可分割的工作单位。事务以BEGIN
TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。
一个程序的执行可通过若干事务的执行序列来完成。
2、事务的性质:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。称为事务的ACID性质。
通过教材的例子来理解事务的性质。
3、数据备份与恢复
了解SQLServer的备份与恢复机制
二、数据库的并发控制(领会)
1、并发控制带来的三类问题:
(1)丢失更新的问题
(2)不一致分析问题
(3)”脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为”脏数据”。)
2、为解决并发控制带来的问题,通常要采用封锁(locking)技术,常用的封锁有:排它型封锁(X封锁)和共享型封锁(S封锁)两种。
3. 死锁:有两个或以上的事务处于等待状态,每个事务都在等待另一个事务解除封锁,它才能继续执行下去,结果任何一个事务都无法执行,这种现象就是死锁。
解除死锁的方法是由DBMS中的”死锁测试程序”来检查,如发现死锁则牺牲一个事务,并做回退操作,解除它的所有封锁。
三、数据库的完整性(领会)
1、数据库的完整性是指数据的正确性和相容性。数据库中数据发生错误,往往是由非法更新引起的。
数据库完整性是通过DBMS的完整性子系统实现的,它有两个功能:
(1)监督事务的执行,并测试是否违反完整性规则。
(2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。
2. 完整性分类
两种分类方法:1。域完整性、实体完整性、参照完整性和用户自定义完整性
2.六种完整性约束
3. 六种完整性约束的实现方法(领会)
例如:可在SQL中实现的完整性约束
在SQL中,表达完整性约束的规则有主键约束、外键约束、属性值约束和全局约束等多种形式。
主键约束:可用主键子句或主键短语 PRIMARY KEY 来定义。
外键约束:可用外键子句来定义如 FOREIGN KEY (S#) REFERNCE S(S#)
属性值约束:包括非空值约束(NOT NULL)和基于属性的检查子句(CHECK) 及域约束子句 如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)
全局约束:包括基于元组的检查子句(CHECK)和触发器。
注意:事务机制也是一种完整性约束实现手段,它可以实现动态关系约束。
四、数据库的安全性(识记)
数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。
1、用户或应用程序使用数据库的方式称为权限,权限的种类:
访问数据权限:读、插入、修改、删除四种
修改数据库模式权限:索引(创建或删除索引)、资源(创建新关系)、修改(增删关系结构属性)和撤消权限(撤消关系)
2、权限的转授与回收:画一个权限图,只要根结点到用户结点之间存在一条路径,那么它就有权限,回收时就是删去某些路径。
3. SQL中的安全性控制
SQL中有两个安全机制:一是视图机制、二是授权子系统。
视图是从一个或几个基本表导出的表,是虚表,视图定义后可以像基本表一样用于查询和删除,但其更新操作(增、删、改)会受到限制。
视图机制把用户可以使用的数据定义在视图中,这样用户就不能使用视图定义外的其他数据,从而保证了数据库的安全性。视图机制使系统具有三个优点:数据安全性、数据独立性和操作简便性。
授权机制(grant/revoke/deny等语句)可以保证用户只能进行其权限范围内的操作。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168366.html原文链接:https://javaforall.cn