设计模式数据库

2024-08-26

设计模式数据库(共11篇)

设计模式数据库 篇1

0 引言

数据库技术已经成为先进信息技术的重要组成部分, 是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术是将数据库与软件开发相结合, 数据库设计和基于数据库的应用程序开发。为此, 课程要求学生选用主流DBMS, 自选某种高级程序设计语言, 实现一个完整的以数据库为核心的B/S或C/S架构的应用系统。掌握设计实现一个完整的产品化导向的数据库应用系统的流程和方法, 包括需求分析、数据库设计、应用程序设计。本文分析了湖北经济学院开设数据库课程设计以来, 实践教学环节中存在的问题, 结合项目模拟实训教学方法的基本原理, 提出了基于团队项目模拟实训的数据库课程设计教学方法的具体方案及实施效果。

1 数据库课程设计教学现状

(1) 题目过少不够开放。湖北经济学院是一所财经类教学型学校, 开设的主要专业为经济管理类。但目前的题目多数都是老师提供给学生的, 题材类似, 不可避免地会出现学生相互抄袭的现象。另外, 题目呆板, 没有和本校的专业特色相结合, 选择余地太少。长此以往, 会使学生养成不劳而获的坏习惯, 不利于学生毕业之后适应竞争激烈的社会。

(2) 学生轻分析设计, 重编程实现。学生把编程工作放在数据库设计中的首要位置, 轻数据库及其对象的设计, 重开发工具的使用。很多学生只重视系统功能模块的设计与实现, 缺乏全局观念。

(3) 学生缺乏整体意识, 团队协作能力不强。在数据库系统开发的过程中, 学生对系统没有整体规划, 经常把时间都花在需求分析和系统实现上, 造成在学生项目后期没有时间做系统测试, 这样开发出来的系统必然出现很多问题。

软件开发是一个系统工程, 特别强调团队协作能力。如果一个课程设计题目只让学生一个人完成, 缺少与他人相互的交流, 不利于交流与沟通能力的培养和项目的正常开展。原有教学模式下, 学生做课程设计往往单打独斗, 没有形成一个团队。

(4) 课程考核方式不够科学。老师通常采用平时成绩和实验报告相加权作为总成绩。在这种考核方式下学生是被动地完成任务, 不知道所做项目的评定标准, 因而积极性不高, 也不能通过项目设计有效地提升自己的能力。

2 数据库课程设计基础准备及教学目标制定

2.1 基础准备

综合性的实验课程往往需要很多课程作支撑。在该课程开设之前, 前期学生应该已经学习了C、C++等一些经典的程序设计课程, 学习了数据库原理及软件工程课程, 对于数据库原理课程中的相关概念例如数据库文件的创建、表的建立以操作、视图与SQL查询、存储过程与触发器等进行了相关实验, 对于关系型数据库基本概念和特性有一个比较完整的认识。由于课程设计中需要将数据库原理与工程项目相结合设计出具体的应用程序和界面, 所以学生还需掌握至少一门前台开发工具, 如VB.NET、ASP.NET或PHP等, 让不同层次的学生选择不同的培养方案, 有针对性地进行学习。

2.2 教学目标

结合教材上关于数据库设计的思想和方法, 对一些简单的信息管理问题进行必要的分析和设计。在掌握了数据库系统的基本原理和基本方法的基础上, 熟悉数据库管理系统的工具及语言。能查阅资料解决数据库技术方面的问题, 具备在微软开发平台下进行数据库设计和管理操作能力, 培养数据库应用系统开发的基本能力, 项目合作、团队精神及小组交流的能力, 培养学生运用数据库管理系统解决实际问题的能力。

3 数据库课程设计教学构思

课程组根据学生的实际情况, 制定了相应的教学计划。本课程安排在一个学期内, 32学时, 每周具体安排如表1所示。

3.1 人员安排及开题

把整个班级按照开发小组的形式进行分组, 每组4~5人, 选一名组长, 每个同学承担不同的角色, 共同完成任务。在整个过程中, 为了达到锻炼的目的, 每个同学的角色可以互换。

在选题方面, 应充分考虑到学生的专业特色, 体现经管类专业的特点, 选择具有专业特色的案例, 以激发学生的学习兴趣。比如, 针对“旅游管理”专业和“国际金融”专业, 可以根据专业要求来分别制定教学案例, 使学生在数据库课程设计中加深对本专业课程的理解, 从而达到数据库课程设计和专业特色融合的目的。在制定选题的过程中, 教师应进行充分的调研, 与该专业的教师进行讨论, 帮助学生选择他们熟悉的题目, 如旅游酒店管理系统、学生成绩管理系统、人力资源管理系统等, 或者选择学生生活中经常接触、能很快上手的内容。同时, 应注意控制题目的规模和难度, 使学生经过努力后能在规定的时间内完成。这个阶段可以充分调动学生的积极性, 鼓励学生自己选题组建项目小组。这种方式经检验取得了较好的效果。

3.2 需求分析

在此阶段, 要尽可能收集课题的全面需求, 利用不同小组互相模拟实际用户的形式, 开小组讨论会来确定需求, 增强学生的沟通能力和开发兴趣, 并引导学生自己画出数据流图。

例如, 某家工厂的采购部每天需要一张订货报表, 表中列出所有需要再次订货的零件。对于每个需要再次订货的零件列出下述数据:零件编号、零件名称、订货数量, 目前价格、主要供应者。零件入库应有入库单, 零件出库应有出库单, 通过放在仓库中的CRT终端把入库单或出库单报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。

当系统比较复杂时, 应当采用分层描述的方法。一般第一层描述系统的全貌, 第二层分别描述各子系统的结构。如还未表达清楚, 可以继续细化。

3.3 系统设计与实施

确定用户需求后, 进入系统设计阶段。物理设计阶段应该充分利用表、视图、存储过程、触发器等各个数据库对象的特点, 建立一个完整的数据库。要引导学生利用课程设计来熟悉数据库开发的一些常用技术和工具。例如, 在数据库课程设计中可以教学生怎样使用Power Designer来做数据库设计。在软件公司实际的数据库系统开发中, 有很多工具可以直接完成从数据库概念模型到物理模型的设计和转化。

系统实施阶段, 各小组可以选择自己熟悉的程序设计语言动手编写代码, 完成系统各个模块的功能。开发语言可选择机房环境, 有Java、VB、VC、PB等;数据库可使用提供的SQL Serever2000、DB2、MySQL5等主流DBMS;软件架构两层、三层都可以。教师对各小组学生在设计中遇到的具体问题, 有针对性地给与启发式的引导。

3.4 系统测试

系统测试阶段可以选取小组之间交换测试, 主要从功能测试、数据库测试两个方面找出系统的缺陷, 对软件质量进行评价打分。列出测试计划, 往各数据库表中插入正确的测试数据, 测试数据插入情况和各种约束作用, 并记录结果;往各数据库表中插入错误的测试数据, 记录出错结果;在各数据表中修改测试数据, 记录测试结果;各数据表中删除测试数据, 记录测试结果;创建各权限等级的用户, 授予相应的权限, 然后按权限等级执行相应操作, 查看操作结果是否正确, 最后再编写实验报告。

数据库功能测试主要是对界面进行测试, 按用户类型进行分部测试, 查看每一种类型的用户功能是否有欠缺;用户操作是否符合实际, 是否具有意义;尤其是在功能实现上, 不同情况, 会有怎样不同的处理;查看在出错的情况下, 系统如何处理。

3.5 完成设计报告

设计报告主要内容要求有系统需求分析 (功能模块图) 、基本ER图 (要求标明主码、外码、联系类型) 、用户子模式设计、按模块分析所编写的应用程序等。撰写设计报告前小组中各成员必须对自己的工作进行归纳、分析和总结。小结一般包括工作内容、工作量大小、自己完成情况、遇到的问题以及解决方法、收获与体会、今后努力与改进方向等。教师给出设计报告书写规范, 学生根据系统分析设计结果完成该部分内容。报告编写是考查一个学生总结工作、撰写科技论文的能力。该环节考查的重点:报告是否内容完整、充实, 条理是否清楚, 格式是否符合科技文章规范。

3.6 检查与考核

考核是检验教学成果的有效方式和重要手段, 对学生学习和教师教学具有重要导向作用, 不同的考核方式能激发学生的学习动机。除了加强平时考勤外, 教师还需在每个阶段对各个项目小组进行跟踪检查, 对各个阶段的完成情况进行记录。从数据库原理、数据库应用和数据库设计三方面对学生进行综合评测, 达到对数据库系统主要内容和框架的评测。具体考核指标权重为:平时表现 (25%) +任务完成情况 (30%) +答辩 (20%) +设计论文 (25%) 。同时还要鼓励学生在课程设计后, 尽量撰写相应科研论文, 积极申报校级学生科研项目。对于能力非常突出的学生, 可以建立课外研究小组, 让他们参与到教师在研的省部级科研项目中, 进一步提升他们的专业技能和综合素质。

4 结语

数据库技术是一门理论和实践并重的学科。课程设计是否成功的标准在于学生是否通过项目开发, 将自己所学到的数据库知识运用于实际需求中, 是否提高了学生的动手能力。通过两年的教学实践证明, 以这种方式开展课程设计更贴近企业实际的项目开发方式, 能倡导学生主动参与的探究式学习和研究, 改变学生被动接受、大量反复操练的学习和实验方式, 真正培养学生严谨周密的思维和临时处理问题的能力, 满足企事业单位信息化建设的用人需求, 有效地解决了理论教学与实践教学脱节和经管专业学生数据库工程实践能力薄弱的问题。另外, 做好数据库课程设计作业有利于学生毕业设计报告和毕业论文撰写。今后学生面临的毕业设计其实就是一个完整的系统设计, 是课程设计的扩大化、完整化, 为设计报告的撰写、文献资料的查阅也为今后撰写毕业论文打下坚实的基础。

摘要:分析了数据库课程设计教学中的问题, 探讨了在实践中分小组引入具体项目的教学方法和考核办法, 把程序设计、数据库原理、软件工程等方面的知识运用到软件开发过程中, 从而培养学生分析问题能力、动手实践能力及团队协作能力。

