怎样管理好ORACLE数据表

怎样管理好ORACLE数据表,第1张

ORACLE数据库中 表是最基本的内容 可以说 表设计的好坏直接跟数据库的性能相关 所以 在设计表的时候 除了要遵循其固有的数据库准则之外 还需要看个人的数据库管理经验 下面我就把这些经验分享一下 或许对大家有所帮助 一 表该存放在哪里? 我们都知道 在ORACLE数据库中 使利用空间这个概念来管理表对象的 在数据库创建的时候 数据库中已经建立了一些表空间 那么当我们新建立表的时候 这个新表的位置该放在什么地方呢?这就好像吃饭时的坐的位置一样 是有讲究的 一般来说 我们在新建表的时候 至少要遵循如下建议 一是在数据库创建的时候 在数据库中已经有了一个SYSTEM的表空间 一般情况下 这个表空间中 只包含数据字典及Oracle系统对象 如果我们将我们的表建立在这个空间上的话 那是要降低数据库的性能的 所以 一般我们是不建议用户把表格建立在这个空间上 但是 若我们不只一个人维护数据库 如有八个人共同设计数据库系统时 如何才能保证其他用户不在SYSTEM表空间中建立数据库表格呢?最好的办法就是通过权限控制 如我们可以给每个数据库设计人员指定一个默认的表空间 让他们只能在这个表空间中建立表格 如此的话 就能防止他们在SYSTEM表空间中建立自己的数据表格 从而对数据库的运行性能产生不良影响 所以 若给每个用户设置默认表空间的话 那么用户在建立具体的表时 不用具体指定表空间了 二是我们在为某个应用设计数据库的时候 最好先对表的空间进行规划 一般情况下 不要把数据表随意的分散到不同的表空间中去 如我们在为一个ERP系统设计数据库的时候 若把采购部门相关的表跟销售部门相关的表放到两个不同的表空间中去 这是不明智的做法 这么处理的话 会降低某些数据库管理和维护 *** 作的效率 如数据的备份与恢复 *** 作而且 也无法集中管理属于某个特定应用的数据 所以 我们一般建议 在规划数据库表空间的时候 把相同应用的表放在同一个表空间中去 如果要区分不同部门或者不同模块的表的话 我们可以在表的命名上动脑子 如我们在设计ERP系统的数据库中 可以根据其应用模块的不同 在前面加上前缀来进行识别 如跟系统基本配置相关的表 我们可以用AD为前缀而跟销售部门相关的表 我们可以加上SA前缀等等 如此的话 这些表具体是属于哪个模块的 就一清二楚了 完全没有必要为此设置不同的表空间 这是ORACLE数据库初学者经常会犯的错误 主要是对ORACLE表空间的定义不是很熟悉所导致的 二 对预计存储数量比较大的表时 要给与额外的重视 有些表非常的大 我们这边说的大 不一定是说结构复杂 而是指在这个表格中 预期会存储比较多的数据 为了提高对这个表格的处理效率 我们在事先要做出一定的安排 否则的话 后续对这些大表进行查询 插入等 *** 作的话 速度会很慢 所以 我们就有必要在数据库设计的时候 先预先估计一下表的数据存储量 把一些数据量大的表格 做一些额外的设置 如在ERP软件的数据库设置中 一般来说 产品数据与物料清单数据这两个表的数据量会比较大而从长远看的话 销售订单 采购订单 生产订单 记账凭证等这种单据类相关的表格其数据量也会比较大 一年两年可能感觉不出来 但是 到十年后 这个纪录数量就会很庞大 而像ERP系统这种大型的信息化管理项目 用个几十年时很正常的事情 而且 为了记录的完整性 也不建议用户把以前的数据删除 所以 为这种应用进行数据库设计的时候 要充分考虑这些大表的性能问题 具体的来说 设计大表的时候 可以考虑遵循如下的建议 一是不要为大表设置存储的限制 在ORACLE数据库中 可以为每张表格设置存储配额限制 如此的话 表最大容量就不能超过这个限制 对于一些数据容量比较小的表格 这么设置时合理的 可以提高空间的利用率 但是 若数据量比较大的话 就不建议事先设置表的存储空间了 如ERP系统的销售订单表 其刚开始可能记录量很小 第一年预计只有 G的记录容量 但是 估计在十年后 这个记录容量就会达到 G了 在这种情况下 我们怎么来给其设置存储空间呢?一开就设置 G空间 这也是不合理的 而且 设置存储空间 就意味着有可能产生存储碎片 从而影响到数据查询的效率 所以 在数据库表的设计过程中 若某些应用的表可能会有比较大的数据容量时 建议不要对其存储空间做出任何的限制 二是要为这大表分配足够的临时空间 如我们使用ERP系统时 要查询产品资料信息 我们都知道 产品信息的话 有些企业这个纪录数非常的庞大 而且在查询时 我们还会经常的进行排序 *** 作 如有时候会按照产品编码对查询出来的数据进行排序 当记录少的话 还好但是 当记录多的话 这个排序动作 要求具有比较大的临时存储空间 所以 当某个表预计会有很大的记录数量的时候 我们就要给其分配足够多的临时空间 临时空间的存储参数设置取决于临时表空间的默认储存参数设置 我们可以更改这些参数 以达到我们对要求 若没有给大表分配足够多的临时空间的话 则排序的动作将会很慢 而且很可能不成功 三是要考虑将表与表的索引分离存放 大表所对应的索引通常也比较大 一般来说 索引的数量是随着表记录的数量增加而增加 两者是接近于一个正比例的关系 所以 通常表的记录容量大的时候 索引数量也会很庞大 针对这种情况 我们考虑突破我们上面讲的表空间的规则定义 而考虑把表和他的索引分别存储于不同的表空间中 甚至在条件允许的情况下 分别存储于不同的硬盘中 这么做的好处是什么呢?最大的好处是让索引比较容易的获得所需要的连续的存储空间 从而提高输入输入的效率 通俗的说 就是可以提高数据的查询效率 如不这么处理的话 查询大容量的记录的话 数据库可能需要花费 秒而如此设计的话 就可能把时间缩短为 秒 这是一个很明显的性能改善 三 如何给表命名? 上面我在讲如何为表分配存储空间的时候 已经讲到过这方面的问题 下面 我就将对这个问题进行详细的描述 以帮助数据库管理员掌握一套好的数据库命名规则 首先 毋庸置疑的 在为标命名的时候 要遵循ORACLE数据库的基本命名规则 如不能以数字开头为表命名 如不能利用数据库的关键字为表命名 如表的名字不能重复等等 这些是最基本的要求 就不用我多费口舌了 除了要遵循这些基本的命名规则外 在实际工作中 为了数据库后续的维护等方面出发 我们还是要遵循一些额外的规则 这些规则跟ORACLE定义的规则不同 我们所讲的规则没有约束力 可以说 只是业界的一些共识而已 你若不怎么处理 ORACLE数据库也不会说你错误 只是后续维护的时候 会比较麻烦而已 一是在对数据库命名的时候 最好能跟体现表的分类关系 如最常见的 我们在设计数据库的时候 表都是按系统的具体模块来区分的 如根据前端系统要求的不同 数据库的表大致可以分为系统基本配置表 销售模块表 采购模块表 报表模块表等等 我们可以根据这些模块的不同 分别给与不同的前缀来区分 这么做的好处是很明显的 如一看到表最大名字 就可以知道这个表是属于哪个应用的 哪个模块的 这无疑可以提高数据库设计与前台软件开发的效率 同时 数据库中默认的排序规则是按名字来排序的 所以 为表格设置类别前缀的话 可以把同一类的表格排在一起 方便我们察看 二是对表格命名的时候 要考虑可读性 而不能随便阿狗阿猫的乱取名字 最常见的是 那些刚学数据库的人 在表命名的时候 如要建几张测试表 就会随便命名如TEST TEST 之类的 虽然这只是测试 但是 也不符合我们的命名过则 要做测试的话 那就以TEST开头 然后后面加上具体要测试的内容 如此的话 我们才可以通过表的名字知道该表具体的用途 而不用打开表去看里面具体的结构或者注释才能知道我们需要的信息 所以 在设计表的名字的时候 还要关注一下其的可读性 lishixinzhi/Article/program/Oracle/201311/18317

