数据库系统概论期末复习
第一部分 数据库系统概论
1. 数据处理技术发展经历
人工管理、文件系统、数据库系统、分布式系统
系统|特点 |
数据结构化 |
数据共享 |
数据独立性 |
数据粒度小 |
操作界面 |
|
人工管理 |
无结构化 |
无 |
完全依赖 |
/ |
/ |
|
文件系统 |
有结构,但相互独立 |
数据文件间相互独立 |
程序与数据相互依赖 |
以记录为基本单位处理 |
依赖程序的操作界面 |
|
数据库系统 |
有结构,文件间相互联系——数据库结构 |
共享 |
数据通过DMBS、OS与程序保持联系 |
以记录中数据项为处理单位 |
有独立的数据操作界面DBMS |
由DBMS管理 |
分布式系统 |
具有上面五个特点外,还具有系统的可靠性高。支持客户的局部应用与支持客户的全局应用。P:6 |
重点在于:文件系统与数据库系统的区别
2. 数据库系统的特点
结构化、减少数据冗余、数据共享、数据完整性、安全性和并发控制等
3. 数据模型
(1) 数据联系:涉及到几个实体就称为几元联系。
(2) 概念:实体、属性(主属性与非主属性)、码、域、联系类型(1对多,1对1,多对多)
(3) 数据模型分为:不管那种类型,都有型与值的区别。型是抽象的、静态的、相对不变的;值是具体的、动态的、常变化的。
l 概念模型(用E-R图描述)
l 逻辑模型:
层次——一种树型结构模型、只有一个根,每个结点只有一个父结点;
网状——一种图形结构,允许有多个双亲
以上两种隐含1:M的联系,数据操作都要给出完整的路径——称操作方式是过程式的。只是后者的操作更灵活。——两者本质上是一致的,所以统称为非关系模型。
关系模型——是一个二维表格结构。
所有的数据模型都有型与值的概念。但前面四种的处理信息的基本单位为数据记录,而面向对象型还包括图型等信息,即基本单位为对象。
4. 数据库体系结构
l 三级模式结构(局部(外)、全局(概念)、存储(内)),内模式、全局模式只有一个,外模式则可以任意多个。
l 两级映象(局部/全局、全局/存储)
l 三级体系结构及两级映象结构确保了数据的逻辑和物理独立性
5. 数据库管理系统的功能
定义、操纵、控制、维护、数据字典
第一章:课后的习题
第二部分 关系运算
关系模型包括关系数据结构、关系完整性规则和关系运算三个方面。
一、关系数据结构
1、笛卡儿积:一组域上的集合。
D1*D2*D3。。。Dn={ (d1,d2,d3….)
(1)笛卡儿积中的每个元素称为元组。元组的个数称为基数。
例1:D1={1,2,3} D2={4} D3={5,6}
Q1:基数分别为多少?(3,1,2)
Q2:三者的笛卡儿积的基数是多少(即有多少个元组)?(3*2*1=6)
Q3:写出笛卡儿积:{145,146,245,246,345,346}
(2)N个域上笛卡儿积对应一张二维表。
2、关系
(1)关系是笛卡儿积的一个子集。
(2)关系的六个性质。
3、码:分为超码、候选码、主码、备用码、外码
4、关系模式:是一个关系的型,即表的结构。关系模式的表示方法:R(U)——R称为关系名字,U——属性集合。
或者写成:R(A1,A2,A3。。。)
二、关系完整性
1、实体完整性:主码不能空,特别在复合属性的主码上要注意
2、参照完整性:外码或为空,或者为被参照关系中某个元组的主码。外码(子)与主码(父)间隐含的是父子关系(1:N)
3、用户定义的完整性:
三、关系代数
1、传统的集合运算:
并:求出两个关系中所有元素集合,完全相同的只保留一个;
交:求出两个关系中相同的元素
差:求出前者与后者不同的元素
注意:交并差一定要在相同结构的模式中操作;
笛卡儿积:
2、专门的关系运算
(1)选择δ:
(2)投影Õ:
(3)连接><:等值连接、自然连接
例:设学生选课涉及三个关系即学生关系S、课程关系C和学生选课关系SC,它们的结构如下所示:
S(S# ,SN ,SEX ,AGE ,DEPT)
C(C# ,CN)
SC(S# ,C# ,GRADE)
请用关系代数表达式表示下列查询。
Q1:写出姓名为‘李小波’的学号及系名所对应的运算表达式
IIs#,dept(δsn=’李小波’(S))
Q2:写出‘李小波’选修的课号、课名及成绩
IIc#,cn,grade((δsn=’李小波’(S)) >< C)
Q3:查询至少有一门选修课程成绩高于85分的学生的姓名及所在专业系。
ÕSN,DEPT ((δGRADE>85 (SC ) )>< S)
Q4:查询姓名为变量name的值的学生所选修的全部课程信息。
Õc#,CN(C><ÕC#(SC ><(δSN=sn1(S ))))
课后习题
第三部分 关系规范化基础
一. 数据不规范化带来的问题
数据冗余、插入异常、删除异常、修改异常
二. 函数依赖
1、 属性间联系:
2、 函数依赖与相互函数依赖:例X决定Y,Y决定X
3、 非平凡和平凡函数依赖
4、 部分和完全函数依赖:
(1)部分函数依赖必然为传递函数依赖,反之不对。
(2)部分函数依赖仅在复合候选码时才有可能出现。
5、 直接和传递函数依赖
6、 最小函数依赖集:X决定Y是完全非函数依赖,且Y是单属性,则是最小函数依赖,一个关系所有的最小函数依赖,就称为最小函数依赖集。
例1:R(A,B,C,D),函数依赖集F={A->C,C->A,B->AC,D->AC,BD->A}
Q1:这是最小函数依赖集吗?如果不是,写出最小函数依赖集
Q2:找出候选码——BD
例2:R(A,B,C,D,E,P),函数依赖集F={A->D,E->D,D->B,BC->D,DC->P}
Q1:这是最小函数依赖集吗?如果不是,写出最小函数依赖集
Q2:找出候选码——(A、E、D、BC、DC)——A、E、C
例3: 零件(零件号,零件名称,仓库号,地址,职工号)
写出最小函数依赖关系(每个仓库只有一个职工负责,每个职工也只负责一个仓库,仓库可以放很多零件,每种零件只放在一个仓库)
FD={ 仓库号->地址,仓库号->职工号,职工号->仓库号 零件号->仓库号,零件号->零件名称}
7、 函数依赖常用规则
(1) 自反性:X包含Y,则存在X决定Y
(2) 增广性:X决定