Oracle数据库应用开发——表空间与数据库模式对象的设计
程序员文章站
2022-04-21 16:30:24
...
Oracle数据库应用开发——表空间与数据库模式对象的设计
预 习 报 告
实验题目:表空间与数据库模式对象的设计
预习内容:
1.Oracle数据字典的名称由前缀和后缀组成 dba_:包含数据库奥例的所有对象信息 user_:记录用户的对象信息 all_:记录用户的对象信息及被授权仿问的对象信息
2.表空间:是Oracle数据库最大的逻辑存储单元,数据库的大小从逻辑上看由表空间决定的,所有表空间大小的和就是数据库的大小。 分为系统表空间和非系统表空间,系统表空间主要存放数据库的系统信息、,如 数据字典信息等,非系统表空间又分为撤销表空间、临时表空向、用户表空间等。
3.Oracle 数据库自动创建的表空向 system 系统表空间 temp 临时表空间 users 用户表空间
实验目的与要求(及主要实验仪器、设备):
1.掌握表空间的创建与管理
2.掌握表空间数据文件的管理
3.掌握默认表空间的设置
4.掌握数据类型的使用
5.掌握数据表的创建方法
6. 掌握用户的用法
7.掌握分析并设计表及约束的方法
8.理解和掌握索引、视图、序列的创建方法
本次实验采用的主要设备:自带电脑
实验原理(方法与与原理分析):
1.基本表空间一般指用户使用的永久性表空间,用于存储用户的永久性数据。
2.临时表空间用于存储排序或汇总过程中产生的临时数据
3.大文件表空间用于存储大型数据
4.非标准数据块表空间用于在一个数据块实例中创建数据块大小不同的表空间
5.撤销表空间用于存储事物的撤销数据,在数据恢复时使用。
实验步骤(程序代码与实验过程):
创建永久表空间
create tablespace shoptbs
datafile 'F:\app\asus\admin\orcl\adump\shoptbs.dbf'
size 20M
autoextend on
next 5M
maxsize 100M
--创建临时表空间
create temporary tablespace shoptemptbs
tempfile 'F:\app\asus\admin\orcl\adump\shoptemptbs.dbf'
size 20M
extent management local uniform
size 15k
--创建撤销表空间
create undo tablespace shopundotbs
datafile 'F:\app\asus\admin\orcl\adump\shopundotbs.dbf'
size 30M
--设置默认表空间
alter database default tablespace shoptbs;
alter database default temporary tablespace shoptemptbs;
--创建用户user262
create user user262
identified by user262;
--授予user262创建表权限
grant create table to user262;
grant connect to user262;
grant resource to user262;
grant create synonym to user262;
--查看表空间
select * from dba_tablespaces
revoke dba from sys;
grant create session,create table to sys;
--创建商品表
create table goods
(
sno varchar2(10) primary key,
sname varchar2(30) not null,
jprice number(8,2),
kucun number(5)
)
--创建供应商表
create table gong
(
gno varchar2(10) primary key,
gname varchar(30) not null,
gaddress varchar2(100) not null,
telephone varchar2(11)
)
--创建客户表
create table kehu
(
kno varchar2(10) primary key,
kaddress varchar2(100),
ktelephone char(11) not null
)
--创建业务员表
create table yewu
(
yno varchar2(10) primary key,
ytelephone char(11) not null,
ticheng number(5)
)
--创建操作员表
create table zuo
(
zno varchar2(10) primary key,
ztelephone char(11) not null
)
--创建入库表
create table ruku
(
rno varchar2(10) primary key,
gid varchar2(10) references
gong(gno),
sid varchar2(10) references
goods(sno),
rnumber varchar2(10),
rprice number(8,2),
rdate date,
zid varchar2(10) references
zuo (zno)
)
--创建出库明细表
create table xi
(
cid varchar2(10) references
ruku(rno),
sid varchar2(10) references
goods(sno),
cnumber number,
cprice number(8,2))
--创建客户的索引
create index index_kehu_kno
on kehu(kaddress);
--授权
--给user262创建视图权限
grant create view to user262;
--创建检索
CREATE OR REPLACE VIEW v_1
AS
select * from kehu
WHERE kaddress='北京'
--同义词
create synonym g for gong;
--创建序列
grant create sequence to user262;
create sequence seq_user262_id
increment by 1 nocycle nomaxvalue;
实验结果(数据分析与结论):
1.表空间信息
2.表名
3.视图,同义词,序列
4.创建用户
5.索引
问题讨论:
问:为什么在使用Oracle数据库时要先创建表空间?
答:
创建表空间可以有效的管理该用户所拥有的表的数据
如果多个用户共同使用一个表空间,一旦存放数据的文件出
错或损坏,多个用户的数据都会受到损失。