??xml version="1.0" encoding="utf-8" standalone="yes"?>
POINT A
=
{
100
,
100
}
, B
=
{
200
,
200
}
;
2
void
dda_line(HDC
&
hdc)
3
{
4
double
length;
5
double
dx,dy;
6
double
x,y;
7
char
a[
20
];
8
9
if
(abs(B.x
-
A.x)
>=
abs(B.y
-
A.y))
10
length
=
abs(B.x
-
A.x);
11
else
12
length
=
abs(B.y
-
A.y);
13
14
dx
=
((B.x
-
A.x)
/
length);
15
dy
=
((B.y
-
A.y)
/
length);
16
17
x
=
A.x
+
0.5
;
18
y
=
A.y
+
0.5
;
19
sprintf(a,
"
A(%d,%d)
"
,
int
(x),
int
(y));
20
TextOut(hdc,
int
(x),
int
(y),a,
10
);
21
int
i
=
1
;
22
while
(i
<=
length)
23
{
24
SetPixel(hdc,
int
(x),
int
(y),RGB(
0
,
0
,
0
));
25
x
=
x
+
dx;
26
y
=
y
+
dy;
27
i
++
;
28
}
29
sprintf(a,
"
B(%d,%d)
"
,
int
(x),
int
(y));
30
TextOut(hdc,
int
(x),
int
(y),a,
10
);
31
return
;
32
}
33
看书上出来的一DDDA法。实践出来了Q拿上来记忆~~
[修改版]
void
dda_line(HDC
&
hdc, POINT A, POINT B,
int
color)
2
{
3
double
length;
4
double
dx,dy;
5
double
x,y;
6
if
(abs(B.x
-
A.x)
>=
abs(B.y
-
A.y))
7
length
=
abs(B.x
-
A.x);
8
else
9
length
=
abs(B.y
-
A.y);
10
11
dx
=
((B.x
-
A.x)
/
length);
12
dy
=
((B.y
-
A.y)
/
length);
13
14
x
=
A.x
+
0.5
;
15
y
=
A.y
+
0.5
;
16
int
i
=
1
;
17
while
(i
<=
length)
18
{
19
SetPixel(hdc,
int
(x),
int
(y), color);
20
x
=
x
+
dx;
21
y
=
y
+
dy;
22
i
++
;
23
}
24
return
;
25
}
26
Zɽ法更适用于各U编E方法,加入A和B的点参数Q更加入颜色值color。在我的实际应用中,color被用来清除上一条画U结果的?
]]>
W二部分Q非选择?
二、填I题
16. 数据库系l中Q存?___________ 的数据库Q称为数据字典(DDQ?
17Q关pL可分ؓ元组关系演算和域关系演算Q而在元组演算中,元组关系演算表达式的一般Ş式ؓ_______________?
18QDB是与一个特定组l各应用有关的全部数据的集合,通常׃大部分组成:一部分是应用数据的集合Q称为______________ Q它是数据库的主题;另一部分是关于各U数据结构的描述Q称为描q数据库Q由DDpȝ理?
19Q在关系模型中,关系中每一个属性值都是____________?
20QSQL-SELECT语句完整的句法中QFROM子句是强制性的QFROM子句的作用是_________?
21Q设关系模式R是第一范式Q且每个属性都不传递依赖于R的候选键Q则UR是_______ 的模式?
22Q数据库设计q程中,常常从一些可选方案中选取一U数据库l构Q需要有选择的原则,UCؓ评h准则Q评价准则可分成 __________ 两类?
23Q分布式数据理pȝ是分布式数据库系l中的_______ 负责理分布环境下,逻辑集成数据的存取,一致性、有效性和完备性?
24Q对象关pL据库概念中承性可以发生在cd一U或 ______________ 一U?
25Q客P服务器体pȝ构的关键在于 ___________ 的分布,能减计机pȝ的各U瓶颈问题?
三、简{题
26Q什么是多g赖中的数据依赖?举例说明?
27Q数据库pȝ生存期是什么?
28Qؓ什么说需求分析是数据库系l开发中最困难的Q务之一Q?
29Q简qORDBS的中文含义?
30Q数据库的三U模式和两映象体系l构中,模式Q内模式映象存在于概和内部之间Q用于定义概忉|式和内模式间的对应性。其主要作用是什么?
31Q简q逻辑数据的独立性?
32Q数据库是一个共享资源,在多用户׃npȝ中,q发操作的含义是什么?
33Q没有关pR和S如下Q写出R÷S计算l果?
34Q设有描q学校情늚U关系?
UQSQ,SDQMNQCNQGQ?
其中QSQ属性表C学生学PSD表示学生所在系名,MN表示pM任,CN表示评名,G表示成W。一个系有若q名学生Q一个学生只属于一个系Q一个系?
有一名系MQQ一个学生可选多门课Q每个学生选每门课有一个成l。试写出U关系中的函数依赖Qƈl每个函C赖一个简短说明?
35Q什么是数据库的q发控制Q?
四、设计题
36Q设数据库中有基本表Q?
教师Q工P姓名Q性别Q职Uͼ工龄Q基本工资,补脓Q?
LSQL语句写出工龄?0q以上(包括20q_基本工资低于1500元的教师的所有信息?
37Q在教学理pȝ中,含有二个关系Q?
学生Q学P姓名Q性别Q出生日期,pdQ?
成WQ学P评名,成WQ?
若查询每个学生的选修评数、Ll、^均成l,写出实现上述要求的SQL语句?
38. Z数据库中的成l表Q?
成WQ学P评名,成WQ?
用SQL语句写出往成W表中插入一个元l(20010101Q管理信息系l,80Q?
39Q基于数据库中的学生表、成l表、Q课表Q?
学生Q学P姓名Q性别Q出生日期,pdQ?
成WQ学P评名,成WQ?
任课Q课E名QQ课教师名Q?
用SQL语言中的CREATE语句创徏一个含有学受姓名、性别、系名、课E名、成l、Q课教师名的学生成l视图?
40Q基于数据库中的成W表:
成WQ学P评名,成WQ?
用SQL语句写出只选修一门的学生的学受课E名、成l?
五、综合题
41Q下面是医院l织的结构图
要求完成以下工作Q?
Q?Q画出医院组l的E-R图;
Q?Q查询所有外U病区和内科病区的所有医生姓名;
Q?Q查询内U病区患胃病的病人的姓名?
Traceback: http://51zk.csai.cn/sjkyl/NO00001.htm
W一?数据库概?
本章属于基础知识Q主要是对一些概늚理解和记忆。没有难点,相对的重点在于ER模型的设计和关系模型的掌握?
一、数据管理技术的发展阶段( 识记 )
数据理技术共l历了三个阶D: 人工理阶段 ?文gpȝ阶段 ?数据库阶D?Q?
1、h工管理阶D늚特点Q?
(1)数据不保存在机器?
(2)没有专用软gҎ据进行管?
(3)只有E序的概念,没有文g的概c?
2、文件系l阶D늚特点与缺P
(1)数据可长期保存在盘上?
(2)数据的逻辑l构与物理结构有了区?
(3)文gl织呈现多样?
(4)数据不再属于某个特定E序Q可以重复用?
其缺hQ?
数据冗余?
数据不一致?
数据联系?
3、数据库阶段的特?
采用复杂的数据模型表C数据结?
有较高的数据独立?数据l构分成用户的逻辑l构、整体逻辑l构和物理结构三U?
数据库系lؓ用户提供方便的用h口,可以使用查询语言、终端命令或E序方式操作数据库?
pȝ提供了四个方面的数据控制功能Q数据库的恢复、ƈ发控制、数据完整性和数据安全性?
Ҏ据的操作不一定以记录为单位,q可以数据项为单位?
数据库技术中的四个名?DB、DBMS、DBS、数据库技术。其概念是不同的Q要分清?
DB Q数据库QDatabase),DB是统一理的相x据的集合?
DBMS Q? 数据库管理系l(Database Management System)QDBMS是位于用户与操作pȝ之间的一层数据管理YӞ为用h应用E序提供讉KDB的方法,包括DB的徏立、查询、更新及各种数据? 制。DBMSLZ某种数据模型Q可以分为层ơ型、网状型、关pd、面向对象型DBMS?
DBS Q数据库pȝQDatabase System),DBS是实现有l织地、动态地存储大量兌数据Q方便多用户讉K的计机软g、硬件和数据资源l成的系l,即采用了数据库技术的计算机系l?
数据库技?Q是一门研I数据库l构、存储、管理和使用的Y件学U?
二、数据描q的术语( 领会 )
1、数据描q的三个领域Q现实世界、信息世界和机器世界?
信息世界中的几个概念Q?实体 (卛_观存在可以相互区别的事物)?实体?(同类实体的集?、属?实体的特??实体标识W?(唯一标识实体的属??)?
机器世界中的四个概念Q?字段、记录、文件、键 (关键??
2、数据描q的两种形式Q?物理描述 ?逻辑描述 。前者是指数据在存储讑֤上的存取方式Q后者是指程序员或用户以用以操作的数据Ş式?
3、物理描q用到的术语有:位、字节、字、块、桶、卷
4、数据联pȝ描述Q?
1Q?联系 Q如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系Q反之亦Ӟ好么实体集E1对E2的联pȝ为“一对一联系”,Cؓ?Q?”?
1QN联系 Q如果实体集E1中每个实体与实体集E2中Q意个Q零个或多个Q实体有联系Q而E2中每个实体至多和E1中的一个实体有联系Q那么E1对E2的联pL“一对多联系”,Cؓ?QN”?
MQN联系 Q如果实体集E1中每个实体与实体集E2中Q意个Q零个或多个Q实体有联系Q反之亦Ӟ那么E1对E2的联pL“多对多联系”,Cؓ“MQN”?
三、数据模?
1?数据模型 的概? 领会 )Q?
表示实体cd及实体类型间联系的模型称为“数据模型”。它可分ZU类型: 概念数据模型 ?l构数据模型 ?
2?概念数据模型( 单应?) Q?
它是独立于计机pȝ的模型,完全不涉及信息在pȝ中的表示Q只是用来描q某个特定组l所兛_的信息结构?( 应当掌握教材?.1Q设计简单的ER模型 )
3?l构数据模型 Q?/p>
它是直接面向数据库的逻辑l构Q是现实世界的第二层抽象。这cL型涉及到计算机系l和数据库管理系l,所以称为“结构数据模型”。结构数据模型应包含Q数据结构、数据操作、数据完整性约束三部分。它主要有: 层次 ?|状 ?关系 三种模型?
层次模型( 识记 ) Q用树型l构表示实体间联pȝ数据模型
|状模型 ( 识记 )Q用有向囄构表C实体类型及实体间联pȝ数据模型?
关系模型( 领会 )Q是pq个关系模式l成的集合,其主要特征是用二l表格结构表辑֮体集Q用外鍵表示实体间联pR?
4、面向对象模?识记):
通过对象和类的概忉|建立的数据库模型Q是面向对象技术与数据库技术结合的产物Q本节了解一下即可?
四、数据库的体pȝ? 领会 )
1、三U结构模式:数据库的体系l构分ؓ三Q内部、概和外部Q?
外部U?Q单个用h能看到的数据Ҏ,U外模式?
概念U?Q涉及到所有用L数据定义Q是全局的数据视?U“概忉|式”?/span>
内部U?Q最接近于物理存储,涉及到实际数据存储的l构Q称“内模式”?
2、两U映象:
模式/内模式映?Q用于定义概忉|式和内模式之间的对应性。一般在内模式中描述?
外模?模式映象 Q用于定义外模式和概忉|式间的对应性。一般在外模式中描述?
3.两数据独立性:
物理数据独立?Q修改内模式时尽量不影响概念模式及外模式Q则辑ֈ物理数据独立性? 逻辑数据独立?Q修Ҏ忉|式时量不媄响外模式和应用程序?4.用户及用L面:q里插一句,数据库模式可以理解ؓ数据库结构?
五、数据库理pȝ( DBMS 领会 )
1、DBMS的主要功能:
Q?Q数据库的定义功?
Q?Q数据库的操U功?
Q?Q数据库的保护功?
Q?Q数据库的存储管?
Q?Q数据库的维护功?
Q?Q数据字?
2、DBMS的组成:
׃大部分组成:查询处理器和存储理器,前者包括DDL~译器、DML~译器、嵌入型DML预编译器、查询运行核心程序。后者包括授权和完整性管理器Q事务管理器、文件管理器Q缓冲区理器?
六、数据库pȝ(DBS 领会 )
DBS由四部分l成Q数据库、硬件、Y件、数据库理员?
DBS的全局l构及DBS的效益,了解一下?
W二?关系模型
本章为次重点章,我们l常使用的数据库均采用关pL型,本章主要介绍了关pL型的关系q算理论Q主要在于对关系演算q算的理解,为后面章节的SQL作准备?
一、关pL型的基本概念( 识记 )
1、关pL型的基本术语Q?
用二l表?l构表示实体集、外键表C实体间联系的数据模型称?关系模型 ?
基本术语有: 字段(属?、字D?属性?、记?元组)、二l表?元组集合、关pL实例)?在这里,括号中的表述为关pL型中的术语。它与表g术语可以一一对应。还有,关系中属性个数称为元敎ͼ元组个数为基数?
?Q由一个或几个属性组成?注意键不一定是唯一的一个属??
键 Q在关系中能唯一标识元组的属性集UCؓ关系模式的超键?注意Q超键也是一个属性集Q不一定只是一个属?
候选键 Q不含有多余属性的键UCؓ候选键?
主键 Q用户选作元组标识的一个候选键Z键?
外键 Q某个关pȝ主键相应的属性在另一关系中出玎ͼ此时该主键在是另一关系的外键,如有两个关系S和SC,其中S#是关pS的主键,相应的属性S#在关pSC中也出现Q此时S#是关系SC的外键?
2、关pL式、关pd模式和存储模?
关系模式 Q关pL式实际上是记录cd。它包括Q模式名Q属性名Q值域名以及模式的主键。关pL式仅是对数据Ҏ的描述?(q通常在数据库中表Cؓ一个数据表的结?
关系子模?Q就是用h用到那部分数据的描述?
存储模式 Q关pd储时的基本组l方式是文gQ元l是文g中的记录?
3、关pL型的三类完整性规?
实体完整性规?Q要求关pMl成主键的属性上不能有空倹{?
参照完整性规?Q要求不引用不存在的实体?
用户定义完整性规?Q由具体应用环境军_Q系l提供定义和验这cd整性的机制?
4、关pL型的形式定义Q数据结构、数据操作和完整性规则?
二、关pM数运?单应?
1、关pM数的五个基本操作Qƈ、差、笛卡尔U、投影和选择?
q?(?Q两个关p需有相同的关系模式Qƈ的对象是元组Q由两个关系所有元l构成?
?(-)Q同P两个关系有相同的模式QR和S的差是由属于R但不属于S的元l构成的集合?
投媄( σ)Q对关系q行垂直分割Q消L些列Qƈ重新安排列的序?
选择 (π)Q根据某些条件关pM水^分割Q即选择W合条g的元l?
2、关pM数的四个l合操作Q交、联接、自然联接和除法
?(?QR和S的交是由既属于R又属于S的元l构成的集合?
联接 包括θ联接和F联接Q是选择R×S中满iθ(r+j)或F条g的元l构成的集合Q特别注?{D?(θ为等号???
自然联接 (R|X|S)Q在R×S中,选择R和S公共属性值均相等的元l,q去掉R×S中重复的公共属性列。如果两个关pL有公共属性,则自然联接就转化为笛卡尔U?
除法 (÷)Q首先除法的l果中元Cؓ两个元数的差Q以?.6ZQ我们可以直接用观察法来得到l果Q把S看作一个块Q拿到R中去和相同属性集中的元组作比 较,如果有相同的块,且除L块后留下的相应元l均相同Q那么可以得C条元l,所有这些元l的集合是除法的结果?
对于上述的五个基本操作和l合操作Q应当从实际q算斚wq行理解和运用,对其形式定义可不必深I。注意课本上的例子?
3、关pM数表辑ּ及应?
在关pM数表辑ּ中,复合了上qC个基本操作,在给出相应的表格(关系)中,应该能够Ҏl出的关pM数表辑ּ计算关系|也要能根据相应查询要求列出关p表辑ּ?
在列关系表达式时Q通常有以下Ş式:
π...(σ...(R×S))或者π...(σ...(R|X|S))
首先把查询涉及到的关pd来,执行W卡积或自然联接操作得C张大的表|然后对大表格执行水^分割(选择)和垂直分?投媄)操作。但是注意当查询涉及到否定或全部值时Q就不能用上qŞ式,而要用到差或除法操作?
三、关pL? 领会 )
关系演算分ؓ元组关系演算或域关系演算Q前者以元组为变量,后者以域ؓ变量?
元组演算表达式的一般Ş式ؓQ{t|P(t)}Q其含义为:q是一个元l集合,其中的每个元lt(t是元l变?满公式P所规定的条件。所以在书写演算表达式时Q应该注重理解公式P如何表达?
域演表辑ּ的一般Ş式ؓQ{t1...tk|P(t1...,tk)},其含义ؓQ这是一个域集合Q其中每个域变量的取值关pL_式P所规定的条件。也是注意公式P的表达?
以上两类演算需要一定的L数学基础Q如果不能很深刻的掌握,问题也不大,主要应看懂表辑ּ卛_Q对于给定的表达式和l定的关p,应当能计表辑ּ的结?得到一个关p?
四、查询优?
查询优化的目的就是ؓ了系l在执行时既省时间又能提高效率,在关pM数运中Q通常是先q行W卡积或联接运,再进行选择和投影,恰当地安排选择、投影和联接的顺序,可实现查询优化?
优化的策略主要有以下几点Q?
(1)在关pM数表辑ּ中尽可能早地执行选择操作(早选择).
(2)把笛卡尔U和随后的选择操作合ƈ成F联接q算(F联接)
(3)同时计算一q串的选择和投影操?同时?
(4)保留同一子表辑ּ的结?
(5)适当对关pL件进行预处理
(6)计算表达式之前先估计一下怎么计算合算?
以上几点需要理解。根据表辑ּ优化的算法步骤对l定表达式进行优化?
W三?关系数据库SQL语言
本章为重点章Q应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用Q特别是数据查询的应用。结合上机操作进行理解和掌握?
一、SQL概述?
1、SQL发展历程( 识记 )
SQL?970q美国IBM研究中心的E.F.Codd发表论文?974qBoyce和Chamberlin把SQUARE语言改ؓSEQUEL? aQ到现在q在不断完善和发展之中,SQL(l构式查询语a)虽然名ؓ查询Q但实际上具有定义、查询、更新和控制{多U功能?
2、SQL数据库的体系l构( 领会 )
SQL数据库的体系l构也是三l构 Q但术语与传l关pL型术语不同,在SQL中,关系模式UCؓ" 基本?"Q存储模式称? 存储文g "Q子模式UCؓ" 视图 "Q元l称" ?"Q属性称" ?"?
SQL数据库体pȝl构要点如下Q?
(1)一个SQL数据库是表的汇集?
(2)一个SQL表由行集构成Q行是列的序列,每列对应一个数据项?
(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表Q视囄是由若干基本表或其他视图构成的表的定义?
(4)一个基本表可以跨一个或多个存储文gQ一个存储文件也可存放一个或多个基本表。存储文件与物理文g对应?
(5)用户可以用SQL语句对表q行操作Q包括视囑֒基本表?
(6)SQL的用户可以是应用E序Q也可以是终端用戗?
3、SQL的组? 识记 )
SQL由四部分l成Q?
(1)数据定义QSQL DDL。定义SQL模式Q基本表、视囑֒索引?
(2)数据操纵QSQL DML。包括数据查询和数据更新(增、删、改)?
(3)数据控制Q包括对基本表和视图的授权、完整性规则的描述Q事务控制等?
(4)嵌入式SQL的用规定?
二、SQL的数据定? 单应?)
1、SQL模式的创建和撤消Q?
SQL 模式的创?可简单理解ؓ建立一个数据库Q定义一个存储空_其句法是Q?
CREAT SCHEMA <模式?gt; AUTHORIZATION <用户?gt;
撤消SQL模式的句法ؓQ?
DROP SCHEMA <模式?gt; [ CASCADE | RESTRICT ]
Ҏ号中的选项参数CASCADE表示q锁方式Q执行时模式下所有基本表、视图、烦引等元素全部撤消。RESTRICT表示U束式,执行时必dSQL模式中没有Q何下属元素时方可撤消模式?
2、SQL提供的基本数据类?
数值型Q包?integer、smallint、real、double precision 、float(n),numeric(pQd)
字符串型Qchar(n)、varchar(n)Q前者是定长Q后者ؓ变长?
位串型:bit(n),bit varying(n)Q同上?
旉型:date、time?
3、基本表的创建、修改和撤消
4、视囄创徏和撤?
5、烦引的创徏和撤?
ȝQ凡创徏都用 CREAT ,删除都用 DROP ,改变?alter ,再跟cd和名字,附加子句很容易了?
三、SQL的数据查? l合应用 )
q一D|本章的重点内容,应该熟练掌握。首先了解基本句法:
1?SELECT -FROM- WHERE 句型
在这里,重点要掌握条件表辑ּ中各U运符的应用,?Q?gt;,<,<>{算术比较运符、逻辑q算W?AND、OR、NOT 、集合成员资D符Q?INQNOT IN Q以及嵌套的 SELECT 语句的用法要特别注意理解?针对课本的例题和译习题q行掌握?
在查询时Q?SELECT 语句可以有多U写法,?联接查询、嵌套查询和使用存在量词的嵌套查?{。最好都掌握Q但是v码应能写ZU正的查询语句?
2. SELECT 语句完整的句法:
q段关于完整句法的内容能够理解也问题不大了?
3?SELECT 语句中的限定
q一D内容主要是?SELECT 语句q一步用进行的深入学习Q领会下列各U限定的使用目的和方法?
四、SQL的数据更? 单应?)
单应用就是掌握基本的句型q能套用在一些简单的查询要求上?
1、数据插入:
INSERT INTO 基本表名(列名?
valueS (元组?
?
INSERT INTO 基本表名(列名?
SELECT 查询语句
其中元组值可以连l插入。用查询语句可以按要求插入所需数据?
2、数据删除:
DELETE FROM 基本表名 [ WHERE 条g表达式]
3、数据修改:
UPDATE 基本表名
SET 列名=D辑ּ,[列名=D辑ּ...]
[ WHERE 条g表达式]
4、对视图的更斎ͼ
我们知道Q对视图的查询是和基本表相同的,但是更新操作则受C列三条规则的限制Q?领会一?
q一节的关于增删改的操作要和前面关于数据库模式、表的增删改操作q行Ҏ学习Q以加深理解。不要忘C机实??
W四?关系数据库的模式设计
本章的理论性较强,学习时有无从下手的感觉,在学习时应多加思考,从概念出发去理解理论Q前后的理论有较强的联系Q因此要逐个理解Q但对于理论的证明等内容则不必深IӞ本章重点是函C赖,无损联接、保持依赖和范式的概c?
一、关pL式的设计问题( 识记 )
关系数据?是以关系模型为基的数据库Q它利用关系来描q现实世界。一个关pL可以用来描述一个实体及其属?Q也可以用来描述实体间的联系。关pd质上是一张二l表 Q表?行称为元l?Q列UCؓ属??
关系模式是用来定义关pȝQ这里的关系模式我们可以单地理解Z个表的结构,一个关pL据库包含一l关p,也就是包含一l二l表Q这些二l表l构体的集合构成数据库的模?也可以理解ؓ数据库的l构)?
关系数据?设计理论包括三个斚w内容Q?数据依赖 、范?、模式设计方法。核心内Ҏ数据依赖?
泛关pL?Q把现实问题的所有属性组成一个关pL式R(U)Q这个关pL式就UCؓ泛关pL式?
数据库模?Q把泛关pL式用一l关pL式的集合ρ来表C时Q这个ρ就是数据库模式?
下面我们ȝ一下关pL式的相关内容????的排?
泛关pL式→数据库模式→关系数据库→表结构→关系模式实例(?→记?行、列.)
关系模式的存储异? 数据冗余 、更 新异??插入异常和删除异?
二、函C?FD)
1、函C赖的定义 ( 领会 )Q设有关pL式R(A1QA2Q?..An)或简CؓR(U)QXQY是U的子集,r是R的Q一具体关系Q如果对r的Q意两个元lt1,t2,由t1 [X]=t2[X]Dt1[Y]=t2[Y]Q则UX函数军_YQ或Y函数依赖于XQ记为X→Y。X→Y为模式R的一个函C赖?
q个定义可以q样理解 Q有一张设计好的二l表QXQY是表的某些列(可以是一列,也可以是多列)Q若在表中的Wt1行,和第t2行上的X值相{,那么必有t1行和t2行上的Yg相等Q这是说Y函数依赖于X?
2、函C赖的逻辑蕴涵 ( 识记 )
设F是关pL式R的一个函C赖集QX,Y是R的属性子集,如果从F中的函数依赖能够推出X→YQ则UF逻辑蕴涵X→YQ记为F|=X→Y.
而函C赖的闭包F + 是指被F逻辑蕴涵的函C赖的全体构成的集合?
3、键和FD的关p?( 领会 )
键是唯一标识实体的属性集。对于键和函C赖的关系Q有两个条gQ设关系模式R(A1,A2...An)QF是R上的函数依赖集,X是R的一个子集,
(1)X→A1A2...An∈F + (它的意思是X能够军_唯一的一个元l?
(2)不存在X的真子集YQ得Y也能军_唯一的一个元l,则X是R的一个候选键?它的意思是X能决定唯一的一个元l但又没有多余的属性集)
包含在Q何一个候选键中的属性称Z属?Q不包含在Q何键中的属性ؓ非主属?非键属?Q注意主属性应当包含在候选键中?
4、函C?FD)的推理规?( 单应?)
前面我们丄例子中是以实际经验来定一个函C赖的逻辑蕴涵Q但是我们需要一个推理规则才能完全确定F或F+的所有函C赖?
设有关系模式R(U)QXQYQZQW均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下Q?
5、函C赖推理规则的完备?( 识记 )
函数依赖推理规则pȝ(自反律、增q律和传递律)是完备的。由推理规则的完备性可得到两个重要l论Q?
6、函C赖集的等价和覆盖 ( 识记)
在关pL式R(U)上的两个函数依赖集F和GQ如?满F + =G + Q则UF和G?{h 的,UF和G{h也称F 覆盖 G或G覆盖F?
每个函数依赖集F都可以被一?右部只有单属性的函数依赖?G所覆盖?
如果函数依赖集F和G{hQƈ且G是最集Q那么称G是F的一?最覆??
q一Dƈ不要求掌握最集的求法,但是应当通过其求法理解最集的概??
三、关pL式的分解Ҏ?
1?模式分解中存在的问题 Q? 识记 )
模式分解 是一个泛关系模式 R分解?数据库模式?Q以ρ代替R的过E。它不仅仅是属性集合的分解Q它是对关系模式上的函数依赖集、以及关pL式的当前值分解的具体表现?
分解一个模式有很多ҎQ但是有的分解会出现失去函数依赖、或出现插入、删除异常等情况Q而有的分解则不出现相关问题?
衡量一个分解的标准有三U: 分解h无损联接 Q?分解要保持函C?Q分?既要保持依赖Q又要具有无损联??
那么什么是无损联接?什么又是保持依?
2?无损联接的定义和性质 ( 识记 )
设R是一关系模式Q分解成ρ={R1,R2Q?..,Rk}QF是R上的一个函C赖集。无损联接就是指R中每一个满F的关pr(也就是一个关pd ?都有r=π R1 (r)|X|π R2 (r)...|X|π R3 (r)Q即r为它在Ri上的投媄的自然联接?
最单的理解Q?也就是说Q分解后的关p?自然q接?完全{于 分解前的 关系Q则q个分解相对于F是无损联接分解?
设R的分解ؓρ={R1,R2},F为R所满的函C赖集Q则分解ρh无损联接性的 充分必要条g 是:
也就是说Q分解后的两个模式的交能军_q两个模式的差集Q即R1、R2的公共属性能够函数决定R1或R2中的其他属?Q这L分解必定是无损联接分解 ?
3?保持函数依赖的分?( 识记 )
在分解过E中Q要求模式分解的无损联接是必要的Q只有无损联接分解才能保证Q何一个关p能由它的那些投p行自然联接得到恢复?
同时Q分解关pL式时q应保证关系模式的函C赖集在分解后仍在数据库模式中保持不变Q这是保持函数依赖的问题。也是所有分解出的模式所满的函C赖的全体应当{h于原模式的函C赖集。只有这h能确保整个数据库中数据的语义完整性不受破坏?
四、关pL式的范式( 领会 )
1?NF?NF?NF、BCNF的定义:
U观四种范式Q可以发现它们之间存在如下关p:
5?分解成BCNF模式集的法( 识记 )
对于M关系模式Q可扑ֈ一个分解达?NFQ且h无损联接和保持函C赖性。而对于BCNF分解Q则可以保证无损联接但不一定能保证保持函数依赖集?
在这个过E中Q?重点在于(3)?Q判断哪个关pM是BCNFQƈ扑ֈX和A。这里,S的判断用BCNF的定义,而X不是S的键则依靠分析?
6?分解?NF模式? 识记 )
q个q程?重点是这一?“对于F中每一个X→AQ构成一个关pL式XA”,q我们的分解十分容易,然后依据合ƈ?合ƈ律:如果X→Y和X→Z成立Q那么X→YZ成立)有x式合q即得到所需3NF模式?
7?模式设计Ҏ的原? 识记 )
关系模式R相对于函C赖集F分解成数据库模式ρ={R 1 ,R 2 ...R k }Q一般具有下?四项Ҏ?Q?
一个好的模式设计方法应W合下列三条原则Q?
8、多g赖。简单了解一下?/p>
W五?数据库设?/b>
与上一章不同,本章的实用性较强,详细讲述了数据库应用pȝ设计的全q程?重点 是概念设计中 ER模型的设计方法, 逻辑设计?ER模型向关pL型的转换Ҏ ?
一、数据库设计概述( 识记 )
1?软g生存?Q是指从软g的规划、研制、实现、投入运行后的维护、直到它被新的Y件所取代而停止用的整个期间。它包括六个阶段Q? 规需讄试运l?)
2、数据库pȝ生存?
数据库应用系l的开发也是一Y件工E,UCؓ数据库工E,数据库应用系l也有生存期的概念,通常包括七个阶段Q?
3、数据库设计Ҏ?
一个好的数据库设计Ҏ应该能在合理的期限内Q以合理的工作量产生一个有实用价值的数据库结构?
数据库及其应用系l的设计分ؓ以下几个阶段Q规划、需求分析、概念设计、逻辑设计、物理设计?
二、规? 识记 )
数据设计中的规划阶段的主要Q务是q行建立数据库的必要性及可性性分析,定数据库系l在l织中和l织中和信息pȝ中的CQ以及各个数据库之间的联pR?
三、需求分? 识记 )
需求分析阶D应对系l的整个应用情况作全面的、详l的调查、确定用L目标Q收集支持系lȝ设计目标的基数据和对q些数据的要求,定用户需求,q把q些要求写成用户和数据库设计者都能够接受的文?
定用户需求可以通过对不同层ơ的企业理人员q行个h讉K得到。还应了解系l将来要发生的变化,充分考虑pȝ的可能的扩充和变动,使系l设计更W合未来发展方向?
需求分析的步骤大致分ؓ三步Q即 需求信息的攉、分析整理和评审?
数据字典Q是对系l中数据的详描qͼ它提供对数据库数据描q的集中理。它包含以下几个部分Q数据项、数据结构、数据流、数据存储和加工q程?
四、概念设? 识记 )
1?概念模型 Q可以看成是现实世界到机器世界的一个过渡的中间层次。在设计数据库系l时Q要把现实世界的事物通过认识和抽象{换ؓ信息世界的概忉|型,再把概念模型转换为机器世界的数据模型?
2?概念设计的主要步?Q分三步完成Q?1)q行 数据抽象 Q设计局部概忉|式;(2)局部概忉|?l合 成全局概念模式Q?3) 评审 ?
3?数据抽象 Q数据抽象的两种形式Q聚集和概括Q?
聚集 Q其数学意义是W卡积的概念,通过聚集QŞ成对象之间的一个联pd象。如有一些对?"老师Q课E?班,上课旉"Q通过聚集可以得到一个联pd?评?。聚集表C的?is_part_of"的关pR?
概括 Q是从一cd他对象Ş成一个对象。如有桃树、李树、杏树等对象Q我们通过概括或以得到一个对??。概括表C的?is_a"的关p,如“李树”是一U“树”?
4、基本ER模型的扩? 领会 )
ER(实体联系)模型 是对现实世界的一U抽象,它的主要成䆾?实体 ?联系 ?属?。但是在现实世界中还有一些特D的语义。需要扩展ER模型的概忉|能更好地模拟现实世界?
依赖联系 Q在现实世界中,有些实体对一另一些实体有很强的依赖关p,即一个实体的存在必须以另一实体的存在ؓ前提。前者就UCؓ"弱实?Q如在h事管理系l中Q职 工子女的信息是以职工的存在为前提的Q子奛_体是弱实体,子女与职工的联系是一U依赖联pR在ER图中用双U框表示弱实体。用头表示依赖联系?
子类 Q在现实中,存在某个实体cd中所有实体同时也是另一实体cd中的实体Q此Ӟ我们U前一实体cd的子类Q后一实体cdUCؓ类。子cL一个很重要的性质l承性。在ER图中Q超cȝ两端双线框表C,q用加圈的线与子cȝq?
5、ER模型的操? 领会 )
ER模型在数据库概念设计q程中经帔R要进行变换,包括实体cd、联pȝ型和属性的分裂、合q和增删{?
实体cd的分裂包?垂直分割 、水q_??
注意Q在垂直分割Ӟ键必d分裂后的每个实体cd中出现。在联系cd合ƈӞ所合ƈ的联pȝ型必L定义在相同的实体cd中?
6?采用ERҎ的数据库概念设计( 领会 )
采用ERҎq行数据库概念设计分成三步进行:
五、逻辑设计
1、概念设计的l果是得C个与DBMS无关的概忉|式。?逻辑设计 的目的是把概念设计阶D设计好的基?ER图{?Z选用的具体机器上的DBMS所支持的数据模式相W合?逻辑l构 (包括数据库模式和外模??
W六?数据库保?/b>
本章不是重点章节Q主要内容包括数据库保护的四U措施,数据库的恢复、ƈ发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式?
一、数据库的恢? 领会 )
1?事务的概?Q?事务是一个操作序?。这些操作要么什么都做,要么都不做,是一?不可分割 的工作单位。事务以BEGIN TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤?语句l束?
一个程序的执行可通过若干事务的执行序列来完成?
2?事务的性质 Q?原子?(atomicity)?一致?(consistency)?隔离?(isolation)?持久?(durability)。称Z务的ACID性质?
通过教材的例子来理解事务的性质 ?
3、故障类型和恢复Ҏ
4、恢复的基本原则和实现方?
恢复的基本原?很简单,是?冗余 ”,x据的重复存储 ?
5?q行记录优先原则 (?先记录,再更斎ͼ先记完,再结?)
6、SQL中的恢复操作,可上察?
二、数据库的ƈ发控? 领会 )
1、ƈ发控制带来的三类问题Q?
2、ؓ解决q发控制带来的问题,通常要采?锁 (locking)技术,常用的封锁有Q排它型锁( X锁) 和共享型锁( S锁 )两种?
X锁的规则称?PX协议 Q其内容为:M企图更新记录R的事务必d执行LOCK X(R)操作Q以获得对该记录q行d的能力,q对它取得X锁。如果未获得X锁Q那么这个事务进入等待状态,一直到获准X锁Q事务l进行?
CؓQ?先锁XQ再执行Q取不到Q就{待?
PXC协议 Q它由PX协议及一条规?X锁必须保留?事务l点 (COMMIT或ROLLBACK)"l成?
S锁的规则称?PS协议 Q其内容为:M要更新记录R的事务必d执行LOCK S(R)操作Q以获得对该记录d的能力ƈ对它取得S锁。如果未获准S锁Q那么这个事务进入等待状态,一直到获准S锁Q事务才l箋q行下去。当事务 获准对记录R的要锁后,在记录R修改前必LS锁升为X锁?
CؓQ?先锁SQ再执行Q锁不到Q就{待Q若要修改则升X ?
PSC协议Q由PS协议和“将S锁保持C务终点”组成?
3?z锁 Q是指某个事务永q处于等待状态,得不到执行的现象。避免活锁的Ҏ是采用“先来先服务”策略?
死锁 Q有两个或以上的事务处于{待状态,每个事务都在{待另一个事务解除封锁,它才能l执行下去,l果M一个事务都无法执行Q这U现象就是死锁?
解除死锁的方法是由DBMS中的“死锁测试程序”来查,如发现死锁则牺牲一个事务,q做回退操作,解除它的所有封锁?
4?两段锁?( 识记 )
两段锁协议规定所有事务都要遵守下列规则:(1)在对M数据q行d操作之前Q事务首先要获得对该数据的封锁;(2)在释放一个封锁之后,事务不再获得M其他锁?
针对课本的例子来理解?
三、数据库的完整? 领会 )
1、数据库?完整?是指数据?正确性和相容?。数据库中数据发生错误,往往是由非法更新引v的?
数据库完整性是通过DBMS?完整性子pȝ 实现的,它有两个功能Q?
数据库完整性子pȝ 是根据?完整性规则集 ?工作的,q些完整性规则包括: ?完整性规则?域联p?的规则?关系完整?规则(一个比一个大)
2、SQL中的完整性约?
在SQL中,表达完整性约束的规则?主键U束 ?外键U束 ?属性值约??全局U束{?多种形式?
四、数据库的安全? 识记 )
数据库的安全性是指保护数据库防止不合法的使用Q以免数据的泄漏、非法更改和破坏?
1、安全性别:包括 环境U??职员U??OSU??|络U??数据库系l ?
2、用h应用E序 使用数据库的方式UCؓ权限 Q权限的U类Q?
3、权限的转授与回ӞM?权限?Q只要根l点到用L点之间存在一?路径 Q那么它有权限Q回收时是删去某些路径?
4、SQL中的安全性控?
SQL中有两个安全机制Q一?视图机制 、二?授权子系l??
视图是从一个或几个 基本?导出的表Q是 虚表 Q视囑֮义后可以像基本表一L于查询和删除Q但?更新操作(增、删、改) 会受到限制?
视图机制 把用户可以用的数据定义在视图中Q这L户就不能使用视图定义外的其他数据Q从而保证了数据库的安全性。视图机制ɾpȝh 三个优点 Q?数据安全??数据独立??操作便??
授权机制 可以保证用户只能q行其权限范围内的操作?
6、数据加密可更好C证数据库中数据的安全性,采用加密法l把源文变ؓ密文来实现。常用的加密法有?替换Ҏ ”和 明键加密??
同时Qؓ保证数据库的安全Q也应注意自然环境的安全性?