第1章数据库的基本知识本章介绍与数据库技术相关的基础知识,包括数据库的产生、特征、组成,数据库管理系统、关系数据库、数据库对象以及数据库管理员的职责.
通过本章的学习,读者应该完成以下学习目标:了解数据库的产生和作用了解数据库的特点了解数据库的组成形式了解数据库管理系统的功能和作用了解关系型数据库的定义、特点和功能了解数据库包含哪些对象了解数据库管理员的职责1.
1数据库的基础知识在日常工作中,需要处理的数据量往往都很大,为便于计算机对其进行有效的处理,我们可以将采集的数据存放在建立于磁盘和光盘等外存媒介的"库"中,该"库"就是数据库.
数据集中存放在数据库中,便于对其进行处理,提炼出对决策有用的数据和信息.
这就像工厂生产出的产品要先存放在仓库中一样,既便于管理,又便于分期分批地销售;又像学校采购的大量图书要存放在图书馆(书库)中一样,以便于学生借阅.
因此,数据库就是在计算机存储器中用于存储数据的仓库.
与货仓、书库需要管理员和一套管理制度一样,数据库的管理也需要一个管理系统,该管理系统就称为数据库管理系统(DataBaseManagementSystem,DBMS).
以数据库为核心,并对其进行管理的计算机系统称为数据库系统.
1.
1.
1数据库的产生数据管理的发展经历了人工管理、文件系统和数据库系统3个阶段.
在人工管理阶段,由于没有软件系统对数据进行管理和计算机硬件的限制,数据的管理是靠人工进行的,而计算机只能对数据进行计算.
当时对数据处理的过程是先将程序和数据输入计算机,运行结束后再将结果输出,由人工保存,计算机并不存储数据.
20世纪50年代后期到60年代中期,由于计算机外存得到了发展,软件又有了操作系统,于提便产生了文件系统用于数据管理.
在文件系统阶段是按照数据文件的形式来存放数据的,一个文件中包含若干个"记录",一个记录中又包含若干个"数据项",用户通过对文件的访问实现对记录的存取.
这种数据管理方式又称为文件管理系统.
文件管理系统的一个致命的不足是数据的管理没有实现结构化组织,数据与数据之间没有联系,文件与文件之间也没有有机的联系,数据不能脱离建立其数据文件的程序,从而使得文件管理系统中的数据独立性和一致性较差,冗余度大,限制了大量数据的共享和有效的应用.
20世纪60年代末期,随着计算机技术的发展,为了克服文件管理系统的缺陷,人们对文件系统进行了扩充,研制出了一种结构化的数据组织和处理方式,即数据库系统.
数据库系统建立了数据与数据之间的有机联系,实现了统一、集中及独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据的共享.
1.
1.
2数据库的特征数据库技术在20世纪60年代后期发展起来以后,在计算机应用中得到了迅速发展.
目前,它已经成为信息管理的最新和最重要的技术.
数据库有以下明显的特点:数据结构化.
数据库中的数据不再像文件系统中的数据那样从属特定的应用,而是按照某种数据模型组织成为一个结构化的数据整体.
它不仅描述了数据本身的特性,而且描述了数据与数据之间的各种联系,这使数据库具备了复杂的内部组织结构.
实现数据共享.
这是数据库技术先进性的重要体现,由于数据库中的数据实现了按某种数据模型组织为一个结构化的数据,实现了多个应用程序、多种语言及多个用户共享一个库中的数据,甚至在一个单位或更大的范围内共享,因而大大提高了数据的利用率,提高了工作效率.
减少数据冗余度.
在数据库技术之前,许多应用系统都需要建立各自的数据文件,即使相同的数据也需要在各自的系统中保留,造成大量的数据重复存储,这一现象称为数据冗余.
由于数据库实现了数据共享,因而减少了数据的重复存储,节省了存储空间,减少了数据冗余.
数据独立性.
数据库技术中的数据与程序相互独立,互不依赖,不因一方的改变而改变另一方,这大大简化了应用程序设计与维护的工作量,同时数据也不会随程序的结束而消失,可长期保留在计算机系统中.
1.
1.
3数据库的组成一个数据库由一组数据表组成.
表中的每行称为记录,每列称为字段.
表是一组彼此相关的记录的组合.
例如,有一张包含公司中员工信息的表.
每条记录里都存储了公司一名员工的姓名、地址和薪水等数据.
字段(或者说"列")是记录中一个单独的数据.
例如,一名员工的姓名或地址.
如表1-1所示就是一个典型的数据表的例子,从中可以清楚地看到每个人的信息就是一条记录,而诸如姓名、地址、年龄等信息称为字段.
通过记录和字段的对应我们可以得到唯一的数据值.
表1-1数据库示例表姓名地址年龄薪水工龄张三北京2750004李四上海2965003王五广东38800010此外,数据库中还存在着许多由表衍生出来的对象,如视图、索引等,这些对象对于数据库的管理和维护会起到不可或缺的作用.
1.
1.
4数据库管理系统前面已经提到数据库系统是一种用来管理信息列表的手段,这些信息可来自不同的地方.
例如,它可以代表研究数据、业务记录、顾客请求、运动数据统计、销售报告、个人爱好信息、人事记录、问题报告或学生成绩等.
当组织和管理的信息很庞大或很复杂,用手工处理极为繁重时,数据原系统的强大优势会充分地体现出来.
因而,每天处理数百万个业务的大公司必然要使用数据库.
但是,即使只涉及个人爱好的由单一人员维护信息的小公司也可能会需要数据库.
不难想象出在信息变得难于管理之前因使用了数据库而带来的好处.
通常利用数据库管理系统来处理诸如人们用文件柜来完成的那样一些任务.
从某种意义上来说,数据库就像一个大文件柜,只不过是一个内建的文件编排系统而已.
电子化处理记录相对手工处理记录有很多优点:减少记录编档时间.
只要将记录放入文件编排系统,并命令文件编排系统为用户将该记录放入正确的位置即可.
减少记录检索时间.
在查找记录时,不需要自己去查看每个记录以找到含有所需信息的那个记录.
灵活的查找序列.
不需要按记录存放的固定序列去查看它们(例如,按姓氏查找).
可以要求文件编排系统以任意的序列查出记录,如按姓名、保险公司名或最后光临日期等提取记录.
灵活的输出格式.
在查找到感兴趣的记录后,不需要手工复制其信息.
可以让文件编排系统为用户生成一份清单,以便将用户感兴趣的信息打印输出.
多个用户同时访问记录.
如果两个人想同时查找一个记录,那么其中一个人必须等另一个人查找完才能查找.
多个用户同时查找的能力使得两个人可同时访问记录.
数据库服务器是解决信息管理的主要工具.
一般情况下,数据库服务器必须在多用户环境中管理大量的数据,使多个用户能够并行访问数据.
所有这些必须能够在高性能的情况下完成,数据库服务器必须防止未经授权的非法访问,保护敏感数据,同时为故障恢复提供解决方案.
1.
1.
5关系数据库下面阐述关系数据库的产生历史和它的一些常用术语,并讲解关系数据库的一般特性.
1.
关系数据库的产生历史数据处理是现代计算机应用中的一个重要组成部分.
数据处理是对各种形式的数据进行分类、组织、编码、存储、检索和维护的一系列活动的总和.
其目的是从大量、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;同时也是为了借助计算机科学地保存和管理大量复杂的数据,以便人们能方便而充分地利用这些宝贵的信息资源.
数据处理随着计算机硬件和软件的发展而不断发展.
前面已经提到了多年来数据处理经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段.
数据库系统也经历了相应的3个阶段.
但是自从IBM公司提出关系数据库的概念以来,数据库系统的发展向前迈进了一大步,自此出现了众多的关系型数据库系统产品,如IBM的DB2、Sysbase、微软的SQLserver以及本书将要介绍的Oracle等.
2.
关系数据库的定义关系数据库是一些相关的表和其他数据库对象的集合.
该定义表达了3部分含义:第一,在关系数据库中,信息被存放在二维表格结构的表(table)中,一个关系数据库包含了多个数据表,而每一个表又包含行(记录)和列(字段),可以将表想象为一个电子表格,其中与行对应的是记录,与列对应的是字段;第二,这些表之间是相互关联的,表之间的这种关联性是由主键和外键所体现的参照关系来实现的;第三,数据库不仅包合表,而且包含了其他数据库对象,如视图、存储过程、索引等.
关键字(key)是关系模型中的一个重要概念.
它是一个逻辑结构,而不是数据库的物理结构.
关键字分为主关键字和外部关键字两种.
主关键字(primarykey)是指表中的某一列,该列的值可唯一标识一行.
主关键字实施实体完整性,即每一个主关键字的值必须唯一,而且不允许为NULL或重复.
外部关键字(foreignkey)是指如果表中含有与另一个表的主关键字相对应的列组,那么该列组就被称为外部关键字.
从该定义可以看出,外部关键字也是由一个或多个列组成.
在关系数据库中,表之间的联系是通过相同的列或列组来表示的,如果两个表中具有相同的列或列组,那么该列或列组就被称为这两个表的公共关键字(commonkey).
如果公共关键字是其中一个表的主关键字,那么该公共关键字在另一个表中就被称为外部关键字.
外部关键字的作用是实现参照完整性,以下为创建外部关键字的优点:提供了表之间的连接.
根据主关键字的列值来检查,参照主关键字的列值来确定其合法性.
保证列的每个值都有效且实现参照完整性.
3.
关系数据库系统的特点RMDBS(关系数据库系统)的特点如下:数据完整性:所有RDBMS都使用SQL或其变体来控制包含在任意数据库中的数据.
RDBMS必须保证数据的完整性,换句话说,任何关系型数据库都需要保证(如果多个表中的数据都需要被更新)所有的数据都被更新.
例如,假设一个邮局交费系统中有两张表,—张是您的交费账目,一张是您的未交费账目.
您每月支付电话费时,邮局会自动在交费账目上加上您的数额,再从未交费账目上减去相应的数额.
但是如果当加上数额后,邮局停电了,将会发生什么有了数据完整性,当服务器加电后,会发现加法已经完成,而减法还没有进行,那么,已经完成的一切都将被取消,您的利益将不会受损.
数据存储和数据安全:多数RDBMS都坚持把实际数据和业务逻辑区分开,以确保数据库中的数据可以保持持久状态.
多数情况下,用户只想在数据库中存储数据.
许多RDBMS通过使用压缩算法将冗余数据删去的方式来存储数据但这样并不意味着数据丢失了,只是占用了更少的存储空间.
每个RDBMS都为所管理的数据库提供了某种安全措施,这通常通过某种登录过程来实现.
4.
数据库管理系统的功能目前流行的DBMS有很多种,不同的DBMS提供的功能各有侧重,但一般都提供以下6个方面的功能:1)数据库定义为了提高数据库的独立性,DBMS将数据库从逻辑上分为3个层次,即面向数据库用户的外层(用户数据库)、由DBMS管理的概念层(概念数据库)和内部层(存储数据库).
用户看到的只是外层,而数据实际上是按内部层的结构存储的,它是通过概念层二级抽象(或称映像)而来的.
DBMS的数据库定义功能不但提供了用户数据库、概念数据库和存储数据库三级数据库的定义,而且还提供了从用户数据库到概念数据库以及从概念数据库到存储数据库的映像功能.
数据库定义一般都由DBMS以数据定义语言(DataDefinitionLanguage,DDL)的形式提供给用户.
数据库用户利用DDL来定义用户数据库结构,建立所需要的数据库,同时由DBMS自动翻译为存储数据库.
存储数据库独立于一般的数据库用户,数据库用户也可以不必过问存储数据库的实际模型.
2)数据操纵DBMS提供了数据操纵语言(DataManipulationLanguage,DML)以实现对数据库数据的操纵.
数据操纵包括对数据库的数据进行查询(检索和统计)、更新(增加、删除与修改)等基本操作.
3)数据库的运行与控制DBMS提供的运行与控制功能保证了所有访问数据库的操作都在控制程序的统一管理下,检查安全性、完整性和一致性,保证多用户对数据库的并发使用.
这—功能对用户是隐蔽的.
4)数据库的建立与维护DBMS提供了实用程序来完成数据库的初始数据输入与数据转换等,以及数据库数据的转储、恢复、重组织、系统性能监视与分析等.
5)数据字典DBMS将所定义的数据库按一定的形式分类编目,对数据库中的有关信息进行描述,以帮助数据库用户使用和管理数据库.
这一功能称为数据字典.
6)数据通信DBMS提供了数据通信功能,以实现DBMS与用户程序及其之间的通信.
著名的SQL语言(StructuredQueryLanguage,结构化查询语言)是由国际标准化组织(ISO)公布的,它是集数据定义、数据操纵和数据控制为一体的标准数据库语言.
目前许多成熟的DBMS产品都集成了以上多项功能,同时还都提供了一套应用程序开发工具.
如本书将要介绍的Oracle就是集多项功能于一体,同时嵌入SQL语言,并提供了一套应用程序开发工具的DBMS产品.
5.
常见的关系型数据库简介目前市面上流行的关系型数据库管理系统有很多,下面对它们进行简要介绍.
1)OracleOracle是当今最大的数据库公司Oracle(甲骨文)公司的数据库产品.
它是世界上第一个商用的关系型数据库管理系统,也是第一个推出与数据库结合的支持第4代语言开发工具的数据库产品.
它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象的数据支持,具有第4代语言开发工具,支持UNIX、VMS、Windows/NT和OS/2等多种平台.
Oracle公司的软件产品主要由3个部分组成,包括Oracle服务器产品、Oracle开发工具和Oracle应用软件.
Oracle提供的最新的基于微机的数据库产品为Oracle11g.
Oracle产品早在1986年就已进入中国市场,国内许多行业和部门的管理信息系统在开发时选用的都是Oracle.
2)DB2DB2是IBM公司的一个基于SQL的关系型数据库产品,它起源于早期的实验系统SystemR.
20世纪80年代初,DB2的发展重点是大型主机平台.
从80年代到21世纪初,DB2已发展到中、小型机及微机平台.
现在的DB2已能够适用于各种硬件和软件平台(如UNIX、VMS、Windows/NT和OS/2等).
DB2在金融系统中应用较多.
DB2UniversalDatabasePersonalEdition是为OS/2和Windows系统提供的单用户数据库管理系统.
DB2UniversalDatabaseWorkgroupEdition是为Os/2和Windows系统提供的多用户数据库管理系统.
3)SybaseSybase是由1984年成立的美国数据库厂商Sybase公司推出的系统数据库(SystemDatabase,Sybase),Sybase公司是较早采用客户端/服务器技术的数据库厂商.
Sybase可以运行在UNIX、VMS、Windows/NT和Netware等操作系统平台上,它支持标准的关系数据库语言SQL,使用客户端/服务器模式,采用了开放的体系结构,能够实现网络环境下各节点数据库的互访操作.
Sybase还拥有十分著名的数据库应用开发工具PowerBuilder,能够快速开发出基于客户端/服务器的图形化数据库应用程序.
目前Sybase数据库软件产品是市场上比较受欢迎的数据库产品之一.
Sybase数据库主要由服务器软件SybaseSQLserver、客户端软件SybaseSQLToolset和接口软件SybaseClient/ServerInterface这3类软件产品组成.
其中服务器软件SybaseSQLserver中的SybaseSQLAnywhere是Sybase数据库管理系统的单机版本,是专为个人用户或工作组设计的一个完备的、小型化的关系型数据库管理系统.
它具有客户端/服务器结构以及完全的事务处理和SQL功能,可以胜任小型应用系统的数据管理.
Sybase于1991年进入我国,其产品目前它在许多行业和部门得到很好的应用.
4)SQLServerMicrosoftSQLServer是一个在WindowsNT服务器上使用的、支持客户端/服务器架构的数据库管理系统.
SQLServer是Microsoft公司通过从Sybase公司购买技术而开发的产品,它与Sybase的数据库完全兼容.
SQLServer与WindowsNT的有机结合,使得可以充分地利用WindowsNT的优势,性价格比较高.
MicrosoftSQLServer不提供直接的客户端开发平台和工具,只提供了两个接口,即Microsoft开放式数据库连接(ODBC)和DB-Library.
ODBC接口允许网络客户在多种平台上使用第三方产品,如Access、VisualBasic、VisualC++和FoxPro等,向服务器发出SQL请求,访问数据库中的数据.
ODBC能够在不同的数据库环境中为客户端/服务器架构的客户提供访问异构数据库(如Oracle和Sybase等)的接口.
ODBC还提供了一个开放的并且是标准的能够访问微机、工作站、小型机和大型机数据库的方法,使用ODBC接口的编程者可以不用深入了解所访问的数据库系统,而只需知道数据库、表和有关字段即可.
DB-Library通过C语言API来提供与SQLServer直接连接的接口.
1.
2数据库对象为了遵循关系数据库的基本要求,所有RDBMS都至少需要支持一定数目的数据库对象.
除了必需的数据库对象之外,Oracle还支持另外―些数据库对象.
本章只简要介绍这些对象,在后面的章节中,我们将创建并操纵其中的许多对象.
Oracle的数据库对象集合包括:成为关系数据库所需的所有数据库对象(表、视图、约束等),提供额外功能的其他数据库对象(程序包、对象类型、同义词、序列等).
表1-2列出了Oracle11g支持的所有数据库对象.
表1-2Oracle11g支持的数据库对象对象说明表是由若干列与行组成的一个集合,这个集合表示单个实体(如客户、订单、雇员等)列是表中存储的实体的属性.
列具有名称与数据类型.
一个表通常会有多个列,表的定义中包含了这些列.
行是表中存储的实体的实例,它包含了所有列.
例如,一个"student"行存储了每位学生的所有相关信息,如学号、姓名与住址.
单元格术语"单元格"指的是某行与某列的交叉处.
在前面的示例中,CustomerID10002行与CompanyName列的交叉处就是一个单元格,该单元格存储的时数据是"Bradleysystems".
约束该数据库对象用于实施简单的业务规则与数据库完整性.
例如,PRIMARYKEY、FOREIGNKEY、NOTNULL和CHECK都是约束.
视图视图是一个或多个表中数据的逻辑投影,它可以表示为存储在数据库中的一条SQL语句.
通过在数据库中为复合的及重复的SQL语句指派名称,就可以使用视图来简化这些语句.
索引通过存储特定键值的逻辑指针,索引能够帮助加快数据的检索.
与扫描表中的所有记录相比,如果扫描能够根据键值以升序或降序来组织索引,就可以更快速地检索到某条记录.
索引组织表索引组织表指的是其物理存储像索引一样组织的表.
在常规的表中,记录并不是以特定顺序被插入,如果查询所有记录,那么就会以随机顺序检索数据.
与此不同的是,索引组织表存储根据表中所定义主键组织的数据.
在堆中存储数据的表与索引组织表之间的差异类似于在盒子中收藏所有收据(也就是不按照特定顺序进行收藏)与按照消费时间收藏所有收据之间的差异.
如果从盒子中取出收据,那么就无法得出检索的特定逻辑;如果取出按时间顺序排列的收据,那么就可以预测6月2日的收据会先于8月1日的收据出现.
分区为了使物理存储更有效,Oracle11g中的表可以被分为若干部分.
一个分区(或子分区)通常在单独的物理磁盘上存储表数据的一个子集,因此,通过允许同时从多个物理磁盘读取数据(多分区并行读)或在分区数据不满足查询时不读取(分区排除)的方式,数据检索将会更快.
群集群集是一种存储机制对象,为了加快数据检索,该对象允许将多个表中的若干记录物理存储在一起.
例如,如果在一个表中存储Order信息(客户、支付信息、发货细节等),在另一个表中存储项目(商品项、成本、销售价格、数量等),那么检索订单的相关信息至少需要进行两次数据读取:一次读取订购信息,一次读取项目信息.
在使用订单ID组织的群集内创建上述两个表,Oracle就可以将用于相同订单ID的订购与项目数据放置在相同的物理块内,从而将订单信息的检索减少为一次数据读取.
在群集的底部,必须预分配添加记录或创建群集所需的部分或全部磁盘空间.
序列序列允许创建和增加一个计数器,该计数器产生的数值可以被用作表的主键值.
同义词在英语中,同义词是现有对象的别名.
Oracle中使用同义词来简化名称较长的对象或便于记忆指定的对象.
(续表)对象说明存储过程存储过程是执行指定任务(如在表中插入记录或更新数据)的若干SQL和PL/SQL语句的集合.
触发器触发器是一种特殊的存储过程,这种存储过程不能被人工调用,只有当在表上执行某个动作时才会被自动调用.
触发器可以与表、相应的动作(INSERT、UPDATE或DELETE)及系统事件(如用户的登录和注销或数据库的STARTUP和SHUTDOWN)关联在一起.
函数函数是必须返回值的存储程序.
存储过程可以被传入参数,但是并不需要返回任何输出值;与之不同的是,函数必须返回值.
程序包程序包是根据公共名称分组的若干存储过程与函数的集合.
这允许根据针对维护和性能目的的不同名称将所有程序元素逻辑分组为数据库的特定部分用户自定义数据类型用户自定义数据是任何表或其他对象定义中都能够使用的数据库对象.
使用用户自定义数据类型可以确保表之间的一致性,也可以将方法(也就是对象可以执行的动作)作为定义的一部分来运用.
BLOBBLOB是用于存储视频、图像及大量文本的二进制大对象.
BLOB被定义为表中的一个列,它可以具有下列数据类型:BLOB、CLOB、NCLOB或BFILE.
此外,Oracle还包含了其他一些超出本书讨论范围的对象(包括维、字典、物化视图等).
这些对象是针对特定目的(如用于数据仓库)创建的,本书不对它们进行详细讨论.
一个Oracle数据库中的所有对象都属于一个用户.
在Oracle数据库中定义的用户并不必拥有任何对象,这样的用户被称为模式用户(schemauser).
模式(schema)是属于特定用户的所有对象的集合,这些对象包括表、索引、视图等.
Oracle中的数据字典读者很容易会想到这样的情况:一个数据库可以包含上千甚至上万个对象.
Oracle数据字典(datadictionary)的工作就是跟踪所有这些信息.
任何数据库中的数据字典都包含元数据信息.
元数据是"关于数据的数据",或者说是存储用户所拥有的表以及数据库对象的一组表与其他数据库对象.
Oracle中的数据字典是一组被称为基表的表,这些表包含与用户创建的数据库对象相关的最基本信息.
基表属于名为SYS的Oracle用户,该用户在创建数据库的同时被创建.
基表永远不会被直接访问,其名称十分含糊,以防止用户对其进行查询或修改.
为了更易于访问数据字典以获取数据库中对象的相关信息,数据库创建过程中会创建一系列视图,这些视图通常被称为数据字典视图.
Oracle拥有下列3组数据字典视图:USER_视图:这些视图允许用户获取其模式中对象的相关信息(也就是用户创建并拥有的对象).
ALL_视图:这些视图允许用户获取其拥有的或可被访问的对象的相关信息.
ALL_视图包含用于相同对象的USER视图所表示信息的一个子集,并且允许用户在其拥有的对象之外找出数据库中可以引用或操纵的其他对象.
DBA_视图:数据库管理员(DataBaseAdministrator,DBA)使用的DBA_视图提供了数据库中所有对象(也就是所有用户创建的所有对象)的完整信息.
因为没有使用被使用SELECT授予特殊权限,所以普通用户无法访问这些视图.
为了帮助您成为一名合格的数据库管理员,本书后面的章节将陆续介绍许多DBA_视图.
不过,读者可能会存在这样的疑问:在Oracle领域,数据库管理员的职责究竟是什么呢1.
3数据库管理员的职责我的一位同事经常这样评论:"负责数据库的用户总认为他们能够控制数据库".
然而,即使这些用户在难以控制的情况下采用了非常正确的方法,事实也是大相径庭的.
作为一名DBA,他能够在其负责的任何数据库中执行所希望的任何操作,因此具有控制能力.
数据库管理员确实拥有相当大的权利,但是需要牢记的是:权利越大,职责越大.
归根结底,数据库能否响应用户需求与满足共同目标取决于DBA.
DBA必须接受对数据库管理的褒贬.
OracleDBA负责下列任务:评估并决定服务器硬件的规模.
作为机构中负责数据库平稳运作的人员,DBA需要建议用于运行Oracle的服务器的配置.
在决定投入、硬盘、CPU以及支持目标数据库操作所需的其他资源时,DBA的经验将起到重要作用.
理解Oracle的体系结构以及业务和应用的数据需求将有助于DBA完成这个任务.
安装Oracle软件与补充资料.
购买Oracle软件后首先需要进行安装.
在目标平台上安装Oracle软件是DBA的工作.
因为Oracle是一个由复杂软件组成且功能非常强大的系统,软件与操作系统之间具有许多挂钩与交互,所以安装Oracle软件不仅仅只包括在CD中插入光盘并回答安装程序的提示.
要成为一名成功的DBA,保证Oracle软件安装与运作的正确性至关重要.
计划与设计数据库结构.
一旦安装了Oracle软件,就需要确保以最优方式来对Oracle的物理数据结构和逻辑元素进行布局.
如果不注意这个问题,那么数据库的性能就会受损,用户也会不满意.
在正确决定了硬件规模的前提下,因为已经考虑了数据库的大小与结构,所以计划与设计数据库结构将是一个轻松的任务.
如果不改变环境,那么DBA可能需要使用专业知识来确定最优配置.
创建数据库.
数据库的创建是管理数据库的第一步.
虽然相对较为简单,但是这个过程仍然会出现若干问题.
无论如何,DBA应当凭经验来解决这些问题.
为了保护数据的安全,能够备份数据库或采用其他方法.
在数据库用于生产并且用户连接数据库时,如果数据库难以连接,那么用户就无法工作.
更糟的是,如果数据丢失,那么就意味着失去生产量、销售量和客户.
确保用户始终能够使用数据库、数据损失最少以及恢复的快速与完整可能是DBA最重要的职责之一.
创建与维护数据库用户.
一旦某个新用户需要访问数据库或者另一个用户的要求与权限发生改变时,DBA必须能够通过必要的安全性修改来确保正确的访问.
在某些情况下,应用程序开发人员可能无法充分使用Oracle内置的安全性,因此识别这些情况并采取适当的措施也是必要的.
实现应用程序与数据库设计.
在内部缺少专业人员时,机构可能购买第三方应用软件,也可能招聘数据库设计师来设计适合指定需求的数据库.
不过,因为DBA在软件供应商或数据库设计师离开后要能够确保数据库继续正常运作,所以这些设计的实际实现是由DBA承担的.
还原与恢复数据库.
数据库有时会发生下列故障:硬件故障,用户错误地修改或删除数据,数据中心遭受自然灾害或其他灾害.
能够恢复各种场景至关重要.
为了确保能够正常地应用灾难容错恢复策略,不仅需要在真实情况下进行测试,而且还应当在模拟场景中进行测试.
DBA就是负责正确应用灾难容错恢复策略的人.
监视与调整数据库性能.
电影StarTrek:TheNextGeneration中有一段"企业"号对一艘陷入困境的飞船进行援助的情节.
这艘飞船的所有者缺乏工程与通信技能,但是他们却要求Picard船长和Giordi能够加快飞船的速度.
用户经常埋怨数据库不够快速.
如果能够尽可能地减少埋怨并及时(或提前)解决各种性能问题,那么DBA就不会承受太大的压力,同时也能够提升对自身工作的满意度.
物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...
Megalayer 商家在之前也有记录过,商家开始只有提供香港站群服务器和独立服务器,后来也有增加到美国独立服务器,以及前几天也有介绍到有增加香港VPS主机。对于香港服务器之前有过评测(Megalayer香港服务器配置一览及E3-1230 8GB服务器评测记录),这里申请到一台美国独立服务器,所以也准备简单的评测记录。目前市场上我们看到很多商家提供VPS或者云服务器基本上没有什么特别的,但是独立服...
物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是美国圣何塞 Equinix 机房的高性能I9-10980XE大带宽VPS,去程CN2GIA回程AS9929,美国原生IP,支持解锁奈飞等应用,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-V,资源全...