第1章 Oracle10g简介 1

1.1 Oracle10g产品概述 1

1.2 Oracle10g数据库系统的体系结构 1

1.2.1 Oracle10g体系结构概述 1

1.2.2 网格结构 2

1.2.3 数据库逻辑结构 3

1.2.4 数据库物理结构 7

1.2.5 数据库例程 8

1.2.6 内部存储结构 8

1.2.7 进程结构 9

1.2.8 应用程序结构 11

1.2.9 事务 13

习题 13

第2章 安装和卸载Oracle10g数据库 15

2.1 安装前准备 15

2.1.1 安装Oracle10g数据库的硬件需求 15

2.1.2 安装Oracle10g数据库的软件需求 15

2.2 Oracle10g数据库安装过程 16

2.2.1 服务器安装过程 16

2.2.2 客户端安装过程 20

2.2.3 设置环境变量 21

2.2.4 常用Oracle服务 22

2.3 完全卸载Oracle10g 23

习题 25

第3章 Oracle数据库管理工具 26

3.1 企业管理器 26

3.1.1 EnterpriseManager10g 26

3.1.2 OracleEnterpriseManager 30

3.2 OracleAdministrationAssistant 31

3.2.1 启动OracleAdministrationAssistant 31

3.2.2 设置默认实例和注册表变量 31

