oracle中的数据结构是那样的!

oracle中的数据结构是那样的!,第1张

基本数据结构

表是关系数据库中的一个基本数据结构。表就是行的集合。每行(row)包含一个或多个列。

从Oracle8企业版以后,就提供了分区选件,它允许将表和索引进行分区。利用分区,Oracle可从以下两方面改善性能:

。Oracle不用去访问那些不满足查询条件的分区

。如果分区中所有数据都满足查询条件,那么Oracle将选择全部数据而不需要对每行均进行字句检查。

视图

视图(view)是Oracle中的一种由SQL语句构造的数据结构。SQL语句存储在数据库中,在查询中使用一个视图时,所存储的查询将得以执行,并向用户返回基表(base table)中的数据。

视图不包含数据,而是表示一些方法可以查看查询所指定的基表数据。

视图有以下几种用途:

。简化对多个表数据的访问

。可以保证表中数据的安全(如,创建包含WHERE子句的视图就可以限制访问表中的数据)

。将应用与表中某些特定的结构分离

视图建立在基表集合的基础之上,基表包括Oracle数据库中的事实表或者其他视图。如果视图中的任何一个基表进行修改,那么该视图将无法继续使用它们,因此视图本身也无法再使用。

索引

索引(index)是用来加快访问数据库中记录速度的一种数据结构。一个索引与一个特定的表相关,而且包含该表的一个或多个列的数据。

创建索引的SQL基本语法:

CREAT INDEX emp_idx1 on emp (ename,job);

其中,emp_idx1时索引名,emp是创建索引的表,ename和job时构成索引的列值。

除了索引数据以外,索引项中还为其相关行保存了ROWIDROWID是获取数据库行的最快方式,因此随后数据库行的获取都是以这种最佳方式来完成。

Oracle中使用的4中类型的索引结构:标准B-树索引、反向键索引、位图索引以及Oracle8i引入的基于函数的索引。Oracle使你可以对表中的数据进行聚合,从而改善性能。

其它数据结构

序列(Sequence)

在多用户数据库中经常出现的大问题,就是很难为键或标识符提供唯一的序号。在这种情况下,Oracle允许创建序列对象。

序列号可以用名字,一个递增值或有关序列的其他一些信息。序列独立于任何表,因此多个表可以使用同样的序列号。

同义词(Synonym)

所有的Oracle数据库的数据结构都存储在一个特定的模式(schema)。模式是和一个特定的用户名相关联的,所有对象都通过带有对象名的模式名得到引用。

例如,模式DEMO中有一个表名为EMP如果想引用表EMP,那么应该通过完整名DEMOEMP来引用。如果没有提供特定的模式名,那么Oracle假定该结构处于当前用户名的模式中。

集群(Cluster)

集群是一种能够改善获取性能的数据结构。集群和索引一样,不会影响表的逻辑视图。

散列集群(Hash Cluster)

数据设计

约束

约束(constraint)强制数据库中某些数据的完整性。当给某列增加一个约束,Oracle自动确保不满足此约束的数据是绝不能被接受的。

约束可以在创建或增加包括某列(通过关键字)的表时与列相关联,或者在表创建后通过SQL命令ALTER TABLE来实现与该列的关联。在Oracle8及以后的版本中支持以下5个约束类型:

NOT NULL

对于任何列都可以设为NOT NULL如果在任何SQL *** 作中将一个NULL值赋给某个有NOT NULL约束的列,Oracle会为这个语句返回一个错误。

惟一性

主键

外键

校验

某些约束需要创建所以来支持。

约束可以是立即的或延迟的。立即约束(immediate constraint)只要有写 *** 作就会立即对受约束列产生影响;而延迟约束(deferred constraint)只有在对约束行产生变化的SQL语句执行完时才有强制作用。

对于某个特定表的约束可设置成暂时挂起。当再次启动该约束 *** 作时,再要求Oracle对该约束验证所有数据,或者只是对新数据应用约束。在现有表中增加约束时,可以指定是否对表中所有记录进行约束校验。

触发器

触发器是个代码块,当某个表中发生了某种类型的数据库事件时它就会被触发,有以下3种事件会导致触发器的触发:

。数据库UPDATE

。数据库INSERT

。数据库DELETE

例如,可以定义一个触发器,从而在用户改变某一行时,写一个定制的审查记录。

触发器是在行一级被定义的。可以指定触发器是对每一行触发,或者对触发该触发器事件的SQL语句触发。

触发器的触发有3个时机:

。在执行触发事件之前

。在执行触发事件之后

。非触发事件

将前两种时间选项与触发器所触发的行和语句的结合,则有4种可能的触发器实现:在语句之前;在行之前;在语句之后;在行之后。

任何触发器都可以有一个触发器限制(trigger restriction)。触发器限制是一个布尔表达式,如果其值为FALSE,那么就阻止触发器触发。

触发器的定义和存储都独立于使用它们的表。因为触发器包含逻辑,所以必须通过比SQL功能强的某种实现数据访问的语言来写。可以直接用PL/SQL或Java来写触发器,也可以通过调用其中任一种语言编写的现有存储过程来写触发器。

