复习资料

《数据库技术》复习

 

第一章

基本概念:

关系数据模型

是由若干个关系模式组成的集合。

关系模式

关系模式的实例称为关系,每个关系可以看成由行和列交叉组成的二维表格,表中的一行称为一个元组,可以用来标识实体集中的一个实体。(实体:实际存在的个体。)

关系

表中的列称为属性,列名集属性名,表中的属性名不能相同。列的取值范围称为域,同列具有相同的域,不同的列也可以有相同的域。

性质:表中的任意两行(元组)不能相同。

属性值具有原子性,不可分解。

没有重复的元组。

理论上没有行序,但是有时候使用时可以有行序。

主键

能唯一标识表中不同行的属性或属性组称为主键。

关系完整性

关系模型的完整性规则是对数据的约束。

  1. 实体完整性,这是指关系的主属性不能为空值。空值就是指不知道或是不能使用的值,并不是指空字符串。
  2. 参照完整性,如果关系的外键R1与关系R2中的主键相符,那么外键的每个值必须在关系R2中主键的值中找到或者是空值。
  3. 用户定义完整性,针对某一具体的实际数据库的约束条件。它由应用环境决定,反映某一具体应用所涉及的数据必须满足要求。关系模型提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理,而不必由应用程序承担这一功能。

范式理论

范式是设计数据库时所遵循的规则,主要用于消除数据库表中的冗余数据,改进数据库整体组织,增强数据的一致性,增加数据库设计的灵活性。

第一范式:如果关系模式R的每个关系r的属性都是不可分的数据项,那么就称R是第一范式的模式。即列不可再分。

第二范式:如果关系模式R是第一范式,且每个非主属性完全函数依赖于候选键,那么就称R是第二范式的模式。即属性依赖。

第三范式:如果关系模型R是第二范式,且关系模型R(U,F)中的所有非主属性对应任何候选键都不存在传递依赖,则关系R是属于第三范式的模式。即非依赖传递。

考试内容主要以选择题、问题分析题为主。

例如:

①范式是设计数据库时所遵循的规则,如果学生表的联系方式属性列即有手机号又有邮箱,则认为学生表是不符合【 A 】。

A.第一范式           B. 第二范式     C. 第三范式          D. 第四范式

②关系模型中为了保证对数据的约束,提供了相应的规则,请简述这些规则是如何约束关系模型的完整性的。(见关系完整性)

 

第二章

基本概念:

物理存储结构(包括哪些文件,各自作用是什么)

存在磁盘中的操作系统文件所组成,包括数据文件(*.dbf)控制文件(*.ctl)和重做日志文件(*.log)。

数据文件:指存储数据库数据的文件。

控制文件:很小的二进制文件,用于描述和维护数据库的物理结构。

重做日志文件:是记录数据库中所有修改信息的文件。

逻辑存储结构(组成及其关系)

主要包括表空间、段、区和数据块。

一个数据库由一个表空间组成;一个表空间由一个或多个段组成;一个段由一个或多个区组成;一个区由一个或多个数据块组成。

表空间的大小等于构成该表空间的所有数据文件大小的总和。表空间用于存储用户在数据库中创建的所有内容。

段视为一个单位的数据库对象,例如表或索引。段是数据库终端用户将处理的最小存储单位。

区是磁盘空间分配的最小单位。

数据块是用来管理存储空间的最基本单位。

Oracle的进程结构(包括哪些,各自作用)

DBWn进程 (Database Writer 数据库写入):将数据库缓冲区中的数据写入数据文件的进程。

LGWR进程(Log Writer 日志写入):负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中。

CKPT进程(Check Point 检查点):一般在发生日志切换时自动产生,用于缩短实例恢复所需的时间。

SMON进程(System Monitor系统监控):用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复。

PMON进程(Process Monitor 进程监控):用于在用户进程出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。

ARCn进程(Archive Process 归档):用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。

RECO进程(Recovery 恢复):进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。

