用E-R数据模型进行概念设计,首先必须根据需求说明,确认实体、联系和属性。
采用E-R方法进行数据库的概念设计,可以分成三步进行:首先设计局部E-R图;然后合并各局部E-R图,并解决可能存在的冲突,得到初步E-R图;最后修改和重构初步E-R图,消除其中的冗余部分,得到最终的全局E-R图,即概念模式。 扩展资料
在需求分析和逻辑设计之间增加概念设计阶段,使设计人员仅从用户角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。这样做有三个好处:
(1) 数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2) 概念模式不受特定DBMS限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3) 概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确反映用户的信息需求。
在初步E—R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的数据和冗余联系容易破坏数据库的完整性,为数据库的维护增加困难,应当予以消除。消除了冗余后的初步E—R图称为基本E—R图。
但并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。因此在设计数据库概念结构时,那些冗余信息必须消除,那些冗余信息允许存在,需要根据用户的整体需求来确定。如果人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。
你要是建ORACLE数据库,还是MSSQL数据库呢?在建立数据库之前,需要对其进行设计分析。
需求分析调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。概念设计对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。逻辑设计主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
物理设计根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。验证设计在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。运行与维护设计在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。
数据库设计步骤 至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。
数据库设计过程分为以下六个阶段:
1、需求分析阶段
准确理解和分析用户需求(包括数据和处理),它是整个设计过程的基础,也是最困难、最耗时的一步。
2、概念结构设计阶段
是整个数据库设计的关键,通过对用户需求的集成、归纳和抽象,形成了一个独立于特定数据库管理系统的概念模型。
3、逻辑结构设计阶段
将概念结构转换为DBMS支持的数据模型,对其进行优化。
4、数据库物理设计阶段
为逻辑数据模型选择最适合应用程序环境的物理结构(包括存储结构和存取方法)。
5、数据库实现阶段
根据逻辑设计和物理设计的结果,使用数据库管理系统提供的数据语言、工具和主机语言,建立数据库,编写调试应用程序,组织数据仓库,并进行试运行。
6、数据库运行维护阶段
数据库应用系统经试运行后可投入正式运行,在数据库系统运行过程中,需要不断地对其进行评估、调整和修改。
注:在设计过程中,将数据库的设计与数据库中数据处理的设计紧密结合起来,在每个阶段同时对这两个方面的要求进行分析、抽象、设计和实现,相互借鉴和补充,从而完善这两个方面的设计。
扩展资料:
数据库设计技术
1、清晰的用户需求:作为计算机软件开发的重要基础,数据库设计直接反映了用户的需求。数据库必须与用户紧密沟通,紧密结合用户需求。在定义了用户开发需求之后,设计人员还需要反映具体的业务关系和流程。
2、注意数据维护:设计面积过大、数据过于复杂是数据库设计中常见的问题,设计人员应注意数据维护。
3、增加命名规范化:命名数据库程序和文件非常重要,不仅要避免重复的名称,还要确保数据处于平衡状态。为了降低检索信息和资源的复杂度和难度,设计人员应了解数据库程序与文件之间的关系,并灵活使用大小写字母命名。
4、充分考虑数据库的优化和效率:考虑到数据库的优化和效率,设计人员需要对不同表的存储数据采用不同的设计方法。在设计中,还应该使用最少的表和最弱的关系来实现海量数据的存储。
5、不断调整数据之间的关系:不断调整和简化数据之间的关系,可以有效减少设计与数据之间的联系,进而为维护数据之间的平衡和提高数据读取效率提供保障。
6、合理使用索引:数据库索引通常分为聚集索引和非聚集索引,这样可以提高数据搜索的效率。
参考资料来源:百度百科-数据库设计
设计千表的数据库模型设计模块模型的方法:
细化和确定模块的功能(包括异常处理需求)、识别关键问题和实现策略与流程、以及主要静态类和线程结构设计等。
详细设计完成并通过评审之后,模块负责人根据详细设计指导,进行编码并实现模块。
模块设计方法是从计算机的模块程序设计法发展而来用于 *** 作系统的方法,即对 *** 作系统的各个模块分别进行设计的方法。要使 *** 作系统具有较高的可靠性、可维护性和高效率,关键是结构设计。早期的传统模块设计法出自于早期的管理程序。
总结如下:
一个庞大的 *** 作系统划分成许多模块之后,各模块之间必然产生联系,组成复杂的网状结构,其复杂程度将随着模块的增加而成倍增长。
主要问题是如何划分模块,如何处理模块之间的接口关系。近来提出的类程和管理模块是划分模块的好方法。它可使模块之间的接口简化,而且还保持了模块具有的效率高、系统开销小的特点。
前言:逻辑数据模型LDM是一种图形化的展现方式,一般采用面向对象的设计方法,有效组织来源多样的各种业务数据,使用统一的逻辑语言描述业务。借助相对抽象、逻辑统一且结构稳健的结构,实现数据仓库系统所要求的数据存储目标,支持大量的分析应用,是实现业务智能的重要基础,同时也是数据管理分析的工具和交流的有效手段。 需要强调的是,数据仓库逻辑数据模型特指数据仓库系统的核心基础模型,在搭建企业级数据仓库系统时,需要充分了解和分析种前台业务处理系统和应用,在此基础上进行有效的重组和整合,为各种分析应用(如客户关系管理、风险管理等)提供单一的、整合的数据基础,保证全行不同业务部门从不同的视角都可以使用统一的数据实现各自的分析需求。——担负这种数据重组和整合任务的数据模型称为数据仓库系统的“基础逻辑数据模型”。 基础逻辑数据模型建设好之后,银行可根据不同的分析应用需要(如客户关系管理、绩效考核、风险管理等),根据应用产品和功能设计不同的分析应用模型,包含具体的、特定的分析逻辑,往往这种模型中都含有较多加工处理的成分。——这种为实现特定用途而设计的数据模型称为数据仓库系统的“应用数据模型”。 因此,不夸张地说核心基础数据模型建设的成败性会影响到整个数据仓库系统的建设乃至后续各种分析应用,应引起银行科技建设和业务分析人员的高度重视。 本文尝试从银行建设基础逻辑数据模型的角度出发,分析、探讨建设过程中应该考虑的主要因素、建设的方法以及注意的问题。 一、整体规划、明确目标、合理定位 银行建设数据仓库系统时应充分明确建设目标,核心的逻辑数据模型是对银行业务的高度抽象、能够提供对关键业务数据的组织和整理,建立一套完整、统一、规范的标准,以便进行各类分析。一个好的核心基础数据数据模型应该满足以下条件: 概念上:具有高度抽象的、中性的、可共享的的概念,可有效、全面、完整地适应与涵盖银行现有的业务范畴以及数据范围;不针对某个特别的应用而设计; 结构上:应是稳定的、灵活的、可扩展的;能以满足第三范式的方法构建模型,存放最详尽的数据,保证足够的灵活性,适应复杂的实际业务情况,在业务发生变化或者新增数据源时易于扩展;核心结构在很长时间内应保持稳定性,便于回答不断产生、不断变化且无法预先定义的业务问题; 表现形式:应是规范的,易懂的;包括各类命名规范,业务规则定义,度量方式等。使用统一的业务语言进行模型设计,易于业务人员的理解和使用;也有利于IT部门和业务部门人员的沟通; 数据仓库系统的建设目的和方法不同于传统业务系统,其开发建设方式也有所不同,它的建设绝不是一蹴而就的事情,不能期望一朝一夕就可以全部完成,比较成熟的建设步骤应该是分阶段实施,逐步进行完善和增强因此作为项目起步的LDM建设对于规范和推动整个数据仓库系统的建设都将起到一个很好的促进。整个建设过程最关键的阶段就是项目的最初阶段,应将工作重心放在搭建模型框架、建立模型设计思想和培养模型设计人员三个方面。 明确了建设目标,具体实施应该如何开展呢 二、审慎选择、量体裁衣、度身定做 银行在明确建设目标之后,如何选择具体的实施策略、制定设计的阶段和步骤呢常见的主要有以下两种: 第一种:自主研发:银行根据以往的业务经验提炼本行业务的关键主题;再设计出本行的概念模型;然后通过具体的业务反复论证,同时考虑将来的分析需求进行基础逻辑数据模型的详细设计。 这种方法可以快速启动,完全依托本行的业务元素和规则,使用行内技术人员和业务人员比较熟悉的语言进行模型的设计,具有很好的适用性。但是整个建设周期比较长,同时往往由于经验不足等原因给项目带来一些不可控的风险,由于参与人员经验的不足,不能够站在全行的高度,从管理分析的角度去理解所有的业务以及相应的数据,造成一些局限性。 第二种:依托业成熟产品进行客户化:银行研究不同的业界模型产品,从中选择一个作为蓝本,结合本行的业务数据和应用系统进行具体的定制化。 这种方法的建设周期短、风险小,同时也能够很好地借鉴成熟的逻辑数据模型中蕴涵的经营管理理念。但是银行需要研究和比较多个业界流行的逻辑数据模型,熟悉各自的设计思想和理念,并从中挑选一个适合本行的模型产品进行客户化。 从国际、国内商业银行建设数据仓库系统的经验和案例来看,为了保证项目的成功实施,避免和控制项目风险,他们几乎都选择了第二种方法:客户化。那银行在面对众多逻辑数据模型产品进行选择的过程中主要应该都关注一些什么样的内容呢 产品层面: 覆盖范围:模型产品应能够适合、涵盖银行的所有业务范围,可以在单一模型中能支撑金零售银行、公司业务、保险、xyk、经纪、证券和电子商务等,满足未来混业经营的需要; 对业务发展的适应性:模型产品应有高度的概括和归纳,既满足范式化要求,又具有足够的灵活性,在扩展业务、新增品种或改变规则时,模型通过简单的调整和扩展即可适应; 对应用的支撑和扩充:模型产品不应偏向某个部门或某些专业的特定应用,要能够支持绩效管理、客户关系管理、资产负债管理、资金财务管理、风险管理等应用,并与国际金融业完全接轨,从数据接口层面支撑业界监管需要; 模型的开放性:模型产品应有清晰、严谨的模型架构,满足模块化和结构化的设计要求,真正实现数据一次导入,多次使用; 转化成物理数据模型的方便性:LDM设计完成,进行一些物理化的定义之后就可以直接利用建模工具平滑地完成物理模型设计。 服务层面: 客户化方法与能力:逻辑数据模型必须有经过实际项目验证过的客户化方法论做指导,明确严格的工作步骤、流程、任务分配,并提供必要模板; 业绩经验与表现:应具有国际化大型(特别是国内)商业银行相关项目和领域的成功实施案例;在行业内具有良好的信誉和业绩; 全球支持能力:全球专职研发团队——各国家地区的具体实施团队;高级建模顾问——高级金融行业顾问; 不难看出,上述这些考核的方面都是和将来的实施密切相关的。的确,一个成熟的优秀的模型产品,如果没有得到成功的实施,最终也不能为银行创造效益。下一部分主要讨论在实施过程中的关键因素。 三、关键成功因素 (1)参与人员的业务经验 LDM的设计和实施不是一个纯粹的技术问题,需要参与人员具有较高的银行业务修养和素质,设计人员应能够凭借丰富的业务经验和知识,将散落在各种不同业务系统以及日常经营管理中的各种数据元素进行高度的抽象和概况,形成本行的几个主题域(如当事人、协议、产品、事件等),用以清晰地表达业务逻辑和关系。同时,他们也必须时刻以目标(建设数据仓库系统)为导向,有选择地从前台业务系统中抽取相关的数据信息进行映射。 (2)设计团队的沟通机制 逻辑数据模型的设计过程本身就是一个不断发现问题、解决问题的过程,不可能某一个人就能够掌握庞杂银行业务中的点点滴滴,因此需要整个项目团队的密切配合。每个设计人员都必应具有良好的学习沟通能力,能够对建模工作达成共识,根据所定义的结构,将具体的业务数据映射到模型中,同时进行一些修改和校正。 (3)银行内部IT管理的水平 LDM设计过程中很大量的工作都是对现有业务系统的分析,包括对系统架构和功能的梳理、业务规则和关键业务元素的提炼、系统之间的逻辑关系等,并结合样本数据初步了解数据质量。如果没有一套有效的管理模式和有力的技术支持,如果没有现有业务系统的完备资料;如果没有快速问题反馈和解决机制,LDM的建设只能是空谈,因此这给银行内部IT管理水平提出了很高的要求。 (4)模型的管理和维护 在LDM整个建设周期内还应高度重视维护和管理工作,必需有严格的建模技术规范做指导和约束,包括命名、描述、版本控制等。随着时间的推移和项目建设阶段和目标的变化,为了使建成的基础数据模型具有持续的生命力,应在建设的所有阶段把涉及的建模规范内容文档化并强制执行;在人员发生变动时规定新参与人员应严格遵守这些规范,不能另行编制,保证前后的一致性。 总结: 尽管LDM仅仅是一个逻辑的概念,数据仓库系统需要在逻辑数据模型的指导下,进行真正的物理实施,将把分散在不同平台、以不同方式组织的各种业务数据以及部分外部信息经过清洗和转化,在保证数据一致性、准确性和实效性的前提下,开发各种应用,奠定实现银行商业智能的重要基础。 但是可以看到,通过数据仓库系统逻辑数据模型的设计,将有利于对银行现有业务过程的全局认识和系统把握,同时还能够从整体上对全行使用的 *** 作型业务系统进行回顾,从而提供改造和完善的建议,最终探索出一条符合银行自身业务实际发展要求的分析型应用系统的道路,为数据仓库系统的建设奠定坚实的基础。
一、引言数据库对于企业信息化的重要性是不言而喻的。数据库存储着现代企业最重要的数据,包括生产、经营、管理等各类数据,这些数据作为企业的核心信息,通过各类信息系统,为用户提供及时准确的信息,帮助用户分析,为用户提供决策依据。为提高企业的工作效率,提升企业形象,具有传统模式无法比拟的优势。其中构建合理高效的数据库,是数据库建设关键之一。如何构建合理高效的数据库是企业信息化过程要解决的问题。下面就数据库的构建谈谈自己的一些经验,希望能对大家有所帮助。
二、设计数据库之前
数据库并不是凭空想象出来的,而是根据业务部门的需要设计符合业务需求的数据库。因此在形成数据库之前需要充分了解业务需求。1充分理解业务需求。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。在这期间通过与业务部门交流,了解用户的想法以及工作流程,通过双方多次交流,会形成初步的数据模型,当然这时的数据模型不会是最终的模型,还需要和用户进行交流,并且在以后的信息系统开发过程中还会反复修改。2重视输入输出。在定义数据库表和字段需求(输入)时,首先应了解数据产生源和数据流程,也就是必需要知道每个数据在那儿产生,数据在那儿表现,以什么样的形式表现等等,然后根据用户提供的报表或者设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。3创建数据字典和ER图表。ER图表和数据字典可以让任何了解数据库的人都明确如何从数据库中获得数据。ER图对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名。对SQL表达式的文档化来说这是完全必要的。需要注意的是,在需求分析调研过程中,并不是一帆风顺的,因为业务人员对于业务的理解不同,以及对于信息知识的缺乏,会影响需求分析的质量,为了提高质量,各方要用更多的时间交流与相互理解,业务部门需要精通业务的人员自始至终全力配合,而开发人员则尽量使用用户理解的业务术语交流,这样会避免出现理解不同而产生的歧义。三、设计合理的表结构
通常合理的表结构会减少数据冗余,提高数据库的性能。设计合理的表结构要遵循以下两点。1标准化和规范化数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但3NF(第三范式)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF标准的数据库的表设计原则是:某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。例如:某个存放单井信息及其有关油井生产日报信息的3NF数据库就有两个表:单井基础信息和油井日报信息。日报信息不包含单井的任何信息,但表内会存放一个键值,该键指向单井基础信息里包含该油井信息的那一行。不过也有例外,有时为了效率的缘故,对表不进行标准化也是必要的。2考虑各种变化在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。使数据库更具扩展性,从而减少将来数据变更所带来的损失。例如,日期类型字段,有时我们会考虑使用字符类型代替日期类型,因为在处理日期字段上容易产生数据错误,所以我们就使用字符类型。这样的例子还很多,在做前期设计时都要考虑的。表结构的设计不是一次就能成功的,在信息系统开发过程中会存在数据读取、录入或统计困难,为了解决这些问题会修改表结构,或增加一些字段,或修改一些字段的属性。这个过程不断重复,因此不要想一次能成功。建议使用专门设计工具来做这些工作,笔者经常使用:SYBASE,当然还有其它的工具:ORACLEDesigner2000,ROSE等工具。这样会使你的工作事半功倍。四、选择合理的索引
索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。1逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。2大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。3不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。如MEMO(备注)、TEXT(文本)等字段。4不要索引常用的小型表不要为小型数据表设置任何键,假如它们经常有插入和删除 *** 作就更别这样作了。对这些插入和删除 *** 作的索引维护可能比扫描表空间消耗更多的时间。如代码表,或系统参数表。五、保证数据完整性
数据的完整性非常重要,这关系到数据的准确性,不准确的数据是毫无价值的,因此保证数据的完整性非常重要。1完整性实现机制:实体完整性:主键参照完整性:父表中删除数据:级联删除;受限删除;置空值父表中插入数据:受限插入;递归插入父表中更新数据:级联更新;受限更新;置空值DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制用户定义完整性:NOTNULL;CHECK;触发器以上完整性机制需要熟悉和掌握,它对于数据的完整性非常重要。2用约束而非业务规则强制数据完整性采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于业务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。3强制指示完整性在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。4使用查找控制数据完整性控制数据完整性的最佳方式就是限制用户的录入。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:性别代码、单位代码等。5采用视图视图是一个虚拟表,其内容由SQL语句定义,视图不仅可以简化用户对数据的理解,也可以简化他们的 *** 作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的 *** 作每次指定全部的条件。另外通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,增强数据的安全性。六、结束语
数据库的高效运行不仅需要技术上的支持,也需要硬件平台和网络的支持以及数据库管理员的有效管理,本文只是从技术的角度说明如何提高数据库的效率,但在实际应用过程中其它方面的支持也是不可缺少的,尤其是数据库管理,数据库建设是“三分技术,七分管理,十二分基础数据”,因此对于数据库管理一定要重视,在管理到位的情况下技术才能发挥应有的作用。
以上就是关于数据库概念设计全部的内容,包括:数据库概念设计、怎么做一个完整的数据库、简述数据库设计过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)