`
ajuanlong
  • 浏览: 107763 次
社区版块
存档分类
最新评论

数据字典

 
阅读更多

§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系统的所有包、存储过程、函数的源代码。它的列及说明如下:


分享到:
评论

相关推荐

    单项海洋环境影响评价等级表.docx

    单项海洋环境影响评价等级表.docx

    基于AT89C51 单片机为核心器件,程序设计采用C 语言,Keil 软件编译程序,配以相关外围接口电路,实现了方波、锯齿波、正弦波、三角波、梯形波五种特定波形的产生【论文+源码】

    【作品名称】:基于AT89C51 单片机为核心器件,程序设计采用C 语言,Keil 软件编译程序,配以相关外围接口电路,实现了方波、锯齿波、正弦波、三角波、梯形波五种特定波形的产生【论文+源码】 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:本设计中的波形发生器系统要求基于51单片机,因此选用以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个波形发生器的硬件系统。使用C 语言对单片机编程可产生相应的正弦波,方波,三角波,锯齿波梯形波波形信号。在程序运行时,当接收到按键信息后,需要输出某种波形时,调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出即可得到要求的波形。 当需要改变频率时只需要改变单片机的波形发生程序中的递增或者递减变量即可。 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础看懂代码,自行调试代码并解决报错,能自行添加功能修改代码。

    数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 完全多元图的最大匹配问题研究 共9页.pdf

    数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 完全多元图的最大匹配问题研究 共9页.pdf

    毕设源码-基于Python Web的社区爱心养老管理系统设计与实现_hvhwz--论文-期末大作业+说明文档.rar

    本项目是基于Python Web的社区爱心养老管理系统,旨在为社区养老提供一个全面、高效的管理平台。系统集成了用户管理、老人信息管理、健康管理、活动管理、服务管理等多项功能,通过简洁明了的界面,让管理人员能够轻松地进行各项操作,从而更好地服务于社区老人。 在架构上,系统采用B/S模式,前端使用HTML、CSS、JavaScript等技术,搭配Vue.js框架,实现了用户友好的交互界面;后端则基于Python的Django框架,提供了稳定且高效的服务端逻辑处理能力。数据库选用MySQL,确保了数据的存储安全和高效访问。 开发此项目的目的,不仅是为了满足计算机相关专业学生的毕设需求,提供一个实战练习的平台,更是希望通过实际项目的开发,培养学生的专业技能和实践能力,同时,也希望能为社区养老服务贡献一份力量,通过科技手段,让老年人的生活更加美好、便捷。

    教学版单体spring-petlinic,课程《Kubernetes微服务实践》.zip

    教学版单体spring-petlinic,课程《Kubernetes微服务实践》

    密码学领域的Vigenère多表密码算法解析与实现

    内容概要:本文介绍了16世纪法国外交家Blaise de Vigenère提出的一种多表密码算法,详细解释了Vigenère密码的加密解密机制及其历史应用背景。特别提到了当明文M的长度超过密钥K的情况下,密钥会被重复使用的技巧。 适合人群:对古典密码学感兴趣的初学者,以及希望深入理解密码编码基本原理的学习者。 使用场景及目标:了解Vigenère密码的工作原理,掌握简单的加解密技术,增强信息安全意识。能够自行实施加解密操作,理解经典密码学的基本概念和技术。 其他说明:本文不仅提供了理论讲解,还给出了具体的例子帮助理解和实操练习。

    STM32-EMBPI.PDF

    STM32-EMBPI : Embedded Pi, triple-play platform for STM32, Raspberry Pi and Arduino

    电子电气架构-汽车网络管理策略分析(整车至单件层面)

    内容概要:本文主要探讨了电子电气架构中的网络管理策略,尤其是针对汽车中多个ECU(Electronic Control Unit)的协同管理和低功耗设计。通过引入网络管理状态机的概念,详细介绍了各状态(如常规运行状态、重复报文状态、准备睡眠模式、预睡眠模式、深度睡眠模式等)的具体运作机制及其在汽车电子系统中的重要性。文中还讨论了网络管理报文的设计与传输规则,特别是控制位向量CBV的定义,强调了网络管理在节能降耗方面的关键作用。 适用人群:具备一定汽车电子工程背景的专业人士或研究者,尤其对网络管理及低功耗设计感兴趣的工程师。 使用场景及目标:适用于汽车设计与制造企业的研发部门,帮助其优化电子控制系统,提升产品能效比,降低维护成本,提高用户体验。通过对网络管理策略的理解与应用,达到降低车载电子系统功耗的目的,进而延长电动车的续航能力和降低传统燃油车的油耗。 其他说明:文章不仅提供了理论上的阐述,还包括了具体的操作指南和技术细节,有助于从业者深入理解和实施网络管理方案。同时提醒在现代信息化社会中保持屏蔽力的重要性,鼓励读者专注于自己的发展目标,避免无效的精力分散。

    英飞凌TC3XX-MCAL培训PPT

    英飞凌TC3XX_MCAL培训PPT

    缴费综合服务系-JAVA-基于springBoot高校网上缴费综合服务系统设计与实现

    缴费综合服务系-JAVA-基于springBoot高校网上缴费综合服务系统设计与实现

    Python与机器学习方向,《TensorFlow基础教程》课程仓库.zip

    Python与机器学习方向,《TensorFlow基础教程》课程仓库

    本科毕业设计 基于Python+Django教学资源管理系统网站详细文档+全部资料.zip

    【资源说明】 本科毕业设计 基于Python+Django教学资源管理系统网站详细文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    电动汽车与软件定义汽车(SDV)时代的汽车行业数字化转型

    内容概要:文章详细讨论了汽车行业正经历的重大变革,尤其是电动汽车(EV)和软件定义汽车(SDV)对行业的深远影响。随着技术的进步,汽车的差异化优势不再仅限于机械硬件,而是越来越多地取决于软件和服务。这一转型要求汽车制造商重新评估现有的解决方案堆栈,加大在电气化和连接性等领域的投资,以实现车型的电气化并支持可扩展性和全生命周期更新。同时,汽车的开发重点已经从机电领域转向了芯片和软件领域,强调基于云计算的协作开发方法。 适合人群:汽车行业专业人士、汽车电子工程师、技术研发人员及政策制定者。 使用场景及目标:帮助读者理解和把握汽车行业数字化转型的趋势,指导他们在电动汽车和软件定义汽车领域做出正确的技术投资和战略调整。 其他说明:本文不仅讨论了技术变革,还深入剖析了由此带来的商业和运营模式的变化,为汽车行业的未来发展方向提供了洞见。

    微信课堂助手 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程.zip

    微信课堂助手 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程

    新设博士后科研工作站备案申请表.xlsx

    新设博士后科研工作站备案申请表.xlsx

    的玩具 Python 实现.zip

    的玩具 Python 实现手套蟒蛇GloVe的玩具 Python 实现。Glove 产生单词的密集向量嵌入,其中一起出现的单词在生成的向量空间中靠得很近。虽然这会产生与word2vec (在gensim中有一个很棒的 python 实现)类似的嵌入,但方法不同GloVe 通过对语料库词共现矩阵的对数进行分解来产生嵌入。代码采用异步随机梯度下降,用Cython实现,很可能存在大量bug。安装使用 pip 从 pypi 安装pip install glove_python。OSX 用户请注意由于使用 OpenMP,glove-python 无法在 Clang 下编译。要安装它,您需要一个较新的版本gcc(例如来自 Homebrew)。应该由 接收setup.py如果没有,请打开一个问题。使用 OSX 中包含的默认 Python 发行版进行构建也不受支持请尝试 Homebrew 或 Anaconda 中的版本。用法生成嵌入分为两个步骤从语料库中创建共现矩阵,然后使用它生成嵌入。该类Corpus有助于从可交互的标记构建语料库该类Glove训练嵌入(使

    消息中间件rabbitmq学习的一些代码、笔记.zip

    消息中间件rabbitmq学习的一些代码、笔记

    java毕设项目之基于javaweb宿舍管理系统(源码+说明文档+mysql).zip

    环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行

    空气质量现状评价表.docx

    空气质量现状评价表.docx

    建设工程施工现场消防安全检查表.docx

    建设工程施工现场消防安全检查表.docx

Global site tag (gtag.js) - Google Analytics