2023年数据库基础教程期末考试简答与实践考点版_第1页
2023年数据库基础教程期末考试简答与实践考点版_第2页
2023年数据库基础教程期末考试简答与实践考点版_第3页
2023年数据库基础教程期末考试简答与实践考点版_第4页
2023年数据库基础教程期末考试简答与实践考点版_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章模式对象重点数据是描述事物的符号,是数据库中存储的基本对象。在计算机中,用记录的形式来描述数据。数据与数据的解释即数据的语义是紧密结合的。数据库是指按一定的数据模型组织、描述和存储的数据的集合。数据库管理系统是位于操作系统与用户之间的一层数据管理软件。数据库系统是指数据库、数据库管理系统与计算机系统的结合。通常,在不引起混淆的情况下将数据库系统简称为数据库。数据库管理系统的重要功能涉及:数据定义、数据操纵、数据库运营与控制、数据库建立与维护、数据字典定义以及数据通信等。数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译解决层、数据存取层、数据存储层、操作系统以及数据库组成。数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。概念模型是用简朴、清楚、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。关系数据库的完整性约束涉及三类:实体完整性、参照完整性和用户定义完整性。

实体完整性:是指关系中必须定义主键,以惟一的拟定一个元组。主键由一个或多个属性构成,其取值惟一且不能为空(NULL)。参照完整性:在关系模型中,通过外键来表达表之间的联系。参照完整性是指一个表中的外键的取值必须是参照表中主键存在的值或为空(NULL)。例如,学生信息表中“班号”属性为外键,其取值必须是班级信息表中“班号”属性的某一个值或为空。

用户定义完整性:是指用户根据特定应用情况,设定一些约束,反映某一具体应用所涉及的数据必须满足的语义规定。例如,“性别”属性的域为“男、女”。Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。其中物理存储结构描述了操作系统层次数据的存储与管理,涉及数据文献、日记文献、重做日记文献等组成。逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成。实例是数据库运营的软件结构,由内存结构和后台进程组成。数据库运营过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。关系模式如下:

教师(教师号,姓名,性别,出生日期,系,职称,课程号)

课程(课程号,课程名,学分)

学生(学号,姓名,性别,年龄,班级,系)

学习(学号,课程号,成绩)文本初始化参数文献是一个本地的参数化文献,无论是启动本地数据库还是远程数据库,都需要读取一个本地化参数文献,并使用其中的设立来配置数据库实例。因此要启动远程数据库,则必须在本地的客户机中保存一份文本初始化文献的副本。本初始化参数文献的修改必须通过管理员手动进行。服务器初始化参数文献是一个保存在数据库服务器端的二进制文献。假如管理员需要远程启动数据库实例,并不需要在客户机中保存一份初始化参数文献副本,实例会自动从服务器中读取服务器初始化参数文献。保证同一个数据库的多个实例都具有相同的初始化参数设立;8、Oracle数据库物理存储结构涉及数据文献、控制文献、重做日记文献、初始化参数文献、归档文献、口令文献等。在控制文献中记录了当前数据库所有的数据文献的名称与位置、重做日记文献的名称与位置,以及数据文献、重做日记文献的状态等。9、数据文献中保存了数据库中的所有数据,涉及数据字典以及用户数据。10、控制文献保存数据库的物理结构信息,涉及数据库名称、数据文献的名称与状态、重做日记文献的名称与状态等。在数据库启动时,数据库实例依赖初始化参数定位控制文献,然后根据控制文献的信息加载数据文献和重做日记文献,最后打开数据文献和重做日记文献。11、重做日记文献是以重做记录的形式记录、保存用户对数据库所进行的修改操作,涉及用户执行DDL、DML语句的操作。假如用户只对数据库进行查询操作,那么查询信息是不会记录到重做日记文献中的。12、归档:数据库可以在崇左日记文献被覆盖之前将其内容保存到指定的位置,被保存的重做日记文献的集合称为归档重做日记,这个过程称为归档。归档是数据库恢复及热备份的基础。只用当数据库归档模式时,才可以进行热备份和完全恢复。进行归档设立涉及归档模式设立(ARCHIVELOG)、归档方式设立以及归档途径的设立等。

