数据库是什么Oracle又是啥玩意

数据库是什么Oracle又是啥玩意,第1张

经常会有人问我数据是干啥的,其实一开始我是拒绝回答的,因为我也不能做到通俗易懂的表达出来,毕竟我接触这个概念也没有多长时间,但随着问的人多了,我觉得是时候脑补一下我的第一堂课了,万一哪天冒出来个货跟你掰扯这事儿,你没分分钟给他说清,最后弄个丢里儿丢面儿,好尴尬呀。

数据库,说白了就是按照数据结构来组织、存储和管理数据的仓库,这些数据是结构化的,并可为多种应用服务。也就是说,数据库是使用计算机服务器来存储数据的,专门用来提供各种数据服务。可以这样想像,过去一个公司的所有财务数据都是放在保险柜里面,而现在我们就可以针对这些财务数据搭建一个数据库放在某台计算机或服务器上面;再比如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。最常见的数据库有:银行储蓄系统、手机话费系统、美容美发会员系统、超市会员积分系统、水电费系统、机票或火车票系统等,这些都需要后台数据库基础设施的支撑。举了这么多例子,应该是把数据库说明白了,至少能在大脑里面有个概念,知道这个东西是干啥的。

现在大数据被炒的红得发紫,而大数据的基础也是数据,由此可见,数据是一个企业的核心资源,说它是企业的立身之本、发展之基都不为过,因此,维护数据库的数据库管理员(DBA)是企业不可或缺的。

目前市面上的数据库产品有很多,单从规模上分可分为大型、中型、小型几种,典型的数据库产品如下:

大型数据库:Oracle、DB2、Sybase;

中型数据库:MySQL、SQLServer、Infomix;

小型数据库:Access、VisualFoxpro。在众多的数据库产品中,Oracle数据库一直处于行业领导先地位,也是当今最流行的关系型数据库。Oracle可翻译成"甲骨文",它是一家以数据库为主业的全球化公司,是全球第二大软件公司(第一名是微软公司),目前Oracle在数据库软件市场已经排名第一,数据库软件市场份额达到486%,遥遥领先于第二名占有率仅为207%的IBM公司的DB2。在中国市场上的计算机专业系统后台所使用的数据库尤以Oracle数据库居多。但是购买Oracle数据库需要很大一笔费用,一般的大型企业使用,需要有专业人员进行管理和维护,中小企业承担不起。中小企业为了节省成本,一般使用MySQL、PostgreSQL这类免费开源的数据库,所以Oracle数据库相关的工作岗位一般是在大型企业中。

对于为什么选择Oracle数据库,而不是其他的数据库

第一,是因为Oracle数据库占据最大的市场份额,并且越来越大,市场需要很多Oracle数据库方面的人才,中国有句老话说"做对事,选对人",是同样的道理;第二,是很多非Oracle数据库的老系统正往Oracle数据库迁移,其他数据库市场占有率在减少,其他数据库工作者有面临失业的风险;第三,Oracle有大量的官方学习文档,还有部分中文文档,可以有效地进行学习;第四,Oracle有大量的从业人员,有共同方向的朋友可以互相帮助,不再是孤胆英雄;第五,是可以很容易地从Oracle官方网站下载功能齐全的数据库最新版本进行学习,可以让你了解数据库方面的最新发展趋势等。

在此说明,以后的所有内容都是基于Oracle11g数据库产品的,下面我们就简单介绍一下Oracle11g的系列产品:

企业版(EnterpriseEdition)此版本包含了数据库的所有组件,并且能够通过购买选项和程序包来进一步对其增强。

能支持例如大业务量的在线事务处理OLTP(On-LineTransactionProcessing联机事务处理系统)环境、查询密集的数据仓库和要求苛刻的互联网应用程序。

标准版1(StandardEditionOne)此版本为工作组、部门级和互联网、内联网应用程序提供了前所未有的易用性和性价比。从针对小型商务的单服务器环境到大型的分布式部门环境,该版本包含了构建重要商务应用程序所必需的全部工具。它仅许可在最高容量为2个处理器的服务器上使用,支持Windows/Linux/UNIX *** 作系统,并支持64位平台 *** 作系统。

