OracleRDBMS应用系统设计与开发_第1页
OracleRDBMS应用系统设计与开发_第2页
OracleRDBMS应用系统设计与开发_第3页
OracleRDBMS应用系统设计与开发_第4页
OracleRDBMS应用系统设计与开发_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OracleRDBMS应用系统设计与开发赵元杰2007.07.04136013656811内容提要 团队与合作问题;Oracle关键问题;数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。2团队与合作-现代软件项目特 互联网的时代:项目小组:项目小组的成熟度和能力,而非个别程序员的个人魅力;

程序员准确定位;程序员不是斗士;一般是杀不净的BUG。几百个数字英雄却很难铸造出一个强劲的产业:流水线的软件产业;

强有力的团队共同协作;担任不同角色和责任。管理者要做:将多个自由英雄团结起来;组建出高效的开发小组;中国不缺个人英雄,而是缺乏强有力的团队。3团队与合作-项目小组角色与分工 经常面临的问题

:项目无法按期完成,完成以后还要不断修补完善,对软件人员和用户来说象一场噩梦遥遥无期;

项目进行当中人员流失,产品夭折;

客户需求不断改变,永远对开发完成的产品不满意;

开发成员之间矛盾不断,互相抱怨,工程进展缓慢;小组成员分工不均,工作分配失去平衡等等;

问题对策

:项目负责人责任(称之为组长或项目经理);项目负责人能力(古人云:一将无能,累死千军);项目经理根据需求制定出开发的目标;确实落实到实际中。4团队与合作-项目小组角色与分工角色与分工:角色性质角色分工项目管理人员

项目经理

产品经理技术经理系统分析人员

框架设计系统分析员软件设计师商务分析人员业务流程分析员业务功能设计员数据库工程师

数据库设计员

5团队与合作-项目小组角色与分工角色与分工:角色性质角色分工程序开发人员

软件实施员

质量控制人员集成测试员测试设计师课程设计师技术文档编写员技术支持人员售前工程师售后工程师系统管理人员系统管理员

辅助设计人员专业美工VI设计师6团队与合作-项目小组角色与分工 形成一致的意见:是否已经很清晰的理解了开发的需求和目标,并使每个人员充满斗志地准备开始完成共同的目标?是否制定了一套规范的、经过评测的、可复用的技术框架;每个人的角色分工是不是都非常清楚地落实了;是不是已经制定了开发过程中的周期划分及评估办法?而不是冒险等项目期限快到的时候才发现补牢已晚;7团队与合作-项目小组角色与分工 形成一致的意见(续):项目管理人员是否有随时把握开发进度的有效手段?小组人员是否都互相认识而且熟悉;每个人是否都明白和他关联的角色是谁,相互之间的工作流程?是否忘了布置文档撰写及管理的方法或标准?8团队与合作-DBA-总设计师-开发人员一般DBA与开发者存在障碍;主要问题是“所有权”:职责与分工问题;DBA觉得是问题的替罪羊;需要沟通。问题在于对策:搞好关系,责任明确;DBA是数据库的维护者;开发者是使用数据库人员;为了共同的目标。9团队与合作-DBA责任一般DBA负责数据库管理;也涉及数据库的逻辑设计;执行物理设计的实现;协作开发人员工作;确保高性能、安全及备份恢复。10内容提要要团队与合合作问题题;Oracle关键问题题;数据库设设计方法法问题;;Oracle功能的发发现与使使用问题题;严谨的程程序设计计问题;;测试阶段段管理问问题;试用问题题。11Oracle关键问题题-Oracle安装问题题操作系统统的安装装问题:规划磁盘盘空间;;交换空间间问题;;一般空间问题题。Oracle安装建议:默认安装与自自定义安装问问题;数据文件与日日志文件等问问题;安装需要的选选件问题。12Oracle关键问题-表表空间与数据据文件开发阶段考虑虑的问题:要接近将来的的实际情况;;磁盘空间的分分配;开发环境与实实际环境的空空间比例问题题。为开发阶段创创建USER/INDEX表空间;表空间存放开开发阶段的对对象;不要将对象创创建在SYSTEM表空间上:ALTERUSERQUOTA限制;用EXP/IMP将用户对象从从SYSTEM表空间移出;;或ALTERTABLEMOVE移动。13Oracle关键问题-表表空间与数据据文件数据文件大小小问题:在OS允许情况下,,要中庸一些些为好;不要轻易RESIZE;与实际数据量量比例计算;;Oracle10g的BIGFILE问题:支持大文件;;与OS有关;与32bit和64bit有关;与Oracle块大小有关。。Oracle9i/10g的OMF问题:支持OMF管理;维护带来危险险;文件大小也不不合理。14Oracle关键问题-日日志文件问题题日志文件分布布问题:树立开发环境境就是实际的的模拟;一般开始就应应注意安全与与性能;日志文件在不不同的磁盘;;与归档日志文文件分开。日志文件大小小问题:应用DML并发数据量;;8i默认太小;9i默认太大;10g默认还合理;;可创建合理大大小并删除小小的日志文件件。15Oracle关键问题-临临时表空间问问题临时表与临时时文件问题:8i临时表对应数数据文件;排序的最大数据量的估计。临时文件大小问题:临时文件一次给足;告诉程序不要随便用ORDERBY等语句;总设计师对排序的理解与估计;索引、集合操作等。16Oracle关键问题-用用户、权限于于角色总设计师规划划与DBA创建;创建用户名与与实际用户问问题;Oracle系统角色:Oracle默认系统权限限;开发权限与管管理权限;是否创建应用用角色问题。。17用户权限角色UPDATEONEMPINSERTONEMPSELECTONEMPCREATETABLECREATESESSIONHR_CLERKHR_MGRABCOracle关键问题-用用户角色与权权限18Oracle关键问题-用用户与权限160多种系统权限限(systemprivileges):参考原版OracledatabaseSQLreference参考原版OracledatabaseadministratorSELECTDISTINCTPRIVILEGEFROMdba_sys_privsorderbyPRIVILEGE对象权限(Objectprivileges):参考原版OracledatabaseSQLreference参考原版Oracledatabaseadministrator角色(老三样样)CONNECT、RESOURCE、DBAselect*fromdba_roles19Oracle关键问题-用用户与权限一般用户权限限:权限说明CREATESESSION

