系统架构设计师-数据库系统(2)

news2025/1/4 19:25:45

目录

一、规范化理论

        1、规范化理论的基本概念

        2、Armstrong公理

        3、候选键

        4、范式

        5、模式分解


一、规范化理论

        1、规范化理论的基本概念

                非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。 

                下表可拆分为 学号、姓名、系号 和 系号、系名、系位置 两张表。

                设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元祖u,v,只要有u[X] = v[X],就有u[Y] = v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X->Y。

 

        2、Armstrong公理

                关系模式R<U,F>来说有以下推理规则:

                A1.自反率(Reflexivity):若Y⊆X⊆U,则X->Y成立。

                A2.增广率(Augmentation):若Z⊆U且X->Y,则XZ -> YZ成立。

                A3.传递率(Transitivity):若X->Y且Y->Z,则X->Z成立。

                根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:

                合并规则:由X->Y,X->Z,有X->YZ。(A2,A3)

                伪传递规则:由X->Y,WY->Z,有XW->Z。(A2,A3)

                分解规则:由X->Y及Z⊆Y,有X->Z。(A1,A3)

        3、候选键

                主属性与非主属性:组成候选码的属性就是主属性,其他的就是非主属性。

                例如:在{A,B,C,D,E}中,候选码为 {AB,AC},则主属性就是{A,B,C}

                找候选键的方式:

                (1)将关系模式的函数依赖关系用 “有向图” 的方式表示。

                (2)找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有节点,则该属性集即为关系模式的候选键。

                (3)若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间节点(即有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。

        4、范式

                (1)第一范式(1NF):属性值都是不可分的原子值

                        在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。 

                        答:将表字段改为系名称、教授人数、副教授人数。

 

                (2)第二范式(2NF):消除非主属性对候选键的部分依赖

                        当且仅当实体E是第一范式(1NF),且每个非主属性完全依赖主键(不存在部分依赖)时,则称实体E是第二范式。                         答:将上表分为 { 学号、课程号、成绩 } 和 { 课程号、学分 } 两个表,可满足第二范式2NF。 

 

                (3)第三范式(3NF):消除非主属性对候选键的传递依赖

                        当且仅当实体E是第二范式(2NF),且E中没有非主属性对候选键存在传递依赖时,则称实体E是第三范式。                         答:将上表分为 { 学号、姓名、系号 } 和 { 系号、系名、系位置 } 两个表,可满足第三范式3NF。 

 

                (4)第四范式(BCNF):消除主属性对候选键的部分和传递依赖

                        设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含某个候选码 

                        U = { S,T,J },F= { T->J,SJ->T }  

                        答:候选键为 { ST、SJ },主属性为 { S、T、J } ,没有非主属性,满足第三范式3NF,因为 T->J 所以不满足第四范式BCNF。 

        5、模式分解

               【保持函数依赖分解】

                设数据库模式p= { R1,R2,···,Rk } 是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果 { F1,F2,···,Fk } 与F是等价的(即相互逻辑蕴含),那么称分解p保持FD。

                答:因为拆分后A->B,B->C,符合之前的依赖关系,所以保持依赖。 

                答:因为拆分后A->B,B->C,由此能推出B->C,符合之前的依赖关系,所以保持依赖。 

                 答:因为拆分后A->B,A->C,无法推出B->C,不符合之前的依赖关系,所以保持依赖。 

                 答:因为拆分后A->B,A->C,D->E,符合之前的依赖关系,所以保持依赖,但它不是无损分解,是有损。

  

                【无损分解】

                什么是有损,什么又是无损?

                有损:不能还原。 无损:可以还原。

                无损链接分解:指将一个关系模式分解成若干个关系模式后,通过自然链接和投影等运算仍能还原到原来的关系模式。

                简单来说就是采用公式法,先做交集再做差集。(不过只适用于分解成两个关系模式)

                答:R1∩R2得A,R1-R2得B,R2-R1得C,所以A->B,A->C,与F= { A->B } 有重合,p1是无损分解。

                        R1∩R3得B,R1-R3得A,R3-R1得C,所以B->A,B->C,与F= { A->B } 没有重合,p2是有损分解。

                解:因为传递依赖关系第一问选D。

                        分解后U1满足A->BC,U2满足B->D,D->E,所以保持函数依赖。U1∩U2得B,U1-U2得AC,U2-U1得DE,所以B->AC,B->DE,与F = { A->BC,B->D,D->E } 有重合,所以是无损连接。

                答:D、A。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链表应用(C++,递增合并、递增求交集、逆序、删除区间)

#include<iostream> using namespace std; typedef struct list {int data;list* next; }list,*linklist; void Newlist(linklist& l) {l new list;l->next NULL; } void Createlist(linklist& l) {cout << "输入链表长度&#xff1a;" <…

OpenCV之摩尔纹

摩尔纹 用数码相机拍摄景物中&#xff0c;如果有密纹的纹理&#xff0c;常常会出现莫名其妙的水波样条纹。这就是摩尔纹。简单的说&#xff0c;摩尔纹是差拍原理的一种表现。从数学上讲&#xff0c;两个频率接近的等幅正弦波叠加&#xff0c;合成信号的幅度将按照两个频率之差变…

捕获多种异常练习

捕获多种异常 下面存在三种异常&#xff1a;ValueError、KeyboardInterrupt 和其他异常&#xff0c;分别捕获并输出相应的提示语句 当用户输入123以外的字符时出现ValueError异常&#xff0c;这时提示用户输入数字1-3&#xff1b;当用户在输入数字后CtrlC时出现KeyboardInterru…

利用Pycharm将python程序打包为exe文件(亲测可用)

最近做了一个关于py的小项目&#xff0c;对利用Pycharm将python文件打包为exe文件不是很熟悉&#xff0c;故学习记录之。 目录 一、下载pyinstaller库 二、打开Pycharm进行打包&#xff08;不更改图标&#xff09; 三、打开Pycharm进行打包&#xff08;更改图标&#xff09…

ArcGIS Engine:C#基础语法的了解

目录 01 前言 02 实验 2.1 创建“Hello World”程序 2.2 创建程序&#xff0c;完成成绩评定功能 2.3 创建程序&#xff0c;完成1到100的累加 2.4 窗体应用程序 01 前言 学了一些语言了&#xff0c;确实发现&#xff0c;语言只是工具&#xff0c;只有你作为初恋的语言值得…

Linux系统编程6(线程互斥,锁,同步,生产消费模型)

上篇文章介绍完线程的概念后&#xff0c;我们将在这篇文章中初步探讨线程编程以及线程应用中的问题&#xff0c;这篇文章将以抢票系统为例&#xff0c;贯穿整篇文章。笔者将介绍在多线程编程中会出现的问题&#xff0c;什么是同步&#xff1f;什么是互斥&#xff1f;为什么多线…

【nginx】(13: Permission denied) while connecting to upstream

一、问题背景 在使用nginx基于域名转发时&#xff0c;发现通过curl可以请求成功&#xff0c;但是通过外网域名访问无法访问通&#xff0c;通过日志查询发现如下问题 2023/09/18 11:26:18 [crit] 11981#11981: *106 connect() to 127.0.0.1:12500 failed (13: Permission deni…

如何理解JavaScript定时器的4种写法-附带面试题讲解

在JavaScript里&#xff0c;我们已经会使用一些原生提供的方法来实现需要延时执行的操作代码&#xff0c;比如很多在线时钟的制作&#xff0c;图片轮播的实现&#xff0c;还有一些广告弹窗&#xff0c;但凡可以自动执行的东西&#xff0c;都是可以和定时器有关的。今天就来和大…

网工内推 | 国企、上市公司,IA/IP认证即可,有年终、绩效

01 上海市机械设备成套&#xff08;集团&#xff09;有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、 负责公司电脑、网络设备、电器设备、办公设备等硬件的管理、维护和使用&#xff0c;做好计算机硬件及办公设备台帐&#xff1b; 2、 负责公司办公软件的…

博客系统的页面设计

效果展示 博客列表页 博客详情页 博客登录页 博客编辑页 主要分成四个页面: 博客列表页 显示出都有哪些博客博客详情页 展示博客的详细正文博客登录页 进行登录操作博客编辑页 有一个 markdown 编译器,可以编写博客内容 1.实现博客列表页 1.背景设计 body {/*注意这里相对…

【UE5 C++ 學習日志】01. UEnhancedInput

UE5 提供了一種對複雜輸入處理或運行時重新映射按鍵增强輸入插件。此插件向上兼容UE4的默認輸入系統&#xff0c;并可以實現径向死区、同时按键、上下文输入和优先级安排等多種功能。 核心概念&#xff1a; &#xff08;1&#xff09;Input Actions&#xff1a; Input Actio…

ROS学习ROS基础

ROS学习&#xff08;一&#xff09; ROS基础 一、工作空间基本操作二、ROS通信编程——话题编程 "hello world " 例程 1、创建发布者&#xff08;talker&#xff09;2、创建订阅者&#xff08;listener&#xff09;3、添加编译选项4、运行可执行文件 自定义话题消息…

在PHP8中对数组进行排序-PHP8知识详解

在php8中&#xff0c;提供了丰富的排序函数&#xff0c;可以对数组进行排序操作。常见的排序函数如下几个&#xff1a;sort() 函数、rsort() 函数、asort() 函数、arsort() 函数、ksort() 函数、krsort() 函数、natsort()函数和natcascsort()函数。 1、sort() 函数&#xff1a;…

<C++> 红黑树模拟实现map和set

使用一颗红黑树同时封装map和set。 红黑树源码 #pragma once #include <cassert> #include <iostream> #include <utility> using namespace std;// 红黑树结点颜色 enum Colour {RED,BLACK, };template<class K, class V> struct RBTreeNode {//使用…

分析常见数据结构在内存中的存储形式

本文会在x64dbg中分析vector,list,map的内存存储特点 目录 分析vector在内存中的存储形式 x32dbg分析vector数组 总结一下vector的内存布局 分析 list 在内存中的存储形式 x32dbg分析 list 数组 总结一下 list 的内存布局 分析map在内存中的存储形式 x32dbg分析map 总…

python爬虫爬取电影数据并做可视化

思路&#xff1a; 1、发送请求&#xff0c;解析html里面的数据 2、保存到csv文件 3、数据处理 4、数据可视化 需要用到的库&#xff1a; import requests,csv #请求库和保存库 import pandas as pd #读取csv文件以及操作数据 from lxml import etree #解析html库 from …

内网穿透工具 Cpolar 帮您实现用友U8 Cloud 的外网部署,一键畅享云端ERP

文章目录 前言1. 用户需求2. Cpolar内网穿透的安装和注册2.1 Cpolar云端设置2.2 Cpolar Web UI本地设置 3. 公网访问测试 前言 用友U8 Cloud是用友公司推出的一款云端ERP解决方案。它以云计算技术为基础&#xff0c;为企业提供全面的企业资源管理解决方案&#xff0c;涵盖了财…

主机存活检测脚本

原理演示 在命令行下用下面命令安装scap模块&#xff1a; python -m pip install scapyscapy与scrapy 有非常大的区别。 scapy 是一个Python 的第三方模块&#xff0c;被称为“网络神器”。scapy 模块能够发送、捕获、分析和铸造网络数据 sr1发送接收函数 如图&#xff0c;安…

AI绘画变现渠道:日入100+,推荐一个本人实操的方法

关于AI绘画变现&#xff0c;之前写了几篇相关的文章&#xff0c;需要的自己查阅&#xff1a; AI绘画&#xff1a;如何让图片开口说话生成视频&#xff1f;变现渠道有哪些&#xff1f; 无私分享我的AI绘画变现之路&#xff0c;普通人可实操可模仿 AI壁纸号一周增加上千粉丝&a…