数据库的逻辑结构设计的图向关系

数据库的逻辑结构设计的图向关系,第1张

模型的转换 E-R图如何转换为关系模型呢?我们先看一个例子。

图21是学生和班级的E-R图,学生与班级构成多对一的联系。根据实际应用,我们可以做出这个简单例子的关系模式:

学生(学号,姓名,班级)

班级(编号,名称)

“学生班级”为外键,参照“班级编号”取值。

这个例子我们是凭经验转换的,那么里面有什么规律呢?在22节,我们将这些经验总结成一些规则,以供转换使用。 (1)一个实体型转换为一个关系模式

一般E-R图中的一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

图22是一个一对一联系的例子。根据规则(2),有三种转换方式。

(i) 联系单独作为一个关系模式

此时联系本身的属性,以及与该联系相连的实体的码均作为关系的属性,可以选择与该联系相连的任一实体的码属性作为该关系的码。结果如下:

职工(工号,姓名)

产品(产品号,产品名)

负责(工号,产品号)

其中“负责”这个关系的码可以是工号,也可以是产品号。

(ii) 与职工端合并

职工(工号,姓名,产品号)

产品(产品号,产品名)

其中“职工产品号”为外码。

(iii) 与产品端合并

职工(工号,姓名)

产品(产品号,产品名,负责人工号)

其中“产品负责人工号”为外码。

(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

(i) 若单独作为一个关系模式

此时该单独的关系模式的属性包括其自身的属性,以及与该联系相连的实体的码。该关系的码为n端实体的主属性。

顾客(顾客号,姓名)

订单(订单号,……)

订货(顾客号,订单号)

(ii) 与n端合并

顾客(顾客号,姓名)

订单(订单号,……,顾客号)

(4)一个m:n联系可以转换为一个独立的关系模式。

该关系的属性包括联系自身的属性,以及与联系相连的实体的属性。各实体的码组成关系码或关系码的一部分。

教师(教师号,姓名)

学生(学号,姓名)

教授(教师号,学号)

(5)一个多元联系可以转换为一个独立的关系模式。

与该多元联系相连的各实体的码,以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

(6)具有相同码的关系模式可以合并。

(7)有些1:n的联系,将属性合并到n端后,该属性也作为主码的一部分

这类问题多出现在聚集类的联系中,且部分实体的码只能在某一个整体中作为码,而在全部整体中不能作为码的情况下才出现(其它情况本人还没碰到,呵呵,欢迎指教)。

比如上篇文章介绍的管理信息系统中订单与订单细节的联系。

关于什么是聚集,23节介绍。 这部分本应在概念设计中介绍的,用到了才想起来,这里补充一下。

关于现实世界的抽象,一般分为三类:

(1) 分类:即对象值与型之间的联系,可以用“is member of”判定。如张英、王平都是学生,他们与“学生”之间构成分类关系。

(2) 聚集:定义某一类型的组成成分,是“is part of”的联系。如学生与学号、姓名等属性的联系。

(3) 概括:定义类型间的一种子集联系,是“is subset of”的联系。如研究生和本科生都是学生,而且都是集合,因此它们之间是概括的联系。

例:猫和动物之间是概括的联系,《Tom and Jerry》中那只名叫Tom的猫与猫之间是分类的联系,Tom的毛色和Tom之间是聚集的联系。

订单细节和订单之间,订单细节肯定不是一个订单,因此不是概括或分类。订单细节是订单的一部分,因此是聚集。 有了关系模型,可以进一步优化,方法为:

(1) 确定数据依赖。

(2) 对数据依赖进行极小化处理,消除冗余联系(参看范式理论)。

(3) 确定范式级别,根据应用环境,对某些模式进行合并或分解。

以上工作理论性比较强,主要目的是设计一个数据冗余尽量少的关系模式。下面这步则是考虑效率问题了:

(4) 对关系模式进行必要的分解。

如果一个关系模式的属性特别多,就应该考虑是否可以对这个关系进行垂直分解。如果有些属性是经常访问的,而有些属性是很少访问的,则应该把它们分解为两个关系模式。

如果一个关系的数据量特别大,就应该考 虑是否可以进行水平分解。如一个论坛中,如果设计时把会员发的主贴和跟贴设计为一个关系,则在帖子量非常大的情况下,这一步就应该考虑把它们分开了。因为 显示的主贴是经常查询的,而跟贴则是在打开某个主贴的情况下才查询。又如手机号管理软件,可以考虑按省份或其它方式进行水平分解。 这部分主要是考虑使用方便性和效率问题,主要借助视图手段实现,包括:

(1) 建立视图,使用更符合用户习惯的别名。

(2)对不同级别的用户定义不同的视图,以保证系统的安全性。

(3)对复杂的查询 *** 作,可以定义视图,简化用户对系统的使用。

物理设计主要工作是选择存取方法(索引),以及确定数据库的存储结构,这里就不说明了。

数据库应用系统(简称数据库系统)是指引进了数据库技术后的整个计算机系统,它是由有关的硬件、软件、数据和人员四个部分组合而形成的,为用户提供信息服务的系统。

硬件环境是数据库系统的物理支持,包括 CPU 、内存、外存及输入/输出设备。由于数据库系统承担着数据管理的任务,它要在 *** 作系统的支持下工作,而且本身包含着数据库管理例行程序、应用程序等,因此要有足够大的内存开销。同时,由于用户的数据、系统软件和应用软件都要保存在外存上,所以对外存容量的要求也很高。

软件系统包括系统软件和应用软件两类。系统软件主要包括数据库管理系统软件、开发应用系统的高级语言及其编译系统、应用系统开发的工具软件等。它们为开发应用系统提供了良好的环境,其中数据库管理系统是连接数据库和用户之间的纽带,是软件系统的核心。应用软件是指在数据库管理系统的基础上由用户根据自己的实际需要自行开发的应用程序。

数据是数据库系统的管理对象,是为用户提供数据的信息源。

数据库系统的人员是指管理、开发和使用数据库系统的全部人员,主要包括数据库管理员、系统分析员、应用程序员和用户。不同的人员涉及不同的数据抽象级别,数据库管理员负责管理和控制数据库系统;系统分析员负责应用系统的需求分析和规范说明,确定系统的软硬件配置、系统的功能及数据库概念设计;应用程序员负责设计应用系统的程序模块,根基数据库的外模式来编写应用程序;最总用户通过应用系统提供的用户接口界面使用数据库。常用的接口方式有菜单驱动、图形显示、表格 *** 作等,这些接口为用户提供了简明直观的数据表示和方便快捷的 *** 作方法。

一个完整的数据库系统中包括 *** 作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和数据库。

① *** 作系统或汉字 *** 作系统: *** 作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文 *** 作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。

② 数据库管理系统和主语言系统:数据库管理系统是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。

③ 应用开发工具软件:应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。

④ 应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理 *** 作

以上就是关于数据库的逻辑结构设计的图向关系全部的内容,包括:数据库的逻辑结构设计的图向关系、数据库应用系统一般由哪些部分构成、一个完整的数据库系统由哪些组成部分组成它们分别起到什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9861736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存