第一讲:数据库系统概述
- 数据(data)、数据库(DB)即应用系统或数据库应用系统、数据库管理系统(DBMS)、数据库系统(DBS)前台用户使用
- 数据库系统的构成:数据库(DB)、数据库管理系统DBMS(及应用开发工具)、应用程序、数据库管理员(DBA)
- 数据管理:对数据进行分类、组织、编码、存储、检索和维护
- 数据冗余:同样的数据在多个表中多次出现
第二讲:数据库系统的结构
- 从应用开发人员角度
- 数据库系统采用三级模式结构,是数据库系统内部的系统结构
- 从数据库最终用户角度
- 单用户结构
- 主从式结构
- 分布式结构
- 客户-服务器
- 浏览器-应用服务器/数据库服务器
数据库系统模式的概念
- 模式(学生表、课程表、学生选课表)
- 是对数据库逻辑结构和特征的描述
- 是型的描述,不涉及具体值
- 模式是相对稳定的
- 实例(2013年所有学生(课程或选课)的记录、2014年所有学生的记录)
- 数据库某一时刻的状态——模式的一个具体值
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
三级模式结构
外模式(子模式或用户模式)
- 数据库用户使用的局部数据的逻辑结构和特征的描述
- 数据库用户使用的数据试图,是与某一应用有关的数据的逻辑表示
- 外模式与模式的关系
- 外模式通常是模式的子集、
一个模式可以有多个外模式
,反映不同用户的应用需求,看数据的方式等 - 对模式中某一数据,在不同的外模式中结构、类型、长度等都可以不同
- 外模式与应用的关系
- 一个外模式可以为多个应用系统所使用
- 外模式的用途
- 每个用户只能看见和访问所对应的外模式中的数据,简化用户视图
- 保证数据库安全性的一个有力措施
模式(也称逻辑模式)
- 数据库中全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图
- 一般某个应用的数据库有一个模式
- 是数据库系统模式结构的中心
- 与物理硬件环境和应用程序及语言无关
- 定义模式
- DDL语句定义数据的逻辑结构,以某种数据模型为基础
- 包括数据记录由哪些数据项构成,数据项的名字、类型和取值范围等
- 定义数据之间的联系
- 定义与数据有关的安全性、完整性要求、
内模式(存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 是记录的存储(顺序存储、堆存储、按hash方法存)
- 索引的组织方式(Hash等)
- 数据是否压缩、加密
- 数据存储记录结构的规定——定长/变长/记录可否跨业存放等
一个数据库仅一个内模式
数据库的二级映像功能和数据独立性
外模式/模式映像
- 映像定义通常包含在个外模式的描述中
保证数据的逻辑独立性
- 当模式改变,管理员对外模式/模式映像做响应改变,使外模式保持不变
- 应用程序据外模式编写的,应用程序不必改,保证数据与程序的逻辑独立性
模式/内模式映像
- 定义数据全局逻辑结构与存储结构间的对应关系
- 数据库中模式/内模式映像是唯一的,该映像定义通常包含在模式描述中
- 保证数据的物理独立性,存储结构变了修改映像使其保持不变
第三讲:数据模型
- 数据模型就是对现实世界数据特征的抽象是数据库系统的核心和基础
一些基本概念
- 实体:客观存在的
- 属性:实体具有的特性
- 码:唯一标示实体的属性集。如学生的学号
- 实体型:用实体名及属性名集合来抽象和刻画同类实体称实体型(学生)
- 实体集:同一类型实体的集合(所有学生)
- 联系:实体内部各属性间联系及不同实体集间的联系(一对一,一对多,多对多学生与课程)
数据模型的组成要素
- 数据模型是严格定义的一组概念的集合,精确的描述来系统的静态特性、动态特性和完整性约束条件
数据模型由三部分组成:
数据结构——描述系统的静态特性
- 数据结构的类型来命名数据模型:层次模型,网状模型,关系模型
- 描述数据库的组成对象的类型、内容、性质
- 描述对象之间的联系
数据操作——描述系统的动态特性
- 对实例允许执行的操作的集合,包括操作及有关的操作规则
- 数据操作类型:查询、更新(插入、删除、修改)
- 数据操作语言(查询-Query Language,更新-DML)
完整性约束
- 一组完整性规则的集合
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 用以限定符合数据模型的数据库状态以及状态的变化,保证数据的正确、有效和相容
- 数据模型对完整性约束条件的定义
- 反映规定必须遵守的基本通用的完整性约束条件
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件
常用的数据模型
- 格式化模型(层次和网状)中数据结构的单位:基本层次联系
层次模型
- 表示:实体型用记录类型描述,属性用字段描述,联系用结点间的连线表示
- 定义:
- 1.有且仅一个节点无双亲节点(根节点)
- 2.根以外其他结点仅一个双亲节点
- 特点:
- 1.结点双亲唯一
- 2.只能直接处理一对多的实体联系
- 3.任何记录值仅能按路查看
- 4.没有一个子女的记录能脱离双亲的记录值而独立存在
- 操纵:查、插、删除、更新
- 完整性约束
- 无相应双亲结点值就不能插入子女结点值
- 若删除双亲结点值,则相应子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,保证数据一致性
- 结构清晰、查询效率高、完整性支持。但多对多联系表示不自然、插入删除操作限制多、查子女必须通过双亲结点,命令趋于程序化
网状模型
- 网状结构表示实体及联系
- 表示
- 实体型:每一个结点表一个记录类型
- 属性:每个记录包含若干字段
- 联系:结点间的连线表示记录类型(实体)间一对多的父子联系
- 网状模型定义
- 1.允许一个以上结点无双亲
- 2.一个结点可以有多余一个的双亲
- 特点
- 1.允许一个以上结点无双亲
- 2.一个结点可以有多余一个的双亲
- 3.允许两个结点之间有多种联系
- 4.要为每个联系命名,并指出与该联系有关的双亲和子女记录
- 间接表示多对多的联系:将多对多分解为一对多联系
- 完整性约束
- 导航式的查询语言和增删改操作语言
- 完整性约束条件不严格:允许插入双亲不确定的子女结点值,允许只删除双亲结点值
- 实际网状数据库系统:1.支持码。2.保证一个联系中双亲记录和子女记录之间某些约束条件。3.可以定义双亲记录和子女记录之间某些约束
- 更直接描述现实世界、有良好性能。但结构复杂,语言复杂、记录通过存取路径实现增加程序员的负担。
关系模型
- 三要素:数据结构、数据操作、完整性约束
- 用户观点下,关系模型中数据的逻辑结构是一张二维表
- 关系——一个关系一张表
- 元组——表中的一行
- 属性——表中的一列,每个属性有属性名
- 主码——码键。表中某个属性组
- 域——一组有相同数据类型的值的集合,属性的取值范围来自于域
- 分量——元组中的一个属性值
- 关系模式——对关系的描述
- 关系必须规范化,关系的每一个分量必须是不可分的数据项,不允许表中表存在
- 数据操作是集合操作,操作对象和操作结果都是关系,提高数据独立性和用户生产率
- 关系完整性约束条件1.实体完整性2.参照完整性,.用户定义的完整性
- 概念单一(实体和联系用关系表示,数据的检索结果也是关系)、存取路径透明(高数据独立,更好的安全保密,简化开发工作)。但查询效率不如格式化数据模型,必须对用户查询请求优化,增加开发数据库管理系统的难度
概念模型(信息模型)
- 按照用户的观点来对数据和信息的建模
- 设计人员和用户之间进行交流的(简单,清晰,容易理解)
- 表示方法:实体-联系方法(E-R方法)
逻辑模型和物理模型
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等用于DBMS的实现
- 物理模型是对数据最底层的抽象
- 现实世界——>概念模型(设计人员完成)——>逻辑模型(设计人员完成)——>物理模型(DBMS完成)
第四讲:数据库系统的组成
- 硬件方面:足够大的内存、磁盘、高通道能力,提高数据传送率
- 软件方面:支持的操作系统、编译系统、应用开发工具、特定环境的数据库应用系统
- 人员:管理员、设计员、程序员、用户(不同人员涉及不同的数据抽象级别,具有不同的数据视图)
- 数据库管理员:确保数据库正确运行、参与存储结构策略设计、参与数据安全性和完整性约束、监控数据库使用和运行、数据库改进和存储
- 系统分析员:确定软硬件配置、需求分析和规范说明
- 数据库设计员:需求调查和系统分析、确定数据、设计模式
- 应用程序员:设计编写应用程序
- 用户
- 偶然用户
- 简单用户
- 复杂用户