数据库原理复习

数据库原理复习

填空题:

绪论

  • 数据的独立性包括  数据的物理独立性     和  数据的逻辑独立性

  • 数据模型有两种类型: 概念数据模型 和   基本数据模型

  • 数据的物理独立性是指当数据的 存储结构(或内模式) 改变时,通过系统内部的自动映象功能或转换功能,保持了数据的 全局逻辑结构(或模式) 不变

  • 一个关系模型由若干个 关系模式 组成

  • 关系数据模型由关系数据结构、关系操作和 关系完整性约束 三部分组成。

  • 数据库系统中最重要的软件是 数据库管理系统(DBMS) ,最重要的用户是 数据库管理员(DBA)

  • 关系操作的特点是 集合 操作。

  • 数据管理经历了人工管理阶段、文件系统阶段、 数据库管理系统阶段   三个阶段。

  • 数据模型由数据结构、数据操作和 完整性约束 三部分组成。

  • 数据抽象主要有分类和 聚集 两种。

  • 在一个关系模式中,若一个属性或属性组K完全函数决定整个元组,则称K为该关系的一个 候选关键字

  • 分布式数据库___是一个逻辑上统一、地域上分布的数据集合

  • 关系中能唯一标识元组,且又不含多余属性称为___候选键。

  • 描述实体的特性称为 属性。

  • 一个关系模式中包含有若干个 属性 ,其数目多少称为关系的 元数

  • 面向对象数据库(OO)的   封装性  和  继承性   的特点,提高了软件的可重用性

  • 数据字典中的__数据项_____是不可再分的数据单位。

  • 数据字典通常包括数据项、数据结构、数据流___、数据存储和处理过程五个部分。

  • 数据库系统由硬件系统 DBMS 数据库集合、数据库管理员和用户组成。

  • .关系中的属性或属性组合,其值能够唯一地标识一个元组,该属性或属性组合可选作为 键

  • 当数据的存储结构改变时,通过对映象的相应改变可以保持数据的逻辑结构
    不变。这称之为数据的__物理独立性

SQL

  • SELECT语句查询条件中的谓词“!=ALL”与运算符 NOT IN 等价

  • SQL语言具有对数据的定义 查询 操纵 控制等四个方面的功能

  • 选择运算的结果关系同原关系具有 相同 的结构框架,投影运算的结果关系同原关系通常具有 不同 的结构框架

  • 关系模型中关系代数是用   对关系的运算     来表达查询要求的方式

  • 数据库中专门的关系运算包括选择 投影 连接三种

  • SQL中,定义事务通常以 BEGIN TRANSACTION    开始,COMMINT表示   提交     ,ROLLBACK表示    回滚

  • 为了使通过视图插入新行时,元组满足视图的定义条件, 在定义视图时必须加上__ WITH CHECK OPTION ___________子句

  • 属性的取值范围称为该属性的 域

  • 关系运算包括两类:一类是传统的 集合 运算,另一类是专门的 关系 运算。

  • 在SQL所支持的数据库系统的三级模式结构中,视图属于 外模式 ,基本表属于 模式

并发控制篇:

  • 并发操作带来的不一致性:丢失修改,不可重复读,读脏数据。

  • 事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件

  • 可串行性 是并发事务正确性的准则。

  • 事务 是DBMS的基本单位,是用户定义的一个数据库操作序列

  • 并发控制的主要方法是 封锁 机制。

  • 故障分为事务故障、 系统故障 和介质故障三种。

数据库安全性篇:

  • 角色是权限的集合。
  • 在数据库中,只存放视图的 定义 ,不存放视图对应的数据。
  • 备份的类型有: 双机热备份   、双工备份 磁盘镜像 数据库备份技术。
  • 为防止数据在存储和传输中失密,根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。此种技术称为数据加密

数据库完整性篇:

  • 数据库的完整性是指数据的正确性和相容性。(一致性)
  • 数据库的完整性约束条件是数据库中的数据应该满足的语义约束条件
  • 关系数据库的实体完整性规则规定基本关系的 主属性,空值

数据库设计篇

  • 分E-R图之间的冲突主要有属性冲突、 命名冲突 、结构冲突三种。

  • 在概念结构设计中先,定义全局概念结构的框架,然后逐步细化。这种方法称为
    __自顶向下方法

  • 采用关系模型的逻辑结构设计将经过导出初始关系模式 、进行规范化处理 和模式评价与修正等三个步骤

  • 采用关系模型的逻辑结构设计的任务是将E-R图转换成一组 关系模式 ,并进行 规范化 处理。

  • 在关系数据库设计中,设计关系模式是数据库设计中( 逻辑设计 )阶段的任务(E-R图转换为关系模式)

