一:简介
1.1:经典数据模型
关系数据库系统将结构化查询语言(S tructured Query Language, SQL) 作为数据定义语言( Data Definition Language, DDL) 和数据操作语言(Data Manipulation Language,DML ) , 它一诞生就成为关系数据库的标准语言。SQL 使得关系数据库中的数据库表的查询可以通过简单的、声明性的方式进行, 大大简化了程序员的工作。
数据是现实世界中" 量"的抽象, 而数据模型( Data Model ) 是数据特征的抽象。
网状模型适合表达复杂的数据关系, 也可以将数据冗余减小到最小, 它的数据结构模型能直观反映现实中数据之间的联系。
网状模型的数据操作是建立在关系链基础上的导航式的操作。针对一个特定的网状模型系统的数据结构, 有可能找到最优的查询算法。但是, 一旦结构发生变化, 就需要新的查询办法。网状模型以图论为基础, 还无法得到一个通用的、高效的解决方案。所以, 随着关系模型的飞速发展和广泛应用, 网状模型已经暂时失去其重要性了。
网状模型的数据约束是零散孤立的, 或者分散在各个节点, 或者集中成为一种关系链,这样容易导致不一致性或降低效率。所以, 通常网状模型不具体实现数据约束,而由应用程序自身来实现数据约束。这样的情况也使得在网状模型基础上的开发变得困难重重。
相对千网状模型, 层次模型禁止了多对多和多对一的关系,使得它的数据结构相对简单。
层次模型的数据约束与网状模型相似, 由千结构的简化, 去掉了网状模型中多对多和多对一的关系, 数据约束处理的复杂性按级数下降。所以, 层次模型的数据约束可以做到适当的系统实现, 但很多还是依靠应用程序本身实现。层次模型的实现技术比关系模型优越, 比网状模型简单, 所以一直独领风骚。它的代表是IBM 公司的IMS 系统
关系模型建立在关系代数的理论基础上, 数据结构使用简单易懂的二维数据表, 可以用简单的"实体-关系" (E-R) 图来直接表示, E-R 图中包含了实体( 数据对象) 、关系和属性三个要素。
对于数据库的用户而言, 关系模型使用从关系代数上抽象出来的数据库操作语言( DML )进行操作。结构化查询语言( SQL ) 就是其中最重要的一种, 已经成为关系数据库的标准操作语言。它的特色是直接面向结果, 简化操作步骤, 使得数据库应用的设计变得非常简单易懂。
1.2:数据库的基本概念
1. 数据
描述事物的符号记录称为数据( Data ) 。数字、文字、图形、图像、声音、档案记录等都是数据。
在数据库中, 数据是以" 记录" 的形式按照统一的格式进行存储的, 而不是杂乱无章的
2 . 数据库和数据库表
不同的记录组织在一起, 就形成了数据库(Database , DB) 的" 表" ( Table) 。也可以说, 表是用来存储具体数据的。数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合。例如, 关系数据库的表由记录组成, 记录由字段组成, 字段由字符或数字组成。它可以供各种用户共享,具有最小冗余度和较高的数据独立性, 它是统一管理的相关数据的集合。通常, 数据库并不是简单地存储这些数据的, 还要表示它们之间的关系。关系的描述也是数据库的一部分。
3 . 数据库管理系统和数据库系统
数据库管理系统( Database Management System, DBMS) 是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下, 支持用户对数据库的各项操作。DBMS 主要包括以下功能。
- 数据库的建立和维护功能: 包括建立数据库的结构和数据的录入与转换、数据库的转储与恢复、数据库的重组与性能监视等功能。
- 数据定义功能: 包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容, 以防止不合语义的错误数据被输入或输出。
- 数据操纵功能: 包括数据查询统计和数据更新两个方面。
- 数据库的运行管理功能: 这是数据库管理系统的核心部分, 包括并发控制、存取控制、数据库内部维护等功能。
- 通信功能: DBMS 与其他软件系统之间的通信,如Access 能与其他Office 组件进行数据交换。
数据库系统( Database Syst em, DBS ) 是一个人-机系统, 一般由硬件、操作系统、数据库、DBMS 、应用软件和数据库用户( 包括数据库管理员) 组成。用户可以通过DBMS 操作数据库, 也可以通过应用程序操作数据库。
常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨询系统等。
数据库管理员(Database Admini strator , OBA ) 负责数据库的更新和备份、数据库系统的维护、用户管理等工作, 保证数据库系统的正常运行。OBA 一般由业务水平较高、资历较深的人员担任。
1.3:关系数据库的基本概念
1.基本结构
关系数据库使用的存储结构是多个二维表格, 即反映事物及其联系的数据描述是以平面表格形式体现的。
在每个二维表中, 每一行称为一条记录, 用来描述一个对象的信息; 每一列称为一个字段, 用来描述对象的一个属性。数据表与数据库之间存在相应的关联, 这些关联用来查询相关的数据。
关系数据库是由数据表之间的关联组成的。其中:
- 数据表通常是一个由行和列组成的二维表, 每一个数据表分别说明数据库中某一特定的方面或部分的对象及其属性。
- 数据表中的行通常叫做记录或者元组, 它代表众多具有相同属性的对象中的一个。
- 数据表中的列通常叫做字段或者属性, 它代表相应数据库中存储对象的共有属性。
2.主键与外键
数据表中的每行记录都必须是唯一的, 而不允许出现完全相同的记录, 通过定义主键( 主关键字, PrimaryKey ) 可以保证记录( 实体) 的唯一性。主键唯一标识表中的行数据, 一个主键值对应一行数据。主键由一个或多个字段组成,其值具有唯一性, 不允许取空值( NULL) 。一个表只能有一个主键。
如果一个属性集能唯一地标识表的一行而又不含有多余的属性, 那么这个属性集称为候选键。表中可以有多个候选键, 但是只能有一个候选键可以选作表的主键, 所有其他候选键称为备用键
一个关系数据库通常包含多个表, 通过外键( Fore i gn Key ) 可以使这些表关联起来。外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将表中主键值的一列或多列添加到另一个表中, 可创建两个表之间的链接。这个列就称为第二个表的外键。
3.数据库完整性规则
- 实体完整性规则。实体完整性规则要求关系中的元组在主键的属性上不能有空值。如果出现空值, 那么主键值就起不到唯一标识元组的作用。
- 域完整性规则。域完整性也称列完整性, 指定一个数据集对某一个列是否有效或确定是否允许空值。
- 引用完整性规则。如果两个表之间相互关联, 那么引用完整性规则要求不允许引用不存在的元组。
- 用户定义的完整性规则。用户定义的完整性规则是针对某一具体数据的约束条件, 由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。系统提供定义和检验这类完整性的机制, 以便用统一的系统方法进行处理, 不再由应用程序承担这项工作。