关键词:数据库课程设计,项目驱动,教学方法,考核方法,能力培养

参考文献

[1]赵慧敏, 杨鑫华, 牛一捷.数据库课程设计实践教学改革探索[J].当代教育论坛, 2011 (8) .

[2]张志锋, 王文冰.以就业为导向的学生综合能力培养教改研究[J].计算机教育, 2010 (11) .

[3]林巧, 丁革建.数据库课程设计的项目化实验教学方法[J].实验室研究与探索, 2009 (5) .

[4]李晓娜, 朱耀庭.从数据库课程设计看如何培养学生的软件开发能力[J].教育与教学研究, 2008 (16) .

[5]王艳红, 章小莉, 姜湘岗.在数据库课程设计中培养学生项目开发能力[J].计算机教育, 2011 (10) .

《数据库开发》课程的设计 篇2

关键词:企业调研 课程标准 方案设计

0 引言

《数据库开发》是计算机专业的一门核心课程,通过本课程的学习,学生将能够进行初步的需求分析,根据分析结果设计数据库的概念结构模型和逻辑结构模型,并能够根据物理结构模型进行数据库实施和简单数据库应用系统的开发。本课程实践性非常强,注重培养学生的动手能力。所以,设计课程过程中,应该更加注重课程本身的实用性,更加注重课程内容本身与企业岗位的相结合。

《数据库开发》课程设计主要经历了企业调研、课程标准开发、课程方案设计等几个阶段。下面就分别说明一下课程设计的每个阶段。

1 《数据库开发》课程企业调研

进行企业调研是课程建设要进行的第一步,只有进行了充分的企业调研才能培养出满足社会和企业需求的合格人才。才能根据需求进行课程的设计,这样才能使学校的课程更加适合企业,更加适合社会。为此,我们的项目团队到企业进行了实地调研,我们获取到了企业对于学生的需求和对于课程设置方面的建议。

本门课程在进行企业调研之前已经根据之前的教学经验设置了本门课程的任务,具体任务设置如下:

任务1 数据库分析与设计

任务2 系统前台页面设计

任务3 数据库实现

任务4 系统后台实现

任务5 数据库维护

通过与企业专家进行研讨,最终获取来自企业关于《数据库开发》课程设计的建议。具体建议如下:

任务1 教学要求及建议:

①数据库基本概念和知识简单带过,达到了解的程度即可。

②需求分析难度较高,不建议让学生进行整个系统的需求分析,可以编写需求规格说明书的部分内容。

③进行数据库概念结构设计时,可以先画出系统的各个部分的E_R图,最后在将整个系统的E_R图画出来。

④可以使用PowerDesigner软件进行数据库的概念结构设计和物理结构设计。

⑤这部分内容比较难,需要多练习,可以适当多加一些课时。

任务2 教学要求及建议:

①本部分内容是对于之前所学网页设计和JSP的内容进行熟悉,可以以学生做为主。

②进行分小组教学,小组内进行角色划分,充分发挥团队的力量。

③因为是之前的知识可以适当减少课时。

任务3教学要求及建议:

①对于数据库管理软件可以选择相对比较容易上手的,如SQL Server、MySQL等。

②数据库管理软件图形界面操作时,应该注意多做练习培养学生的动手能力,选择是实例可以由浅入深,逐步较大难度和工作量。

③应该重点讲解SQL语句,因为SQL语句的大部分语法都是可以在不同数据库通用的。

④实现所用项目的数据库时,也应该将尽量让学生自己进行SQL语言的编写,这样可以更好的使掌握SQL语句的应用。

任务4教学要求及建议:

①讲解Spring的基本原理和用法时,应通过简单的实例学习Spring的应用。

②学生应该进行分小组不同模块的开发练习,小组规模不要太大,3个人为一组比较适宜。

③不应占用太多课时。

任务5教学要求及建议:

①数据库维护的内容应该以视图和索引为主,进行重点讲解。

②数据库的用户和权限的应该多做实例。

③触发器的使用可以简单讲解。

课程总体建议:

①课程讲解内容较多,且内容难度较高,需要课时较多。

②应重点讲解任务一和任務三的内容,其次是任务四和任务五的内容。

③学生多做练习,注意培养他们的团队合作能力和沟通能力,注意锻炼学生的自学能力。

有了企业调研结果作为课程设计的依据,就可以进行课程标准的制定。

2 《数据库开发》课程标准的设计

课程标准是一门课程进行教学的根本依据,在课程标准中要包含课程的设计思路、能力目标和课程内容框架等内容。制定课程标准一定要详细描述课程各方面的内容,制定完整准确的课程标准是进行课程设计重要环节。

2.1 课程设计思路 本课程主要以企业实际项目为主线,通过五个典型的工作任务,使学生掌握数据库开发的相关知识和技能;学生在学习本课程过程中,主要学习的内容包括:数据库需求分析、数据库模型设计方法、使用数据库管理软件对数据库模型进行实施、使用数据库管理软件管理数据库,对已有的数据库开发数据库应用系统对数据进行增删改查的基本操作。将该课程的整个教学任务按照项目分为5个典型的工作任务,具体描述如下:

①数据库需求分析:对所选用的项目的需求使用需求分析方法进行分析,并编写需求规格说明书。

②数据库模型设计:根据上一个任务中编写的需求规格说明书,进行数据库的概念结构设计、逻辑结构设计和物理结构设计。

③数据库模型实施:选择数据库管理软件对上一个任务中设计的数据库模型进行实施,并介绍SQL语句的基本应用。

④数据库查询操作及视图、索引等数据库对象应用:对于已有数据库使用SQL语句进行查询的操作,并介绍视图、索引等主要数据库对象的应用。

⑤数据库应用系统开发:开发一个基于Web的数据库应用系统,对已有数据库实现数据的增删改查的功能。

以上的典型工作任务,与企业调研之前的工作任务对比情况,如下表所示:

2.2 能力目标

①能够进行初步的需求分析

②能够根据需求分析的结果设计数据库的概念模型

③能够将数据库概念模型转换为逻辑模型,并生成物理模型

④能够使用SQL语句实施数据库模型

⑤能够使用SQL语句进行简单数据查询

⑥能够使用Spring+Hibernate开发基于Web数据库应用系统

在课程标准中,还包含其他的一些内容,比如课程内容、课程的考核方式等内容,这里不再赘述。制定完课程标准后,就要依据课程标准进行课程方案设计。

3 《数据库开发》课程方案设计

根据课程标准,进行课程方案的设计,课程方案设计一般包含课程总体方案设计、课程任务方案设计和课程活动方案设计。

3.1 课程总体方案设计 课程总体方案设计是对于本课程的总体的介绍,其中包含课程的课时、适用专业、学习内容、能力目标、学习成果和考核方案等内容。

3.2 课程任务方案设计 课程任务设计方案是对于课程中涉及的典型工作任务的描述,它具体说明了课程中每个任务的学习内容、能力目标、学习环境、教学方法、学习成果和评价标准等内容。

3.3 课程活动方案设计 课程活动方案设计是对于每个典型工作任务中具体活动的描述,它具体说明了在典型工作任务中每个学习活动,介绍学习活动的内容、目标、活动具体设计、课程用到的参考资料等内容。

在完成课程的方案设计后,就可以根据方案进行数据库的实施了,在实施过程中还会遇到各种问题,实施完成后,要根据实施的情况,对课程的课程标准、课程设计方案等内容进行修订,从而使得课程的设计方案更加完善。

4 结论

由上面的内容不难看出,《数据库开发》课程的设计或者是其他技术类课程的设计,都应该注重实践,减少课程理论知识的讲解,将课程的理论知识融入到学生完成的典型工作任务中,真正要做到“做中学”,要重视课程本身与企业的关联,要做到课程为企业服务,另外,课程本身中的内容还要与时俱进,跟得上社会发展。

参考文献:

[1]马丹.《数据库课程设计》中常见问题及解决措施.2012.5.

数据库设计规范及设计技巧研究 篇3

企业信息在收集时,常常对企业信息收集提出来高效化和高质化的要求,这也正式企业信息数据库建设的目的。企业信息的收集工作对于一个企业发展来说起着至关重要的作用,它能够更好地确定顾客的市场需求,提高企业产品的市场竞争能力,是一个企业健康发展的重要历程。所以企业信息化的基础正是以企业数据信息的收集能力为基础的。所以,数据库设计工作的建设,直接的对一个企业的信息化建设起着十分重要的作用,也会对一个企业在未来的发展产生影响。

伴随着我国经济文化的不断发展,我国企业信息化也在不断地扩大,一个企业信息的收集工作已经成为了这个企业发展的重要历程,也是一个企业信息化建设的重要组成部分。企业信息文化的收集和分析工作将会对这个企业产生巨大的影响。一个企业想要依靠信息化实现健康的发展,企业的信息收集及处理能力是一个基础性的工作。企业信息收集工作会对企业的信息化建设,企业的效益产生很大的影响。企业信息化建设的优劣与企业的数据库设计有着密切的关联,在数据库建设质量保证的前天下,企业的信息化的建设意义才能够真正地体现出来,才具有更多的意义。

近年来,关于数据库信息化建设的许多问题都浮现了出来,且不说为企业带来多少效益,还已经影响到企业的正常运转,这种问题出现的原因可能是因为数据库建设人员不够重视,数据收集时的信息错误以及数据库设计人员的能力欠缺等原因是引起企业信息化建设存在问题的主要根源。

为了使企业的各项工作能够更加方便地检索到相关信息而对企业的信息进行了收集和数据库设计建设工作,相反这也对数据库的设计工作提出了更高的要求,增加了数据库建设的难度,因此数据库建设的管理人员如何准确地把握企业信息的现代化建设和企业信息收集工作之间的关系具有十分重要的意义。

因此,如何处理好企业信息的收集工作和企业信息化建设之间的关系是每一位数据库的建设人员都应该思考和研究的问题,怎样在最短的时间内给企业带来最大的方便的问题是每个建设者的出发点。企业信息收集工作的智能化和高效化对于一个企业来说是至关重要的,它是企业信息化建设的一座重要的基石和纽带。