标准版(StandardEdition)此版本提供了StandardEditionOne所不具有的易用性、能力和性能,并且利用真正的应用集群(RAC)提供了对更大型计算机和服务集群的支持。它可以在最高容量为4个处理器的单台服务器上、或者在一个支持最多4个处理器的集群上使用,可支持Windows、Linux和UNIX *** 作系统,并支持64位平台 *** 作系统。

简化版此版本支持与标准版1、标准版和企业版完全兼容的单用户开发和部署。通过将Oracle数据库获奖的功能引入到个人工作站中,该版本提供了结合世界上最流行的数据库功能的数据库,并且该数据库具有桌面产品通常具有的易用性和简单性,可支持Linux和Windows *** 作系统。

从存储结构上来说,目前流行的数据库主要包含以下两种:

RDBMS:关系型数据库,是指采用了关系模型来组织数据的数据库;

NoSQL数据库,是指那些非关系型的、分布式的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

关系型数据库优点:

1、容易理解

二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。

2、使用方便

通用的SQL语言使得 *** 作关系型数据库非常方便。

3、易于维护

丰富的完整性大大减低了数据冗余和数据部移植的概率。

4、事务安全

所有关系型数据库都不同程度的遵守事物的四个基本属性,因此对于银行、电信、证券等交易型业务是不可或缺的。

关系型数据库的瓶颈:

1、高并发读写需求

网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统型数据库来说,硬盘I/O是一个很大的瓶颈。

2、海量数据的高效率读写

互联网上每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。

3、高扩展性和可用性

在基于WEB的结构中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像WEBServer和APPLICATIONServer那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

NoSQL数据库

NoSQL一词首先是CarloStrozzi在1998年提出的。2009年再次提出了NoSQL一词,用于指那些非关系型的、分布式的,且一般不保证遵循ACID原则的数据存储系统。

NoSQL具有以下特点:

1、可以弥补关系型数据库的不足

2、针对某些特定的需求而设计,可以具有极高的性能

3、大部分都是开源的,由于成熟度不够,存在潜在的稳定性和维护性问题。

关系型数据库适用于结构化数据,而非关系型数据库适用于非结构化数据,二者优势互补,相得益彰。

Oracle数据库未来的发展方向是提供结构化、非结构化、半结构化的解决方案,实现关系型数据库和NoSQL共存互补。值得强调的是,目前关系型数据库仍是主流数据库。

虽然NoSQL数据库打破了关系型数据库存储的观念,可以很好地满足WEB20时代数据的存储要求,但NoSQL数据库也有自己的缺陷。在现阶段的情况下,可以将关系型数据库和NoSQL数据库结合使用,相互弥补各自的不足。

关于数据库及其代表产品Oracle今天就介绍这么多,有兴趣的可以继续深挖,希望我的介绍能让你对数据库有一个更深入的认识。如果有志于在这方面发展的话,就让我们一起跟往事干杯从头再来。

随着计算机的普及以及网络的发展 数据库已经不再仅仅是那些程序员所专有的话题 Oracle数据库更是凭借其性能卓越 *** 作方便灵活的特点 在数据库的市场中已经占据了一席之地

但是 随着网络技术的不断进步 数据信息的不断增加 数据安全也已经不再是以前的 老生长谈 更不是以前书本上那些 可望而不可及 的条条框框

或许很久以前 大家都觉得Oracle数据库的安全并不存在隐患 因为Oracle公司在 年 月份开始促销其数据库软件时提出的口号是 只有Oracle i能够做到绝对安全

但是不管它这么说是为了促销 还是为了扩大知名度 这口号提出仅一个月后 英国的安全专家 David Litchfield就发现的 iAS中存在的程序错误导致缓冲溢出漏洞 后来 PenTest Limited和 eEye Digital Security各自提出了一个小的漏洞 所有使用Oracle公司产品的人都不由地紧张了原本松弛的大脑——对于用户来说 毕竟是关系到了 身家性命