触发器触发是SQL语句执行的结果,该SQL语句修改了某个表中的行。触发触发器的 *** 作可能是修改这个表中的数据,或者产生某些改变来触发其他表的触发器。这么做的最后结果可能是以某种方法修改了数据,但Oracle认为这是不合逻辑的。这些情况都会导致Oracle返回变异表(mutating table,被其他触发器修改的表)的运行时错误,或是返回约束表(constraining table,被其他约束修改的表)的运行时错误。

Oracle8i还引入了一组非常有用的系统事件触发器和用户事件触发器。现在可以在系统事件(如,数据库启动或关闭)中放置触发器,也可以在用户事件(登录和退出)中放置触发器。

Oracle 创建数据表

数据库中的每一个表都被一个模式(或用户)所拥有,因此表是一种典型的模式对象。在创建数据表时,Oracle 将在一个指定的表空间中为其分配存储空间。最初创建的表时一个空的逻辑存储结构,其中不包含任何数据记录。

一、数据表的逻辑结构

表是最常见的一种组织数据的方式,一张表一般都具有多个列(即多个字段)。每个字段都具有特定的属性,包括字段名、数据类型、字段长度、约束、默认值等,这些属性在创建表的时被确定。

Oracle 常用的5种数据类型:

1、字符类型

字符类型用于什么包含字母、数字数据的字段。对字符数据类型再细分可包括定长字符串和变长字符串两种,分别对应着 char 数据类型和 varchar 数据类型。

CHAR 数据类型,用于存储固定长度的字符串。一旦定义了 char 类型的列,该列就会一直保持声明时所规定的长度大小。当为该列的某个单元格(行与列的交叉处就是单元格)赋予长度较短的数值后,空余部分 Oracle 会用空格自动填充;如果字段保存的字符长度大于规定的长度,则 Oracle 会产生错误信息。char 类型的长度范围为 1~ 2000字节。

VarChar2 类型 : varchar2 用于存储变长的字符串。将字段定义为 varchar2 数据类型时,该字段的长度将根据实际字符数据的长度自动调整(即如果该列的字符串长度小于定义时的长度,系统不会使用空格填充,而是保留实际的字符串长度)。因此,在大多数情况下,都会使用 varchar2 替换 char 数据类型。

2、数值类型

数值数据类型的字段用于存储带符号的整数或浮点数。Oracle 中的 number 数据类型具有精度(precision)和范围(scale)。精度指定所有数字位的个数,范围值定小数的位数,这两个参数都是可选的。如果插入的数据超过指定的位数,Oracle 将自动进行四舍五入。

3、日期时间类型

Oracle 提供的日期时间数据类型时 DATE,它可以存储日期和时间的组合数据。用DATE 数据类型存储日期时间比使用字符数据类型进行存储更简单,并且可以借助于 Oracle 提供的日期时间函数方便处理数据。

在 Oracle 中,可以使用不同的方法建立日期值。最常用的获取日期的方法是通过 sysdate 函数,调用该函数可以获取当前系统的日期值。还可以使用 To_DATE 函数将数值或字符串转换为 DATE 类型。 Oracle 默认的日期和时间格式由初始化参数 NLS_DATE_FORMAT 指定,一般为 DD-MM-YY。

4、LOB类型

Lob 数据类型用于大型的、未被结构化的数据,例如二进制文件、文件和其他类型的外部文件。LOB 类型的数据可以存储在数据库内部,也可以将数据存储在外部文件中,而将指向数据的指针存储在数据库中。LOB 数据类型分为 BLOB、CLOB 和 BFILE 数据类型。

BLOB 类型:blob类型用于存储二进制对象。典型的 blob 可以包括图像、音频文件、视频文件等。在 blob 类型的字段中能够存储最大为 128MB的二进制对象。

CLOB 类型: clob 类型用于存放字符格式的大型对象,CLOB 类型的字段能够存储最大为 128MB 的对象。Oracle 首先把数据转换成Unicode格式的编码,然后再将它存储在数据库中。

BFILE 类型:bfile 类型用于存储二进制格式的文件;在 bfile 类型的字段中可以将最大为128MB 的二进制文件作为 *** 作系统文件存储在数据库外部,文件的大小不能超过 *** 作系统的限制;bfile 类型的字段中仅保存二进制文件的指针,并且 bfile 字段是只读的,不能修改。

5、RowID 数据类型

RowID 数据类型被称为 “伪列类型”,用于在 Oracle 内部保存表中的每条记录的物理地址。在 Oracle 内部通过 rowid 来定位所需记录的。由于 rowID 实际上保存的时数据记录的物理地址,所以通过 rowid 来访问数据记录可以获得最快的访问速度。为了便于使用,Oracle 自动为每一个表建立一个名称为 rowID 的字段,可以对这个字段进行查询、更新和删除等 *** 作,设置利用 rowID 来访问表中的记录以获取最快的 *** 作速度。

注意:由于 rowid 字段是隐式的,用户检索表时不会看到该字段,因此,如果要使用 rowid 字段,则必须显示地指定其名称。

二、创建数据表

