数据库系统概述必背知识点整理

第一章、绪论

0x1 数据库系统相关概念

数据库是由数据库(DB)、数据库管理系统(DBMS)、应用程序和数据库管理员(DBA)组成的储存、管理、处理和维护数据的系统。

1、数据:描述事物的符号记录,包括数据的表现形式和数据解释两个部分。如数字、音频、图形、文本、图像、语言、视频等多种表现形式。经过数字化处理后存入计算机。 数据是信息的符号表示或载体。信息是数据的内涵是对数据的语义解释。 2、数据库(DB):长期存储在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 3、数据库管理系统(DBMS):位于用户和操作系统间的数据管理系统的一层数据管理软件。用途:科学地组织和存储数据,高效地获取和维护数据。包括数据定义功能,数据组织、存储和管理,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能。 4、数据库系统(DBS):在计算机系统中引入数据库后的系统,一般由数据库。数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。目的:存储信息并支持用户检索和更新所需的信息。

0x2 数据库系统的特点

1、数据结构化,是数据库系统与文件系统的本质区别。 2、数据的共享性高、冗余度低切易拓展。数据共享可以大大减少数据冗余,节约存储空间,还可以避免数据之间的不相容性与不一致性。 3、数据独立性高。独立性分为物理独立性,逻辑独立性。 物理独立性:用户的应用程序与数据库中数据的物理存储是相互独立的。当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。 逻辑独立性:应用程序与数据库的逻辑结构是相互独立的。当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

数据库管理系统在三级模式之间所提供的二层影响保证了数据系统中的数据具有较高的逻辑独立性和物理独立性。

4、数据由数据库管理系统统一管理和控制 数据的安全性保护:保护数据库以防止不合使用造成的数据泄密和破坏。 数据的完整性检查:数据的正确性、有效性和相容性。

0x3 数据库系统三级模式结构和二级映像功能

三级模式结构:

1、模式:(逻辑模式)数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。 2、外模式:(子模式/用户模式)数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据库和逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的系统的逻辑表示。 3、内模式:(存储模式或内视图)是数据物理结构和存储方式的描述,是数据在数据库内部实际存储的表示方式。 三级模式的优点: (1)保证数据的独立性(内模式与模式分开物理独立;外模式与模式分开逻辑独立) (2)简化用户窗口 (3)有利于数据共享 (4)利于数据的安全保密 (5)数据存储由DBMS管理(用户不用考虑存取路径等细节)

二级映像功能:

(1)外模式/模式映像(应用可扩充性) 定义外模式(局部逻辑结构)与模式(全局逻辑结构)之间的对应关系,映象定义通常包含在各自外模式的描述中,每一个外模式,数据库系统都有一个外模式/模式映象。 用途:保证数据的逻辑独立性 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 (2)模式/内模式映像(空间利用率,存取效率) 模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关。数据库中模式/内模式映象是唯一的。该映象定义通常包含在模式描述中。 用途:保证数据的物理独立性 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。 优点: (1)保证了数据库外模式的稳定性。 (2)从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。 (3)数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。

第二章、关系数据库

0x1 关系模型的3个组成部分

1、关系数据结构:描述现实世界的实体以及实体间的各种联系。只包含单一的数据结构—关系。 2、关系操作 查询操作:选择、投影、连接、除、并、差、交、笛卡尔积等。 插入、删除、修改操作。 3、关系的完整性约束 实体完整性和参照完整性:关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持。 用户定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

0x1 外码,主码,候选码的概念

候选码:若关系中的某一属性组的职能唯一地标识一个元组,则称该属性组为候选码。 主码:若一个关系有多个候选码,则选定期中一个为主码。 外部码:设F是基本关系R的一个或一组属性。但不是关系R的码,如果F与基本关系S的主码K想对应,则称F是基本关系R的外部码,简称外码。

第三章、关系数据库标准语言SQL

0x1 数据库的操作

(1)定义模式:

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]

12

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]

(2)定义基本表:

CREATE TABLE <表名> (<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] );

12345

CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] );

列级完整性约束--涉及到该表的一个属性 NOT NULL :非空值约束 UNIQUE:唯一性(单值约束)约束 PRIMARY KEY:主码约束 DEFAULT <默认值>:默认(缺省)约束 Check < (逻辑表达式) >:核查约束,定义校验条件 NOT NULL :非空值约束 UNIQUE:唯一性(单值约束)约束 PRIMARY KEY:主码约束 DEFAULT <默认值>:默认(缺省)约束 Check < (逻辑表达式) >:核查约束,定义校验条件

0x2 数据类型

0x3 数据查询

WHERE子句常用的查询条件

第四章、数据库的安全性

##0x1 存取控制 包括定义用户权限和合法权限检查。 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户要访问数据库时,首先要检查其存取权限,以防止非法用户对数据库进行存取。 自主”的含义:用户可以将自己所拥有的存取权限“自主”地授予他人,即用户具有一定的“自主”权。 强制存取控制方法:每一个数据对象被(强制地)标以一定的加密级别,每位用户也被(强制地)授予某一级别的许可证。系统规定只有具有某一许可证级别的用户才能存取加密级别的数据对象。 强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提高了更高级别的安全性。 ##0x2 存取控制语句 1、授权:GRANT 语句

