天天看点

第五章数据库设计与开发工具一、学习内容二、练习

一、学习内容

(一)、数据库设计方法

1. 数据库设计
  1. 定义:指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程;
  2. 设计过程步骤:需求分析、概念设计、逻辑设计、物理设计、验证设计、运行和维护设计;
2. 数据库设计方法
  1. 分类:直观设计法、规范设计法、计算机辅助设计法、自动化设计法;
  2. 直观设计法:也叫手工试凑法,是最早使用的设计方法,依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证,常常是数据库运行一段时间后又发现各种问题,这样再重新进行修改,增加了系统的代价;
  3. 几种常用的规范设计方法:基于E-R模型的数据库设计方法、基于3NF的数据库设计方法、基于视图的数据库设计方法;
  4. 基于E-R模型的数据库设计方法基本思想:在需求分析的基础上,用E-R图构造一个反映实现世界实体之间联系的企业模式,然后再将此企业模式转换成基于某一特定的DBMS的概念模式;
  5. 基于3NF的数据库设计方法基本思想:在需求分析的基础上,确定数据库模式中的全部属性和属性间的依赖关系,将它们组织在一个单一的关系模式中,然后再分析模式中不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合;
  6. 基于视图的数据库设计方法基本思想:为每个应用建立自己的视图,然后再把这些视图汇总起来合并成整个数据库的概念模式;
  7. 规范设计法:也是手工设计法,基本思想是过程迭代和逐步求精;
  8. 计算机辅助设计法:指再数据库设计的某些过程中模拟某一规范化设计的方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分;

(二)、数据库设计工具分类

  1. 从工具所支持的设计阶段分类

    (1)需求分析工具:需求调研和需求管理方面的工作;

    (2)概念设计工具:产生一个能够反映用户观点的概念模型;

    (3)逻辑设计工具:转成可支持的数据模型;

    (4)物理设计工具:进行物理存储安排,建立索引,实施具体的代码开发、测试工作。

  2. 从工具的集成程度分类
  3. 根据工具和软硬件的关系分类

(三)、数据库设计工具功能和性能

1. 需求分析阶段的功能和性能
  1. 需求分析阶段分3分步骤:收集需求、需求的分析和整理、评审分析结果;
2. 设计阶段的功能和性能
  1. 设计过程中的困难:

    (1)无法保证不同的模型之间,一个模型的不同子模型之间信息的一致性;

    (2)对于大型系统而言测试更加困难,通常的情况是牵一发而动全身;

    (3)工作进度难于控制;

    (4)文档编制困难;

    (5)版本控制困难;

  2. 功能需求:

    (1)认识和描述客观世界的能力;

    (2)管理和存储数据库设计过程中产生的各类信息;

    (3)根据用户的物理设计,自动生成创建数据库的脚本和测试数据;

    (4)根据用户的需求,将数据库拷设计过程中产生的各类信息自动组织文档,从而最大程度地减少数据库设计人员花在编写文档方面的时间和成本,并保证文档之间信息的一致性;

    (5)为数据库设计的过程提供团队协同工作的帮助;

  3. 性能需求:指做的怎么样;
  4. 工具的表达能力:即保持信息一致性的能力;
  5. 使用可靠程度:是至关重要的;
  6. 对软硬件环境要求:一般不高;
  7. 数据库设计的信息需求:

    (1)用户需求方面的信息;

    (2)有关数据库概念设计、逻辑设计和物理设计的信息;

    (3)数据库实施和维护期间由维护人员收集和整理信息,包括用户的需求,概念模型、逻辑模型和物理模型方面的变更记录;

(四)、典型的数据库设计工具

1. 数据建模工具
  1. 建模标准:IEEE认证的NSUIEEE320.2.1标准和概念数据建模语言标准IDEFIX(Object97)
  2. IDEFIX主要包括两个层次逻辑模型和物理模型;
  3. 逻辑模型面向业务,描述信息的结构和业务规则,不考虑物理实现的问题;
  4. 物理模型从数据库设计和物理实现的角度描述数据结构,并针对特定的DBMS进行优化;
  5. IDEFIX建模步骤

    (1)构造实体关系图;

    (2)创建基于码的模型;

    (3)创建完整属性模型;

    (4)创建转换模型;

    (5)生成数据库管理系统模型;

2. 数据库设计工具 Power Designer
  1. 是最具集成特性的设计工具集;
  2. 用于创建高度优化和功能强调的数据库、数据仓库和数据敏感组件,

(五)、数据库开发工具

