数据库设计(1)

关系是数学上集合论中的一个重要概念。1970年,E.F.Codd发表了题为《大型共享数据库数据的关系模型》的论文,把关系的概念引入了数据库,自此人们开始了数据库关系方法和关系数据理论的研究,在层次和网状数据库系统之后,形成了以关系数据模型为基础的关系数据库系统。 1.2.1 数据模型及其三要素所谓信息,是客观事物在人类头脑中的抽象反映。人们可以从大千世界中获得各种各样的信息,从而了解世界并且相互交流。但是信息的多样化特性使人们在描述和管理这些数据时往往力不从心,因此人们把表示事物的主要特征抽象地用一种形式化的描述表示出来,模型方法就是这种抽象的一种表示。信息领域中采用的模型通常称为数据模型。 数据模型是实现数据抽象的主要工具。它决定了数据库系统的结构、数据定义语言和数据操纵语言、数据库设计方法、数据库管理系统软件的设计与实现。了解关于数据模型的基本概念是学习数据库的基础。 一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和数据的完整性约束三部分组成。 1. 数据结构数据结构是研究存储在数据库中的对象类型的集合,这些对象类型是数据库的组成部分。例如,在学校中要管理学生的基本情况(学号、姓名、出生年月、院系、班级、选课情况等),这些基本情况说明了每一个学生的特性,构成在数据库中存储的框架,即对象类型。学生在选课时,一个学生可以选多门课程,一门课程也可以被多名学生所选,这类对象之间存在着数据关联,这种数据关联也要存储在数据库中。 数据库系统是按数据结构的类型来组织数据的,因此数据库系统通常按照数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的模型分别命名为层次模型、网状模型和关系模型。由于采用的数据结构类型不同,通常把数据库分为层次数据库、网状数据库、关系数据库和面向对象数据库等。 数据结构是对系统静态特性的描述。 2. 数据操作数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作和有关操作的规则。例如插入、删除、修改、检索、更新等操作,数据模型要定义这些操作的确切涵义、操作符号、操作规则以及实现操作的语言等。 数据操作是对系统动态特性的描述。 3. 数据的完整性约束数据的完整性约束条件是完整性规则的集合,用于限定符合数据模型的数据库状态,及状态的变化,以保证数据的正确、有效和相容。数据模型中的数据及其联系都要遵循完整性规则的制约。例如数据库的主键不能允许空值;每一个月的天数最多不能超过31天等。 另外,数据模型应该提供定义完整性约束条件的机制以反映某一应用所涉及的数据必须遵守的特定语义约束条件。例如在学生成绩管理中,本科生的累计成绩不得有三门以上不及格等。 数据模型是数据库技术的关键,它的三方面内容完整地描述了一个数据模型。实际数据库系统中所支持的主要数据模型是层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)。 1.2.2 关系模型关系模型是三种数据模型中最重要的一种,数据库领域中当前的研究工作也都是以关系方法为基础的。本书把重点放在关系数据库上。 1. 关系模型的概念在现实世界中,人们经常用表格形式表示数据信息。但是日常生活中使用的表格往往比较复杂,在关系模型中基本数据结构被限制为二维表格。因此,在关系模型中,数据在用户观点下的逻辑结构就是一张二维表。每一张二维表称为一个关系(Relation)。二维表中存放了两类数据:实体本身的数据和实体间的联系。这里的联系是通过不同的关系中具有相同的属性名来实现的。例如表1.1在学生情况关系中存储了学生的学号、姓名、年龄和班级号等信息,表1.2在班级情况关系中存储了班级的班级号(假设班级号惟一)、专业、院系等信息。这两个关系通过班级号来实现二者之间一对多的联系。 表1.1 学生情况表 学 号 姓 名 年 龄 班 级 号 2005001 张三 23 001 2005002 李四 22 001 2005003 王五 24 012 2005004 赵六 22 024 …… …… …… …… 表1.2 班级情况表 班 级 号 专 业 院 系 001 计算机应用 计算机系 003 车辆工程 车辆工程学院 续表 班 级 号 专 业 院 系 012 电力系统 电气工程学院 024 经济管理 经济管理学院 …… …… …… 2. 关系模型的特点关系模型具有下列特点: l 关系模型的概念单一。无论是实体还是实体之间的联系都用关系来表示。关系之间的联系通过相容的属性来表示,相容的属性即来自同一个取值范围的属性。在关系模型中,用户看到的数据的逻辑结构就是二维表,而在非关系模型中,用户看到的数据结构是由记录及记录之间的联系所构成的网状结构或层次结构。当应用环境很复杂时,关系模型就体现出其简单清晰的特点。 l 关系必须是规范化的关系。所谓规范化是指关系模型中的每一个关系模型都要满足一定的要求(或者称为规范条件)。最基本的一个规范条件是每一个分量都是一个不可分的数据项,即表中不允许还有表。 l 在关系模型中,用户对数据的检索操作就是从原来的表中得到一张新的表。 由于关系模型概念简单、清晰,用户易懂易用,有严格的数学基础,以及在此基础上发展的关系数据理论,简化了程序员的工作和数据库开发建立的工作,因而关系模型自诞生之日起迅速发展成熟起来,成为深受用户欢迎的数据模型。 1.2.3 实体类型的属性关系关系数据库是以关系模型为基础的数据库,它利用关系和关系中的属性来描述现实世界。一个关系就是现实世界中的一个实体,而属性则代表了该实体的某种性质。例如,实体“学生”可以用关系Student (SNO,SNAME,SEX,AGE,MAJOR,…)来描述,其中属性SNO、SNAME、SEX、MAJOR分别代表了学号、姓名、年龄、性别、专业等“学生”固有的性质。事实上,关系除了描述实体之外,还可以描述实体之间的联系。例如,男女之间“婚姻”关系,就可以用这样一个关系来抽象:MARRAY(MALE_NAME,FEMALE_NAME,…)。关系架起了现实数据与数学方法之间的桥梁。 实体的内部存在着一对一、一对多和多对多三种类型的联系,与之相应,关系的各属性之间也存在着3种联系模式。 1. 一对一关系(1:1) 在日常生活中,关系属性之间的一一对应关系是很常见的。比如,对于某个只有一个站台的车站来说,不同的火车车次肯定有不同的进站时间,则在关系“车次(车次号、到站时间、到站站台,……)”中,属性“车次”和“到站时间”便是一对一的关系,记作1:1。又如,网络设备中,网卡的硬件地址和网卡本身也是一一对应的。 在关系数据库设计理论中,以1:1对应的关系是这样定义的:A、B为某个实体类型的两个属性的域(取值范围),如果对于A中的任一具体值,B中至少有一个值与之对应,B中的任一具体值,A中也至多有一值与之对应,则称A、B这两个属性之间为1:1对应的 关系。 2. 一对多关系(1:∞) 在一个实体类型中,如果它的一个实体属性集A中的一个值至多与另一个实体属性B中的一个值有关,而B中的一个值却与A中的多个值有关,则称A、B两属性之间的关系为一对多的关系。例如,如果一个人有多个住处,则这个人的身份证号与他的地址便满足一对多的关系。 3. 多对多关系(∞:∞) 在一个实体类型中,如果它的两个属性值集合中的任一值都与另一属性值集合中的多个值有关,则称两个属性之间是多对多的关系。例如,在大学中一名教师可以教授多门课程,而一门课程也可以由多名教师来教授,则教师的姓名和课程的名称之间便是多对多的关系。

