精华内容
下载资源
问答
  • 数据库系统概论知识点
  • 数据库系统概论知识点总结

    万次阅读 多人点赞 2017-12-25 11:44:07
    关系数据库系统是支持关系模型的数据库系统。 关系模型的数据结构 非常简单,只包含单一的数据结构——关系。 在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。 关系数据结构的形式化定义 1....

    还有一周就期末考试了 ,是时候开始复习了,懒得写字,就在这里写写复习笔记记录些自己认为是重点的东西吧。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

    数据库的四个基本概念

    1.数据(Data)

    描述事务的符号记录称为数据。 数据的含义称为语义,数据与其语义是不可分的。

    2.数据库(DataBase,DB)

    长期存储在计算机内,有组织的,可共享的大量数据的集合。

    数据库数据特点:1.永久存储  2.有组织   3.可共享

    3.数据库管理系统(DataBase Management System,DBMS)

    位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件。

    4.数据库系统(DataBase System,DBS)

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

    数据管理技术的三个阶段

    1.人工管理阶段

    特点:数据不保存,应用程序管理数据,数据不共享,不具有独立性,应用程序管理数据。

    2.文件系统阶段

    特点:数据可以长期保存,由文件系统管理数据,但是数据共享性差,冗余度大,独立性差。

    3.数据库系统阶段

    特点:数据结构化,数据的共享性高,冗余度低且易扩充,数据独立性高(包括物理独立性和逻辑独立性),数据由数据库管理系统统一管理和控制。

    数据模型是对现实世界数据特征的抽象数据模型是数据库系统的核心和基础

    数据模型通常由数据结构,数据操作,数据的完整性约束条件三部分组成。

    根据模型应用的不同目的,数据模型可以分为两大类,分别属于两个不同层次。

    1.概念模型

     也称信息模型,主要用于数据库设计。

    概念模型实际上是现实世界到机器世界的一个中间层次。

    概念模型用于信息世界的建模。

    信息世界的基本概念:

    1.实体:客观存在并可相互区别的事物。

    2.属性:实体所具有的某一特征。

    3.码:唯一标识实体的属性集。

    4.实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。

    5.实体集:同一类型实体的集合。

    6.联系:实体内部联系指组成实体的各属性间的联系,实体间的联系可分为一对一,一对多,多对多三种。

    概念模型的表示方法很多,最常用的为实体-联系方法(Entity-Relationship approach),该方法用E-R图来描述概念模型。E-R方法也成为E-R模型

    2.逻辑模型和物理模型

     逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系数据模型等。主要用于数据库管理系统的实现。

     物理模型是对数据最底层的抽象。

     1.层次模型

    概念:有且只有一个结点没有双亲结点,称为根节点。根结点以外的其他结点有且只有一个双亲结点。

    IBM公司的IMS数据库关系系统采用的是层次模型。

    优点:1.数据结构简单清晰,2.查询效率高,3.良好的完整性支持。

    缺点:1.现实世界很多联系是非层次的,2.对用户要求较高,用户必须清楚所用数据库的层次结构。

    2.网状模型

    概念:允许一个以上的结点无双亲,一个结点可以有多于一个双亲。

    优点:1.可以更为直接的描述现实世界,2.具有良好的性能,存取效率高。

    缺点:1.结构比较复杂,且随着应用环境的扩大,结构会越来越复杂,不利于用户掌握。

    2.网状数据库的数据定义语言(DDL)和数据操作语言(DML)比较复杂,要求用户掌握数据库结构和存取路径,不容易使用。

    3.关系模型

    关系模型是最重要的一种数据模型.

    概念:关系模型由关系数据结构关系操作集合关系完整性约束三部分组成

    在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

    关系模型中的一些术语:

    1.关系:一个关系对应通常说的一张表。

    2.属性:表中的一列即为一个属性。

    3.域:属性的取值范围。

    4.元组:表中的一行即为一个元组。

    5.码:也称码键。表中的某个属性组,它可以唯一确定一个元组。

    6.分量:元组中的一个属性值。

    7.关系模式:对关系的描述,一般表示为 关系名(属性1,属性2,.....,属性n)

    关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的 数据项。

    关系模型的数据操纵主要包括查询、插入、删除和更新数据。

    优点:1.关系模型与非关系模型不同,它具有严格的数学基础。

    2.概念单一,所以其数据结构简单,清晰,用户易懂易用。

    3.存取路径对用户透明(隐藏),具有更高的数据独立性,安全保密性,也简化了程序员的工作和数据库开发建立的工作。

    缺点:最主要的是由于存取路径对用户透明,所以查询效率往往不如非关系数据模型。

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    模式:数据库中全体数据的逻辑结构和特征的描述。

    实例:模式的一个具体值。

    模式是相对稳定的,实例是相对变动的。

    数据库的三级模式结构是指数据库是由外模式,模式,内模式三级构成。

    外模式:也称子模式或者用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。

    模式:也称逻辑模式,数据库中全体数据的逻辑结构和特征的描述。

    内模式:也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

    外模式/模式映像:保证数据与程序的逻辑独立性,简称数据的逻辑独立性。

    模式/内模式映像:保证数据的物理独立性

    数据库系统的组成:

    1.硬件平台及数据库

    2.软件

    3.人员(数据库管理员、系统分析员、数据库设计人员、应用程序猿、最终用户)

      

    关系数据库系统是支持关系模型的数据库系统。

    关系模型的数据结构非常简单,只包含单一的数据结构——关系。

    在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。

    关系数据结构的形式化定义

    1.域:一组具有相同数据类型的值的集合。

    2.笛卡尔积:域上的一种集合运算。一个域允许不同取值个数称为这个域的基数

    3.关系:D1×D2×.......×Dn的子集叫做所在域D1,D2,.....,Dn上的关系,表示为R(D1,D2,.....Dn)

    这里R表示关系的名字,n是关系的目或度。

    关系中的每个元素是关系的元组,通常用t表示。

    n=1时,该关系为单元关系,或一元关系。

    n=2时,为二元关系。

    若关系中的某一属性组的值能够唯一地标识一个元组,而其子集不能,则称该属性组为候选码

    若一个关系有多个候选码,则选定其中一个为主码

     

    候选码的诸属性称为主属性,不包括在任何候选码中的属性称为非主属性,或非码属性

    在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属于是这个的候选码,称为全码

    关系可以有三种类型:基本关系(通常又称为基本表或基表)查询表视图表

     

    基本表是实际存在的表,查询表是查询结果对应的表,视图表是由基本表和其他视图表导出的表,是虚表。

     

    基本关系具有以下6个性质:

    1、列是同质的,即每一列中的分理是同一类型的数据,来自同一域。

    2、不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

    3、列的顺序无所谓,即列顺序是无关紧要的

    4、任意两个 元组的候选码不能取相同的值

    5、行的顺序无所谓,即行的顺序可以任意交换。

    6、分量必须取原子值,即每一个分量都必须是不可分的数据项

    关系的描述称为关系模式。它可以形式化的表示为 R(U,D,DOM,F)
    其中R为关系名、U为组成关系的属性名集合、D为U中属性所来自的域。DOM是属性向域的映像集合、F 为属性间数据的依赖关系集合

    关系模型的关系操作

     

    基本的关系操作

    关系模型中常用的关系操作包括查询、插入、删除、修改

    查询又可以分为选择、投影、连接、除、并、差、交、笛卡尔积等、其中选择、投影、并、差、笛卡尔积是5 种基本的操作

    关系操作的特点是集合操作方式,即操作的对象的结果都是集合

    关系模式与关系的区别:关系模式是型,关系是值,是关系模式的实例。

    关系模式是对关系的描述,关系是关系模式在某一时刻的状态或内容。

     

     

    关系的完整性约束

    关系模型中的三类完整性约束:实体完整性、参照完整性和用户自定义完整性

    1.实体完整性

    实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。

    对于实体完整性规则说明如下:

    1、实体完整性规则是针对基本表关系而言的。一个基本表通常对应现实世界一个实体集。

    2、现实世界中的实体是可区分的。即它们具有某种唯一性标识。

    3、相应地,关系模型中以主码作为唯一性标识

    4、主码中的属性即主属性不能取空值

     

    2.参照完整性

    定义: 设F是基本关系R的一个或一组属性,但不是关系R的码、K是基本关系S的主码。如果F与K相对应,则称为F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。

    参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本准关系S的主码K相对应,则对于R中第一个元组F上的值必须:

    1、或者取空值

    2、或者等于S中某个元组的主码值

    在参照完整性中,如果外码属性不是其所在关系的主属性,外码属性的值才可以取空值。

     

     

    3.用户定义完整性

    用户定义的完整性就是针对某一具体关系数据库的约束条件。

    反映某一具体应用所涉及的数据必须满足的语义要求。

     

     

    关系代数(这里不方便记录,但是重点!!!)

     

    1、并(union)

    U并S: t属于U或者属于S

    2、(excepte)

    R 差S:t属于R且不属于S

    3、

    R交S:r属于R且也属于S

    4、笛卡尔积

    R笛卡尔S: R中任意与S任意进行组合

     

    专门的关系运算

    1、选择:对行进行操作,

    2、投影:对列进行操作

     

    3、连接运算

    自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。

    4.除运算

     

    SQL 结构化查询语言

    特点:1.综合统一 SQL集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一。

    2.高度非过程化  只需要提出“做什么”,无需指明“怎么做”

    3.面向集合的操作方式 不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

    4.以同一种语法结构提供多种使用方式 SQL既是独立的语言,又是嵌入式语言。SQL语句可以嵌入到高级语言程序中。

    5.语言简洁,易学易用。

     

    DROP TABLE时,RESTRICT 表示表的删除是有限制条件的。要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等,如果存在这些依赖该表的对象,则表不能被删除。

    CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。

     

    数据库安全性

    数据库完整性

    数据库完整性指数据的正确性和相容性。

    实体完整性 检查主码是否唯一或者为空,若是,则拒绝插入或修改。

    参照完整性 不一致时1.拒绝操作 2.级联操作(CASCADE)3.设置为空值

    用户定义完整性 列值非空,列值唯一,检查列值是否满足一个条件表达式(CHECK语句)

     

    思维导图版戳这里!

     

     

    展开全文
  • 第一章:绪论 数据库(DB):长期存储在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和...数据库管理系统(DBMS):位于用户和操作系统间的数据管理系统的一层数据管理软件
  • 适用于大学期间,数据库课程的学习以及期末考试的备考,题目总结较全,知识点覆盖面广,好好复习,做会吃透保证不挂科
  • 1.数据库系统概论 数据——描述事务的符号记录 数据库——数据库是长期存储在计算机内、有组织、可共享的大量数据的集合 数据库管理系统——位于用户与操作系统之间的一层数据管理软件 数据库系统——由数据库、...

    一、诸论

    1.数据库系统概论

    • 数据——描述事务的符号记录
    • 数据库——数据库是长期存储在计算机内、有组织、可共享的大量数据的集合
    • 数据库管理系统——位于用户与操作系统之间的一层数据管理软件
    • 数据库系统——由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统

    2.数据模型

    1.数据模型的组成要素:

    • 数据结构
    • 数据操作
    • 数据的完整性约束条件

    2.常用数据模型

    • 层次模型
    • 网状模型
    • 关系模型

    3. 数据库系统的结构

    在这里插入图片描述

    • 模式——也称逻辑模式,是数据库全体数据的逻辑结构和特征的描述,是所有用户的额公共视图
    • 外模式——它是数据库用户能够看见和使用的局部诗句的逻辑结构和特征的描述,是数据库用户的视图
    • 内模式——也称为存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式

    二、关系数据库

    1.关系形式化定义

    1.关系:笛卡尔积 D1xD2xD3xD4子集叫做在域D1、D2、D3D4上的关系

    候选码——某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码

    主码——若一个关系有多个候选码,选定一个为主码

    候选码的属性称为主属性,不包含在任何候选码的属性称为非主属性

    2.关系的描述称为关系模式,表示为:
    R(U,D,DOM,F)

    R——关系名,U——组成该关系的属性集合,D——U中属性所来自的域
    DOM——属性向域的映像集合,F——属性间数据的依赖关系集合

    2.关系完整性

    1. 实体完整性:主属性不能取空值
    2. 参照完整性:外码要么为空值、要么为某个元组的主码值
    3. 用户定义的完整性

    3.关系代数

    1.传统集合操作

    • 笛卡尔积

    2 .专门的关系运算

    • 选择:在关系 R 中选择满足给定条件的元组(>、<、=……)
    • 投影:关系 R 的投影是从 R 中选出若干属性列 (会去除重复行)
    • 连接:从两个关系的笛卡尔积中选取满足给定条件的元组
    • 除运算:设 R 除 S 的结果为T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有的所有组合都在R中

    三、SQL语法

    1.数据定义

    1.1表

    1.创建表

    CREATE TABLE mytable(
    	id INT NOT NULL AUTO_INCREMENT,
    	col1 INT NOT NULL,
    	col2 VARCHAR(40) NULL,
    	PRIMARY KEY(id)
    );
    

    2.修改表

    #添加列
    ALTER TABLE mytable 
    ADD col INT NOT NULL;
    
    #删除列
    ALTER TABLE mytable
    DROP column col;
    
    #删除表
    DROP TABLE mytable;
    

    1.2索引

    CREATE INDEX index_name ON table_name(column1,column2)
    

    2.数据查询

    SELECT [ALL|DISTINCT] <column_name> 
    FROM <table_name>
    [WHERE<条件表达式>]                #条件查询
    [GROUP BY<column_name>]           #分组查询
    [ORDER BY<column_name>[ASC|DESC]] #排序
    
    
    DISTINCT 去重复 
    
    1.使用 LIKE 进行通配符匹配(只能用于文本字段)
      WHERE col LIKE 'ab%' #以 ab 开头的字段
    
    2.计算字段使用 AS 取别名,否则输出的时候字段名为计算表达式
      SELECT col1*col2 AS alias
      FROM mytable
    
    3. 把具有相同数值的行放在同一组中
    
    4.ASC 升序(默认)
      DESC 降序
    

    3.数据更新

    更新

    UPDATE table_name
    SET col1=val
    WHERE<条件表达式>
    

    插入

    INSERT INTO table_name(col1,col2) 
    VALUES(col1,col2)
    

    删除

    DELETE FROM table_name
    WHERE<条件表达式>
    

    4.视图

    CREATE VIEW view_name
    AS
    <子查询>
    

    作用:

    • 简化用户操作
    • 对机密数据提供安全保护

    四、数据库安全性

    1.用户身份鉴别

    1. 静态口令鉴别
    2. 动态口令鉴别:比如短信验证、动态令牌
    3. 生物特征鉴别
    4. 智能卡鉴别

    2.多层存取控制

    主要是:定义用户权限合法权限检查

    自主存取控制:用户对不同的数据库有不同的访问权限,不同的用户对同一数据库也有不同的权限,且用户还可以将拥有的权限转授给其它用户

    强制存取控制:每一个数据库都被标以一定的密级,每一个用户也被授予某一个级别的许可证。

    自主存取控制方法:

    1.GRANT 授权
    
    GRANT <权限>
    ON <对象>
    TO <用户>
    [WITH GRANT OPTION] #转授权
    
    例如:把查询 student 表的权限授予给 U4 用户
    GRANT SELECT
    ON TABLE student
    TO U4
    
    2.REVOKE 收回
    
    REVOKE <权限>
    ON <对象>
    FROM <用户>
    
    例如:把用户 U4 修改学生号的权限收回
    REVOKE UPDATE(Sno)
    ON TABLE student
    FROM U4
    

    强制存取控制方法

    主体:系统中活动的实体,指数据库管理系统所管理的实际用户
    客体:系统中被动实体,指文件、基本表、索引等

    规则:

    1. 主体大于或等于客体密级,才能
    2. 主体小于或等于客体密级,才能

    规则 2 是防止将数据的密级降低

    3.审计

    把用户对数据库的所有操作自动记录下来放入到审计日志,审计员通过审计日志监控数据库的行为,找出非法存取数据的人

    数据库的安全审计系统提供了一种时候检查的安全机制!

    4.视图机制

    通过视图把要保密的数据对无权限的用户隐藏起来

    5.数据加密

    将数据的原始数据——原文加密为不可直接识别的格式——密文,使得不知道解密算法的人无法获知数据内容

    五、数据库完整性

    1.实体完整性

    通过 PRIMARY KEY 定义

    2.参照完整性

    FOREIGN KEY 定义哪些列为主码,用 REFERENCES 指明这些外码参照哪些表的主码

    例如:
    FOREIGN KEY(Sno) REFERENCES Student(Sno);
    

    3.用户定义的完整性

    1.不能取空值 NOT NULL
    2.列值唯一 UNIQUE
    3.用 CHECK 指定列值应满足的条件

    Sex VARCHAR(2) CHECK (Sex IN ('男','女'));  #性别只能选 '男','女'
    

    4 .通过 constaraint <完整约束名> <完整约束条件> 定义完整约束命名子句

    4.定义触发器

    六、关系数据理论

    1.规范化

    1.函数依赖:对一个关系 r,不存在两个元组在X 上的属性值相等,而在 Y上的属性值不相等,称 X 确定 Y 或者 Y 依赖于 X

    2.完全函数依赖:在 R(U)中,X-->Y,并且不存在X的任何一个真子集 X' 有 X'-->Y

    3 .传递函数依赖:X-->Y, Y-->Z,则称 Z 对 X 传递函数依赖

    第一范式

    符合 1NF 的关系中每个属性都不可再分
    在这里插入图片描述
    缺点:数据冗余
    插入异常(只添加系而不添加学生插入异常)
    修改异常(修改其中系,其余记录也要修改相应系)
    删除异常(删除某个系得所有学生记录,则这个系的信息也被抹除,但是一个系学生没了并不代表这个系不存在,系主任不存在)

    第二范式

    2NF 在 1NF 的基础上,消除了非主属性对码的部分函数依赖
    在这里插入图片描述
    基本消除数据冗余与修改异常

    第三范式

    3NF 在 2NF 的基础上消除了非主属性对码的传递函数依赖
    在这里插入图片描述
    删除与插入异常基本消除

    https://blog.csdn.net/wenco1/article/details/88077279

    七、数据库设计

    1.需求分析

    2.概念结构设计

    画出 E-R 图

    3.逻辑结构设计

    将 E-R 转换为数据库系统所支持的数据模型相符合的逻辑结构

    如将 E-R 图转换为 关系模型

    `职工(职工号 、部门号、职工名、职务)

    4.物理结构设计

    为给定的逻辑数据模型选取一个最合适的物理结构

    主要包括为关系模式选择存取方法存储结构

    存取方法:
    1.B+ 树索引
    2.Hash 索引
    3.聚簇存取方法

    存储结构:
    1.数据存放位置
    2.系统配置

    5.数据库实施

    6.数据库运行和维护

    九、关系查询处理和查询优化

    查询处理步骤

    1. 查询分析
      对查询语句进行扫描、词法分析和语法分析
    2. 查询检查
      对查询语义进行分析
    3. 查询优化
    4. 查询执行

    查询优化

    1 .代数优化
    按照一定规则,通过对关系代数表达式进行等价变换,改变代数表达式的次序和组合,使得查询更高效

    a.通过对关系代数表达式的等价变换来提高查询效率
    b.查询树的启发式优化

        1.选择运算尽可能先做
        	选择运算一般使计算的中间结果大大变小
        	
        2.把投影运算和选择运算同时进行
        	它们都对同一个关系操作,同时进行避免了重复扫描
        	
        3.把投影运算同其前或后的双目运算结合起来
        
        4.把某些选择运算同在它前面要执行的笛卡尔积结合起来成为一个连接运算
        	连接比同关系上的笛卡尔积省很多时间
        	
        5.找出公共子表达式 
    

    2 . 物理优化
    指存取路径和底层操作算法的选择

    1.基于代价
    2.基于规则
    3.基于语义

    十、数据库恢复技术

    1.事务基本概念

    满足 ACID 的一组操作,要么全部做,要么全部不做,是一个不可分割的单位

    ACID:

    • 原子性
      一个事务被视为一个不可分割的单位,不可能只执行其中的一部分
    • 一致性
      数据库总是从一个一致性状态转移到另一个一致性状态
    • 隔离性
      一个事务内部操作及使用的数据对其它事务是隔离的,并发执行的各个事务之间不能相互干扰
    • 持续性
      一旦事务提交,所做的修改将永远保存在数据库中

    2.故障种类

    1.事务内部故障
    2.系统故障
    3.介质故障
    4.计算机病毒

    3.恢复的实现技术

    数据转存

    定期的将数据库的数据复制到磁带、磁盘或者其它存储介质上存储起来的过程

    有:动态转存、静态转存——转存期间能否有事务运行

    登记日志文件

    1.日志文件格式与内容
    日志文件——用来记录事务对数据库更新操作的文件

    格式:以记录为单位、以数据块为单位
    内容:记录型——事务标识、操作类型、操作对象、新值、旧值
    数据块型——事务标识、数据块

    2.为保证数据库是可恢复的,登记日志文件需保证以下两个原则:

    1. 登记的次序严格按照并发事务执行的时间次序
    2. 必须先写日志文件再写数据库

    4.恢复策略

    1.事务故障恢复

    事务故障指事务在运行至正常终点前被终止

    这时恢复子系统通过日志文件撤销已经对数据库进行的修改;
    反向扫描日志,查找该事务的更新操作,并对该事务的更新操作执行逆操作

    2.系统故障的恢复

    撤销故障发生时未完成的任务,重做已完成的任务

    1.正向扫描日志,故障前完成加入 REDO 队列,故障后完成加入 UNDO 队列;2.对于 UNDO 队列按事务更新操作逆向恢复;3.对 REDO 重做事务

    3.介质故障的恢复

    重装数据库,重做已完成的事务

    1.重载数据库副本;2.重载日志文件

    5.具有检查点的恢复

    利用日志技术恢复缺点:1.搜索整个日志耗时长;2.有些 REDO 操作可能不需要进行,因为已经写入数据库

    在日志文件中新增一类——检查点记录,并增加一个重新开始文件,有恢复子系统在登录日志文件期间动态的维护日志

    检查点记录包括:1.建立时刻正在执行的任务清单;2.最近一个日志记录地址

    恢复步骤:

    1. 通过重新开始文件在日志中找到最后一个检查点记录
    2. 从检查点开始正向扫描日志,有新开始的事务加入 UNDO,提交事务加入 REDO
    3. REDO 重做,UNDO 回滚;

    十一、并发控制

    事务是并发控制的单位;为了保证事务的隔离性和一致性,数据库要对并发操作进行正确的调度;

    并发一致性问题:

    • 丢失修改——A、B 同时修改数据,B 的提交破坏了 A 的提交,导致 A 的修改丢失
    • 脏读——事务 B 读取了事务 A 回滚的数据
    • 不可重复读——事务 B 在事务 A 执行期间修改了数据,导致A 前后读取数据不一致
    • 幻读——事务 B 在事务 A 执行期间新插入数据。导致 A 再次读取某范围内数据时多了一行

    上述并发一致性问题主要是并发操作破坏了事务隔离性并发控制机制主要就是用正确的方式调度并发操作,是一个用户事务的执行不受其它事务的干扰

    主要技术有:封锁、时间戳、乐观控制法和多版本控制

    1.封锁

    指事务在对某个数据对象操作之前,先向系统发出请求对其加锁

    基本封锁类型:

    • 排他锁(写锁)
      一个写锁会阻塞其它写锁与读锁
    • 共享锁(读锁)
      只会阻塞写锁

    2.封锁协议

    运用读写锁时还需要约定一些规则,如何时申请、持锁时间、何时释放等,称为封锁协议

    1.一级封锁协议:事务在修改数据之前必须先对其加写锁,事务结束才释放
    防止丢失修改
    2.二级封锁协议:在一级封锁协议的基础上增加事务在读取数据前先加读锁,读完释放
    防止丢失修改、脏读
    3.三级封锁协议:在一级封锁协议的基础上增加事务在读取数据前先加读锁,事务结束释放
    防止丢失修改、脏读、不可重复读

    3.活锁和死锁

    1.活锁:申请锁的事务一直等待
    避免活锁的简单方法就是采用先来先服务的策略

    2.死锁:两个进程由于争夺资源而造成的一种相互等待的现象,如无外力,它们都将无法推进下去

    解决:回滚、抢占、杀死进程

    数据库解决条件:1.一次封锁法;2.顺序封锁法

    4.并发调度的可串行性

    5.封锁的粒度

    1.封锁对象的大小称为封锁的粒度;

    2.封锁的粒度与系统的并发度和并发控制的开销密切相关;封锁粒度越小,并发度越大,并发控制开销越大;

    3.多粒度封锁树——数据库–>关系–>元组
    显示封锁是应事务要求直接在数据对象上加锁;隐式封锁指该数据对象没有被独立加锁,但是由于其上级结点加锁从而导致该数据被加锁

    4 . 在对某个对象加锁时要
    a.检查它是否有显示封锁与之冲突;非常麻烦。
    b.检查其上级结点,看本事务的显示封锁是否与该数据对象的隐式封锁冲突
    c.检查其下级结点,看看它们的显示封锁是否与本事务的隐式封锁冲突
    为此引入了一种新型锁——意向锁

    5.意向锁——如果对一个对象加意向锁,则说明该结点的下层结点正在被加锁;
    对任一结点加锁时,必须先对它的上层结点加意向锁
    有了意向锁,就无需检查下一级结点的显示封锁

    6.意向锁分类:
    a.意向共享锁——它后面结点加S锁
    b.意向排他锁——它后面结点加X锁
    c.共享意向排他锁——S锁+意向排他锁

    展开全文
  • 数据库系统概论知识点总结(附期末考试题库)

    千次阅读 多人点赞 2020-12-19 11:05:06
    数据库系统概论期末复习 知识点 若要求分解具有无损连接性,那么模式分解一定能够达到4NF。 若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。 若分解既具有无损连接性,又保持函数依赖...

    数据库系统概论期末复习

    知识点

    若要求分解具有无损连接性,那么模式分解一定能够达到4NF。
    若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。
    若分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF。

    动态维护日志文件的方法
    周期性地执行如下操作:建立检查点,保存数据库状态。
    具体步骤是:
    (1)将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上
    (2)在日志文件中写入一个检查点记录
    (3)将当前数据缓冲区的所有数据记录写入磁盘的数据库中
    (4)把检查点记录在日志文件中的地址写入一个重新开始文件

    不同的封锁协议使事务达到的一致性级别不同
    封锁协议级别越高,一致性程度越高

    X锁 S锁
    操作结束释放 事务结束释放 操作结束释放 事务结束释放 不丢失 修改 不读“脏”数据 可重复
    一级封锁协议
    二级封锁协议
    三级封锁协议

    数据库系统

    数据库系统的组成
    1、数据库
    2、数据库管理系统
    3、应用程序
    4、数据库管理员

    数据库系统是用来存储、管理、处理和维护数据的系统

    数据库阶段的特点:
    1、数据结构化
    2、数据共享性高、冗余度低且易扩充
    3、数据独立性高
    数据独立性包括逻辑独立性和物理独立性
    4、数据由数据库管理系统统一管理和控制
    DBMS的功能
    (1)数据的安全性保护
    (2)数据的完整性检查
    (3)并发控制
    (4)数据库恢复

    数据库系统的组成
    1、硬件平台及数据库
    2、软件
    3、人员

    人员包括
    1、数据库管理员
    2、系统分析员和数据库设计人员

    三级模式两级映像

    外模式
    也称子模式或者用户模式
    一个数据库可以有多个外模式
    模式
    也称逻辑模型
    一个数据库只有一个模式
    内模式
    也称为存储模式
    一个数据库只有一个内模式

    数据独立性:
    包括物理独立性、逻辑独立性

    两个独立性
    逻辑独立性
    当模式结构改变的时候,只要修改外模式/模式映像即可保持逻辑独立性

    物理独立性
    当内模式结构改变的时候,只需要修改模式/内模式映像就可以保持物理独立性

    重点:关系模型

    术语
    1、关系
    一个关系通常来说是一张表
    2、元组
    表中的一行
    3、属性
    一列是一个属性
    4、码
    可以唯一确定一个元组。
    比如学号 能确定学生
    学号和课程 可以确定成绩
    5、域
    是属性的取值范围
    比如说考驾照的年龄设置为18-60
    6、分量
    元组中的一个属性值
    7、关系模式
    是对关系的描述,比如
    学生(学号,姓名,年龄)

    关系模型的最基本要求:表中无表 P26

    关系模型的完整性约束:

    1、实体完整性
    主码唯一且非空
    2、参照完整性
    外码要么为空,要么在另一个表中的主码
    3、用户定义完整性
    自定定义的,比如年龄在12-30岁之间

    学号 姓名 所属班级号
    1 张三 2
    2 李四
    3 王五 1
    班级号 班级名
    1 计算机班
    2 网络工程班

    第一节

    一、相关概念

    ​ \1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。
    ​ \2. Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
    ​ \3. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。
    ​ \4. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。
    ​ \5. 数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。
    ​ \6. 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
    ​ \7. 逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。
    ​ \8. 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
    ​ \9. 实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。
    ​ 10.E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具。
    ​ 11.关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。
    ​ 12.型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。
    ​ 13.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
    ​ 14.数据库的三级系统结构:外模式、模式和内模式。
    ​ 15.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
    ​ 16.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
    ​ 17.数据库的二级映像:外模式/模式映像、模式/内模式映像。

    二、重点知识点

    ​ \1. 数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成。

    ​ \2. 数据模型的组成要素是:数据结构、数据操作、完整性约束条件。

    ​ \3. 实体型之间的联系分为一对一、一对多和多对多三种类型。

    ​ \4. 常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。

    ​ \5. 关系模型的完整性约束包括:实体完整性、参照完整性和用户定义完整性。

    \6. 阐述数据库三级模式、二级映象的含义及作用。
    数据库三级模式反映的是数据的三个抽象层次: 模式是对数据库中全体数据的逻辑结构和特征的描述。内模式又称为存储模式,是对数据库物理结构和存储方式的描述。外模式又称为子模式或用户模式,是对特定数据库用户相关的局部数据的逻辑结构和特征的描述。

    ​ 数据库三级模式通过二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。外模式面向应用程序, 通过外模式/模式映象与逻辑模式建立联系, 实现数据的逻辑独立性。 模式/内模式映象建立模式与内模式之间的一对一映射, 实现数据的物理独立性。

    第二节

    一、相关概念

    ​ \1. 主键: 能够唯一地标识一个元组的属性或属性组称为关系的键或候选键。 若一个关系有多个候选键则可选其一作为主键(Primary key)。

    ​ \2. 外键:如果一个关系的一个或一组属性引用(参照)了另一个关系的主键,则称这个或这组属性为外码或外键(Foreign key)。

    ​ \3. 关系数据库: 依照关系模型建立的数据库称为关系数据库。 它是在某个应用领域的所有关系的集合。

    ​ \4. 关系模式: 简单地说,关系模式就是对关系的型的定义, 包括关系的属性构成、各属性的数据类型、 属性间的依赖、 元组语义及完整性约束等。 关系是关系模式在某一时刻的状态或内容, 关系模型是型, 关系是值, 关系模型是静态的、 稳定的, 而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。

    ​ \5. . 实体完整性:用于标识实体的唯一性。它要求基本关系必须要有一个能够标识元组唯一性的主键,主键不能为空,也不可取重复值。

    ​ \6. 参照完整性 : 用于维护实体之间的引用关系。 它要求一个关系的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值。

    ​ \7. 用户定义的完整性:就是针对某一具体应用的数据必须满足的语义约束。包括非空、 唯一和布尔条件约束三种情况。

    二、重要知识点

    \1. 关系数据库语言分为关系代数、关系演算和结构化查询语言三大类。

    \2. 关系的 5 种基本操作是选择、投影、并、差、笛卡尔积。

    3.关系模式是对关系的描述,五元组形式化表示为:R(U,D,DOM,F),其中

    ​ R —— 关系名

    ​ U —— 组成该关系的属性名集合

    ​ D —— 属性组 U 中属性所来自的域

    ​ DOM —— 属性向域的映象集合

    ​ F —— 属性间的数据依赖关系集合

    ​ 4.笛卡尔乘积,选择和投影运算如下

    https://img-blog.csdn.net/20130903203749812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFvcWlhbmcyMDEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

    第三节

    一、相关概念

    ​ \1. SQL:结构化查询语言的简称, 是关系数据库的标准语言。SQL 是一种通用的、 功能极强的关系数据库语言, 是对关系数据存取的标准接口, 也是不同数据库系统之间互操作的基础。集数据查询、数据操作、数据定义、和数据控制功能于一体。

    ​ \2. 数据定义:数据定义功能包括模式定义、表定义、视图和索引的定义。

    ​ \3. 嵌套查询:指将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询。

    二、重要知识点

    ​ \1. SQL 数据定义语句的操作对象有:模式、表、视图和索引。
    ​ \2. SQL 数据定义语句的命令动词是:CREATE、DROP 和 ALTER。
    ​ \3. RDBMS(关系型数据库管理系统) 中索引一般采用 B+树或 HASH 来实现。
    ​ \4. 索引可以分为唯一索引、非唯一索引和聚簇索引三种类型。

    https://img-blog.csdn.net/20130903204444156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFvcWlhbmcyMDEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

    ​ 6.SQL 创建表语句的一般格式为

    ​ CREATE TABLE <表名>

    ​ ( <列名> <数据类型>[ <列级完整性约束> ]

    ​ [,<列名> <数据类型>[ <列级完整性约束>] ] …

    ​ [,<表级完整性约束> ] ) ;

    其中<数据类型>可以是数据库系统支持的各种数据类型,包括长度和精度。

    列级完整性约束为针对单个列(本列)的完整性约束, 包括 PRIMARY KEY、 REFERENCES表名(列名)、UNIQUE、NOT NULL 等。

    表级完整性约束可以是基于表中多列的约束,包括 PRIMARY KEY ( 列名列表) 、FOREIGN KEY REFERENCES 表名(列名) 等。

    ​ \7. SQL 创建索引语句的一般格式为

    ​ CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

    ​ ON <表名> (<列名列表> ) ;

    其中UNIQUE:表示创建唯一索引,缺省为非唯一索引;

    CLUSTER:表示创建聚簇索引,缺省为非聚簇索引;

    <列名列表>:一个或逗号分隔的多个列名,每个列名后可跟 ASC 或 DESC,表示升/降序,缺省为升序。多列时则按为多级排序。

    ​ \8. SQL 查询语句的一般格式为

    ​ SELECT [ALL|DISTINCT] <算术表达式列表> FROM <表名或视图名列表>

    ​ [ WHERE <条件表达式 1> ]

    ​ [ GROUP BY <属性列表 1> [ HAVING <条件表达式 2 > ] ]

    ​ [ ORDER BY <属性列表 2> [ ASC|DESC ] ] ;

    其中

    ALL/DISTINCT: 缺省为 ALL, 即列出所有查询结果记录, 包括重复记录。 DISTINCT则对重复记录只列出一条。

    ​ 算术表达式列表:一个或多个逗号分隔的算术表达式,表达式由常量(包括数字和字符串)、列名、函数和算术运算符构成。每个表达式后还可跟别名。也可用 *代表查询表中的所有列。

    <表名或视图名列表>: 一个或多个逗号分隔的表或视图名。 表或视图名后可跟别名。

    条件表达式 1:包含关系或逻辑运算符的表达式,代表查询条件。

    条件表达式 2:包含关系或逻辑运算符的表达式,代表分组条件。

    <属性列表 1>:一个或逗号分隔的多个列名。

    <属性列表 2>: 一个或逗号分隔的多个列名, 每个列名后可跟 ASC 或 DESC, 表示升/降序,缺省为升序。

    关于SQL语句的知识这里先作如上简略介绍,具体写法下次将专门拿出一篇来叙述。

    第四节

    一、相关概念和知识

    ​ 1.触发器是用户定义在基本表上的一类由事件驱动的特殊过程。由服务器自动激活, 能执行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。使用 CREATE TRIGGER 命令建立触发器。

    ​ 2.计算机系统存在技术安全、管理安全和政策法律三类安全性问题。

    ​ \3. TCSEC/TDI 标准由安全策略、责任、保证和文档四个方面内容构成。

    ​ \4. 常用存取控制方法包括自主存取控制(DAC)和强制存取控制(MAC)两种。

    ​ \5. 自主存取控制(DAC)的 SQL 语句包括 GRANT 和 REVOKE 两个。 用户权限由数据对象和操作类型两部分构成。

    https://img-blog.csdn.net/20130903205901156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFvcWlhbmcyMDEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

    ​ \6. 常见SQL 自主权限控制命令和例子。
    ​ 1) 把对 Student 和 Course 表的全部权限授予所有用户。
    ​ GRANT ALL PRIVILIGES ON TABLE Student,Course TO PUBLIC ;
    ​ 2) 把对 Student 表的查询权和姓名修改权授予用户 U4。
    ​ GRANT SELECT,UPDATE(Sname) ON TABLE Student TO U4 ;
    ​ 3) 把对 SC 表的插入权限授予 U5 用户,并允许他传播该权限。
    ​ GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION ;
    ​ 4) 把用户 U5 对 SC 表的 INSERT 权限收回,同时收回被他传播出去的授权。
    ​ REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;
    ​ 5) 创建一个角色 R1,并使其对 Student 表具有数据查询和更新权限。
    ​ CREATE ROLE R1;
    ​ GRANT SELECT,UPDATE ON TABLE Student TO R1;
    ​ 6) 对修改 Student 表结构的操作进行审计。
    ​ AUDIT ALTER ON Student ;

    数据库知识总结(2)范式

    一、相关概念和知识点

    ​ 1.数据依赖:反映一个关系内部属性与属性之间的约束关系,是现实世界属性间相互联系的抽象,属于数据内在的性质和语义的体现。
    ​ \2. 规范化理论:是用来设计良好的关系模式的基本理论。它通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
    ​ \3. 函数依赖:简单地说,对于关系模式的两个属性子集X和Y,若X的任一取值能唯一确定Y的值,则称Y函数依赖于X,记作X→Y。
    ​ \4. 非平凡函数依赖:对于关系模式的两个属性子集X和Y,如果X→Y,但Y!⊆X,则称X→Y为非平凡函数依赖;如果X→Y,但Y⊆X,则称X→Y为非平凡函数依赖。
    ​ \5. 完全函数依赖:对于关系模式的两个属性子集X和Y,如果X→Y,并且对于X的任何一个真子集X’,都没有X’→Y,则称Y对X完全函数依赖。
    ​ \6. 范式:指符合某一种级别的关系模式的集合。在设计关系数据库时,根据满足依赖关系要求的不同定义为不同的范式。
    ​ \7. 规范化:指将一个低一级范式的关系模式,通过模式分解转换为若干个高一级范式的关系模式的集合的过程。
    ​ \8. 1NF:若关系模式的所有属性都是不可分的基本数据项,则该关系模式属于1NF。
    ​ \9. 2NF:1NF关系模式如果同时满足每一个非主属性完全函数依赖于码,则该关系模式属于2NF。
    ​ \10. 3NF:若关系模式的每一个非主属性既不部分依赖于码也不传递依赖于码,则该关系模式属于3NF。
    ​ \11. BCNF:若一个关系模式的每一个决定因素都包含码,则该关系模式属于BCNF。
    ​ \12. 数据库设计:是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
    ​ \13. 数据库设计的6个基本步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护
    ​ \14. 概念结构设计:指将需求分析得到的用户需求抽象为信息结构即概念模型的过程。也就是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
    ​ \15. 逻辑结构设计:将概念结构模型(基本E-R图)转换为某个DBMS产品所支持的数据模型相符合的逻辑结构,并对其进行优化。
    ​ \16. 物理结构设计:指为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程。包括设计数据库的存储结构与存取方法。
    ​ \17. 抽象:指对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。

    ​ \18. 数据库设计必须遵循结构设计和行为设计相结合的原则。

    ​ \19. 数据字典主要包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
    ​ \20. 三种常用抽象方法是分类、聚集和概括。
    ​ \21. 局部 E-R 图之间的冲突主要表现在属性冲突、命名冲突和结构冲突三个方面。

    ​ \22. 数据库常用的存取方法包括索引方法、聚簇方法和 HASH方法三种。
    ​ \23. 确定数据存放位置和存储结构需要考虑的因素主要有: 存取时间、 存储空间利用率和维护代价等。

    二、细说数据库三范式

    2.1 第一范式(1NF)无重复的列

    ​ 第一范式(1NF)中数据库表的每一列都是不可分割的基本数据项
    ​ 同一列中不能有多个值
    ​ 即实体中的某个属性不能有多个值或者不能有重复的属性。
    ​ 简而言之,第一范式就是无重复的列。

    ​ 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

    2.2 第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖]

    满足第二范式(2NF)必须先满足第一范式(1NF)。

    第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。

    为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。
    第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。
    2.3 第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖]

    满足第三范式(3NF)必须先满足第二范式(2NF)。

    简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

    例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

    2.4 具体实例剖析

    下面列举一个学校的学生系统的实例,以示几个范式的应用。

    ​ 在设计数据库表结构之前,我们先确定一下要设计的内容包括那些。学号、学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话等信息。为了简单我们暂时只考虑这些字段信息。我们对于这些信息,说关心的问题有如下几个方面。

    ​ 1)学生有那些基本信息
    ​ 2)学生选了那些课,成绩是什么
    ​ 3)每个课的学分是多少
    ​ 4)学生属于那个系,系的基本信息是什么。

    ​ 首先第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。在当前的任何关系数据库管理系统(DBMS)中,不允许你把数据库表的一列再分成二列或多列,因此做出的都是符合第一范式的数据库。

    ​ 我们再考虑第二范式,把所有这些信息放到一个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话)下面存在如下的依赖关系。
    ​ 1)(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话)
    ​ 2) (课程名称) → (学分)
    ​ 3)(学号,课程)→ (学科成绩)

    根据依赖关系我们可以把选课关系表SelectCourse改为如下三个表:

    ​ 学生:Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话);
    ​ 课程:Course(课程名称, 学分);
    ​ 选课关系:SelectCourse(学号, 课程名称, 成绩)。

    ​ 事实上,对照第二范式的要求,这就是满足第二范式的数据库表,若不满足第二范式,会产生如下问题
    数据冗余: 同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。

    更新异常: 1)若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。
    2)假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。

    删除异常 : 假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。

    ​ 我们再考虑如何将其改成满足第三范式的数据库表,接着看上面的学生表Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话),关键字为单一关键字"学号",因为存在如下决定关系:

    (学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话)
    但是还存在下面的决定关系
    (学号) → (所在学院)→(学院地点, 学院电话)
    即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。
    它也会存在数据冗余、更新异常、插入异常和删除异常的情况(这里就不具体分析了,参照第二范式中的分析)。根据第三范式把学生关系表分为如下两个表就可以满足第三范式了:

    ​ 学生:(学号, 姓名, 年龄, 性别,系别);
    ​ 系别:(系别, 系办地址、系办电话)。

    SQL语句总结

    SQL语句中常用关键词及其解释如下:

    1)SELECT

    将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT)。语法为
    SELECT “栏位名” FROM “表格名”。

    2)DISTINCT

    在上述 SELECT 关键词后加上一个 DISTINCT 就可以去除选择出来的栏位中的重复,从而完成求得这个表格/栏位内有哪些不同的值的功能。语法为
    SELECT DISTINCT “栏位名” FROM “表格名”。

    3)WHERE

    这个关键词可以帮助我们选择性地抓资料,而不是全取出来。语法为
    SELECT “栏位名” FROM “表格名” WHERE “条件”

    4)AND OR

    上例中的 WHERE 指令可以被用来由表格中有条件地选取资料。这个条件可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过 AND 或是 OR 的连接而成。语法为:
    SELECT “栏位名” FROM “表格名” WHERE “简单条件” {[AND|OR] “简单条件”}+

    5)IN

    在 SQL 中,在两个情况下会用到 IN 这个指令;这一页将介绍其中之一:与 WHERE 有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知道的值都放入 IN 这个子句。语法为:
    SELECT “栏位名” FROM “表格名” WHERE “栏位名” IN (‘值一’, ‘值二’, …)

    6)BETWEEN

    IN 这个指令可以让我们依照一或数个不连续 (discrete)的值的限制之内抓出资料库中的值,而 BETWEEN 则是让我们可以运用一个范围 (range) 内抓出资料库中的值,语法为:
    SELECT “栏位名” FROM “表格名” WHERE “栏位名” BETWEEN ‘值一’ AND ‘值二’

    7)LIKE

    LIKE 是另一个在 WHERE 子句中会用到的指令。基本上, LIKE 能让我们依据一个模式(pattern) 来找出我们要的资料。语法为:
    SELECT “栏位名” FROM “表格名” WHERE “栏位名” LIKE {模式}

    8)ORDER BY

    我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小(descending)。在这种情况下,我们就可以运用 ORDER BY 这个指令来达到我们的目的。语法为:
    SELECT “栏位名” FROM "表格名 [WHERE “条件”] ORDER BY “栏位名” [ASC, DESC]

    9)函数

    函数允许我们能够对这些数字的型态存在的行或者列做运算,包括 AVG (平均)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM (总合)。语法为:
    SELECT “函数名”(“栏位名”) FROM “表格名”

    10)COUNT

    这个关键词能够帮我我们统计有多少笔资料被选出来,语法为:
    SELECT COUNT(“栏位名”) FROM “表格名”

    11)GROUP BY

    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。语法为:
    SELECT “栏位1”, SUM(“栏位2”) FROM “表格名” GROUP BY “栏位1”

    12)HAVING

    该关键词可以帮助我们对函数产生的值来设定条件。语法为:
    SELECT “栏位1”, SUM(“栏位2”) FROM “表格名” GROUP BY “栏位1” HAVING (函数条件)

    13)ALIAS

    我们可以通过ALIAS为列名称和表名称指定别名,语法为:
    SELECT “表格别名”.“栏位1” “栏位别名” FROM “表格名” “表格别名”

    下面为一个例子,通过它我们应该能很好地掌握以上关键词的使用方法。

    Student(S#,Sname,Sage,Ssex) 学生表
    Course(C#,Cname,T#) 课程表
    SC(S#,C#,score) 成绩表
    Teacher(T#,Tname) 教师表

    问题:
    1、查询“001”课程比“002”课程成绩高的所有学生的学号;
    select a.S#
    from (select s#,score from SC where C#=’001′) a,
    (select s#,score from SC where C#=’002′) b
    where a.score>b.score and a.s#=b.s#;

    2、查询平均成绩大于60分的同学的学号和平均成绩;
    select S#,avg(score)
    from sc
    group by S# having avg(score) >60;

    3、查询所有同学的学号、姓名、选课数、总成绩;
    select Student.S#,Student.Sname,count(SC.C#),sum(score)
    from Student left Outer join SC on Student.S#=SC.S#
    group by Student.S#,Sname

    4、查询姓“李”的老师的个数;
    select count(distinct(Tname))
    from Teacher
    where Tname like ‘李%’;

    5、查询没学过“叶平”老师课的同学的学号、姓名;
    select Student.S#,Student.Sname
    from Student
    where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’);

    6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
    select Student.S#,Student.Sname
    from Student,SC

    where Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

    7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
    select S#,Sname
    from Student
    where S# in
    (select S#
    from SC ,Course ,Teacher
    where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=’叶平’));

    8、查询所有课程成绩小于60分的同学的学号、姓名;
    select S#,Sname
    from Student
    where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

    9、查询没有学全所有课的同学的学号、姓名;
    select Student.S#,Student.Sname
    from Student,SC
    where Student.S#=SC.S#
    group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);

    10、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
    select S#,Sname
    from Student,SC
    where Student.S#=SC.S# and C# in (select C# from SC where S#=‘1001’);

    11、删除学习“叶平”老师课的SC表记录;
    Delect SC
    from course ,Teacher
    where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=‘叶平’;

    12、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
    SELECT L.C# 课程ID,L.score 最高分,R.score 最低分
    FROM SC L ,SC R
    WHERE L.C# = R.C#
    and
    L.score = (SELECT MAX(IL.score)
    FROM SC IL,Student IM
    WHERE IL.C# = L.C# and IM.S#=IL.S#
    GROUP BY IL.C#)
    and
    R.Score = (SELECT MIN(IR.score)
    FROM SC IR
    WHERE IR.C# = R.C#
    GROUP BY IR.C# );

    13、查询学生平均成绩及其名次
    SELECT 1+(SELECT COUNT( distinct 平均成绩)
    FROM (SELECT S#,AVG(score) 平均成绩
    FROM SC
    GROUP BY S# ) T1
    WHERE 平均成绩 > T2.平均成绩) 名次, S# 学生学号,平均成绩
    FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2
    ORDER BY 平均成绩 desc;

    14、查询各科成绩前三名的记录:(不考虑成绩并列情况)
    SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
    FROM SC t1
    WHERE score IN (SELECT TOP 3 score
    FROM SC
    WHERE t1.C#= C#
    ORDER BY score DESC)
    ORDER BY t1.C#;

    15、查询每门功成绩最好的前两名
    SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
    FROM SC t1
    WHERE score IN (SELECT TOP 2 score
    FROM SC
    WHERE t1.C#= C#
    ORDER BY score DESC )

    ORDER BY t1.C#;

    要点

    1. 数据的描述

    描述事物的符号记录称为数据

    2. 数据库系统的三级模式是指

    • 数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。
    • 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是(D)。
      A.外模式 B.内模式 C.存储模式 D.模式
    • 在数据库三级模式间引入二级映象的主要作用是(A)
      A.提高数据与程序的独立性 B.提高数据与程序的安全性
      C.保持数据与程序的一致性 D.提高数据与程序的可移植性
    • 在数据库三级模式中,模式的个数(A)
      A.只有一个 B.可以有任意多个
      C.与用户个数相同 D.由设置的系统参数决定
    • 在关系数据库中,表(table)是三级模式结构中的(B)
      A.外模式
      B.模式
      C.存储模式
      D.内模式
    • 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是(D)。
      A.外模式
      B.内模式
      C.存储模式
      D.模式
    • SQL语言支持数据库三级模式结构。在SQL中,外模式对应于视图和部分基本表、模式对应于基本表、内模式对应于存储文件。

    3. 模式和逻辑、物理独立性间的关系

    外模式对应于应用程序、视图
    模式对应于逻辑结构、基本表
    内模式对应于物理结构、文件

    • 17什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
    • 外模式/模式映象可以保证数据和应用程序之间的逻辑独立性;模式/内模式映象可以保证数据和应用程序之间的物理独立性。

    4. 数据库系统的描述

    • 数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、处理、维护和管理数据的系统。
    • 数据库系统一般包括数据库、_dbms、dba、_应用系统_与用户。

    5. 概念模型是现实世界的第一层抽象,最著名的概念模型是E-R模型、E-R模型的描述。

    实体间的联系

    6. 数据模型的定义及描述

    数据模型是严格定义的一组概念的集合,数据模型通常由数据结构,数据操作,和数据的完整性约束条件三部分组成。

    7. 信息世界中的概念:实体、码、属性、主属性、非主属性(或非码属性)等

    • 实体:客观存在并可以相互区分的事物叫实体。
    • :表中的某个属性组,它可以唯一确定一个元组;
    • 属性:表中的一列即为一个属性;
    • 主属性:包含在任一候选关键字中的属性称主属性;
    • 非主属性:不包含在主码中的属性称为非主属性。 非主属性是相对与主属性来定义的;

    8. 候选码

    若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。

    9. 数据库系统的特点。

    1. 数据结构化
    2. 数据的共享性高,冗余度低,易扩充
    3. 数据独立性高
    4. 数据由DBMS统一管理和控制

    10. 描述并、差、选择这三种关系代数运算的运算符及运算规则。

    并运算的运算符为“∪”,其运算规则为关系R与关系S的并由属于R或属于S的元组组成。
    差运算的运算符为“—”,其运算规则为关系R与关系S的差由属于R而不属于S的元组组成。
    选择运算的运算符为“σ”,其运算规则为从关系中选取使选择条件为真的元组。

    11. 描述交、投影、连接这三种关系代数运算的运算符及运算规则。

    交运算的运算符为“∩”,其运算规则为关系R与关系S的差由属于R且属于S的元组组成。
    投影运算的运算符为“Π\PiΠ”,其运算规则为从关系中选择若干属性列组成新的关系。
    连接运算的运算符为“∞”,其运算规则为两个关系的笛卡尔积中选取属性间满足一定条件的元组。

    12. 结合数据库中用户定义的完整性要求,请简要说明列值非空、列值唯一和检查列值是否满足一个布尔表达式这三种常见约束的含义及定义方法。

    (1)列值非空表明该列是必填项,如果列值未设置会导致元组无法插入数据库。列值非空使用NOT NULL定义;
    (2)列值唯一表明该列中不允许出现重复属性值,如果出现重复属性值会导致元组无法插入数据库。列值唯一使用UNIQUE定义;
    (3)检查列值是否满足一个布尔表达式表明该列的属性值应使设定的布尔表达式成立,否则会导致元组无法插入数据库。检查列值是否满足一个布尔表达式使用CHECK定义。

    13. 请列举数据库的三类完整性约束并进行简单说明。

    (1)实体完整性
    (2)参照完整性
    (3)用户定义的完整性
    (1)实体完整性。每一个实体都应该有主码,通过主码可唯一确定关系中的某一元组。主码不能重复,不能为空。
    (2)参照完整性。用于说明当前关系的外码参照了哪些表的主码。外码要么为空,要么为某一已经存在的主码值。
    (3)用户定义的完整性。用于描述针对某一具体应用的数据必须满足的语义要求。

    14. 以下哪一项是SQL Server中支持的可变长字符串数据类型?

    SQL Server支持的数据类型

    14. 关系

    关系可以有基本关系、 查询表、视图表三种类型

    15. 数据库系统提供的授权机制保障数据安全性的措施。

    用户身份鉴别:静态口令鉴别,动态口令鉴别,生物特征鉴别,智能卡识别。

    16. 聚集函数的含义 COUNT、AVG\MAX\MIN(列名)

    • COUNT:统计元组个数。
    • AVG:计算一列值的平均值。
    • MAX:求一列值的最大值。
    • MIN:求一列值的最小值。

    17. 描述数据库设计的6个阶段

    需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段。

    • 数据库设计的基本步骤是什么?
      需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。

    18. 根据规范化理论,1NF、2NF、3NF的定义。一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,该过程称为规范化。

    1NF:实体中的某个属性不能有多个值或者不能有重复的属性。
    2NF:完全依赖于主键[消除非主属性对主码的部分函数依赖]
    3NF:不依赖于其它非主属性[消除传递依赖]  
    规范化:一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,该过程称为规范化。

    19. SQL Server 中,如果希望用户u1在当前数据库中具有对某表的操纵权限的授权语句 ;在SQL语句中,收回已授予的权限REVOKE

    8.今有两个关系模式:
    职工(职工号,姓名,年龄,职务,工资,部门号)
    部门(部门号,名称,经理名,地址,电话号)
    请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
    (1)用户王明对两个表有SELECT权力;
    (2)用户李勇对两个表有INSERT和DELETE权力;
    (3)每个职工只对自己的记录有SELECT权力;
    (4)用户刘星对职工表有SELECT权力,对工资字段具有更新权力;
    (5)用户张新具有修改这两个表的结构的权力;
    (6)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力;
    (7)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。

    --(1)
    GRANT SELECT ON 职工,部门 TO 王明;
    
    --(2)
    GRANT INSERT, DELETE ON 职工,部门 TO 李勇;
    
    --(3)
    GRANT SELECT ON 职工 WHEN USER() = NAME TO ALL;
    -- 这里假定系统的GRANT语句支持WHEN子句和USER ()的使用。用户将自己的名字作为ID。注意,不同的系统这些扩展语可能是不同的。读者应该了解你使用的DBMS产品的扩展语句。
    
    -- (4)
    GRANT SELECT, UPDATE (工资) ON 职工 TO 刘星;
    
    -- (5)
    GRANT ALTER TABLE ON 职工,部门 TO 张新;
    
    -- (6)
    GRANT ALL PRIVILEGES ON 职工,部门 TO 周平 WITH GRANT OPTION;
    
    -- (7)
    -- 首先建立一个视图。然后对这个视图定义杨兰的存取权限。
    CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号;
    
    GRANT SELECT ON 部门工资 TO 杨兰;
    123456789101112131415161718192021222324
    

    9.把习题8中(1)~(7)中的每一种情况,撤销各户所授予的权力。

    -- (1)
    REVOKE SELECT ON 职工,部门 FROM 王明;
    
    -- (2)
    REVOKE INSERT,DELETE ON 职工,部门 FROM 李勇;
    
    -- (3)
    REVOKE SELECT ON 职工 WHEN USER()=NAME FROM ALL;
    -- 这里假定用户将自己的名字作为ID,且系统的REOVKE语支持WHEN子句,系统也支持USER ()的使用。
    
    -- (4)
    REVOKE SELECT,UPDATE ON 职工 FROM 刘星;
    
    -- (5)
    REVOKE ALTER TABLE ON 职工,部门 FROM 张新;
    
    -- (6)
    REVOKE ALL PRIVILEGES ON 职工,部门 FROM 周平;
    
    -- (7)
    REVOKE SELECT ON 部门工资 FROM 杨兰;
    DROP VIEW 部门工资;
    12345678910111213141516171819202122
    

    20. DELETE 、DROP 的区别与联系。删除表和元组的命令。

    21. 在SQL语句的查询条件中,确定数据范围可以使用BETWEEN关键字,确定是否在集合中使用 IN关键字,进行字符匹配使用 LIKE关键字,任意长度的字符串,任意单个字符。

    22. SQL语言中,用于实现数据检索的语句。

    23. 从E-R模型关系向关系模型转换时,一个1:N(M:N)联系的转换规则

    • 从E-R模型关系向关系模型转换时,一个m:n联系转换为关系模式时,该关系模式的码是(C)
      A.M端实体的码 B.N端实体的码
      C.M端实体码与N端实体码组合 D.重新选取其他属性

    24. 触发器是一种特殊的存储过程,它是由用户对数据的更改操作自动引发执行的。适于用完整性控制或实现复杂的约束

    _触发器_是一种特殊的存储过程,它可以在对一个表上进行INSERT、UPDATE和DELETE操作中的任一种或几种操作时被自动调用执行。

    25. 并发操作可能会产生哪些数据不一致?不可重复读、 读“脏”数据

    • 简述数据库并发操作通常会带来哪些问题。
      丢失修改、不可重复读、读“脏”数据。

    26. 并发操作中不可重复读是指同一事务两次读到的数据不相同

    27. 数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程等部分

    28. 各子系统的E-R图之间主要属性、命名和结构 冲突等三类冲突。

    29. 初步的E-R图中可能存在一些冗余的数据和冗余的联系。

    30. 事务中COMMIT、ROLLBACK。

    事务具有ACID特性:原子性 、一致性 、隔离性、 持续性。

    • 简述事务的特性。
      事务具有四个特性,即ACID特性:(1分)
      (1)原子性:事务中包括的所有操作要么都做,要么都不做。(1分)
      (2)一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。(1分)
      (3)隔离性:一个事务内部的操作及使用的数据对并发的其他事务是隔离的。(1分)
      (4)持续性:事务一旦提交,对数据库的改变是永久的。(1分)

    31. 文件管理数据库中的文件类型表结构及其各属性的描述与约束,请根据以上描述写出创建该文件类型表的SQL语句。

    CREATE TABLE T()

    32. 给出关系模式及其其依赖关系集请判断其是否属于第二或三范式并给出依据;若不属于第二或三范式,请将其分解为属于第二或三范式的关系模式集合。

    答题步骤:
    (1)给出关系模式的码,因为存在什么,故不属于第三范式。
    (2)分解后的关系模式

    33. 请简要说明查询处理的步骤有哪些,并对步骤进行简单说明。

    (1)查询分析
    (2)查询检查(或查询预处理)
    (3)查询优化
    (4)查询执行。。。。。。

    34. 设有一个文件管理数据库的两个关系模式及其结构。

    (1)依据要求创建一个视图。
    (2)创建查询语句。
    (3)创建查询语句。

    35. 请建立一个关于*、*、*等多项信息的关系数据库,要求如下。

    • 关系模式及其属性。
    • 关系模式及其属性。
      关系模式及其属性
      各项信息之间语义如下。
      (1)请给出该关系数据库的E-R图。
      (2)将E-R图转换为关系模式。

    重点整理

    数据模型的三个要素

    数据结构,数据操作,完整性约束

    数据库领域常用的逻辑模型

    层次 网状 关系,

    最常用的是关系数据模型

    画E-R图时要注意几个点:

    a. 每一个实体一定要画上属性

    b. 联系和联系之间是一对一还是多对多一定要画上

    候选码:它能够唯一的标识出整个元组来,候选码不是只有一个属性,有可能是一个或多个属性,候选码的属性不能是空值

    主码:多个候选码中选定一个作为主码

    外部码:一个属性它在当前这个关系中不是码,但是它和另外一个关系当中的主码相对应,我们就说这个属性是当前这个关系的一个外部码。

    外部码的取值约束:外部码的取值不是任意的,或者为空,或者为所参照关系的主码的某一个值

    全码:所有的属性全部加在一起才能当作码,其中任一部分都不能构成码的叫全码

    在多值依赖里全码的例子比较多

    关系数据模型的数据结构是关系

    DROP TABLE是整个表的表结构给删除掉,DELETE删除的是数据。

    having和where的区别一定要清楚:

    having是对分组进行判断,如果条件是想对分组起作用,那条件写到having中;

    如果条件是想对所有元组起作用,那条件写到where里面。

    嵌套在里面的子查询是不能ORDER BY的,因为ORDER BY是对最终的结果来进行排序。

    相关子查询:不可以独立执行,如果父查询不给它传递一个参数它就没法执行了。整个查询语句由外向内执行,从父查询到子查询。   不相关子查询:查询条件不依赖于父查询,可以独立执行,不需要父查询给它传递一个参数。整个查询语句由内向外执行,从子查询到父查询。

    在查询里面有一个带有EXISTS的查询,是比较难的,大家一定要理解。一定要注意的就是说存在不存在它只返回true或者是false的值,它实际的列值是没有意义的,所以它的表达式一般都是用*号来表示

    完整性和安全性最主要的区别

    完整性防止的是合法用户对数据库的合法操作,但是造成数据库不一致的情况。

    期末题库(乱序版)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 数据库系统概论 知识点整理 1

    千次阅读 2018-05-18 22:55:04
    第一章 绪论数据库常用术语和基本概念:1. 数据:数据库里的基本存储对象2. 数据库(DB):存放数据的仓库。 严格来讲,数据库就是长期存储在... 数据库管理系统(DBMS): 科学的管理数据和存储数据,高效的获取...
    第一章 绪论

    数据库常用术语和基本概念:

    1.  数据:数据库里的基本存储对象

    2.  数据库(DB):存放数据的仓库。

                      严格来讲,数据库就是长期存储在计算机内、有组织的、可以共享的数据的集合。

                      概括的来讲就是,数据库具有永久性、有组织、可共享三个基本特点

    3. 数据库管理系统(DBMS):

          科学的管理数据和存储数据,高效的获取和维护数据的系统软件,也是介于用户和操作系统之间的一层数据管理软件

         主要功能:  数据定义;

                         数据组织、存储、管理;

                         数据操纵;

                         数据库的事务管理和运行管理;

                         数据库的建立和维护功能;

                         其他;

         

         DBMS还提供数据控制功能:数据的安全性保护;

                                                    数据的完整性检查;

                                                    并发控制;

                                                    数据库恢复;

    4.数据库系统(DBS):

         DBS包括数据库、数据库管理系统、应用系统、数据库管理员构成;

         DBS的特点:

                        数据结构化;数据的共享性高;冗余度低,易扩充;数据独立性高;数据一般由DBMS统一管理和控制


    5. 数据库管理员(DBA)


    数据模型:数据库系统的核心和基础

    1. 数据模型分类:

            第一类  概念模型:按用户的观点对数据和信息建模,主要用于数据库设计;

                       概念模型:实体、码、域、实体集、联系等(不详细介绍这部分内容,有需要的看下书,具体理解)

            第二类  逻辑模型、物理模型

                         逻辑模型:按计算机系统观点对数据建模,主要用于DBMS的实现。

                         逻辑模型包括:{层次模型、网状模型、关系模型、面向对象模型和对象关系模型}

                         物理模型:对数据的最低层的抽象

    2. 数据模型组成要素:数据结构、数据操作、数据完整性约束


    数据库系统结构

    三层模式:外模式、内模式、模式

                   模式:数据库数据在逻辑上的视图,一个数据库只有一个模式

                   外模式(子模式):数据库用户的数据视图,通常是模式的子集,一个数据库可以有多个外模式

                   内模式(存储模式):数据物理结构和存储方式的描述,是数据在数据库内部的表达方式,

                                                    一个数据库只有一个内模式

    数据库的二级映像

                             外模式/模式映像

                             模式/内模式映像


                          ps: 后续章节会继续整理,很开心和大家一起学习大笑

    展开全文
  • 第二章 关系数据库关系的三种类型:基本表(实际存在的表)、查询表(查询结果对相应的表)、视图表(由基本表和其他表导出)ps:由于该系列主要针对数据库基础知识和sql基础,所以该章的关系操作、关系演算不做具体...
  • 数据库系统概论》-Chapter1-绪论知识点整理 《数据库系统概论》-Chapter2-关系数据库知识点整理 《数据库系统概论》-Chapter3-SQL 《数据库系统概论》-Chapter4-数据库安全性 《数据库系统概论》-Chapter5-数据库...
  • 数据库系统复习第一章 绪论第二章 关系数据库2.1 关系模式2.2 关系操作2.3 关系语言的分类2.4 完整性第三章 SQL语言第四章 数据库的安全性4.1 数据不安全的因素4.2 数据库安全性控制4.3 视图机制4.4 审计4.5 数据...
  • 文章目录目录一、绪论1.1数据库系统概述数据库的4个基本概念数据管理技术的产生和发展数据库系统的特点1.2 数据模型1.3 数据系统的结构二、关系数据库三、关系数据库标准语言SQL四、数据库安全性五、数据库完整性六...
  • 第一章 绪论 一、四个基础概念 *数据(Data): 是数据库中存储的基本对象,是描述事物的符号记录 *数据库(Database):...*数据库系统(DBS): 是计算机系统中引入数据库后的系统构成。 *数据库的基本特征:* ...
  • 数据库系统概论知识点总结

    千次阅读 2018-03-07 22:00:15
    期末复习顺便总结下,书本为高等教育出版社的《数据库系统概论》。第一章知识点数据库是长期储存之计算机内的、有组织的、可共享的大量数据的集合。1,数据库数据特点 P4 永久存储,有组织,可共享。2,数据独立性...
  • 数据库系统概论相关知识点复习

    千次阅读 2018-11-08 21:40:45
    1.数据库的4个基本概念 1)数据(data):描述事物的符号记录。数据是数据库中存储的基本对象,数据的解释是指对数据含义的说明,数据的含义称为数据的语义 2)数据库(database,DB):数据库是长期存储在计算机...
  • 什么是数据库的完整性? 数据库的完整性是指数据的正确性和相容性。数据的正确性是值数据是符合现实世界语义、反映当前实际状况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。 1. 实体完整...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 165
精华内容 66
关键字:

数据库系统概论知识点