热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

浅谈Oracle数据库的建模与设计

浅谈Oracle数据库的建模与设计
正在看的ORACLE教程是:浅谈Oracle数据库的建模与设计。要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似建立在危房之上,随着开发过程的不断深入,它要随时面临着各种难 

  以预料的风险,开发者要为修改或重新设计没有设计好的数据库系统而付出难以预料的代价。所以,一个良好的数据库设计是高效率的系统所必须的。 

  一、逻辑建模 

  数据库设计的方法因具体数据库而异,但是建模阶段的相同的,所以可以用一些通用的工具来进行,如Rational rose,PowerDesigner等,这一阶段主要是依据系统的需求,获取与分析要实现的应用系统信息,进行数据内部以及外在关系的分析,从而有效地建立整个系统的数据结构(在关系数据库中通常称为表结构),在此基础上对数据库的数据量、数据流量、及响应速度的估算分析,这样数据模型就产生了。具体的操作准则是数据库的几个范式、用户的具体需求和分析者的经验,从数据库的性能、安全、方便管理、易于开发等方面出发,具体方法因分析员的喜好和习惯而异,可以不用工具,最好使用工具,能让分析过程简便,最主要是能生成一些图,如E-R图,让分析过程一目了然。 

  二、物理设计 

  此步设计和系统将具体使用的数据库有关,也和数据库所运行的硬、软件平台有关,目的是尽量合理地给数据库分配物理空间,这一步在数据库设计中很重要,关系到数据库数据的安全和数据库的性能,具体的来说,这一步包括相应表空间的数据文件在磁盘上的分配,还要根据数据量的大小确定redolog文件、rollback段的大小,然后进行分配,这些文件的分配要遵循一些原则,本着利于备份,利于性能优化的原则,原则如下(以ORACLE数据库为例): 

  1、为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象,确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 

  2、了解终端用户怎样访问数据,如果可能,将经常同时查询和频繁查询的对象放在不同的物理磁盘上。 

  3、当数据库包含允许用户并行访问不同数据元素的大对象时,将对象分割存放在多个磁盘上是有好处的。可以采用分区。在某个操作系统平台上定义拥有数百万行的表时,则更需小心,因为数据库文件的大小受到限止,这种限制是由操作系统而不是由oracle引起的。 

  4、在独立的各盘上至少创建两个用户定义的rollback表空间,以存放用户自己的rollback段。在初始化文件中安排rollback段的次序,使它们在多个磁盘之间进行切换。 

  5、将redo log文件放在一个读写较少的盘上。对于每个oracle 实例要建立两个以上的redo log 组,同组的两个成员放在不同的设备上。 

  6、确立表和索引的大小,这决定了保存它们所需的表空间的尺寸,也决定了哪些表空间物理地装在哪些盘上和哪些表空间可以结合在一起。具体的估算方法可以按照oracle 一些公式,这里还要按照各个表的具体特性,用途,定义它的存贮参数如(pctfree,pctused)。 

  三、关于数据库参数的设计 

  每个数据库在建立时,都有缺省的参数设置,但是对于具体的应用要求参数设置可能不同,缺省的参数设置往往需要根据应用系统的特点而需要改动,如每个数据库的操作系统平台、instance 数目、各种内存大小的设置、采取的线程方式、备份方式等不同,具体的参数就一定要进行最为恰当的修改,这个步骤对数据库性能很重要,也是保证应用系统所要求的数据库功能得以实现重要一步。 

  四、与开发软件的接口问题 

  数据库设计最后要考虑的是与要选择的开发软件之间的接口问题,要准备好接口程序,有些是第三方软件已经备好的,有些是数据库本身要具备的,如jdbc,bde,ado,等与数据库的接口,主要是考虑接口的可用性、效率问题。这一步主要从经验出发,因为这种产品不断出台,而且都是经过各商家的吹捧,要在实践中决定哪个是最适合。 

  以上是数据库建模设计的几个重要步骤的大致分析,整个设计过程是不断地改进的,是数据库管理员、设计人员、开发人员共同完成的,只是各有侧重点不同,数据库管理员侧重于是2、3步的设计,设计人员侧重于1步的设计,而开发人员侧重于4步的设计,由于有些应用系统的编程环境和实际应用环境不同,所以要做两套设计,并注意两套设计的兼容性可移植性。 

  下面结合一个实际开发的劳资管理系统中的数据库设计,对以上几个步骤做进一步解释。 

  该系统应用于大型企业集团,包括几十个分厂,基本数据均来源于各分厂,各分厂有一套access数据库,存贮着自己的人才档案信息,由各厂自己维护,定期传到总的数据库里,供劳资处各室查询、统计用,。这是一个分部式的数据库。 

  一、逻辑建模 

  首先是对数据库的数据量、数据流量、及响应速度的估算分析,这一步对物理设计也是必须的,劳资系统的主要数据是人员档案,大概有100兆左右,还有人员配备等信息加上工种序列、工资等级、厂矿车间等各种编码,总的数据量大约在某些方面300兆左右。数据的输入、维护大部分在各厂矿进行,然后到处里集中,所以数据流量很大,对响应速度要求一般。 

  在逻辑建模上的工具上,采用Rantional rose 2000,根据用户的需求,设计各种use case view, 在 logic view中生成数据库的实体,及实体之间的E-R图,然后生成Data modeler,确定以后,用Schema generation在建好的数据库中的对应的用户下生成表。 

  详细的图很繁琐,在这里就不展示了。 

  二、物理设计 

  1、因为职工档案信息库很大,还有照片,所以把它分成两个表,把照片单独地放在一个表中,并且采用分区技术,在档案表、照片表上建立分区,不同的分区分别放在不同的表空间。 

  2、因为职工档案信息库里有许多编码,查询的时候要和编码库一起进行read操作,所以不把职工档案信息表和编码库放在一个表空间。 

  3、建立二个rollback 表空间,十个rollback段,分区放在二个表空间里,建立一个比较大的rollback段,因为职工档案信息表经常会有批量的修改与添加。 

  4、将redo log文件放在一个读写较少的盘上。建立三个redo log 组,同组的两个成员放在两个盘上。因为选用的是ARCHIVELOG的备份方式。 

  5、根据每个表的性质,确定其存贮的参数,如职工档案信息表的修改、删除、插入都比较多,所以把它的Pctfree 10,Pctused 80定大小,估算出它大致需要的block数,算出存放这些表的表空间的数据文件的大小。 

  6、根据用户的需求,建立一套数据库的安全体系。也就是总结出几种权限级别的用户,建立这些用户,并给这些用户赋上相应的仅限,供开发人员编程时使用。 

  三、参数的设置 

  缺省的初始化参数文件中,选择large。因为用户数很多,100个左右。 

  SHARED_POOL_SIZE, 与数据库大小有关,也与应用软件有关。这里设成缺省值的1.5倍。 

  DB_BLOCK_BUFFERS 根据所用服务器的内存与交易数的大小,设为25兆。 

  SORT_AREA_SIZE 根据所用服务器的内存,设为10兆 

  LOG_BUFFER 用缺省值的1.5倍。 

  DBWR_IO_SLAVES 设为1 

  ROLLBACK_SEGMENTS 根据交易量的大小,定为10个。分别放在两个磁盘上。 

  PROCESS 80 

  MTS_SERVERS 3 

  MTS_DISPATCHERS tcp,3 

  ARCHIVE_LOG_START TRUE 采用ARCHIVE方式备份。 

  这些参数的确定是暂时的,没有一个系统可以运行之前把参数确定得正好,需要在应用程序运行之后进行调整。 

  四、与开

