数据库系统(Database System, DBS)包含了数据库(Database, DB)、数据库管理系统(Database Management System,DBMS)、硬件、其他软件及用户。
数据模型(Data Model):
首先明确下模型(Model)是个什么东东?
模型可以分为实物模型与抽象模型。例如,汽车模型、飞机模型都是实物模型;数学模型S = PI * R^2是一种抽象模型,它抽象地描述了圆的面积和半径之间的数量关系。
数据模型是一种抽象模型,而且它是数据特征的抽象,而数据是现实世界中事物及其特征的抽象。
数据模型的3种类型:
1. 概念数据模型(Conceptual Data Model),也称为信息模型。
面向用户的模型,与具体DBMS无关。作为数据库设计人员与用户之间进行交流的语言,服务于数据库设计的应用目的。可以经过转换变为DBMS支持的结构(又称逻辑)数据模型,进而在DBMS中得以实现。最常用和最著名的概念数据模型是实体-联系(E-R)模型,简称E-R模型。
2. 结构数据模型(Structure Data Model)又称为逻辑数据模型(Logic Data Model)。
既面向用户又面向系统的数据模型,服务于DBMS的应用实现。是用户从数据库中所看到的数据模型,为具体的DBMS所支持。与具体的DBMS相关联。一般而言,一种DBMS只支持一种数据模型。较为成熟并为人们广泛使用的结构数据模型有层次模型、网状模型、关系模型、面向对象模型和面向对象关系模型等。
3. 物理数据模型(Physical Data Model)。
用于描述数据在物理存储介质上的组织结构,与具体的DBMS有关,也与具体的操作系统和硬件有关。每种结构数据模型在实现时都要有其对应的物理数据模型。
概念数据模型:
E-R模型三要素:实体、属性、联系。
实体:现实世界中能够相互区分的事物。
属性:实体某个特定方面的特征。
联系:实体之间的联系。
实体型:用实体名称和属性名称集合来抽象和刻画同类实体,称为实体型(Entity Type)。
例如,学生(学号、姓名、性别、出生年月、入学时间)就是一个实体型。
实体集:若干个实体型的集合称为一个实体集(Entity Set)。
例如,全体学生就是一个实体集。
联系的分类:
1. 从联系的不同层面上来看:
实体集内部的联系:即实体集内部各个实体之间的联系。
实体集之间的联系:即一个实体集中的实体与另一个实体集中实体的联系。
2. 从联系的表现形式上来看:
存在性联系:如学校存在老师。
功能性联系:如教师授课。
事件性联系:如学生借书。
3. 从实体之间联系的“元数”来看:
一对一联系(1:1):如果对于实体集A中的每一个实体a,实体集B中至多有一个实体b与之联系;反之亦然。记为1:1.
一对多联系(1:n):对于实体集A中的每一个实体a,在实体集B中有n个实体与之联系,而且,对于实体集B中的每一个实体b,实体集A中至多有一个实体与之联系,则称实体集A和实体集B具有1对多的联系,记为1:n。
多对多联系(m:n):如果对于一个实体集A中的每一个实体,实体集B中有n个实体与之联系;同时对于实体集B中的每一个实体,实体集A中有m个实体与之联系,则称实体集A和实体集B具有多对多联系,记为m:n。
一元联系:一个实体内部的联系。
二元联系:两个实体间的联系。
多元联系:3个或3个以上实体间的联系。
E-R图:E-R模型的图示形式。
矩形表示实体
椭圆表示属性
菱形表示联系
结构数据模型:
一般来说,结构数据模型是严格定义的一组概念的集合,主要由数据结构、数据操作和完整性约束3部分组成,通常称为数据模型3要素。
关系模型:
关系模型是用二维表格表示实体集的结构数据模型。表格由行和列组成。