企业数据库信息的建设工作是与企业信息每个阶段的收集工作是息息相关的,会对企业信息收集的方向和进行程度造成一定的影响,是一个企业是否开展信息收集的一个决定性结论,它对企业的信息化建设和企业信息收集是一个重要的协调者和衔接者。因此,在以企业数据库设计的规范化前提下,才能更好地体现出企业信息收集得高效性和智能化,只有这样,企业信息化建设和企业的收集工作的智能化才能更好地显现出来,才能更好满足市场的要求和企业的需求。

2 规范化设计的主要流程

2.1 数据库的概念设计阶段

1)初始化进程

初始化进程就是首先要对主要的目标和要进行的范围进行描述,并以目标的建模计划、计划的组织团队、在建设中所使用的原材料进行收集、来对建设进行约束和规范。通过分析调查资料得出调查结果,并对采集到的原始数据进行输入输出等工作,并形成基本的数据资料表,在初始化进程阶段,最重要的是对原材料的收集。

2)定义实体阶段

定义实体是从第一个阶段收集的材料中对大部分的实体进行标识,并依据表示物的术语和相关的“代码”符号,能够找出相对应的实体,两者之间形成相对应的关系。

3)定义联系阶段

在IDEFIX分析模型中,往往只允许存在着二元联系模式,而n元之间的联系,则必须建立起n个二元之间的联系。使用实体联系矩阵来辨别实体之间的二元关系,并以相应的规章和业务需求为依据,并结合于实际的相应情况,来分析出关系的名、关系的势等来确定相应的关系类型,如:分类关系、非确定关系、标识关系和非标识关系等。

4)定义码阶段

定义码就是在上一个阶段的基础之上,去除非确定的关系,并引入交叉实体,并通过标识候选码的属性,来对主选码进行确定分析。找出可信的确定关系,并作出进一步的实体分解,使键基视图体现出来。

5)定义属性阶段

定义提取说明性名词,这能够确定开发属性表和确定属性的所有者关系。通过定义和检查非主码区属性的问题,来确定非主码属性是依赖于主码属性的一种关系。此时,会得到改进后的全属性视图IDEF1X模型,而此视图符合于第三范式的关系理论。

6)定义其它规则和对象阶段

对属性的长度、精度、空缺值、约束规则等进行定义,并对角色、序列、视图等对象信息进行定义。

2.2 逻辑结构进行设计阶段分析

这个阶段主要是通过对上一个阶段的概念结构转换成一种数据模型即为某个数据库管理系统的支持类型,并对这个类型进行优化。通过选择最为合适的表达结构概念的数据模型来确定逻辑结构,以选出最为合适的数据库刮泥系统。将实体之间的属性和他们之间的联系转换成相应的关系模式即为E-R图的关系转化模型。

2.3 数据库的物理建设阶段

为了实现数据库满足企业的需求,而对数据库进行了物理设计,这会对数据库的使用性和方便性产生一定的影响。结合分析各项的要求因素,把逻辑数据模型转换成物理结构,以方便后续检索功能的进行,来评估数据库设计的是否合理。

3 数据库建设中的技巧分析

在数据库地建设时,要满足市场的需求切实的提高数据库的质量和工作时的效率,这就要求要做好市场充足的调查,真正的理解市场的需求,以此来满足市场对数据库的要求。除了对数据库市场有着一定的调研基础外,还要对数据库业务的相关流程有着清楚的理解,这样会切实的提高工作的效率和质量。符合企业发展的数据库建设,可以解决对公司之间的沟通问题,也使得由于不清楚公司的需求而产生的数据库建设不合理的情况。这样会形成一种共赢的良好的局面。E-R图和数据字典的创建。实体之间的相互关系可以通过E-R图体现出来,实体对象和其所对应的关系属性可以用逻辑表来进行描述即为数据字典。专业化和规范化统一能够最大限度地发挥E-R图和数据字典的作用,更好地为企业服务。

4 小结

企业数据库的规范化建设能够提高企业信息数据收集时的效率。我们要加强对数据库信息化建设对企业发展的重要认识,并对数据库进行规范化处理,因为只有这样才能最大限度地使数据库建设发挥相应的效益。

摘要:随着我国现代化进程的不断加快以及社会经济文化水平的不断提高,我国的信息文化产业已经得到了长足的进步与发展。一个企业信息的收集能力,是这个企业文化产业产业链的重要的组成部分,是企业形成社会信息化的基石,一个企业收集信息的能力,对于企业数据库建设的质量和数据库收集时的效率有着至关重要的作用。因此,企业信息收集质量的提高,以满足企业的需求,是现今一个企业发展的重要里程碑。我国的社会信息市场发展得越来越快,企业信息数据库的建设也体现出许多新的局面,如数据库的智能化和复杂化可以说是现代数据库最好的体现。本文分析了在企业信息收集中数据库的设计工作所起到的重要作用,深入分析和探讨了数据库在设计时如何更好地对数据库进行规范化、智能化进行设计。

数据库课程设计要求 篇4

2007-2008学年第一学期

第一阶段:指导教师按班级填写《数据库系统课程设计任务书》,组织学生选题,并汇总选题及分组清单。

第二阶段:组织学生撰写需求分析报告,并组织学生自述。

第三阶段:指导学生编写代码,并调试、试运行。

第四阶段:指导学生填写《课程设计总结报告》

第五阶段:组织学生演示系统。

第六阶段:收集本学期课程设计资料,以班级为单位填写《课程设计总结与成绩统计分析报告》。

收集的资料要求包括:

1、《数据库系统课程设计任务书》,每个班级一份

2、学生选题分组一览表,每个班级一份

3、学生的需求分析报告、程序代码(提交源代码到教师指定的文件夹)、课程设计总结报告。在期末以班级为单位、按学号排序,将相关资料刻成光盘。

4、《课程设计总结及成绩统计分析报告》,每个班级一份

注:⑴《数据库系统课程设计任务书》、《课程设计总结报告》、《课程设计总结及成绩统计分析报告》均采用统一的标准表格填写,用A4纸打印。

⑵《数据库系统课程设计任务书》、《课程设计总结及成绩统计分析报告》由教师填写;《课程设计总结报告》由参加课程设计的学生每人填写一份。

⑶打印文档规范:1)统一用A4纸打印;

2)正文字体:宋体小四号;

3)若文档或表格多于1页,请标注页码。

附表1:《数据库系统课程设计任务书》

附表2:《课程设计总结及成绩统计分析报告》

附表3:《课程设计总结报告》

附表4:《数据库课程设计选题与分组一览表》

附表5:07-08上数据库课程设计指导教师一览表

附表6:《数据库系统课程设计任务书》样例

浅析SQL数据库的设计 篇5

关键词:SQL数据库;开发;设计

中图分类号:TP311.138文献标识码:A文章编号:1007-9599 (2013) 06-0000-02

1前言

SQL是一种数据库语言,使用方便、简单易学、功能强大,使用者在操作SQL数据库的过程中不用去考虑“怎么做”,只需要按照自己的意愿给计算机发出“做什么”的命令即可。SQL数据库的应用极为广泛,能够与绝大多数的数据库相通兼容,已经成为了数据库操作的基础。本文以某企业营销数据库为例,就SQL数据库的设计进行探讨。

2SQL数据库的性能调整

2.1系统规划

在整个SQLServer2000数据库中,数据库服务器处于核心地位,整个SQLServer2000数据库直接被数据库服务器的性能高低影响。为了给SQLServer2000数据库更好的性能,可以调整和优化SQL Server2000数据库的许多方面,如备份与恢复、复制、硬件、SQL Server配置、SQL索引、SQL语句、数据库设计其他。

2.2优化SQL语句

SQL语句的优化是一个较为复杂的过程,涉及到诸多缓解,而其实质就是在结果正确的基础前提下,尽量减少表扫描的I/O次数,避免表搜索的发生,将计算机能够识别的语句用优化器进行优化。

2.3存储过程调整

一般都是采用PROCEDURE(属于Transact-SQL语句)来创建SQL Server数据库的存储过程,修改的时候还可以用ALTER PROCEDURE语句。SQL Server数据库的存储过程主要包括看过程参数的说明和过程名称两个部分。

2.4高性能恢复与备份

为了有效地确定应该选择何种还原策略和备份策略,应该及时地对数据的可用性要求进行确定。

3SQL数据库的开发与设计

3.1项目组的建立

现代企业管理中较为重要的理念就是项目管理思想,营销数据库要建立好的管理思想必须要建立一个全面管理、领导、组织、规划SQL数据库开发与管理工作的项目小组,同时还要基于职能范围和工作量的需要来相应设置一些职能小组,以便在组织结构上对于SOL数据库的开发与设计进行保障。

3.2相关人员设备的配置

相关人员配置主要是2类人员,分别是数据库开发管理技术人员和专业人员,二者相互协调,共同解决SOL数据库的开发与设计的技术操作及实际开发问题,用现实的数据库系统资料将营销人员的需求进行转化。与此同时,还应配备好如服务器、电脑等相应的设备保障。硬件和软件条件齐全才能保证数据库的创建和管理能顺利开展。

3.3SQL数据库的创建

SQL数据库的创建之初就要给定开发方向,制定相应的企业营销数据库适用范围、任务和功能。应该要让数据库开发人员和营销人员都树立起营销数据库的重要性,在企业营销过程中获得客户情况的惟一途径就是建立和管理好营销数据库,数据库的编制务必做到高质量、详尽、准确、全面。首先分析SQL数据库的结构,依据3个内容进行统计:第一,行为特征数据。如购买频率、平均消费金额、历史购买记录、特殊爱好、家庭结构、生活方式等;第二,基本情况数据,包括电子邮件、传真、电话、姓名、地址、性别、教育程度、职业、收入、婚姻状况、年龄等;第三,互动性行为特征,如购买方式、送货方式、支付方式等。

3.4新建SQL数据库的方法

