一、数据字典

不仅是每个Oracle数据库的核心组件之一,也是所有数据库用户重要的信息资源;描述数据与对象的数据;包含只读的表和视图;存储在系统表空间;所有者为sys;由Oracle server维护;通过select语句访问。
执行数据定义语言 (definition language,DDL)语句或有些数据操纵语言 (data manipulation language ,DML) 语句时会更新数据字典。
包括两部分:
1、 基表(base tables),在create database执行时(执行sql.bsq脚本)创建;用户不能直接访问因为它们是被加密的,无法用DML语句直接更新这些表,有一个例外,AUD$。基表举例:IND$,包含数据的索引信息。
2、数据字典视图,在执行 $ORACLE_HOME/rdbms/admin/catalog.sql,catproc.sql脚本时创建。
数据字典的内容:审计、用户被赋予的特权和角色、用户名字、完整性约束、资源的分配情况、逻辑和物理结构。
数据字典视图种类:
 

数据字典举例:
概览: DICTIONARY, DICT_COLUMNS
Schema objects: DBA_TABLES, DBA_INDEXES,DBA_TAB_COLUMNS, DBA_CONSTRAINTS
空间分配: DBA_SEGMENTS, DBA_EXTENTS
数据库结构: DBA_TABLESPACES,DBA_DATA_FILES
Data dictionary views are static views that answer questions such as:
• Was the object ever created?
• What is the object a part of?
• Who owns the object?
• What privileges do users have?
• What restrictions are on the object?
二、动态性能视图
虚表;记录当前数据库活动及活动状态;在数据库运行期间持续更新;可通过访问内存和控制文件获得的信息;用于数据库的监视和性能调优;所有者为sys;synonymous以v$开头;在V$FIXED_TABLE里列出所有这些表的名字。
DBA可以在这些视图上再创建视图。
The dynamic performance tables answer questions such as:
• Is the object online and available?
• Is the object open?
• What locks are being held?
• Is the session active?
举例:
•V$CONTROLFILE : Lists the names of the control files
•V$DATABASE : Contains database information from the control file.
•V$DATAFILE : Contains data file information from the control file
•V$INSTANCE : Displays the state of the current instance
•V$PARAMETER : Lists parameters and values currently in effect for the session
•V$SESSION : Lists session information for each current session
•V$SGA : Contains summary information on the system global area (SGA)
•V$SPPARAMETER : Lists the contents of the SPFILE
•V$TABLESPACE : Displays tablespace information from the control file
•V$THREAD : Contains thread information from the control file
•V$VERSION : Version numbers of core library components in the Oracle server
三、管理脚本命名规则

 
Practice 5: Using Data Dictionary and Dynamic Performance Views
1 Which of the following statements are true about the data dictionary?
a The data dictionary describes the database and its objects.
b The data dictionary includes two types of objects: base tables and data dictionary
views.
c The data dictionary is a set of tables.
d The data dictionary records and verifies information about its associated database.
答案: a b c d
2 Base tables are created using the catalog.sql script.
a True
b False
答案: b
解析:是在 create database 时创建, catalog.sql 是创建视图。
3 Which three of the following statements are true about how the data dictionary is used?
a The Oracle server modifies it when a DML statement is executed.
b It is used to find information about users, schema objects, and storage structures.
c It is used by users and DBAs as a reference.
d The data dictionary is a necessary ingredient for the database to function.
答案: b c d
4 Data dictionary views are static views.
a True
b False
答案: a
5 The information for a dynamic performance view is gathered from the control file.
a True
b False
答案: b
6 Which of the following questions might a dynamic performance view answer?
a Is the object online and available?
b What locks are being held?
c Who owns the object?
d What privileges do users have?
e Is the session active?
答案: a b d e

7 Connect as SYSTEM/MANAGER and find a list of the data dictionary views.
8 Identify the database name, instance name, and size of the database blocks.
Hint: Query the V$DATABASE, V$THREAD, and V$PARAMETER dynamic
performance views.
9 List the name of the data files.
Hint: Query the V$DATAFILE dynamic performance view.
10 Identify the data file that makes up the SYSTEM tablespace.
Hint: Query the DBA_DATA_FILES data dictionary view to identify the SYSTEM
tablespace data file.
11 How much free space is available in the database and how much is already used?
Hints
- Query the DBA_FREE_SPACE data dictionary view to show how much free
space is available in the database.
- Query the DBA_SEGMENTS data dictionary view to display how much space is
already used.
12 List the name and creation date of the database users.
Hint: Query the DBA_USERS data dictionary view to list the name and the creation
of the database users.