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

下载本文档

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

文档简介

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

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

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

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

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

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

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

问题对策

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

项目经理

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

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

数据库设计员

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

软件实施员

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

辅助设计人员专业美工VI设计师6E_mail:zyj5681@团队与合作-项目小组角色与分工角色与分工:角色性质角色分工程团队与合作-项目小组角色与分工 形成一致的意见:是否已经很清晰的理解了开发的需求和目标,并使每个人员充满斗志地准备开始完成共同的目标?是否制定了一套规范的、经过评测的、可复用的技术框架;每个人的角色分工是不是都非常清楚地落实了;是不是已经制定了开发过程中的周期划分及评估办法?而不是冒险等项目期限快到的时候才发现补牢已晚;7E_mail:zyj5681@团队与合作-项目小组角色与分工 形成一致的意见:7E_ma团队与合作-项目小组角色与分工 形成一致的意见(续):项目管理人员是否有随时把握开发进度的有效手段?小组人员是否都互相认识而且熟悉;每个人是否都明白和他关联的角色是谁,相互之间的工作流程?是否忘了布置文档撰写及管理的方法或标准?8E_mail:zyj5681@团队与合作-项目小组角色与分工 形成一致的意见(续):8E团队与合作-DBA-总设计师-开发人员一般DBA与开发者存在障碍;主要问题是“所有权”:职责与分工问题;DBA觉得是问题的替罪羊;需要沟通。问题在于对策:搞好关系,责任明确;DBA是数据库的维护者;开发者是使用数据库人员;为了共同的目标。9E_mail:zyj5681@团队与合作-DBA-总设计师-开发人员一般DBA与开发者团队与合作-DBA责任一般DBA负责数据库管理;也涉及数据库的逻辑设计;执行物理设计的实现;协作开发人员工作;确保高性能、安全及备份恢复。10E_mail:zyj5681@团队与合作-DBA责任一般DBA负责数据库管理;10E_内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。11E_mail:zyj5681@内容提要 团队与合作问题;11E_mail:zyj5681@Oracle关键问题-Oracle安装问题操作系统的安装问题:规划磁盘空间;交换空间问题;一般空间问题。Oracle安装建议:默认安装与自定义安装问题;数据文件与日志文件等问题;安装需要的选件问题。12E_mail:zyj5681@Oracle关键问题-Oracle安装问题操作系统的安装问题Oracle关键问题-表空间与数据文件开发阶段考虑的问题:要接近将来的实际情况;磁盘空间的分配;开发环境与实际环境的空间比例问题。为开发阶段创建USER/INDEX表空间;表空间存放开发阶段的对象;不要将对象创建在SYSTEM表空间上:ALTERUSERQUOTA限制;用EXP/IMP将用户对象从SYSTEM表空间移出;或ALTERTABLEMOVE移动。13E_mail:zyj5681@Oracle关键问题-表空间与数据文件开发阶段考虑的问题:1Oracle关键问题-表空间与数据文件数据文件大小问题:在OS允许情况下,要中庸一些为好;不要轻易RESIZE;与实际数据量比例计算;Oracle10g的BIGFILE问题:支持大文件;与OS有关;与32bit和64bit有关;与Oracle块大小有关。Oracle9i/10g的OMF问题:支持OMF管理;维护带来危险;文件大小也不合理。14E_mail:zyj5681@Oracle关键问题-表空间与数据文件数据文件大小问题:14Oracle关键问题-日志文件问题日志文件分布问题:树立开发环境就是实际的模拟;一般开始就应注意安全与性能;日志文件在不同的磁盘;与归档日志文件分开。日志文件大小问题:应用DML并发数据量;8i默认太小;9i默认太大;10g默认还合理;可创建合理大小并删除小的日志文件。15E_mail:zyj5681@Oracle关键问题-日志文件问题日志文件分布问题:15E_Oracle关键问题-临时表空间问题临时表与临时文件问题:8i临时表对应数据文件;9i/10g临时表空间对应临时文件(TEMPFILE);排序的最大数据量的估计。临时文件大小问题:临时文件一次给足;告诉程序不要随便用ORDERBY等语句;总设计师对排序的理解与估计;索引、集合操作等。16E_mail:zyj5681@Oracle关键问题-临时表空间问题临时表与临时文件问题:1Oracle关键问题-用户、权限于角色总设计师规划与DBA创建;创建用户名与实际用户问题;Oracle系统角色:Oracle默认系统权限;开发权限与管理权限;是否创建应用角色问题。17E_mail:zyj5681@Oracle关键问题-用户、权限于角色总设计师规划与DBA创用户权限角色UPDATE