下面笔者将带着大家走进Oracle数据安全的世界

一 Oracle数据库的一些基本常识

这里仅仅是为了以后的安全奠定一些基础 因为我们后面要用到它们

Oracle所包含的组件

Oracle数据库是指整个Oracle RDBMS环境 它包括以下组件:

·Oracle 数据库进程和缓冲(实例)

·SYSTEM 表空间包含一个集中系统类目 它可以由一个或多个数据文件构成

·其它由数据库管理员(DBA)(可选)定义的表空间 每个都由一个或多个数据文件构成

·两个以上的联机恢复日志

·归档恢复日志(可选)

·其它文件(控制文件 Init ora Config ora 等)

每个 Oracle 数据库都在一个中央系统类目和数据字典上运行 它位于SYSTEM 表空间

关于 日志

Oracle数据库使用几种结构来保护数据:数据库后备 日志 回滚段和控制文件 下面我们将大体上了解一下作为主要结构之一的 日志 :

每一个Oracle数据库实例都提供日志 记录数据库中所作的全部修改 每一个运行的Oracle数据库实例相应地有一个在线日志 它与Oracle后台进程LGWR一起工作 立即记录该实例所作的全部修改 归档(离线)日志是可选择的 一个Oracle数据库实例一旦在线日志填满后 可形成在线日志归档文件 归档的在线日志文件被唯一标识并合并成归档日志

·在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志 一个在线日志由多个在线日志文件组成 在线日志文件(online redo log file)填入日志项(redo entry) 日志项记录的数据用于重构对数据库所作的全部修改

·归档日志:Oracle要将填满的在线日志文件组归档时 则要建立归档日志(archived redo log) 其对数据库备份和恢复的用处如下:a 数据库后备以及在线和归档日志文件 在 *** 作系统和磁盘故障中可保证全部提交的事物可被恢复 b 在数据库打开和正常系统使用下 如果归档日志是永久保存 在线后备可以进行和使用

数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式 数据库在NOARCHIVELOG方式下使用时 不能进行在线日志的归档 如果数据库在ARCHIVELOG方式下运行 可实施在线日志的归档

物理和逻辑存储结构

Oracle RDBMS是由表空间组成的 而表空间又是由数据文件组成的 表空间数据文件被格式化为内部的块单位 块的大小 是由DBA在Oracle第一次创建的时候设置的 可以在 到 个字节的范围内变动

当一个对象在Oracle表空间中创建的时候 用户用叫做长度的单位(初始长度(initial extent) 下一个长度(next extent) 最小长度(min extents)以及最大长度(max extents))来标明该对象的空间大小 一个Oracle长度的大小可以变化 但是要包含一个由至少五个连续的块构成的链

二 Oracle数据安全的维护

记得某位哲学家说过: 事物的变化离不开内因和外因 Oracle数据安全也不例外 分为 内 和 外 两个部分 我们就先从 内 开始说起:

从Oracle系统本身说起

先抛开令人闻风色变的 hacker 和其他一些外部的原因 来想一下我们的数据库 硬盘损坏 软件受损 *** 作事物…… 一系列由于我们的 疏忽 而造成的系统问题就完全可以让我们辛苦建立的数据库中的数据一去不复返 那么 我们先从自己身上找找原因吧

( ) 解决系统本身问题的方法 数据库的备份及恢复

首先讲数据库的备份 关于Oracle数据库的备份 有三种标准办法:导出/导入(Export/Import) 冷备份 热备份 导出/导入备份是一种逻辑备份 冷备份和热备份是物理备份

< >导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来 利用Import则可将提取出来的数据送回Oracle数据库中去

a 简单导出数据(Export)和导入数据(Import)

Oracle支持三种类型的输出:

(a) 表方式(T方式) 将指定表的数据导出

(b) 用户方式(U方式) 将指定用户的所有对象及数据导出

