数据库及其系统概念
数据
数据(Data)是数据库中存储的基本对象
- 数据的定义
描述事物的符号记录 - 数据的种类
文字、图形、图象、声音 - 数据的特点
数据与其语义是不可分的
数据库
数据库的定义:
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
概括地讲,数据库具有永久存储、有组织、可共享三个基本特点。
数据库管理系统
- 什么是DBMS:
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。 - DBMS的用途:
科学地组织和存储数据、高效地获取和维护数据
功能
- 数据定义功能
提供数据定义语言(DDL) 定义数据库中的数据对象 - 数据组织、存储和管理
分类组织、存储和管理各种数据
确定组织数据的文件结构和存取方式
实现数据之间的联系
提供多种存取方法提高存取效率 - 数据操纵功能
提供数据操纵语言(DML)
实现对数据库的基本操作 (查询、插入、删除和修改) - 数据库的事务管理和运行管理
数据库在建立、运行和维护时由DBMS统一管理和控制 保证数据的安全性、完整性、多用户对数据的并发使用 发生故障后的系统恢复 - 数据库的建立和维护功能(实用程序)
数据库初始数据装载转换
数据库转储
介质故障恢复
数据库的重组织
性能监视分析等 - 其它功能
DBMS与网络中其它软件系统的通信
两个DBMS系统的数据转换
异构数据库之间的互访和互操作
数据模型
数据模型是指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明
- 数据结构: 用于描述事物对象的静态特征,包括事物对象的数据组成、数据类型、数据性质等。
- 数据操作:用于描述事物对象的动态特征,包括数据的插入、修改、删除和查询等访问操作。
- 数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则等。
有:
层次数据模型、网状数据模型、关系数据模型、其它数据模型(如对象数据模型、键值对数据模型、列式数据模型、文档数据模型、图形数据模型等)
数据库系统
数据库系统(Database Systems)是一类基于数据库进行数据管理与信息服务的软件系统。数据库系统由用户、数据库应用程序、数据库管理系统和数据库四个部分组成。
关系数据库中数据内容
在关系数据库中,除了存储和管理应用的用户数据外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据。
数据库系统应用结构
单机用户结构、单机用户结构、客户/服务器结构、分布式结构
数据库应用系统生命周期
需求分析、系统设计、系统实现、系统测试、系统运行与维护
典型数据库管理系统
ACCESS——微软公司推出的桌面数据库管理系统
SQL SERVER——微软公司推出的商用数据库管理系统
Oracle Database——甲骨文公司推出的企业级数据库管理系统
IBM DB2——IBM公司推出的企业级数据库管理系统
Sybase ASE——Sybase公司推出的企业级数据库管理系统
MySql——应用广泛的开源关系数据库管理系统
PostgreSQL——技术领先的开源对象-关系数据库管理系统
Sybase SQL Anywhere——Sybase推出的移动计算数据库管理系统
SQLite——开源的轻量级嵌入式数据库管理系统
关系及其相关概念
关系、实体
实体(entity)——是指包含有数据特征的事物对象在概念模型世界中的抽象名称。
关系(relation)——是指具有关系特征、用于存放实体数据的二维表。关系也常被称为关系表。
关系键
在关系中,可以用来唯一标识元组的属性列,称为键(Key),其它属性列都为非键列。
- 复合键(Compound Key)——是指关系中用来唯一标识元组的多列作为键。
- 候选键(Candidate Key)——关系中可能有多个列均适合作为键,将其中每个都称为候选键。
- 主键(Primary key)是关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
主键作用:- 唯一标识关系表的每行(元组)
- 与关联表的外键建立联系,实现关系表之间连接
- 数据库文件使用主键值来组织关系表的数据存储
- 数据库使用主键索引快速检索数据
- 代理键——采用DBMS自动生成的数字序列作为关系表的主键。
关系模型
关系模型(Relation Model)——是一种基于二维表结构存储数据实体及实体间联系的数据模型。
由数据结构、数据操作方式、数据关系约束组成。
关系模型的操作
选择、投影、连接、除
- 选择 - 行选择
- 投影 - 列选择
- 连接 - θ连接(全匹配)自然连接(一一对应)外连接(相对于前,不丢失填空值)
- 除 - 取第一个表能代表概括第二个表的值
完整性约束
关系模型完整性
关系模型完整性是指在关系数据模型中对关系实施的完整性约束。
完整性约束作用:
- 消除关系表的元组重复存储
- 保持关联表的数据一致性
- 实现业务数据规则
关系模型完整性约束组成:
- 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
实体完整性
实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。
实体完整性约束规则:
- 每个关系表中的主键属性列都不允许为空值(NULL),否则就不可能标识实体。
- 现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。
参照完整性
参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列的数据一致性。
参照完整性约束规则:若关系R中的外键F与关系S中的主键K相关联,则R中外键F值必须与S中主键K值一致。
外键(Foreign key)——在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
用户自定义完整性
用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的数据约束。
用户可以定义如下类型的完整性约束:
- 定义列的数据类型与取值范围
- 定义列的缺省值
- 定义列是否允许取空值
- 定义列取值唯一性
- 定义列之间的数据依赖性