13、重做日记文献德工作方法:每个数据库至少需要两个重做日记文献,采用循环写的方式进行工作。当一个重做日记文献在进行归档时,尚有另一个重做日记文献可用。当一个重做日记文献被写满后,后台进程LGWR开始写入下一个重做日记文献,即日记切换,同时产生一个“日记序列号”,并将这个号码分派给即将开始使用的重做日记文献。当所有的日记文献都写满后,LGWR进程再重新写入第一个日记文献。1、

说明数据库逻辑存储结构的组成和互相关系。

Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分派单元,由若干个区形成的段是相同类型数据的存储分派区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。

(2)

说明数据库表空间的种类,以及不同类型表空间的作用。

数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间涉及撤消表空间、临时表空间和用户表空间等。

SYSTEM表空间重要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤消表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,并且可以减少读取数据文献时产生的I/O冲突。(3)

说明数据库、表空间、数据文献以及数据库对象之间的关系。

一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数据,表空间的大小决定了数据库的大小。一个表空间相应一个或多个数据文献,数据文献的大小决定了表空间的大小。一个数据文献只能从属于一个表空间。一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所相应的一个或多个数据文献中。

(4)

数据库表空间的管理方式有几种,各有什么特点?

数据库表空间的管理方式有两种:字典管理方式和本地管理方式。在字典管理方式下,表空间使用数据字典来管理存储空间的分派,当进行区的分派与回收时,Oracle将对数据字典中的相关基础表进行更新,同时会产生回退信息和重做信息。在本地管理方式中,区的分派和管理信息都存储在表空间的数据文献中,而与数据字典无关。

(5)

表空间管理时应考虑哪些问题?

表空间管理时,应当遵循以下原则:

将数据字典与用户数据分离;

将回退数据与用户数据分离;

将表空间的数据文献分散保存到不同的硬盘上;

为不同的应用创建独立的表空间。

(6)

运用手动管理方式,如何有效管理数据块的使用?

DBA可以运用手动管理方式,通过为段设立PCTFREE和PCTUSED两个参数来控制数据块中空闲空间的使用。

(7)

数据库中常用的段有哪几种,分别起什么作用?

根据存储对象类型不同,可以分为数据段、索引段、临时段和回退段四类。数据段用来存储表或簇的数据。索引段用来存放索引信息,涉及ROWID和索引键值。临时段用来保存SQL语句在解释和执行过程中所产生的临时数据。回退段用于保存数据修改之前的信息,涉及数据修改前的值及其位置,即记录数据库中所有事务修改之前信息的段。

(8)

说明回退段的作用,以及回退段的管理方式。

运用回退段中保存的信息,可以实现事务回滚、数据库恢复和数据的读一致性。回退段的管理有两种方式,即自动撤消管理和手动撤消管理。实训题

章101、建表:Create

table

class(

CNO

number(2)

primary

key,

CNAME

varchar2(20),

NUM

number(3)

)

;Create

table

student(

SNO

number(4)

primary

key,

SNAME

varchar2(10)

unique,

SAGE

number,

SEX

char(2),

CNO

number(2));Alter

table

student

add

constraint

fk_cno

foreign

key

(cno)

references

class(cno)

deferrable;外键约束Alter

table

student

add

constraint

ck_sage

check

(sage>0

and

sage<=100);检查约束alter

table

student

add

constraint

ck_stu

check(sex='M'

or

sex='F')modify

sex

default

'M';Create

unique

index

ind_cname

on

class(cname);

;唯一性约束Create

global

temporary

table

stu_trans

On

commit

delete

rows

as

Select

*

from

student;Create

global

temporary

table

stu_sess

On

commit

preserve

rows

as

Select

from

student;Create

table

student(

SNO

number(4)

primary

key,

SNAME

varchar2(10)

unique,

SAGE

number,

SEX

char(2),

CNO

number(2)

)

Organization

index;索引化表create

table

student_list(

sno

number(4)

primary

key,

sname

varchar2(10),sage

number,

sex

char(2),cno

number(2))

partition

by

list(sex)

(partition

man

values('M')

tablespace

orcltbs1,

partition

woman

values('F')

tablespace

orcltbs2)

;Create

sequence

sequ1

increment

by

2

start

with

10000

maxvalue

100000

nocycle;

序列Create

view

employee_v(empno,ename,mgr_no,mgr_name)