3.2.3 设置 *** 作系统数据库管理员和 *** 作员 32

3.2.4 Oracle数据库管理 32

3.3 网络配置工具 33

3.3.1 OracleNet简介 33

3.3.2 NetManager 34

3.3.3 NetConfigurationAssistant 36

3.4 SQL*Plus和iSQL*Plus 38

3.4.1 使用SQL*Plus 38

3.4.2 使用iSQL*Plus 41

习题 43

第4章 数据库管理、配置和维护 44

4.1 关闭和启动数据库 44

4.1.1 Oracle数据库实例的状态 44

4.1.2 关闭数据库实例 44

4.1.3 启动数据库实例 47

4.1.4 改变数据库的状态 49

4.2 创建和删除数据库 49

4.2.1 创建数据库 49

4.2.2 删除数据库 56

4.3 配置数据库 57

4.3.1 查看和设置内存参数 57

4.3.2 还原管理 59

4.3.3 初始化参数管理 60

4.4 用户管理 63

4.4.1 Oracle数据库用户类型 63

4.4.2 默认数据库管理员用户 64

4.4.3 数据库管理员(DBA)的权限 64

习题 65

第5章 数据库存储管理 67

5.1 表空间管理 67

5.1.1 查看表空间信息 67

5.1.2 创建表空间 68

5.1.3 设置和修改表空间属性 70

5.1.4 删除表空间 72

5.1.5 段和数据块管理 72

5.1.6 撤销表空间 73

5.2 控制文件管理 74

5.2.1 创建控制文件 74

5.2.2 恢复控制文件 76

5.2.3 删除控制文件 76

5.2.4 查看控制文件信息 76

5.3 重做日志管理 77

5.3.1 重做日志的基本概念 77

5.3.2 查看重做日志信息 78

5.3.3 创建重做日志组和成员 80

5.3.4 重命名重做日志成员 81

5.3.5 删除重做日志组和成员 81

5.3.6 清空重做日志文件 82

5.4 归档日志管理 82

5.4.1 归档日志文件和归档模式 82

5.4.2 管理归档模式 83

5.4.3 指定归档目的地 84

5.4.4 查看归档日志信息 84

习题 86

第6章 数据库安全管理 87

6.1 Oracle认证方法 87

6.1.1  *** 作系统身份认证 87

6.1.2 网络身份认证 87

6.1.3 Oracle数据库身份认证 87

6.1.4 数据库管理员认证 88

6.2 用户管理 90