在对象资源管理器里面,右键点击数据库,新建数据库,就可以了;或者在查询分析器里面运行代码也可以:例如创建一个数据库:

USE master

GO

--判断是否存在bankDB数据库

IF EXISTS(SELECT*FROM sysdatabases WHERE name='bankDB')

DROP DATABASE bankDB

GO

--在D盘创建bank文件夹

EXEC xp_cmdshell'mkdir D:bank',NO_OUTPUT

-- 创建数据

CREATE DATABASE bankDB

ON PRIMARY

(

NAME='bankDB_data',

FILENAME='D:\bank\bankDB_data',

SIZE=5MB,

MAXSIZE=500MB,

FILEGROWTH=15%

)

LOG ON

(

NAME='bankDB_log',

FILENAME='D:\bank\bankDB_log',

SIZE=1MB,

MAXSIZE=10MB,

FILEGROWTH=5%

)

3.5典型数据库对象

事务对象:事务对象用于管理数据库的事务,将多个操作合并为一个单一的事务处理。该对象缓存了对数据源的改变,使应用程序有机会选择提交或者回退以往的操作。事务能够提高应用访问数据库的性能,但是OLE DB数据服务器并不要求支持该对象。该对象包括如下接口:

CoType TTransaction{

[mandatory]interface IConnectionPointContainer;

[mandatory]interface ITransaction;

[optional] interface ISupportErrorInfo;

}

命令对象:命令对象用于对数据源发送文本命令。对于支持SQL的数据源,SQL命令同命令对象一起执行,包括两种数据定义语言和产生行集对象的查询,对于其它不支持SQL的数据源,命令对象给数据源发送其它类型的文本命令。但是对于数据提供程序来说,不一定必须支持这个命令对象。一个单独的会话能够产生多个命令对象。该对象包括如下接口:

CoType TCommand{

[mandatory]interface IAccessor;

[mandatory]interface IColumnsInfo;

[mandatory]interface ICommand;

[mandatory]interface ICommandProperties;

[mandatory]interface ICommandText;

[mandatory]interface IConvertType;

[optional]interface IColumnsRowset;

[optional]interface ICommandPrepare;

[optional]interface ICommandWithParameters;

[optional]interface ISupportErrorInfo;

}

4结语

SQL数据库的应用极为广泛,本文就SQL数据库在某企业的设计和开发做了分析和探讨,并对SQL数据库的性能调整进行了分析,在以后的研究中值得进一步深入研究。

参考文献:

[1]丁燕云,魏娟.浅析SQL数据库的性能优化问题[J].科技信息(学术研究),2007(34):112-115.

[2]谷震离.SQL Server数据库应用程序性能优化方法[J].计算机工程与设计,2006(15):102-105.

[3]谷震离,侯迎春.SQL Server数据库性能优化方法[J].商丘职业技术学院学报,2006(05):176-177.

[4]董建华.SQL Server数据库的性能优化技术研究[J].科技广场,2007(05):102-105.

[作者简介]肖念(1984.9-),女,湖北孝感人,武汉信息传播职业技术学院,专职教师,硕士研究生,计算机应用。

设计模式数据库 篇6

企业有一05年度开发的管理系统,当时采用JSP+JavaBean架构,因受个人能力有限,虽然实现了逻辑功能和显示功能的分离,但是由于视图层和控制层都是由JSP页面实现的,即视图层和控制层没有实现分离,仍属于传统Model1模式,不符和MVC开发原则。因该软件目前整体运行情况良好,满足企业需求,想在不改变软件行为的前提下,对软件内部结构及代码进行重构,使管理系统符合J2EE技术标准,提高代码其可阅读性,实现软件更大粒度的复用。

因重构内容较多(涉及到UI层,业务逻辑层,数据持久层、域对象层等内容),现仅以系统重构前后如何适应多数据库为例进行说明。

2 旧系统数据库连接简介

系统数据库连接方式采用数据库厂商提供的专用驱动程序,通过JDBC API调用转换为直接网络调用,实现数据库连接,个人认为这种调用方式一般性能比较好,而且也是实用中最简单的方法。

为适应多数据库访问,旧系统实现原理:应用程序(javabean、SEVLET等)—>读取配置文件->JDBC API驱动程序->访问数据库(MYSQL、SQL2000);

2.1 读取dbconfig.property配置文件,获得数据库连接信息(Property文件内容见下)

2.2 根据读取DBType值来判断数据库连接类型

2.3 调用API函数建立数据库连接

3 问题的提出

该系统中数据库访问逻辑代码没有放在视图层中,但视图层和控制层都是由JSP页面实现的,即视图层和控制层没有实现分离,属于Model1模式。随着企业规模的不断扩大,业务逻辑规则不断添加,维护难度增加,旧系统的缺陷是明显的,例如业务规则和模型代码混合在一起,这类代码依赖性使应用程序在在添加业务规则时非常麻烦;大粒度的软件复用几乎不可能。

在软件工程领域,为了降低模块耦合度,提高模块的可重用性,分层一直是广为采纳的一个方法。Model2模式———MVC开发模式克服了Model1存在的不足,MVC的具体含义是:model+view+control,即模型+视图+控制,这样的模式集成了JSP、Serclet、JavaBean,非常适合大型项目的开发,具有良好的伸缩性和扩展性。

按照MVC的设计原则,层与层之间应该保持相对独立,数据的传递在不同的层之间通常利用Java Bean来创建数据传输对象(Data Transfer Object,简称DTO),从技术的角度上面来说,有几个优点:

1)采用DTO来传输数据可以减少传输数据的冗余,提高传输效率,更重要的是实现了各个层之间的独立,使每个层分工明确。模型层负责业务逻辑,视图层负责向用户展示模型状态。

2)采用DTO,模型层对视图层屏蔽了业务逻辑细节,向视图层提供可以直接显示给用户的数据。在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高J2EE架构整体的可维护性和可扩展性。比如说Web层的逻辑进行了修改,那么只需要修改Web层的Form Bean结构,而不需要触动业务层和持久层的代码修改。同样的,当数据库表进行了小的调整,那么也只需要修改持久层数据表示,而不需要触动业务层代码和Web层代码。

结合项目中如何适应多数据库问题,决定使用DAO(DATA Access objiect)模式及工厂模式相结合的解决方案法。

4 现有系统详细说明

4.1 DAO工作模型参与者和职责

职责说明:

1)BusinessObject(业务对象):代表数据客户端,该对象需要访问数据源以获取和存储数据。

2)DataAccessObject(数据访问对象):是该模式的主要对象。DataAccessObject抽取该BusinessObject的低层数据访问实现,以保证对数据源的透明访问。BusinessObject也可以把数据加载和存储操作委托给DataAccessObject。

3)DataSource(数据源):代表数据源实现,数据源可以是不同的RDBMSR数据库、XML文件等等。

4)ValueObject(值对象):代表用做数据携带着的值对象。DataAccessObject可以使用值对象来把数据返回给客户端或客户端数据修改后传给DataAccessObject。

4.2 工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory)比较

二者都是工厂模式中的一员,都能实现让应用程序的高层模式在创建类的实例时无需依赖于这些类的具体实现,但它们有不同的适应场合。

1)抽象工厂模式(Abstract Factory)适应条件:一个系统要独立于它的产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当你要强调一系列相关的产品对象的设计以便进行联合使用时;当你提供一个产品类库,而只想显示它们的接口而不是实现时。

工厂方法模式为数据库访问类实现一个工厂方法模式是相当容易的,但如果客户要求能够选择返回数据的对象类型,那么随着更多数据提供者的增加,一个基于工厂方法模式的类模型将呈现成倍的增长,所以,工厂方法模式并不适合处理多选择的问题(多于一个参数的问题)

2)工厂方法模式(Factory Method)适应条件:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你指定哪一个帮助子类是代理者的时候。

抽象工厂模式(Abstract Factory)是为创建相关或相互依赖的对象族提供一个接口,而无需为这些对象指定具体的类。如果应用到我们的数据层组件,每个数据提供者可以看成一个族,每个族的成员都是一个具体的类,很显然,抽象工厂模式更适合多个参数(数据库)的问题。

4.3 采取抽象工厂模式的DAO模型

通过调整抽象工厂和工厂方法模式,DAO模式可以达到很高的灵活度:使用DAO模式来抽象和封装所有对数据源的访问;DAO管理着所有与数据源的连接以便于检索和存储数据;DAO完全向客户隐藏了数据源的实现的细节。由于当底层数据源实现变化时,DAO向客户端业务组件提供的接口不会变化,所以该模式允许DAO调整到不同的存储模式,而不会影响到客户端组件。DAO模式充当了组件和数据源之间的适配器。当低层存储随着实现变化而变化时,可以使用抽象工厂方法模式实现多数据库适应问题。

具体类图见下:

下面对图所示的结构元素进行解释:

AbstractDAOFactory是一接口对象,该对象可以构造多种类型的DAO工厂接口,每个工厂支持一种不同类型的持久性存储实现(数据源),例如XML文件、MYSQL、ORACLE等,AbstractDAOFactory中,都有一个返回新产品对象的方法,如我们定义的CreatAbstractDAO方法等客户端组件正是通过这些方法来获得DAO实例,但客户端组件并不知道它们正使用的是哪些具体的对象,这样客户端组件就不会依赖于具体的DAO,从而不依赖于具体的数据源实现。

XmlDAOFactory、RdbDAOFactory:根据数据源的不同设计了两个DAO接口对象,继承自AbstractDAOFactory。

MysqlDao、OracleDao:这两个具体DAO工厂对象实现了RdbDAOFactory接口,以支持和实现有关的访问。

4.4 部分实现代码

系统开发环境:Eclipse3.3+MYECLIPSE6.0GA+Tomcat5.5.24+jdk1.6;采用开源框架Spring+Struts+Hibernate实现MVC架构。

