期末复习之数据库

数据库系统概论(第五版)

一、会考的知识要点

目录:
⑴ 数据库的基本概念
⑵ 数据库的组成
⑶ 数据模型的组成
⑷ 关系模型
⑸ 数据类型
⑹ 基本表的操作
⑺ 视图
⑻ 关系代数
⑼ 数据库的完整性
⑽ 函数依赖
⑾ 码
⑿范式
⒀数据库设计的基本操作
⒁ 事务
⒂ 封锁

二、具体内容

  1. 数据库的四个基本概念: 数据、数据库、数据库管理系统、数据库系统;

  2. 数据库系统由什么组成
    由数据库,数据库管理系统(及其应用开发工具)、应用程序、数据库管理员组成的存储、管理、处理和维护数据的系统;

  3. 数据模型的组成要素: 数据结构、数据操作、数据的完整性的约束条件三部分组成;

  4. 关系模型
    (1) 关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项,不允许表中还有表;
    (2)关系模型中的数据操作是集合操作,操作的对象和结果都是集合关系;
    (3)三模:内模式、模式、外模式;

  5. 常用的几个数据类型
    ① int 4字节;
    ② small int 4字节;
    ③ big int 8字节;
    ④ Date 日期,包含年、月、日 格式为YYY–MM–DD ;
    ⑤ Time 时间,包含一日的时分秒,格式为 HH:MM:SS ⑥timestamp 时间戳类型 interval 时间间隔类型;

  6. 基本表的操作
    ⑴ 删除基本表:
    DROP TABLE STUDENT CASCADE(全部删除无限制) RESTRICT(有限制,如check,foreign key)
    ⑵ 数据更新:
    ① 插入数据:INSERT INTO<表名>[(<属性列1>)(<属性列2>)......] VLAUES[(<常量1>),(<常量2>)......];

    INSERT
    	INTO Student(Sno,SName,Ssex,Sdept,Sage)
    	VALUES('02','黑子','男','IS','18');
    

    ②修改数据/更新操作:UPDATE <表名> SET<列名> = <表达式> [<列名>=<表达式>] [Where <条件>];

    UPDATE Student
    	SET Sage = 22;
    	Where Sno ='02';
    

    ③删除数据:DELETE FROM <表名> [Where <条件>]

    DELETE
    	From Student
    	Where Sno = '02';
    
  7. 视图 (虚表) 不存储实际的数据
    ⑴ 视图的作用(必考):
    ① 简化用户操作;
    ② 使用户可以从多种角度看待同一数据;
    ③ 能够对机密数据提供安全保护;
    ④ 更清晰地表达查询;
    ⑤ 对重构数据提供了一定程度的逻辑独立性;
    ⑵ 建立视图 :
    CREATE VIEW <视图名> [(<列名>),(<列名>)......] AS <子查询> [with check option]
    其中子查询可以是任意的Sql语句;
    例1:有学生表S(SNO,SN) 和学生选修课表SC(SNO,CNO,CN,C)。
    a.建立一个视图 V–SSC(SNO,SN,CNO,CN,C)并按CNO升序排序;

    CREATE VIEW V--SSC (SNO,SN,CNO,CN,C)
    	AS SELECT S.SNO,S.SN,S.CN,SC.C FROM S,SC WHERE 
    	S.SNO:SC.SNO ORDER BY CNO;
    

    ⑶ 删除视图:DROP VIEW <视图名> [CASCADE] 关于级联删除【cascade】的用法此处不进行具体阐述;
    ⑷ 查询视图:
    查询选修了 1号课程的信息系学生

    sql
    SELECT Sno,Sage FROM is_Student.SC
    Where is_Student.Sno = SC.Sno and SC.Cno ='1'
    
    注:本查询涉及视图 is-Student(虚表)和基本表Sc,通过这俩个表的连接来完成用户请求
    

    ps: Where 子句中是不能用聚集函数作为条件表达式的,举下面一个例子

    SELECT SNO,AVG(GRADE)
    	FROM SC
    	Where AVG(GRADE)>=90
    	GROUP BY SNO;
    	这个是错误的。
    
    SELECT SNO,AVG(GRADE)
    FROM SC
    GROUP BY SNO
    HAVING AVG(GRADE)>=90;
    这个是正确的。
    

    ⑸更新视图:
    ①(通过视图来插入(insert),删除(delete),修改(update)数据)
    ②由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。下面举个例子实际说明一下。
    例2:将信息系学生视图IS-Student中学号为’02’的学生姓名改为王东。

    解析:分为两步,一步是对于视图的更新,一步是对于基本表的更新;
    
    UPDATE IS-Student
    SET Sname = '王东'
    Where SNO ='02';
    

    转换后的更新语句为:

    UPDATE Student
    SET Sname = '王东'
    Where SNO = '02' AND Sept = 'IS';
    

    插入和删除操作类似;
    ③ 并不是所有的视图都可以更新的(书127页)有详细介绍;这里只简单的列举几项:
    1.DB2规定视图由俩个表导出的不允许更新;
    2.视图定义含有group by ,distinct 不允许更新;
    3.视图的字段来自聚集函数不允许更新;
    4.含有嵌套查询的语句不允许更新;
    ④ 一个不允许更新的视图定义上的视图也不可以更新;
    注:不可更新的视图:理论上证明其是不可更新的视图;
    不允许更新的视图: 实际系统中不支持其更新,但它本身有可能是可更新的视图。

  8. 关系代数:
    (1) 五种基本的关系操作:并(U)、差(–)、选择(σ)、投影(Π)、笛卡尔集(×);
    (2) 投影(Projection): 投影操作是从列的角度进行的运算,会取消重复的元组;
    ps: 这里首先讲讲什么是元组,什么是属性?
    关系表中的行代表元组,列代表属性
    (3) 连接(join): 有等值连接(θ为"="),自然连接。
    ①连接也称θ连接,它是从俩个关系的笛卡尔积中选取属性间满足一定条件的元组。
    一般连接操作是从行的角度进行的运算,但是自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
    ③在自然连接后,被舍弃的元组称为悬浮元组,将悬浮元组保存在结果关系中,而在其他属性填上空值(NULL),那么称这种连接为外连接(outer join),于此类似的还有左连接右连接
    (4) 除运算(division): 除操作是同时从行和列角度进行运算的。 书P56;

  9. 数据库完整性
    (1) 数据库的完整性指数据的正确性和相容性;
    (2) 数据库完整性包括 实体完整性参照完整性用户定义完整性;
    (3)实体完整性:在 create table 中用Primary Key 定义。
    ① 单属性构成的码有俩种说明方法:列级约束条件,表级约束条件;
    ② 多属性构成的码只有一种说明方法:表级约束条件
    实体完整性规则:若属性A是基本关系的主属性,则属性A不能取空值
    (4)参照完整性: 在 create table 用foreign key 短语定义哪些列为码,用在表级定义参照完整性;参照完整性规则:若属性(或属性组) F是基本关系R的外码,它与基本关系S的主码K 相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:① 或者取空值(F中的每个属性值均为空值) ② 或者等于S中某个元组的主码值。
    (5)用户自定义完整性:在create table 中定义属性的同时,可以根据应用要求定义属性的约束条件,即属性值限制包括:① 列值为空(not null)② 列值唯一(unique)③满足条件表达式(check)

  10. 函数依赖
    函数依赖有:非平凡的函数依赖、平凡的函数依赖、完全函数依赖、部分函数依赖、传递函数依赖。

  11. :候选码,超码,主码,全码,外码;

  12. 范式
    (1) 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的为第一范式,简称1NF,在满足第一范式中进一步满足要求的为第二范式,2NF,以此类推。
    (2) 规范化(normalization):一个低一级范式关系模式通过模式分解,可以转换为若干个范式的关系模式的集合,这个过程就叫做"规范化"。
    (3) 关系如下图:
    在这里插入图片描述

  13. 数据库设计的基本六个步骤:常考选择题

    ⑴ 需求分析:记住它与数据、处理有关
    ⑵ 概念结构设计:E--R模型
    ⑶ 逻辑结构设计:E--R关系模式的转换
    ⑷ 物理结构设计:确定数据库的存储结构,数据的存放位置
    ⑸ 数据库实施:数据的载入与程序代码的调试
    ⑹ 数据库的运行和维护

  14. 事务:
    ⑴ 什么是事务?
    事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元
    ⑵ 事务处理技术主要有哪些?
    数据库恢复技术和并发控制技术。
    ⑶ 事务具有的四个特性(简称ACID特性):原子性、一致性、隔离性、持续性。具体的看书P294

  15. 封锁:
    ⑴ 封锁是实现并发控制的一个非常重要的技术,封锁后的事务,其他事务不能更新此数据对象。
    ⑵封锁的类型有俩种:
    排他锁/写锁/X锁
    例: T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能对A再加任何类型的锁。
    共享锁/读锁/S锁
    例:T对数据对象A加上S锁,可以读但是不能修改,可以再加S锁但是不能加X锁,其他事务可以读但是不能修改。
    ps: 主要的知识点差不多就在这里了,对于如何查询表的操作,这里不做具体的介绍,自己多看看写写SQL语句就行了,还有就是关系代数操作。E--R图这里也没有给出主要的代表含义,简述一下就是一对一、一对多、多对多。还有一个最重要的是,在下篇文章里我会列出一下我的错题集,大家可康康!! 点赞,勿喷!!!

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值