ONEMPINSERTONEMPSELECT

ONEMPCREATETABLECREATESESSIONHR_CLERKHR_MGRABCOracle关键问题-用户角色与权限18E_mail:zyj5681@用户权限角色UPDATEONEMPINSERTONEOracle关键问题-用户与权限160多种系统权限(systemprivileges):参考原版OracledatabaseSQLreference参考原版OracledatabaseadministratorSELECTDISTINCTPRIVILEGEFROMdba_sys_privsorderbyPRIVILEGE对象权限(Objectprivileges):参考原版OracledatabaseSQLreference参考原版Oracledatabaseadministrator角色(老三样)CONNECT、RESOURCE、DBAselect*fromdba_roles19E_mail:zyj5681@Oracle关键问题-用户与权限160多种系统权限(systOracle关键问题-用户与权限一般用户权限:权限说明CREATESESSION

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

ALTERSESSION

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

FORCETRANSACTION

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

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

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

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

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

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

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

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

23E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(3):权限说Oracle关键问题-用户与权限一般开发者权限(4):权限说明CREATESNAPSHOTP创建一个位于另一个ORACLE实例中的表的本地考备,开发者也能撤消他们拥有的快照CREATESYNONYM创建一个专用的同义词(仅供开发者使用),开发者也能撤消他们拥有的任何同义词CREATETABLE开发者可以创建表和删除表24E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(4):权限说Oracle关键问题-用户与权限一般开发者权限(5):权限说明CREATETRIGGER开发者可以创建或删除他们拥有的触发器CREATEVIEW开发者可以创建或删除他们拥有的视图UNLIMITEDTABLESPACE允许开发者在表空间中创建对象而不受表空间大小限制CREATETYPEDROPTYPE允许开发者创建新的对象类型删除对象类型CREATELIBRARY允许开发者创建新的对象库删除对象库25E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(5):权限说Oracle关键问题-用户与权限DBA权限与ANY:能做任何的意思,如CREATEANYTABLE;SYS具有此权限;普通开发者不需要ANY。动态的PL/SQL用ANY:在SQL>下能将对象创建到另外用户下;一般在PL/SQL下不能,请用ANY即可;进入测试后建议不要用ANY。26E_mail:zyj5681@Oracle关键问题-用户与权限DBA权限与ANY:26E_Oracle关键问题-用户与权限DBA权限与ANY:权限说明ANALYZEANY允许用户收集最优化统计,使结构有效或识别在数据库的任何表,表聚簇中被移动和被链接的行ADUITANY允许用户对数据库中的任何对象进行审计CREATEANYCLUSTER允许用户创建聚簇,并给数据库中的任何用户赋予所有权27E_mail:zyj5681@Oracle关键问题-用户与权限DBA权限与ANY:权限说明Oracle关键问题-用户与权限SYSDBA与SYSOPER:SYSDBA(以sysdba连接才有效):执行STARTUP和SHUTDOWN操作ALTERDATABASE:open,mount,backup,或changecharactersetCREATEDATABASEDROPDATABASECREATESPFILEALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限28E_mail:zyj5681@Oracle关键问题-用户与权限SYSDBA与SYSOPEROracle关键问题-用户与权限SYSDBA与SYSOPER:SYSOPER:执行STARTUP和SHUTDOWNCREATESPFILEALTERDATABASEOPEN/MOUNT/BACKUPALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限SYSTEM类似SYSOPER:SYSTEM权限没有SYS那么多SYSTEM和DBA角色均能改SYS的口令SYSTEM和SYS口令忘记:创建口令文件orapwd29E_mail:zyj5681@Oracle关键问题-用户与权限SYSDBA与SYSOPER内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。30E_mail:zyj5681@内容提要 团队与合作问题;30E_mail:zyj5681@数据库设计方法问题应用系统的类型:OLTP系统:并发用户数多(高峰);安装时选择默认的块大小;表结构要考虑INITRANS等参数;OLAP系统:并发用户数少(高峰);每次I/O量、块大小要大些;不用考虑INITRANS等参数;DSS系统:只读表空间问题;用户也要分3、6、9等以满足统计分析用户要求;大数据处理要避开高峰时运行。31E_mail:zyj5681@数据库设计方法问题应用系统的类型:31E_mail:zyj5数据库设计方法问题图形界面与脚本问题:图形界面方便、直观,但也要脚本;脚本便于阅读;文档就是脚本,而不是图形的拷贝;移植到真实环境是脚本,而不是图形界面。脚本与注释问题:脚本也要加详细注释,脚本就是程序;脚本的书写要求可读性;脚本也要有规范;脚本规范参考…/rdbms/admin中Oracle的样例。32E_mail:zyj5681@数据库设计方法问题图形界面与脚本问题:32E_mail:zy数据库设计方法问题自动创建与卸出问题:采用脚本自动创建表空间、用户、权限;采用脚本自动创建表、索引、约束、视图;卸出脚本单独形成文件;正式运行后卸出脚本要保管好(不要放在磁盘里)。脚本与环境有关问题:脚本也可带变量;数据文件路经(Windows/UNIX/LINUX);表空间名不变(10g可改名),数据文件大小可变;规模大小可变。33E_mail:zyj5681@数据库设计方法问题自动创建与卸出问题:33E_mail:z数据库设计方法问题数据库结构一次创建问题:不要采用图形工具创建;不要经常ALTERTABLE;ALTERTABLE要经总设计师的批准;ALTERTABLE要在文档上修改。必要的ALTER问题:存储参数不合理时用;建议不要使用联机重定义;联机重定义是对不合理的已经存在结构进行定义;不合理就迁移到新表空间。34E_mail:zyj5681@数据库设计方法问题数据库结构一次创建问题:34E_mail数据库存储设计问题空间的有效利用问题:Oracle数据文件结构;Oracle存储块结构;不同的对象采用不同的块大小。Oracle9i/10g块的可变问题:9i开始支持块大小可变;可变也得考虑合理;根据不同对象特性设计块大小与表空间;总设计师要研究Oracle的PCTFREE和PCTUSED。35E_mail:zyj5681@数据库存储设计问题空间的有效利用问题:35E_mail:zy数据库存储设计问题应用系统的数据存储量:大表一定分区:表分区;索引也要分区;中等数据量的表要考虑STORAGE参数。大表小表、索引要做:Storage估计;索引与的访问来确定PCTFREE;表要分相对固定与修改频繁;要根据表修改频率确定PCTFREE和PCTUSED;不同的Oracle版本PCTFREE和PCTUSED差别。36E_mail:zyj5681@数据库存储设计问题应用系统的数据存储量:36E_mail:z内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。37E_mail:zyj5681@内容提要 团队与合作问题;37E_mail:zyj5681@Oracle功能发现问题Oracle产品选件:Oracle企业与标准版差异;Oracle的Partition常被遗忘问题;不用选件不要装;Oracle产品已装哪些选件:SELECT*FROMV$OPTION;38E_mail:zyj5681@Oracle功能发现问题Oracle产品选件:38E_maOracle功能发现问题Oracle一般的功能:Oracle的Partition被遗忘问题安装时选择;在设计时使用;在SQL中使用。Oracle的Cluster被遗忘问题设计时选择;提高性能。Oracle的IOT被遗忘问题设计时选择;非结构化数据可提高性能。Oracle的NEST表被遗忘问题设计时选择;复杂关系:可减少查询时的关联。39E_mail:zyj5681@Oracle功能发现问题Oracle一般的功能:39E_mOracle功能发现问题Oracle内置包:基本内置包DBMS_JOB;DBMS_PIPE;DBMS_SQL;...Oracle特殊的内置包:需要安装的内置包DBMS_PROFILE;DBMS_TRACE;...40E_mail:zyj5681@Oracle功能发现问题Oracle内置包:40E_mai内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。41E_mail:zyj5681@内容提要 团队与合作问题;41E_mail:zyj5681@严谨的程序设计问题程序员要理解:事务处理技术:明确的COMMIT/ROLLBACK;由DDL语句隐含地完成;用户正常的断开(Disconnect)–自动提交(autocommit);异常的终止–自动回滚(autorollback);在程序中体现。理解事务的属性:原子的(Atomicity)–所有的或没任何事.一致性(Consistency)–每个事务之前或之后.独立性(Isolation)–各自独立执行.耐久性(Durability)–成功的提交可保数据长久保存在数据库中。42E_mail:zyj5681@严谨的程序设计问题程序员要理解:42E_mail:zyj56严谨的程序设计问题程序员要理解:Oracle对象:表结构如何查看;表之间关系如何查看;索引与表的关系;PL/SQL程序与Trigger。业务的流程:各业务的处理流程;业务与各表的关系;业务与事务的联系。43E_mail:zyj5681@严谨的程序设计问题程序员要理解:43E_mail:zyj56严谨的程序设计问题程序员要掌握:开发工具:熟练使用PL/SQL编程;开发工具的熟练使用;数据库DML:DML语言;忌讳和建议的SQL语句;动态的SQL问题;程序员要活学活用:要理论联系实际;数据库业务总是以事务来处理;将用户的业务理解成事务并在程序中体现;要实现事务的处理要求所涉及的语句。44E_mail:zyj5681@严谨的程序设计问题程序员要掌握:44E_mail:zyj56严谨的程序设计问题程序员要活学活用问题:照搬与模仿:有的例子与你的情况可能不符;注意搜集各种技巧,可学习方法;学习权威专家的样例。Oracle原版资料:详细的内容还是要看原版;OCP/OCM资料偏概念;中文网站文章有水平的不多(互相转载)。45E_mail:zyj5681@严谨的程序设计问题程序员要活学活用问题:45E_mail:z严谨的程序设计问题错误的捕捉与提示问题:普遍问题:多数人仅仅编写能够实现应用程序正面功能;用户只会以正确的方式输入正确的数据;系统(软件和硬件)总是处于良好的运行状态。结果是:应用程序中总会存在着不止一个的bug;用户总能找到恰当的时机使得你的程序出错;不预先花费时间来正确调试-无休止的善后工作;PL/SQL中的错误处理被忽略。46E_mail:zyj5681@严谨的程序设计问题错误的捕捉与提示问题:46E_mail:z内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。47E_mail:zyj5681@内容提要 团队与合作问题;47E_mail:zyj5681@测试阶段性能测试:增加用户观察应用反应最高容许能力硬件测试:增加硬件(如内存)减少硬件(拔掉硬盘、内存)容错测试:关闭主数据库,备用数据库能否接管检查事务的丢失情况48E_mail:zyj5681@测试阶段性能测试:48E_mail:zyj5681@yaho测试阶段测试阶段考虑的问题:DBA创建另外的环境;尽量模拟用户的真实环境;系统架构师与DBA配合。考虑模拟数据:为关键表产生模拟数据;模拟数据从几万到几十,再到几百万;模拟插入、删除、修改操作系统的确响应;模拟10用户(进程)到100用户的资源竞争情况。

49E_mail:zyj5681@测试阶段测试阶段考虑的问题:49E_mail:zyj5681测试阶段测试操作考虑的问题:采用跟踪搜索运行的情况;从数据字典查询;并发用户如何模拟问题。搜集和分析测试数据:采用有小工具搜集测试数据;分析各阶段的运行情况;提出测试问题与改进建议。50E_mail:zyj5681@测试阶段测试操作考虑的问题:50E_mail:zyj5681内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用阶段问题。51E_mail:zyj5681@内容提要 团队与合作问题;51E_mail:zyj5681@试用阶段-产品阶段产品考虑的问题:各对象的物主关系完成;规范各脚本文档;开发人员不再需要创建对象。文档也产品一部分:产品的包装;各类型文档;不同环境产品的考虑;产品的版本与升级。52E_mail:zyj5681@试用阶段-产品阶段产品考虑的问题:52E_mail:zyj5试用阶段-维护存在的通病普遍存在的问题:交付使用后,用户和开发方都认为任务已完成;测试没有问题就认为运行也无问题;开发人员开始撤离,溜守者衔接存在问题;维护阶段无费用。用户应该:维护申请经费;维护要专人,并且是高手;维护与及时性很重要。53E_mail:zyj5681@试用阶段-维护存在的通病普遍存在的问题:53E_mail:z试用阶段-定期进行健康检查存在的问题:用户和开发方未发现问题就放心使用下去;开发方与用户都开始松懈;无专门人员完善程序小毛病(小毛病变大毛病);等到出现问题后用户领导层才重视。开发方应该:树立防患于未然;定期进行健康检查(运行6~8个月后);给出检查分析报告;进行必要的调整与优化。54E_mail:zyj5681@试用阶段-定期进行健康检查存在的问题:54E_mail:zy试用阶段-维护阶段升级的问题:升级要与硬件一起考虑;非升级不可才升级问题;升级的时间与风险分析问题。用户应该考虑:升级的时机;各方的配合问题;几种退路方案要考虑。55E_mail:zyj5681@试用阶段-维护阶段升级的问题:55E_mail:zyj568试用阶段-维护阶段系统调整问题:一般数据库系统运行6~12个月后要调整;问题涉及的方面;Oracle与OS及存储调整全盘考虑。系统重组问题:磁盘的生命期被忽略问题;更换新磁盘问题;数据的重组问题;重组的技术难度问题。56E_mail:zyj5681@试用阶段-维护阶段系统调整问题:56E_mail:zyj56参考资料57E_mail:zyj5681@参考资料57E_mail:zyj5681@OracleRDBMS应用系统设计与开发赵元杰2007.07.041360136568158E_mail:zyj5681@OracleRDBMS1E_mail:zyj5681@ya内容提要 团队与合作问题;Oracle关键问题;数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。59E_mail:zyj5681@内容提要 团队与合作问题;2E_mail:zyj5681@y团队与合作-现代软件项目特 互联网的时代:项目小组:项目小组的成熟度和能力,而非个别程序员的个人魅力;

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

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

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

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

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

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

问题对策

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

项目经理

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

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

数据库设计员

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

软件实施员

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

辅助设计人员专业美工VI设计师63E_mail:zyj5681@团队与合作-项目小组角色与分工角色与分工:角色性质角色分工程团队与合作-项目小组角色与分工 形成一致的意见:是否已经很清晰的理解了开发的需求和目标,并使每个人员充满斗志地准备开始完成共同的目标?是否制定了一套规范的、经过评测的、可复用的技术框架;每个人的角色分工是不是都非常清楚地落实了;是不是已经制定了开发过程中的周期划分及评估办法?而不是冒险等项目期限快到的时候才发现补牢已晚;64E_mail:zyj5681@团队与合作-项目小组角色与分工 形成一致的意见:7E_ma团队与合作-项目小组角色与分工 形成一致的意见(续):项目管理人员是否有随时把握开发进度的有效手段?小组人员是否都互相认识而且熟悉;每个人是否都明白和他关联的角色是谁,相互之间的工作流程?是否忘了布置文档撰写及管理的方法或标准?65E_mail:zyj5681@团队与合作-项目小组角色与分工 形成一致的意见(续):8E团队与合作-DBA-总设计师-开发人员一般DBA与开发者存在障碍;主要问题是“所有权”:职责与分工问题;DBA觉得是问题的替罪羊;需要沟通。问题在于对策:搞好关系,责任明确;DBA是数据库的维护者;开发者是使用数据库人员;为了共同的目标。66E_mail:zyj5681@团队与合作-DBA-总设计师-开发人员一般DBA与开发者团队与合作-DBA责任一般DBA负责数据库管理;也涉及数据库的逻辑设计;执行物理设计的实现;协作开发人员工作;确保高性能、安全及备份恢复。67E_mail:zyj5681@团队与合作-DBA责任一般DBA负责数据库管理;10E_内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。68E_mail:zyj5681@内容提要 团队与合作问题;11E_mail:zyj5681@Oracle关键问题-Oracle安装问题操作系统的安装问题:规划磁盘空间;交换空间问题;一般空间问题。Oracle安装建议:默认安装与自定义安装问题;数据文件与日志文件等问题;安装需要的选件问题。69E_mail:zyj5681@Oracle关键问题-Oracle安装问题操作系统的安装问题Oracle关键问题-表空间与数据文件开发阶段考虑的问题:要接近将来的实际情况;磁盘空间的分配;开发环境与实际环境的空间比例问题。为开发阶段创建USER/INDEX表空间;表空间存放开发阶段的对象;不要将对象创建在SYSTEM表空间上:ALTERUSERQUOTA限制;用EXP/IMP将用户对象从SYSTEM表空间移出;或ALTERTABLEMOVE移动。70E_mail:zyj5681@Oracle关键问题-表空间与数据文件开发阶段考虑的问题:1Oracle关键问题-表空间与数据文件数据文件大小问题:在OS允许情况下,要中庸一些为好;不要轻易RESIZE;与实际数据量比例计算;Oracle10g的BIGFILE问题:支持大文件;与OS有关;与32bit和64bit有关;与Oracle块大小有关。Oracle9i/10g的OMF问题:支持OMF管理;维护带来危险;文件大小也不合理。71E_mail:zyj5681@Oracle关键问题-表空间与数据文件数据文件大小问题:14Oracle关键问题-日志文件问题日志文件分布问题:树立开发环境就是实际的模拟;一般开始就应注意安全与性能;日志文件在不同的磁盘;与归档日志文件分开。日志文件大小问题:应用DML并发数据量;8i默认太小;9i默认太大;10g默认还合理;可创建合理大小并删除小的日志文件。72E_mail:zyj5681@Oracle关键问题-日志文件问题日志文件分布问题:15E_Oracle关键问题-临时表空间问题临时表与临时文件问题:8i临时表对应数据文件;9i/10g临时表空间对应临时文件(TEMPFILE);排序的最大数据量的估计。临时文件大小问题:临时文件一次给足;告诉程序不要随便用ORDERBY等语句;总设计师对排序的理解与估计;索引、集合操作等。73E_mail:zyj5681@Oracle关键问题-临时表空间问题临时表与临时文件问题:1Oracle关键问题-用户、权限于角色总设计师规划与DBA创建;创建用户名与实际用户问题;Oracle系统角色:Oracle默认系统权限;开发权限与管理权限;是否创建应用角色问题。74E_mail:zyj5681@Oracle关键问题-用户、权限于角色总设计师规划与DBA创用户权限角色UPDATE

ONEMPINSERTONEMPSELECT

ONEMPCREATETABLECREATESESSIONHR_CLERKHR_MGRABCOracle关键问题-用户角色与权限75E_mail:zyj5681@用户权限角色UPDATEONEMPINSERTONEOracle关键问题-用户与权限160多种系统权限(systemprivileges):参考原版OracledatabaseSQLreference参考原版OracledatabaseadministratorSELECTDISTINCTPRIVILEGEFROMdba_sys_privsorderbyPRIVILEGE对象权限(Objectprivileges):参考原版OracledatabaseSQLreference参考原版Oracledatabaseadministrator角色(老三样)CONNECT、RESOURCE、DBAselect*fromdba_roles76E_mail:zyj5681@Oracle关键问题-用户与权限160多种系统权限(systOracle关键问题-用户与权限一般用户权限:权限说明CREATESESSION

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

ALTERSESSION

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

FORCETRANSACTION

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

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

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

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

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

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

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

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

80E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(3):权限说Oracle关键问题-用户与权限一般开发者权限(4):权限说明CREATESNAPSHOTP创建一个位于另一个ORACLE实例中的表的本地考备,开发者也能撤消他们拥有的快照CREATESYNONYM创建一个专用的同义词(仅供开发者使用),开发者也能撤消他们拥有的任何同义词CREATETABLE开发者可以创建表和删除表81E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(4):权限说Oracle关键问题-用户与权限一般开发者权限(5):权限说明CREATETRIGGER开发者可以创建或删除他们拥有的触发器CREATEVIEW开发者可以创建或删除他们拥有的视图UNLIMITEDTABLESPACE允许开发者在表空间中创建对象而不受表空间大小限制CREATETYPEDROPTYPE允许开发者创建新的对象类型删除对象类型CREATELIBRARY允许开发者创建新的对象库删除对象库82E_mail:zyj5681@Oracle关键问题-用户与权限一般开发者权限(5):权限说Oracle关键问题-用户与权限DBA权限与ANY:能做任何的意思,如CREATEANYTABLE;SYS具有此权限;普通开发者不需要ANY。动态的PL/SQL用ANY:在SQL>下能将对象创建到另外用户下;一般在PL/SQL下不能,请用ANY即可;进入测试后建议不要用ANY。83E_mail:zyj5681@Oracle关键问题-用户与权限DBA权限与ANY:26E_Oracle关键问题-用户与权限DBA权限与ANY:权限说明ANALYZEANY允许用户收集最优化统计,使结构有效或识别在数据库的任何表,表聚簇中被移动和被链接的行ADUITANY允许用户对数据库中的任何对象进行审计CREATEANYCLUSTER允许用户创建聚簇,并给数据库中的任何用户赋予所有权84E_mail:zyj5681@Oracle关键问题-用户与权限DBA权限与ANY:权限说明Oracle关键问题-用户与权限SYSDBA与SYSOPER:SYSDBA(以sysdba连接才有效):执行STARTUP和SHUTDOWN操作ALTERDATABASE:open,mount,backup,或changecharactersetCREATEDATABASEDROPDATABASECREATESPFILEALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限85E_mail:zyj5681@Oracle关键问题-用户与权限SYSDBA与SYSOPEROracle关键问题-用户与权限SYSDBA与SYSOPER:SYSOPER:执行STARTUP和SHUTDOWNCREATESPFILEALTERDATABASEOPEN/MOUNT/BACKUPALTERDATABASEARCHIVELOGALTERDATABASERECOVER包括RESTRICTEDSESSION权限SYSTEM类似SYSOPER:SYSTEM权限没有SYS那么多SYSTEM和DBA角色均能改SYS的口令SYSTEM和SYS口令忘记:创建口令文件orapwd86E_mail:zyj5681@Oracle关键问题-用户与权限SYSDBA与SYSOPER内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。87E_mail:zyj5681@内容提要 团队与合作问题;30E_mail:zyj5681@数据库设计方法问题应用系统的类型:OLTP系统:并发用户数多(高峰);安装时选择默认的块大小;表结构要考虑INITRANS等参数;OLAP系统:并发用户数少(高峰);每次I/O量、块大小要大些;不用考虑INITRANS等参数;DSS系统:只读表空间问题;用户也要分3、6、9等以满足统计分析用户要求;大数据处理要避开高峰时运行。88E_mail:zyj5681@数据库设计方法问题应用系统的类型:31E_mail:zyj5数据库设计方法问题图形界面与脚本问题:图形界面方便、直观,但也要脚本;脚本便于阅读;文档就是脚本,而不是图形的拷贝;移植到真实环境是脚本,而不是图形界面。脚本与注释问题:脚本也要加详细注释,脚本就是程序;脚本的书写要求可读性;脚本也要有规范;脚本规范参考…/rdbms/admin中Oracle的样例。89E_mail:zyj5681@数据库设计方法问题图形界面与脚本问题:32E_mail:zy数据库设计方法问题自动创建与卸出问题:采用脚本自动创建表空间、用户、权限;采用脚本自动创建表、索引、约束、视图;卸出脚本单独形成文件;正式运行后卸出脚本要保管好(不要放在磁盘里)。脚本与环境有关问题:脚本也可带变量;数据文件路经(Windows/UNIX/LINUX);表空间名不变(10g可改名),数据文件大小可变;规模大小可变。90E_mail:zyj5681@数据库设计方法问题自动创建与卸出问题:33E_mail:z数据库设计方法问题数据库结构一次创建问题:不要采用图形工具创建;不要经常ALTERTABLE;ALTERTABLE要经总设计师的批准;ALTERTABLE要在文档上修改。必要的ALTER问题:存储参数不合理时用;建议不要使用联机重定义;联机重定义是对不合理的已经存在结构进行定义;不合理就迁移到新表空间。91E_mail:zyj5681@数据库设计方法问题数据库结构一次创建问题:34E_mail数据库存储设计问题空间的有效利用问题:Oracle数据文件结构;Oracle存储块结构;不同的对象采用不同的块大小。Oracle9i/10g块的可变问题:9i开始支持块大小可变;可变也得考虑合理;根据不同对象特性设计块大小与表空间;总设计师要研究Oracle的PCTFREE和PCTUSED。92E_mail:zyj5681@数据库存储设计问题空间的有效利用问题:35E_mail:zy数据库存储设计问题应用系统的数据存储量:大表一定分区:表分区;索引也要分区;中等数据量的表要考虑STORAGE参数。大表小表、索引要做:Storage估计;索引与的访问来确定PCTFREE;表要分相对固定与修改频繁;要根据表修改频率确定PCTFREE和PCTUSED;不同的Oracle版本PCTFREE和PCTUSED差别。93E_mail:zyj5681@数据库存储设计问题应用系统的数据存储量:36E_mail:z内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。94E_mail:zyj5681@内容提要 团队与合作问题;37E_mail:zyj5681@Oracle功能发现问题Oracle产品选件:Oracle企业与标准版差异;Oracle的Partition常被遗忘问题;不用选件不要装;Oracle产品已装哪些选件:SELECT*FROMV$OPTION;95E_mail:zyj5681@Oracle功能发现问题Oracle产品选件:38E_maOracle功能发现问题Oracle一般的功能:Oracle的Partition被遗忘问题安装时选择;在设计时使用;在SQL中使用。Oracle的Cluster被遗忘问题设计时选择;提高性能。Oracle的IOT被遗忘问题设计时选择;非结构化数据可提高性能。Oracle的NEST表被遗忘问题设计时选择;复杂关系:可减少查询时的关联。96E_mail:zyj5681@Oracle功能发现问题Oracle一般的功能:39E_mOracle功能发现问题Oracle内置包:基本内置包DBMS_JOB;DBMS_PIPE;DBMS_SQL;...Oracle特殊的内置包:需要安装的内置包DBMS_PROFILE;DBMS_TRACE;...97E_mail:zyj5681@Oracle功能发现问题Oracle内置包:40E_mai内容提要 团队与合作问题;Oracle关键问题;

数据库设计方法问题;Oracle功能的发现与使用问题;严谨的程序设计问题;测试阶段管理问题;试用问题。98E_mail:zyj5681@内容提要 团队与合作问题;41E_mail:zyj5681@严谨的程序设计问题程序员要理解:事务处理技术:明确的COMMIT/ROLLBACK;由DDL语句隐含地完成;用户正常的断开(Disconnect)–自动提交(autocommit);异常的终止–自动回滚(autorollback);在程序中体现。理解事务的属性:原子的(Atomicity)–所有的或没任何事.一致性(Consistency)–每个事务之前或之后.独立性(Isolation)–各自独立执行.耐久性(Durability)–成功的提交可保数据长久保存在数据库中。99E_mail:zyj5681@严谨的程序设计问题程序员要理解:42E_mail:zyj56严谨的程序设计问题程序员要理解:Oracle对象:表结构如何查看;表之间关系如何查看;索引与表的关系;PL/SQL程序与Trigger。业务的流程:各业务的处理流程;业务与各表的关系;业务与事务的联系。100E_mail:zyj

温馨提示

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

评论

0/150

提交评论