本章主要介绍数据模型和数据库系统的结构,主要包括概念模型、逻辑模型和物理模型以及数据库系统的三级模式。概念模型是对现实世界的抽象和模拟,逻辑模型是为了方便计算机处理数据所采用的模型,物理模型是数据在计算机中的具体存储实现。将数据库划分为三级模式,旨在针对不同的使用对象和应用目的,采取分层管理手段,使用户不必关心数据在数据库中的具体细节,从而简化用户对数据的访问程序。
数据模型(Data ModeI)是对现实世界数据特征的模拟和抽象,用来描述数据是如何组织、存储和操作的。
数据模型又可分为三种模型:概念模型、逻辑模型、物理模型。
现实世界的数据到数 据库数据,必须经过三个阶段:现实世界、信息世界和机器世界
(1) 现实世界:指客观存在的现实世界中的事物(实体)及其联系,如学生、教师、选课等。
(2) 信息世界:基于某种数据模型完成对现实世界事物的抽象描述,也就是按用户的观点对数据和信息进行建模。
(3) 机器世界:是对数据最低层次的抽象,主要描述数据在系统内部的表示方式和存储方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
数据模型应满足如下三个条件。
(1) 能比较真实地模拟现实世界。
(2) 数据模型容易为人所理解。
(3) 数据模型要能够很方便地在计算机上实现。
※:把现实世界转换为信息世界,依靠的是概念层数据模型,把信息世界转化为机器世界,用的是组织层数据模型。
数据模型对应不同的应用层次分成三种类型:分别是概念(Conceptual)模型、逻辑 (Logical)模型、物理(Physical)模型。
概念模型实际上是现实世界到机器世界的一个中间层次。
1、基本概念:
1)实体
实体(Entity)是具有公共性质的、可相互区别的现实世界对象的集合。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,教师、学生、课程是具体的实体,而学生的选课、教师的授课则是抽象的实体。
2)属性
实体所具有的某一特性称为属性(Attribute)。一个实体可以由若干个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生年月、所在院系、专业等属性组成;课程实体由课程号、课程名、学分、课程性质等属性组成
3)码
唯一标识实体的属性集称为码(Key)。例如,学号是学生实体的码,课程号是课程实体的码。
4)实体型
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型(Entity Type)。例如,学生(学号、姓名、性别、所在院系、专业、年龄、电话、EMAIL)就是一个实体型。
5)实体集
同一类型实体的集合称为实体集(Entity Set)。例如,全体学生就是一个实体集。
6)联系
在现实世界中,事物内部以及事物之间都是有联系的,这些联系在信息世界反映为实体内部或实体之间的联系。
2、
两个实体之间的联系可以分为三种。
1)一对一联系(1 : 1)
例如,在学校里面,一所学校只有一个校长,而每个校长只在一个学校任职,学校和校长之间具有一对一联系。
2)一对多联系(1 : n)
例如,一个班级中有若干名学生,而每个学生只能在一个班级学习,班级与学生之间具有一对多联系。
教室与座位(一个教室有多个座位,而一个座位只能在一个教室)、部门和职工(一个部门有多名职工,而每名职工只在一个部门)都是一对多联系。
3)多对多联系(m : n)
例如,学生与课程(一门课程可以被多个学生选,而一个学生也可以选多门课程)、商品和顾客(一种商品可以被多名顾客购买,一名顾客可以购买多种商品)都是多对多联系。
实际上,实体与实体之间的联系是相对的,是根据客户的需求来决定的。
概念模型的一种表示方法:实体-联系方法
实体-联系(Entity-Relation ship)方法,简称E-R方法
E-R图由实体、属性和联系组成,下面介绍E-R图中的几个基本概念。
(1) 实体:用矩形表示,矩形框内写明实体名。
(2) 属性:用椭圆表示,并用无向边将其与相应的实体连接起来。
(3) 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来, 同时在无向边旁边标上联系的类型(三种)。
概念模型:采用ER图
逻辑模型:采用关系模式
ER图和关系模式,只是在两个模型下的具体实现方式!
概念数据模型必须转换成逻辑数据模型,才能在DBMS中实现,因此逻辑数据模型既要面向用户,又要面向系统。
逻辑数据模型(Logical DataModel,简称逻辑模型), 是从数据的组织方式来描述数据,即用什么样的数据结构来组织数据,是具体的DBMS所支持的数据模型。
目前,数据库技术主要用到的数据模型(即逻辑模型又可分为以下几类)
有:层次数据模型(Hierarchical Data Model,简称层次模型,用树形结构来组织数据)、网状数据模型(Network Data Model,简称网状模型,用图形结构来组织数据)、关系数据模型(Relational Data Model,简称关系模型,用二维表结构来组织数据)和面向对象模型等。
用关系表示实体及实体之间的联系的模型称为关系模型。
关系模型用二维表来组织数据,而这个二维表在关系数据库中称为关系。关系数据库就是表(或者说是关系)的集合。
关系数据库是指对应于一个关系模型的所有关系的集合。 例如,在学生选课关系数据库中,包含教师关系、学生关系、课程关系、选课关系等。
sqlserver选用关系数据模型!
关系模型具有以下主要优点。
(1) 与非关系模型不同,关系模型具有较强的数学理论根据。
(2) 数据结构简单清晰,用户易懂易用,不仅能用关系表示实体,而且可以用关系描述实体间的联系。
(3) 关系模型的存取路径对用户透明,从而具有更高的数据独立性和更好的安全保密性,也简化了程序员的工作及数据库建立与开发工作。
关系模型具有以下缺点。
(1) 由于存取路径对用户透明,查询效率往往不如非关系模型,因此为了提高性能, 必须对用户的查询表示进行优化,这样又将增加开发数据库管理系统的负担。
(2) 关系必须是规范化的关系,即每个属性是不可再分的数据项,不允许表中有表。
物理数据模型(Physical Data Model,简称物理模型),是面向计算机物理表示的模型, 描述了数据在存储介质上的组织结构,如存储位置、记录的顺序、记录的访问结构(索引、 散列表)等。它不但与具体的DBMS有关,而且与操作系统和硬件有关。每一种逻辑模型 在实现时都有其对应的物理模型。
(大部分物理模型的实现工作由系统自动完成)
这里是模式,刚刚学习的是模型!
ANSI/SPARC体系结构将数据库划分为三层结构:外模式、概念模式、内模式。
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式,外模式是保证数据库安全性的一个有力措施。
概念模式又称模式,是介于内模式和外模式之间的中间层次,是数据库中所有数据的逻辑结构和特征描述,是所有用户的公共数据视图。
概念模式不是概念模型!概念模式是指数据的逻辑结构(如:关系模型(二维表)、层次模型、网状模型)等
内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式,例如,记录的存储方式是顺序存储、B树结构存储或Hash方法存储;索引按照什么方式组织:数据是否压缩存储,是否加密;数据的存储记录结构有何规定。
一个数据库只有一个内模式。
数据库三级模式间引入二级映射的主要作用是:提高数据与程序的独立性!
进而对提高数据与程序的安全性有一定的帮助。
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS 管理,使用户能抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
1. 外模式/模式映像
同一个模式,可以有多个外模式
它定义了该外模式与概念模式之间的对应关系。
2. 模式/内模式映像
数据库中只有一个概念模式,也只有一个内模式
所以模式/内模式映像是唯一的
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
当用户使用数据库语言(如SQL)向DBMS发出一个访问请求后,DBMS接受请求并分析,检查用户外模式、相应的外模式/概念模式、概念模式/内模式间的映像和存储结构定义。
DBMS的功能包括以下几项。
(1)数据定义。 DBMS必须能够接受数据库定义的源形式,并且把它们转换成相应的 目标形式。即DBMS必须包括支持各种DDL的DDL处理器或编译器。
(2)数据操纵。 DBMS必须能够检索、更新和删除数据库中已有的数据,或向数据库 中插入数据。即DBMS必须包括数据操纵语言(Data Manipulation Language, DML)的DML 处理器或编译器。
(3)优化和执行。 计划(在请求执行前就可以预见到的请求)的或非计划(不可预知的请 求)的数据操纵语言必须经过优化器的处理,通过优化器来决定执行请求是必要的过程。
(4)数据安全和完整性。 DBMS要监控用户的请求,拒绝那些会破坏DBA定义的数 据库安全性和完整性的请求。DBMS在编译或运行时都会执行这些监控任务。实际操作中, 运行管理器调用文件管理器来访问存储的数据。
(5)数据恢复和并发。 DBMS或其他相关软件(通常称为“事务处理器”或“事务处理 监控器”)必须保证具有恢复和并发控制的功能。
(6)数据字典。 DBMS包括数据字典,数据字典本身也可以看作一个数据库,只不过 它是系统数据库,而不是用户数据库。"字典”是“关于数据的数据”(有时也称为数据的 描述或元数据)。特别地,在数据字典中,也保存各种模式和映像的各种安全性与完整性 约束。
有些人也把数据字典称为目录或分类,有时也称为数据存储池。
(7)性能。 DBMS应尽可能高效地完成任务。
总而言之,DBMS的目标就是提供数据库的用户接口。 用户接口可定义为系统的边界, 在此之下的数据对用户来说是不可见的。