以MYSQL数据库为例,根据前面建的DAO数据层组件模型,需要创建一个AbstractDaoFactory接口、一个RdbDaoFactory接口和MYSQL数据库对应的MysqlDao工厂类,这种结构来自于抽象工厂设计模式。通过对异类数据源的访问提供了统一的接口,用户针对不同的数据源,只需在配置文件里面修改相应的数据源类型,就可以应用同一个应用系统来访问不同的数据源了。

在JAVA开发环境下,不同数据库访问机制基本相同,不同之处在于命名空间不同,每个命名空间下的类的实现基本相同。基于这个原因,我们可生成MYSQL、Oracle等数据源的访问代码,然后根据需要把这些生成的代码进行修改组合,最后生成我们的数据层组件模型的代码。

RdbDaoFactory关系数据库接口代码如下:

建立相应命名空间下的具体工厂类,下面我们分别建立针对MYSQL和Oracle数据源下的具体工厂类,MYSQL数据源的MysqlDao具体工厂类代码为:

其它数据源的具体工厂类实现代码和上面的类似。

在对具体数据库进行操作时,我们需要实例化针对数据源的访问类,这时我们只要从xml配置文件读出数据源类型,生成相应的访问类就可以对数据源进行操作了。数据源类型判断代码:

5 结论

该企业信息系统重构后已经投入运行,并且取得了很好的效果。重构后数据库访问层组件模型隐藏了在数据库中存取对象的细节,使得业务逻辑层独立于具体的数据模型和数据库产品,而且把设计模式应用于数据层组件模型,使得该模型具有更好的伸缩性和扩展性。

参考文献

[1]阎宏.Java与模式[M].北京:电子工业出版社,2002.

[2]Richard Hightower,Nicholas Lesiecki.JAVA极限编程[M].北京:机械工业出版社,2004.

[3]Mike o'Docherty.面向对象分析与设计(UML.2.0版)[M].北京:清华大学出版社,2006.

[4]陈樟洪.IBM Rational Software Architect建模[M].北京:电子工业出版社,2008.

[5]曹广鑫.Java企业级开发项目实践[M].北京:清华大学出版社,2004.

设计模式数据库 篇7

在传统的计算机专业课教学中,大量的时间用于基本概念的讲授和理论的理解,使学生对问题的提出和解决难以把握,而且容易使学生产生厌学心理,丧失积极主动性。而运用“PBL模式”展开的教学,不再是被动接受,而是将所学新知识和技能蕴涵于“问题”中,它强调的是把学习设置到复杂的、有意义的问题情景中,通过让学习者合作解决真实性问题,来学习隐含与问题背后的科学知识,形成解决问题的一种学习模式。在教师的导向作用下,以问题为引导,学生自学讨论为主体,打破了传统的教学中强调教师讲授为主,学生被动接受的陈旧教育思路,最后成功完成“问题”,从而建构属于自己的知识与技能[2]。

1 PBL在理论教学中的应用

运用PBL教学模式,在《数据库原理》课程的教学过程中,以有助于学生理解、掌握数据库基础知识和基本理论为目标,以学生作为主体完成一个个具体的任务为线索,通过教师设计任务,由学生进行任务分析、任务分解、提出问题,并共同寻找出问题的最终解决方法,大大提高了学生的学习热情和实践能力。以此为基础,在课程教学中通过进一步引导学生观察、思考、想象,激发创新思维,培养了学生的创新精神。从最后设计实现的结果来分析,决大部分同学能快速找到相关资料,熟悉模型并将其运用到具体问题中来,并取得了很好的分析结果,且教学时间很少。由此分析,通过该方法教学可以明显提高学生学习的积极性和主动性,增强学生的学习能力。

再如讲授《SQL Server程序设计》课程的存储过程、触发器章节时,围绕典型案例,由教师提出“问题”,让学生带着“问题”学习教材、参考书——解决问题,寻找正确答案。通过教师与学生的在课堂或机房互动讨论,弄懂弄通,使学生“知其所以然”。掌握基本理论的同时要善于通过信息反馈了解学生存在的问题,及时调整讲解与讨论重点,使学生能完整,并准确地消化吸收掌握教学内容。

2 教学示例

针对数据库基本原理部分枯燥难懂的问题,对不同的知识点设计了相应的背景问题,并要求学生给出解决的方法,然后通过对各种方法的总结,得出适当的结论,加深了对相关理论的理解,获得了很好的教学效果。

为了更好的理解“PBL教学模式”在实际教学过程中的具体应用,本文给出一个实际的教学示例进行说明:

2.1 提出问题

问题是PBL的基础、出发点以及引发学习活动的主线,问题设计的适当与否是PBI学习成功的关键,设计问题时应该注意以下几点[3]:

1)设计的问题应是比较复杂且具有综合性

问题能浓缩要掌握的知识要点。根据学科的特点,结合教材,分析教学内容,列出知识要点,哪些是需要重点掌握的,哪些是了解的,它们与实际需求的联系,并据此来设计问题。

2)设计的问题应具有真实性或拟真性

问题应来源于现实生活,是学生在日常生活中可能会遇到的问题,并且具有社会需求性。如果在设计问题时,问题的绝对真实在教学中不可能完全实现,就可考虑通过一定程度真实的问题来促进真实性的学习,有效地激发学生的学习动机。

3)好的问题设计往往需要计算机课教师深入到行业中,挖掘实际工作中所要用计算机解决的问题。

项目组在讲授数据库设计理论时,提出了一个有关移动公司的问题。因为目前大学生们都拥有手机,话费,用户档案等问题与他们的生活息息相关,自然会激起他们的兴趣,而兴趣是最好的老师。

【案例】欲设计移动公司手机信息管理系统,用于管理:

(1)手机销售信息(由营业厅售给用户)

(2)手机用户档案信息(用户名,证件号码等)

(3)手机通话信息(每一次通话的详细情况)

(4)手机话费信息(每月的话费组成)

在此基础上实现常用的查询,如:

(1)每月手机的销售情况;

(2)每种机型的销售情况;

(3)每个营业厅的手机销售情况;

(4)根据手机号码查询其用户信息;

(5)根据手机号码查询某时间段内的通话情况;

(6)每月手机话费收入;

(7)欠费用户查询。

试设计合适的数据库,并在此基础上用SQL实现所有的查询。

2.2 现在知道什么?(事实)

要解决上述问题,必然要掌握一定的基础知识。很显然,当讲到数据库设计章节时,学生应当掌握数据库、表的基本知识、掌握关系模式的好坏对一个系统的影响。应当掌握针对上述问题,若是设计一个不好的关系模式,会存在数据冗余,对表增删改时会存在插入、删除、更新等异常现象。但教师要重申如何辨别一个关系模式的“好坏”。

2.3 问题该怎么解决?(想法)

由案例可知,目标是针对一个具体的应用环境设计一个适合于它的关系模式的问题。如果一个关系模式不适合,设法改造,如何改造。改造过程中,要知道,关系模式不求规范化最高,只求最适合。此外,教师还要使学生认识到,规范化过程是用于设计好的数据库的有力辅助,但并不是唯一的方法。

2.4 还要知道什么?(学习目标)

掌握以上知识的前提下,要设计移动公司的数据库还要掌握什么知识?这就引出本章的教学目标:

1)了解E-R图?E-R图的绘制方法。

2)E-R图向关系的转换,各种联系的转换原则。

3)各个关系模式的码以及属性的认定。

4)关系模式冗余函数依赖的去除,如何认定关系模式是“适合”的?

2.5 如何知道?(行动计划)

授课前一周,老师告诉学生教学方式的转变,和学生沟通目标,达成共识。根据数据库原理课程的学习重点和难点,循序渐进把设计好的问题或问题方向告知学生。学生自由组合成小组(每组3~4人),老师引导学生在课前翻阅教材、查阅资料,进行充分的准备,收集与问题相关的已有知识,做好笔记,便于课堂上发言讲解自己所作的准备工作。

由以上案例可知,在采用PBL教学模式教学过程中,教师的教学观念的转变。传统的教学模式中,教师处于主讲地位,而PBL教学模式要求教师转变观念,成为学生学习道路上的引导者,帮助者。采用PBL教学,教师需要查阅大量的教学资料并深入到实际岗位中了解需求,需要投入更多的备课时间,精心设计问题,激发和发现学生的创新潜能,捕捉学生创新思维的闪光点,多层次、多角度地培养学生的创新精神和创新能力。此外,还要激发学生参与PBL学习的积极性。学生已习惯听老师讲,存在不善于提问及依赖性强的特点。要有效激发学生参与PBL的积极性,老师在设计问题时要注意选择与学生切身相关的问题来激发学生自主学习的意识、兴趣,调动他们的积极性,让其主动参与。

3 结束语

笔者和本项目组成员采用PBL教学模式后,取得了明显的教学效果。PBL教学模式能有效激发学生学习数据库原理这门课程的兴趣和参与意识,培养学生自主学习技能与创新能力,提高处理岗位实际问题时有效运用知识的能力,并为学生终身学习奠定基础;同时也增强了师生交流和师生关系,教师也可从学生的讨论中得到某些启示,真正做到教学相长[4]。

参考文献

[1]罗蓉,苑璟,杨百龙,李俊山.数据库原理及应用实验教学探索[J].太原教育学院学报,2006(6):112-114.

[2]韩钰铃.数据库系统原理教学改革探讨[J].网络与信息,2010(11).

[3]李永.数据库原理课程理论教学方法研究[J].计算机教育,2010(20):34-38.

设计模式数据库 篇8

当前企业应用程序的设计思路主要有B/S模式和C/S模式。 B/S模式是一种以Web技术为基础的系统平台模式, 它主要把服务器分解成一个数据库服务器和多个Web服务器 (应用服务器) 。 而C/S模式主要是由客户应用程序、 服务器管理程序和中间件3 个部分构成。 客户应用程序主要负责用户与数据之间的交互, 服务器管理程序负责对系统资源的有效管理, 而中间件则负责客户应用程序和服务器管理程序之间的连接管理, 以保障任务命令的顺利完成, 满足用户对管理数据的查询要求。 两种模式, 各有所长。 与B/S模式相比, C S模式具有以下几大特点。