(c) 全库方式(Full方式) 将数据库中的所有对象导出

数据导出(Import)是数据导入(Export)的逆过程 它们的数据流向不同

b 增量导出/导入

增量导出是一种常用的数据备份方法 它只能对整个数据库来实施 并且必须作为SYSTEM来导出 在进行此种导出时 系统不要求回答任何问题 导出文件名缺省为export dmp 如果不希望自己的输出文件定名为export dmp 必须在命令行中指出要用的文件名

增量导出包括三个类型:

(a) 完全 增量导出(Complete)

即备份整个数据库 比如:

$exp system/manager inctype=plete file= dmp

(b) 增量型 增量导出

备份上一次备份后改变的数据 比如:

$exp system/manager inctype=incremental file= dmp

(c) 累计型 增量导出(Cumulative)

累计型导出方式只是导出自上次 完全 导出之后数据库中变化了的信息 比如:

$exp system/manager inctype=cumulative file= dmp

数据库管理员可以排定一个备份日程表 用数据导出的三个不同方式合理高效地完成 比如数据库的备份任务可作如下安排:

·星期一:完全导出(A)

·星期二:增量导出(B)

·星期三:增量导出(C)

·星期四:增量导出(D)

·星期五:累计导出(E)

·星期六:增量导出(F)

·星期日:增量导出(G)

如果在星期日 数据库遭到意外破坏 数据库管理员可按以下步骤来恢复数据库:

第一步:用命令CREATE DATABASE重新生成数据库结构;

第二步:创建一个足够大的附加回段

第三步:完全增量导入A:

$imp system /manager inctype= RECTORE FULL=Y FILE=A

第四步:累计增量导入E:

$imp system/manager inctype= RECTORE FULL=Y FILE =E

第五步:最近增量导入F:

$imp system/manager inctype=RESTORE FULL=Y FILE=F

< >冷备份

冷备份发生在数据库已经正常关闭的情况下 冷备份是将关键性文件拷贝到另外位置的一种说法 对于备份Oracle信息而言 冷备份是最快和最安全的方法 冷备份的优点是:

·是非常快速的备份方法(只需拷贝文件)

·容易归档(简单拷贝即可)

·容易恢复到某个时间点上(只需将文件再拷贝回去)

·能与归档方法相结合 作数据库 最新状态 的恢复

·低度维护 高度安全

但冷备份也有如下不足:

·单独使用时 只能提供到 某一时间点上 的恢复

·在实施备份的全过程中 数据库必须要做备份而不能做其它工作 也就是说 在冷备份过程中 数据库必须是关闭状态

·若磁盘空间有限 只能拷贝到磁带等其它外部存储设备上 速度会很慢

·不能按表或按用户恢复

如果可能的话(主要看效率) 应将信息备份到磁盘上 然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时 数据库也可以工作) 冷备份中必须拷贝的文件包括:

·所有数据文件

·所有控制文件

·所有联机REDO LOG文件

·Init ora文件(可选)

值得注意的是冷备份必须在数据库关闭的情况下进行 当数据库处于打开状态时 执行数据库文件系统备份是无效的

下面是做冷备份的完整例子:

a 关闭数据库$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >shutdown normal;

b 用拷贝命令备份全部的时间文件 重做日志文件 控制文件 初始化参数文件

SQLDBA >! cp < file > < backup directory >

c 重启Oracle数据库

$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >startup;

< >热备份

热备份是在数据库运行的情况下 采用Archivelog mode方式备份数据的方法 所以 如果你有昨天夜里的一个冷备份而且又有今天的热备份文件 在发生问题时 就可以利用这些资料恢复更多的信息 热备份要求数据库在Archivelog方式下 *** 作 并需要大量的档案空间 一旦数据库运行在Archivelog状态下 就可以做备份了 热备份的命令文件由三部分组成:

a 数据文件一个表空间一个表空间地备份

(a) 设置表空间为备份状态

(b) 备份表空间的数据文件

(c) 恢复表空间为正常状态

