惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
A
About on SuperTechFans
博客园 - Franky
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
B
Blog
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
Last Week in AI
Last Week in AI
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
V
V2EX
G
Google Developers Blog

博客园 - AK47+

项目总结 (转)racle 9i 数据库设计指引全集(4) (转)Oracle 9i 数据库设计指引全集(3) (转)Oracle 9i 数据库设计指引全集(1) (转)关于Oracle数据库中索引的维护经验谈 (转)oracle 分区表的建立方法 (转)关于oracle表空间的规划方法 (转)Oracle 分区索引详解 oracle startup时 ORA-00600错误解决 转:何时使用绑定变量性能反而差 (转)ORACLE 中ROWNUM用法总结! 跪求思路:大批量数据导出 阳春三月,放飞希望---希望今年不再碌碌无为 仓颉如果来做软件,一定是一位开山式人物 关于面试的一点感受 复习功课:对进程、线程、应用程序域的理解 园子里的兄弟,谁到这家公司面试过,来评一下笔试题了 推荐:一道让我惦记了一年的机试题 两个异常:a circular reference was detected while serializing及 Maximum length exceeded
(转)Oracle 9i 数据库设计指引全集(2)
AK47+ · 2009-02-27 · via 博客园 - AK47+

表空间数据文件采用自动扩展的方式,扩展容量快大小按2的整数倍(1M、2M、4M、8M、16M、32M、64M)进行扩展,创建表空间时尽量采用nologing选项。表空间的最大限制一般采用unlimited,除非确切知道表空间数据文件的最大使用范围。(一般windows 32位系统的文件最大2G,64位的unix系统系统文件最大128G,但也要注意文件格式设定的文件大小),建议最大为2G。表空间采用local管理方式,例如:
  
  CREATE TABLESPACE TBS_USERINFO
  DATAFILE
  '/oradata/tbs_userinfo.dbf'
  SIZE 8M
  REUSE
  AUTOEXTEND ON
  NEXT 2M
  MAXSIZE UNLIMITED
  NOLOGGING
  EXTENT MANAGEMENT
  LOCAL
  AUTOALLOCATE
  SEGMENT SPACE MANAGEMENT AUTO;
  
  1.4 裸设备的使用
  一个scsi设备可以 14个分区,unix操作系统256个分区,性能比文件系统方式高15%左右,空间大于要小于(实际分区大小减两个ORACLE的数据块),比如100M,大于为100000K,推荐在unix使用软连接(ln)方式把裸设备形成文件,用加入表空间时加resue 选项,当然也可只接把设备加入表空间,移动裸设备使用dd命令
  
  对于windows平台,oracle提供软连接工具,实现裸设备的使用,计算一条记录的长度
  
  2 数据库逻辑设计原则
  2.1 命名规范
  2.1.1 表属性规范
  
  2.1.1.1 表名
  
  前缀为Tbl_ 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。表名称不能用双引号包含。
  
  2.1.1.2 表分区名
  
  前缀为p 。分区名必须有特定含义的单词或字串。
  
  例如 :tbl_pstn_detail 的分区p2004100101表示该分区存储 2004100101时段的数据。
  
  2.1.1.3 字段名
  
  字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。
  
  2.1.1.4 主键名
  
  前缀为PK_。主键名称应是 前缀+表名+构成的字段名。如果复合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。
  
  2.1.1.5 外键名
  
  前缀为FK_。外键名称应是 前缀+ 外键表名 + 主键表名 + 外键表构成的字段名。表名可以去掉前缀。
  
  2.1.2 索引
  
  4.1.2.1 普通索引
  
  前缀为IDX_。索引名称应是 前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。
  
  2.1.2.2 主键索引
  
  前缀为IDX_PK_。索引名称应是 前缀+表名+构成的主键字段名,在创建表时候用using index指定主键索引属性。
  
  2.1.2.3 唯一所以
  
  前缀为IDX_UK_。索引名称应是 前缀+表名+构成的字段名。
  
  2.1.2.4 外键索引
  
  前缀为IDX_FK_。索引名称应是 前缀+表名+构成的外键字段名。
  
  2.1.2.5 函数索引
  
  前缀为IDX_func_。索引名称应是 前缀+表名+构成的特征表达字符。
  
  2.1.2.6 蔟索引
  
  前缀为IDX_clu_。索引名称应是 前缀+表名+构成的簇字段。
  
  2.1.3 视图
  
  前缀为V_。按业务操作命名视图。
  
  2.1.4 实体化视图
  
  前缀为MV_。按业务操作命名实体化视图。
  
  2.1.5 存储过程
  
  前缀为Proc_ 。按业务操作命名存储过程
  
  2.1.6 触发器
  
  前缀为Trig_ 。触发器名应是 前缀 + 表名 + 触发器名。
  
  2.1.7 函数
  
  前缀为Func_ 。按业务操作命名函数
  
  2.1.8 数据包
  
  前缀为Pkg_ 。按业务操作集合命名数据包。
  
  2.1.9 序列
  
  前缀为Seq_ 。按业务属性命名。
  
  2.1.10 表空间
  
  2.1.10.1 公用表空间
  
  前缀为Tbs_ 。 根据存储的特性命名,例如: tbs_parameter 。
  
  2.1.10.2 专用表空间

    Tbs_<表名称>_nn。该表空间专门存储指定的某一个表,或某一表的若干个分区的数据
  
  2.1.11 数据文件
  
  <表空间名>nn.dbf 。nn =1,2,3,4,…等。
  
  2.1.12 普通变量
  
  前缀为Var_ 。 存放字符、数字、日期型变量。
  
  2.1.13 游标变量
  
  前缀为Cur_ 。存放游标记录集。
  
  2.1.14 记录型变量
  
  前缀为Rec_ 。 存放记录型数据。
  
  2.1.15 表类型变量
  
  前缀为Tab_ 。 存放表类型数据。
  
  2.1.16 数据库
  
  前缀为dbl_ 。 表示分布式数据库外部链接关系。
  
  2.2 命名
  2.2.1 语言
  
  命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。命名不允许使用中文或者特殊字符。
  
  英文单词使用用对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名
  
  当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用用简或缩写,缩写要基本能表达原单词的意义。
  
  当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。
  
  2.2.2 大小写
  
  名称一律大写,以方便不同数据库移植,以及避免程序调用问题。
  
  2.2.3 单词分隔
  
  命名的各单词之间可以使用下划线进行分隔。
  
  2.2.4 保留字
  
  命名不允许使用SQL保留字。
  
  2.2.5 命名长度
  
  表名、字段名、视图名长度应限制在20个字符内(含前缀)。
  
  2.2.6 字段名称
  
  同一个字段名在一个数据库中只能代表一个意思。比如telephone在一个表中代表“电话号码”的意思,在另外一个表中就不能代表“手机号码”的意思。
  
  不同的表用于相同内容的字段应该采用同样的名称,字段类型定义。
  
  2.3 数据类型
  2.3.1 字符型
  
  固定长度的字串类型采用char,长度不固定的字串类型采用varchar。避免在长度不固定的情况下采用char类型。如果在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。
  
  2.3.2 数字型
  
  数字型字段尽量采用number类型。
  
  2.3.3 日期和时间
  
  2.3.3.1 系统时间
  
  由数据库产生的系统时间首选数据库的日期型,如DATE类型。
  
  2.3.3.2 外部时间
  
  由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用:YYYYMMDDHH24MISS。
  
  2.3.3.3 大字段
  
  如无特别需要,避免使用大字段(blob,clob,long,text,image等)。
  
  2.3.3.4 唯一键
  
  对于数字型唯一键值,尽可能用系列sequence产生。
  
  2.4 设计
  2.4.1 范式
  
  如无性能上的必须原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余,但是如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF.如非确实必要,避免一个字段中存储多个标志的做法。如11101表示5个标志的一种取值。这往往是增加复杂度,降低性能的地方。