GRANT <权限>[,<权限>]... ON <对象类型> <对象名> ,[<对象类型> <对象名>] TO <用户>[,<用户>]... [WITH GRANT OPTION];

12345

GRANT <权限>[,<权限>]...     ON <对象类型> <对象名> ,[<对象类型> <对象名>]    TO <用户>[,<用户>]...     [WITH GRANT OPTION];

2、回收:REVOKE 语句 把指定对象的指定操作权限从指定用户处收回。

REVOKE语句的一般格式为: REVOKE <权限>[,<权限>]... ON <对象类型> <对象名> >[,<对象类型> <对象名>] … FROM <用户>[,<用户>]... >[CASCADE|RESTRICT];

12345

REVOKE语句的一般格式为:    REVOKE <权限>[,<权限>]...     ON <对象类型> <对象名> >[,<对象类型> <对象名>] …    FROM <用户>[,<用户>]... >[CASCADE|RESTRICT];

3、创建数据库模式的权限 :DBA在创建用户时实现

CREATE USER语句格式 CREATE USER <username> [WITH][DBA | RESOURCE | CONNECT]

1234

CREATE USER语句格式    CREATE  USER  <username>     [WITH][DBA | RESOURCE | CONNECT]

拥有DBA权限的用户是系统中的超级用户;只有系统的超级用户才有权创建新的数据库用户;如果没有指定创建的新用户的权限,默认该用户拥有CONNECT权限,只能登录数据库。

第五章、数据库的完整性

0x1 数据库完整性与数据库安全性的区别和联系

数据完整性:数据的正确性和相容性。 数据库的完整性和完全性是两个不同的概念,但他们有一定联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。 后者是保护数据库,防止被恶意破坏和非法存储。 也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不符合语义的数据。

0x2 数据模型中完整性约束条件

完整性约束条件:数据库中的数据所应满足的语义约束条件。 RDBMS的完整性控制机制应具有3个方面的功能: 1、定义功能,即提供定义完整性约束条件的机制。 2、检查功能,即检查用户所发出的操作请求是否违背完整性约束条件。 3、违约反映,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的措施来保证数据的完整性。

第七章、数据库设计

第十章、数据库恢复技术

0x1 事务概念和四个特性

事务是用户所定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有四个特性: 1、原子性:事务是数据库的逻辑单位,事务中所包括的读项操作要么都做,要么都不做。 2、一致性:事务执行的结果必须是使数据库从某个一致性状态转变到另一个一致性状态。 3、隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及所试用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4、持续性:(永久性)事务一旦提交,它对数据库中主句的改变就应该是永久的。接下来的其他操作或昂不应对其执行结果产生任何影响。 为了保证事务的原子性、一致性与持续性。DBMS必须对事务故障、系统故障和介质故障进行恢复;为了保证事务的隔离性和一致性,DBMS需要对并发操作进行控制。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏idba

死锁案例之十

死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋...

11120
来自专栏MongoDB中文社区

MongoDB事务模型分析

在了解写操作的事务性之前,需要先了解mongo层的每一个table,是如何与wiredtiger层的table(btree)对应的。mongo层一个最简单的ta...

31420
来自专栏liuchengxu

在 Golang 开发中使用 Makefile

使用 Golang 已经有一阵了,在 Golang 的开发过程中,我已经习惯于不断重复地手动执行 go build 和 go test 这两个命令. 不过,现...

19810
来自专栏信安之路

利用DNS协议回显数据

这个问题已经是去年提出的了,之前也看到过,在 CTF 题目环境中利用过却对原理不慎了解,在公司大佬们的帮助下成功了理解了一波原理。

17000
来自专栏数据和云

Library Cache优化与SQL游标

? 冷菠 冷菠,网名悠然(个人主页http://www.orasky.net),资深DBA,著有《Oracle高性能自动化运维》,有近10年的数据库运维、团队...

29150
来自专栏数据和云

腾讯游戏DBA利刃 - SQL审核工具介绍

作者介绍 ? 韩全安(willhan) 华中科技大学,硕士,现代数据库方向。2013年毕业,就职于腾讯到今,工作项目:TMySQL、SQL审核、InnoDB列压...

1.4K60
来自专栏数据和云

MySQL 8.0.12 有什么新内容?

今年4月份,MySQL突然直接从8.0.5跳过多个版本号到8.0.11,直接宣布8.0.11 GA,告诉大家说,这个版本已经可以到线上用了。

13510
来自专栏大数据

Python 101:如何从RottenTomatoes爬取数据

今天,我们将研究如何从热门电影网站Rotten Tomatoes爬取数据。你需要在这里注册一个API key。当你拿到key时,记下你的使用限制(如每分钟限制的...

48860
来自专栏数据和云

细致入微:Oracle中执行计划在Shared Pool中的存储位置探秘

这两天我一直在想一个问题,那就是 Oracle 的执行计划到底存储在什么地儿?它会是一种什么样的格式? 这里我试图对这个问题做一点我自己认为的解释,这个解释可能...

31550
来自专栏乐沙弥的世界

Buffer cache 的调整与优化(一)

Buffer Cache是SGA的重要组成部分,主要用于缓存数据块,其大小也直接影响系统的性能。当Buffer Cache过小的时候,将会造成更多的

12130

扫码关注云+社区

领取腾讯云代金券