(1) 交互性强。 以C/S模式搭建的系统, 其客户端都有一套完整的应用程序。 在其运行时都能提供诸如出错提示、 在线帮助等功能, 而且还能在各个子程序之间进行功能切换。 B S模式虽然也利用Java Script等语言提供了一些交互功能, 但与C/S模式相比, 还是较为单一。

(2) 存取模式更安全。 由于C/S模式采用的是点对点的交互方式, 其采用的网络协议安全性都较高。 而B/S模式由于采用的是多点对多点等开放式的结构方式, 故一般都采用TCP IP等开放式的网络协议。 这也促使以B/S模式搭建的企业数据库就需要配备额外的安全措施来防范外界病毒木马的入侵和系统信息的安全等。

(3) 可降低网络通信量。 C/S模式搭建的系统在网络协议层中相对于B/S模式在逻辑层上的三层结构而言, 只由两层结构构成, 信息的通信量也大多仅包括Client和Server之间。 所以其网络信息量的处理需要可以大大降低。

(4) 速度更快。 因为C/S模式大多数的数据运算都在客户机上完成, 且其在逻辑结构上比B/S模式要更少一层, 所以在面对相应问题的处理时速度要更快一些。

2 C/S模式数据库的设计

关于企业数据库的设计, 美国国家标准协会下属的标准规划和要求委员会 (SPARC) 做了明确说明。 根据组织结构要求, 将数据库划分为内模式、 外模式和概念模式等3 种。这3 种模式的设计流程主要都包含了需求分析、 概念设计、逻辑设计、 物理设计和数据库实施等。 其主要设计流程如图所示。

2.1 需求分析

需求分析是整个数据库设计过程的基础, 要求收集数据库所有用户的信息内容和处理要求, 并加以规格化和分析, 确保用户目标的一致性。 这是最费时、 最复杂的一步, 但也是最重要的一步。 它就像是为一个系统的工程打下一个坚实的基础。 基础是否牢固也就决定这这项工程的主体基调与质量。 需求分析做得不好, 极有可能导致整个数据库系统设计的失败。

2.2 概念设计

概念设计主要是把用户的信息要求统一到一个整体逻辑结构中。 此结构要求能够表达用户的基本要求。 这是一个独立于任何DBMS软硬件资源的概念模型。 这一阶段的主要任务就是要定义一些具体的实体。 实体集的成员都有一些共同的特征和属性。 根据早期整理的原始材料和数据中直接或间接地标识出大部门的实体名称, 并由其表示物的术语中标示出其名词等部分代表, 从而初步找出潜在的实体, 形成实体表。

2.3 逻辑设计

逻辑设计是将上一步所得到的概念模型转换为某个DBM所支持的数据模型, 并对其进行优化。 这一部分的主要任务是建立实体表中对象的二元联系。 可根据实际的业务需求, 用实体矩阵的方式来设计实体间的逻辑二元关系, 确定关系类型等。

2.4 物理设计

物理设计是为逻辑数据模型建立一个完整的能实现的数据库结构。 包括存储结构和存取方法等。 从源数据表中抽取说明性的名词开发出属性表, 确定属性的所有者。 另外, 根据实体表中二元关系的规则等还要检查各类关系之间的属性及非空或非多值规则。 以此获得至少符合关系理论的第三范式等。

2.5 数据库实施

数据库实施阶段则是根据物理设计的结果把原始数据装入数据库, 建立一个具体的数据库并进行编写与调试相应的应用程序。 应用程序的开发目标则是要设计一个有效的可以依赖的数据库存取程序, 来满足用户的处理需求。

3 主要优化设计途径

3.1 概念

对数据库系统的概念设计主要就是通过归纳、 综合与抽象地了解用户需求后, 建立E-R模型。 其主要优化途径则需要全面了解用户的主体业务和关键需求。 尤其在应用过程中有可能出现的瓶颈和问题更是在E-R模型图的设计过程中要能得以完善解决。 此外, 除了设计系统完整需要的各个功能外, 设计中还需要注重考虑一些非功能性的需求。 如系统响应时间、 实时问题处理的优先级量化指标等。

3.2 逻辑

逻辑优化设计主要包括了命名约定、 规范化与反规范化平衡设计表结构、 合理设计主键与外键以及字段优化设计等。命名约定是逻辑优化设计中的前提。 一个企业首先应该建立一个广泛的约定规则, 以提高表明和字段名的一致性。 同时, 名字更应让人直观地起到顾名知意的作用。 若相似企业或部门之间的名称类似的话, 则应采用添加前缀等方法来避免混淆的现象出现。 平衡设计表的结构则要求所有的基本表都应满足第三范式, 即表中的每行和每列都有一个单一的值, 且每一个非键的值都仅仅只依赖于一个主键。 规范化以后的表结构则要做到消除数据冗余和数据混乱, 便于后期使用中的查找、 删除和更新等。

表中的主键则实际上代表了表中事物的唯一性。 当一个表中有多个键存在时, 我们大多要选择长度小的键做主键。因为这一类键的速度较快且树形结构层次更少。 而对于复合主键, 则更多应考虑其字段的顺序问题。 因为不同的字段顺序极有可能会影响到主键的读取性能。 所以, 优化设计时, 应选择将独立的、 重复率低的或易于查询的字段排序到前面去。

字段是数据库中最小的逻辑单元, 设计对系统性能的影响往往也较大。 所以, 在字段的优化设计中应做到多用数字型字段、 使用长度短的数据类型来避免占用较多的存储空间。还有尽量做到不用null和少用text和image等读取方法不多且慢的二进制字段。

3.3 物理

数据库系统中的数据最终都是存储在物理磁盘中。 物理优化的目的则是要让数据在物理磁盘中的存放更加趋于合理, 达到高效的利用和数据的安全。 最好能够做好将数据库管理系统文件和数据库文件分开存放, 以及充分利用分布于磁盘不同空间上的物理文件来组建一些常被访问的、 不常被访问的和最常被同时访问的等文件信息所在的表空间。

另外, 任何数据管理系统都会提供大量的如物理块、 缓冲区、 内存分配等配置参数。 这些参数对于数据库的访问速度和性能都会有一定的影响。 所以, 优化时也应根据具体的应用环境和硬件资源标准来做适当调整以实现性能的最优化。

3.4 索引

数据库中索引的主要价值就是提高数据查询的效率。 如果索引运用得当则能直接有效提高数据库的访问性能。 所以, 合理地使用索引也是企业数据库系统设计优化的一种有效方式。 虽然索引的设立可以提高数据查询的速度, 但是数据库中的索引并非越多越好。 设立过多索引, 即不利于数据库中数据的及时更新, 又要额外占用一定的磁盘空间, 同时还会增加更多的维护开销。 所以, 索引的优化应该从以下几个方面综合考虑:

(1) 如果查询字段很小或很长, 或者字段值分布严重不均的, 不要用于创建索引。

(2) 字段或者数据经常会更新的, 或者表本身就较小的也不宜建立索引。

(3) 如果某些查询可直接从索引中得到结果的则可根据创建字段原则来建立索引。

(4) 如果是以读为主或只读功能的表; 或者主键或外键上都已经建有索引且存储空间允许的表; 或者在相关属性上已建有簇集索引等的则可以考虑建立相应的目标索引等。

当然, 除了合理建立相关索引以外, 科学合理使用簇或建立索引表、 散列表等手段也能够显著提高数据库系统的查询效率。

4 结语

影响数据库系统性能的因素有很多。 想要有效提高数据库系统的设计质量, 就必须让数据库设计满足市场的需求。只有通过对市场的实时沟通来合理规划需求分析, 然后还要掌握自身企业对于系统应用的要求。 从实际出发, 遵循数据库系统的设计规则, 确立数据库设计的目标和方向, 才能从根本上设计优化出高效、 合理、 实用的数据库系统, 真正提高数据库设计的实效性。

摘要:在知识经济时代, 企业数据库的应用已成为检验企业信息现代化的一个重要标志。基于数据库系统设计以C/S模式为基本落脚点, 阐述了C/S型数据库系统的主要设计过程, 并从概念、逻辑、物理和索引等角度提出了一些合理化的优化设计途径。

关键词:数据库,设计,优化,规范化

参考文献

[1]王珊, 陈红.数据库系统原理教程[M].清华大学出版社, 2006.

[2]李武韬.数据库的非规范化方法[J].常州信息职业技术学院学报, 2004, 3.

[3]王志毅.基于信息化建设的企业数据库设计[J].商业时代, 2010, 5.

设计模式数据库 篇9

随着Web2.0的快速发展, 无模式数据库得到了快速发展, 并逐渐由互联网应用扩展到企业应用中, 其最大的优势是对大数据量的高效处理。与此同时, 采用传统数据库架构的数字档案系统却普遍面临着巨大的挑战, 如何应对海量数据存储对数据库架构扩展性的要求, 以及如何实现海量数字档案数据的高效检索利用等问题在传统数据库架构模式下都不能很好地解决。本文在研究档案数据特点以及无模式数据库架构技术的基础上, 提出了能解决档案管理系统普遍面临的海量数据存储、分析、共享等方面问题的新模式, 希望能够在实际应用中有所帮助。

一、档案数据特点

档案是国家机构, 社会组织或个人在社会活动中直接形成的有价值的各种形式的历史记录[1]。随着信息技术的广泛应用和高速发展, 大部分国家机构、社会组织在其自身信息化建设工作内容中均涵盖了档案信息化工作, 而档案管理系统软件是实现档案管理信息化的必要工具。OAIS (Open Archival Information System) 参考模型是国内外档案管理系统设计过程中普遍参考的模型。根据OAIS中的功能模型定义, 档案管理系统应实现档案数据摄取、存储、管理、保存、存取、数据管理等6个主要功能模块[1], 这些功能模块对应着档案数据的不同阶段。在不同阶段, 档案数据在IO读写、数据量大小等方面差异很大, 导致了采用单一模式 (现阶段主流档案管理系统均采用传统关系数据库架构) 无法全面满足不同阶段下档案数据的处理要求, 会产生系统性能瓶颈, 影响用户体验。所以, 为了科学合理的实现档案数据的管理, 首先需要对档案数据特点进行深入分析。

