文章目录

  • 概念模型
  • 实体的概念
  • 数据模型


概念模型

实体的概念

实体(Entity)

客观存在并可以相互区分的事物称为实体。从具体的人、物、事件到抽象的状态与概念都可以用实体抽象地表示。如,在学校里,一名学生、一名教师、一门课程等都称为实体。

属性(Attribute)

属性是实体所具有的某些特性,通过属性对实体进行描述。实体是由属性组成的。一个实体本身具有许多属性,能够唯一标识实体的属性称为该实体的主键。例如,学号是学生实体的主键,每个学生都有一个属于自己的学号,通过学号可以唯一确定是哪一位学生,在同一个学校里不允许有两个学生具有相同的学号。

主键(Primary Key)

一个实体往往有多个属性,这些属性之间是有关系的,它们构成该实体的属性集合。如果其中有一个属性或者多个属性构成的子集能够唯一标识整个属性集合,则称该属性子集为属性集合的主键。

实体型(Entity Type)

具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型,如学生(学号,姓名,性别,出生日期,手机号)就是一个实体型。

实体集(Entity Set)

同型实体的集合称为实体集,如全体学生就是一个实体集。

联系(Relationship)

现实世界的事物之间是有联系的。这些联系必然要在信息世界中加以反映,如教师实体与学生实体之间存在着教和学的联系。

一对一的联系(1∶1)

对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1。例如,通常一个班内都只有一个班长,班级和班长之间具有一对一联系。

一对多联系(1∶m)

对于实体集A中的每一个实体,实体集B中有m个实体(m≥2)与之联系;反过来,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1∶m。例如,一个班内有多名同学,一名同学只能属于一个班,即班级与同学之间具有一对多联系。

多对多联系(m∶n)

对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反过来,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m∶n。例如,学生在选课时,一个学生可以选多门课程,一门课程也可以被多个学生选取,则学生和课程之间具有多对多联系。

数据模型

层次模型(Hierarchical Model)

层次数据库用树形结构表示实体之间联系的模型叫层次模型,它的数据结构类似一棵倒置的树,每个节点表示一个记录类型,记录之间的联系是一对多的联系,现实世界中很多事物都是按层次组织起来的。层次模型的优点是结构清晰,表示各节点之间的联系简单;容易表示现实世界的层次结构的事物及其之间的联系。

缺点是不能表示两个以上实体之间的复杂联系和实体之间的多对多联系;严格的层次顺序使数据插入和删除操作变得复杂。

网状模型(Network Model)

网状数据库是用来处理以记录类型为节点的网状数据模型的数据库。网状模型采用网状结构表示实体及其之间的联系。网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。由于网状模型比较复杂,一般实际的网状数据库管理系统对网状都有一些具体的限制。

网状模型的优点是能够表示实体之间的多种复杂联系。缺点是网状模型比较复杂,需要程序员熟悉数据库的逻辑结构;在重新组织数据库时容易失去数据独立性。

关系模型(Relational Model)

关系数据库是目前流行的数据库。它是建立在关系数据库模型基础上的数据库,借助集合代数等概念和方法来处理数据库中的数据,是用户看到的二维表格集合形式的数据库。

面向对象模型(Object Oriented Model)

面向对象模型采用面向对象的方法来设计数据库。面向对象的数据库存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。对象模型也可以用二维表来表示,称为对象表。但对象表是用一个类(对象类型)表定义的。一个对象表用来存储这个类的一组对象。对象表的每一行存储该类的一个对象(对象的一个实例),对象表的列则与对象的各个属性相对应。因此,在面向对象数据库中,表分为关系表和对象表,虽然都是二维表的结构,但却是基于两种不同的数据模型。