§1.1.1关系模型
一个描述两个集合的元素如何相互联系或如何一一对应的数学概念,对于数据库来说,
关系只是一个带有一些特殊属性的表。所以有:
���数据的基础项是关系,在这些表上的操作只产生关系
一个关系表必须符合某些特定条件,才能成为关系模型的一部分
���储存在单元中的数据必须是原子的。每个单元只能存储一条数据,叫信息原则(Information
Principle)。如果存储多条则违反信息原则。特舒情况下可能需要违反信息原则。
���储存在列下的数据必须具有相同的数据类型。
���每一行是唯一的(没有完全相同的行)。
���列没有顺序。
���行没有顺序
���列有一个唯一性的名称。
关系模型的另一个是完整性原则,它包括实体完整性原则(Entityintegrityrule)和引用
完整性原则(Referentialintegrityrule),如:
���主键(Primarykey)是能唯一标识行的一列或一组列的集合。
���由多个列构成的主键称为连接键(Concatenatedkey)、组合键(Compoundkey),或称作为复合键(Compositykey)。
另外就是外部键(Foreignkey)是一个表中的一列或一组列,它们在其它表中作为主键而存在。一个表中的外部键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者它所引用的主键当前存在值相一致。
§1.2.0关系数据库系统(RDBMS)的组成
RDBMS由两部分组成,即数据库系统内核(软件)和数据字典(内核用于管理数据库系
统的数据结构)两部分。
§1.2.1RDBMS内核
RDBMS就是用来控制数据访问的操作系统。它的任务是按照一定的规则存储数据、检
索数据及保护数据。
§1.2.2数据字典概念
数据自动存放数据库中所有对象(如表,索引,视图等)所需的信息。Oracle10g的数
据字典是存放数据库系统信息的一组表,从数据字典中的信息可以确认数据库中数据对象的
基本信息及存放位置。
§1.2.2常用数据字典简介
ORACLE提供许多内部数据字典,用以管理系统的各种信息和参数(即数据库对象),下面列出几个常用的数据字典供初学者参考。
ORACLE数据字典的命名说明:
USER为前缀----记录用户的所有对象信息
ALL为前缀----记录包括USER记录和授权给PUBLIC或该用
户的所有对象的信息。
DBA为前缀----记录关于数据库对象(非用户对象)的信息。
V$公共系统动态视图,用于系统优化和调整参考.
V_$动态性能视图
注:请注意下面的总结:
���一般DBA_的视图内容都包含USER_和ALL_为前缀的视图;
���DBA_为前缀的视图的内容基本上是大写;
���以V$_为前缀的视图的内容基本上是小写。
1.USER_TABLEs(=TABS)用户的所有表的信息。
2.USER_TAB_COLUMNS(=COLS)有关各表的列(字段)的信息
3.USER_VIEWS用户的所有视图
4.USER_SYNONYMS(=SYN)用户同义词
5.USER_SEQUENCES(=SEQ)用户序列
6.USER_CONSTRAINTS记录创建表结构时建立的限制。
7.USER_TAB_COMMENTS表的注释。如:
Commentontableempis'职工表';
8.USER_COL_COMMENTS列(字段)注释。如:
Commentoncolumnemp.enameis'姓名';
9.USER_INDEXES(=IND)用户索引的简要信息
10.USER_IND_COLUMNS用户索引的列信息
11.USER_TRIGGERS用户触发器信息
12.USER_SOURCE用户存储过程
13.USER_TABLESPACE用户可以使用的表空间信息
14.USER_TS_QUOTAS用户使用系统资源的信息
15.USER_SEGMENTS用户对象所使用空间信息
16.USER_EXTENTS用户的扩展段信息
17.USER_OBJECTS用户对象
=USER_TABLES+USER_VIEWS+USER_INDEXES+
USER_SOURCE+USER_TRIGGERS+USER_JAVA
18.USER_PART_TABLES用户分区信息
19.USER_TAB_PARTITIONS
20.USER_PART_COL_STATISTICS
21.USER_IND_PARTITIONS
22.USER_FREE_SPACE
23.CAT(=USER_CATALOG)用户可以访问的所有的基表。
24.TAB用户创建的所有基表,视图,同义词等。
25.DICT(=DICTIONARY)构成数据字典的所有表的信息。
提示:虽然Oracle提供可以用Commentoncolumntablename.columnis'xxxx';等来实现对表或列进行注释,但不建议设计者采用这样的工作方式。而建议将注释写到脚本中更为直观。
§1.2.2表和索引数据字典
DBA_TABLES,ALL_TABLES,USER_TABLES存放表的基本信息,主要包括创建表结构时描述
的信息,如表名,表空间,存储参数等;此外,还有一些信息是在分析表时由系统自动
写进去的,比如,表的行数量、行平均字节等。
���DBA_INDEXES,ALL_INDEXES,USER_INDEXES存放索引的基本信息,主要包括创建索引时描
述的信息和用ANALYZE分析索引由系统自动写进去的信息。
���DBA_IND_COLUMNS存放有索引的列的信息,因为Oracle在分析创建索引的命令正确后
就将表名、索引名等存放到DBA_INDEXES数据字典中,而将索引的列名存放到
DBA_IND_COLUMNS数据字典中。所以,查询者需要了解两个数据字典才能查到索引的详细
信息。
���ALL_CONSTRAINTS存放表的限制信息。
���ALL_CONS_COLUMNS存放表的列的限制信息。
了解数据字典的目的就是查询有关表和索引的信息,下面是简单的查询例子。
例1.查询当前用户的表的基本信息,包括表名、存放的表空间、存储参数:
SQL>selecttable_name,tablespace_name,initial_extent,next_extentfromuser_tables
SQL>
TABLE_NAMETABLESPACE_NAMEINITIAL_EXTENTNEXT_EXTENT
-------------------------------------------------------------
ACCESS$SYSTEM16384106496
AQ$_MESSAGE_TYPESSYSTEM6553665536
AQ$_PENDING_MESSAGESSYSTEM6553665536
......
例2.查询当前用户的索引的基本信息,包括表名、索引名及表空间、存储参数:
SQL>selectindex_name,tablespace_name,initial_extent,next_extentfromall_indexeswhereowner=user;
INDEX_NAMETABLESPACE_NAMEINITIAL_EXTENTNEXT_EXTENT
-------------------------------------------------------------------------
AQ$_MSGTYPES_PRIMARYSYSTEM6553665536
AQ$_PROPAGATION_STATUS_PRIMARYSYSTEM6553665536
AQ$_QTABLE_AFFINITIES_PKSYSTEM6553665536
AQ$_QUEUE_STATITICS_PKSYSTEM6553665536
AQ$_SCHEDULES_PRIMARYSYSTEM6553665536
ASSOC1SYSTEM1638416384
ASSOC2SYSTEM1638416384
......
这里的whereowner=user表示只查当前用户的索引.
例3.查询当前用户的索引及索引的列名:
SQL>colcolumn_namefora40
SQL>colindex_namefora18
SQL>selectindex_name,table_name,column_namefromall_ind_columns
wheretable_owner=user;
INDEX_NAMETABLE_NAMECOLUMN_NAME
-----------------------------------------------------------------
I_ACCESS1ACCESS$D_OBJ#
I_ACCESS1ACCESS$ORDER#
AQ$_MSGTYPES_PRIMARYAQ$_MESSAGE_TYPESQUEUE_OID
例4.查询当前用户的限制信息,当我们创建表结构时,如果描述了限制,则这些限制就被存放
到DBA_CONSTRAINTS数据字典中,看下面例子:
创建下面表结构:
Createtableworker
(empnonumber(4)primarykey,
namevarchar2(10),
agenumber(2)CHECK(agebetween18and65),
lodgingchar(15)ReferencesLODGING(lodging)
);
查询数据字典信息可以得到:
SQL>selectowner,constraint_name,table_namefromuser_constraints;
OWNERCONSTRAINT_NAMETABLE_NAME
-------------------------------------------------------------------
ZHAOSYS_C001009WORKER
ZHAOSYS_C001009WORKER
SQL>setlong1000
SQL>selectSEARCH_CONDITIONfromuser_constraints;
SEARCH_CONDITION
--------------------------------------------------------
agebetween18and65
例5.创建表结构时描述了限制,则这些限制就被存放到DBA_CONSTRAINTS数据字典中,再看
下面例子:
CREATETABLEdept
(deptnonumber(2),
dnamevarchar2(20),
locvarchar2(20),
CONSTRAINTpk_deptPRIMARYKEY(deptno)
);
Createtableempl
(
Empnonumber(5)primarykey,
Enamevarchar2(15)notnull,
Jobvarchar2(10),
Mgrnumber(5),
Hiredatedatedefaultsysdate,
Salnumber(7,2)CHECK(sal>100),
Commnumber(3)default0.0,
Deptnumberconstraint
dept_fkeyReferenceszhao.dept
);
SQL>colCONSTRAINT_NAMEfora12
SQL>selectconstraint_name,table_name,SEARCH_CONDITION*fromuser_constraints;
CONSTRAINT_NTABLE_NAMESEARCH_CONDITION
-------------------------------------------------------
PK_DEPTDEPT
SYS_C001013EMPL"ENAME"ISNOTNULL
SYS_C001014EMPLsal>100
SYS_C001015EMPL
DEPT_FKEYEMPL
SYS_C001009WORKERagebetween18and65
SYS_C001010WORKER
已选择7行。__
§1.2.2视图、同义词和序列有关的数据字典
当我们创建了视图、同义词和序列后,相关的信息就被记录到Oracle的数据字典中,作为程序人员和数据库管理员,应该了解有关数据字典的基本查询方法.
与视图、同义词和序列有关的数据字典有:
���DBA_VIEWS–实例中所有的视图的基本信息;
���DBA_SYNONYMS–实例中所有的同义词;
���DBA_SEQUENCES–实例中所有的序列。
§1.2.2与用户、角色与权限有关的数据字典
与用户、角色、权限有关的数据字典主要有:
DBA_USERS实例中有效的用户及相应信息。
V$SESSION实例中会话的信息。
DBA_ROLES实例中已经创建的角色的信息。
ROLE_TAB_PRIVS授予角色的对象权限。
ROLE_ROLE_PRIVS授予另一角色的角色。
ROLE_SYS_PRIVS授予角色的系统权限。
DBA_ROLE_PRIVS授予用户和角色的角色。
SESSION_ROLES用户可用的角色的信息。
对于一般的软件人员来说,应该掌握对数据字典的基本查询,如:
例1。查看当前已经创建了多少用户和用户缺省的表空间:
SQL>setline120
SQL>colusernamefora26
SQL>coldefault_tablespacefora20
SQL>selectusername,DEFAULT_TABLESPACE,createdfromdba_users;
USERNAMEDEFAULT_TABLESPACECREATED
--------------------------------------------------------
SYSSYSTEM05-12月-01
SYSTEMTOOLS05-12月-01
OUTLNSYSTEM05-12月-01
DBSNMPSYSTEM05-12月-01
AURORA$JIS$UTILITY$SYSTEM05-12月-01
OSE$HTTP$ADMINSYSTEM05-12月-01
AURORA$ORB$UNAUTHENTICATEDSYSTEM05-12月-01
ORDSYSSYSTEM05-12月-01
ORDPLUGINSSYSTEM05-12月-01
MDSYSSYSTEM05-12月-01
ZHAOUSERS07-12月-01
SCOTTUSERS08-2月-02
已选择12行。
例2。查看当前已经创建了多少角色:
SQL>select*fromdba_roles;
ROLEPASSWORD
--------------------------------------
CONNECTNO
RESOURCENO
DBANO
SELECT_CATALOG_ROLENO
EXECUTE_CATALOG_ROLENO
DELETE_CATALOG_ROLENO
EXP_FULL_DATABASENO
IMP_FULL_DATABASENO
RECOVERY_CATALOG_OWNERNO
AQ_ADMINISTRATOR_ROLENO
AQ_USER_ROLENO
ROLEPASSWORD
--------------------------------------
SNMPAGENTNO
OEM_MONITORNO
HS_ADMIN_ROLENO
JAVAUSERPRIVNO
JAVAIDPRIVNO
JAVASYSPRIVNO
JAVADEBUGPRIVNO
JAVA_ADMINNO
JAVA_DEPLOYNO
TIMESERIES_DEVELOPERNO
TIMESERIES_DBANO
已选择22行。
§1.2.2与存储过程相关数据字典
user_source用户的存储过程、函数的源代码字典
all_source所有用户的存储过程、函数的源代码字典
user_errors用户的存储过程、函数的源代码存在错误的信息字典
相关的权限:
createanyprocedure
dropanyprocedure
如果某个用户没有权限来创建存储过程,则需要DBA将创建过程的权限授予某用户。如:
sql>grantcreateanyproceduretouser1;
§1.2.2包有关的数据字典
与Oracle系统的包有关的数据字典有:
DBA_SOURCE
DBA_ERRORS
1.DBA_SOURCE数据字典:
DBA_SOURCE数据字典存放有整个Oracle系统的所有包、存储过程、函数的源代码。它的列及说明如下:
分享到:
相关推荐
数据字典 T+16.0数据字典数据字典数据字典数据字典
《用友U8V12.0数据字典详解及应用》 用友U8V12.0数据字典是一份详尽的数据库参考文档,专为开发和管理用友U8系统的数据库程序设计。这份资料以CHM(Compiled HTML Help)格式提供,包含了系统中的所有关键组件,如...
《用友U8-12.5版本数据字典》是针对企业信息化管理软件用友U8系统的一个重要参考资料,它详细记录了该系统数据库中的各个数据表结构、字段信息及其实用功能,旨在为用户提供数据库查询、系统维护以及二次开发的有力...
数据字典是数据库管理系统中的一个重要组成部分,它详细记录了数据库中所有对象的详细信息,包括数据表、字段、索引、视图等。在“NCC1909数据字典”中,我们可以预见到这将是一个关于NCC组织在1909年使用的特定数据...
U8数据字典
《用友PLM Professional 数据字典》是针对企业产品生命周期管理(Product Lifecycle Management,简称PLM)中的数据管理和治理提供的一项重要工具。数据字典在信息化系统中扮演着至关重要的角色,它详细记录了系统中...
在IT领域,数据字典(Data Dictionary)是一个至关重要的概念,尤其在数据分析、数据库管理和信息系统设计中。"ecology数据字典.zip" 提供的文件很可能是关于生态学研究的数据集详细信息,其中包含了对数据的全面...
泛微ECOLOGY9是一款企业级协同办公系统,它的数据字典是系统中非常关键的部分,用于定义和管理系统的各种数据结构和业务规则。数据字典通常包含了一系列的数据项、数据类型、数据来源、数据权限以及相关的业务逻辑,...
《U8V125数据字典》是一个专门针对用友U8企业管理软件V125版本的数据参考手册。在企业信息化管理中,数据字典是至关重要的工具,它详细记录了系统中所有数据元素的定义、属性以及它们之间的关系。下面我们将深入探讨...
【致远A6数据字典】是针对致远软件A6协同管理系统的专业术语,它是一种规范化的系统数据结构文档,用于详细记录和描述系统中各个数据表、字段及其关系,便于用户理解、管理和维护系统数据。在A6协同管理系统中,数据...
数据字典查看工具是数据库管理和维护中的重要辅助软件,它为用户提供了一个直观、便捷的方式来查看和理解数据库的结构和内容。在IT行业中,数据字典是数据库设计和管理中的核心部分,它包含了数据库中所有对象的详细...
《用友ERP-U8 v11.0数据字典》是专为理解和操作用友ERP-U8 v11.0系统而设计的重要参考资料。数据字典在任何信息系统中都扮演着核心角色,它包含了系统中所有数据元素的详细定义、属性和关系,是确保数据一致性和准确...
《NC6.5数据字典》是针对NC(Navision或Microsoft Dynamics NAV)系统的一款重要参考资料,它以帮助文件(CHM格式)的形式提供,旨在为用户和开发者提供详尽的数据库表信息和字段说明。NC系统是一款全球广泛使用的...
**泛微E8数据字典详解** 泛微E8是一款企业级协同办公系统,它集成了多种企业管理功能,如流程管理、知识管理、人力资源管理等。数据字典是该系统中一个至关重要的组成部分,它是对系统数据库中所有数据表及字段的...
《U9 6.0 离线数据字典详解》 在信息技术领域,数据字典是系统设计中不可或缺的一部分,它提供了关于数据库结构、字段、数据类型等关键信息的详细描述。对于企业级ERP(Enterprise Resource Planning)系统,如U9 ...
数据字典在IT行业中,尤其是数据库管理领域,是至关重要的工具。它提供了关于数据库中所有对象的详细信息,包括表、视图、索引、存储过程等,以及这些对象的属性和关系。在这个特定的场景中,我们关注的是一个名为...
OA系统数据字典是信息化管理中的重要组成部分,主要用于规范和管理组织内部的自动化办公系统(Office Automation System,简称OA系统)中的数据。数据字典在软件工程中扮演着记录和解释系统数据的角色,它详细列出了...
《用友NC57数据字典》是针对企业信息化管理软件用友NC系统的一个关键参考资料,主要用于解析NC57版本数据库中的字段含义。这个数据字典对于理解和操作该系统的数据库至关重要,尤其对于IT管理员、数据库管理员以及...
数据字典是系统中至关重要的一部分,它详细定义了系统中所使用的各种数据元素,包括数据类型、长度、取值范围、含义以及它们之间的关系。以下是对"金蝶KIS云旗舰数据字典"的详细解析: 1. **数据字典的作用**:数据...