关系规范化:

  • 对于属性X的每一个具体的值,属性Y有唯一的具体的值与之对应,则称Y 函数依赖于X,记作 X→Y ,X称为决定因素。

  • 设X→Y是关系模式R的一个函数依赖,并且Y是X的子集,则称X→Y是 平凡函数依赖 。

  • 一个关系模式为Y(X1,X2,X3,X4),假定该关系存在如下函数依赖:X1←→X2,X1→X3,X1→X4,则该关系属于 BCNF 。

  • 假定一个E-R图包含有A实体和B实体,并且从A到B存在着1∶n的联系,则转换成关系模型后,包含有 3 个关系模式。

  • 假定一个E-R图包含有A实体和B实体,并且从A到B存在着1∶n的联系,则转换成关系模型后,包含有 2 个关系模式。

  • 假定一个E-R图包含有A实体和B实体,并且从A到B存在着m∶n的联系,则转换成关系模型后,包含有 3 个关系模式

  • 设X→Y是关系模式R的一个函数依赖,并且Y不是X的子集,则称X→Y是 非平凡函数依赖

  • 如果属性X和Y是1∶1的联系,则称X和Y之间的依赖关系为 相互函数依赖 ,记作
    X←→Y

  • 包含在任何一个候选关键字中的属性称为 主属性 ,不包含在任何一个候选关键字中的属性称为 非主属性

数据库恢复技术:

  • 恢复的实现技术有:  数据转储     和   登录日志文件   。

简答题:

函数依赖都是非平凡的,且决定因素都是候选码

当违反完整性约束条件时,一般是如何处理的

  • 实体完整性和用户定义的完整:拒绝执行
  • 参照完整性:根据应用语义执行一些附加操作,以保证数据库的正确性。例如拒绝执行,级联操作,设置为空值。

1.简述三级封锁协议的内容

  • (1) 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议能够解决“丢失修改”问题。

  • (2) 二级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁 ,读完后即可释放S锁。二级封锁不仅可以解决“丢失修改”问题,而且可以解决读“脏“数据问题。

  • (3) 三级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题。

试比较文件系统和数据库系统的特点?

  • 文件系统和数据库系统所处理的数据都可长期保存,反复操作。

  • 文件系统中文件内部具有结构,但数据文件之间的联系无法定义;数据库系统既可结构化局部数据,也可定义全局的数据结构。

  • 文件系统的应用程序与数据之间有了一定的独立性;而数据库系统通过两方面的映象功能,使数据具有物理独立性和逻辑独立性。

  • 文件系统的数据共享性较差,冗余度高,数据是面向程序的;数据库系统的数据是面向全局的,共享性好,冗余度低。

  • 数据库系统的数据由DBMS统一管理和控制,有较好地控制数据安全性、完整型、并发管理、数据库恢复等。

DBA的主要职责是什么?

  • 数据库管理员(DBA)负责全面和控制数据库系统,其主要职责有:

  • 设计与定义数据库系统;
    
  • 帮助最终用户使用数据库系统;
    
  • 监督与控制数据库系统的使用和运行;
    
  • 改进和重组数据库系统,调优数据库系统的性能;
    
  • 转储与恢复数据库;
    
  • 重构数据库。
    

数据依赖对关系模式的影响?

  • 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。

  • 函数依赖是数据依赖的一种类型。

  • 部分函数依赖、传递函数依赖会导致关系模式中的更新异常、插入异常、删除异常、数据冗余等问题。

什么是事务?它有哪些属性?

  • 事务是用户定义的一个操作序列,这些操作要么全做要么全不做,事务是一个不可分割的工作单位。事务具有四个特性:原子性、一致性、隔离性和持续性。

简述关系的性质?

  • ① 同一列中的分量是同一类型的数据。 不同列可以取相同的数据类型。

  • ② 关系中的列又称为属性,并赋予属性名。不同列的属性名不同。

  • ③ 列的次序可以任意交换。

  • ④ 任意两个元组不能完全相同。

  • ⑤ 行的次序可以任意交换。

  • ⑥ 列具有原子性,即每一列值是不可分的数据项

数据库系统的特点:

  • 1) 数据结构化
  • 2) 数据的共享性高、冗余度低且易扩展
  • 3) 数据独立性高(物理独立性和逻辑独立性)
  • 4) 数据由数据库管理系统统一管理和控制

唯一性约束和主键约束的区别:

  • 唯一性约束允许在该列上存在NULL值,而主键约束的限制更为严格,不但不允许有重复,而且也不允许有空值。
  • 在创建唯一性约束和主键约束时可以创建聚集索引和非聚集索引,但在 默认情况下主键约束产生聚集索引,而唯一性约束产生非聚集索引。

