软件设计师(数据库)

数据库

  • 三级模式两级映像

    • 外模式(用户模式 子模式)=》视图、概念模式(模式)=》基本表、内模式(存储模式)=》存储文件
    • 外模式/模式映像(逻辑独立性)、模式/内模式映像(物理独立性)
  • 关系模式

    • 元组(行)一条记录、属性(列)第一行是属性名,后面是属性值(数据项)
    • 候选码(候选键)能够唯一地标识一个元组
    • 主码(主键)候选码中,从中选一个作为主码(有时候主码等于候选码)
    • 主属性:包含在候选码中的属性,不包含为非主属性
    • 外码:不是本关系中的主码,确是另外一个关系的主码
    • 全码:所有属性组成才是这个关系模式的候选码
    • 超码:在原有的候选码的基础上加一个属性作为候选码
    • 关系模型由关系数据结构、关系操作集合、关系完整性约束
      • 完整性约束
        • 实体完整性=》主属性的值不能为空或者部分为空
        • 参照完整性
          • 关系1的外码x与关系2的主码必须相对应,外码x的值必须在关系1中找到,或者为空
        • 用户自定义完整性
  • 关系代数运算符

    • 集合运算符:并交差(1-2属于1不属2)笛卡尔积
    • 专门的关系运算符:选择(出来满足的行)投影(出来列)连接除
      • 都要先笛卡尔积后在筛选 theat连接 等值连接(符号=)
      • 自然连接
        • 先笛卡尔积后,挑共同属性的列当列都相等的时候,然后去除其中一个关系中的列,剩下的就是
        • 左(右)外连接,先自然连接,然后左(右)记录保存,没有的为null
        • 全外连接,先自然连接后左右连接
      • 转SQL语句
        • 投影就是select xx from xx
        • 选择就是where xxx
        • 笛卡尔积 select xxx from R,S
        • 自然连接 select xxx from R,S where xx and xx 把一样的列杀掉
  • SQL

    • SQL语言的分类
      • DDL数据定义语言
        • create创建 alter修改 drop删除
      • DML数据操纵语言
        • insert into S values xxx、delete from S、update S set xxx
      • DQL数据查询语言
        • distinct去掉重复列 as给列取别名 跟在列后面 表格的别名则直接取
        • between x and x在x x之间 where x in (xxx)中选一个
        • (not) like 模糊查询 %任意长度 _单个字符
        • order by xxx desc降序 默认升序asc 需要是最后一个语句
        • 聚合函数
          • avg平均 sum求和 max最大 min 最小
          • count(*)行数 空的不计算进去
          • group by 分组 having 分组后的条件 分组后面的要在select后出现
          • 等值连接 select * from S where S.x=C.x
          • 左右连接 from C left join S on 条件
          • 内外连接 inner join outer join
          • 子查询 where exists (select xxx)
          • union 并 intersect 交 except 差 对查询结构的操作
      • DCL数据控制语言
      • 授权 grant 权限(insert) on table S to 用户
      • with grant option
      • 移除 remove 权限 on table 用户(public全部)
  • 视图

    • 视图是一个或者从多个基本表或视图中导出的表,是一个虚表
    • 创建 create view 视图名 as select xxx
    • 最后如果加了这句 with check option后 对视图就是update insert delete的时候要遵守 定义视图的时候where后的条件所有条件
  • 创建索引改变的数据库的内模式

  • 关系模式

    • X->Y Y依赖于X 如果Y不包含X,那么是非平凡依赖(正常) 有包含则是平凡
    • X–f–>Y Y完全函数依赖 X里面的子集都不可以单独推出Y 一推一 一定是完全
    • X–p–Y Y部分(局部)函数依赖 X里面的子集就可以推出来Y
    • X->Y Y->Z 得到X->Z 传递函数依赖
  • 闭包 找只有左边的字符看能不能推出U,不行再加左右都有的字符,直到推出U

  • 范式

    • 第一范式:每个原子项都是不可分割的数据项
      • 不能排除数据冗余和更新异常等问题(插入删除),可能存在函数部分依赖
    • 第二范式(第一分解后):满足第一范式,且每个非主属性都完全函数依赖于候选码(消除非主属性对候选码的部分依赖)
      • 不能排除数据冗余和更新异常等问题(插入删除),可能存在函数传递依赖
    • 第三范式(第二继续分解):满足第二范式,且每个非主属性都非传递函数依赖于候选码(消除非主属性对候选码的传递依赖)
      • 可能存在主属性对码的部分函数依赖和传递依赖(消除了就是BCNF)
    • 第四范式:X->->Y多值依赖。X都包含了R的一个候选码,则就是第四范式
      • 消除非平凡且非函数依赖的多值依赖
  • 数据库设计

    • 六个步骤
      • 用户需求分析(了解用户需求确定系统边界)
        • 作为概念结构设计的依据、建立需求说明文档、数据字典、数据流图
      • 概念设计(E-R图)
        • 复合属性 ps:地址 可以分省市县 不可再分就是简单属性
        • 多值属性 ps:一个属性对应一组值 亲属多个 一对一就是单值属性
        • null属性,没有值或者未知就是null,表示无意义或者不知道
        • 派生属性 ps:年限年龄 通过别的属性操作得来 年龄=今年-出生日期
        • 选择局部应用:设计局部视图=》合并取消冲突=》修改重构消除冗余
          • 合并冲突种类:属性冲突(同一属性存在不同的E-R图) 、命名冲突(相同意义的属性在不同的E-R图上有着不同的命名,或者是名称相同的属性在代表着不同的意义)、结构冲突(同一实体在不同的E-R图有着不同的属性,在这里是实体在那边是属性)
      • 逻辑设计(关系模式、关系规范化)
        • 将E-R图转换为指定的数据模型、确定完整性约束和确定用户视图
      • 物理设计、数据库实施阶段、数据库运行维护阶段
      • E-R图转关系模式
        • 1-1的时候,第一种:联系变成独立的模式,加入联系的属性,跟两实体的码,主码为任一实体的码。第二种,把一方的实体的码跟联系属性加到另外一方的实体里面进去。
        • 1-n的时候,第一种:联系变成独立的模式,加入联系的属性,跟两实体的码,m边的玛为实体的码。第二种,把一方的实体的码跟联系属性加到多方的实体里面进去。
        • m-n的时候,联系变成独立的模式,加入联系的属性,跟两实体的码,两边的玛构成实体的码。
  • 事务

    • 原子性(要么都做要么都不做)、一致性(一个一致性状态变成另外一个一致性状态)、隔离性(相互隔离,多个事务执行,对其他事务是不可见的)、持久性(事务成功提交,对数据库操作也永久有效)
  • 封锁

    • 排他锁(X锁或者写锁),加X锁后不可以加其他锁了X也不行,可读可修改
    • 共享锁(S锁或者读锁),加S锁后还可以加S锁,只读不可修改
  • 分布式数据库
    请添加图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45113182/article/details/128679144