允许用户联到ORACLE数据库,用户可访问ORACLE

ALTERSESSION

允许用户发出ALTERSESSION设置系统参数

FORCETRANSACTION

允许用户在本地数据库中提交或回滚分布数据库事务.一般不用设置该权限

20Oracle关键问题-用用户与权限一般开发者权权限:权限说明CREATECLUSTER创建属于开发者自己的表聚簇,开发者也能撤消他们拥有的聚簇

CREATEPROCEDURE创建属于开发者的存储过程,软件包和函数.开发者也能撤消他们所拥有的这些对象

CREATEDATABASELINK定义一个数据库连接,因为这是一个命名的指向其它数据库的指针,所以这个特性类似同义词,主要差别是可以存储远程系统中的Oracleid和口令作连接的一部分

21Oracle关键问题-用用户与权限一般开发者权权限(2):权限说明CREATEPUBLICSYNONYM为了引用一个诸如表或视图的数据库对象所创建的一个替代名,实例中的任何用户都能使用这个名称调用它所代表的对象,用户要访问对象仍需要对象权限DROPPUBLICSYNONYM为了引用数据库对而删除替代名称,该数据库对象可实例中的所有用户使用

CREATESEQUENCE创建一个开发者所有的序列,开发者也能撤消任何他们建立的序列

22Oracle关键问题-用用户与权限一般开发者权权限(3):权限说明CREATESNAPSHOT为了引用一个诸如表或视图的数据库对象所创建的一个替代名,实例中的任何用户都能使用这个名称调用它所代表的对象,用户要访问对象仍需要对象权限DROPPUBLICSYNONYM为了引用数据库对而删除替代名称,该数据库对象可实例中的所有用户使用

CREATESEQUENCE创建一个开发者所有的序列,开发者也能撤消任何他们建立的序列

