欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据字典介绍与使用

程序员文章站 2022-05-12 09:50:51
...

中文名称:数据字典 英文名称:data dictionary 定义:数据库中所有对象及其关系的信息集合。 数据字典 是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 数据字典


中文名称:数据字典

英文名称:data dictionary

定义:数据库中所有对象及其关系的信息集合。

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。


数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。


数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。
数据字典可能包含的信息,例如:
数据库设计资料
储存的SQL程序
用户权限
用户统计
数据库的过程中的信息
数据库增长统计
数据库性能统计
数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典通常包括数据项\数据结构\数据流\数据存储和处理过程五个部分。
其中数据项是数据的最小组成单位若干个数据项可以组成一个数据结构 数据字典通过对数据项和数据结构的 定义来描述数据流、数据存储的逻辑内容。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.
数据字典还有另一种含义,是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名、数据类型、主键、外键等描述表的属性的内容。
编辑本段作用数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信。


编辑本段组成数据字典的组成:
1、数据项
2、数据结构
3、数据流
4、数据存储
5、处理过程
数据字典
数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:
1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2、分配多少空间,当前使用了多少空间等。
3、列的缺省值。
4、约束信息的完整性。
5、用户的名字。
6、用户及角色被授予的权限。
7、用户访问或使用的审计信息。
8、其它产生的数据库信息。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明
编辑本段数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
组成:
1、数据项:数据项是最基本的数据元素,是有意义的最小数据单元,在数据字典中,定义数据项特性包括:数据项的名称、编号、别名和简述;数据项的长度;数据项的取值范围。
2、数据结构 :数据项是不能分解的数据,而数据结构是可以进一步分解的数据包。数据结构由两个或两个以上相互关联的数据元素或者其他数据结构组成的。一个数据结构可以由若干个数据元素组成,也可以由若干个数据结构组成,还可以由若干个数据元素和数据结构组成。
3、数据流 :数据流由一个或一组固定的数据项组成。定义数据流时,不仅说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。
4、数据存储 :数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。
5、处理过程:处理逻辑的定义仅对数据流程图中最底层逻辑加以说明。


数据字典日常应用

select * from dictionary;

  --数据字典

  数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。

  比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。

  数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中

  当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。

  用户可以用SQL语句访问数据库数据字典。

  数据字典内容包括:

  1,数据库中所有模式对象的信息,如表、视图、簇、及索引等。

  2,分配多少空间,当前使用了多少空间等。

  3,列的缺省值。

  4,约束信息的完整性。

  5,Oracle用户的名字。

  6,用户及角色被授予的权限。

  7,用户访问或使用的审计信息。

  8,其它产生的数据库信息。

  Oracle中的数据字典有静态和动态之分。

  1,静态数据字典-->主要是在用户访问数据字典时不会发生改变的,

  --例如某用户创建的表

  2,动态数据字典-->是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。

  --当前锁住的对象

  静态数据字典:这类数据字典主要是由表和视图组成

  数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

  静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。

  user_*

  该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)

  all_*

  该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)

  dba_*

  该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

  -----------------------------------------------------------------------------------------------------------

  select * from dictionary;

  --查询该用户拥有哪些表

  --user_tables主要描述当前用户拥有的所有表的信息,

  ----主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些

  desc user_tables;

  select table_name from user_tables;

  select * from user_tables;

  --查询该用户拥有哪些索引

  select index_name from user_indexes;

  --查询该用户拥有哪些视图

  select view_name from user_views;

  --查询该用户拥有哪些数据库对象,对象包括表、视图、存储过程、触发器、包、索引、序列、JAVA文件等。

  select object_name from user_objects;

  --主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。

  select * from user_users;

  -----------------------------------------------------------------------------------------------------------

  --user_/all_区别:

  ----all_列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。

  --查询某一用户下的所有表、过程、函数等信息。

  select owner , object_name ,object_type from all_objects

  -----------------------------------------------------------------------------------------------------------

  --对于dba_开头的需要管理员权限,

  --查询表空间的信息(当前用户必须拥有DBA角色)。

  select * from dba_data_files

  -----------------------------------------------------------------------------------------------------------

  动态数据字典

  Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。

  Oracle中这些动态性能视图都是以v$开头的视图.

  v$access

  该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。

  select * from v$access

  v$session

  该视图列出当前会话的详细信息。

  v$active_instance

  该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。

  v$context

  该视图列出当前会话的属性信息。比如命名空间、属性值等