一、基础
1.1 数据库使用的数据模型与数据库系统
- 层次数据模型:采用“树”结构来组织、存储和管理数据;局限于上下节点的访问。
- 网状数据模型:采用“网状图”结构组织、存储和管理数据。灵活地表示数据之间地关系;数据查询和修改不方便。
- 关系数据模型:采用“二维表”结构组织、存储和管理数据,并以关联列实现表之间的联系。表之间通过具有相同属性列进行约束关系。数据结构简单、操作灵活、支持关系与集合运算操作、支持SQL;局限是只用于结构化数据的组织与存储管理,支持的数据类型较为简单,难以支持互联网广泛应用的非结构化数据和复杂数据管理。
- 其他数据模型
数据库系统是一类基于数据库进行数据管理与信息服务的软件系统。主要由用户、数据库应用程序、数据库管理系统和数据库四部分组成。
- 用户:开发人员、使用人员、维护人员等
- 数据库应用程序:是一种再DBMS支持下对数据库中数据进行访问处理的应用程序。
主要功能有:通过窗口输入框采集用户输入数据;通过接口连接访问数据库;执行用户数据查询;通过表单列表输出数据。 - 数据库管理系统:是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件。
主要功能:- 创建数据库、数据库表以及其他对象;
- 读写、修改、删除数据库表中的数据;
- 维护数据库结构;
- 执行数据访问规则;
- 提供数据库并发访问控制和安全控制;
- 执行数据库备份与恢复。
- 数据库:是一种依照特定数据模型组织、存储和管理数据的文件集合。
- 关系数据库中数据内容:在关系数据库中,除了存储和管理应用的用户数据(用户表)外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据(系统表)。
- 关系数据库的对象组织:
1.2 发展
层次数据库–> 网状数据库 --> 关系型数据库 —> 对象-关系数据库 --> 半结构化数据库等
1.3 数据库应用系统
数据库应用系统类型
- 业务处理系统:对机构业务活动(订购、销售、支付、出货)信息处理
- 管理信息系统:以机构职能管理为主导,信息化管理,如人力资源管理信息系统
- 决策支持系统:管理科学、运筹学、控制论等基础,为管理者提高辅助决策服务和方案,如证券分析与辅助决策信息系统
数据库系统应用结构
- 单机用户结构:整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。
- 集中式结构:数据库系统的应用程序、DBMS、数据都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。*特点:*结构简单、易于维护、但是当终端用户增加到一定数量后,服务器网络将成为数据存取访问的瓶颈,系统性能大大降低。
- 客户/服务器结构:数据库应用系统的数据集中在数据库服务器管理、应用分布客户机处理。客户端应用程序通过网络并发访问数据库服务器中的数据库。*特点:*客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但会因大量客户端并发访问数据库服务器导致系统性能瓶颈。
- 分布式结构:分布式结构的数据库系统既实现数据分布,又实现处理分布。分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器节点上运行,每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。网络中的每个数据库服务器都可以独立地存取和处理数据,并执行全局应用。*特点:*适合跨地区和大型机构,处理性能强,但数据库的分布处理和维护成本高,技术难度大。
数据库应用系统生命周期
- 需求分析:系统数据需求信息
- 系统设计:包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。
- 系统实现:包括DBMS安装部署、数据库创建、数据对象创建等
- 系统测试:将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
- 系统运行和维护:监控与优化、扩展与维护
1.4 数据库管理系统
按用途分类:
- 通用DBMS:支持公共领域数据库应用,如SQL Server
- 专用领域DBMS:支持专用领域数据库应用,如嵌入式领域的SQLite
按用户数分类:
- 单用户DBMS:仅支持单用户访问,如miniSQL
- 多用户DMBS:可支持多用户并行访问,如MySQL
按系统部署分类:
- 集中式DBMS:数据库集中部署在单一物理机器中,如Access
- 分布式DBMS:数据库可分布在不同位置物理机器,如Oracle Database
按使用场景分类:
- 桌面级DBMS:适用于微小型的信息服务应用,如Access、SQLite
- 企业级DBMS:适用于中大型的企业级应用,如DB2,ORACLE Database
二、数据库关系模型
2.1 关系及其相关概念
实体:包含有效数据特征的事物对象在概念模型世界的抽象名词。
关系:在关系模型中,使用“关系”来存储“实体”中的数据。关系是指具有关系特征、用于存放实体数据的二维表,关系也常被称为关系表。
关系的特征
* 表中每行存储实体的一个实例数据,行又被称为元组。
* 表中的每列包含实体的一项属性数据,列又被称为属性。
* 表中单元格只能存储单个值;
* 不允许有重复的行。
* 列的顺序可任意。
* 行的顺序可任意。
关系的键定义
在关系中,可以用来唯一标识元组的属性列,称为键(Key)
,其他属性列都为非键列。
复合键(Compound Key):是指关系中用来唯一标识元组的多列作为键。
候选键(Candidate Key):关系中可能有多个列均适合作为键,将其每个都称为候选键。
主键(Primary Key):关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
主键的作用
* 唯一标识关系表的每行(元组);
* 与关联表的外键建立联系,实现关系表之间连接;
* 数据库文件使用主键值来组织关系表的数据存储;
* 数据库使用主键索引快速检索数据。
代理键:采用DBMS自动生成的数字序列作为关系表的主键。(当复合键过于复杂时)
代理键的用途
* 由DBMS自动生成的数字序列作为主键,可替代复合主键,以便获得更高性能的数据访问操作处理。
外键(Foreign Key):在关联的两个关系中,它们具有一个或多个相同属性,若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
关系模式语句中主键表示方法:
关系名(主键属性,属性2,...,属性x)
relation_name(Colunm01,Colunm02,...,LastColunm)
relation_name
表示关系名称,Colunm01
等表示属性名。
2.2 关系模型原理
关系模型是一种基于二维表结构存储数据实体及实体间联系的数据模型。
关系模型的组成
- 1、数据结构
- 2、数据操作:集合运算操作包括
选择
,投影、连接、交、并、差等。专门针对元组的关系操作包括数据行插入、修改、删除等操作。 - 3、数据关系约束:在关系模型中,数据关系约束是指关系表中实体数据完整性、关联表之间数据一致性等要求,一般由业务需求来确定。在关系模型中,可定义关系表的数据约束如下:
- 属性列取值范围
- 属性列取值类型
- 属性列取值是否唯一
- 属性列是否允许空值
- 关联表的参照完整性约束
关系模型数据操作
关系模型的数据操作采用基于关系代数的数据操作,包括传统的集合运算操作和专门的关系运算操作。
并算法、差运算、交运算、笛卡尔积×
(若R、S分别为两个关系表,则R×S
的结果集为所有属于R的元组与所有属于S的元组进行组合而成R×S={(d1,d2) | d1∈R,d2∈S}
)
关系模型完整性
关系模型完整性是指在关系数据模型中对关系实施的完整性约束。
完整性约束作用:
- 消除关系表的元组重复