23Oracle关键问题-用用户与权限一般开发者权权限(4):权限说明CREATESNAPSHOTP创建一个位于另一个ORACLE实例中的表的本地考备,开发者也能撤消他们拥有的快照CREATESYNONYM创建一个专用的同义词(仅供开发者使用),开发者也能撤消他们拥有的任何同义词CREATETABLE开发者可以创建表和删除表24Oracle关键问题-用用户与权限一般开发者权权限(5):权限说明CREATETRIGGER开发者可以创建或删除他们拥有的触发器CREATEVIEW开发者可以创建或删除他们拥有的视图UNLIMITEDTABLESPACE允许开发者在表空间中创建对象而不受表空间大小限制CREATETYPEDROPTYPE允许开发者创建新的对象类型删除对象类型CREATELIBRARY允许开发者创建新的对象库删除对象库25Oracle关键问题-用用户与权限DBA权限与ANY:能做任何的意意思,如CREATEANYTABLE;SYS具有此权限;;普通开发者不不需要ANY。动态的PL/SQL用ANY:在SQL>下能将对象创创建到另外用用户下;一般在PL/SQL下不能,请用用ANY即可;进入测试后建建议不要用ANY。26Oracle关键问题-用用户与权限DBA权限与ANY:权限说明ANALYZEANY允许用户收集最优化统计,使结构有效或识别在数据库的任何表,表聚簇中被移动和被链接的行ADUITANY允许用户对数据库中的任何对象进行审计CREATEANYCLUSTER允许用户创建聚簇,并给数据库中的任何用户赋予所有权27Oracle关键问题-用用户与权限SYSDBA与SYSOPER:SYSDBA(以sysdba连接才有效):执行STARTUP和SHUTDOWN操作ALTERDATABASE:open,mount,backup,或changecharactersetCREATEDATABASEDROPDATABASECREATESPFILEALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限28Oracle关键问题-用用户与权限SYSDBA与SYSOPER:SYSOPER:执行STARTUP和SHUTDOWNCREATESPFILEALTERDATABASEOPEN/MOUNT/BACKUPALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限SYSTEM类似SYSOPER:SYSTEM权限没有SYS那么多SYSTEM和DBA角色均能改SYS的口令SYSTEM和SYS口令忘忘记:创建口口令文文件orapwd29内容提提要团队与与合作作问题题;Oracle关键问问题;数据库库设计计方法法问题题;Oracle功能的的发现现与使使用问问题;;严谨的的程序序设计计问题题;测试阶阶段管管理问问题;;试用问问题。。30数据库库设计计方法法问题题应用系系统的的类型型:OLTP系统:并发用用户数数多(高峰峰);;安装时时选择择默认认的块块大小小;表结构构要考考虑INITRANS等参数数;OLAP系统:并发用用户数数少(高峰峰);;每次I/O量、块块大小小要大大些;;不用考考虑INITRANS等参数数;DSS系统:只读表表空间间问题题;用户也也要分分3、、6、、9等等以以满足足统计计分析析用户户要求求;大数据处处理要避避开高峰峰时运行行。31数据库设设计方法法问题图形界面面与脚本本问题::图形界面面方便、、直观,,但也要要脚本;;脚本便于于阅读;;文档就是是脚本,,而不是是图形的的拷贝;;移植到真真实环境境是脚本本,而不不是图形形界面。。脚本与注注释问题题:脚本也要要加详细细注释,,脚本就就是程序序;脚本的书写要要求可读性;;脚本也要有规规范;脚本规范参考考…/rdbms/admin中Oracle的样例。32数据库设计方方法问题自动创建与卸卸出问题:采用脚本自动动创建表空间间、用户、权权限;采用脚本自动动创建表、索索引、约束、、视图;卸出脚本单独独形成文件;;正式运行后卸卸出脚本要保保管好(不要要放在磁盘里里)。脚本与环境有有关问题:脚本也可带变变量;数据文件路经经(Windows/UNIX/LINUX);表空间名不变变(10g可改名),数数据文件大小小可变;规模大小可变变。33数据库设计方方法问题数据库结构一一次创建问题题:不要采用图形形工具创建;;不要经常ALTERTABLE;ALTERTABLE要经总设计师师的批准;ALTERTABLE要在文档上修修改。必要的ALTER问题:存储参数不合合理时用;建议不要使用用联机重定义义;联机重定义是是对不合理的的已经存在结结构进行定义义;不合理就迁移移到新表空间间。34数据库存储设设计问题空间的有效利利用问题:Oracle数据文件结构构;Oracle存储块结构;;不同的对象采采用不同的块块大小。Oracle9i/10g块的可变问题题:9i开始支持块大大小可变;可变也得考虑虑合理;根据不同对象象特性设计块块大小与表空空间;总设计师要研研究Oracle的PCTFREE和PCTUSED。35数据库存储设设计问题应用系统的数数据存储量:大表一定分区区:表分区;索引也要分区区;中等数据量的的表要考虑STORAGE参数。大表小表、索索引要做:Storage估计;索引与的访问问来确定表要分相对固定与修改频繁;要根据表修改频率确定PCTFREE和PCTUSED;不同的Oracle版本PCTFREE和PCTUSED差别。36内容提要团队与合作问问题;Oracle关键问题;数据库设计方方法问题;Oracle功能的发现与与使用问题;;严谨的程序设设计问题;测试阶段管理理问题;试用问题。37Oracle功能发现问题题Oracle产品选件:Oracle企业与标准版版差异;Oracle的Partition常被遗忘问题题;不用选件不要要装;OracleSELECT*FROMV$OPTION;38Oracle功能发现问问题Oracle一般的功能能:Oracle的Partition被遗忘问题题安装时选择择;在设计时使使用;在SQL中使用。Oracle的设计时选择;提高性能。Oracle的IOT被遗忘问题设计时选择;非结构化数据可提高性能。Oracle的NEST表被遗忘问题设计时选择;复杂关系:可减少查询时的关联。39Oracle功能发现问问题Oracle内置包:基本内置包包DBMS_JOB;;DBMS_PIPE;DBMS_SQL;;...Oracle特殊的内置置包:需要安装的的内置包DBMS_PROFILE;;DBMS_TRACE;...40内容提要团队与合作作问题;Oracle关键问题;数据库设计计方法问题题;Oracle功能的发严谨的程序设计问题;测试阶段管理问题;试用问题。41严谨的程序序设计问题题程序员要理理解:事务处理技技术:明确的COMMIT/ROLLBACK;由DDL语句隐含地地完成;用户正常的的断开(Disconnect)––自动提交(autocommit);;异常的终止止–自动动回滚(autorollback);在程序中体体现。理解事务的的属性:原子的(Atomicity)–所有的或没没任何事.一致性(Consistency)–每个事务之之前或之后后.独立性(Isolation)–各自独立执执行.耐久性(Durability)––成功的提交交可保数据据长久保存存在数据库库中。42严谨的程序序设计问题题程序员要理理解:Oracle对象::表结构构如何何查看看;表之间间关系系如何何查看看;索引与与表的的关系系;PL/SQL程序与与Trigger。业务的的流程程:各业务务的处处理流流程;;业务与与各表表的关关系;;业务与与事务务的联联系。。43严谨的的程序序设计计问题题程序员员要掌掌握::开发工工具::熟练使使用PL/SQL编程;;开发工工具的的熟练练使用用;数据库库DML:DML语言;;忌讳和和建议议的SQL语句;;动态的的SQL问题;;程序员员要活活学活活用::要理论论联系系实际际;数据库库业务务总是是以事事务来来处理理;将用户户的业业务理理解成成事务务并在在程序序中体体现;;要实现现事务务的处处理要要求所所涉及及的语语句。。44严谨的的程序序设计计问题题程序员员要活活学活活用问问题::照搬与与模仿仿:有的例例子与与你的的情况况可能能不符符;注意搜搜集各各种技技巧,,可学学习方方法;;学习权权威专专家的的样例例。Oracle原版资资料::详细的的内容容还是是要看看原版版;OCP/OCM资料偏偏概念念;中文网网站文文章有有水平平的不不多(互相相转载载)。。45严谨的的程序序设计计问题题错误的的捕捉捉与提提示问问题::普遍问问题::多数人人仅仅仅编写写能够够实现现应用用程序序正面面功能能;用户只只会以以正确确的方方式输输入正正确的的数据据;系统((软件件和硬硬件))总是是处于于良好好的运运行状状态。。结果是是:应用程程序中中总会会存在在着不不止一一个的的bug;;用户总总能找找到恰恰当的的时机机使得得你的的程序序出错错;不预先先花费费时间间来正正确调调试-无休止止的善善后工工作;PL/SQL中的错错误处处理被被忽略略。46内容提提要团队与与合作作问题题;Oracle关键问问题;数据库库设计计方法法问题题;Oracle功能的的发现现与使使用问问题;;严谨的的程序序设计计问题题;测试阶阶段管管理问问题;;试用问问题。47测试阶段性能测试::增加用户观观察应用反反应最高容许能能力硬件测试::增加硬件((如内存))减少硬件(拔掉硬盘盘、内存))容错测试::关闭主数据据库,备用用数据库能能否接管检查事务的的丢失情况况48测试阶段测试阶段考考虑的问题题:DBA创建另外的的环境;尽量模拟用用户的真实实环境;系统架构师师与DBA配合。考虑模拟数数据:为关键表产产生模拟数数据;模拟数据从从几万到几几十,再到到几百万;;模拟插入、、删除、修修改操作系系统的确响响应;模拟10用用户(进程程)到100用户的的资源竞争争情况。49测试阶段测试操作考考虑的问题题:采用跟踪搜搜索运行的的情况;从数据字典典查询;并发用户如如何

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论