数据库基本概念
节要点:
- 为什么使用数据库?
- 数据库相关概念
- 数据库相关术语
- 设计关系型数据库的准则——范式
- 绘制E-R图设计数据库
一、为什么使用数据库?
使用数据库是为了存储和管理数据。那为什么使用数据库来存储和管理数据?为什么不提倡使用像Excel这样的电子数据表来存储和管理数据呢?
上图所示的电子表格中,记录了公司员工及部门主管的信息。在该电子表格中,可以对每一列数据进行升序、降序排序、查找等操作。如果该公司的员工数量不多,那么可以采用这种简单的电子表格存储和管理公司员工信息。采用这种电子表格存储和管理员工信息时,会出现一系列问题:
- l 由于员工吴英辞职,现在希望把她的信息删除,在删除第7行时,除吴英的信息外,还会同时把其主管徐曼的信息也删除掉
- l 如果更新部门主管张子美的Email信息,则会出现,由于李江和王强所属主管都是张子美,所以两笔数据中的张子美Email都需修改,否则就会出现数据不一致现象
上述电子表格中只有几笔数据,删除、更新、插入数据时都会出现问题。设想一下,在采用电子表格存储和管理大量业务数据的情况下,如果有成千上万业务数据被许多人同时处理,则势必会造成很严重的数据混乱问题。实际上,采用电子表格来存储和管理数据,不仅仅可能造成数据的不一致性,而且还有其他更严重的问题:
- l 电子表格只能处理有限的数据列和数据行,对于数百万、数千万等巨大的数据列很难有效地处理
- l 电子表格无法提供安全、方便地权限管理和控制手段
- l 电子表格很难实现多个数据之间的关联
- l 电子表格很难实现并发控制、增量维护等管理方式
这些问题只能通过数据库来解决,数据库是一种有效地管理大量的、安全的、并发的、关联的、一致的数据工具,因此需要使用数据库存储和管理数据。
二、数据库相关概念
数据库相关术语有数据库、数据库管理系统(DBMS)、关系型数据、关系型数据库、关系型数据库管理系统 (RDBMS)、关系型数据库应用系统、关系型数据库系统的层次结构等。下面详细讲解这些术语的含义:
- 数据库(DB,DataBase)是一种存储结构,它允许使用各种格式输入、处理和检索数据——全部都不必在每次需要数据的时候重新键入它们。
- 数据库管理系统(DBMS,Database Management System),用来创建和维护数据库的结构,输入、处理和检索它所存储的数据。一般来说,数据库产品都是自带DBMS的。
- 关系型数据是以关系数学模型来表示的数据。关系数学模型中以二维表的形式来描述数据。在创建物理数据库时,字段通常称为“列”,记录称为“行”,文件称为“表”。
- 关系型数据库是存储在计算机上的、可共享的、有组织的关系型数据的集合。
- 关系型数据库管理系统 (RDBMS)是位于操作系统和关系型数据库应用系统之间的数据库管理软件。
- 关系型数据库应用系统指为满足用户需求,采用各种应用开发工具(如Java、VB、PB和Delphi等)和开发技术开发的数据库应用软件。
- 关系型数据库系统的层次结构
- 硬件
硬件指安装数据库系统的计算机,包括两种: 服务器、客户机。
- 操作系统
操作系统指安装数据库系统的计算机采用的操作系统。
- 关系型数据库管理系统、数据库
关系型数据库是存储在计算机上的、可共享的、有组织的关系型数据的集合。关系型数据库管理系统是位于操作系统和关系型数据库应用系统之间的数据库管理软件。
- 关系型数据库应用系统
关系型数据库应用系统指为满足用户需求,采用各种应用开发工具(如Java、VB、PB和Delphi等)和开发技术开发的数据库应用软件。如图书管理系统、购物系统等。
- 用户
用户指与数据库系统打交道的人员,包括如下3类人员:最终用户、数据库应用系统开发员、 数据库管理员。
三、数据库相关术语
每个数据库里面都包含很多对象,主要包括表、试图、存储过程、触发器以及约束。在本小节简单介绍每个术语。
- 表:在数据库中存放数据用的数据表。每个数据库中可以包含多张数据表,但是每个数据表的名字必须唯一。表的一行代表一条记录,每一列有一个列名,列名对于表来说是唯一的,行与列的交叉点称为字段。如下一个导师信息表:
编号 |
姓名 |
职称 |
职务 |
200901 |
刘洋 |
博导 |
200901 |
200909 |
海涛 |
硕导 |
200909 |
- 视图:是数据库中的虚拟表。视图并不在数据库中以存储的数据值集形式存在,是一个虚拟表,是查询的定义。
- 存储过程:由SQL语句和控制流语句组成的语句块。存储过程存储在数据库内,可由应用程序通过存储过程的名称调用执行。
- 触发器:是特殊的存储过程,也是由SQL语句和控制流语句组成的。但是,触发器是自动执行的。
- 约束:在数据库中保证数据库表中数据完整性的手段。Oracle中主要使用的约束有主键约束、外键约束、唯一约束、检查约束、非空约束。
主键约束:主键约束在每个表中只能有一个,但是一个主键约束可以由多个列组成,通常把由多个列组成的主键叫做复合主键或者组合主键。主键约束唯一地标识表中的一条记录。
外键约束:也称作参照约束,把一个表中的数据和另一个表中的数据进行关联。
唯一约束:和主键约束一样都是设置表中的列不能重复的约束,区别就是一个表中只能有一个主键约束,但是可以由多个唯一约束。而且主键列是绝对不能为空的,但是唯一约束的列可以为空。
检查约束:用来指定表中列的指取值范围的。
非空约束:约束表中的列不许为空。
四、数据库设计的完整性
数据库设计的完整性就是为了保证数据的正确性,主要有三个完整性:实体完整性、区域完整性、参照完整性。
- 实体完整性:要求主键字段不能为空或者重复的值。例如,一个学校内每个学生的学号是唯一的,那对于每个学生而言学号这个属性不能为空也不能和别的学生相同。
- 区域完整性:保证输入到数据库的数据是在有效范围内的。例如,每个学生都有年龄,而年龄必须是数字类型。
- 参照完整性:保证数据库中相关联的表里面数据的正确性。例如,学生选修了一门课,如果删除了这门课的课程信息会造成学生选了一门根本不存在的课程,如果使用参照完整性,那么如果课程信息已经被使用,则无法删除。
五、设计关系型数据库的准则——范式
范式的用途是减少或控制数据冗余(也就是不需要的数据副本)和避免数据异常。 范式分别有第一范式、第二范式、第三范式。
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。比如一本书可能存在多个作者,作者字段包含多个数据值,这是不符合第一范式的。
第二范式(2NF):要求在数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。
第三范式(3NF):要求数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。传递依赖表示记录中至少有一个值不依赖于主键,而是依赖于这个记录中的另一个字段。
六、绘制E-R图设计数据库
E-R(Entity-Relationship)图又叫实体-联系图,是描述现实世界的概念模型。构成E-R图的基本要素是实体、属性和联系。E-R模型帮助设计人员识别表的规划中可能存在的问题。
绘制E-R图的基本要素
- 实体是系统中将要包括的任何人、位置或事物,它们具有某些特征或属性。用矩形表示,矩形框内写明实体名
- 属性是实体所具有的某一特性,用椭圆形表示,并用无向边将其与相应的实体连接起来
- 联系即在信息世界中反应实体内部或实体之间的联系。用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)就是指存在的三种关系(一对一,一对多,多对多)
网上书店的E-R模型图
注意:如果E-R模型中存在多个多对多关系,在创建物理数据库之前,所有的多对多关系都必须减少为一组一对多关系,需要规范化来实现。用来消除多对多关系的最常用方法是通过添加“桥接表”来创建两个一对多关系。