[1] [2] 下一页

正在看的ORACLE教程是:浅谈Oracle数据库的建模与设计。发软件的接口问题 

  因为我们这个系统的开发软件用的是Borland c++builder 5,所以采用的是比较成熟的BDE的接口,它是Borland公司提供的,性能比较好。 

  以上是根据多年数据库管理、开发的实践总结而出的数据库建模与设计的大致思路,希望能对大家有所帮助。

上一页  [1] [2] 


推荐阅读
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 本文探讨了六项Java特性,它们虽然强大,但在不当使用时可能会给应用程序带来严重问题。文章基于作者Nikita Salnikov Tarnovski多年的应用性能调优经验,提供了对这些特性的深入分析。 ... [详细]
  • FTP作为一种传统的文件传输协议,广泛用于不同设备间的文件交换。然而,随着网络安全需求的提升及传输效率的要求,选择合适的FTP客户端变得尤为重要。本文将介绍如何利用WinSCP这款强大且安全的工具,实现两台电脑之间的文件高效传输。 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • 惠普战86 Pro G2:新一代商用台式机的性能与设计解析
    惠普战86 Pro G2台式机以其卓越的性能和紧凑的设计,满足了现代商务环境的需求。本文将详细介绍这款商用台式机的各项特点,包括其强大的硬件配置、精美的外观设计以及出色的稳定性和安全性。 ... [详细]
  • 本文探讨了Java中有效停止线程的多种方法,包括使用标志位、中断机制及处理阻塞I/O操作等,旨在帮助开发者避免使用已废弃的危险方法,确保线程安全和程序稳定性。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 最新进展:作为最接近官方声明的信息源,本文吸引了大量关注。若需获取最新动态,请访问:lkhill.com/ccie-version-5-update ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • 集群与负载均衡技术解析
    本文探讨了集群(Cluster)的概念,即通过网络连接的一组计算机系统,它们作为一个整体提供服务,实现分布式计算。文章还详细介绍了负载均衡技术,旨在提高网络服务的效率和可靠性。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 探讨了生成时间敏感的一次性伪随机密码的方法,旨在通过加入时间因素防止重放攻击。 ... [详细]
  • 本文详细介绍了如何进入并调整计算机的BIOS设置,包括安全模式和高性能模式的选择,以及如何保存设置并退出。 ... [详细]
author-avatar
英雄泪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有