• 【SQL Server + MySQL三】数据库设计【ER模型+UML模型+范式】 + 数据库安全性


    极其感动!!!当时学数据库的时候,没白学!!

    • 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固
    • 真的是语雀分享要花钱,要不一定把笔记给贴出来
    • (;´༎ຶД༎ຶ`) ,除了vue和react之外,最常看的一份笔记了!!!!

    xd们,一定要收藏粘贴下来,真的没有自夸!!!!

    • 当时学的时候,想来:就一份笔记么?脑子有病的人才一直记来记去的【框框自嘲】!有啥可分享的?现在,真香!!!

    第四章 数据库设计

    4-1 数据库设计

    image-20220402145535759

    4-1-1 数据库设计步骤

    4-1-1-1
    1. 数据库设计(Database Design,DBD): 构造最优的数据模型,建立数据库及其应用系统的过程

    2. image-20220402145807873

      • 软件生存期: 从软件的规划。研制、实现、投入运行后的维护,直到被新的软件所取代而停止使用的整个期间
      • 以数据库为基础的信息系统通常称为数据库应用系统
        • 采集、组织、加工、抽取、综合和传播等功能
      • 数据库应用系统的开发是一项软件工程,“数据库工程”
    3. 数据库系统生存期

      image-20220505113831121

    4-1-1-2 规划步骤
    1. 系统调查
    2. 可行性分析
    3. 确定数据库系统的总目标
    4-1-1-3 需求分析阶段
    1. 需求说明书的形式,作为以后系统开发的指南和系统验证的依据

    2. 需求分析步骤:

      image-20220402150457848

    4-1-1-4 概念设计–ER方法
    1. 主要步骤:
      • 进行数据抽象,设计局部概念模型
        • 实际事物、概念的共同特性
        • 概念结构是对现实世界的一种抽象
      • 局部概念模型综合成全局概念模型
      • 评审
    2. 方法 :
    • 实体联系方法(ER方法)
    • 结果是得到一个与DBMS无关的概念模型
    4-1-1-5 逻辑设计阶段
    1. 目的 : 概念设计阶段设计好的概念模型转换成 与选用的具体机器上的DBMS所支持的数据模型 相符合的 逻辑结构(数据库逻辑模型和外模型)
    2. 逻辑设计 ,首先选择DBMS
    3. 主要步骤 :
      • 概念模型转换成 逻辑模型
      • 设计外模型
      • 设计应用程序与数据库的接口
      • 评价模型
      • 修正模型
    4-1-1-6 物理设计阶段
    4-1-1-7 数据库的实现
    4·-1-1- 8 数据库的运行和维护
    1. DBA完成
      • 数据库的转储和恢复

    4-1-2 概念设计工具

    4-1-2-1 数据库概念模式设计-----ER模型
    1. ER图 【Entity Realationship Model实体联系模型】:
    4-1-2-1-1 ER模型的基本元素
    1. 实体 :

      • 实体(Entity)是指数据对象,指应用中可以区别的客观存在的事物
      • 实体集: 同一类实体构成的集合
    2. 联系 :

      • 联系(Relationship) : 一个或多个实体之间的关联关系
      • 联系集: 同一类联系构成的集合
    3. 联系的元数 : 一个联系涉及到的实体集个数,称为该联系的元数度数

      • 一元联系 (递归联系): 同一实体集内部实体之间的联系
      • 二元联系: 两个不同实体集实体之间的联系
    4. 联系类型 :限制参与联系的实体的数目 :

      • 二元联系类型

        • 1:1

          image-20220402153227606

        • 1:n

          image-20220402153345305

        • m:n

          image-20220402153445254

      • 一元联系 :

        • 1:1联系

          image-20220402153544992

        • 1:n联系

          image-20220402153609738

        • m:n

          image-20220402153623021

    4-1-2-1-2 设计局部ER模型
      • 确定局部结构范围
      • 确定实体
      • 确定属性
      • 确定实体间联系
    1. 每个实体必须有实体标识符

      image-20220402154615832

    2. 例题

      image-20220402154906095

      image-20220402154808921

    4-1-2-1-3 ER模型 向关系模型的转换
    1. ER图转换成 关系模式集的规则

      • 步骤一 ---->实体类型的转换 : 将每个实体类型转换成一个关系模型

        • 实体的属性即为关系模型的属性
        • 实体标识符即为关系模式的键
      • 步骤二: 联系类型的转换 : 不同情况做不同的处理

        • ----> 二元联系类型的转换

          image-20220402171426334

    2. 实体类型转换成关系模型的例子 :

      image-20220402170502363

      image-20220402171404478

    4-1-4 ER模型做逻辑设计

    4-1-4-1
    1. ER图转换成关系模式集的算法
      • 步骤一(实体类型的转换):将每个实体类型转换成一个关系模式、
        • 实体属性即为关系模式的属性
        • 实体标识符即为关系模式的键
      • 步骤2(联系类型的转换):不同情况做不同的处理

    4-1-3 UML模型做概念设计和逻辑设计

    4-1-3-1 数据建模
    1. 对于一个特定的应用,如何在数据库中表示数据
      • 设计关系模型方法
        • 关系模型设计理论
        • 概念设计模型
          • E/R----传统的
          • UML子集-----目前常用的
    4-1-3-2 UML
      • Unified Modeling Language:统一建模语言
      • UML用于面向对象建模,现在也用于数据库建模
      • UML与E/R模型相似,但是不提供多元联系
    1. UML与E/R

      image-20220402173029561

    4-2 逻辑设计工具—关系数据库规范化理论【5.5这里】

    image-20220402173643415

    4-2-1 数据依赖(FD)

    4-2-1-1 回顾
    1. 关系 : 描述实体及其属性、实体间的联系
      • 一张二维表,是所设计属性的笛卡尔积的一个子集
    2. 关系模式 : 用来定义关系。Sdept(Sno,Sname,Ssex)
    3. 关系数据库 : 基于关系模型的数据库,利用关系来描述现实世界 现实世界
    4. 关系数据库的模式: 定义这组关系的关系模式的全体
    4-2-1-2 关系模式的形式化定义
    1. 关系模式由五部分组成 : R(U,D,DOM,F)``R(U)
      • R : 关系名
      • U: 组成该关系的属性名集合
      • D: 属性组U中属性所来自的域
      • DOM: 属性向域的映像集合
      • F : 属性间数据的依赖关系集合
    2. 完整性约束的表现形式:
      • 限定属性取值范围
      • 定义属性值间的相互关连,这就是数据依赖,数据库模式设计的关键
    3. 数据依赖 :
      • 通过一个关系中属性间值得相等与否体现出来得数据间的相互关系
      • 现实世界属性间相互联系的抽象
      • 数据内在的性质
    4. 数据依赖的主要类型 :
      • 函数依赖(functional Dependency),FD
      • 多值依赖(Multivalued Dependency),MVD
      • 连接依赖
    5. 关系模式的简化表示
      • 关系模式R(U,D,DOM,F),简化—> R(U,F)
      • 当且仅当U上的一个关系r满足F时,r称为关系,模式R(U,F)的一个关系
    4-2-1-3 关系模式Student(U,F)中存在的问题
      • 数据冗杂太大 : 浪费大量的存储空间
      • 更新异常 : 数据冗杂,更新数据时,维护数据完整性代价大
      • 插入一场 : 改插的数据插不进去
      • 删除异常 : 不该删除的数据不得不删
    1. Studednt关系模式不是一个好的模式 :
      • 原因 :
    2. 规范化理论 :
      • 改造关系模式
      • 分解关系模式类似消除不合适的数据依赖
      • 解决插入异常、删除异常、更新异常和数据冗杂
    4-2-1-4 函数依赖
    1. 函数依赖 : 设R(U)是一个属性集U上的关系模式,X和Y是U的子集,若对于R(U)的任意一个可能的关系r

      • r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等
      • “X函数确定Y”或“Y函数依赖于X”,记作X—>Y
        • X称为这个函数依赖的决定属性集(Determinant)
    2. 例题 :

      image-20220408103756573

    4-2-1-4-1 平凡函数依赖与非平凡函数依赖
    1. 在关系模式R(U)中,对于U的子集X和Y

      • 如果X–>Y,但Y 不属于 X,则称X—>Y是非平凡的函数依赖

      • 如果X–>Y,但Y属于 X,则称X—>Y是平凡的函数依赖

        image-20220408114940711

    4-2-1-4-2 完全函数依赖与部分函数依赖
    1. 在关系模式R(U )中

      image-20220408115140778

      image-20220408115454057

    4-2-1-4-3 传递函数依赖
    1. 关系模式R(U)中

      image-20220408115723899

    4-2-1-4-4 码
    1. K为关系模式R(U,F)中的属性或属性组合
    2. U 完全依赖于 K , 则K称为R的一个候选码(Candidate Key)
    3. 若关系模式R有多个候选码,则选定其中的一个作为主码(Primary key)
    4. 候选码能够唯一标识关系的元组,是关系模式中一组最重要的属性

    4-2-2 范式(NF)

    • 第一范式(1NF)
    • BC范式(BCNF)
    • 四,五
    4-2-2-1 第一范式(1NF)
    1. 如果一个关系模式R的所有属性都是不可分的基本数据项,则R属于1NF

      • 第一范式是对关系模式的最基本的要求
      • 不满足第一范式的数据库模式不能称为关系数据库
    2. 只满足第一范式的关系模式并不是一个好的关系模式

    3. image-20220408121919371

    4. image-20220408121958509

      image-20220408122020244

    5. 分解 :

      image-20220408122109061

    4-2-2-2 第二范式(2NF)
    1. 弱关系模式R属于1NF,并且每一个非主属性都完全函数依赖于R的码,则R属于2NF

      image-20220408122403261

    2. 2NF关系模式SL(Sno,Sdept,Sloc)中

      • 函数依赖

      • SL的码是Sno

      • Sloc传递函依赖于Sno,即SL中存在非主属性码的传递函数依赖

        image-20220408122555396

    4-2-2-3 第三范式(3NF)
    4-2-2-4 BC范式
    1. BCNF : BCNF是修正的第三范式

    2. 设关系模式R∈1NF,对于R的每个人函数依赖,X----> Y ,若Y不属于

    3. BC范式与第三范式的关系 :

      • 如果关系模式R∈BCNF,必定有R∈3NF
      • 如果R∈3NF,且R只有一个候选码,则R必属于BCNF

    4-2-3 关系模式的规范化

    1. 关系数据库的规范化理论是数据库逻辑设计的工具
      • 一个关系只要分量都是不可分的数据项,就是规范化的关系,只是最基本的规范化
      • 规范化程度可以有6个不同的级别,6个范式
    2. 规范化 ---->高级范式 : 解决插入异常、删除异常、修改复杂、数据冗杂
    3. 关系模式的规范化 :
      • 一个低一级范式的关系模式,通过模式分解—> 若干高一级范式的关系模式集合
    4-2-3-1
    1. 步骤 :

      image-20220411144713589

    第五章 数据库安全性

    5-1 安全性控制的一般措施

    1. 安全性
      • 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露。更改或破坏
      • 数据保密 :
        • 用户合法访问到机密数据后能否对这些数据保密
        • 通过制定法律到的规则

    image-20220411152511541

    1. 用户标识与鉴定
      • 系统提供一定的发方式让用户标识自己的身份或名字
      • 系统内部 记录着所有合法用户的标识
      • 每次用户要求进入系统时
    2. 存取控制 :
      • 存取控制机制的功能
        • 保护用户只能访问其有权存取的数据
      • 存取控制机制的组成 :
        • 定义存取权限
        • 检查存取权限
      • 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统
    3. 定义视图
    4. 审计:
      • 一个专用的审计日志,系统自动将用户对数据库的所有操作记录
    5. 数据加密

    5-2 DCL进行存取权限管理

    5-2-1 SQL的授权功能

    1. grant语句的一般格式 :

      grant <权限>[,<权限>]...
      	[ON <对象类型><对象名>]
          TO <用户>[,<用户>]...
          [WITH grant option];
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 功能 : 将对指定操作对象的指定操作权限授予指定的用户
    2. 操作权限 :

      image-20220411153934467

    3. 用户的权限

      • 数据库的建立表(createtab)的权限属于DBA,可由DBA授予普通用户,拥有此权限后可以建立基本表
      • 基本表或视图的属主拥有对该表或视图的一切操作权限
    4. 接收权限的用户

      • 一个或多个具体用户
      • public
    5. with grant option

      • 指定改子句后,则获得某种权限的用户可以把这种权限在授予别的 用户
      • 没有指定,则或者某种权限的用户只能使用该权限,不能传播


    1. 例题 :把查询Student表权限授给用户UI

      grant select 
      	on table Student
          to U1;
      
      • 1
      • 2
      • 3
    2. 把对表SC的查询权限授予所有用户U4

    3. 把查询Student表和修改学生姓名的权限授给用户U4

    4. 把对表SC的INSERT权限授予U5用户,并允许

  • 相关阅读:
    Qt 学习(三) —— Qt 模块
    Nodejs & JavaScript 字符串加密
    6.1810: Operating System Engineering <LEC 1>
    对Numpy切片的认识
    动态加权平衡损失:深度神经网络的类不平衡学习和置信度校准
    java ssh 二手车交易管理系统eclipse开发mysql数据库MVC模式java编程网页设计
    【面经,数据分析岗】某头部汽车外企,简称车企;某医疗科技外企,简称医企
    el-table表格中加入输入框
    一句话总结设计模式
    1.7.1、常见的计算机网络体系结构
  • 原文地址:https://blog.csdn.net/hannah2233/article/details/128095082