Oracle的内存结构

系统全局区是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。包含数据缓冲区,日志缓冲区, 共享池,大型池,Java池等。

程序全局区是Oracle系统分配给一个进程的私有内存区域。通过SHOW PARAMETER查看该参数的信息。

数据字典

是由Oracle自动创建并更新的一组表,它是Oracle数据库的重要组成部分,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。数据字典的所有者为sys用户,而数据字典表和数据字典视图都被保存在system表空间里。

 

 

 

考试内容主要以选择题、问题分析题为主。

例如:

  • 请简述Oracle数据库保存在物理介质上的文件有哪些,其作用是什么?

数据文件,控制文件,日志文件。

   数据文件:指存储数据库数据的文件。

   控制文件:很小的二进制文件,用于描述和维护数据库的物理结构。

   重做日志文件:是记录数据库中所有修改信息的文件。

  • 试分析Oracle的逻辑存储结构的组成。

一个数据库由一个表空间组成;一个表空间由一个或多个段组成;一个段由一个或多个区组成;一个区由一个或多个数据块组成。

③当系统突然掉电时,以下哪个对象的数据不会丢失?【 D 】

A. 数据缓冲区      B. 共享池             C. 日志缓冲区             D. 日志文件

④下面哪个进程负责将日志缓冲区中的日志数据写入磁盘的日志文件【 B 】

A. DBWn进程                  B. LGWR进程       C. CKPT进程                 D. SMON进程

⑤下面关于数据字典的说法,错误的是【 C  】。

A. 数据字典是由Oracle自动创建并更新的一组表

B. 数据字典的所有者为sys用户

C. 数据字典可以读写,用户可以更改其中的数据信息和结构

D. 数据字典提供了数据库结构、数据库对象空间分配和数据库用户等有关信息。

⑥对于创建好的表,如果想要了解其信息,可以查询数据字典【 C 】

A. user_functions                                B. user_source    

C. dba_tables                                      D. user_files

⑦P37三、1、2;P36 二、1、3、5

  1. 下面对数据文件的叙述中,正确的是( C )
  1. 一个表空间只能对应一个数据文件
  2.  一个数据文件可以对应多个表空间
  3.  一个表空间可以对应多个数据文件
  4. 数据文件存储了数据库中的所有日志信息
  1. 下面哪种后台进程用于将数据缓冲区中的数据写入数据文件?( B )

A.LGWR    B. DBWn   C. CKPT  D.ARCn

3.  解析后的SQL语句会缓存在SGA的哪个区域中?( C )

    A. Java池  B.大型池  C.共享池  D.数据缓冲区

 

 

 

 

 

 

 

 

 

 

 

 

第三章

掌握SQL*Plus的基本命令,describe、save、get、start、edit、spool

DESCRIBE:可以返回数据库中所存储的对象的描述。可以列出各个列以及各个列的属性。

SAVE:可以将当前缓冲区的内容保存到文件中。

save file_name(无法保存到没有创建的文件)

GET:读取文件内容到缓冲区(不执行)

GET file_name

START:读取文件中的内容到缓冲区(然后在SQL*plus中运行这些内容)

EDIT:将缓冲区中的内容复制到一个名为afiedt.buf(默认)文件中。

SPOOL:将SQL*plus中的输出结果复制到一个指定文件中(屏幕录制)

SPOOL file_name   结束 SPOOL OFF

考试内容主要以选择题为主。

例如:

  • P62二、3,5;三、1,

 

第四章

基本概念:表空间

P63-66表空间的创建语法,重点掌握例4.1

考试内容主要以选择题、问题分析题为主。

例如:

  • P86 二、4、5;P87三、5

 

第五章

表的创建和修改、完整性约束、索引的概念、视图的创建、序列的创建和使用。

考试内容主要以选择题、操作题、程序题为主。

例如:

①Oracle中视图的定义是【  】

A. 一个基表中导出的基表

