数据库系统
一、基本概念
1、数据
数据库中存储的基本对象,描述事物的符号记录
数据的含义叫做语义,数据的形式不能完全表达其内容
型:数据的结构
值:数据的具体取值
2、数据库
长期存储、有组织、可共享在计算机内的大量数据集合
意义:抽取数据,进一步加工处理,收取有用信息,转换为有价值的的知识
特征:按一定数据模型组织、描述、存储
可以共享、冗余度小、易扩展
数据独立性高
表:相互有关系的数据
数据库:相互之间有关系的表的集合
3、DBMS数据库管理系统
大型负责软件系统,位于用户和操作系统之间管理数据,科学组织存储、获取维护数据
功能
用户角度
数据库定义:定义表,标题,属性名等
数据库操纵:增删查改
数据库控制:控制用户访问和用户使用
数据库维护:转储、恢复、重组、性能检测、分析(一般是DBA完成)
系统角度
语言编译器、查询优化与查询实现、数据存取与索引、通信控制、事务恢复、故障恢复、安全性控制、完整性控制、数据字典管理、应用程序接口、数据库装载与重组、数据库性能分析
1、数据定义(DDL,定义数据对象)
2、数据组织、存储和管理
3、数据操作功能(DML,增删查改)
4、事务管理和运行管理(安全性、完整性、并发使用、恢复、统一管理控制)
5、数据库建立和维护(提供工具,批量装载,监督等)
6、其他功能
数据库语言
数据定义语言DDL:定义数据格式
数据操纵语言DML:方便用户操作
数据控制语言DCL:用户对数据进行控制
4、数据库系统DBS
构成
数据库(DB)、数据库管理系统(DBMS)、应用程序(DBAP)、数据库管理员(DBA)、计算机系统
特点
数据结构化、共享度高、冗余度低、易扩充、数据独立性高、由DBMS统一管理和控制
二、数据管理技术
1、阶段
人工管理–>文件系统–>数据库系统
2、特点
人工管理:
数据不保存、应用程序管理数据、数据不共享、数据不具有独立性
文件系统:
数据长期保存、文件系统管理数据、共享性差、冗余度大、数据独立性差
数据库系统:
1、数据结构化
2、数据共享度高、冗余低且易扩充
3、数据独立性高
物理独立性:用户的应用程序和数据库中的物理存储是相互独立的
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的
4、数据由数据库管理系统统一管理和控制
(1)数据的安全性保护
保护数据防止不合法使用造成的数据泄密和损坏
(2)数据的完整性检查
数据的正确性、有效性和相容性
(3)并发控制
同时存取修改数据库时的干扰和协调
(4)数据库恢复
从错误状态恢复到某一已知的正确状态
三、数据模型
数据模型是对现实世界数据特征的抽象,用来描述、组织和对数据进行操作,是数据库系统的核心和基础
概念模型
信息模型,按用户的观点来对数据信息进行建模
信息世界概念:
1、实体:客观存在并且可以相互区别的事物
2、属性:实体所具有的某一特征
3、码(键):唯一标识实体的属性
4、实体型:用实体名及其属性名集合来抽象和刻画同类实体
5、实体集:同一类型实体的集合称之为实体集
6、联系:实体之间的联系通常是指不同实体集之间的联系;实体内部的联系是指实体构成各属性之间的联系
实体之间有一对一、一对多、多对多等多种类型
概念模型表示方法:实体——联系方法(E-R)
逻辑模型
包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等
数据模型组成要素
数据结构、数据操作、完整性约束条件
数据结构
数据结构是描述数据库的组成对象以及对象之间的联系
内容:
1、与类型、内容、性质有关的
2、数据之间联系有关的
数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行操作的集合,包括操作及有关的操作规则
类型:
1、查询
2、更新
数据完整性约束条件
完整性约束条件是一组约束规则
完整性规则:给定数据模型中数据及其联系具有的制约和依存规则
常用数据模型
1、层次模型
层次模型用树形结构来表示各类实体和实体间的联系
1、只有根节点没有父节点
2、根节点以外都只有一个父节点
特点
父节点唯一,只能处理一对多的实体联系,每个记录类型可以定义码字段用于排序,任何记录值都只有延路径查看才有全部意义, 没有子节点可以脱离父节点的记录
操作
查询、插入、删除、更新
完整性约束条件
无父节点就不能插入,删除父节点时同时删除子节点,更新时更新所有相应记录保持一致性
优点
数据结构简单清晰,查询效率高,完整性支持好
缺点
多对多联系不自然,插入和删除操作限制多,查询必须提供父节点,层次命令程序化
2、网状模型
1、允许一个以上节点无父节点
2、允许超过一个的父节点
表示方法(和层次结构相同)
实体型:用记录描述,每个节点表示一个记录类型
属性:用字段描述,每个记录类型可能包含多个字段
联系:节点之间用连线表示记录类型
与层次模型的区别
允许多个节点没有父节点,允许有多个父节点,允许两个节点之间存在多种联系,更直接的描述世界,层次模型是网状模型的一个特例
操纵
增加了限制,提供了一定的完整性约束
优点
更为直接的描述现实世界,一个节点可以有双亲,性能良好,存取效率高
缺点
结构复杂,不利于用户掌握,DDL、DML语言复杂,记录的联系是提供存取路径实现,要求用户了解系统结构
3、关系模型
关系模型中的数据逻辑是一张二维表
关系:表
元组:一行
属性:一列
主码:主键,唯一确定一个元组
域:相同数据类型值的集合,属性取值来自某个域
分量:元组中的一个属性值
关系模式:关系名(属性1,属性2,属性3,…)
数据结构
关系是规范的,满足规范条件(不允许表中有表,分量不可再分)
操纵
集合操作,操作对象和结果都是关系
只需要指出干什么
完整性约束条件
实体完整性、参照完整性、用户定义完整性
优点
建立在严格的数学基础上,概念单一(实体和各类关系,以及数据检索结果都是关系),关系模型的存取路径对用户透明(数据独立性好,安全保密好,简化了开发工作)
缺点
查询效率不如格式化数据模型,对用户查询请求进行优化,增加了开发难度
四、数据库系统结构
开发人员角度:三级模式结构,是数据库系统内部的系统架构
最终用户角度:分为单用户结构,主从式结构,分布式结构,客户-服务器,浏览器-应用服务器/数据库服务器多层结构等
数据库系统模式概念
型:某一类数据的结构和属性说明
值:型的一个具体赋值
模式:数据库逻辑结构和特征的描述;是型的描述,与值无关;反映数据结构及其联系;模式是相对稳定的
实例:模式的具体值;反映数据库某一时刻状态;同一模式可以有很多实例;随着数据库内数据变动
三级结构模式
模式(逻辑模式)
数据库中全体数据的逻辑结构和特征描述;所有用户的公共数据视图;
一个数据库只有一个模式
地位
数据库系统模式结构的中间层(和物理存储和硬件环境无关,和应用程序、开发工具无关)
定义
数据的逻辑结构(数据项名称、类型、取值范围)
数据之间的联系
数据有关的安全性、完整性要求
外模式(子模式/用户模式)
数据库用户使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,和应用相关的逻辑表示
地位
介于模式和应用之间
模式与外模式:外模式是模式的子集;一个数据库可以有多个外模式;对模式中的同一数据,外模式中的结构、类型等都可以不同
外模式和应用的关系:一对多
用途
保证数据库安全,每个用户只能看见访问所对应外模式中的数据
内模式(存储模式)
数据物理结构和存储方式的描述,数据在数据库内的表示方法,一个数据库只有一个内模式
数据库二级映像功能与数据独立性
外模式/外模式映像
内模式/内模式映像
外模式/模式映像
模式:数据全局的逻辑结构
外模式:数据的局部逻辑结构
同一模式可以有任意多个外模式
每个外模式都有一个外模式/模式映像,定义外模式与模式之间的对应关系
映像通常在各自外模式描述中定义
保持数据的逻辑独立性
模式改变,对外模式/模式映像改变,外模式不变
应用程序根据外模式编写,应用程序不必改
模式/内模式映像
定义了数据全局逻辑结构和存储结构之间的对应关系
模式/内模式映像唯一
通常定义在模式描述中
保持数据物理独立性
数据库存储结构改变,数据库修改模式/内模式映像,模式保持不变
应用程序不受影响
数据库模式
全局逻辑结构,是数据库的中心与关键
独立于数据库其他层次
设计时首先确定
数据库内模式
依赖全局逻辑结构
独立于用户视图,即外模式
独立于具体存储设备
使全局逻辑中的数据结构按照物理策略进行组织,时间空间效率好
数据库外模式
面向具体应用
定义在逻辑模式之上
独立于存储模式和存储设备
需求变化导致不满足要求时,外模式需要变动
考虑到应用扩展性
特定应用程序
在外模式数据结构编制
依赖于特定外模式
与数据库模式和存储结构独立
不同应用程序可以使用一个外模式
数据库二级映像
保证了外模式稳定性
底层保证了应用程序稳定性,一半不需要修改应用
五、数据库系统组成
硬件平台及数据库
内存、磁盘与磁盘阵列、通道能力
软件
数据库管理系统、支持其运行的操作系统、数据库接口的高级语言和编译系统、开发工具、数据库应用系统
人员
数据库管理员、系统分析员和数据库设计人员、应用程序员、最终用户
1、数据库管理员
决定数据库的信息和结构、决定数据库存储结构和策略、定义数据安全性和完整性约束、监控数据库使用和运行、数据库改进和重组
2、系统分析员和数据库设计人员
系统分析员:负责应用系统的需求分析和规范说明、与用户及数据库管理员结合缺点软硬件配置、参与数据库设计
数据库设计员:用户调研和系统分析、确定数据库内数据、设计数据库各级模式
3、应用程序员
设计和编写程序模块、调试安装
4、用户
指的是最终用户,通过应用系统使用数据库
偶然用户
不经常访问,每次访问往往不同;企业机构的中高管理人员
简单用户
查询和更新数据库;银行职员、记录员
复杂用户
直接使用数据库语言访问,甚至使用数据库管理系统的接口