关系模式

菜鸟学数据库(四)——超键、候选键、主键、外键

爷,独闯天下 提交于 2019-11-30 00:02:36
这些年的一些经历告诉我,很多初学者搞不清超键、候选键等,被数据库中的各种键搞的一头雾水。下面就跟大家一起聊聊数据库中的那些键。 首先看看各种键的定义: 超键( super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键 (candidate key):不含有多余属性的超键称为候选键 主键( primary key):用户选作元组标识的一个候选键程序主键 外键 (foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。 结合实例的具体解释: 假设有如下两个表: 学生(学号,姓名,性别,身份证号,教师编号) 教师(教师编号,姓名,工资) 超键: 由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。 候选键: 候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。 主键: 主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。 外键: 外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。 来源: https://blog.csdn.net/m0_37317159

(2)关系模式

大憨熊 提交于 2019-11-28 13:03:15
原文: http://blog.gqylpy.com/gqy/471 置顶:来自一名75后老程序员的武林秘籍——必读 (博主推荐) 来,先呈上武林秘籍链接: http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我会画原理图,会画 PCB,会模拟,会数字!玩过 PLC,玩过单片机,会用汇编,会用 C!玩过 ARM,比如 PLC,STM32,和时下正在起飞的 NXP RT1052!搞过 DSP,比如 TMS320F28335!搞过 FPGA,不管 Xilinx 还是 Altera,也不管是 Verilog 还是 VHDL,或者直接画数字电路图!我懂嵌入式系统,比如 uCOS 和 Linux!我懂开源的硬件,比如 Arduino 和树莓派!我也搞软件,学了一堆上位机的语言C#,JAVA,Python,Kotlin,Swift!会写爬虫工具,又自学写APP,不管Android 还是 IOS! 可是这一切有什么用呢?土鸡瓦狗!不值一提!干技术的永远就是最苦逼的那个人! 我相信看到这里的你,应该是个 IT

数据库范式

倖福魔咒の 提交于 2019-11-27 15:18:57
1NF:属性值不可分 2NF:1NF+每个非主属性完全函数依赖于关系模式的候选键,无部份依赖 3NF:2NF+每个非主属性不传递依赖于关系模式的候选键 BCNF:3NF+每个候选键都是单属性且每个属性都不传递依赖于关系模式的候选键 4NF:BCNF+消除同一表内的多对多关系,转为1对多关系(拆表) 来源: https://blog.csdn.net/rootkiss/article/details/99690647

关系数据理论

时光毁灭记忆、已成空白 提交于 2019-11-27 05:58:58
关系名R是符号化的元组语义 U为一组属性 D为属性组U中的属性所来自的域 DOM为属性到域的映射 F为属性组U上的一组数据依赖(关系内部属性与属性之间的一种约束关 系 ,主要分函数依赖和多值依赖) 由于D、DOM与模式设计关系不大,本博客中把关系模式看作一个三元组: R<U,F> 一、问题提出 数据库设计的不好可能导致多个问题: 冗余,修改异常,插入异常,删除异常 数据依赖与冗余 数据依赖是关于诸属性值之间内在相关性的陈述,它规定了关系模式的合法关系实例所必须满足的条件,可分为 函数依赖 和 多值依赖 依赖和冗余是密不可分的:承认某种数据依赖,就能发现关系中的某些冗余;而不承认数据之间的依赖关系,也没理由认为某些信息是多余的 冗余的产生原因和处理总是联系在一起 二、函数依赖 2.1定义 字母表开头的大写字母 A,B,…,H表示单个属性 字母表尾部的大写字母 U,V,…,Z一般表示属性集,也可能是由单个属性构成的集合。U常用于表示关系的全部属性组成的集合 串接表示并。A1A2…An表示集合 {A1,A2,…,An},XY是 X Y的缩写,若 A是单个属性,X是属性集,则 XA或 AX表示 X {A} R表示关系模式 r 表示关系,它是关系模式 R的某个实例 2.2函数依赖类型 2.2.1函数依赖 设 R(U) 是一个属性集 U 上的关系模式, X 和 Y 是 U 的子集。若对于 R

关系数据模型

◇◆丶佛笑我妖孽 提交于 2019-11-27 05:56:38
一、关系数据结构 关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成 1.1关系 单一的数据结构—— 关系 :现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构—— 二维表 :从用户角度,关系模型中数据的逻辑结构是一张二维表 1.1.1域 定义:一组具有相同数据类型的值的集合 例如:自然数,整数,长度小于25字节的字符串集合,{1,0}等 1.1.2笛卡尔积 1、笛卡尔积 给定一组域D1,D2,…,Dn,允许其中某些域是相同的 D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn ={ (d1,d2,…,dn)|di Di,i=1,2,…,n} 它是所有域的所有取值的一个组合,且不能重复 2、元组 笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组或简称元组 3、分量 笛卡尔积元素(d1,d2,…,dn)中的每一个值di 叫作一个分量 4、基数 若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为: ​ ​ ​ 5、笛卡尔积的表示方法 笛卡尔积可表示为一张二维表。表中的每行对应一个元组,表中的每列对应一个域 1.1.3关系 1、关系 D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)R:关系名,n:关系的目或度 2、元组 关系中的每个元素是关系中的元组

数据库设计(一)——数据库设计

笑着哭i 提交于 2019-11-25 20:10:23
数据库设计(一)——数据库设计 一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析和概念结构设计独立于任何数据库管理系统。 二、系统需求分析 1、需求分析的任务 需求分析的任务:对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。 A、调查分析用户活动 B、收集和分析需求数据,确定系统边界信息需求,处理需求,安全性和完整性需求 C、编写系统分析报告 2、需求分析的方法 需求分析有两种方法:自顶向下、自底向上 A、自顶向下 自顶向下方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统。 用数据流图和数据字典描述系统 数据流图:描述输入数据到输出数据的变换过程 数据流:由一组固定成分的数据组成,代表数据的流动方向 处理:描述了输入数据到输出数据的变换 文件:用于存储数据 源或宿:存在于系统之外的人员或组织,表示系统输入数据的来源和输出数据的去向 B、自底向上 3、实例 教学管理系统 基本需求: 某学校设计学校教学管理系统,学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、入学日期,每名学生选择一个主修专业,专业包括专业编号、名称、类别