㈠ 如何为数据库取名
在数据库中创建对象时,管理员也要对其进行取名。现在谈谈取名的一些技巧。 一、表名大小写的控制 一般情况下Oracle数据库中的表名或者列名是不区分大小写的。在创建表或者列的时候,即使管理员采用了小写的名字,数据库在将其保存到数据字典之前,会先将其转换为大写,再将他们保存到数据字典中。这也就是为什么我们取名使用小写的子母取名,但是下次查看表的名字的时候,却变成了大写。 虽然说Oracle数据库中表与列等数据库对象对于大小写是不敏感的,但是如果数据库管理员确实有需要要让数据库系统对表的名字区分大小写,这也是可以做到的。通常情况下,如果把名字使用双引号括起来,则在Oracle数据字典中就会成为区分大小写的名字。不过笔者这里要提醒各位数据库管理员,虽然说从技术上可以让数据库系统强制取分大小写,但是在实际工作中,包括在内的绝大部分数据库管理员可能都不建议这么做。因为如果有混合的大小写存在,那么在引用这些表或者列名称的时候就需要特别的小心。因为即使用户或者数据库管理员有着过目不忘的本领,也很难准确的记住这些名称的大小写歌时。如果数据库管理员硬要这么做的话,那么很可能是自寻烦恼。在查询时或者其他作业时,要严格区分大小写那是一件很头疼的事情。为此,对于这个大小写的控制,笔者建议数据库管理员要谨慎使用。除非有充分的理由,否则的话,不要轻易使用这个双引号来控制大小写。 这个双引号不仅可以用来控制大小写,还有一个比较特殊的作用,就是用引用一些特殊的字符。如在建立表格的时候,需要设置一个名牌号的字段。有些数据库管理员习惯使用num#类似的名称。这不会违反数据库的取名规则。不过在处理的时候会比较麻烦。如利用create语句建立表格的时候,需要给这个字段名称加上双引号。否则的话,执行这条语句的时候,数据库会拒绝执行并向用户提示错误信息。类似的特殊符号还包括一个$美元符号。他们在建立表格的时候,在语句中都需要使用双引号。不过字段建立好之后,在引用这些对象的时候,不需要使用双引号了。同理,虽然Oracle数据库支持这些特殊符号,但是笔者不鼓励数据库管理员在表或者列的取名中采取这些特殊的符号。这有可能给后续的引用带来不必要的麻烦。 二、牢记取名空间 在Oracle数据库中,跟其他的数据库不同,有一个叫做取名空间的概念。在同一个取名空间中,其名字不可以重复。如表与视图就共享同一个取名空间,为此就要求不仅表的名字不能够相同,而且表的名字与视图的名字也不能够相同。因为他们处于同一个取名空间。类似的,表与函数也是同处于一个表空间,为此他们也不能够同名。不过表与索引、表与约束等等却属于不同的取名空间。也就是说,表的名字可以与约束的名字相同。所以说,数据库管理员在给表等对象取名的时候,一定要了解哪些对象共享同一个名称空间。如果在同一个名称空间内的,即使对象不同(如视图与表),但是他们仍然不能够取相同的名字。 为了避免同一个取名空间内重名的现象,笔者建立在取名的时候最好能够根据对象的不同加上对象的固有前缀。如大部分的数据库管理员,在给表取名的时候,一般不会表名前面加上表对象的前缀。但是在定义函数或者视图对象的时候,则会加上前缀。如在函数前面可能会加上FN的前缀,而在视图前面可能会加上vi的前缀。如此的话,在同一个取名空间内也不用担心对象重名的问题。不过无论怎么说,这个取名空间的概念数据库管理员必须牢记。即使在实际的工作中,可以通过前缀等手段轻易的避免这个陷阱,但是在Oracle数据库管理员的认证考试中,这个取名空间也是一个必要的知识点。所以无论从实际的工作还是认证考试的需要,对于这个取名空间管理员都必须要有一个清晰的认识。 三、在表、索引、约束、列之间设置密切的联系 在创建表的同时,可以给表中的某些列添加索引、约束等等。如在员工信息表中,会设置员工编号唯一性约束。在创建约束的时候,也需要对约束进行取名。虽然说也约束与表、列不属于同一个取名空间,所以在取名的时候基本上没有限制。但是为了后续使用的方便,笔者对约束的取名还有一个小小的建议。简单的说,就是给一个与表直接有关的其他对象具有该表的名字是一种好的做法。如现在有一张用户表名字叫做ad_user(在表名前面一般不加对象名,但是可以根据应用软件的模块设计加上模块的前缀),这种表中有一个字段叫做叫做vlaue,用来存储员工的编号。在表设计的时候,需要给这个字段加一个索引。那么这个索引的名字就可以取名为IDX_USER_VALUE(也就是索引前缀+表名+字段名的形式)。这么做有什么好处呢?一是可以确保相关对象的名字不会重复。因为表的名字不会重复,所以将表的名字与列的名字一起组成某个对象的名字,那么其重复的几率可以说基本上没有。二是方便管理员阅读、理解、维护等等。一看到索引或者约束对象的名字时,就可以看到这个是索引或者约束是用在哪个表的那个字段上的。而且也可以知道这个约束是唯一性约束还是检查约束;索引时主键索引还是外键索引。给数据库管理员一目了然的感觉。这对于后续的维护、升级、调整、引用等等都提供了方便。 虽然说Oracle数据库中表与列等数据库对象对于大小写是不敏感的,但是如果数据库管理员确实有需要要让数据库系统对表的名字区分大小写,这也是可以做到的。通常情况下,如果把名字使用双引号括起来,则在Oracle数据字典中就会成为区分大小写的名字。不过笔者这里要提醒各位数据库管理员,虽然说从技术上可以让数据库系统强制取分大小写,但是在实际工作中,包括在内的绝大部分数据库管理员可能都不建议这么做。因为如果有混合的大小写存在,那么在引用这些表或者列名称的时候就需要特别的小心。因为即使用户或者数据库管理员有着过目不忘的本领,也很难准确的记住这些名称的大小写歌时。如果数据库管理员硬要这么做的话,那么很可能是自寻烦恼。在查询时或者其他作业时,要严格区分大小写那是一件很头疼的事情。为此,对于这个大小写的控制,笔者建议数据库管理员要谨慎使用。除非有充分的理由,否则的话,不要轻易使用这个双引号来控制大小写。
㈡ 什么是数据字典
数据字典:关于数据的信息集合。也就是对数据流图中包含的所有元素的定义的集合
数据字典的内容:
1.由对下列四类元素的定义组成:
(1)数据流
(2)数据流分量(数据元素)
(3)数据存储
(4)处理
(注:本书所指主要是由对数据的定义组成)
2.除数据定义外,数据字典还应包括:
记录数据元素的下述信息
(1)一般信息(名字,别名,描述)
(2)定义(数据类型,长度,结构)
(3)使用特点(值的范围,使用频率,使用方式,输入/输出/本地条件值等)
(4)控制信息(来源,用户,使用它的程序,改变权,使用权等)
(5)分组信息(父结点,从属结构,物理位置——记录,文件和数据库等)
三、数据的定义方法:
数据字典中的定义:
就是对数据自顶向下的分解,分解到不需要进一步定义为止。
数据元素组成数据的方式:
(1)顺序:以确定次序连接两个或多个分量
(2)选择:从两个或多个可能的元素中选取一个
(3)重复:把指定的分量重复零次或多次
(4)可选:一个分量是可有可无的
3.在数据字典中建议使用下列符号:
(1)=:等价于(定义为)
(2)+:和(连接两个分量)
(3)[ ]:或(从方括号内列出的若干个分量中选择一个)
(4)():可选(圆括号里的分量可有可无)
四、数据字典的用途
数据字典最重要的用途是作为分析阶段的工具
有助于改进分析员,发小组之间的通信。
有助于改进不同开发人员,不同开发小组之间的通信
有助于要求所有开发人员根据公共数据字典描述数据和设计模块,避免许多麻烦口问题
2.数据字典是开发数据库的第一步。
五、数据字典的实现:
三种常见的途径:
全人工过程(数据字典卡片)
全自动化过程(利用数据字典处理程序)
混合过程
六、数据字典应具有的特点:
通过名字能方便地查阅数据的定义
没有冗余
尽量不重复在规格说明的其他组成部分中已经出现的信息
容易更新和修改
能单独处理描述每一个数据元素的信息
定义的书写方法简单、方便且严格
产生交叉表、错误检测、一致性校验等
㈢ 什么是数据流图与数据字典
数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
数据流程图中有以下几种主要元素:
→:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
□:数据源(终点)。代表系统之外的实体,可以是人、物或其他软件系统。
○:对数据的加工(处理)。加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。
〓:数据存储。表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。
在单张数据流图时,必须注意以下原则:
1.一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。
2.保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
3.每个加工必须既有输入数据流,又有输出数据流。
4.所有的数据流必须以一个加工开始,或以一个加工结束。
数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。
Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。
1. 静态数据字典
这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。
user_*
该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
all_*
该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)
dba_*
该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。
由于三者具有相似性,下面以user_为例介绍几个常用的静态视图:
user_users视图
主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。例如执行下列命令即可返回这些信息。
select * from user_users
user_tables视图
主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。执行命令为:select * from user_tables
user_objects视图
主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。例如, 需要获取一个名为“package1”的对象类型和其状态的信息,可以执行下面命令:
select object_type,status
from user_objects
where object_name=upper(‘package1’);
这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大小写敏感的,所以在实际操作中一定要注意大小写匹配。
user_tab_privs视图
该视图主要是存储当前用户下对所有表的权限信息。比如,为了了解当前用户对table1的权限信息,可以执行如下命令:
select * from user_tab_privs where table_name=upper('table1')
了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。
前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。
2. 动态数据字典
Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。
v$access
该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
运行如下命令:
select * from v$access
结果如下:(因记录较多,故这里只是节选了部分记录)
SID
OWNER OBJECT TYPE
27 DKH V$ACCESS CURSOR
27 PUBLIC V$ACCESS SYNONYM
27 SYS DBMS_APPLICATION_INFO PACKAGE
27 SYS GV$ACCESS VIEW
v$session
该视图列出当前会话的详细信息。由于该视图字段较多,这里就不列详细字段,为了解详细信息,可以直接在sql*plus命令行下键入:desc v$session即可。
v$active_instance
该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。
v$context
该视图列出当前会话的属性信息。比如命名空间、属性值等。
3.小结
以上是Oracle的数据字典方面的基本内容,还有很多有用视图因为篇幅原因这里不能一一讲解,希望大家在平时使用中多留心。总之,运用好数据字典技术,可以让数据库开发人员能够更好的了解数据库的全貌,这样对于数据库优化、管理等有极大的帮助。
㈣ 以下英文简写 咋写啊
本文介绍了一些常见的英文缩写及其含义:
以上就是这些英文缩写的简写形式和对应解释,有助于理解和记忆各种专业术语和概念。