B. 一个基表中导出的虚表

C. 一个或几个基表或视图中导出的基表

D. 一个或几个基表或视图中导出的虚表

②根据如下所示内容,写出表创建语句,注意属性的数据类型及表的完整性约束。

序号

列名

含义

数据类型

长度

约束

1

CID

课程号

字符型(char)

4

主键

2

cname

课程名

字符型(varchar)

20

非空

3

Cfen

学分

整数(number)

 

范围【1,10】

 

成绩表sc(学号sno,课程号cno,成绩grade)

 

具体示例可以参看P107页

注意建表时,性别的约束,外键的约束。

学分范围的约束:check(cfen>=0 and cfen<=100)

多个属性构成主键的写法:constraint PK_SC primary key(sno,cno)

P91-92页示例,表的属性列添加,删除等操作

③创建视图V_Student,要求列名用中文名称(学号,姓名, 性别,年龄), 视图返回的成绩在80分以上的学生。

视图的创建P113-115

④P124二、5,6;

 

第七、八章

重点:数据库的增、删、改、查,select的语法及其各个子句,事务的概念和提交回滚;子查询和高级查询(主要是2个表的高级查询)。

考试内容主要以选择题、操作题、程序题为主。

例如:

  • 请查询emp表中员工人数大于3的部门编号和人员数。
  • 向sc表插入一条记录(1001,1000,79)
  • SQL语句将为计算列SAL*12生成别名Annual Salary语句正确的是【 】
  1. SELECT ename,sal*12 ‘Annual Salary’ FROM emp;
  2.  SELECT ename,sal*12 ”Annual Salary” FROM emp;
  3.  SELECT ename,sal*12  as  Annual Salary FROM emp;
  4. SELECT ename,sal*12 is  Annual Salary  FROM emp;
  • 修改emp表中smith所在部门编号为200
  • 查询工资在3000-5000的员工姓名和ID号
  • 查询工资高于Smith的所有员工
  • 查询所有男员工的信息。
  • 查询每个部门工资最高的员工信息。
  • P169二、1-5;三1,5;P195三、2,4,5;

 

第九章

PL/SQL程序的基本语法(变量定义、条件选择语句、循环语句),能够读懂程序。了解异常的概念。

考试内容主要以选择题、操作题、程序题为主。

例如:

  • 阅读如下程序,给出程序运行结果

declare

a number:=100;

b number:=10;

begin

              if a>10 then

                     b:=20;

              elsif a>40 then

                     b:=30;

              else

                     b:=50;

              end if;

              dbms_output.put_line(b);

end;

  •  请根据成绩分数给出优良中差的输出结果,P206
  • PL/SQL程序设计中,抛出异常的字句是【   】

A. throw          B. throws         C. raise         D. cast

④P220二、2,3,4,;三、2

 

第十章

存储过程的定义与调用(in和out参数的概念),函数的定义与调用,存储过程与函数的区别,触发器的定义与概念

考试内容主要以选择题、问题分析题、操作题、程序题为主。

例如:

  •  定义了一个存储过程create or replace procedure getsum(pid in number),下列执行该存储过程的语句正确的是【 】
  1. Exec getsum(pid=100) 
  2. Execute getsum
  3. Exec getsum(1000)
  4. Exec getsum(pid->19)
  • 创建一个存储过程,可以根据学号,查询该学生的成绩,并输出成绩等级。
  • 给出调用上述存储过程的语句
  • 定义触发器的语句是什么?
  • P242 二、1、2、3、4;三1,2;

 

第十二章

用户、角色的创建与管理,权限授予的基本语法

考试内容主要以选择题、问题分析题、操作题为主。

例如:

  • 创建用户yang,密码为1234
  • 创建角色teacher,并将角色分配给用户yang
  • 将emp表的查询权限赋给yang,并允许其将权限传播给其他用户
  • P285二、5;三、1,2;

 

 

 

请仔细理解书上例题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值