热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

《数据库系统概论》复习笔记

期末复习顺便总结下,书本为高等教育出版社的《数据库系统概论》。第一章知识点数据库是长期储存之计算机内的、有组织的、可共享的大量数据的集合。1,数据库数据特点P4永久存储,有组织,可共享。2,数据独立性及其如何保证P10,P34逻辑独立性:用

期末复习顺便总结下,书本为高等教育出版社的《数据库系统概论》。 第一章知识点 数据库是长期储存之计算机内的、有组织的、可共享的大量数据的集合。 1,数据库数据特点 P4 永久存储,有组织,可共享 。 2,数据独立性及其如何保证 P10,P34 逻辑独立性 :用

期末复习顺便总结下,书本为高等教育出版社的《数据库系统概论》。


第一章知识点
数据库是长期储存之计算机内的、有组织的、可共享的大量数据的集合。
1,数据库数据特点 P4 永久存储,有组织,可共享
2,数据独立性及其如何保证 P10,P34
逻辑独立性:用户的应用程序与数据库的逻辑结构互相独立。(内模式保证) 物理独立性:用户的应用程序与存储在磁盘上的数据库中的数据相互(外模式保证)
3,数据模型的组成要素 P13 数据结构、数据操作、完整性约束
4,用ER图来表示概念模型 P17
实体、联系和属性。联系本身也是一种实体型,也可以有属性。


第二章
1,关系的相关概念(如关系、候选码、主属性、非主属性) P42-P44 单一的数据结构----关系。现实世界的实体以及实体间的各种联系均用关系来表示。 是一组具有相同数据类型的值的集合。
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 关系模式的所有属性组是这个关系模式的候选码,称为全码 若一个关系有多个候选码,则选定其中一个为主码 候选码的诸属性称为主属性 不包含在任何侯选码中的属性称为非主属性
2,关系代数运算符 P52

\

\ 自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。 给定关系 r(R) 和 s(S), S ? R,则 r &pide; s是最大的关系 t(R-S) 满足 t x s ? r 3,关系代数表达式


第三章
模式 CREATE SCHEMA DROP SCHEMA
CREATE TABLE DROP TABLE ALTER TABLE
CREATE VIEW DROP VIEW
CREATE INDEX DROP INDEX
1,SQL的特点P79-P80
1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4.以同一种语法结构提供多种使用方式 5. 语言简洁,易学易用
2,基本表的定义、删除和修改P84-P87
PRIMARY KEY PRIMARY KEY (Sno,Cno) UNIQUE FOREIGN KEY (Cpno) REFERENCES Course(Cno)
ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ ALTER COLUMN<列名> <数据类型> ];
DROP TABLE <表名>[RESTRICT| CASCADE];
3,索引的建立与删除P89-P90 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…); 唯一索引 UNIQUE、非唯一索引或聚簇索引CLUSTER DROP INDEX <索引名>;
4,数据查询P91-P114 唯一 DISTINCT
确定范围 BETWEEN AND,NOT BETWEEN AND 确定集合 IN,NOT IN 字符匹配 LIKE,NOT LIKE 空值 IS NULL,IS NOT NULL 多重条件(逻辑运算) AND,OR,NOT
ORDER BY子句 升序:ASC;降序:DESC缺省值为升序
聚集函数:
计数
COUNT
([DISTINCT|ALL] *)
COUNT
([DISTINCT|ALL] <列名>)
计算总和
SUM
([DISTINCT|ALL] <列名>)
计算平均值
AVG
([DISTINCT|ALL] <列名>)
最大最小值
MAX
([DISTINCT|ALL] <列名>)
MIN
([DISTINCT|ALL] <列名>)
GROUP BY子句分组 && HAVING短语 -- 具体各种使用在老师课件 第3章 关系数据库标准语言SQL(2)中
5,数据更新P115-P118
INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>] … )/或子查询
UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>]… [WHERE <条件>];
DELETE FROM <表名> [WHERE <条件>];

6,视图的P118-126 CREATE VIEW <视图名> [(<列名> [,<列名>]…)] AS <子查询> --子查询不允许含有ORDER BY子句和DISTINCT短语 [WITH CHECK OPTION];
DROP VIEW <视图名>;


第四章、第五章 1,授权与回收P137-P140
GRANT语句的一般格式: GRANT <权限>[,<权限>]... -- ALL PRIVILIGES [ON <对象类型> <对象名>] TO <用户>[,<用户>]... --PUBLIC [WITH GRANT OPTION]; --允许他再将此权限授予其他用户 REVOKE语句的一般格式为: REVOKE <权限>[,<权限>]... [ON <对象类型> <对象名>] FROM <用户>[,<用户>]...; --级联(CASCADE)收回

2,数据库角色P142-P143 角色是权限的集合
一、角色的创建 CREATE ROLE <角色名>
二、给角色授权 GRANT <权限>[,<权限>]… ON <对象类型>对象名 TO <角色>[,<角色>]…
三、将一个角色授予其他的角色或用户 GRANT <角色1>[,<角色2>]… TO <角色3>[,<用户1>]… [WITH ADMIN OPTION]
四、角色权限的收回 REVOKE <权限>[,<权限>]… ON <对象类型> <对象名> FROM <角色>[,<角色>]…

3,数据库的三类完整性及其实现P152-P158
实体完整性 CREATE TABLE中用PRIMARY KEY定义
参照完整性 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的主码
用户定义的完整性 CREATE TABLE时定义 列值非空(NOT NULL) 列值唯一(UNIQUE) 检查列值是否满足一个布尔表达式(CHECK)
CONSTRAINT 约束 CONSTRAINT <完整性约束条件名> [PRIMARY KEY短语 |FOREIGN KEY短语 |CHECK短语]
使用ALTER TABLE语句修改表中的完整性限制 可以先删除原来的约束条件,再增加新的约束条件 ALTER TABLE Student DROP CONSTRAINT C1; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999)


