数据模型

我们知道,所谓数据是信息的一种表达形式。那些成千上万的数据有没有共性呢?如果有的话,我们应该采用什么样的方式来描述它们的共性呢。由此,我们就引入了数据模型的概念。数据模型是成千上万数据的一种抽象,它不是描述某一个或某一种数据,而是描述所有数据的共性。一般来讲,数据模型包含两方面的内容,它们是:

(1)数据的静态特性,这主要包括数据的基本结构、数据间的联系和数据中的相互约束等特性。

(2)数据的动态特性,这主要包括对数据操作的方法。

在实际的数据库设计中,E-R模型(实体联系模型)是最为常用的一种。E-R模型是于1976年提出的,它为数据库系统应用设计人员提供了三个基本的模型描述成分,它们是实体、联系和属性。E-R模型就是利用这三个成分来描述反映一个客观信息世界内容的数据模型。下面我们就来介绍一下E-R模型中的这三个基本成分:

1.实体

我们知道,数据是用来描述现实世界中各种各样的事物对象的。这些事物对象的特征是可以相互有区别的,否则它们就会被认为是同一种对象。从实体联系模型的角度来看,凡是可以相互区别并可以被我们识别的事物对象均可以被认为是实体。在实体中的各种具体实体,可以称为该实体的实体值。例如学生的集合是一个实体,一个名叫珊珊的女学生是学生实体中的具体实体。

2.联系

任何的事物在现实世界中都不可能孤立地存在,与之相对应实体之间也存在着各种相互的联系。联系有不同类型的实体之间的联系和同一类型的实体联系,例如教师和学生之间的联系就是属于不同类型的实体之间的联系,而学生和学生之间的联系则属于同一类型的实体联系。在E-R模型中,通常将不同实体之间存在的联系归纳成三种不同类型,它们是:

(1)一对一联系

一对一联系的定义为:对于实体A中的某一个具体实体,在实体B中至多有一个具体的实体与之相对应,反过来对于实体B中的某一个具体实体,在实体A中至多有一个具体的实体与之对应。通常我们将这种联系记为1:1的联系。本文来自编程入门网

(2)一对多的联系

一对多联系的定义为:对于实体A中的某一个具体实体,在实体B中可以有若干个具体的实体与之相对应,反过来对于实体B中的某一个具体实体,在实体A中只能有一个具体的实体与之对应。通常我们将这种联系记为1:N的联系。

(3)多对多的联系

多对多的联系定义为:对于实体A中的某一个具体实体,在实体B中可以有若干个具体的实体与之相对应,反过来对于实体B中的某一个具体实体,在实体A中也可以有多个具体的实体与之对应。通常我们将这种联系记为N:N的联系。

3.属性

实体型是对实体集合中所有实体共同描述特征的集合,这些实体所共有的描述特征就称为实体的属性。在一个具体的实体型中,其中的每一个属性都有其取值范围,这一范围称为属性的值域。实体中的某个属性的取值可以用来唯一区分实体型中的具体实体,如学生实体型中的学号属性的取值就可以用来区分每一个学生。所以,这种属性又可称为该实体型的标识码。

 返回“数据库基础知识ABC”目录

时间: 2024-12-30 11:03:01

数据模型的相关文章

HBase数据模型剖析

欢迎访问我的个人网站:http://wuyudong.com/ HBase 进行数据建模的方式和你熟悉的关系型数据库有些不同.关系型数据库围绕表.列和数据类型--数据的形态使用严格的规则.遵守这些严格规则的数据称为结构化 数据.HBase 设计上没有严格形态的数据.数据记录可能包含不一致的列.不确定大小等.这种数据称为半结构化数据(semistructured data). 在逻辑模型里针对结构化或半结构化数据的导向影响了数据系统物理模型的设计.关系型数据库假定表中的记录都是结构化的和高度有规律

数据模型:PHP框架queryphp教程:入门四 ORM数据模型内容添加

数据库数据模型使用方法构造一个数据库表模型$beian=M('beian');自动填充aaa bbb字段 $_POST中也要有这两个字段//$beian->create(array("aaa","bbbb"));$data中填充$beian->create($data,array("aaa","bbbb"));取两个主键值,排序为升序//print_r($beian->get(53,54,'asc'));赋值