6.2.1 创建用户 90

6.2.2 修改用户 92

6.2.3 权限管理语句 93

6.2.4 删除用户 94

6.3 角色管理 95

6.3.1 Oracle系统角色 95

6.3.2 创建角色 96

6.3.3 对角色授权 98

6.3.4 指定用户的角色 99

6.3.5 修改角色 99

6.3.6 删除角色 99

习题 99

第7章 数据库对象管理 101

7.1 表管理 101

7.1.1 创建表 101

7.1.2 修改表 105

7.1.3 删除表 106

7.1.4 插入数据 107

7.1.5 修改数据 108

7.1.6 删除数据 108

7.2 数据查询 108

7.2.1 SELECT语句的基本应用 108

7.2.2 定义显示标题 110

7.2.3 设置查询条件 110

7.2.4 对查询结果排序 111

7.2.5 使用统计函数 112

7.2.6 连接查询 113

7.3 视图管理 114

7.3.1 视图的基本概念 114

7.3.2 视图管理页面 114

7.3.3 创建视图 115

7.3.4 修改视图 116

7.3.5 删除视图 116

7.4 索引管理 117

7.4.1 索引的概念 117

7.4.2 索引管理页面 118

7.4.3 创建索引 118

7.4.4 修改索引 120

7.4.5 删除索引 120

7.5 序列管理 120

7.5.1 创建序列 121

7.5.2 修改序列 122

7.5.3 删除序列 123

7.5.4 序列的使用 123

习题 124

第8章 备份和恢复 125

8.1 使用EM进行备份和恢复 125

8.1.1 使用EM备份数据库 125

8.1.2 使用EM恢复数据库 132

8.2 RMAN技术 136

8.2.1 基本概念 136

8.2.2 将数据库设置为归档日志模式 137

8.2.3 创建恢复目录所使用的表空间 138

8.2.4 创建RMAN用户并授权 138

8.2.5 创建恢复目录 139

8.2.6 注册目标数据库 139

8.2.7 RMAN备份和恢复 139

8.3 闪回(Flashback)技术 142

8.3.1 闪回技术概述 142

8.3.2 闪回数据库 143

8.3.3 闪回表 146

8.3.4 闪回回收站 147

8.3.5 闪回查询(FlashbackQuery) 149

8.3.6 闪回版本查询 149

8.3.7 闪回事务查询 150

习题 151

第9章 PL/SQL语言基础 152

9.1 PL/SQL简介 152

9.1.1 PL/SQL语言的结构 152

9.1.2 PL/SQL示例程序 152

9.2 PL/SQL组件 153

9.2.1 声明部分 153

9.2.2 执行部分 154

9.2.3 异常处理部分 158

9.3 常用函数 160

9.3.1 数值型函数 161

9.3.2 字符型函数 162

9.3.3 日期型函数 163

9.3.4 统计函数 164

习题 164

第10章 游标、存储过程和触发器 166

10.1 游标 166

10.1.1 游标的基本概念 166

10.1.2 游标控制语句 167

10.1.3 游标属性 169

10.1.4 游标FOR循环 171

10.2 存储过程管理 174

10.2.1 过程 174

10.2.2 函数 176

10.2.3 程序包 179

10.3 触发器管理 182

10.3.1 触发器的基本概念 182

10.3.2 创建及使用触发器 182

习题 184

第11章 ADO数据访问技术 185

11.1 ADO数据模型 185

11.2 数据库访问控件 186

11.2.1 ADOData控件 187

11.2.2 DataList控件和DataCombo控件 189

11.2.3 DataGrid控件 192

11.3 常用ADO对象 195

11.3.1 Connection对象 195

11.3.2 Command对象 197

11.3.3 Recordset对象 198

11.3.4 Field对象 200

习题 201

第12章 图书借阅管理系统 203

12.1 系统总体设计 203

12.1.1 系统功能描述 203

12.1.2 创建数据库用户 204

12.1.3 数据库表结构设计 204

12.2 设计工程框架 208

12.2.1 创建工程 208

12.2.2 添加模块 208