b 备份归档log文件

(a) 临时停止归档进程

(b) log下那些在archive redo log目标目录中的文件

(c) 重新启动archive进程

(d) 备份归档的redo log 文件

c 用alter database backup controlfile命令来备份拷贝文件

热备份的优点是:

·可在表空间或数据文件级备份 备份时间短

·备份时数据库仍可使用

·可达到秒级恢复(恢复到某一时间点上)

·可对几乎所有数据库实体作恢复

·恢复是快速的 在大多数情况下在数据库仍工作时恢复

热备份的不足是:

·不能出错 否则后果严重

·若热备份不成功 所得结果不可用于时间点的恢复

lishixinzhi/Article/program/Oracle/201311/18027

第一章 安装 目标完成本课 您将能够:列出新的安装特性列出安装性能的增加安装新特性支持数据库存储选项 文件系统 自动存储管理(a ) 裸设备数据库管理选项 企业管理器网格控制器 企业管理器数据库控制器数据库备份和恢复选项电子邮件通知选项cluster ready服务克隆oracle g报告下面的新安装特性:配置使用oraclea 安装和配置新的企业管理器(EM)框架 如果你选择使用oracle企业管理器数据库控制器 你可以有配置使用oracle推荐的默认备份策略的选项如果你在安装的时候使用oracle企业管理器数据库控制器 你可以配置em发送警告到你知道的email地址 这些警告包括磁盘空间到了严重的界限或数据库非正常关闭 RAC的加强 g安装支持RAC新特性 尤其是安装Cluster ready服务 oracle的homes可以使用企业配置管理工具进行克隆 这个工具是附带在grid control中的 安装的性能加强内存需求 有数据库控制器的实例 m 无数据库控制器的实例 m磁盘需求 G的交换分区(或Ram的两倍) /tmp目录下要有 m的空间 oracle软件大概要 g到 g g可配置的数据库(可选) g的闪回区(可选) 减少了安装数据库的总大小 去掉了旧的选项完全安装大概 min只需要一张cd查看安装前的必要条件 查看是否有足够的临时空间 位和 位的问题 检查正确的os 检查ps的patch 系统包 系统/内核参数 x 服务器的许可 足够的交换空间 非空的oracle_home混杂的安装加强sys和system密码只需要输入一次干净的反安装 没有文件留下 oracle home外的文件都被清除 windows中的注册表记录被清除有特定的 oc j需求b_idsableStartMenu变量受到ISV的支持CD pack的内容oracle database g cdpanion cdoracle iAS infrastructure cdoracle database g clientoracle enterprise manger cdoracle documentation g cdoracle database g demos cdpanion cd 有 dbworkflowohssqlj jpublishercontext knowledgelegato storage managerexamples管理选项如果你在安装的时候选择创建启动数据库 你可以看到很多屏幕问你配置启动数据库的下面的信息命名数据库字符集schema样本数据库管理文件存储选项文件系统 把文件存储在你配置的os文件系统上ASm ASM文件是自动创建和配置的 你可以得到额外的镜向 条带化等益处 裸设备(分区) 上面没有文件系统的磁盘分区 备份和恢复选项安装的时候会提示你要不要进行自动备份口令安装的时候你可以为所有的用户设置同一个口令 也可以单独为他们设置 第二章 服务器配置 完成本章之后 您将能够:描述使用dbca安装完数据库之后oracle g功能性的支持同时使用初始化参数的子集来简化实例配置从dbca安装样本schema(可选的)从oem中查看数据库使用统计dbca的加强dbca为oracle标准提供快速创建功能齐全的马上可以使用的数据库:自动创建sysaux辅助表空间应用闪回去 并且设置闪回备份和恢复策略out of the box管理资料库自动统计的收集自动ldap注册oracle g为了简化当年的将来的自我管理活动 引进了许多特性上的改善 这次改善包括存储所有辅助元数据和工作负载信息和为了优化性能的监控工具的公用体系结构 这些改善都是被dbca完全支持和应用的 新的属于系统的sysaux表空间为所有的不存在system表空间的辅助数据库元数据提供了集中的位置 它减少了创建摩尔表空间的数目 无论是种子数据库还是用户定义的数据库 dbca现在自动的配置默认的闪回区 这是为需要恢复的文件和数据库活动的统一存储位置 oem资料库 作业 事件子系统现在都是自动的配置 减少了人工安装的需要 以个新的嵌入和完全自我管理的资料库捕捉工作负载信息和与性能有关的统计 这样减少了管理成本 dbca配置的新目录减少了使用网络api配置ldap ora的需要 简化种子数据库 简化初始化参数 减小大小 样本schema的可选安装为磁盘存储的自动存储管理ASM现在oracle数据库的配置更容易 dba只需要注意少量几个初始化参数 参数现在分成两组 基本的和高级的参数 在大多数情况下 为了得到合理的性能 你之需要设置或修改基本参数 他们大概有 个 你现在可以时候dbca配置a 为oracle数据库文件建立的和文件系统和卷管乐器的综向集成 为了常规和rac环境 使用数据库控制器进行管理在这个dbca屏幕上 你可以设置你的数据库使用grid控制器还是数据库控制器 当你运行dbca的时候 它要确定oracle管理代理已经在这个计算机上安装了 如果有 你就可以从下拉框选择oracle管理服务和grid control选项来进行中央化管理 当你完成安装的时候 这个服务作为被管理的目标是自动启动的 如果你不中央管理你的oracle环境 你仍然可以使用em来管理你的数据库 em database control在你数据库安装的时候 自动安装了 你可以使用db control提供的基于web的特性来监控 管理你安装的单实例或集群数据库 你也可以配em为sy an用户接受电子邮件通知 当metric到了一定严重或警告的时候 当你选择db control的时候 你还可以配置每天备份到闪回区 SYSAUX和dbcadbca支持强制创建sysaux表空间 在数据库存储页 sysaux是tablespace文件夹必要的原始 你可以通过单击 存储标签或在datafile文件夹相应的sysaux入口来改变sysaux的数据库文件和存储参数 数据文件和存储参数有默认的值 但你单击finish的时候 dbca就会和其它的数据库创建事件一起创建sysaux表空间和它的schema 所有的种子数据库都有sysaux表空间 使用企业管理器启动控制台os> emctl start dbconsole访问数据库控制器 //hostname: /em要提供sys/passwd as sysdba;你要从一个客户端浏览器访问em 数据库控制器 必须要运行dbconsole进程 安装之后 dbconsole进程是自动会启动的 然后 如果这个集成没有启动 你可以向下面的命令行手工的启动它: 到$ORACLE_HOME/bin目录下 执行下面的命令: emctl start dbconsole这样你就可以打开web浏览器 输入下面的url ortnumber/em TARGET=//hostnameortnumber/em来访问em db control host那么是你的计算机的名字或地址 portnumber是em db control 的端口号 这是在安装的时候指定的 默认的是 你可以在$ORACLE_HOME/install/portlist ini文件中找到这个值 如果实例启动了 EM就会显示db control登录页 你必须使用授权访问db control的用户登录到数据库 一开始是sys用户 使用在安装的时候你确定的sys用户的密码 从connect as 下拉框选sysdba 然后点登录 这样就会出现db control的主页 数据库克隆在你成功的配置调整和测试新的实例之后 你也许需要克隆数据库到一个已有的oracle home 你可以使用em clone database向导来完成克隆 要克隆一个数据库 你可以到要克隆的数据库的维护页 然后在deployment区点击clone 数据库 克隆数据库工具有下列特性:克隆数据库可以从 或后来的版本可以在源数据库打开的时候进行克隆备份数据文件 把它copy到指定的oracle home下 然后通过备份的数据库文件和归档恢复数据库来创建新的数据库 新的数据库跟到备份开始的源数据库一模一样 在指定的oracle home下创建新的数据库实例 密码文件 设置网络文件 根据源实例配置创建初始化参数文件和spfile 然后启动新的实例到open模式 clone database工具是使用rman来完成数据库克隆的 metalink的集成oem G 通过内置的metalink集成大大简化了安装补丁 em会自动的警告你关键更新和系统需要指定补丁的标注 你可以使用em patch向导来看哪些临时补丁可以安装 你还可以使用patch向导来选择补丁和查看你的系统是否需要这个补丁 你可以直接从em看到补丁的详细信息已经readme 按照下面的步骤访问补丁向导 在db control主页选maintenance标签 在deployments区下面 lishixinzhi/Article/program/Oracle/201311/17212