(1) 档案数据业务 (功能) 阶段特点

1) 数据摄取、存储、管理阶段。该阶段对应的业务场景主要为档案收集、编目、组卷、审批和办结等, 档案管理系统需要频繁读取、修改数据以实现业务功能, 并且对系统响应速度要求高。这部分数据主要为当年、当季、当月应归档的档案数据, 数据量随着归档业务活动在一定区间范围内始终处于变化状态, 相对整个档案管理系统来说数据量非常小, 与一般事务性管理信息系统相似。

2) 数据保存阶段。该阶段对应的业务场景主要为档案归档办结业务, 办结后的数据将在其保管期限内为限制更新状态, 以数据的长期保存为主。数据读操作也以周期性的系统内部操作 (如数据检查、数据迁移等) 和对外发布为主, 对系统响应速度没有太高的要求, 而数据写操作几乎为零。这部分数据可以说是数字形态的馆藏档案。据统计, “十一五”末我国的馆藏档案量已到达约4亿卷 (件) , 比“十五”末增长近40%[2], 据此估算“十二五”末, 我国的馆藏档案量将达到约5.6亿卷 (件) 。按每卷档案数字化后形成10MB数据进行估算, 我国档案数据约为5.2PB, 并以每5年约2PB速度增长。同时, 考虑档案价值鉴定的难度和因档案销毁产生不良后果的风险较大, 所以档案数据的总量是一种持续增长态势。

3) 数据存取阶段。该阶段对应的业务场景主要是为档案利用者提供网络化的档案内容服务 (如在线查看、离线借阅等) 。数据读操作频繁, 没有写操作。数据量为馆藏可提供利用的数据量, 因馆藏数据量大, 所以该阶段数据量也相对较大, 数据增长速度快, 并且系统响应速度要求高、在线用户及并发用户数大。

(2) 数据结构复杂。档案数据涵盖了三种数据结构。一是结构化数据, 主要为档案管理系统所需固定字段 (如ID、创建日期、创建人、状态等) 和通用元数据集 (如保管期限、保密期限、关键词等) 。二是半结构化数据, 主要为档案的元数据, 数据结构随档案分类差异较大, 如发文的签发者, 合同的甲方、乙方、合同金额等。三是非结构化数据, 主要为电子档案文件, 类型包括文本、音频、视频、图片等。

二、采用传统关系型数据库架构存在的问题

通过上述特点阐述, 可以看出采用传统关系数据库架构的档案管理系统很满足档案数据的管理需要。主要有以下几方面原因:

(1) 关系型数据库扩展困难, 很难满足档案数据PB级别规模和持续高速增长的趋势。原因是由于存在类似Join这样多表查询机制, 使得数据库在扩展方面很艰难[3]。

(2) 读写慢, 很难保证PB级别数据量下系统的响应速度。原因是数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂, 使得其非常容易发生死锁等的并发问题, 所以导致其读写速度下滑非常严重[3]。

(3) 成本高, 一方面是企业级数据库的License价格很惊人, 并且随着系统的规模, 而不断上升[3]。

(4) 数据模式不匹配, 很难满足档案数据结构多样性的需要。当数据达到一定规模时, 基于结构化模式的关系型数据库架构明显不能满足无模式的非结构化和半结构化数据的管理需要。

三、混合数据库架构模式构建的关键技术

混合数据库架构模式不是将原来的传统关系型数据库架构完全抛弃, 而是对于不同阶段的档案数据选用不同模式的数据库架构进行管理。通过科学合理的融合各种数据库架构模式, 使得整个档案管理系统数据库架构在存储和性能两方面同时具有高可扩展性。关键技术之一就是无模式数据库技术。无模式数据库即各种形式的No SQL数据库, 它们的共同特点是都没有模式。No SQL领域在短短4到5年的时间里爆炸性地产生了225个数据库。nosql-database.org列出了225个这样的数据库[4]。这些No SQL数据库大部分归属四大类, 分别是键值存储数据库、列存储数据库、文档型数据库、图形数据库[5]。

(1) 文档型数据库架构技术。Mongo DB、Couch DB属于这种类型, 面向文档的数据库具有以下特征:一是即使不定义表结构, 也可以像定义了表结构一样使用。关系型数据库在变更表结构时比较费事, 而且为了保持一致性还需修改程序。然而No SQL数据库则可省去这些麻烦, 确实方便快捷。二是跟键值存储数据库不同的是, 面向文档型的数据库可以通过复杂的查询条件来获取数据。虽然不具备事务处理和JOIN这些关系型数据库所具备的处理能力, 但除此以外的其他处理基本上都能实现。这是非常容易使用的No SQL数据库[6]。

(2) 电子文件的分布式存取技术。分布式文件系统起源于Google三大学术论文《The Google File System》、《Map Reduce》、《Bigtable》, 是解决海量非结构化数据 (包括电子档案文件) 的关键技术[7]。目前包括英特尔、微软等公司均推出了面向企业应用的分布式文件系统以及开源的Hadoop分布式文件系统。

四、混合数据库架构模式设计

混合数据库架构模式的设计思路是改变目前档案管理系统以结构化数据为主体的传统关系型数据库架构, 而采用混合多种数据库架构的设计模式。具体设计内容 (如图1所示) :

(1) 归档电子文件库, 主要管理归档阶段的数据。其中, 以结构化数据为主体的系统固定字段和通用元数据库采用传统关系型数据库 (SQLDB) , 优先保证业务数据的强一致性和支持复杂的分析逻辑。数据结构不固定的其他元数据更适合采用文档数据库 (No SQLDB) , 可以很容易实现各类元数据管理方案。内容数据库主体为海量非结构化数据, 采用分布式文件系统架构, 易于扩展和维护。

(2) 电子档案保存库, 主要管理归档完结后的数据。归档完结后的档案数据的核心作用是长期保存。根据本文对该阶段数据特点分析, 固定字段和元数据采用文档数据库 (No SQLDB) , 在此, 不再区分通用元数据和其他元数据, 统一采用文档数据库 (No SQLDB) , 因为通用元数据在整个元数据集合中占比非常小。内容数据库统一采用分布式文件系统。

(3) 信息 (内容) 服务库, 主要管理作为信息 (内容) 对外提供服务的数据。这部分数据的核心作用是网络共享, 对应的业务功能与知识系统或门户类似 (如知网、维普网等) , 更适宜采用文档数据库 (No SQLDB) 和分布式文件系统。

(4) 数据接口, 主要为选用的No SQLDB和分布式文件系统软件的API。

五、结语

数据库架构设计是应用系统软件的重要基石, 对于以数据管理为核心业务的档案管理系统来说更为重要, 好的数据库架构将大大改善档案管理系统的用户体验和运维现状。在档案数据规模超PB级别并急速增长的背景下, 坚持传统关系型数据库架构或完全采用大数据架构都是比较片面的解决方案。只有让不同结构的数据在最适合的架构模式中进行管理, 通过融合关系型数据库架构、无模式数据库架构以及分布式文件系统等技术, 构建出恰如其分的混合数据库架构模式才是有效的解决方案, 充分发挥档案管理系统的作用, 为国家、社会、企业及个人的发展提供强大的知识储备。

摘要:随着Web2.0的快速发展, 无模式数据库得到了快速发展, 并逐渐由互联网应用扩展到企业应用中, 其最大的优势是对大数据量的高效处理。本文在研究档案数据特点及无模式数据库架构技术的基础上, 提出了两者结合的混合数据库架构模式, 以解决档案管理系统普遍面临的海量数据存储、分析、共享等方面的问题。

关键词:档案管理系统,无模式数据库,混合模式

参考文献

[1]ISO 14721:2012, Space data and information transfer systems--Open archival information system (OAIS) --Reference model[S].

[2]中华人民共和国国家档案局官网.全国档案事业发展“十二五”规划[EB/OL].http://saac.gov.cn, 2011-01-14.

[3]chj.CSDN博客网.云计算背后的秘密:No SQL诞生的原因和优缺点[EB/OL].http://blog.csdn.net, 2013-07-19.

[4]Stefan Edlich.Info Q.No SQL的现状[EB/OL].http://infoq.com/cn/, 2013-02-25.

[5]百度百科.No SQL词条[EB/OL].http://baike.baidu.com.

[6]佐佐木达也.No SQL数据库入门[M].北京:人民邮电出版社, 2011.14.

浅谈地籍数据库管理模式 篇10

[关键字] 地籍数据库;管理模式

一 开展地籍数据库管理工作的重要作用

作为国土资源管理的核心组成部分之一, 开展地籍数据库管理工作是实现国土资源信息化的有效保证,作为土地基础数据库的核心,地籍数据库的管理模式将对国土资源信息的管理效果产生重要的影响。与此同时,随着信息科学技术的不断发展,我国的国土资源信息正在逐步发展到网络信息化处理阶段,这就给开展地籍数据库管理工作提出了更高的要求。在这样的背景下,就需要相关的地籍数据库管理机构适应时代的变化,在保证原有的地籍数据库的基础上,不断优化地籍数据库的管理模式,并对地籍数据库的运行平台进行优化处理,为保证国土资源信息管理水平提供保证。

二 不断强化地籍管理信息系统权限管理模块的功能

为了保证地籍管理信息系统的安全运行,最重要的就是做好对地籍管理信息系统权限管理模块的设计管理工作。在地籍管理工作人员进行正常工作的过程之中(例如,工作人员利用信息管理软件完成土地登记发证业务的过程、调用调查表信息的过程),都会利用到地籍数据库之中存储的相关数据信息,因此,对地籍管理信息系统的利用就是地籍数据库之中存储的相关数据信息的查询与提取,地籍管理信息系统权限管理模块的主要功能就是保护地籍数据库之中存储的相关数据信息不受到非法的侵占和利用。

