Oracle数据库应用论文

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库应用——模式对象论文

080311119 邵博伦

模式对象介绍

模式(schema)是数据的逻辑结构或者说模式对象的汇总。一个模式对应一个数据库用户,并且名字和数据库用户名相同。每个用户都有一个单独的模式。模式对象可以通过SQL 创建(DDL)和操作(DML)。

模式对象是数据的逻辑存储结构。数据对象和磁盘上保存其信息的物理文件并不一一对应。Oracle在数据库的一个表空间上保存模式对象。每个对象的数据物理的保存在表空间的一个或者多个数据文件上。对某些对象如表、索引、聚集来说,你可以指定在表空间的数据文件上Oracle可以分配多大的磁盘空间来存储这个对象。

模式和表空间没有什么联系:一个表空间可以包换来自不同模式的对象,模式对象可以包含在不同的表空间上。

表概述

表是Oracle数据库内数据存储的基本单位。数据是按照行和列来存储。你用一个表名(比如employees)、一系列列来定义表。你为每列指定一个列名(比如

employee_id,last_name和job_id等),一个数据类型(比如VARCHAR2,DATE,NUMBER)和一个宽度。宽度可以是数据类型(比如日期)预先定义好的。如果列是NUMBER类型,定义范围和精度就可以了。行是关联到一个记录的列信息的集合。

你可以指定表中每个列的规则。这些规则叫做完整性约束条件。NOT NULL就是一个完整性约束的例子。这个约束条件要求这列的每一行都要包含一个值。

你还可以指定表列在保存在数据文件之前将数据加密。加密阻止了越过数据库访问控制来直接使用操作系统工具查看数据文件的现象。

在你创建表之后,使用SQL语句插入行数据。表的数据就可以使用SQL查询、删除和更新。

表的建立:

SQL>CREATE TABLE jxzy.switch(

>OFFICE_NUM NUMBER(3,0) NOT NULL,

>SWITCH_CODE NUMBER(8,0) NOT NULL,

>SWITCH_NAME VARCHAR2(20) NOT NULL);

表的修改:

SQL>ALTER TABLE jxzy.switch

>ADD (DESC VARCHAR2(30));

表的删除:

SQL>DROP TABLE jxzy.switch

>CASCADE CONSTRAINTS

表的压缩:

Oracle的表压缩特性通过减少数据块中重复值来压缩数据。数据块(磁盘页)中保存的压缩数据是自包含的。就是说,一个数据块中需要重新创建解压缩的所有数据信息对本数据块是可用的(一个块上的信息需要解压缩才能读取,但同样的信息在另一块上不需要)。一个块上的所有行和列的重复值都在块开始的地方保存一次,这个地方也叫块的符号表。这些(重复)值出现的地方都替代为指向符号表的链接。

除了开始的符号表之外,压缩数据库块看起来和通常数据库块非常类似。适用于通常数据库块的所有数据库特性和函数也适合压缩数据库块。

包括表和实体化视图的数据库对象都可以压缩。对于分区表来说,你可以选择压缩部分或者全部分区。压缩属性可以用在表空间、表或者分区表。如果在表空间级别声明压缩属性,那么其上创建的所有表默认都是压缩的。你可以修改一个表(或者表空间、

分区表)的压缩属性,但只对新加入表的数据有效。因此,一个表或者分区可能同时包含压缩块和正常块。这样确保数据大小不能因为压缩而增加;在压缩会增加块使用时,块不会使用压缩。

完整性约束管理

数据库数据的完整性指数据的正确性和相容性。数据完整型检查防止数据库中存在不符合语义的数据。

完整性约束是对表的列定义一组规则说明方法。ORACLE提供如下的完整性约束.

NOT NULL 非空

PRIMATY KEY 主键一个表只能有一个,非空

UNIQUE 唯一关键字

CHECK 表的每一行对指定条件必须是true或未知(对于空值)

FOREIGA KEY 外键

唯一性约束(Unique constraint)

唯一性约束可以保护表中多个数据列,保证在保护的数据列中任何两行的数据都不相同。唯一性约束与表一起创建,在唯一性约束创建后,可以使用ALTER TABLE语句修改。

●语法:

●某列定义非空约束:

SQL>ALTER TABLE office_organization

>MODIFY(desc VARCHAR2(20)

>CONSTRAINT nn_desc NOT NULL)

●某列定义唯一关键字:

SQL>ALTER TABLE office_organization

>MODIFY(office_name VATCHAR2(20)

>CONSTRAINT uq_officename UNIQUE)

●定义主键约束,主键要求非空:

SQL>CREATE TABLE switch(switch_code NUMBER(8)

>CONSTRAINT pk_switchcode PRIMARY KEY,)

●使主键约束无效:

SQL>ALTER TABLE switch DISABLE PRIMARY KEY

●定义外键:

SQL>CREATE TABLE POLE(pole_code NUMBER(8),

>office_num number(3)

>CONSTRAINT fk_officenum

>REFERENCES office_organization(office_num)

>ON DELETE CASCADE);

●定义检查:

SQL>CREATE TABLE office_organization(

>office_num NUMBER(3),

>CONSTRAINT check_officenum

>CHECK (office_num BETWEEN 10 AND 99);

注意用户不能删除在有外部键指向的表的唯一性约束。这种情况下用户必须首先禁用或删除外部键(foreign key)。

删除或禁用唯一性约束通常同时删除相关联的唯一索引,因而降低了数据库性能。经常删除或禁用唯一性约束有可能导致丢失索引带来的性能错误。要避免这样错误,可以采取下

相关文档
最新文档