随着计算机技术的广泛应用,目前从小型的单项事务处理到大型的信息系统都采用数据库技术来保持数据的完整性和一致性,因此在应用系统的设计中,数据库搭建得是否合理变得日趋重要。

具体地说,数据库设计是指针对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库设计是数据库在应用领域的主要研究课题。

数据库设计包括静态数据模型(即模式与子模式)的设计,称为数据库的结构设计;以及在模型上的动态操作(即应用程序)设计称为数据设计。现代数据库设计十分强调数据库的结构设计与行为设计的统一。

目前所说的数据库设计大多是在一个现成的DBMS的支持下进行,即以一个通用的DBMS为基础开发数据库应用系统。

目前,数据库设计一般都遵循软件的生命周期理论,分为六个阶段进行,如图1.1所示,即需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库的运行与维护。其中,需求分析和概念结构设计独立于任何的DBMS系统,而逻辑结构设计和物理结构设计则与具体的DBMS有关。

一个完善的数据库设计不可能一蹴而就,在每一设计阶段完成后都要进行设计分析,评价一些重要的设计指标,与用户进行交流,如果不满足要求则进行修改。在设计过程中,这种评价和修改可能要重复若干次,以求得理想的结果。

由于数据库设计是一个复杂而烦琐的过程,近年来,许多软件厂商通过研究,开发了不少计算机辅助数据库开发工具,如CA公司的ERWinSybase公司的PowerDesign。在设计过程中适当利用这些工具可以提高数据设计的效率和质量。

下面将详细讲解数据库设计过程中各阶段的设计内容与设计方法。

1.1  设计库的设计流程

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值