系统分析师-第四章(数据库系统 A)

数据库管理系统概述

  • 技术发展:人工管理->文件系统->数据库->高级数据库
  • 数据库是 在计算机内有组织、可共享的数据集合
  • 数据库管理系统(DBMS)
    • 数据库的定义和建立
    • 数据库的操作
    • 数据库的控制
    • 数据库的维护
    • 故障恢复
    • 数据通信
  • 数据库系统(DBS)
    • 构成:硬件、软件、数据库 和 数据库管理员DBA
    • 分类
      • 集中式
      • 客户/服务器
      • 并行式
      • 分布式

数据库模式

  • 三级模式 [用户模式->概念模式->内模式->物理数据库]
    • 外/用户模式 用户通过外模式操作数据库中的数据,一个应用对应一个外模式 [用户视图]
    • 内模式 描述数据物理结构和存储方式,一个数据库只有一个内模式 [内部视图]
    • 概念/逻辑模式 描述数据库的逻辑结构,一个数据库只有一个概念模式 [DBA视图]
  • 三个级别
    • 用户级->用户模式 [多视图]
    • 概念级->概念模式 [一个DBA视图]
    • 物理级->内模式 [一个内部视图]
  • 两级映射
    • 逻辑独立性外模式/概念模式映射
    • 物理独立性概念模式/内模式映射
    • 实现难度:逻辑独立性 > 物理独立性

数据模型

  • 关系模型分类
    • 概念数据模型 (实体关系[E-R]模型)
      • 数据库设计
    • 基本数据模型 (结构数据模型)
      • DBMS实现
  • 基本数据模型
    • 三要素:数据结构数据操作完整性约束
    • 层次模型 树形结构,指针实现,1:n
    • 网状模型 有向图结构,m:n
    • 关系模型 表格结构,严格数据概念
    • 面向对象模型
  • 关系模型
    • 域 D 一组具有相同数据类型的值集合
      • 同一个域可能对应多个列,比如 name、desc 都是 varchar 域
      • 每列的名字 叫做属性
    • 笛卡尔积
      • D1 X D2 X ..., Dn= {(d1, d2 ..., dn) | dj∈Dj, j=1,2...,n}
      • (d1, d2 ..., dn) 叫做元组(行)
      • 元组中的每一个d叫做分量
    • 关系
      • D1 X D2 X ..., Dn 的子集叫做在域上的关系,用R(D1, D2 ..., Dn)表示,R是关系名n是关系的目或者度
      • 关系是一个二维表,列上的名字叫做 属性
      • 属性能唯一标识一个元组,称候选码,如果有多个候选码,选一个作为主键(构成主键的属性称为主属性)
      • 所有属性都是候选码,称为全码
      • 类型
        • 基本关系(基本表) 实表,实际存储数据的逻辑表示
        • 查询表 查询结果返回的表
        • 视图表 虚表,不对应实际存储数据
    • 五元组 R(U, D, DOM, F)
      • U 是属性名集合
      • D 是U中属性来自的域,DOM 是U->D的映射
      • F 是属性之间数据的依赖关系
      • R(A1, A2 ..., An) R 是关系名,Ax是属性名
  • 关系模式 是型(静态的),关系 是值(动态的)
  • 规范化理论
    • 函数依赖
      • 完全依赖 X->Y成立,但是X'->Y不成立,那么Y完全依赖于X
      • 部分依赖 X->Y成立,但是X'->Y成立,那么Y部分依赖于X
      • 传递依赖 X->Y成立,Y->X不成立,Y->Z成立,那么 Z传递依赖于X
      • 推理规则
        1)自反率 若Y⊆X⊆U,则X->Y在R上成立
        2)增广律 若X->Y在R上成立,Z⊆U,则XZ->YZ在R上成立
        3)传递律 若X->Y,Y->Z在R上成立,则X->Z在R上成立
        推理规则:
        1)合并规则 若X->Y,X->Z在R上成立,则X->YZ在R上成立
        2)伪传递规则 若X->Y在R上成立,Z⊆Y,则X->Z在R上成立
        3)分解规则 若X->Y,WY->Z在R上成立,则WX->Z在R上成立
    • 在R(U,F)中 F包含的函数依赖叫做F的闭包=F+
    • 极小/最小函数依赖
      • 只有一个属性
      • 不存在一个函数依赖X->A,使得F与F-{X-A}等价
      • 不存在一个X->A的真子集Z使得F-{X-A} V {Z->A} 与F等价
  • 范式
    • 第一范式 1NF 所有属性不可再分,原子性
    • 第二范式 2NF 所有非主属性完全依赖于候选键
    • 第三范式 3NF 所有非主属性都不传递依赖于候选键
    • BCNF范式 关系R是1NF,且所有属性都不传递依赖于R的候选键
  • 关系模式分解
    • 无损连接分解 R1∩R2=R1-R2 或者 R1∩R2=R2-R1
      • 分解后是否保持函数依赖性
    • 有损连接分解