数据查询 是数据库 *** 作中最主要的功能之一;有时候数据库查询性能的好坏 直接关系到数据库的运行效率 关系到数据库的选型 下面笔者不谈大道理 只是对其中对一些平时大家容易忽略的查询小技巧做一些总结 或许大家可能正在为此犯愁呢

第一个技巧 利用连接符连接多个字段

如在员工基本信息表中 有员工姓名 员工职位 出身日期等等 如果现在视图中这三个字段显示在同一个字段中 并且中间有分割符 如我现在想显示的结果为 经理Victor出身于 年 月 日 这该如何处理呢其实 这是比较简单的 我们可以在Select查询语句中 利用连接符把这些字段连接起来

如可以这么写查询语句

SELECT员工职位 || ||员工姓名|| 出身于 ||出身日期 as 员工出身信息 FROM 员工基本信息表;

通过这条语句就可以实现如上的需求 也就是说 我们在平时查询中 可以利用||连接符把一些相关的字段连接起来 这在报表视图中非常的有用 如笔者以前在设计图书馆管理系统的时候 在书的基本信息处有图书的出版社 出版序列号等等内容 但是 有时会在打印报表的时候 需要把这些字段合并成一个字段打印 为此 就需要利用这个连接符把这些字段连接起来 而且 利用连接符还可以在字段中间加入一些说明性的文字 以方便大家阅读 如上面我在员工职位与员工姓名之间加入了空格;并且在员工姓名与出身日期之间加入了出身于几个注释性的文字 这些功能看起来比较小 但是却可以大大的提高内容的可读性 这也是我们在数据库设计过程中需要关注的一个内容