关系模型的参照完整性规则:

  • 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。

等值连接与自然连接的区别和联系:

  • 连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,即等值连接为:R∞S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}

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

视图与基本表的区别和联系:

  • 视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也就随之改变。视图一经定义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但是对视图的更新操作有限制。

数据、数据库、数据库管理系统、数据库系统的概念:

  • 数据:描述事物的符号记录。是数据库中存储的基本对象

  • 数据库:长期存储在计算机内的、有组织的、可共享的大量的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并为各种用户共享。

  • 数据库管理系统:是用来科学的组织和存储数据,高效的获取和维护数据,是位于用户与操作系统之间的具有数据定义、数据操纵、数据库的运行管理、数据库的建立和维护功能的一层数据管理软件。

  • 数据库系统:一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

登记日志文件必须遵守的原则:

  • (1)登记的次序严格按并发事务执行的时间次序。
  • (2)必须先写日志文件,后写数据库。

事务的特性

  • 1.原子性:事务中包括的所有操作要么都做,要么都不做。

  • 2.一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。

  • 3.隔离性:一个事务内部的操作及使用的数据对并发的其他事务是隔离的。

  • 4.持续性:事务一旦提交,对数据库的改变是永久的。

故障的种类以及恢复策略

  • 故障共分为四类:事务故障,系统故障,介质故障,计算机病毒。

数据库设计的基本步骤

  • 1.需求分析阶段:进行数据库的设计首先必须准确了解与分析用户的需求,是整个设计过程的基础。

  • 2.概念结构设计阶段:是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。

  • 3.逻辑结构设计阶段:是将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。

  • 4.物理结构设计阶段:是为逻辑结构模型选取一个适合应用环境的物理结构,包括存储结构和存取方法。

  • 5.数据库的实施阶段:设计人员运用数据库管理系统提供的数据库语言及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写和调试应用程序,组织数据入库,并进行试运营。

  • 6.数据库的运行和维护阶段:数据库应用系统经过试运行即可投入正式运行,在其运行过程必须不断对其进行评估、调整和修改

数据库运行和维护的几个方面

  • 1.数据库的转储和恢复

  • 2.数据库的安全性、完整性控制

  • 3.数据库性能的监督、分析和制造

  • 4.数据库的重组织和重构造

为维护数据库完整性,数据库管理系统必须实现的功能:

  • 1.提供定义完整性约束条件的机制:

  • 2.提供完整性检查的方法:

  • 3.进行违约处理:

数据库安全技术有哪些

  • 1.用户身份鉴别:

  • 2.存取控制:

  • 3.视图:

  • 4.审计:

  • 5.数据加密:

视图的作用

  • 1.视图能够简化用户的操作:

  • 2.视图能够使用户以多种角度看待同一数据:

  • 3.试图对重构数据库提供了一定程度的逻辑独立性:

  • 4.试图能够对机密数据提供安全保护:

  • 5.适当的利用视图可以更清晰的表达查询:

SQL语言的特点:

  • 1.综合统一:SQL语言是集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一,可以独立的完成数据库生命周期内的所有活动。

  • 2.高度非过程化:SQL语言进行数据操作时,只要提出“干什么”,无需指明“怎么做”,因此无需了解存取路}径。存取路径的选择以及SQL的操作过程由系统自动完成。

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

  • 4.以同一种语法结构提供多种操作方式:SQL语言既是独立的语言,又是嵌入式的语言。作为独立的语言,它能够独立的用于联机交互的使用方式,用户可以从键盘输入SQL命令对数据库进行操作;作为嵌入式语言,它可以嵌入到高级程序语言中,供程序员使用。而在两种使用方式下,SQL语言的语法结构基本上是一致的。

  • 5.语言简洁,易学易用:SQL功能极强,但由于设计巧妙,语言十分简洁,完成核心功能只需用到9个动词。

数据库管理系统(DBMS)的功能:

  • 1.数据定义功能:数据库管理系统提供数据定义语言,用户可以通过它方便的对数据库中的数据对象的组成与结构进行定义。

  • 2.数据操纵功能:数据库管理系统提供数据操纵语言,用户可以通过它操纵数据,实现对数据库的基本操作,增删改查。

  • 3.数据组织、存储和管理:数据库管理系统要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。

  • 4.数据库事务管理和运行管理:数据库在建立、运行和维护时由数据库管理系统统一管理和控制,以保证事物的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生后故障后的系统恢复。

  • 5.数据库的建立和维护功能:数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。

设计题操作:

表的基本操作:

约束:

链接地址

