Skip to content

Latest commit

 

History

History
278 lines (118 loc) · 12.9 KB

数据库知识.md

File metadata and controls

278 lines (118 loc) · 12.9 KB

1.四个概念

  • 数据:数据是描述事物的符号记录。

  • 数据库是指长期存储于计算机内的、有组织的、可共享的数据集合。(1分)

  • DBMS是指位于用户与OS之间的一层数据管理软件,它位用户或应用程序提供访问DB的方法。(1分)

  • DBS是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。(2分)

2.数据库的三大要素

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

3.文件系统 数据库系统 区别和联系

  • 文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。

  • 文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件。解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件。但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。

4.视图 基本表 联系和区别

  • 视图和基本表在概念上等同,他们都是关系。(1分)

  • 基本表是本身独立存在的表。视图是从一个或几个基本表(或视图)中导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍然放在原来的基本表中。(3分

5.数据库 完整性 安全性 区别和联系

  • 数据的完整性和安全性是两个不同的概念,但是有一定的联系。

  • 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。(2分)

  • 后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。(2分)

6.数据与程序的物理独立性 逻辑独立性 怎样实现

  • 数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

  • 数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

  • 数据库管理系统在三级模式之间提供的两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

7.数据库设计的各个阶段

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

这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

8. 数据库系统的三级模式

  • 数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成.

  • 外模式也称子模式或者用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。(数据库可以有多个外模式)。

  • 模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图.(一个数据库只有一个模式)。

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

9. 触发器

触发器是用户定义在关系表上的一类由事件驱动的特殊过程,一旦定义,任何用户对表的增,删,改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。

10.规范化的思想

规范化的基本思想是逐步消除数依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓的规范化实质上就是概念的单一化。

11.关系模型的完整性规则

为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:

1、 实体完整性: 是指主码的值不能为空或部分为空;(2分)

2、 参照完整性: 如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值,或者取空值;(3分)

3、 用户定义的完整性:用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。

12.关系模式的水平分解和垂直分解

  • 水平分解是把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统效率。

  • 垂直分解是把关系模式R的属性分解为若干集合,形成若干子关系模式,其原则是经常在一起使用的属性从R中分解出来形成一个子关系模式。

13.事务以及事务的四个基本特征

事务是恢复和并发控制的基本单位。是用户定义的一个数据库操作序列(1分),它具有原子性(1分)、一致性(1分)、隔离性(1分)和持续性(1分)。

14. 数据库恢复子系统,功能

因为计算机系统中硬件的故障,软件的错误,操作员的失误以及恶意的破坏是不可避免的,因此数据库必须有自己的恢复子系统。其是数据库操作管理系统的一个重要组成部分,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标

15.日志文件

用来记录事务对数据库所作的更新操作的文件。日志文件有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。日志文件用来进行事务故障恢复和系统故障恢复,并协助后援副本进行介质故障恢复。

16.日志文件作用

日记文件在数据库恢复中起着非常重要的作用,其主要有以下三个作用:

一,事务故障恢复和系统恢复必须用日志文件,

二,在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库

三,在静态存储方式中也可以建立日志文件

17.恢复的实现技术P282

主要有数据转储和登记日志文件。

18.基本锁的类型和相容矩阵P295

排它锁(读锁)和共享锁(写锁)

19.并发控制子系统作用和特点P293

20.封锁 基本的封锁类型有几种

  • 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。(2分)

  • 基本封锁类型:排它锁和共享锁。

  • 排它锁又称为写锁:若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁(1分)

  • 共享锁又称为读锁:若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。(1分)

21.二段锁协议和可串行化调度

  • 两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。

1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;

2)在释放一个封锁之后,事务不再申请和获得任何其他封锁。

“两段”的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务释放已经获得的锁,但是不能再申请任何锁(2分)。

  • 可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度(1分)。

22.数据模型及其要素

数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件(1分)。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 (1)数据结构(1分):是所研究的对象类型的集合,是对系统的静态特性的描述。 (2)数据操作(1分):是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 (3)数据的约束条件(1分):是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

SQL语句练习

1、(6分)

(3分) 分别用关系代数和SQL语言查询至少选修了一门其直接先行课为5号课程的学生姓名

πSname(σCpno='5'(Course imgSC img Student))

或πSname(σCpno='5'(Course) img SC imgπSno,Sname(Student))

或πSname (πSno (σCpno='5' (Course)imgSC)imgπSno,Sname (Student))

(3分) 分别用关系代数和SQL语言查询至少选修了一门其直接先行课为5号课程的学生姓名

SELECT Sname FROM Course,SC,Student

WHERE Course.Cno = SC,Cno And Student.Sno = SC.Sno And

Course.Cpno = ‘5’;

2、(3分)假设每个职工可以在多个公司工作,用SQL语言查询每个职工的兼职公司的数目和工资总数,

显示为:E#,NUM,SUM_SALARY。

SELECT E#,COUNT(*) NUM ,SUM(SALARY) SUM_SALARY

FROM WORKS

GROUP BY E#;

3、(3分) 用SQL语言查询联华公司中低于本公司平均工资的职工的工号和姓名。

​ SELECT EMP.E#,ENAME

​ FROM EMP,COMP,WORKS

​ WHERE COMP. C#= WORKS. C#AND

EMP.E#=WORKS.E# AND

​ CNAME=’联华’ AND

SALARY<(SELECT AVG(SALARY)

FROM WORKS

WHERE C# =(SELECT C#

​ FROM

​ WHERE CNAME=’联华’)) ;

4、(3分) 用SQL语言为50岁以上的职工加薪300元。

UPDATE WORKS

SET SALARY=SALARY+300

WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);

5、(3分)创建视图,要求包括属性:职工姓名、工作的公司名称、工资、公司所在的城市。

CREATE VIEW V_EMP

AS SELECT ENAME,CNAME,SALARY,CITY

​ FROM EMP,WORKS,COMP;

​ WHERE COMP. C#= WORKS. C#AND

EMP.E#=WORKS.E# ;

6、(3分)给用户张大为授予对职工表的查询权限和对工作表中工资属性的更新权限

GRANT SELECT,UPDATE(AGE)

ON TABLE EMP

TO 张大为;

GRANT SELECT,UPDATE(SALARY)

ON TABLE works

TO 张大为;