As

Select

e1.empno,e1.ename,e1.mgr,e2.ename

from

emp

e1

join

emp

e2

on

e1.mgr=e2.empno;视图CREATE

USER

usera_exer

IDENTIFIED

BY

usera

DEFAULT

TABLESPACE

USERS

QUOTA

10M

ON

USERS

ACCOUNT

LOCK;初始账户为锁定状态GRANT

CREATE

SESSION

TO

usera_exer

WITH

ADMIN

OPTION;

GRANT

SELECT

,UPDATE

ON

scott.emp

TO

usera_exer

WITH

GRANT

OPTION;为usera_exer授予权限并允许其将权限授予其他用户;严禁用户usera_exer将获得的CREATE

SESSION

权限再授予其他用户:REVOKE

CREATE

SESSION

FROM

usera_exer;

GRANT

CREATE

SESSION

TO

usera_exer;创建角色、授予权限:CREATE

ROLE

rolea;

CREATE

ROLE

roleb;

GRANT

CREATE

TABLE

TO

rolea;

GRANT

INSERT,UPDATE

ON

scott.emp

TO

rolea;

GRANT

CONNECT

,RESOURCE

TO

roleb;

屏蔽用户usera_exer的roleb角色:ALTER

USER

usera_exer

DEFAULT

ROLE

ALL

EXCEPT

roleb;(1)使用SQL命令创建一个本地管理方式下的自动分区管理的表空间USERTBS1,其相应的数据文献大小为20MB。

create

tablespace

USERTBS1

datafile

'd:\oracle\oradata\orcl\usertbs1.dbf'

size

50M

extent

management

local

autoallocate;

(2)使用SQL命令创建一个本地管理方式下的表空间USERTBS2,规定每个分区大小为512KB。

create

tablespace

USERTBS2

datafile

'd:\oracle\oradata\orcl\usertbs2.dbf'

size

50M

extent

management

local

uniform

size

512K;

(3)修改USERTBS1表空间的大小,将该表空间的数据文献修改为自动扩展方式,最大值为100MB。

alter

database

datafile

'd:\oracle\oradata\orcl\usertbs1.dbf'

autoextend

on

next

5M

maxsize

100M;

(4)

为USERTBS2表空间添加一个数据文献,以改变该表空间的大小。

alter

tablespace

USERTBS2

add

datafile

'd:\oracle\oradata\orcl\usertbs2a.dbf'

size

50M;

(5)

使用SQL命令创建一个本地管理方式下的临时表空间TEMPTBS,并将该表空间作为当前数据库实例的默认临时表空间。

create

temporary

tablespace

TEMPTBS

tempfile

'd:\oracle\oradata\orcl\temptbs.dbf'

size

20M

extent

management

local

uniform

size

16K;

(6)使用SQL命令对USERTBS1表空间进行联机和脱机状态转换。

alter

tablespace

USERTBS1

offline;

alter

tablespace

USERTBS1

online;

(7)创建一个回退表空间UNDOTBS,并作为数据库的撤消表空间。

create

undo

tablespace

UNDOTBS

datafile

'd:\oracle\oradata\orcl\undotbs.dbf'

size

20M;

alter

system

set

UNDO_MANAGEMENT=AUTO,UNDO_TABLESPACE=UNDOTBS

scope=both;

(8)删除表空间USERTBS2,同时删除该表空间的内容以及相应的操作系统文献。

drop

tablespace

USERTBS2

including

contents

and

datafiles;

(9)为USERTBS1表空间创建一个回退段,其中回退段的最优大小设立为2MB。

create

rollback

segment

undoseg

tablespace

USERTBS1

storage

(initial

100K

next

100K

optimal

2MB

minextents

20

maxextent

100);

(10)查询当前数据库中所有的表空间及其相应的数据文献信息。

select

tablespace_name,file_name

from

dba_data_files;实训:

(1)insert

into

emp(empno,ename,sal,deptno,hiredate)