具体的来说,地籍管理信息系统权限管理模块的功能主要集中在根据来访用户的具体条件,设置来访用户对于地籍数据库的访问权限,并保证进行来访的工作人员只能获得自身相关的数据信息。以某市的地籍管理信息系统权限管理系统为例,该系统充分的利用了元操作的权限控制设计思路,将地籍数据库之中的相关信息的访问权限控制到了元操作级(例如,在工作人员进行区域图及专题图的浏览的过程、GIS 图形的漫游的过程之中,都只能够获得该权限范围内的数据获取权限)。在该系统的运行过程之中,当工作人员使用自己的工作账号登陆之后,地籍管理信息系统权限管理系统将根据工作人员登陆账号的具体工作权限向工作人员放开相应的数据信息,对于那些没有权限进行访问的数据,地籍管理信息系统权限管理系统将对这些数据进行灰化处理,提示工作人员其并没有访问权限,进而有效的保证地籍数据库之中的数据得到有效的保护。

三 建立地籍数据库的长效变更机制

为保证地籍数据库提供的数据信息的有效性和权威性,需要在进行地籍数据库管理的过程中,充分重视对地籍数据库之中的内部数据的及时更新,充分保证地籍数据库之中的数据信息的现实性。目前我国的社会经济在发生日新月异的变化,城乡建设过程也在如火如荼的进行,在这样的背景下,地籍数据库之中所收集到的信息就需要不但根据实际的变化进行更新,为了有效的保证地籍数据库数据信息的更新进程,就需要建立地籍数据库的长效变更机制。

以某市的地籍数据库的长效变更机制的建立为例,該市的地籍数据库系统将基础数据的存储列入了该市的经济发展计划之中,并根据数据信息的变化建立了相应的空间信息处理处理体系,并基于“3S”的标准成立了数据的一体化采集系统技术,并充分的利用了先进的卫星数据收集技术来加快地籍数据库的数据收集能力,有效的降低了地籍数据库系统采集数据的时间和采集信息的成本。

地籍数据库管理系统作为进行对我国国土资源信息管理的重要组成部分之一,在进行管理的过程之中,更要重视对于数据信息的权威性和精确性的追求。不断的对地籍数据库管理系统的长效变更机制的探索,可以有效的实现快捷有效的获取数据。与此同时,在进行地籍数据库管理系统的长效变更机制的利用过程之中,要力求优化数据的获取流程,并采用双库存模式进行对数据信息的收集管理工作(指的是进行对传统数据收集的历史库和对最新数据收集的现实库),在进行对地籍数据的存储之前,要专门指派相应的工作人员进行对所收集到的数据的质量检测工作,有针对性的将数据分别存进历史库和现实库之中。与此同时,为了防止在存储数据的过程之中出现人为错误,要充分利用团队合作的优势,杜绝疏忽问题的产生(例如,可以在建立历史库、现实库之后,再成立一个临时库,当工作人员完成第一次检测之后,先不要将淘汰下来的数据存储进入历史库,而是将这些数据先存储进入临时库之中,然后经过相关的领导审批检测之后,再将临时库之中的变更数据存储进入历史库之中),提升地籍数据库管理的科学性和合理性。

四 强化地籍数据库变更的日常统计功能

进行完对地籍数据库的信息存储之后,就需要将这些已经存储好的数据来完成对地籍数据库之中的现实库的补充过程,来充分的体现出地籍数据库信息的实时性和权威性。在将数据存储进入现实库的过程之中,由于涉及到了相当多的数据信息的传输和处理,这就需要对数据的处理和分析过程采用相应的管理手段,来保证地籍数据库变更的准确性,这就提出了对地籍数据库变更的日常统计功能的需求。

具体的来说,地籍数据库变更的日常统计功能就是将存储进入地籍数据库之中的相关信息(区域的地籍编号信息、区域的面积信息、信息的变更时间、变更信息的操作管理人员的工作编号信息)进行统计分析处理工作。与此同时,工作人员还要利用地籍数据库系统之中的数据分析工具进行对相关的数据信息的分析和解读工作,保证可以随时将存储的数据进行分析和提取,并将所有的更新数据进行整理备案处理,充分的保证最新存储的地籍数据库信息的安全性能。

结论

为了有效的保证地籍数据库的信息安全、信息的权威性、信息的时效性特点,就需要对地籍数据库的管理模式进行分析探讨,并在建立地籍数据库管理模式的过程之中,充分的结合先进的计算机控制技术,合理的运用计算机平台技术,有效的将精品的国土资源数据收集整理在一起,为社会的经济行为提供充足的参考依据,并为政府的管理和决策提供数据支持,保证我国的社会主义市场经济持续快速健康发展。

[参考文献]

[1] 陈再清,刘波.省级国土资源基础数据库的设计与实现[C].2013数字江苏论坛———电子政务与地理信息技术论文专辑.

设计模式数据库 篇11

对于超大型系统,我们通常使用双机或多机集群系统。在本文中,我们探讨了设计超大型数据库所采用的方法,同时,以在数据库中使用ORACLE 8.0.6并行服务器作出举例。

2 ORACLE并行服务器应用划分策略

ORACLE并行服务器应用划分有如下四种方法:(1)按照功能的模块来区分,不一样的节点运行不一样的应用;(2)按照用户来区分,不一样类型的用户运行在不一样的节点之上;(3)按照数据来区分,对于不一样的数据或者索引要用不一样的节点进行访问;(4)按照时间来区分,不一样的应用要运行在不同的时间。

3 数据库物理结构的设计

3.1 表及索引数据量估算及物理存储参数的设置。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。

3.2 表空间的设计。在表空间设计时一般作以下考虑:(1)一般较

大的表或索引单独分配一个表空间。(2)Read only对象或Read mostly对象分成一组,存在对应的表空间中。(3)若表空间中的对象皆是read only对象,可将表空间设置成read only模式,在备份时,只读表空间只需备份一次。(4)高频率insert的对象分成一组,存在对应的表空间中。(5)增、删、改的对象分成一组,存在对应表空间中。(6)表和索引分别存于不同的表空间。(7)存于同一个表空间中的表(或索引)的extent大小最好成倍数关系,有利于空间的重利用和减少碎片。

3.3 DB BLOCK SIZE。超大型数据库DB BLOCK SIZE一般在

4KB至64KB,而最常用的是8KB、16KB或32KB。选用较大的DB BLOCK SIZE可使INDEX的高度降低,也会提高IO效率。

3.4 Redo Log Files ORACLE使用专用的进程redo log writer(LGWR)将日志写入日志文件。

3.5 数据文件大小。我们应该采用标准的文件,这样能够缩减空间维护的时间。

3.6 回滚段。回滚段一般建在专用的表空间中。每一个INSTANCE实例拥有各自的回滚段。

3.7 临时表空间。临时表空间一般建在专用的表空间中。

4 系统硬盘的划分及分配

考虑以下情况:主机1上有DRD服务1,该服务对应的数据文件有1、2、13、35、67等,这时如果主机2上的INSTANCE2需要读取数据文件13,通过DRD服务调度,主机1通过DRD服务访问磁盘阵列上的数据文件13,把INSTANCE2需要的数据读到内存,然后通过MEMORY IO把数据传到主机2的INSTANCE2。写操作是读操作的逆过程。

5 备份及恢复策略的考虑

5.1 ORACLE备份方法:(1)物理备份(用于磁盘介质损坏或数

据文件损坏)。1)物理冷备份(offline backup)。2)物理热备份(online backup)。3)归档日志文件备份(archived log file backup)。(2)逻辑备份(用于数据库中的某些对象被破坏或用户误操作)。备份策略的考虑主要在以下三个方面:1)存储的空间方面;2)针对于影响运行系统方面;3)影响恢复的时间方面。

5.2 ORACLE的恢复方法

采用物理备份恢复。以下三方面的恢复方法是由ORACLE提供:(1)数据库级的恢复;(2)表空间的恢复;(3)数据文件的恢复。数据库级的恢复要在以下条件中运行:关闭数据库但Mount的状态。然而,对于恢复表空间和数据文件时,可以运行数据库。

5.3 采用逻辑备份恢复其适用条件是:其一,用户的操作失误导致数据的破坏;其二,在数据库中,破坏了某一个对象。

6 优化设计

6.1 数据库优化自由结构OFA(Optimal flexible Architecture)

优化自由结构是在数据库中能够任意的分布逻辑数据对象。所以,应该把数据库中的逻辑对象按照它们的使用方法以及数据库受到物理结构的影响来对逻辑对象进行分类。

6.2 充分利用系统全局区域SGA(SYSTEM GLOBAL AREA)

SGA有以下3方面的内容:(1)字典缓冲区。(2)数据块缓冲区。(3)SQL共享池。(4)重做日志缓冲区。

6.3 规范与反规范设计数据库

规范的原则是在数据依赖中逐渐的解决不适宜的部分,将模式中每一个关系模式达到一定程度上的“一事一地”的模式。但是,有时为了能提高一些查询或者应用的性能,从而故意破坏规范规则,保留非范化限制,也就是反规范。

6.4 索引Index的优化设计

第一,使用聚簇。聚簇按照共同的码值把许多表中的数据都存储在一个Oracle块里,这样,Oracle块在同一时间就获得了两个表当中的数据。第二,管理组织索引,针对于查询大型表的时候,索引数据或许将数据块缓存空间用完,ORACL必须经常地通过磁盘读写来得到数据,所以,对大型表分区后,我们要按照有关的分区去建立分区索引。

6.5 使用最优的数据库连接和SQL优化方案

第一,采用直接的OLE DB数据库连接方式。通过ADO,我们可以采用传统的ODBC以及OLE DB两种方式对数据库进行连接。第二,采用Connection Pool机制。其原理是在IIS+ASP体系中维持了一个连接缓冲池,基于此,下一个用户在访问的时候,能够直接在其中获得一个数据库的连接,同时避免了重新对数据库的连接。第三,高效率的对SQL语句进行设计。其一,可以使数据库的查询次数(系统资源的请求)减少;其二,在进行查询时,应尽可能的采用十分类似的SQL语句;其三,对动态SQL的使用可以进行约束。

参考文献

[1]周渝斌.基于ORACLE8i的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2002.

上一篇:涂层系统下一篇:铁路设备维修