从一般的数据库系统到关系型数据库系统
=====================================================================
数据库系统的4个基本概念:
数据(data)
数据是数据库中基本的存储对象。表示事物的符号记录为数据。
数据库(DataBase,DB)
数据库,存放数据的仓库。是大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种鱼护共享。
数据库管理系统(Database Management System,DBMS)
DBMS主要用来组织和存储数据,获取和维护数据。
主要功能:(1)数据定义功能:通过数据定义语言(Data Definition Language,DDL)对数据库中的数据对象的组成与结构进行定义。
(2)数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等;要确定以何种文件结构和存取方式在存储级上组织这些据,实现数据之间的联系。
(3)数据操纵功能:通过数据操纵语言(Data Manipulation Language,DML)实现对数据库的基本操作,如常用的查询、插入、删除和修改等。
(4)数据库的事务管理和运行管理:DBMS统一管理数据库的建立、运用和维护,保证了事物的正确运行,数据的安全性和完整性,多用户对数据的并发使用及故障发生后的系统恢复。
(5)数据库的建立和维护功能。
数据库系统(Database System,DBS)
DBS是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBS)组成的存储、管理、处理和维护数据的系统。
===================================================================
数据库引擎:
何为数据库引擎呢?简而言之,数据库引擎就是驱动各种数据库的程序,它负责处理数据库相关工作的整个核心部份。同样的,数据库应用项目的操作指令,均会通过数据库引擎的处理作用到数据库上。
当你访问数据库时,不管是手工访问,还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎去访问数据库文件。
以关系型数据库为例,你发SQL语句给数据库引擎,数据库引擎解释SQL语句,提取出你需要的数据返回给你。因此,对访问者来说,数据库引擎就是SQL语句的解释器。
数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)
小结: 数据库引擎也称为表类型,它规定了如何检索和存储你的数据。相当于一个数据驱动器.
===================================================================
数据模型
类似于飞机模型、航母模型等等,数据模型也是一种模型,它是对现实世界数据特征的抽象。简言之,就是数据的模型。它是用来 描述数据、组织数据、对数据进行操作的。
现有的数据库系统均是基于某种数据模型的。 数据模型是数据库系统的核心和基础。
数据模型的分类:
概念模型:是对信息世界的建模,是现实世界到信息世界的第一层抽象。
- 基本概念: 实体(entity):客观存在并可相互区别的事物
属性 (attribute):实体所具有的某一特性
码(key): 唯一标识实体的
属性集称为码。
实体型(entity type): 用
实体名及其
属性名集合来抽象和刻画同类实体,称为实体型。例如: 学生(学号,姓名,性别,院系)
实体集(entity set): 同一类型实体的集合,例如:全体学生就是一个实体集。 联系(relationship):
实体内部的联系(指组成实体的各属性之间的联系)和实体之间的联系(不同实体集之间的联系,有:一对一、一对多、多对多)
- 表示方法:实体——联系方法(Entity-Relationship approach),用E——R图来描述概念模型。
逻辑模型: 层次模型、网状模型、关系模型、面向对象数据模型等。
物理模型: 对数据最底层的抽象,数据在
系统内部的表示方法和存取方法,面向计算机系统。(在磁盘上的存储方式和存取方法)。
数据模型的组成要素:
1.数据结构:描述数据库的组成对象(数据)以及对象之间的联系的逻辑结构。(数据及数据之间的联系)
2.数据操作: 指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括
操作及
有关的操作规则
3.数据的完整性约束条件:是对数据模型中的数据及其联系的制约和依存规则。
================================================================================================
关系模型
是一种数据模型,是关系型数据库的数据组织方式。(与关系模型相对应的有层次模型、网状模型)
关系模型的数据结构:
关系(relation): 一个关系对应通常说的一张表(二维表)。
元组(tuple):表中的一行即为一个元组,也叫一条记录。
属性(attribute):表中的一列即为一个属性。
码(key):也称码键,可以唯一的确定一个元组(一行),是一个属性组(>=1个属性组成)。
域(domain):一组具有相同数据类型的值得集合。属性的取值范围就是一个域。
分量:元组中的一个属性值。分量必须是一个不可分割的数据项。
关系模式:对关系的描述,一般表示为: 关系名 (属性1,
属性2,
属性3,....
) ,例如: 学生 (学号,姓名,年纪,性别,系名)
关系(relation)是笛卡尔积的有限子集,所以关系也是一张二维表,表的每一行对应一个元组,表的每列对应一个域。
由于域可以相同,为了加以区分,必须对每列起一个名字,成为属性(attribute)。
候选码
若关系中的某一
属性组能唯一的标识一个元组,而其子集不能,则称该属性组为候选码(candidate key).
主码:
若一个关系有
多个候选码,则
选定其中一个为主码(primary key)。
候选码的诸属性称为主属性,除 候选码的属性之外的其他属性称为非主属性or非码属性。
最简单的情况下,
候选码只包含一个属性。极端情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(all-key).
---------------------------------------------------------------------------------------------
关系可以有三种类型: (1)基本关系,又称为基本表或基表。是实际存在的表,它是实际存储数据的逻辑表示;
(2)查询表,是查询结果对应的表;
(3)视图表,由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
基本关系的性质:
1. 列是同质的,每一列中的分量是同一类型的数据,来自同一个域。
2. 不同的列可能出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
3. 列的顺序无所谓。(增加新属性时,永远是插至最后一列)
4. 任意两个元组的候选码不能取相同的值。
5. 行的顺序无所谓,夯的次数可以任意交换。
6. 分量必须取原子值,
每一个分量都必须是不可分割的数据项。
关系模型要求关系必须是规范化(normalization)的,即要求关系必须满足一定的规范条件。规范化的关系简称为范式(Normal Foem,NF).
=============
关系模式
关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它是由哪些属性构成,这些属性来自那些域,以及属性与域之间的映射关系。
现实世界的许多已有事实和规则限定了关系模式所有可能的关系必须满足一定的
完整性约束条件。这些约定或者通过对属性的取值范围的限定,或者通过属性值之间的相互关联反映出来。
关系模式应当划出这些完整性约束条件。
关系的描述称为关系模式(relation schema),格式如下:
R(U,D,DOM,F)
- R 为关系名
- U 为组成该关系的属性名集合。
- D 是U中属性来自的域
- DOM 为属性向域的映射集合
- F 为属性间数据的依赖关系的集合
关系模式通常简记为: R(U),或者 R(A
1,A
2,.....An),R为关系名,A
i 代表属性名
。而 域名 及 属性向域的映射 常常直接说明为属性的类型、长度。
关系是关系模式在某一时刻的状态或内容。 关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中数据。(实际工作中,人们常把关系模式和关系都笼统地称为关系.)
关系数据库
关系模型中,实体 以及 实体之间的联系 都是用关系表示的。在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库的型也称为关系数据库模式,是对关系数据库的描述。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为 关系数据库。
结构化查询语言(Structured Query Language,SQL) 是关系型数据库的标准语言,也是一个通用的/功能极其强大的关系数据库语言。