values(1357,’oracle’,2050,20,TO_DATE(‘2023-5-10’,’YYYY-MM-DD’);

(2)select

ename,empno,sal,dept.deptno,dname,loc

from

emp

left

join

dept

on

emp.deptno=dept.depno

(3)select

ename,empno,sal,dept.deptno,dname,loc

from

emp

right

join

dept

on

emp.deptno=dept.deptno

(4)select

worker.ename,worker.empno,worker.sal,manager.ename,manager.empno,manager.sal

from

emp

worker,emp

manager

where

worker.mgr=manager.empno

and

worker.deptno=10

select

worker.ename,worker.empno,worker.sal,manager.ename,manager.empno,manager.sal

from

emp

worker

left

join

emp

manager

on

worker.mgr=manager.empno

(5)select

count(*)

,avg(sal)

from

emp

group

by

deptno

(6)select

*

from

emp

where

sal

any(select

avg(sal)

from

emp

group

by

deptno)

(7)select

*

from

emp

e

where

e.sal

>

(select

avg(sal)

from

emp

where

deptno=e.deptno)

8)查询工资高于本部门平均工资的员工的信息及其部门的平均工资:select

e.ename,e.empno,e.sal,e.deptno,s.avgsal

from

emp

e,(select

deptno

,avg(sal)

avgsal

from

emp

group

by

deptno)

where

e.sal>s.avgsal

and

e.deptno=s.deptno

select

*

from

emp

sal>any(select

sal

from

emp

where

deptno=20)(10)Select

job,

count(*),avg(sal)

from

emp

group

by

job

(11)select

deptno,job,count(*),

avg(sal)

from

emp

group

by

deptno,job

(12)select

*

from

emp

where

(sal,

nvl(comm.,0))

in

(select

sal,nvl(comm,0)

from

emp

where

deptno=10)

(13)select

from

emp

where

deptno

in

(select

deptno

from

emp

group

by

deptno

having

count(*)>5)

select

from

dept

where

deptno

not

in

(select

deptno

from

emp

where

sal<2023)

select

dept.deptno,dname,loc,ename,empno,sal

from

emp

,dept

where

emp.deptno=dept.deptno

and

deptno

not

in

(select

deptno

from

emp

where

sal<2023)

(16)select

*

from

dept

where

deptno

not

in

(select

deptno

from

emp

where

sal

not

between

2023

and

3000)

17select

*

from

emp

where

deptno

in

(select

distinct

deptno

from

emp

where

sal

between

2023

and

3000)

18select

detp.deptno,dname,loc

from

dept,

emp

worker,emp

manager

where

dept.deptno=manager.deptno

and

worker.mgr=manager.empno

(19)insert

into

emp(ename,empno,mgr,job,hirdate,sal,

comm.,deptno)

select

‘FAN’,8000,mgr,job,hirdate,sal,comm.,deptno

from

emp

where

ename=’SMITH’

(20)update

emp

e

set

sal=1000+(select

avg(sal)

from

emp

where

deptno=e.deptno)简答:数据库实例ﻩ是数据库系统的软件结构,由内存结构与后台进程组成,处在用户与物理数据库之间,实现对数据库的操作。SGA区由数据缓冲区、共享池、重做日记缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分派的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作重要在SGA区中进行。该内存区随数据库实例的创建而分派,随实例的终止而释放。PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分派的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小。数据库中有哪些类型的表?各有什么特性?在Oracle

数据库中,根据表生存周期不同,可以分为永久性表和临时表;根据表中数据组织方式不同,可以分为标准表、索引化表和分区表。索引化表是一种特殊的表,它按B树的结构来组织和存储数据,将表的数据和索引的数据存储在一起。分区表是将一个表提成若干个独立的组成部分进行存储和管理。表的约束涉及:

主键约束:定义了主键约束的列取值不能为空,也不能反复。

唯一值约束:定义了唯一值约束的列取值不能反复。

检查约束:定义了检查约束的列取值要满足检查条件。

外键约束:定义了外键约束的列取值要么是主表参照列的值,要么是空值。

空/非空约束:定义了非空约束的列取值不能为空。使用索引的优点和缺陷,索引如何工作?ﻩﻩﻩ在数据库中使用索引可以提高对表中数据的查询速度,但是,向表中插入数据需要更新索引,会影响更新速度。假如表建了索引,在有条件查询时,系统先对索引表进行查询,运用索引表可以找到相应记录的ROWID。索引建好后,由系统负责更新。Oracle数据库中权限有哪几种?Oracle数据库中权限有两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论