数据库复习-1.前言
引子
数据是数据库中存储的基本对象。
数据的定义:描述事物的符号记录。
数据种类:文本、图形、图像、声音。
图像着重于有画面,图象特指数学上的函数图象。
数据的特点:数据与其语义是不可分的。
数据的含义称为数据的语义,数据与语义不可分的。
例如 93是一个数据
- 语义1:学生某门课的成绩
- 语义2:某人的体重
- 语义3:计算机系某一级的学生人数
信息是指现实世界实物的存在或运动的反映。
数据是将现实世界中的各种信息记录下的、可以识别的符号,是信息的载体,信息的具体表示形式。
信息与数据的联系:
- 数据是信息的符号表示,或称载体;
- 信息是数据的内涵,时数据的语义解释;
- 数据是符号化的信息;
- 信息是语义化的数据。
数据处理实际上就是利用计算机进行数据处理的过程。
数据库的定义:数据库是长期存储在计算机内、有组织的 、可共享的大量数据集合。
数据库的特征:
- 数据按一定的数据模型(之后提到)、描述和存储。
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
相关概念
所谓数据库是长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织。存储和描述,由DBMS同一管理,多用户共享。
数据库系统是指一个计算机存储记录的系统。即,它是一个计算机系统,该系统的目标是存储信息并支持检索和更新所需要的信息。它通常由数据库,软件,硬件,用户几个部分组成。
数据库管理系统是一个通用的软件系统,由一组计算机程序组成。它能够对数据进行有效的管理,并为用户提供一个软件环境,方便用户使用数据库中的信息。
数据处理的三大阶段
- 人工处理阶段
- 文件系统阶段
- 数据库系统阶段
人工智能阶段
背景:
- 计算机主要用于科学计算
- 外存只有磁带、卡片、纸袋等,没有磁盘等直接存取设备。
- 没有操作系统,没有数据观看软件。
特点:
- 数据不保存
- 应用程序管理数据
- 数据不共享
- 数据不具有独立性
文件系统阶段
背景:
- 计算机不但用于科学计算,还用于管理。
- 外存有了磁盘、磁鼓等直接存取设备。
- 有了专门管理数据的软件,一般称为文件系统。
特定:
- 数据以文件的形式长期存储。
- 一个数据文件对应一个或几个用户程序,还是面向应用的,具有一定的共享性。
- 由文件系统管理数据。
- 数据与程序有一定的独立性,因为文件的逻辑结构与存储结构由系统进行转换,数据存储 上的改变不一定反野在程序上。
文件系统的缺点:
- 数据冗余和不一致
- 数据访问困难
- 数据孤立
- 完整性问题
- 原子性问题
- 并发访问异常
- 安全性问题
数据库系统阶段
背景:
- 大规模数据管理。计算机管理的数据量大,关系复杂,共享性要求高(多种应用、不同语言共享数据)。
- 外存有了大容量磁盘,光盘。
- 软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,其中维护的成本更高。
数据库观点:数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象。
特点:
1.面向全组织的结构化。
- 支持全企业的应用而不是某一个引用。
- 通过统一的结构来描述数据及数据之间客观存在的本质联系,这是数据库系统的主要特征之一,是与文件系统的根本差别。
2.数据集成与共享,可控冗余度
- 数据面向整个系统,而不是面向某一应用,数据集中管理,并可以被多个用户和多个应用程序共享。
- 数据共享可以减少数据冗余,节省存储空间,减少存取时间,并避免数据之间的不相容性和不一致性。
- 每一个应用选用数据库的一个子集,只是重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,这就是易扩展性。
- 根据应用的需要,可以控制数据的冗余度。
3.数据独立性好
- 数据与程序相对独立,把数据库的定义和描述从应用程序中分离出去。描述又是分级的(全局逻辑、局部逻辑、存储),数据的存取由系统管理,用户不必考虑去路径等细节,从而简化了应用程序。
- 数据独立性:当数据的结构发生变化时,通过系统提供的映像(转换)功能,使应用程序不必改变。它包括数据物理独立性和逻辑独立性。
4.统一的控制机制
- 数据的安全性控制。
- 保护数据以防止不合法的使用所造成的数据泄漏和破坏。
- 措施:用户标识与鉴定,存取控制。
- 数据的完整性控制
- 数据的完整性、有效性、相容性。
- 措施:完整性约束条件定义和检查。
- 并发控制
- 对多用户的并发操作加以控制、调,防止其互相干扰而得到错误的结果并使数据库完整性遭到破坏。
- 措施:*。
- 数据库恢复
- 将数据库从错误状态恢复到某一个已知正确状态,防止数据丢失和损坏,保证数据的正确性。
数据模型
模型是现实世界特征的模拟和抽象。数据模型是现实世界数据特征的抽象。
数据模型应满足三个方面的要求:
- 能比较真实地模拟现实世界;
- 容易为人理解;
- 便于在计算机上实现。
典型的数据模型:
- 网状模型
- 层次模型
- 网状模型
- 关系模型
- 面向对象模型
数据库管理系统
什么是DBMS?
- 位于用户与操作系统之间的一层数据管理软件。
- 是基础软件,是一个大型复杂的软件系统。
DBMS的用途
科学地组织和存储数据、高效地获取和维护数据。
数据定义功能:
- 提供数据定义语言(DDL)
- 定义数据库中的数据对象
数据组织、存储和管理:
- 分类组织、存储和管理各种数据
- 确定组织数据的文件结构和存取方式
- 实现数据之间的联系
- 提供多种存取方式调高存取效率
数据操纵功能:
- 提供数据操纵语言(DML)
- 实现对数据库的基本操作(查询、插入、删除和修改)
数据库的事务管理和运行管理
数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复。
数据库的建立和维护工程:
- 数据库初始数据装载转换
- 数据库转储
- 介质故障恢复
- 数据库的重组织
- 性能监视分析等
数据库的重组织:数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理存储变坏,降低了数据库存储空间的利用率和数据的存取效率。数据库管理员就要进行数据库的重组织。在重组织过程中,按原设计要求重新安排记录的存储位置。
DML、DDL、DCL区别
总体解释:
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
其他功能:
- DBMS与网络中其它软件系统的通信
- 两个DBMS系统的数据转换
- 异构数据库之间的互访和互操作
数据库系统
定义:1.数据库系统是指在计算机系统中引入数据库后的系统构成。
2.在不引起混淆的情况下常常把数据库系统简称为数据库。
数据库系统的构成:
- 数据库
- 数据库管理系统(及其开发工具)
- 数据库管理员
![数据库系统结构图]
数据结构化
整体数据结构化是数据库的主要特征之一。
整体结构化:
- 不再仅仅针对某一个应用,而是面向全组织。
- 不仅数据内部结构化,整体是结构化的,数据之间具有联系。
数据库中实现的是真正的结构化。
- 数据的结构化用的数据模型描述,无需程序定义和解释。
- 数据变长。
- 数据的最小存取单位是数据项。
数据独立性
- 物理独立性:指用户的应用程序存储在磁盘上的数据库中的数据是相互独立的。当数据的物理存储变了,应用程序不会改变。
- 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
PS:数据独立性是由DBMS的二级映射功能来保证的。
DBMS对数据的控制功能
- 数据的安全性保护:使每一个用户只能指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄漏和破坏。
- 数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系。
- 并发控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
- 数据库恢复:将数据库从错误状态恢复到某一已知的正确的状态。
数据模型
在数据库中用数据模型这个工具来抽象、表示和处理现实世界重的数据和信息。
通俗地讲数据模型就是现实世界的模拟。
数据模型应满足以下要求:
- 能比较真实地描述模拟显示世界
- 容易为人所理解
- 便于在计算机上实现
两大类数据模型
数据类型分为两类(分属两个不同的层次):
1.概念模型(信息模型):按用户的观点来对数据和信息建模,用于数据库设计。
2.逻辑模型和物理模型:
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方法和存取方法。
客观对象的抽象过程–两步抽象
1. 显示世界中的客观对象为概念模型;
2. 把概念模型转换为某一DBMS支持的数据模型。
数据模型的组成要素
数据结构
数据结构定义:是所研究对象类型的集合。
- 二维表是关系模型中的数据结构,一个关系就是一个二维表。
- 层次模型是指用一颗“有向树”的数据结构来表示表示各类实体以及实体间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。
可以分两类对象:
- 与数据类型、内容、性质有关的对象
- 与数据之间联系有关的对象
数据结构是对系统静态特性的描述
按数据结构的类型命名数据库。
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作的集合(包括操作及有关的操作规则)。
数据操作的类型:
- 查询
- 插入
- 删除
- 修改
PS:插入、删除和修改合称为更新
数据模型对操作的含义:
- 操作的确切含义
- 操作符号
- 操作规则(如优先级)
- 实现操作的语言
数据操作是对系统动态特性的描述。(数据结构是静态描述)
数据控制就是会修改到数据字典表的操作,例如drop table ,create tablespace等操作,都会修改数据字典的,这些称为DDL操作;数据操作就是DML,只会修改表的信息,不会涉及到数据字典的信息。此外,DML操作在没有commit前都可以rollback,DDL操作时不可以rollback的。
数据的完整性约束条件
数据的约束条件的概念:
- 一组完整性规则的集合。
- 完整性规则是给定的数据模型中数据及其 联系所具有的制约和依存关系。
- 用以限定符合数据结构的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
数据模型对完整性约束条件的定义:
- 反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两条。
- 提供定义完整性约束条件的机制,以反映具体应用所设计的数据必须遵守的特定的语义约束条件。