总之 令后采用连接符 可以提高我们报表的可读性于灵活性

第二个技巧 取消重复的行

如在人事管理系统中 有员工基本信息基本表 在这张表中 可能会有部门 职位 员工姓名 身份z件号码等字段 若查询这些内容 可能不会有重复的行 但是 我若想知道 在公司内部设置了哪些部门与职位的时候 并且这些部门与职位配置了相关人员 此时 又该如何查询呢

若我现在直接查询部门表 其可以知道系统中具体设置了哪些部门与职位 但是 很有可能这些部门或者职位由于人事变动的关系 现在已经没有人了 所以 这里查询出来的是所有的部门与职位信息 而不能够保证这个部门或者职位一定有职员存在 也就是说 这不能够满足于我们上面的要求

若我现在直接从员工信息表中查询 虽然可以保证所查询出来的部门与职位信息 一定有员工信息的存在 但是 此时查询出来的部门与职位信息会有重复的行 如采购部门分工合作 可能会有采购采购小组长 此时 在查询出来的部门与职位的信息中 就会有三条重复的记录

所以 以上两种处理方式 都不能够百分之百的满足企业用户的需求 此时 我们其实可以利用一个DISTINCT函数 来消除其中查询出来的重复行

如我们可以利用SELECT DISTINCT 部门信息 职位信息 FROM 员工基本信息表 通过这条加了DISTINCT约束的查询语句 不但可以查询出所有有员工的职位与部门信息 而且 会把重复的记录过滤掉 从而提高可阅读性

所以 在数据库设计过程中 特别是在查询语句的使用中 这个函数特别有用

第三个技巧 勤用WHERE语句

