搜索
您的当前位置:首页正文

数据模型

来源:小奈知识网


数据模型

数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。

数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。

1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。

2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。

3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。

1、概念数据模型(Conceptual Data Model):简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。

2、逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。

3、物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。

在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。在逻辑数据类型中最常用的是层次模型、网状模型、关系模型。

Access数据库处理的是哪类数据模型?

答案是: 关系模型.

数据库中最常见的数据模型有三种,它们是:

>>>1.层次模型

若用图来表示,层次模型是一棵倒立的树。在数据库中,满足以下两个条件的数据模型称为层次模型:

(1)有且仅有一个结点无父结点,这个结点称为根结点;

(2)其他结点有且仅有一个父结点。

在层次模型中,结点层次从根开始定义,根为第一层,根的子结点为第二层,根为其子结点的父结点,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。

>>>2.网状模型

若用图来表示,网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。

(1)允许一个以上的结点无父结点;

(2)一个结点可以有多于一个的父结点。

由于在网状模型中子结点与父结点的联系不是唯一的,所以要为每个联系命名,并指出与该联系有关的父结点和子结点。

>>>3.关系模型

在关系模型中,数据的逻辑结构是一张二维表。在数据库中,满足下列条件的二维表称为关系模型:

1)每一列中的分量是类型相同的数据;

2)列的顺序可以是任意的;

3)行的顺序可以是任意的;

4)表中的分量是不可再分割的最小数据项,即表中不允许有子表;

5)表中的任意两行不能完全相同。

举例:

假定你正在开发一个帐目应用。你的应用将需要跟踪发票号,每张发票都有一些头信息(例如开票日期)、发票号和一行或多行项目。每行项目将包括:订购的产品信息和产品数量。

在关系数据库中建立发票模型的方法之一是创建两张表。一个叫做发票表

( Invoice ),包括每张发票上只显示一次的头信息。另外一张表叫条目表( LineItems ),包含了 Invoice_Parent 、 Line_Item_Product_Code 、 Line_Item_Quantity 字段。第一个字段特别重要,因为它的值是关联本表到发票表的。

注意哪张表都不含有给定发票的所有信息。如果你的应用程序设计完了,例如,打印一张发票,它就必须访问者两张表来获得全部的信息。还要注意表中并不含有任何关于如何打印数据的指令。那些指令存在于数据库外面。

在对象模型中,数据不需要放入行和列,所以发票类定义将看起来像组成发票的所有的数据条目的列表。有包含在头信息中的属性,例如 InvoiceDate , InvoiceNumber 等等,和一个 LineItem 类的实例的集合。 LineItem 类包含了 ProductCode 和 LineItemQuantity 属性。

类定义只是数据格式的蓝图。每张独立的发票是发表类的一个特定的实例,并且包含特定的 LineItem 类的实例。因此,每个发票对象包含了给出的发票的全部信息,并且是只是该发票的信息。

但是类定义也许能够包含方法。例如,你的发票类也许包括一个 Print() 方法来治市如何格式化发票信息来打印出来。持久对象将包含一些方法, Save() 方法指定对象在数据库中是如何存储的。默认 Save() 方法的实现决定于数据库引擎的结构,由数据库厂商提供。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top