数据库系统原理课程教案课程要点掌握数据库系统的基本概念和基本.docx
- 文档编号:25990009
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:172
- 大小:1.59MB
数据库系统原理课程教案课程要点掌握数据库系统的基本概念和基本.docx
《数据库系统原理课程教案课程要点掌握数据库系统的基本概念和基本.docx》由会员分享,可在线阅读,更多相关《数据库系统原理课程教案课程要点掌握数据库系统的基本概念和基本.docx(172页珍藏版)》请在冰豆网上搜索。
数据库系统原理课程教案课程要点掌握数据库系统的基本概念和基本
数据库系统原理课程教案
课程要点:
1.掌握数据库系统的基本概念和基本原理。
2.掌握E-R模型的概念和方法。
3.了解关系的性质,掌握关系模型的基本概念。
4.掌握关系数据库标准语言-SQL。
5.掌握关系数据库规范化理论和数据库设计方法,初步具备进行数据库应用系统开发的能力。
6.了解数据库的恢复技术及数据库的安全性。
7.使用关系数据库管理系统ORACLE。
参考书目:
1.施伯乐、杨卫东、孙未未等译,《现代数据库管理》,机械工业出版社,2004年9月。
2.何玉洁、黄婷儿译《数据库设计教程》,机械工业出版社,2003年6月。
3.周立柱、张志强、李超、王煜等译《数据库管理系统》,清华大学出版社,2004年3月。
4.杨冬青、唐世渭等译《数据库系统概念》,机械工业出版社,2003年3月。
第一章绪论
信息与数据
数据处理技术的发展
数据描述与概念模型
数据模型
关系数据模型
数据库系统结构
数据库管理系统
一引言
代表性应用:
1.银行业、航空业、大学、信用卡交易、电信业、金融业、销售业、制造业。
2.计算机的主要应用领域:
科学计算、数据处理、过程控制,数据处理
3.数据库系统是数据处理的核心机构,管理信息系统,办公自动化,决策支持系统等都使用数据库系统或数据库技术。
二数据库的发展概况
数据库发展的各个阶段:
1.人工管理阶段(20世纪50年代中期以前,计算机数据管理的初级阶段。
)
2.文件系统阶段(20世纪50年代后期-60年代中期
(1)数据冗余度大。
(2)易造成数据的不一致性。
(3)程序与数据相互依赖(4)应用程序设计困难。
)
3.数据库系统阶段(20世纪60年代后期,1970年美国IBM公司的高级研究员E.F.Codd连续发表论文,提出了关系数据模型,奠定了关系数据库的理论基础。
)
2.1人工管理阶段(---50年代中期)
1.计算机主要用于科学计算:
数据量小、结构简单,如高阶方程、曲线拟和等;
2.外存为顺序存取设备:
数据不保存在计算机内部,而是存储在磁带、卡片、纸带,没有磁盘等直接存取设备;
3.没有专用数据管理软件:
用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户上机操作;
4.数据是面向程序的:
每一组数据对应一个程序,两个程序之间不能共享数据。
2.2文件系统阶段(---60年代中期)
1.计算机不但用于科学计算,还用于管理外存有了磁盘、磁鼓等直接存取设备。
有了专门管理数据的软件,一般称为文件系统
2.存在问题:
数据的冗余和不一致。
数据访问困难。
数据孤立。
完整性问题。
原子性问题。
并发访问异常。
2.3数据库系统阶段
1.数据库系统阶段(60年代末期)
采用数据模型表示复杂的数据结构
数据冗余度小
有较高的数据独立性
提供数据控制功能
为用户提供方便的用户接口
2.高级数据库系统阶段(70年代中期至今)
半结构化数据库系统
面向对象数据库系统
三数据库抽象层次
1.物理层。
最低层次的抽象,描述数据实际上是怎样存储的。
物理层详细描述复杂的低层数据结构。
2.逻辑层。
比物理层层次稍高的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系,因而整个数据库通过少量相对简单的结构来描述。
虽然简单的逻辑层结构的实现涉及到复杂的物理层结构,但逻辑层的用户不必知道这种复杂性,逻辑层抽象是由数据库管理员所使用的,管理员必须确定数据库中应该保存哪些信息。
3.视图层。
最高层次的抽象,但只描述整个数据库的某个部分。
尽管在逻辑层使用了比较简单的结构,但由于数据库的规模不大,所以仍存在一定程度的复杂性。
数据库系统的多数用户并不需要关心所有的信息,而只需要访问数据库的一部分。
四实例与模式
数据库模式对应于程序设计语言中的类型定义。
给定类型的一个变量在某个给定的时刻有特定的值。
因此,程序设计语言中变量的值对应于数据库模式的一个实例。
根据抽象层次的不同,数据库系统可以分为不同模式。
处于最低层的是物理模式,其次是邃辑模式,最高层是子模式。
通常,数据库系统支持一个物理模式、一个逻辑模式和多个子模式。
数据独立性
(1)物理数据独立性是修改物理模式而不必重写应用程序的能力。
(2)逻辑数据独立性是修改逻辑模式而不必重写应用程序的能力.
五数据模型
实体-联系模型
(1)实体(entity):
客观存在,可以相互区别的东西称为实体。
(2)实体集(entityset):
性质相同的同类实体的集合。
(3)属性(attribute):
实体的某一方面的特征
(4)属性域(domain):
属性的取值范围;含值的类型
(5)码(key):
唯一标识每个实体的属性或属性集
(6)实体型(entitytype):
某一实体属性的集合
实体联系模型简称为E-R模型,该模型直接从现实世界中抽象出实体类型和实体之间的联系,然后用实体联系图(E-R图)表示数据模型。
E-R图由以下一些部分组成:
(1)矩形框:
表示实体类型。
(2)菱形框:
表示联系类型。
(3)椭圆形框:
表示实体类型和联系类型的属性。
(4)连线:
实体与属性之间,联系与属性之间用直线连接;联系类型与其涉及的实体类型用直线连接,并标注联系的类型。
数据模型:
(1)面向对象数据模型
(2)半结构化数据模型
(3)其它数据模型
(4)网络数据模型、层次数据模型
六数据库语言
数据库系统提供两种不同类型的语言:
一种用于定义数据库模式;一种用于表达数据库的查询和更新。
6.1数据定义语言
数据字典是一个包含元数据的文件,元数据是关于数据的数据。
在数据库系统中,实际数据读取和修改前总要先查询该文件。
数据库系统所使用的存储结构和访问方式通过一系列特殊的DDL语句来定义,这种特殊的DDL语句称作数据存储定义语言。
6.2数据操纵语言(DML)
数据操纵是指:
(1)对存储在数据库中的信息进行检索。
(2)向数据库中插人新的信息。
(3)从数据库中删除信息。
(4)修改数据库中存储的信息。
通常有两类数据操纵语言:
(1)过程化的DML要求用户指定需要什么数据以及如何获得这些数据。
(2)非过程化的DML只要求用户指定需要什么数据,而不必指明如何获得这些数据。
七事务管理
事务是数据库应用中完成单一逻辑功能的操作集合,是一个既具原子性又具一致性的单元。
因此,我们要求事务不违反任何的数据库一致性约束,也就是说,如果事务启动时数据库是一致的,那么当这个事务成功完成时数据库也应该是一致的。
但是,在事务执行过程中,必要时允许暂时的不一致,这种暂时的不,一致尽管是必需的,但在故障发生时,很可能导致问题的产生。
(1)正确定义不同事务是程序员的任务,事务的定义应使之能保持数据库的一致性。
(2)原子性和持久性的保证则是数据库系统自身的任务,更确切一些,是事务管理器的任务。
(3)并发控制管理器控制并发事务间的相互影响,保证数据库的一致性。
八存储管理
数据库系统的目标是要简化和辅助数据访问,高层视图有助于实现这样的目标。
系统用户可以不受系统实现的物理细节所带来的不必要的负担所累。
但是,决定用户对数据库系统满意与否的一个主要因素是系统的性能。
如果一个要求的响应速度太慢,系统的价值就会下降。
系统性能决定于用来表示数据库中数据的数据结构的高效性,以及系统对这样的数据结构进行操作的高效性。
正如计算机系统中其他地方也会出现一样,不仅要在时间与空间两者间进行权衡,还要在不同操作的效率间进行权衡。
存储管理器是在数据库中存储的低层数据与应用程序及向系统提交的查询之间提供接口
九数据库管理员(DBA)
1.模式定义。
通过书写一系列的定义来创建最初的数据库模式,这些定义被DDL编译器翻译成永久地存储在数据字典中的表集合。
2.存储结构及存取方式定义。
通过书写一系列的定义来创建适当的存储结构和存取方式。
3.模式及物理组织的修改。
程序设计人员偶尔也会对数据库模式或物理存储组织的描述进行修改,这是通过书写/系列的定义来实现的。
4.数据访问授权。
通过授予不同的权限,数据库管理员可以规定不同的用户各自可以访问的数据库的部分。
5.完整性约束的定义。
数据库中所存储的数据的值必须满足一定的一致性约束。
十数据库用户
1.应用程序设计人员是计算机专业人员、他们通过DML调用,同系统进行交互。
2.富有经验的用户并非通过编写程序来同系统交互,而是用数据库查询语言来表达他们的要求。
每个这样的查询都被提交给查询处理器。
3.专门的用户是编写专门的、不适合于传统数据处理模式的数据库应用程序的富有经验的用户。
4.新用户是没有经验的用户,他们通过激活以前已经写好的一个永久的应用程序同系统进行交互。
十一系统总体结构
可以划分为以下四个部分:
(1)数据库用户:
包括DBA、专业用户、应用程序员和终端用户。
(2)DBMS的查询处理器:
包括DML编译器、嵌入式DML的预编译器、DDL编译器和查询运行核心程序。
(3)DBMS的存储管理器:
包括权限和完整性管理器、事物管理器、文件管理器和缓冲区管理器。
(4)磁盘存储器中的数据结构:
包括数据文件、数据字典、索引、统计数据和日志。
第二章:
关系模型
ExampleofaRelation
关系数据模型
2.1关系数据模型的基本概念与术语
2.2关系代数
2.3关系演算
2.4关系运算的安全限制
2.5关系代数表达式的优化
一关系、元组、属性和域
基本的数据结构是二维表。
二维表的表头那一行称为关系模式(RelationalScheme),每一张表称为该关系模式的一个具体关系或简称为关系(Relation)。
二维表的各行称为关系的元组(Tuple),元组的个数称为基数(Cardinality)。
二维表中的每一列称为关系的属性(Attributes),列中的元素为该属性的值,称作分量。
关系实体
关系、元组、属性和域
1.每个属性所对应的变化范围叫属性的变域或简称域(Domain),它是一个值的集合,关系中所有属性的实际值均来自于它所对应的域。
2.每一个关系有一个关系模式,它由一个关系名以及它所有的属性名构成。
一个关系模式可以对应有多个关系,但是一个关系只能对应一个关系模式。
3.一个具体的关系数据库(RelationalDatabase)是一个关系的集合,而关系数据库模式(RelationalDatabaseSchema)是关系模式的集合。
定义设有属性A1,A2,…,Ak,它们分别在域D1,D2,…,Dk中取值,则这些域构成的一个笛卡尔乘积空间D=D1×D2×…×Dk中的任意一个子集D′为一个关系,记为R。
其关系模式是属性Ai的一个有序集合,记为R(A1,A2,…,Ak)。
D中任一个元素
使用集合论的符号,上述定义可表示R={<t1,t2,…,tk>|<t1,t2,…,tk>DD}或R={tk|tkD}
关系是属性值域的笛卡尔积中有意义的元组的集合。
(1)customer_name={Jones,Smith,Curry,Lindsay,…}
/*Setofallcustomernames*/
(2)customer_street={Main,North,Park,…}
/*setofallstreetnames*/
(3)customer_city={Harrison,Rye,Pittsfield,…}
/*setofallcitynames*/
(4)则r={(Jones,Main,Harrison),
(Smith,North,Rye),
(Curry,North,Rye),
(Lindsay,Park,Pittsfield)}
是属性值域笛卡尔积
customer_namexcustomer_streetxcustomer_city
二关键字
(1)超关键字(SuperKey)。
在一个关系中,若某一属性集合的值对不同的元组是不同的(因而可惟一地标识元组),则称该属性集合为该关系的超关键字。
(2)候选关键字(CandidateKey)。
如某一属性集合是超关键字,但去掉其中任一属性后就不再是超关键字了,这样的属性集合称为候选关键字。
(3)合成关键字(CompositeKey)。
当某个候选关键字包含有多个属性时,则称该候选关键字为合成关键字。
主关键字(PrimaryKey)。
当按关系组织物理文件时,通常选用一个候选关键字作为插入、删除、检索元组的操作变量。
被选用的候选关键字称为主关键字。
组成主关键字的属性称为主属性,其所对应的值域称为主域。
外来关键字(ForeignKey)。
如果关系R1的某一(些)属性A1不是R1的候选关键字,而是另一关系R2的候选关键字,则称A1为R1的外来关键字。
外来关键字提供了一种表示两个关系联系的方法。
三关系
1.每一列中的数值是同类型的数据,来自同一个域。
2.不同的列可对应于同一个域,但给予不同的属性名。
3.同一关系中不允许有相同的记录。
无重复行。
4.行、列的次序可以任意交换,不影响关系的实际意义。
5.关系中的每一个属性值都必须是不能再分的元素。
四关系模式
A1,A2,…,An是属性集合
R=(A1,A2,…,An)是关系模式
例如:
Customer_schema=(customer_name,customer_street,customer_city)
r(R)表示建立在关系模式R上的关系
Example:
customer(Customer_schema)
五关系模型的数据操作
4种基本的数据操作功能。
1.数据查询。
三个基本操作:
(1)一个关系内属性的指定。
(2)一个关系内元组的选择。
(3)两个关系的合并。
2.数据插入。
在关系内插入一些新的元组。
3.数据删除。
在关系内删除一些元组。
4.数据修改。
在关系内修改一些元组的内容。
数据修改可以分解成两个更为基本的操作:
先删除要修改的元组,然后插入修改后的元组。
上述4种操作功能的操作对象都是关系,其操作结果仍为关系。
操作的基本方法有5种(关系的属性指定、关系的元组选择、两个关系的合并、关系中元组的插入和关系中元组的删除)。
六数据操作语言
数据操作语言是数据库管理系统提供的用户接口,是用户用来操作数据库的手段,通常包括查询语句和非查询语句。
关系运算可以分为两大类:
关系代数和关系演算。
关系演算又可以分为元组关系演算和域关系演算两类。
关系数据库操作语言分为基于关系代数的语言和基于关系演算的语言,后者又可以分为元组关系演算语言和域关系演算语言。
七完整性约束
为了维护关系数据库的完整性和一致性,数据与数据的更新操作必须遵守如下4类完整性约束。
1.域完整性约束
域完整性(DomainIntegrity)约束要求属性值必须取自其对应的值域;一个属性值能否为空值由其语义决定。
2.实体完整性约束
实体完整性(EntityIntegrity)约束的规则是:
主关键字值必须是唯一的,且任何组成部分都不能是空值。
3.参照完整性约束
参照完整性(ReferentialIntegrity)又称为引用完整性,其约束的规则是:
设D是一个主域,R1是一个关系,它有一个在D上定义的属性A。
那么,在任何给定的时刻,R1中A的每个值或者是空值,或者等于以A为主关键字的某个关系R2中的一个主关键字值(R1和R2可以相同)。
主关键字和外来关键字提供了一种表示元组之间联系的手段。
外来关键字要么空缺,要么引用一个实际存在的主关键字。
4.用户自定义完整性约束
八关系代数
关系代数是一组施于关系上的高级运算,每个运算都以一个或多个关系作为它的运算对象,并生成另外一个关系作为该运算的结果。
8.1集合运算
1.合并(Union)
R1∪R2={t|t∈R1∨t∈R2}
2.求差(Difference)
R1-R2={t|t∈R1∧tR2}
3.相交(Intersection)
R1∩R2={t|t∈R1∧t∈R2}
R1∩R2=R1-(R1-R2)
4.乘积(CartesianProduct)
乘积的结果关系为一个k1+k2元的新关系,n1×n2个元组。
集合并操作
集合差操作
笛卡尔积操作
九关系运算
1.投影(Projection)
πj1,j2,…,jn(R)={t|t=
2.选择(Selection)
σF(R)={t|t=
σF(R)表示从关系R中挑选出满足条件表达式F的那些元组所构成的关系。
选择操作
投影操作
3.连接(Join)
4.自然连接(NaturalJoin)
自然连接是一种等值连接,即运算符θ为“=”,并且去掉重复属性。
十银行实例
branch(branch_name,branch_city,assets)
customer(customer_name,customer_street,customer_city)
account(account_number,branch_name,balance)
loan(loan_number,branch_name,amount)
depositor(customer_name,account_number)
borrower(customer_name,loan_number)
查询实例
1.查询贷款额超过$1200的信息
amount>1200(loan)
2.查询贷款额超过$1200的贷款帐号
loan_number(amount>1200(loan))
3.查询同时有存款和贷款的客户名
customer_name(borrower)customer_name(depositor)
4.查询在Perryridge支行有贷款的客户名.
customer_name(branch_name=“Perryridge”
(borrower.loan_number=loan.loan_number(borrowerxloan)))
查询在Perryridge支行有贷款,但在其它支行均没有账号的客户名.
customer_name(branch_name=“Perryridge”
(borrower.loan_number=loan.loan_number(borrowerxloan)))–
customer_name(depositor)
5.查询在Perryridge支行有贷款的客户名.
Query1
customer_name(branch_name=“Perryridge”(
borrower.loan_number=loan.loan_number(borrowerxloan)))
Query2
customer_name(loan.loan_number=borrower.loan_number(
(branch_name=“Perryridge”(loan))xborrower))
5种基本操作的实现
1.关系的属性指定
πA1,A2,…,An(R)
2.关系的元组选择
σF(R)
3.两个关系的合并
R1×R2
4.关系中元组的插入
R∪R'
5.关系中元组的删除
R-R'
十一集合运算
对两个关系的集合运算传统的集合运算是二目运算,是在两个关系中进行的。
但是并不是任意的两个关系都能进行这种集合运算,而是要在两个满足一定条件的关系中进行运算。
那么,对关系有什么要求呢?
下面先看一个定义。
设给定两个关系R、S,若满足:
(1)具有相同的度n;
(2)R中第i个属性和S中第i个属性必须来自同一个域。
则说关系R、S是相容的。
除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。
1.并(Union)
关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。
记作:
R∪S={t|t∈R∨t∈S}
对于关系数据库,记录的插入和添加可通过并运算实现。
2.差(Difference)
关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。
记作:
R-S={t|t∈R∧┐t∈S}
通过差运算,可实现关系数据库记录的删除。
3.交(Intersection)
关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。
记作:
R∩S={t|t∈Rt∈S}
如果两个关系没有相同的元组,那么它们的交为空。
两个关系的并和差运算为基本运算(即不能用其他运算表达的运算),而交运算为非基本运算,交运算可以用差运算来表示:
R∩S=R-(R-S)
4.广义笛卡尔积(ExtendedCartesianProduct)
两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。
若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作
R×S={tr⌒ts|tr∈R,∧ts∈S}
关系的广义笛卡尔积可用于两关系的连接操作(连接操作将在一节中介绍)。
如图所示的两个关系R与S为相容关系,(c)为R与S的并,(d)为R与S的交,(e)为R与S的差,(f)为R与S的广义笛卡尔积。
(a)(b)
4.除法(Division)
除法运算是二目运算,设有关系R(X,Y)与关系S(Y,Z),其中X,Y,Z为属性集合,R中的Y与S中的Y可以有不同的属性名,但对应属性必须出自相同的域。
关系R除以关系S所得的商是一个新关系P(X),P是R中满足下列条件的元组在X上的投影:
元组在X上分量值x的象集Yx包含S在Y上投影的集合。
记作:
R÷S={tr[X]|tr∈R∧Πy(S)Yx}
其中,Yx为x在R中的象集,x=tr[X]。
除法运算为非基本运算,可以表示为:
R÷S=Πx(R)-Πx(Πx(R)×S-R)
已知关系R和S,如图所示,则R÷S如图(c)所示。
与除法的定义相对应,本题中X={A,B}={(a1,b2),(a2,b4),(a3,b5)},Y={C,D}={(c3,d5),(c4,d6)},Z={F}={f3,f4}。
其中,元组在X上各个分量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 课程 教案 要点 掌握 基本概念 基本