昨天开始重新看看数据库,第一章就是总的来说一下数据库的一些术语和关系模型,以后的几章都是围绕着这些进行开展,想为以后留一个复习的轮廓,写了这篇博客。
数据:描述事物的符号记录。可以是文字,图形,图像,音频,视频等,数据有多种表现形式,它们都可以经过数字化后存入计算机。
数据库管理系统(DataBase Management System ,DBMS)
和操纵系统一样是计算机的基础软件讲述的是如何科学的组织和存储数据,如何高效的获取和维护数据。
功能:(1)数据定义功能(2)数据组织存储和管理(3)数据操作功能(4)数据库的事物管理和运行管理(5)数据库的建立和维护功能(6)其他功能
数据库系统(DataBase System,DBS)
定义:是由数据库,数据库管理系统(及应用开发工具),应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储,管理,处理和维护数据的系统。
实体:客观存在并相互区别的事物。
属性:实体所具有的某一特性。例如属性组合(20123,李四,男,1996076,计算机,2013)即表现一个学生的属性。
码:唯一标识实体的属性集称为码。例如学号是学生的实体的码。
实体型:用实体名和属性名集合来抽象和刻画同类实体,称为实体型。如,学生(学号,姓名,出生年月,所在院系,入学时间)就是一个实体型。
实体集:同一类型的集合称为实体集。例如,全体学生就是一个实体集。
联系实体型内部联系和实体型之间的联系,实体内部的联系通常是指组成实体的各属性之间发的联系,实体之间的联系通常是指不同实体之间的联系。实体之间的联系有一对一,一对多,和多对多类型。
概念模型的一种表达方式:实体——联系方法,该方法是通过E-R图来描述现实社会的概念模型也称E-R模型。
数据模型通常由数据结构,数据操作和数据的完整性约束条件三部分组成。
- 数据结构:描述数据库的组成对象以及对象之间的联系。长按照数据结构的类型来命名数据模型,例如层次结构,网状结构,关系结构的数据模型来分别命名为层次模型,网状模型和关系模型。是对系统静态的描述。
- 数据操作:是对数据库中各类对象(型)的实体(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有查询和更新(包括插入,删除和修改)两大类操作,是对系统的动态特性描述。
- 数据的完整性约束条件:是一组完整性规则。
常用的数据模型
a>数据库领域中主要的逻辑数据模型有
1层次模型
定义;用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(Hierarchical Model)。在树中,每个结点表示一个记录类型,结点间的连线或边表示记录类型间的关系,每个记录类型可包含若干个字段,记录类型描述的是实体,字段描述实体的属性,各个记录类型及其字段都必须命名。如果要存取某一记录型的记录,可以从根节点起,按照有向数层次向下查表。
在层次模型中,同一双亲的子结点称为兄弟结点,没有子结点的结点称为叶结点。示例如右图:结点R1为根节点,R3、R4、R5为叶节点,R2和R3与R4和R5分别为兄弟结点。
缺点
层次模型的缺点主要有:
(1)现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等。层次模型表示这类联系的方法很不灵活,不能直接表示两个以上的实体型间的的复杂的联系和实体型间的多对多联系。只能通过引入冗余数据或建非自然的数据组织如创建虚拟节点的方法来解决,易产生不一致性。
(2)对数据的插入和删除的操作限制太多。
(3)查询子女结点必须通过双亲结点,因为层次模型对任一结点的所有子树都规定了先后次序,这一限制隐含了对数据库存取路径的控制。树中父子结点之间只存在一种联系,因此,对树中的任一结点,只有一条自根结点到达它的路径。
(4)树结点中任何记录的属性只能是不可再分的简单数据类型。
(5)由于结构严密,层次命令趋于程序化。
2网状模型
定义:网络结构表示实体类型及其实体之间联系的模型。顾名思义,一个事物和另外的几个都有联系,这样构成一张网状图。
网状模型是一种可以灵活地描述事物及其之间关系的数据模型。
现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示这种关系很不直观,网状克服了这一弊病,可以清晰的表示这种非层次关系。
用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型(Network Model)。
网状模型取消了层次模型的不能表示非数状结构的限制,两个或两个以上的结点都可以有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。
网状模型中以记录为数据的储存单位。记录包含若干数据项。网状数据库的数据项可以是多值的和复合的数据。每个记录有一个惟一地标识它的内部标识符,称为码(DatabaseKey,DBK),它在一个记录存入数据库时由DBMS自动赋予。DBK可以看作记录的逻辑地址,可作记录的替身,或用于寻找记录。网状数据库是导航式(Navigation)数据库,用户在操作数据库时不但说明要做什么,还要说明怎么做。例如在查找语句中不但要说明查找的对象,而且要规定存取路径。
优点
网状数据模型的优点如下。
(1) 能够更为直接地描述现实客观世界。可表示实体间的多种复杂联系。
(2) 具有良好的性能,存取效率较高。
缺点
网状数据模型的缺点如下。
(1) 结构比较复杂,其数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。而且应用环境越大,数据库的结构就变得越复杂,不利于最终用户掌握。
(2) 数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。
3关系模型
关系模型是由一组关系组成。每一个关系是一张规范的二微表。下面以学生登录表为例,介绍一下关系模型的一些术语。
学号 | 姓名 | 性别 | 年龄 | 图书证号 | 所在系 |
S3001 | 张明 | 男 | 22 | B20050101 | 外语 |
S3002 | 李静 | 女 | 21 | B20050102 | 外语 |
S4001 | 赵丽 | 女 | 21 | B20050301 | 管理 |
关系:就是一个关系对应通常所说的一张表,上图。
元组:表中的一行即为一个元组。
属性:表中的一列就是一个属性,给每一个属性起一个名称即为属性名。(图上有六列对应六个属性(学号,姓名,性别,年龄,图书证号,所在的系)
码:也成为码键。表中某一属性组可以唯一确定唯一一个元组,如图中的学号可以唯一确定一个学生,也成为本关系中的码。
域 :域是一组具有相同数据类型的值的集合如性别的域是(男,女),系名的域是一个学校所有系名的集合。
分量:元组中的某一属性值。
关系模型的基本原理是信息原理:所有信息都表示为关系中的数据值。所以,关系变量在设计时刻是相互无关联的;反而,设计者在多个关系变量中使用相同的域,如果一个属性依赖于另一个属性,则通过参照完整性来强制这种依赖性。
相互关系:一个数据库可以包含若干张表;一张表有若干个字段;每张表又有若干条记录(元组),每条记录(元组)对应每个字段都有一个值优点
(1) 数据结构单一
关系模型中,不管是实体还是实体之间的联系,都用关系来表示,而关系都对应一张二维数据表,数据结构简单、清晰。
(2)关系范式化,并建立在严格的理论基础上
构成关系的基本规范要求关系中每个属性不可再分割,同时关系建立在具有坚实的理论基础的严格数学概念基础上。
(3)概念简单,操作方便
关系模型最大的优点就是简单,用户容易理解和掌握,一个关系就是一张二维表格,用户只需用简单的查询语言就能对数据库进行操作。
数据库系统的三级模式结构
1模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图。它是数据库系统模型结构的中间层,既不干涉数据的物理存储细节和硬件环境,又与具体的应用程序,所使用的应用开发工具及高级的程序设计语句无关。数据库模式以某一数据模型为基础,统一综合的考虑了所有用户的需求,并将这些需求有机的结合成一个逻辑整体。
2外模式:外模式是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求,看待数据的方式,对待数据保密的要求等方面存在差异,则其外模式描述就不同。
3内模式:也称储存模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组成方式。