第二章 数据库基础
主要内容
基本概念
关系数据库
常见数据库对象
范式
数据库技术产生于二十世纪六十年代末,
它作为数据管理最有效的手段在各行各
业中得到越来越广泛的应用 。 可以这样
说任何一个行业的信息化现代化都离不
开数据库, 本章将介绍数据库的一些基
础知识 。
2,1 基本概念
2.1.1 数据 Data
所谓数据就是描述事物的符号 。 在我们
的日常生活中, 数据无所不在 。 数字,
文字, 图表, 图象, 声音等都是数据,
人们通过数据来认识世界交流信息
2.1.2 数据库 DB 即 Database
数据库顾名思义就是数据存放的地方 。
在计算机中, 数据库是数据和数据库对
象的集合 。 所谓数据库对象是指表
( Table),视图 ( View),存储过程
( Stored Procedure),触发器
( Trigger) 等 。 这些数据库对象将在以
后的章节中介绍
2.1.3 数据库管理系统 DBMS
数据库管理系统是用于管理数据的计算
机软件 。 数据库管理系统使用户能方便
地定义和操纵数据, 维护数据的安全性
和完整性, 以及进行多用户下的并发控
制和恢复数据库
2.1.4 数据库系统 DBS
(Database System)
数据库系统, 狭义地讲, 是由数据库,
数据库管理系统和用户构成 。 广义地讲
是由计算机硬件, 操作系统, 数据库管
理系统, 以及在它支持下建立起来的数
据库应用程序用户和维护人员组成的一
个整体
2.2 关系数据库
数据库这一概念提出后先后出现了几种数据模
型, 其中基本的数据模型有三种, 层次模型系
统, 网络模型系统和关系模型系统 。 60 年代
末期提出的关系模型具有数据结构简单灵活,
易学易懂, 且具有雄厚的数学基础等特点, 从
70 年代开始流行, 发展到现在已成为数据库
的标准 。 目前广泛使用的数据库软件都是基于
关系模型的关系数据库管理系统
2.2.1 关系模型 RM 即
Relational Model
关系模型把世界看作是由实体 ( Entity)
和联系 ( Relationship ) 构成的 。
所谓实体就是指现实世界中具有区分与
其它事物的特征或属性并与其它实体有
联系的对象 。 在关系模型中实体通常是
以表的形式来表现的, 表的每一行描述
实体的一个实例, 表的每一列描述实体
的一个特征或属性 。
所谓联系就是指实体之间的关系, 即实体之间
的对应关系 。 联系可以分为三种,
一对一的联系, 如一个人只有一种性别, 一
个人 - >性别为一对一的联系
一对多的联系,如相同性别的人有许多个,性
别 ->人为一对多的联系
多对一的联系,如很多人有同一个性别,人 ->
性别为多对一的联系
通过联系就可以用一个实体的信息来查找另一
个实体的信息 。
关系模型把所有的数据都组织到表中, 表是由
行和列组成的 。 行表示数据的记录, 列表示记
录中的域, 表反映了现实世界中的事实和值
2.2.2 关系数据库 RDB 即
Relational Database
所谓关系数据库就是基于关系模型的数
据库 。
1 关系数据库管理系统 RDBMS
关系数据库管理系统就是管理关系数据库
的计算机软件
2 关键字 Key
关键字是关系模型中的一个重要概念,
它是逻辑结构, 不是数据库的物理部分
侯选关键字 Candidate Key
如果一个属性集能惟一地标识表的一行,
而又不含多余的属性, 那么这个属性集
称为侯选关键字
主关键字 Primary Key
主关键字是被挑选出来, 作表的行的唯
一标识的侯选关键字。一个表只有一个
主关键字,主关键字又可以称为主键
公共关键字 Common Key
在关系数据库中, 关系之间的联系是通过相容
或相同的属性或属性组来表示的 。 如果两个关
系中具有相容或相同的属性或属性组, 那么这
个属性或属性组被称为这两个关系的公共关键
字 。
外关键字 Foreign Key
如果公共关键字在一个关系中是主关键字, 那
么这个公共关键字被称为另一个关系的外关键
字 。 由此可见, 外关键字表示了两个关系之间
的联系, 以另一个关系的外关键字作主关键字
的表被称为主表, 具有此外关键字的表被称为
主表的从表, 外关键字又称作外键
2.3 常见的数据库对象
数据库对象是数据库的组成部分, 常见
的有以下几种,
2.3.1 表 Table
数据库中的表与我们日常生活中使用的
表格类似, 它也是由行 Row 和列
Column组成的
列由同类的信息组成, 每列又称为一个字段 。
每列的标题称为字段名 。 行包括了若干列信
息项, 一行数据称为一个或一条记录, 它表
达有一定意义的信息组合 。 一个数据库表由
一条或多条记录组成, 没有记录的表称为空
表 。 每个表中通常都有一个主关键字, 用于
惟一地确定一条记录 。 如下表图的 emp_id 列
Emp_id E_name sex birthday Job_level Dept_id Hire_date E_wage
1001 张三 1 68-02-14 1 01 96-08-02 8000
1002 李四 0 73-03-19 1 02 03-08-02 2000
1003 王五 1 73-06-25 1 01 98-08-02 5000
1004 赵六 0 70-12-30 1 03 02-08-02 1000
2.3.2 索引 Index
索引是根据指定的数据库表列建立起来
的顺序 。 它提供了快速访问数据的途径,
并且可监督表的数据, 使其索引所指向
的列中的数据不重复
2.3.3 视图 View
视图看上去同表似乎一模一样, 具有一
组命名的字段和数据项, 但它其实是一
个虚拟的表, 在数据库中并不实际存在 。
视图是由查询数据库表产生的, 它限制
了用户能看到和修改的数据 。 由此可见,
视图可以用来控制用户对数据的访问,
并能简化数据的显示 。 即通过视图只显
示那些需要的数据信息
2.3.4 图表 Diagram
在 SQL Server 中图表其实就是数据库表
之间的关系示意图 。 利用它可以编辑表
与表之间的关系
2.3.5 缺省值 Default
缺省值是当在表中创建列或插入数据时,
对没有指定其具体值的列或列数据项赋
予事先设定好的值
2.3.6 规则 Rule
规则是对数据库表中数据信息的限制,
它限定的是表的列
2.3.7 触发器 Trigger
触发器是一个用户定义的 SQL 事务命令
的集合, 当对一个表进行插入, 更改,
删除时, 这组命令就会自动执行
2.3.8 存储过程 Stored
Procedure
存储过程是为完成特定的功能而汇集在
一起的一组 SQL 程序语句, 经编译后存
储在数据库中的 SQL 程序
2.3.9 用户 User
所谓用户就是有权限访问数据库的人 。
数据库对象还有很多我们将在以后的章
节中详细介绍
2.4 范式
构造数据库必须遵循一定的规则, 在关系数据
库中这种规则就是范式 。 范式是符合某一种级
别的关系模式的集合 。 关系数据库中的关系必
须满足一定的要求, 即满足不同的范式 。 目前
关系数据库有六种范式, 第一范式 ( 1NF),
第二范式 ( 2NF),第三范式 ( 3NF),第四
范式 ( 4NF),第五范式 ( 5NF) 和第六范
式 ( 6NF)。
满足最低要求的范式是第一范式 。 在第一范式
的基础上进一步满足更多要求的称为第二范式 ;
其余范式以此类推。一般说来数据库只需满足
第三范式就行了。下面我们举例介绍第一范式,
第二范式 和第三范式。
2.4.1 第一范式 ( 1NF)
在任何一个关系数据库中, 第一范式 ( 1NF)
是对关系模式的基本要求 。 不满足第一范式 的
数据库就不是关系数据库 。
所谓第一范式 ( 1NF) 是指数据库表的每一列
都是不可分割的基本数据项, 同一列中不能有
多个值, 即实体中的某个属性不能有多个值或
者不能有重复的属性 。 如果出现重复的属性,
就可能需要定义一个新的实体, 新的实体由重
复的属性构成, 新实体与原实体之间为一对多
关系 。 在第一范式中, 表的每一行只包含一个
实例的信息 。
在下例中,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列
中显示。表的每一行只表示一个员工的信
息,一个员工的信息在表中只出现一次。
简而言之第一范式就是无重复的列。
Emp_id E_name sex birthday Job_level Dept_id Hire_date E_wage
1001 张三 1 68-02-14 1 01 96-08-02 8000
1002 李四 0 73-03-19 1 02 03-08-02 2000
1003 王五 1 73-06-25 1 01 98-08-02 5000
1004 赵六 0 70-12-30 1 03 02-08-02 1000
2.4.2 第二范式 2NF
第二范式 2NF 是在第一范式的基础上建立起来
的, 即满足第二范式, 必须先满足第一范式 ;
第二范式要求数据库表中的每个实例或行必须
可以被惟一地区分 。 为实现区分, 通常需要为
表加上一个列以存储各个实例的惟一标识 。 如
上表,员工信息表中加上了员工编号 emp_id
列, 因为每个员工的员工编号是惟一的 。 因此
每个员工可以被惟一区分, 这个惟一属性列被
称为主关键字或主键, 主码 。
第二范式要求实体的属性完全依赖于主关键字 。
所谓完全依赖是指不能存在仅依赖主关键字一
部分的属性, 如果存在, 那么这个属性和主关
键字的这一部分应该分离出来, 形成一个新的
实体, 新实体与原实体之间是一对多的关系 。
为实现区分通常需要为表加上一个列, 以存储
各个实例的惟一标识 。 简而言之第二范式就是
非主属性非部分依赖于主关键字
2.4.3 第三范式 3NF
满足第三范式, 必须先满足第二范式 。 第三
范式要求一个数据库表中不包含已在其它表中
已包含的非主关键字信息 。 例如存在一个部门
信息表, 其中每个部门有部门编号 dept_id,
部门名称, 部门简介等信息 。 那么在前面的员
工信息表中,列出部门编号后就不能再将部门
名称,部门简介等与部门有关的信息再加入员
工信息表中。如果不存在部门信息表,则根据
第三范式,也应该构建它;否则就会有大量的
数据冗余。简而言之,第三范式就是属性不依
赖于其它非主属性。
本章简单介绍了数据库的基本概念,常
见的数据库对象和构造数据库的规则,
它们有助于理解以后章节中的内容