数据操作

  • 查询和更新
  • 集合运算 (交,并,差,笛卡尔)
  • 关系运算
    • 投影(select 指定列)
    • 选择(where)
    • **连接(笛卡尔) **
      • 等值连接
      • 自然连接[A,B集合属性值相等的行并且保留一份属性,自由属性保留]
    • 外链接
      • left join
      • right join
      • inner join
C2A64584-9385-4120-960E-A542E8FED7E4.png
  • 元组演算
5491A47E-A5A7-4BF2-8047-8371C894D32A.png
  • 数据库访问接口(网络透明性[支持各种网络类型]、服务器透明性[统一SQL]、语言透明性[任何编译语言])
    • 专用接口 速度快,不通用
    • ODBC
      • 构成
        • 应用程序、驱动程序管理器、驱动程序、数据源
      • 级别
        • 核心级,扩展1级、扩展2级
    • JDBC

数据库控制功能

  • 事务不可再分逻辑工作单位,要么都做,要么都不做
    • BEGIN TRANSACTION,COMMIIT,ROLLBACK
  • 关系型数据库 ACID 四特性:
    • 原子性(Atomicity)
    • 一致性(Consistency)
    • 隔离线(Isolation)
    • 持久性(Durability)
  • 并发控制
    • 问题
      • 丢失更新 -> T1,T2并行修改,有一个被覆盖
      • 不一致分析(读过时数据,不可重复读) T1读数据后进行操作的中间,T2读取后并修改了数据,T1做校验时发现前后不一致
      • 依赖于未提交更新数据(读脏数据) T1提交后,T2读取,这时候T1回滚数据,T2没有被通知到,还是用旧手
    • 解决方法是 加锁
      • S锁(share共享锁/读锁)
      • X锁(排他锁)
    • 封锁协议
      • 一段封锁协议 解决丢失更新,修改时加X锁
      • 二段封锁协议 解决丢失更新,解决不一致分析/不可重复读,读时加S锁,读完就释放,再做事务操作
      • 三段封锁协议 解决丢失更新,解决不一致分析/不可重复读,读脏数据 读时加S锁,直到事务完成,才释放S锁
      • 两段锁协议
        • 会出现死锁问题
    • 封锁粒度(属性集(列锁),元组(行锁),关系(表锁),索引项,数据库,物理页/块...)
      • 粒度越细,并发越高,开销越大
      • 粒度越粗,并发越小,开销越小
    • 死锁
  • 备份与恢复
    • 数据库故障分类
      • 事务内部故障
      • 系统范围内故障
      • 介质故障
      • 计算机病毒
    • 解决手段
      • 数据备份(数据转存[磁带/存储备份])
        • 静态备份 -> 必须停服务,降低可用性
        • 动态备份 -> 无法保证数据正确性
        • 增量备份
        • 全量备份
      • 日志文件
        • 先写日志原则,回放了所有对数据库的操作
        • 重做(redo)日志
      • 数据恢复
        • 不同故障的解决手段不同
        • 回放日志
  • 数据库安全性
    • DBMS提供的用户身份识别,视图,权限控制,审计
    • 系统应用提供
    • 用户认证
      • 密码口令
      • 强身份认证(用户证书,智能卡,用户指纹等...)
    • 用户角色 (superadmin,DBA,普通用户)
    • 数据授权
      • 数据库级别、表级、属性级、行级
      • 存取控制两原则:
        • 隔离原则 用户只能操作自己的角色/用户分配到权限的数据
        • 控制原则 用户只能以被分配到的方法去操作数据
        • 静态(默认)/动态(手动) 授权
    • 数据视图 虚拟表,访问数据不具备独立对象存储
    • 审计 事后监督,记录用户的访问行为和系统状态
      • 跟踪 不同于审计,更类似于行为分析和系统调试,不会记录
      • 用户审计 由DBMS审计系统记录至日志文件
      • 系统审计 由DBA执行,内容主要是系统命令及数据库使用情况
  • 数据库完整性
    • 完整性约束
      • 静态约束 语法、语义限制和数据间的逻辑约束
      • 动态约束 动态列级约束,动态元组(行)约束,动态关系(表)约束
    • 完整性控制
      • 实体完整性 主码不为空
      • 参照完整性 外码不为空
        • 删除
          • 级联删除
          • 受限删除
          • 置空删除
      • 用户定义完整性
      • 触发器(除了保证完整性,还保证安全性
  • 数据库性能
    • SQL性能优化
    • 数据库性能优化
      • 监控系统指标
      • 调整参数
      • 跟踪参数及结果,是否符合预期
    • 查询优化

数据库设计及建模

  • 数据库设计
    • 规划 -> 需求分析 -> 概念设计 -> 逻辑设计 -> 物理设计 -> y应用程序设计 -> 运行维护
  • 实体联系模型(E-R图)
    • 强调的是语义
    • 实体(正方形) - 属性(椭圆) - 联系概念上
    • 一个实体E-R图可以拆分成多个子系统E-R图
      • 冲突:属性冲突、命名冲突、结构冲突
      • 冗余:根据数据字典数据流图消除冗余

分布式数据库系统

  • 特征
    • 独立性
    • 集中与自治共享结合的数据结构
    • 适当增加数据冗余
  • 目标
    • 适应部门结构,降低费用
    • 充分利用资源
    • 提高可靠性和可用性
  • 存储方案
    • 集中式、分割式、全复制、混合式
  • 数据分片
    • 水平分片、垂直分片、混合分片
  • 组成结构:全局外模式 -> 全局概念模式 -> 分片模式 -> 分布式
  • 分布式数据库管理系统
    • LDBMS 局部DBMS
    • GDBMS 全局DBMS
    • 全局数据字典
    • 通信管理

关系型数据库系统(RDBS)

  • 关系型数据库三要素
    • 数据结构
    • 数据操作
    • 数据约束条件

数据仓库(DataWareHouse)

  • OLTP(传统关系型数据库)
    • 事件驱动
  • OLAP(数据仓库)
    • 决策驱动
    • 是核心,多维数据分析根据集合
    • 多维度分析与跨维度分析
      • 钻取 上钻、下钻
      • 剩余维度为2切片,剩余维度是3切块
      • 旋转 行列互换
    • 系统架构
      • 基于关系型数据库 ROLAP
        • 事实表(存储数据和维关键字)
        • 维度表(存储维表信息)
        • 模型:星型模型(事实表和维表用主外键关联)雪花模型(多表表示, 星型模型的扩展)
      • 基于多维数据库 MOLAP
        • 模型:形成立方体(cube)结构,对立方体进行旋转、切片、切块
      • 基于混合数据库 HOLAP
  • BI = 数据仓库(DataWareHouse) + 联机分析处理 + 数据挖掘(DataDeep)
  • 特征
    • 面向主题
    • 集成
    • 相对稳定(非易失)
    • 随时间变化
  • 分类
    • 企业级仓库
    • 数据集市 -> 特定用户\企业数据的一个子集
    • 虚拟仓库 -> 视图集合
  • 聚集和立方
    • 聚集 对数据的预处理
    • 立方 是聚集的结果组合,超过3时,成为超立方体
  • 数据仓库参考框架:数据源、数据准备去、数据仓库服务器、数据集市/知识挖掘库、管理应用工具
  • 数据仓库体系结构: 数据源、数据的存储和管理、OLAP服务器、前端工具
  • 数据仓库构建步骤:规划->需求分析->问题分析->数据ETL->

数据挖掘

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容