《数据库技术》课件-第5章数据库开发与设计_第1页
《数据库技术》课件-第5章数据库开发与设计_第2页
《数据库技术》课件-第5章数据库开发与设计_第3页
《数据库技术》课件-第5章数据库开发与设计_第4页
《数据库技术》课件-第5章数据库开发与设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第5章数据库开发与设计学习数据库的结构设计过程学习数据库的逻辑结构设计学习数据库的物理结构设计了解什么是数据库的设计学习数据库的需求分析过程学习目标结合达梦(DM)数据库学习数据库开发5.1数据库设计5.1.1数据库设计概述1什么是数据库设计数据库设计主要是数据库的逻辑设计,即:将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计是需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。在数据库领域内常常把使用数据库的各类系统统称为数据库应用系统5.1数据库设计5.1.1数据库设计概述1数据库设计重要性数据库设计对于应用程序的性能、数据完整性、安全性以及可扩展性至关重要。一个良好的数据库设计能够:提高数据检索和操作的速度。确保数据的一致性和完整性。简化数据库的维护和管理。使数据库能够适应未来的变化和扩展。5.1数据库设计5.1.2需求分析1需求分析概述数据库需求分析是数据库设计过程中的关键步骤,主要涉及对用户在数据方面的需求进行深入分析和确认。这一过程的目的是确保数据库的设计能够满足用户的实际需求,并为后续的开发工作提供明确的指导。5.1数据库设计5.1.2需求分析1需求分析任务需求分析的任务是要准确了解与分析用户需求(包括数据与处理),这个阶段是最困难、最耗费时间的一步。通过详细调查现实世界需要处理的各项任务以及各任务的工作概况进而明确用户的各种功能需求,并且在明确需求的过程中必须充分考虑将来的能的功能扩充和变动。5.1数据库设计5.1.2需求分析1需求分析任务-重点需求分析任务的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求用户需要从数据库中获得的信息内容与性质在数据库中需要存储哪些数据处理要求对处理功能的要求对处理的响应时间要求5.1数据库设计5.1.2需求分析1需求分析-难点用户缺少计算机知识无法一下子准确的表达自己的需求,同时他们提出的需求往往在不断地变化分析人员确实用户的专业知识,对用户的真正需求不太能第一时间理解,甚至误解用户的需求5.1数据库设计5.1.2需求分析1需求分析方法需求分析方法包括调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界,在进行需求分析调查时我们通常采用以下调查方法:跟班作业、通过亲身参加业务工作了解业务活动的情况开调查会、通过与用户座谈来了解业务活动的情况及用户需求5.1数据库设计5.1.2需求分析1需求分析和表达方法分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下:通常称为结构化分析方法(StructuredAnalysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把没一层用数据流图和数字字典描述。自底向上:自底向上是从具体的、低层次的数据需求开始,通过逐步归纳和综合,形成较高层次的需求和设计的过程。5.1数据库设计5.1.2需求分析1数据字典数据字典是各类数据描述的集合数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。5.1数据库设计5.1.2需求分析1数据字典内容数据项:数据项是数据的最小组成单位(字段)数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}数据结构:若干个数据项可以组成一个数据结构(表、视图)数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}数据流:数据流是数据结构在系统内传输的路径数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}5.1数据库设计5.1.2需求分析1数据字典内容数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}处理过程:处理过程通常指的是数据如何在系统中流动、处理和变换的详细描述。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}5.1数据库设计5.1.3概念结构设计1数据库概念结构设计是数据库设计的重要环节旨在通过高层次的抽象来描述数据及其关系,通过把实体-联系方法应用到语义数据库模型中的一种语义模型化技术,用于建立系统信息模型进而以满足特定业务需求。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。5.1数据库设计5.1.3概念结构设计1概念设计目的抽象和表达显示世界中的数据:通过识别和定义实体、属性和关系,构建一个抽象模型,准确反映现实世界中的数据结构和业务规则。确保数据一致性和完整性:通过定义数据实体及其关系,确保数据在逻辑层次上的一致性和完整性。为后续设计奠定基础:概念结构设计是逻辑设计和物理设计的基础,为后续的数据库实现提供指导。5.1数据库设计5.1.3概念结构设计1概念模型特点具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。5.1数据库设计5.1.3概念结构设计1概念模型设计内容-概念模型概念数据模型通常是用实体-联系模型,也称为E-R图,具体由以下几部分组成实体:用矩形表示,矩形框内写明实体名。属性码:用椭圆形表示,并用无向边将其与相应的实体连接起来参考示例:5.1数据库设计5.1.3概念结构设计1概念模型设计内容-概念模型联系本身:联系本身用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。联系属性:联系本身也是一种实体类型也可以有属性,如果一个联系具有属性则这些属性也要用无向边与该联系连接起来。参考示例:5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第零步初始化工程这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。收集源材料是这阶段的重点,通过调查和观察结果,业务流程,原有系统的输入输出,各种报表,收集原始数据,形成了基本数据资料表。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第一步定义实体实体集成员都有一个共同的特征和属性集,可以从收集的源材料——基本数据资料表中直接或间接标识出大部分实体。根据源材料名字表中表示物的术语以及具有“代码”结尾的术语,如客户代码、代理商代码、产品代码等将其名词部分代表的实体标识出来,从而初步找出潜在的实体,形成初步实体表。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第二步定义联系n元联系必须定义为n个二元联系,根据实际的业务需求和规则,使用实体联系矩阵来标识实体间的二元关系,然后根据实际情况确定出连接关系的势、关系名和说明,确定关系类型,是标识关系、非标识关系(强制的或可选的)还是非确定关系、分类关系。如果子实体的每个实例都需要通过和父实体的关系来标识,则为标识关系,否则为非标识关系。非标识关系中,如果每个子实体的实例都与而且只与一个父实体关联,则为强制的,否则为非强制的。如果父实体与子实体代表的是同一现实对象,那么它们为分类关系。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第三步定义码通过引入交叉实体除去上一阶段产生的非确定关系,然后从非交叉实体和独立实体开始标识侯选码属性,以便唯一识别每个实体的实例,再从侯选码中确定主码。为了确定主码和关系的有效性,通过非空规则和非多值规则来保证,即一个实体实例的一个属性不能是空值,也不能在同一个时刻有一个以上的值,找出误认的确定关系,将实体进一步分解。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第四步定义属性从源数据表中抽取说明性的名词开发出属性表,确定属性的所有者。定义非主码属性,检查属性的非空及非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,保证一个非主码属性必须依赖于主码、整个主码、仅仅是主码。以此得到了至少符合关系理论第三范式的改进的IDEF1X模型的全属性视图。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第五步定义其他对象和规则从源数据表中抽取说明性的名词开发出属性表,确定属性的所有者。定义非主码属性,检查属性的非空及非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,保证一个非主码属性必须依赖于主码、整个主码、仅仅是主码。以此得到了至少符合关系理论第三范式的改进的IDEF1X模型的全属性视图。5.1数据库设计5.1.3概念结构设计1概念模型创建步骤-第四步定义属性定义属性的数据类型、长度、精度、非空、缺省值、约束规则等。定义触发器、存储过程、视图、角色、同义词、序列等对象信息。5.1数据库设计5.1.3概念结构设计1总结概念结构设计是数据库设计的基础,通过识别和定义实体、属性和关系,构建抽象数据模型,为后续的逻辑设计和物理设计提供指导。通过需求分析、识别实体和关系、绘制ER图和定义约束条件,可以确保数据库设计的准确性和完整性,满足业务需求。5.1数据库设计5.1.4逻辑结构设计1数据库逻辑结构设计是数据库设计过程中的关键步骤之一。它是在概念结构设计的基础上,将概念模型转化为逻辑数据模型,以适应特定数据库管理系统(DBMS)的要求。这一阶段的设计确保数据结构高效、完整,并符合业务需求。5.1数据库设计5.1.4逻辑结构设计1模型优化标准对于模型优化通常是将关系分解为3NF的标准。表内的每一个值都只能被表达一次表内的每一行都应该被唯一的标识(有唯一键)表内不应该存储依赖于其他键的非键信息优化流程5.1数据库设计5.1.4逻辑结构设计1模型转换-原则实体型转换为一个关系模式实体的属性就是关系的属性,实体的码就是关系的码。m:n联系转换为一个关系模式与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。1:n联系转换为一个独立的关系模式如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。5.1数据库设计5.1.4逻辑结构设计1模型转换-原则1:1联系转换关系模式1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上多元联系转换关系模式与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。同一实体集的实体间联系同一实体集内实体间联系也称为自联系,也能按照上述的1:1、1:n和m:n三种情况分别处理5.1数据库设计5.1.4逻辑结构设计1模型优化

