数据模型与数据库系统结构 联系客服

发布时间 : 星期四 文章数据模型与数据库系统结构更新完毕开始阅读5fba0e5ef021dd36a32d7375a417866fb94ac0d1

数据模型与数据库系统结构

1. 数据

为了了解世界,研究世界和交流信息,我们需要描述各种事物,用自然语言来描述虽然很直接,但是过于烦琐,不便于形式化,更不利于计算机去表达,为此,我们常常只抽取那些感兴趣的事物特征或属性来描述它。

例如:XX今天下课回到寝室,跟室友说,啊,兄弟们,我单身了!!~~~~准备请大家吃顿饭庆祝一下~~~~ 大家好奇的问

他叫小雪,21岁,是医护系的,护理专业和我是老乡,遵义人。 我们可以从胡锋的描述中获取到以下一条记录,小雪今年21岁遵义人是医护系护理专业的学生,那这种描述事物的符号记录我们称为数据。

数据有一定的格式,例如姓名在中国而言一般是4个汉字的字符(某些少数民族),性别呢是一个汉字字符,等等,那这些我们称为数据的语法,而数据的含义是数据的语义。我们通过解释、推论,归纳,分析和综合等等方法,从数据中获得有意义的内容称为信息。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。

一般来说,数据库中的数据具有以下两个特征 1)数据的静态特征

包括数据的基本结构,数据间的联系和对数据取值范围的约束 学生管理的例子

在学生基本信息中包括:学号,姓名,性别,出生日期,专业,家庭地址。

这些都是学生所具有的基本特征,是学生数据的基本结构。 学生选课信息中包括:学号,课程号,考试成绩等信息,其中选课信息和学生基本信息中的学号是有一定关联的,即选课信息中的学号所能选取的值必须在学生基本信息中的学号取值范围之内,只有这样,学生选课信息中所描述的学生选课情况才是有意义的。

说白一点,也就是这个学生要存在,他才会有选课信息。这个就是数据之间的联系。

最后,我们再来看看什么是数据取值范围的约束

例如,人的性别一项取值只能是男或女,课程的学分一般是大于0的整数值,而我们的考试成绩一般在0~100分范围内等,这些都是对某个列的数据取值范围进行的限制,目的是在数据库中存储正确的,有意义的数据,这就是对数据取值范围的约束

2)数据的动态特征

数据的动态特征是指对数据可以进行的操作以及操作规则。 对数据库数据的操作主要是有查询数据和更改数据,更改数据一般又包括对数据的插入,删除和修改

通常我们将数据的静态特征和动态特征的描述称为数据模型三要素。 即描述数据时要包括数据的基本结构,数据的约束条件和定义在数据

上的操作。

2. 数据模型

对于模型,特别是具体的模型,我们其实并不陌生,比如,一张中国地图,一架飞机模型,一组建筑模型等都是具体的模型。我们可以从模型联想到现实生活中的事物。

模型是对事物、对象等客观系统中感兴趣的内容的模拟和抽象表达。那么数据模型也是一种模型,它是对象现实世界数据特征的抽象。

数据库是企业或部门相关数据的集合,数据库不仅要反映数据本身的内容,而且要反映数据之间的联系,由于计算机不可能直接处理现实世界中的具体事物,因此,必须将现实世界中的具体事物转换成计算机能够处理的对象,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

现有的数据库系统均是基于某种数据模型的,因此,了解数据模型的基本概念是学习数据库的基础。

数据模型一般应满足三个要求,一、数据模型要能够比较真实地模拟现实世界,二、数据模型要容易被人们理解,三、数据模型要能够很方便地在计算机上实现。用一种模型来同时很好地满足这放个方面的要求在目前是比较困难的。

所以在数据库系统中可以针对不能的使用对象和应用目的,采用不同的数据模型来实现。

数据模型实际上是模型化数据和信息的工具,根据模型应用的不同目的,可以将这些模型分为两大类,它们分别属于两个不同的层次。 第一类是概念层数据模型,也称概念模型,它是从数据的应用语义视角来抽取模型,并按照用户的观点来对数据和信息进行建模,这类模型主要用在数据库的设计阶段,它与具体的数据库管理系统无关,另一类是组织层数据模型,也称组织模型,它从数据的组织方式来描述数据。

所谓的组织层就是指用什么样的数据结构来组织数据。 数据库发展到现在主要包括以下几种组织方式 1)层次模型(用树状结构)

2)网状模型(用图形结构组织数据) 3)关系模型(用简单二维表结构组织数据)

4)对象-关系模型(用复杂的表格以及其他结构组织数据) 组织层的数据模型主要是从计算机管理数据的角度对数据进行建模,它与所使用的数据库管理系统的种类有关

为了将现实世界中的具体事物抽象,组织为某一具体DBMS支持的数据模型,我们通常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。

即首先将现实世界中的客观对象抽象为某一种描述信息的模型,这种模型并不依赖于具体的计算机系统,而且也不与具体的DBMS相关,而是概念级的模型,也就是前边所说的概念层数据模型,然后再把概