第六章 关系模式 是一个五元组: R(U, D, DOM, F)
1,函数依赖和码的定义P172-P174
数据依赖:一个关系内部属性与属性之间的约束关系。最重要的数据依赖:函数依赖和多值依赖 函数依赖:一个属性或一组属性的值可以决定其它属性的值。
函数依赖:平凡函数依赖与非平凡函数依赖 在关系模式R(U)中,对于U的子集X和Y, 如果X→Y,但Y 不属于 X,则称X→Y是非平凡的函数依赖 若X→Y,但Y 属于 X, 则称X→Y是平凡的函数依赖

在R(U)中,如果X→Y,并且对于X的任何一个真子集X&#39; ,都有X&#39; \Y,则称Y对X完全函数依赖,记作:X\Y 。
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X\Y。
在R(U)中,如果X→Y,(Y\X),Y不函数依赖1.GIF (62 bytes)X,Y→Z,则称Z对X传递函数依赖。 加上条件Y→X,是因为如果Y→X,则X←→Y,实际上是\, 是直接函数依赖而不是传递函数依赖。

2,1NF,2NF,3NF P175-P176 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF 第一范式是对关系模式的最起码的要求 若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。 每一个非主属性既不部分依赖于码也不传递依赖于码,则R∈3NF
3,函数依赖公理系统(Armstrong公理系统P183,闭包P184,最小覆盖P186)
Armstrong公理系统 A1.自反律(Reflexivity):若Y属于XU,则X →Y为F所蕴含。属于 A2.增广律(Augmentation):若X→Y为F所蕴含,且Z属于U,则XZ→YZ为F所蕴含。 A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。(导出规则): 合并规则:由X→Y,X→Z,有X→YZ。 (A2, A3) 伪传递规则:由X→Y,WY→Z,有XW→Z。 (A2, A3) 分解规则:由X→Y及 Z属于Y,有X→Z。 (A1, A3)
在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。设F为属性集U上的一组函数依赖,X 属于U, XF+ ={ A|X→A能由F 根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F 的闭包
F+ = G+ 的充分必要条件是F 属于 G+ ,和G 属于 F+ 最小依赖集 (1) F中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价。 (3) F中不存在这样的函数依赖X→A, X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
4,模式分解(模式分解的准则及定义P189-P190,模式分解方法P191) 模式的分解要保持无损联接性和函数依赖性。算法见教材...


第七章 1,数据库设计的基本步骤P201
需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
2,概念结构设计的方法和步骤P209-P211
设计概念结构的4类方法 自顶向下 首先定义全局概念结构的框架,然后逐步细化 自底向上 首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构 逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构 混合策略 将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

3,E-R图向关系模型的转换P224-P225 属性不能再具有需要描述的性质。属性不能与其他实体具有联系。这种转换一般遵循如下原则
⒈ 一个实体型转换为一个关系模式。 ⒉ 一个m:n联系转换为一个关系模式。 ⒊ 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。 ⒋ 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 ⒌ 三个或三个以上实体间的一个多元联系转换为一个关系模式。 ⒍ 同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。 ⒎ 具有相同码的关系模式可合并。
4,物理设计(关系模式存取方法的选择P228-P230,数据库的存取结构P230-P231) 常用存取方法
1、索引方法 B+树索引方法 查询条件,聚集函数,连接操作 2、聚簇(Cluster)方法 连接操作,相等比较,重复率高 3、HASH方法 大小可预知,DBMS提供动态存取方法
确定数据库的物理结构
⒈ 确定数据的存储结构 ⒉ 设计数据的存取路径 ⒊ 确定数据的存放位置存取时间 存储空间利用率 维护代价) ⒋ 确定系统配置


第十一章 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位;事务是恢复和并发控制的基本单位;
1,事务的特性P279 事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability )
2,并发控制不当导致的问题P294 1)丢失修改(Lost Update) 2)读“脏数据” (dirty read) 3)不可重复读(Non-repeatable Read)
3,封锁P295-296
封锁具有3个环节: 第一个环节是申请加锁; 第二个环节是获得锁; 第三个环节是释放锁。基本的封锁类型有两种:排它锁(Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。
解决活锁问题的方法是采用先来先服务。 解决死锁方法: (1)预防死锁的发生;(2)允许发生死锁,然后采用一定手段定期诊断系统中有无死锁,若有则解除之。预防死锁的方法: 一次封锁法, 顺序封锁法死锁的诊断:超时法,事务等待图法

4,并发调度的可串行性P299-P230 定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。
冲突操作是指不同的事务对同一个数据的读写操作和写写操作。 不同事务的冲突操作不能交换。 同一事务的两个操作不能交换。 冲突可串行化调度是可串行化调度的充分条件,不是必要条件。
5,两段锁协议P301-P302 两段锁协议:指所有事务必须分两个阶段对数据项加锁和解锁。 第一阶段是获得封锁,也称为扩展阶。 第二阶段是释放封锁,也称为收缩阶段。
事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 本文介绍了如何使用 PostgreSQL 的 `UPDATE ... FROM` 语法,通过映射表实现对多行记录进行高效的批量更新。这种方法不仅适用于单列更新,还支持多列的同时更新。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 线性Kalman滤波器在多自由度车辆悬架主动控制中的应用研究
    本文探讨了线性Kalman滤波器(LKF)在不同自由度(2、4、7)的车辆悬架系统中进行主动控制的应用。通过详细的仿真分析,展示了LKF在提升悬架性能方面的潜力,并总结了调参过程中的关键要点。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
author-avatar
lumanman158
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有