1、概念结构设计阶段:是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,
形成一个独立于具体DBMS的概念模型
2、逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型,对其进行优化
3、数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储
结构和存取方法
GIS数据库设计过程
第一步 需求分析
用户需求分析
GIS数据库开发应该主要了解下面的内容:
1)明白即将开发的GIS所支持的各种功能;
2)了解系统要求的数据内容和行为;
3)了解数据之间的关系和优先次序;这些信息有利于制定数据库的开发实施计划. 4)了解数据库和GIS的整体要求和蓝图.
调查内容的组织的分析
现有机构的组织结构图;
1)现有机构的功能示意图;
2)现有机构的人员组织及功能示意图;
3)现有数据内容及来源清单;
4)现有数据及其功能参照表;
5)现有软硬设备关系图.
6)人员培训计划;
7)GIS的输出产品;
8)实施的进度计划.
第二步 原型概念化设计
第三步 GIS数据库的详细设计
第四步 自动化方案制定
第五步 试点项目实施
第六步 数据库总体实施
分析结果报告
分析结果报告通常要包括以下几个部分:
1)机构运作的逻辑数据流程图;
2)对于整个数据流程的每步过程,数据的输入是如何转换成数据的输出; 3)各主要处理均应当以任务的形式出现;
4)各主要处理的步骤应简单明地注明.
(2)建立GIS系统获得的各种产品
各类GIS产品通常可以包括地图,报表,文件,应用软件包,屏幕查询或是更新的数据库等.
(3)硬件资源表
包括:硬件名称,操作系统,主要功能,所属部门,运行状况等. (4)软件资源表
包括:软件名称,所属单位,操作平台,主要功能,参与的应用,运行状况等.
(5)专业人员清单
主要包括:人员名称,所属部门职务,主要职责范围,技术优势,经验层次,目前工资等. (6)数据功能参照表
I: Input O: Output
(7)数据来源清单
数据功能参照表
(8)部门功能清单
概念化设计
1)数据库的宏观地理定义:主要指对数据库比例尺,地图投影和坐标系统的定义. 2)数据库的地理特征设计;对于各种地理特征有关的属性数据中以什么几何形式表达进行设计.
3)数据库表格及其关系的设计表达:对与地理特征有关的属性数据在数据库中表达方式的设计.
4)数据库总体设计的评定;根据数据库的应用目的和数据内容及使用方式来评价前面三步的
进行统筹的考量. 设计结果,
5)数据库概念模型的起草;将GIS数据库的概念设计起草成正式的文件,作为后面详细设计时参考.
数据库的宏观地理定义
宏观地理定义通常包括以下三个内容:比例尺,地图投影和坐标系统. 1)比例尺
比例尺是指地图和地表上长度的对应关系,它是地图或数据精度和详细程度的标志. 2)地图投影和地理坐标系统
设计数据库时可以有以下几种选择
1)将所有数据放入一个带.
2)将各带分别存放.
3)选择不同的地图投影.
4)选择使用地理坐标系统.
数据库数据模型的确定
1)数据库数据的组织
GIS中数据组织结构的分析主要包括:
?数据分层;
?数据在各层次上表达的形式及其格式;
?数据属性信息的内容.
数据分层的考虑因素
?具有同样的特性,即数据有相同的属性信息.
?比例尺的一致性.
?该层数据会有同样的使用目的和方式.
?不同部门的数据通常应该放入不同的层,便于维护.
?数据库中需要不同级别安全处理的数据.
?数据库中的各类数据的更新可能使用各种不同的数据源,在分层中,使用不同数据源更新的数据也应分层进行存储,以便于更新.
?即使是同一类型的数据,有时其属性特征也不相同,所以也应该分层存储. 2)空间数据库属性表与属性关系设计
_
步骤:?设计相互关联的表格;?对数据表进行规范化;?定义主关键项和外部关键项;?使
用实体关系模型来定义关系;?关系表的再规范化. (1)设计相互关联的表格
?唯一性:在每个表中,每个记录的关键项均必须是唯一的; ?不变性:不含有其他方面的信息;
?纯粹性:不含有其他方面的信息;
?不重复性:不会被重复使用,即某一个值被删除后,不会再被使用; ?可获得性:需要时便可以拿来到此信息.
(2)空间数据的均衡化
将数据库中各关系表进行分解,使其变成更简单,更稳定的一套关系表的过程叫数据库的均
衡化.
(3)使用实体―关系模型来帮助关系表的规范化
?首先要识别实体.
?决定实体间的关系.
?决定各实体的关键项.
?将其汇成连通的图表.
(4)逻辑数据图
(5)概念化设计的书面报告
文件内容应该将所有的数据内容加以详细的概述. 对数据库的数据模型和内容加以描述,即分层和表格关系. 在能够使用图表的情况下尽量使用图表.
很多详细的内容可以放入附录之中,以保持文本主体的清晰. 假若时间允许,可以提供一个原型以更清楚地表示整个设计的概念
数据库课程设计包括知识点
数据库课程设计包括知识点:(每个知识点10分)
1.数据库操作:建立数据库,删除数据库,备份数据库,还原数据库。
2.表的操作:建表,修改表,删除表,添加约束(每种约束都要添加)
3.数据操作:插入数据,修改数据和删除数据(有条件无条件各一个)
4.数据查询(1):简单查询,条件查询(每种条件一个查询)
5.数据查询(2):高级查询(分组,排序,聚合函数的使用,每种至少一个)
多表查询(自然连接,外连接各一个),嵌套查询(in,>any,>all各一个)
6.索引操作,建立和删除索引
7.视图操作:视图的建立(行列子集一个,非行列子集一个),查询和删除
8.存储过程操作:存储过程的建立和调用(有参无参各一个)和删除
9.触发器的操作:建立(insert,update,delete事件各一个)和删除
10.权限管理:用户的添加和修改(用户名和密码都要修改),权限的授予和撤销
数据库设计
数据库设计
习题
1.试述数据库设计过程。
2.试述数据库设计过程各个阶段上的设计描述。
3.试述数据库设计过程中结构设计部分形成的数据库模式。
4.试述数据库设计的特点。
5.需求分析阶段的设计目标是什么?调查的内容是什么?
6.数据字典的内容和作用是什么?
7.什么是数据库的概念结构?试述其特点和设计策略。
8.什么叫数据抽象?试举例说明。
9.试述数据库概念结构设计的重要性和设计步骤。
10.什么是E-R 图?构成E-R 图的基本要素是什么?
11.为什么要视图集成?视图集成的方法是什么?
12.什么是数据库的逻辑结构设计?试述其设计步骤。
13.试述把E-R 图转换为DBTG 模型和关系模型的转换规则。
*14.你能给出有E-R 图转换为IMS 模型的转换规则吗?
15.试把第一章习题12和习题13中的E-R 图转换为DBTG 模型、IMS 模型、关系模型。
16.试述逻辑设计阶段中运用LRA 方法优化模型的方法和步骤。
17.使用规范化理论中有关泛式的概念分析习题15中你设计的模型中各个关系模型的码,他们术语第几模式?会产生什么更新异常?
18.规范化理论对数据库设计有什么指导意义?
19.试述数据库物理设计的内容和步骤。
20.你能给出关系数据库物理设计的主要内容吗?例如Oracle 数据库物理设计的内容。
21.数据输入在实施阶段的重要性是什么?如何保证输入数据的正确性?
22.什么是数据库的再组织和再构造?为什么要进行数据库的再组织和再构造?
23.现有一局部应用,包括两个实体:”出版社”和”作者”,这两个实体是多对多的联系,请读者自己设计恰当的属性,画出E-R 图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。
24.请设计一个图书管数据库,此数据库中对每个借阅者保存读者记录,包括:读者号、姓名、地址、性别、年龄、单位。对每本书存有:书号、书名、作者、出版社。对每本被借出的书存有读者号、借出日期和应还日期。要求:给促E-R 图,再将其转换为关系模型。 参考答案
1.答:这里只概要列出数据库设计过程的六个阶段:
(1)需求分析;
(2)概念结构设计;
(3)逻辑结构设计;
(4)数据库物理设计;
(5)数据库实施;
(6)数据库运行和维护。
这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。
设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
2.答:各阶段的设计要点如下:
(1)需求分析:准确了解与分析用户需求(包括数据与处理)。
(2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。
(3)逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。
(4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
(5)数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑
数据入库,并进行试运行。
(6)数据库运行和维护:数据库系统运行过程中对其进行评价、调整与修改。
3.答:数据库结构设计的不同阶段形成数据库的名级模式,即:
(1)在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是E-R 图;
(2)在逻辑设计阶段将E-R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图(View ),形成数据的外模式。
(3)在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据内模式。
4.答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。 其主要特点有:
(1)数据库建设是硬件、软件和干件(技术与管理的界面)的结合。
(2)从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要指把结构(数据)设计和行为(处理)设计密切结合起来。
5.答:需求分析阶段的设计目标是通过详细调查实现世界处理的对象(组织、部门、企业等,)充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
调查的内容是”数据”和”处理”,即获得用户对数据库的如下要求:
(1)信息要求,指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;
(2)处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;
(3)安全性与完整性要求。
6。答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:
(1)数据项;
(2)数据结构;
(3)数据流;
(4)数据存储;
(5)处理过程五个部分;
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。
数据字典通过对数据和数据结构的定义来描述数据流和数据存储的逻辑内容。
数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。
7.答:概念结构是信息世界的结构,即概念模型,其主要特点是:
(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键;
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、网状、层次等各种数据模型转换。
概念结构的设计策略通常有四种:
(1)自顶向下,即首先定义全局概念结构的框架,然后逐步细化;
(2)自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,行到全局概念结构;
(3)逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;
(4)混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
8.答:数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
”分类”这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的”is memberof”
语义。在E-R 模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,表示李英是教师类型中的一员,则教师是实体型,李英是教师实体型中的一个实体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从事某个方向的科研。
9.答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一DBMS 实现这些需求。
设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构(如《概论》图6。9所示,P216)。
10.答:E-R 图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R 图的基本要素是实体型、属性和联系,其表示方法为:
(1)实体型,用矩形表示,矩形框内写明实体名;
(2)属性,用椭圆形表示,并用无向边将其与相应的实体连接起来;
(3)联系,用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或m :n )。
11.答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机地融合起来,综合成一个系统的总视图。这样,设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不在面向某个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用户、多个应用共享作用。
一般来说,视图集成可以有两种方式:
(1)多个分E-R 图一次集成,如《概论》图6。25(a )所示(P224);
(2)逐步集成,用累加的方式一次集成两个分E-R 图,如《概论》图6。25(b )所示。 无论采用哪种方式,每次集成局部E-R 图时都需要分两步走:
(1)合并,解决各分E-R 图之间的冲突,将各分E-R 图合并起来生成初步E-R 图;
(2)修改和重构,消除不必要的冗余,生成基本E-R 图。
12.答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R 图转换为与选用的DBMS 产品所支持的数据模型相符合的逻辑结构。
设计步骤《概论》图6。31):
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状。层次模型向特定DBMS 支持下的数据模型转换;
(3)对数据模型进行优化。
13.答:E-R 图向DBTG 模型的转换规则:
(1)每个实体型转换为记录型,实体的属性转换为记录的数据项;
(2)实体型之间1:n (n ≥ 1)的联系转换为一个系,没有任何联系的实体型转换为奇异系;
(3)K (K≥ 2)个实体型之间多对多的联系,引入一个连结记录,形成K 个实体型和连结记录之间的K 个系。连结记录的属性由诸首记录的码及联系属性甩组成;
(4)同一实体型内的1:n ,n :m 联系,引入连结记录,转换为两个系。
14.答:E-R 图向关系模型的转换规则:
一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。 对于实体间的联系则有以下不同的情况:
(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属的性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:n 联系可以转换为一个独立的模式,也可以与n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换
该联系相连的各实体的码以及联系本身的属性均转换为关系的
属性,而关系的码为n 端实体的码。
(3)一个m :n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体码的组合组成该关系的码,或码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(5)具有相同码的关系模式可以合并。
15.答:E-R 图向IMS 模型的转换规则:
(1)每个实体型转换为记录型,实体的属性转换为记录的数据项;
(2)实体型之间1:n (n ≥ 1)的联系转换记录型之间的有向边;
(3)实体型之间m :n (m >1, n >1)的联系则分解成一对多联系,再根据(2)转换;
(4)K (K≥2)个实体型之间多对多联系,可先转换成多对两个实体型之间的联系,再根据(3)转换。
答:下面是第一章习题12的E-R 图;
各实体的属性为:(简便起见,未用图表示)
系:系编号,系名
班级:班组编号,班级名
教研室:教研室编号,教研室
学生:学号,姓名,学历
课程:课程编号,课程名
教号:职工号,姓名,职称
各联系的属性为:
其他联系无属性。
该E-R 图的DBTG 模型为:
其IMS 模型为:
其关系模型为:
系(系编号,系名,学校名)
班级(班级编号,班级名系编号)
教研室(教研室编号,教研室,系编号)
学生(学号,姓名,学历,班级编号,导师职工号)
课程(课程编号,课程名)
教员(职工号,姓名,职称,教研室编号)
选课(学号,课程编号,成绩)
习题13的E-R 图:
各实体的属性为:(方便起见,未用图表示)
产品:产品号,产品名
零件:零件号,零件名
原材料:原材料号,原材料名,类别
仓库:仓库号,仓库名
各联系的属性为:
产品组成:使用零件量
零件制造:使用原材料量
零件存储:存储量
材料存放:存放量
其DBTG 模型: 对应IMS 模型从略。
对应的关系模型为(其中有下横线的属性是主码属性):
产品(产品号,产品名,仓库号)
零件(零件号,零件名)
原材料(原材料号,原材料名,类别,仓库号,存放量)
仓库(仓库号,仓库名)
产品组成(产品号,零件号,使用零件量)
零件组成(零件号,原材料号,使用原材料量)
零件储存(零件号,仓库号,存储量)
16.答:(从略,此题不作要求)
17.答:习题15中设计的两个关系数据库的各个关系模式的码都用下划线注明,这些关系模式都只有一个码,且都是惟一决定的因素,所以都属于BCNF 。不会产生更新异常现象。
18.答:规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础(可参考《概论》上P231~232数
19.答:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的DBMS 。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,就是数据库的物理设计的主要内容。
数据库的物理设计步骤通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间效率和空间效率。
20.答:关系数据库物理设计的内容主要包括:
(1)为关系模式选择存取方法;
(2)设计关系,索引等数据库文件的物理存储结构。
详细参考《概论》6。5。2和6。5。3
有关Oracle 数据库物理设计的内容请参考其技术资料,根据上述内容进行总结。
21.答:数据库是用来对数据进行存储、管理与应用的,因此在实施阶段必须将原有系统中的历史数据输入到数据库。数据量一般都很大,而且数据来源于部门中的各个不同的单位。数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距,组织数据录入就要将各类源数据从各个局部应用中抽取出来,分类转换,最后综合成符合新设计的数据库结构形式,输入数据库因此这样的数据转换、组织入库的工作是相当费力费时的工作。特别是原系统是手工数据处理系统时,各类数据分散在各种不同的原始表格、凭证、单据之中,数据输入量更大。
保证输入数据正确性的方法:为提高数据输入工作的效率和质量,应该针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务。在源数据入库之前采用多种方法对它们进行检验,以防止不正确的数据入库。
22.答:数据库的再组织是指:按原设计要求重新安排存储位置、回收垃圾、减少指针链等,以提高系统性能。
数据库的重构造则是指部分修改数据库的模式和内模式,即修改原设计的逻辑和物理结构。数据库的再组织是不修改数据库的模式和内模式的。
进行数据库的再组织和重构造的原因:数据库运行一段时间后,由于记录不断增、删、改、会使数据库存的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA 就要对数据进行重组织。DBMS 一般都提供用于数据重组织的实用程序。
数据库应用环境常常发生变化,如增加新的应用或新的实体取消了某些应用,有的实体与实体间的联系也发生了变化等,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式。这就要进行数据库重构造。
23.答:E-R 图为
24.答:E-R 图为:
关系模型为:
读者(读者号,姓名,地址,性别,年龄,单位) 书(书号,书名,作者,出版社)
借书(读者号,书号,借出日期,应还日期)
数据库设计
郑州大学现代远程教育 数据库程序设计 样题 一、填空题:共10题,每题1分,共10分。 1)、备注字段的长度是[1 4字节 ] 。
2)、查询设计器的“筛选”选项卡用来指定查询的 [2条件 ] 。
3)、相对数据存放地点而言,数据库可以分为[3集中式数据库]和 [4分布式数据库]两大类;多用户数据库要解决的关键是[5并发控制 ]的正确执行;智能数据库除了存储[6已知的事实]外,还能存储 [7用于推理的规则]。
4)、VFP 的菜单有两种形式: [8下拉式菜单]和 [9弹出世菜单],所建立的快速菜单属于[10 下拉式菜单]。
二、写出命令序列。共5题,每题4分,共20分。 * * * 样本数据库* * *
有一设备管理数据库,其中有三个表: 表1 设备表 SB(编号 C(5),名称 C(6),启用日期 D,价格 N(9,2),部门 C(2),主要设备 L,备注 M,商标 G )
表2 大修表 DX( 编号 C(5),年月 C(4),费用 N(6,1))
表3 部门代码表 BMDM(代码 C(2),名称 C(6)) 1、显示SB 表第5条记录之后的所有记录。 2、显示SB 表1995年至2002年启用的主要设备。 3、显示SB 表名称字段中有“床”字的设备的编号,名称字段。
4、将设备表的各记录的价格值都加上1000元。 5、 20000元的主要设备。 解答:1 use sb
go 5 list rest 2 use sb
List for 主要设备 and year(启用日
期)>=1995 and year(启用日期)<=2002 3="" use="">=2002>
List field 编号,名称 for “床”$名称
4 relplace all 价格 with 价格+1000 5 select * from sb,bmdm where sb. 部门=bmdm.代码 And sb.主要设备 and bmdm.名称=“一车间”
三、简答题:共4题,每题4分,共16分。 1 数据库管理系统具有哪些功能?
答:数据定义功能,数据操作功能,控制和管理功能。
2简单说明数据库系统的分代。
答:非关系型数据库系统:包括网状模型和层次模型;
关系型数据库系统; 对象关系数据库系统. 3多用户数据库和分布式数据库有哪些异同? 答:相同点:二者都多用于网络应用;
不同点:存储地不同;分布式数据库数据存放于多个地方, 而多用户数据库并非都是分布存储的, 也可以集中存放. 建立目的不同: 多用户数据库要解决的关键问题是保证多个用户”并发存取”的正确执行。分布式数据库将数据分散存储, 是为了大大减少网络上的数据传输量.
四、单项选择题:共 5题,每题2分,共10分。 1) 、DBMS 指的是
A )数据库系统 B ) 数据库管理系统
C) 数据库应用系统 D )关系数据库系统
2)、DBMS 的主要功能不包括 A )数据定义 B ) 数据管理
C) 数据操作 D ) 数据通讯3)、在Visual FoxPro中,可以对字段设置默认值的表 A 。
A) 必须是数据库表 B) 必须是自由表
C) 自由表或数据库表 D) 不能设置字段的默认值
4)、在Visual FoxPro 中,表单(Form )是指
A) 数据库中各个表的清单 B) 一个表中各个记录的清单
C) 数据库查询的列表 D) 窗口界面
5)、在Visual FoxPro中进行参照完整性设置时,要想设置成:当更改父表中的主关键字段或候选关键字段时,自动更改所有相关子表记录中的对应值。应选择 C 。 A) 限制(Restrict)
B) 忽略(Ignore)
C) 级联(Cascade)
D) 级联(Cascade )或限制(Restrict)
数据库设计
数据库设计
数据库设计
(Database Design) 是指根据用户的 需求 , 在某一具体的 数据库管理系统 上, 设计数据库的结构和建立数据库的过程。
数据库设计是建立 数据库及其应用 系统的技术,是信息系统开发和建 议中的核心技术。由于 数据库应用系统 的复杂性,为了支持相关程序运行, 数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一 种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的 数据 对象 以及这些数据对象之间关系的过程。
编辑本段 信息系统
(1)数据库是 信息系统 的核心和基础,把信息系统中大量的数据按一定 的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方 便、及时、准确地从数据库中获得所需的信息。
(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结 合的关键所在。
(3)数据库设计是信息系统开发和建设的重要组成部分。
(4)数据库设计人员应该具备的技术和知识:
数据库的基本知识和数据库设计技术
计算机科学 的基础知识和 程序设计 的方法和技巧
软件工程的原理和方法
应用领域的知识
编辑本段 特点
数据库建设是硬件、 软件 和干件的结合
三分技术,七分管理,十二分基础数据
技术与管理的界面称之为“干件”
数据库设计应该与应用 系统设计 相结合
结构(数据)设计:设计数据库框架或数据库结构
行为(处理)设计:设计 应用程序 、事务处理等
结构和行为分离的设计
传统的软件工程忽视对应用 中数据 语义的分析和抽象,只要有可能就 尽量推迟数据 结构设计 的决策早期的数据库设计致力于数据模型和建模方 法研究,忽视了对行为的设计
编辑本段 步骤
需求分析
调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、 范围、数量以及它们在业务活动中交流的情况,确定用户对 数据库系统 的 使用要求和各种约束条件等,形成用户需求规约。
概念设计
对用户要求描述的现实世界 (可能是一个工厂、一个商场或者一个学校 等 ) ,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这 个 概念模型 应反映现实世界各部门的 信息结构 、信息流动情况、信息间的 互相制约关系以及各部门对 信息储存 、查询和加工的要求等。所建立的模 型应避开数据库在 计算机 上的具体实现细节,用一种抽象的形式表示出来。 以扩充的实体—(E-R 模型 )联系模型方法为例,第一步先明确现实世界各 部门所含的各种实体及其 属性 、实体间的联系以及对信息的制约条件等, 从而给出各部门内所用信息的局部描述 (在数据库中称为用户的局部视 图 ) 。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即 用户要描述的现实世界的概念数据模型。
逻辑设计
主要工作是将现实世界的概念 数据模型 设计成数据库的一种逻辑 模 式 ,即适应于某种特定数据库管理系统所支持的逻辑 数据模式 。与此同时, 可能还需为各种 数据处理 应用领域产生相应的逻辑子模式。这一步设计的 结果就是所谓“逻辑数据库”。
oa 工作流数据库设计
物理设计
根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于 具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物 理存储结构 (包括文件类型、 索引 结构和数据的存放次序与位逻辑等 ) 、存 取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
验证设计
在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典 型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据 库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可 能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑 到今后修改设计的可能性和方便性。
运行与维护设计
在数据库系统正式投入运行的过程中,必须不断地对其进行
数据库设计步骤
评调整与修改。
至今,数据库设计的很多工作仍需要人工来做,除了 关系型数据库 已 有一套较完整的数据 范式理论 可用来部分地指导数据库设计之外,尚缺乏 一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或 交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据 库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设 计提供自动或半自动的设计工具和集成化的 开发环境 ,使数据库的设计更 加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现 软件工程 的先进思想和方法。
编辑本段 设计方法
手工试凑法
设计质量与设计人员的经验和水平有直接关系
缺乏 科学理论 和工程方法的支持,工程的质量难以保证
数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护 代价
规范设计法
基本思想:过程迭代和逐步求精
典型方法:
(1)新奥尔良 (New Orleans)方法:将数据库设计分为四个阶段 S.B.Yao 方法:将数据库设计分为五个步骤
I.R.Palmer 方法:把数据库设计当成一步接一步的过程
(2)计算机辅助设计
ORACLE Designer 2000
SYBASE PowerDesigner
编辑本段 各级模式的形成过程
1. 需求分析阶段:综合各个用户的应用需求
2. 概念设计阶段:形成独立于机器特点,独立于各个 DBMS 产品的 概念 模式 (E-R图 )
3. 逻辑设计阶段:首先将 E-R 图转换成具体的数据库产品支持的数据 模型,如 关系模型 ,形成数据库逻辑模式;然后根据用户处理的要求、安 全性的考虑,在基本表的基础上再建立必要的视图 (View),形成数据的 外 模式
4. 物理设计阶段:根据 DBMS 特点和处理的需要,进行物理存储安排, 建立索引,形成数据库 内模式 。
编辑本段 数据库设计技巧
设计数据库之前
(需求分析阶段)
1) 理解 客户 需求,询问用户如何看待未来需求变化。让客户解释其需 求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目 的之中。
2) 了解企业业务可以在以后的开发阶段节约大量的时间。
3) 重视输入输出。
在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经 设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要 的表和字段。
举例:假如客户需要一个报表按照邮政编码排序、分段和求和,你要 保证其中包括了单独的邮政编码字段而不要把邮政编码糅进地址字段里。 4) 创建数据字典和 ER 图表
ER 图表和数据字典可以让任何了解数据库的人都明确如何从数据库 中获得数据。 ER 图对表明表之间关系很有用,而数据字典则说明了每个字 段的用途以及任何可能存在的别名。对 SQL 表达式 的文档化来说这是完全 必要的。
5) 定义标准的 对象 命名规范
数据库各种对象的命名必须规范。
表和字段的设计
(数据库逻辑设计 )
表设计原则
1) 标准化和规范化
数据的标准化有助于消除数据库中的 数据冗余 。标准化有好几种形式, 但 Third Normal Form(3NF )通常被认为在性能、扩展性和 数据完整性 方 面达到了最好平衡。简单来说,遵守 3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它 们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具 有以下特点:有一组表专门存放通过键连接起来的关联数据。
举例:某个存放客户及其有关定单的 3NF 数据库就可能有两个表: Customer 和 Order 。 Order 表不包含定单关联客户的任何信息,但表内会 存放一个键值,该键指向 Customer 表里包含该 客户信息 的那一行。
事实上,为了 效率 的缘故,对表不进行标准化有时也是必要的。
2) 数据驱动
采用数据驱动而非 硬编码 的方式,许多策略变更和维护都会方便得多, 大大增强系统的灵活性和扩展性。
举例,假如用户界面要访问外部数据源(文件、 XML 文档、其他数据 库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有, 如果用户界面执行 工作流 之类的任务(发送邮件、打印信笺、修改记录状 态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也 可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把 相当大的责任推给用户,由用户来维护自己的工作流过程。
3) 考虑各种变化
在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。
举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓 等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓 氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条 目的变化。
4) 每个表中都应该添加的 3 个有用的字段
dRecordCreationDate ,在 VB 下默认是 Now(),而在 SQL Server ? 下 默认为 GETDATE()
sRecordCreator ,在 SQL Server 下默认为 NOT NULL DEFAULT ? USER nRecordVersion ,记录的版本标记;有助于准确说明记录中出现 null 数据或者丢失数据的原因 ?
5) 对地址和电话采用多个字段
描述街道地址就短短一行记录是不够的。 Address_Line1、
Address_Line2 和 Address_Line3 可以提供更大的灵活性。还有,电话号 码和邮件地址最好拥有自己的数据表,其间具有自身的类型和标记类别。 6) 使用角色实体定义属于某类别的列
在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角 色实体来创建特定的时间关联关系,从而可以实现自我文档化。
举例:用 PERSON 实体和 PERSON_TYPE 实体来描述人员。比方说,当 John Smith, Engineer 提升为 John Smith, Director 乃至最后爬到 John Smith, CIO 的高位,而所有你要做的不过是改变两个表 PERSON 和 PERSON_TYPE 之间关系的键值,同时增加一个日期 /时间字段来知道变化是 何时发生的。这样,你的 PERSON_TYPE 表就包含了所有 PERSON 的可能类 型,比如 Associate 、 Engineer 、 Director 、 CIO 或者 CEO 等。还有个替 代办法就是改变 PERSON 记录来反映新头衔的变化, 不过这样一来在时间上 无法跟踪个人所处位置的具体时间。
7) 选择数字类型和文本类型尽量充足
在 SQL 中使用 smallint 和 tinyint 类型要特别小心。比如,假如想 看看月销售总额, 总额字段类型是 smallint , 那么, 如果总额超过了 $32,767 就不能进行计算操作了。
而 ID 类型的文本字段,比如客户 ID 或定单号等等都应该设置得比一 般想象更大。假设客户 ID 为 10 位数长。那你应该把数据库表字段的长度 设为 12 或者 13 个字符长。但这额外占据的空间却无需将来重构整个数据 库就可以实现数据库规模的增长了。
8) 增加删除标记字段
在表中包含一个“删除标记”字段,这样就可以把行标记为删除。在 关系数据库 里不要单独删除某一行;最好采用清除数据 程序 而且要仔细维 护索引整体性。
选择键和索引
(数据库逻辑设计)
键选择原则:
1) 键设计 4 原则为
关联字段创建外键。
所有的键都必须唯一。
避免使用复合键。
外键总是关联唯一的键字段。
2) 使用系统生成的主键
设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据 库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据 中每一行的访问。采用系统生成键作为主键还有一个优点:当拥有一致的 键结构时, (不让主键具有可更新性 )
在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑 的字段。通常的情况下不要选择用户可编辑的字段作为键。
4) 可选键有时可做主键
把可选键进一步用做主键,可以拥有建立强大索引的能力。
索引使用原则:
索引是从数据库中获取数据的最高效方式之一。 95%的数据库性能问题 都可以采用索引技术得到解决。
1) 逻辑主键使用唯一的成组索引,对系统键(作为 存储过程 )采用唯 一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多 大,表如何进行访问,还有这些访问是否主要用作读写。
2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外 键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条 记录就用得上。
3) 不要索引 memo/note 字段,不要索引大型字段(有很多字符),这 样作会让索引占用太多的存储空间。
4) 不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更 别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更 多的时间。
数据完整性设计
(数据库逻辑设计)
1) 完整性实现机制:
实体完整性 :主键
参照完整性:
父表中删除数据:级联删除;受限删除;置空值
父表中插入数据:受限插入;递归插入
父表中更新数据:级联更新 ;受限更新;置空值
DBMS 对参照完整性可以有两种方法实现:外键实现机制(约束规则) 和 触发器 实现机制
用户定义完整性:
NOT NULL; CHECK ;触发器
2) 用约束而非商务规则强制数据完整性
采用 数据库系统实现 数据的完整性。这不但包括通过标准化实现的完 整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证 数据的正确性。 不要依赖于商务层保证数据完整性; 它不能保证表之间 (外 键)的完整性所以不能强加于其他完整性规则之上。
3) 强制指示完整性
在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性 特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错 误条件。
4) 使用查找控制数据完整性
控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该 提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和 误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状 态代码等。
5) 采用视图
为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序 建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处 理数据库变更时给你提供了更多的自由。
其他设计技巧
1) 避免使用触发器
触发器的功能通常可以用其他方式实现。在 调试程序 时触发器可能成 为干扰。假如你确实需要采用触发器,你最好集中对它文档化。
2) 使用常用英语(或者其他任何语言)而不要使用 编码
在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码, 可以在编码旁附上用户知道的英语。
3) 保存常用信息
让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库 当前版本、最近检查 /修复(对 Access)、关联设计文档的名称、客户等 信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库
没有达到希望的要求而与你联系时,这样做对非客户机 /服务器 环境特别有 用。
4) 包含版本机制
在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一 长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本 信息直接存放到数据库中更为方便。
5) 编制文档
对所有的快捷方式、命名规范、限制和 函数 都要编制文档。
采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪 修改非常有用。
对数据库文档化,或者在数据库自身的内部或者单独建立文档。这样, 当过了一年多时间后再回过头来做第 2 个版本,犯错的机会将大大减少。 6) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的 数据测试 数据字段。 最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商 业要求。测试需要在把新数据库投入实际服务之前完成。
7) 检查设计
在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原 型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你 检查了数据模型并且查看如何取出数据
转载请注明出处范文大全网 » 数据库设计包括一下三个方面