创建表通常使用 create table 语句。如果用户在自己的模式中创建一个表,则用户必须具有 create table 系统权限。如果要在其他用户模式中创建表,则必须具有 create any tables 的系统权限。此外,用户还必须在指定的表空间中设置一定的配额存储空间。

创建表应该包含哪些列并且指定这些列的数据类型,而这些内容最好在对用户需求分析的基础上进行确定。

语法格式:

create table table_name(

字段名1 数据类型,

字段名2 数据类型

);

注意:1、如果用户要在其他模式中创建表,则必须在表名前加上某个模式的名称。

2、在create table 语句中可以使用嵌套子查询,基于已经存在的表或视图来创建新表,不需要为新表定义字段。

例:

SQL > create table students_2 as select from students;

三、数据表的特性

在 Oracle 中创建表时,表的特性将决定系统如何创建表、如何在磁盘上存储表,以及表创建后使用时的最终执行方式等。

1、存储参数

当用户在 Oracle 中创建表时,Oracle 允许用户指定该表如何使用磁盘上的存储空间。如果仅为表指定了表空间,而没有设置存储参数,则该表将采用其所属表空间的默认的存储参数。然而,表空间的默认存储参数不一定对表空间的每一个表都适用,因此,当表所需要的存储参数与表空间的默认存储参数不匹配时,需要用户在创建表时显式指定存储参数以体寒表空间的默认存储参数。

在创建表时,可以通过使用 storage 子句来设置存储参数,这样可以控制表中盘区的分配管理方式。对于本地化管理的表空间而言,如果指定盘区的管理方式为 autoallocate(自动化管理) ,则可以在 storage 子句中指定 initial、next 和 minextents 这3个存储参数,Oracle 将根据这3个存储参数的值为表分配的数据段初始化盘区大小,以后盘区的分配将由 Oracle 自动管理。如果指定的盘区管理方式为 uniform(等同大小管理),这时不能为表指定任何 storage 子句,盘区的大小将是统一大小。

参数 next 用于指定为存储表中的数据分配的第二个盘区大小。该参数在字典管理的表空间中起作用,而在本地化管理的表空间中不再起作用,因为随后分配的盘区将由 Oracle 自动决定其大小。参数 minextents 用于指定允许为表中的数据所分配的最小盘区数目,同样在本地化管理的表空间中该参数也不再起作用。因此,在存储参数中,主要是设置 inital 参数。该参数用于为表指定分配的第一个盘区大小,以 KB 和 MB 为单位。当为已知大小的数据建立表时,可以将 initial 设置为一个可以荣脑所有数据的数值,这样可以将表中所有的数据存储在一个盘区从而避免产生碎片。

例:

SQL > select initial_extent from user_tables where table_name = 'students'

在user_tables 数据字典表中查询表 students 的第一个盘区的大小。

2、数据块管理参数

对于一般不带有LOB 类型的数据表而言,一个数据块可以存放表的多行记录,用户可以设置的数据块管理参数主要分为以下两类:

1、Pctfree 和 pctused

这两个参数用于控制数据块中空闲空间的使用方法

数据库系统DBS(Data Base System)包含数据库DB(Data Base)和数据库管理系统DBMS(Database Management System)。

数据库系统:

数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。

数据库系统必须满足以下几个要求:

①能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。

②冗余数据少,数据共享程度高。

③系统的用户接口简单,用户容易掌握,使用方便。

④能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。

⑤有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户 *** 作特性的变化,改善由于频繁插入、删除 *** 作造成的数据组织零乱和时空性能变坏的状况。

⑥具有可修改性和可扩充性。

⑦能够充分描述数据间的内在联系。

常见的数据库系统:

MySQL

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。

SQL Server

SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。

Oracle

Oracle产品系列齐全,几乎囊括所有应用领域,大型,完善,安全,可以支持多个实例同时运行,功能强。能在所有主流平台上运行。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

数据库:

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

数据库的特点:

⑴ 实现数据共享

数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。

⑵ 减少数据的冗余度

同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。

⑶ 数据的独立性

数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。

⑷ 数据实现集中控制

文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。

⑸数据一致性和可维护性,以确保数据的安全性和可靠性

主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。

⑹ 故障恢复

由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误 *** 作造成的数据错误等。

数据库的种类:

数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。

数据库管理系统:

数据库管理系统(Database Management System)是一种 *** 纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据 *** 作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等 *** 作。

主要功能:

1数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。

2数据 *** 作:DBMS提供数据 *** 作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等 *** 作。

3数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。

4数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。

5数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。

6数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。

7通信:DBMS具有与 *** 作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互 *** 作功能。

常见的数据库:

达梦数据库

SYBASE

DB2

ORACLE

MySQL

ACCESS

Visual Foxpro

MS SQL Server

Informix

PostgreSQL

参考链接:百度百科 - 数据库系统百度百科 - 数据库百度百科 - 数据库管理系统

以上就是关于oracle中的数据结构是那样的!全部的内容,包括:oracle中的数据结构是那样的!、oracle创建表长度为5比例为2、数据库表设置的关系及意义,对功能实现的支撑在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10202226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存