12.2.3 添加类模块 211

12.3 系统主界面和登录模块设计 215

12.3.1 设计主界面 215

12.3.2 登录模块设计 216

12.4 图书分类管理模块设计 217

12.4.1 使用TreeView控件管理图书分类的方法 217

12.4.2 设计图书分类信息编辑窗体 219

12.4.3 设计图书分类信息管理窗体 221

12.4.4 设计图书分类选择窗体 224

12.5 图书信息管理模块设计 224

12.5.1 设计图书信息编辑窗体 225

12.5.2 设计图书信息管理窗体 225

12.5.3 设计图书选择窗体 228

12.6 图书库存管理模块设计 230

12.6.1 设计图书库存编辑模块 231

12.6.2 设计图书库存管理模块 231

12.6.3 设计库存盘点编辑模块 232

12.6.4 设计库存盘点管理模块 232

12.7 借阅证件管理模块设计 233

12.7.1 设计借阅证信息编辑窗体 233

12.7.2 设计借阅证信息管理窗体 235

12.7.3 设计图书借阅记录窗体 236

12.8 图书借阅管理模块设计 236

12.8.1 设计图书借阅信息编辑窗体 237

12.8.2 设计图书借阅信息管理窗体 238

12.8.3 设计图书催还信息管理窗体 239

习题 240

附录1 实验 241

实验1 数据库管理 241

目的和要求 241

实验准备 241

实验内容 241

1.使用SHUTDOWN命令关闭数据库实例 241

2.使用STARTUP命令启动数据库实例 242

3.使用OracleEnterpriseManager关闭数据库实例 242

4.使用OracleEnterpriseManager启动数据库实例 242

5.使用SQL语句创建数据库 243

6.使用SQL语句删除数据库 243

实验2 角色和用户管理 244

目的和要求 244

实验准备 244

实验内容 244

1.使用SQL语句创建数据库角色 244

2.使用SQL语句为数据库角色授权 244

3.使用SQL语句创建数据库用户 245

4.使用SQL语句指定用户角色 245

实验3 表和视图管理 245

目的和要求 245

实验准备 245

实验内容 245

1.使用SQL语句创建表 246

2.使用SQL语句向表中插入数据 246

3.练习使用SQL语句修改表中的数据 247

4.练习使用SQL语句删除表中的数据 248

5.练习使用SELECT语句查询数据 248

6.练习使用SQL语句创建视图 248

实验4 管理索引和序列 249

目的和要求 249

实验准备 249

实验内容 249

1.使用SQL语句创建索引 249

2.在创建表的同时创建索引 249

3.使用SQL语句创建序列 250

4.在插入数据时使用序列 250

实验5 PL/SQL编程 250

目的和要求 250

实验准备 250

实验内容 250

1.使用条件语句 251

2.使用分支语句 251

3.使用循环语句 251

4.使用系统函数 251

实验6 使用游标、存储过程和触发器 251

目的和要求 251

实验准备 251

实验内容 251

1.创建和使用游标 252

2.编写和执行自定义过程 252

3.编写和执行自定义函数 252

4.创建和使用触发器 252

大作业1:VB+Oracle学生档案管理系统 253

项目1 数据库结构设计 253

项目2 设计工程框架 256

项目3 系统主界面和登录模块设计 259

项目4 院系管理模块设计 260

项目5 学生信息管理模块设计 265

项目6 学生奖惩管理模块设计 271

项目7 学籍变动管理模块设计 272

项目8 用户管理模块设计 275

大作业2:ASP+Oracle网上购物系统 279

项目1 数据库结构设计 279

项目2 目录结构与通用模块 282

项目3 管理主界面与登录程序设计 284

项目4 公告信息管理模块设计 287

项目5 商品类别管理模块设计 293

项目6 商品管理模块设计 296

项目7 订单管理模块设计 302

项目8 系统主界面与登录程序设计 305

项目9 设计商品查询及购买模块 306

附录2 下载Oracle10g 315

附录3 Oracle10g系统权限 318

参考文献 322

……


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10825114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存