关系数据模型

关系模型是由E.F.Codd在1970年引入到数据库领域中来的.在这之后,数据库的专家们又定义了关系数据库的基本概念,引进了规范化的理论,提出了关系代数和关系演算等数据操纵语言,为数据库的发展奠定了坚实的基础.由于关系数据库是建立在较为完善的关系数学理论基础上的,它很好地解决了在数据库逻辑设计中存在的如何构造一个好的数据库逻辑结构问题,并且关系数据库中的规范化理论是数据库设计中的一种理论指南,所以到目前为止,关系数据库系统已成为数据库领域最为活跃的一个分支. 关系数据模型是以集合论中的关系概念为

Contoso学习(四) 创建更加复杂的数据模型

4 – 创建更加复杂的数据模型 在前面的课程中,你已经创建了一个简单的由三个实体组成的数据模型.在这个课程中,你将要增加更多的实体,以及关系,使用数据标注特性来控制模型类的行为. 在完成的时候,实体类表示的完整数据模型如下所示: 4-1 使用特性控制格式.验证以及数据库映射 在这一节中,你将会看到如何使用特性来控制数据模型的格式化.验证以及数据库映射.然后在后继的节中,将要通过为已经创建的类.新创建的类增加特性,来创建完整的 School 数据模型. 4-1-1 DisplayFormat 特性

Cassandra数据库的数据模型与关系数据库模型比较

Cassandra数据模型与关系数据库的模型有很大不同: 关系数据库模型: 数据存储在表中,数据是遵循范式来减少冗余,表之间通过外键连接 Cassandra模型: 在Cassandra中,应用数据是存在keyspace中的,这个相当于关系数据库中的schema.Keyspace中有许多column family,相当于关系数据库中的表.Column Family由一组Column组成,并且相关的Column会组成row key,row key之间没必要相同. 和关系数据库不同的是,关系数据库表常

软件工程之系统建模篇:设计数据模型

数据模型描述系统持久性数据库层的逻辑内容与结构,数据模型用UML的类图 描述.首先简要介绍数据模型的设计方法及关系数据库的几个术语,然后依次介 绍如何将类映射到表.将关联映射到关系数据库及将泛化映射到数据库. 数据库模型从层次上可以分为3类:概念数据模型.逻辑数据模型和物理数据 模型. 概念数据模型是面向用户.面向现实世界的数据模型,与数据库管理系统无关 ,逻辑数据模型反映了DBMS的存储结构,是用户从数据库看到的数据模型,物理 数据模型是特定的DBMS,定义实际中的数据如何存储在持久存储设备上

LINQ中的数据模型验证

: 在讲MVC的token的时候,我简单的说了一下如果用LINQ生成实体的话如何做业务逻辑验证.现在我来详细说一下: [Column(Storage="_userMail", DbType="VarChar(100)")] public string userMail { get { return this._userMail; } set { if ((this._userMail != value)) { this.OnuserMailChanging(valu

数据点: 设计实体数据模型

实体框架是为 ADO.NET 开发的一种激动人心的新技术.开发人员可以借助它使用逻辑模型(而不是物 理模型)查看数据,并提供了更高的灵活性. 实体框架的核心是实体数据模型 (EDM).EDM 定义开发人员通过代码进行交互的实体类型.关系和容 器.实体框架将这些元素映射到关系数据库公开的存储架构上.EDM 通过用于定义概念应用程序模型的 XML 向实体框架公开.概念模型可单独定义,也可与用于定义实际存储架构的 XML 以及用于定义两者之 间映射的 XML 一起定义.尽管可以(有时也有必要)手动编辑

ADO.NET实体数据模型讲解

  ADO.NET是.NET与数据库互操作的核心,而ADO.NET实体数据库则增强了.NET应用程序与数据库的互联能力,通过ADO.NET实体数据模型我们可以很方便的与底层数据库进行强类型的数据互操作.大大的方便了设计人员,从而也提高了数据库操作的安全性. 最近在使用到Silverlight的领域数据服务时遇到一个很特别的问题[在应用程序中的结果和数据库的结果不一样],经过反复的试验,终于找到了问题的根源,那就是ADO.NET实体数据模型依赖于实体键,它的查询会生成实体键的唯一结果集. 现在来看