我们都知道 数据库查询效率高不高 是我们评价数据库设计好坏的一个重要标准 毋庸置疑 在数据库查询中勤用Where条件语句 是提高数据库查询性能的一个很重要的手段之一 特别是在设计到比较大的表中查询符合条件的记录过程中 利用WHERE条件语句加以限制 可以大幅度的提高查询的响应速度

如在图书馆管理系统中 现在有人想查询 注册会计师 辅导用书的时候 虽然不在书的类别或者名称中输入 注册会计师 先查询出全部的纪录 然后再一条条的看是否有相关的书籍信息 也是可行的 但是 这么处理的话 一方面系统响应的速度会非常的慢 因为里面记录很多 另一方面 查询的结果看起来也会非常的头疼

其实 我们只需要在查询中加入一些查询的参数 利用Where条件语句加以限制 则即可以提高数据库响应的速度 也可以找出最符合用户需求的数据

另外 我也接触过一些在Oracle数据库上设计的平台型管理软件 他们可以自定义相关的报表 在报表设计中 只要用户在前台设计平台中 选中 大表查询 的话 则这个平台会在生成报表的时候 自动应用Where条件语句 以提高前台系统从数据库查询数据的效率

所以 笔者认为在Oracle数据库系统设计中 要勤于使用Where语句 利用Where语句来提高数据库查询的效率

第四个技巧 灵活使用COUNT函数

在查询处理的时候 COUNT函数可以说是我们应用的比较多的函数之一 如我们有时候需要统计员工的人数 统计图书的种类数的时候 都需要使用到这个函数 不过 这个函数很多人可能会用 但是到灵活应用的地步 还是有一点差距

下面笔者就COUNT函数的一些应用技巧谈谈自己的心得

一是要灵活放置COUNT函数的位置 因为利用COUNT函数统计记录数的时候 是会考虑空行的记录的 如在数据表中一般有序列字段与其它的有意义字段两类 有时候可能序列字段中有内容而其它字段中没有内容 则在利用COUNT函数统计记录数量的时候 会把这个空记录也考虑进去 很明显 则就会发生统计的错误 所以 这个COUNT函数该放在哪个位置上 还是比较讲究的 一般的话 笔者试建议不要放在序列号字段上 而要放在一些关键的实体字段中 如统计员工人数的时候 则就可以放在员工姓名或者编号上等等

二是灵活跟其它函数搭配使用 如在上面的例子中 笔者谈到有时候用户需要知道现在有员工编制的部门与职位有哪一些 我们可以利用DISTINCT函数来找出具体的部门 但是 我现在只想知道有编制的部门与职位具体有多少 此时 我们也可以利用COUNT 与DISTINCT函数结合应用 找出我们所需要的数据 在COUNT函数中 可以指定ALL与DISTINCT选项 默认的情况下 是ALL选项 表示统计所有的行 其中也包括重复的行 而DISTINCT就表示只统计不重复的行 可见 COUNT函数跟其它函数搭配使用的话 可以简化我们的查询语句 提高查询效率

第五个技巧 只查询时必须的字段

有时候 用户不同的查询需求都要用到同一张表 如在员工信息表中包含了很多内容 有时候用户想要知道正式员工有多少;管理层员工有多少;生产线员工又有哪些;或者想知道合同即将到期的员工有哪些 为此 就遇到一个问题 因为这些内容基本上都是在同一张表中 那是在同一个视图中实现 而是根据需求不同 设计不同的视图呢

若单从技术上考虑 两这都是可以实现的 不会有多大的难度 但是 若是从数据库性能上考虑在 则还是采用不同的视图来实现不同的需求为好

一方面 若从安全方面讲 则可以根据不同的视图来控制相关的访问权限 可见 把视图细化 在权限控制上则会更加的灵活

lishixinzhi/Article/program/Oracle/201311/17049

以上就是关于数据库是什么Oracle又是啥玩意全部的内容,包括:数据库是什么Oracle又是啥玩意、你的Oracle数据库安全吗、oracle 10g 新特性中文笔记一等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/10145378.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存