mysql 表基本操作(创建表、添加主键、外键、非空约束、唯一性约束、默认约束、自动增加)
外键约束:
froeign key (sno) references student(sno);
删除表;
drop table student cascade;
插入数据:
  insert into student values
    ('student01',18,'男',80),
    ('student02',19,'女',96),
    ('student03',18,'女',85);
---若字段为空,则插入时默认为空,要写字段名:
insert into
SC(sno,cno)
values('219192111','1');
---或者
insert into
values('2012882','1',NULL);
删除数据:
delete from SC
where <条件>;
修改数据:
---修改单个元组
update SC
set sage=20
where sno='2021317220716';
---修改多个元组
update SC
set sage=sage+1;
当修改和删除操作设计两张表时,就不能再用where了,使用in或者not in
---将计算机科学系全体学生的成绩置零
update SC
set grade=0
where sno in(select sno from student where sdept='CS');

完整性约束命名子句:

create table student(
	sno numeric(6)
    constraint c1 check(sno between 90000 and 99999),
    sname char(20)
    constraint c2 not null,
    sage numeric(3)
    constraint c3 check(sage<30),
    ssex char(2)
    constraint c4 check(ssex in ('男','女')),
    constraint studentKey primary key(sno)
)

视图:

-- 创建视图,查询每门课的授课老师
create view View_TeacherCourse -- view 视图关键字
(课程名称,老师姓名) -- 列
as
select CourseInfoName,TeachInfoName
from dbo.CourseInfo a join dbo.TeachCourse b join dbo.TeachInfo c
on b.TeachCourseID = c.TeachInfoID
on a.CourseInfoID = b.CourseInfoID

-- 查询视图
select * from dbo.View_TeacherCourse

-- 修改视图
alter view View_TeacherCourse 
(课程名称,老师姓名,职称) -- 列
as
select CourseInfoName,TeachInfoName,TeachInfoKnow
from dbo.CourseInfo a join dbo.TeachCourse b join dbo.TeachInfo c
on b.TeachCourseID = c.TeachInfoID
on a.CourseInfoID = b.CourseInfoID

-- 删除视图
drop view View_TeacherCourse

-- 查看视图的定义|语法
exec sp_helptext View_TeacherCourse;

审计:

-- 对修改表结构或修改SC表数据的操作进行审计
audit alter,update
on sc;
-- 取消对SC表的一切审计
noaudit alter,update
on sc;

角色:

create role R1;
grant select,update,insert on table student to R1;
grant R1 to 王平,张明;
revoke R1 from 王平;
grant delete on table student to R1;
revoke select on table student from R1;

索引:

create unique index 名称 on student(sno); // 创建
create clusted index stu on student(sno);
create unique index 名称 on student(sno asc,cno desc);
alter index name1 rename to ssno; // 索引改名
drop index sno; //删除索引

模式

create schema <模式名> autohorization <用户名>;
set search_path to "S-T",public; //管理员设置搜索路径

修改基本表

alter table student
      add <新列名> DATE;             // 添加新列
      drop <列名> numberic(10,2);   // 删除列名
      alter column <列名> int;      // 修改列的约束
      add unique(cname);           // 添加列的唯一性约束
      drop constraint unique(n1);  // 删除列的约束
      drop constraint 约束名;
      add constraint 约束名 check(sno between 9000 and 9999),
      add constraint 约束名 unique(sno);

alter table student
      add col1 date
      alter column sage smallint;
      add unique(cname);

授权机制

---grant update (budget) on table department to U1;
---grant select on table department to U1 with grant option;
---grant all privileges on table SC to U1,U2;
---grant delete on table SC to public;
---revoke update (budget) on table department from U1;
---revoke grant option, select on table department from User_1; //收回授权权限:

断言:

-- 限制每一门课程最多60名学生选修

create assertion a1
check(60>=all(select count(*) from sc group by cno));
-- 限制每学期每一门课程最多60名学生选修

alter table sc add term date;
create assertion a2
check(60>=all(select count(*) from sc group by cno,term));

-- 删除断言
drop assertion a1;

触发器;

lower()函数

select Lower(scname) from student;

distinct

like not like

select scname,sno from student
where scname like '_阳%';
易错:没有is like和is not like
// 转义
where scname like 'DB\_%i_ _' escape '\';

Union,interselect,except.

自身连接

-- 查询每一门课的间接选修课
select a.cno,b.cno
from course a,course b
where a.cpno=b.cno;

--  查询与刘晨在同一个系中学习的学生
select s1.sno,s1.sname,s1.sdept
from student s1,student s2
where s1.sdept=s2.sdept and s2.sname='刘晨';

基于派生表的查询

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值