为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,还应该适当地修改、调整数据模型的结构,这就是数据模型的优化,具体的优化方法以下几种确定数据以来消除冗余的联系确定各关系模式分别属于第几范式确定是否要对它们进行合并或分解5.1数据库设计5.1.5物理结构设计1数据库物理结构设计是数据库设计的最后阶段,旨在将逻辑结构设计转化为具体的物理实现。这个阶段涉及数据库在存储设备上的具体布局和存储机制,旨在优化数据库的性能、存储效率和数据安全性。物理结构设计主要为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。5.1数据库设计5.1.5物理结构设计1物理结构设计目的优化性能

通过适当的存储分布和索引设计,提高数据库的读写性能提高存储效率合理安排数据文件和存储空间,确保高效利用存储资源确保数据安全通过备份和恢复机制,防止数据丢失和损坏5.1数据库设计5.1.6数据库实施1数据库的实施和维护主要运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果完成。数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。5.1数据库设计5.1.6数据库实施1数据库实施步骤建立数据库编制与调试应用程序组织数据入库进行程序试运行5.2数据库开发5.2.1嵌入式SQL编程2嵌入式SQL编程是将SQL语句嵌入到宿主编程语言中的技术,通过直接在代码中编写和执行SQL语句,实现对数据库的高效操作。在达梦数据库中嵌入的SQL语句并不能被高级编程语言编译的程序所识别,因此必须对这些SQL语句进行预处理翻译为主语言语句再由编译程序编译成可执行文件。5.2数据库开发5.2.1嵌入式SQL编程2编程实例#include<stdio.h>#include<string.h>EXECSQLBEGINDECLARESECTION;charLOGINNAME[20]="SYSDBA";charUSERPWD[20]="SYSDBA";charAPPSRV[20]="LOCALHOST";EXECSQLENDDECLARESECTION;longSQLCODE;voidmain(){EXECSQLLOGIN:LOGINNAMEPASSWORD:USERPWDSERVER:APPSRV;if(SQLCODE!=0){printf("用户%s登录失败\n\n",LOGINNAME);return;}elseprintf("用户%s登录成功\n\n",LOGINNAME);EXECSQLLOGOUT;printf("用户%s断开成功\n\n",LOGINNAME);}5.2数据库开发5.2.2过程化SQL2过程化SQL是一种扩展SQL的编程技术,使得SQL可以处理复杂的业务逻辑和流程控制。同时过程化SQL增强了SQL的功能,使其能够处理更复杂的业务逻辑和流程控制达梦数据库也支持创建过程化SQL(DMPL/SQL),创建好后无需存储创建完就能直接执行,执行结束后直接释放相应资源。5.2数据库开发5.2.2过程化SQL2示例DECLARENUMINT:=50;BEGINFORRSIN1..100000LOOPINSERTINTOTEST2VALUES(NUM*RAND(),ROUND(RS*RAND()),RS,RS+NUM);ENDLOOP;COMMIT;END;5.2数据库开发5.2.3存储过程和函数2存储过程和函数都是数据库中的编程单元,它们允许开发人员在数据库中定义和执行一系列SQL语句。DM(达梦系统)允许用户使用达梦PL/SQL语言创建过程或函数,这些过程或函数像普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。5.2数据库开发5.2.3存储过程和函数2达梦数据库特点提供更高的生产率便于维护提供更好的性能安全性高5.2数据库开发5.2.4ODBC编程2ODBC是一个独立于数据库系统的API,它定义了一组函数和标准的SQL语法,通过它,应用程序可以与任何支持ODBC的数据库进行交互。达梦数据库也支持ODBC编程,DMODBC3.0遵照MicrosoftODBC3.0规范设计与开发,实现了ODBC应用程序与DM数据库的互连接口。用户可以直接调DMODBC3.0接口函数访问DM,也可以使用可视化编程工具如C++Builder、PowerBuilder等利用DMODBC3.0访问DM数据库。5.2数据库开发5.2.5JDBC编程2JDBC(JavaDatabaseConnectivity)是Java应用程序与数据库的接口规范,旨在让各数据库开发商为Java程序员提供标准的数据库应用程序编程接口(API)。DMJDBC数据库驱动程序是一个能够支持基本SQL功能的通用应用程序编程接口驱动遵照JDBC标准规范设计与开发,支持一般的SQL数据库访问。通过JDBC驱动程序,用户可以在应用程序中实现对DM数据库的连接与访问。5.3数据库设计与开发实践5.3.1实践1:DM8数据库存储过程管理4在模式RESOURCES下创建了一个名为proc_1的存储过程。CREATEORREPLACEPROCEDURERESOURCES.PROC_1(AINOUTINT)ASBINT:=10;BEGINA:=A+B;PRINTA;EXCEPTIONWHENOTHERSTHENNULL;END;//结果5.3数据库设计与开发实践5.3.2实践2:DM8数据库索引创建4为了提高系统的查询效率,DM系统提供了索引。但也需要注意,索引会降低那些影响索引列值的命令的执行效率,如INSERT、UPDATE、DELETE的性能,因为DM不但要维护基表数据还要维护索引数据。假设具有DBA权限的用户在PURCHASING表中,以VENDORID为索引列建立索引S1,以ACCOUNTNO,NAME为索引列建立唯一索引S2。CREATEINDEXS1ONPURCHASING.VENDOR(VENDORID);CREATEUNIQUEINDEXS2ONPURCHASING.VENDOR(ACCOUNTNO,NAME);//结果5.3数据库设计与开发实践5.3.3实践3:DM8数据库视图创建4对VENDOR表创建一个视图,名为VENDOR_EXCELLENT,保存信誉等级为1的供应商,列名有:VENDORID,ACCOUNTNO,NAME,ACTIVEFLAG。CREATEVIEWPURCHASING.VENDOR_EXCELLENTASSELECTVENDORID

温馨提示

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

评论

0/150

提交评论