1. Oracle数据库
  1. 是大型数据库,应用于商业、政府部门,功能强大,能够处理大批量的数据,在网络方面也用的非常多;
  2. 以关系型和面向对象为中心管理的数据管理软件系统;
  3. 数据安全性和数据完整性性能优越,有跨系统跨平台数据互操作能力;
  4. 是基于“客户端/服务器”模式结构;
2. SQL Server数据库
  1. 是一个关系数据库管理系统;
3. DB2数据库
  1. 是一个关系型数据库管理系统;
  2. 应用于大型应用系统,具有较好的可伸缩性;
  3. 可支持大型机到单用户环境;
  4. 提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模的程序执行能力,具有与平台无关的基本功能和SQL命令‘、;
  5. 有非常完备的查询优化器;
4. Sybase数据库
  1. 有三种版本
5. Informix数据库
  1. 1980成立
  2. 目的:为Unix等开发操作系统提高转移的关系型数据库产品;
6. MySQL数据库
  1. 小型关系型数据库管理系统;
  2. 体积小、速度快、总体拥有成本低,开放源码;
  3. 被SUN公司收购;
7. ACCESS数据库
  1. 基于Windows的桌面关系数据库管理系统;
  2. 建立数据库7种对象:表、查询、窗体、报表、页、宏、模块;
5. Visual FoxPro数据库
  1. 在DOS上运行;

二、练习

(一)、名称解释

1. 数据库设计

答:是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程;

2. 直观设计法

答:也叫手工试凑法,它是最早使用的数据设计方法,这种方法依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证常常是数据库运行一段时间后又发现各种问题,这样再重新修改,增加了系统维护的代价;

3. 计算机辅助设计法

答:指再数据库设计的某些过程种模拟某一规范化设计的方法,并以人的知识或经验为主导,通过人机交互方式实现设计种的某些部分;

(二)、简答

1. 数据库的设计方法由哪几类?

答:直观设计法、规范设计发、计算机辅助设计法、自动化设计法;

2. 请介绍几种规范的数据库设计方法,并作对比。

答:三种

(1)基于E-R模型的数据库设计方法,其基本思想是在需求分析的基础上,用ER图构造一个反映现实世界实体之间联系的企业模式,然后再将此企业模式转化成某一特定的DBMS的概念模式;

(2)基于3NF的数据设计方法,其基本思想是在需求分析的基础上,确定数据库模式种的全部属性和属性间的依赖关系,将他们组织在一个单一的关系模式种,然后再分析模式种不符合3NF约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合;

(3)基于视图的数据库设计方法,其基本思想是为每个应用建立自己的视图,然后再把这些视图汇总起来合并成整个数据库的概念模式;

3. 根据支持的设计阶段,数据设计可分为哪几类?

答:四类

(1)需求分析工具:主要用来帮助数据库设计人员进行需求调研和需求管理方面的工作;

(2)概念设计工具:协助设计人员从用户角度来看待系统的处理要求和数据要求, 并产生一个能反映用户观点概念模型;

(3)逻辑设计工具:帮助数据库开发人员根据DBMS特点和处理的需要,进行物理存储安排,建立索引,实施具体的代码可开发,测试工作;

4. 需求分析阶段包括哪些步骤?

答:三个步骤

(1)收集需求:需求调研;

(2)需求的分析和整理;

(3)评审分析结果,目的是确认需求分析阶段的工作以及保质保量的完成了;

5. 数据库设计过程涉及哪些信息?

答:三类信息

(1)用户需求方面的信息;

(2)有关数据库概念设计、逻辑设计和物理设计的信息;

(3)数据库实施和维护期间由维护人员收集和整理的信息;

(三)、分析题

1.请简单分析数据库设计过程

答:6个步骤;

(1)需求分析;

(2)概念设计;

(3)逻辑设计;

(4)物理设计;

(5)验证设计;

(6)运行与维护设计;

2. 请分析数据库设计过程中所面临的困难。

答:

(1)无法保证不同模型之间,一个模型不同子模型之间信息的一致性;

(2)对于大型系统而言测试更加困难,通常的情况是牵一发而动全身;

(3)工作进度难于控制;

(4)文档编制困难;

(5)版本控制困难;

3. 请分析数据库设计过程中,对数据库设计工具有哪些需求?

答:

(1)认识和描述客观世界的能力;

(2)管理和存储数据库设计过程种产生的各类信息;

(3)根据用户的物理设计,自动生成创建数据库的脚本和测试数据;

(4)根据用户的需要,将数据库设计过程种产生的各类信息,自动组织成文档,从而最大程度的减少数据库设计人员花在编写文档方面的时间和成本,并保证文档之间信息的一致性;

(5)为数据库设计过程提供团队协同工作的帮助;