数据库-键(码)

简介: 数据库-键(码)

今天学习的数据库中的键,但是不明白,经过上网看书查寻后发现这个“键”其实是一种关系的属性。


首先我们要先了解什么键,定义:在一个关系中,存在这样的属性,使得在该关系的任何一个关系状态中的两个元组,再改属性上值的组合不相同,即这些属性的值都能用来唯一标识该关系的元组,则称这些属性为该关系的码或键


首先说明“关系”是什么,关系我们可以以理解为一张表,


对于键分别有:超键、候选键、主键、全键、外键这几类。


超键(码):


在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键为该关系的超码或超键。

根据图中我们可以看到一些信息,而对应的这些信息就是一个超键或超码,因为在这个关系中所有属性的集合就是这个关系的超码或超键,如(学号、姓名)、(学号、姓名、性别)(学号、姓名、性别、出生日期、班号、身份证号)都是这个表的超码或超键


候选键(码):


在关系的一个码或键中,不能从中移去任何一个属性,否则他就不是这个关系的码或键。这种码或键就是这个关系的候选码或键。


在表中我们可以发现只要我们确定学号或者身份证号都可以确定一个学生的全部基本信息,那么这个这两个属性值就是候选码或键。



主键(码):


在一个关系的若干个候选码或键中指定一个用来唯一标识关系的元组(表中的一行即为一个元组),则这个候选码或键就是这个关系中的主键或码。

我们可以指定学号为主键,

通俗理解:主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。


身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

有些情况下主键可能是一个集合有两个或多个属性组成,如成绩表(学号,课程号,成绩) 我们想要确定成绩就要通过学号和课程号这两个属性来确定。



全键(码):


一个关系模式的所有属性集合是这个关系的主码或键,则称这样的主码或键为全码或键

关系模型的所有属性组是这个关系模式的候选键


外键或(码):


A表中的一个字段,是B表的主键,那他就可以是A表的外键

根据下图表我们可以确定“班号”为主键或码,但是这个主键在上图中也出现了,但是它并不是上图的主键,那我们就可称这个“班号”为上图的外键。



总体这些键或码的关系我们可以理解为

都惟一标识一个元组;

         超键中可能有无关的属性,而主键和候选键中属性都是必要的属性;

 

         主键是候选键中的一个,只不过它被数据库设计者选中而称为主键而已,事实主键也是候选键

候选键的范围更广阔一些

相关文章
|
6月前
|
存储 消息中间件 缓存
键值(key-value)数据库
【4月更文挑战第9天】键值数据库(NoSQL)以键值对形式存储数据,简单灵活,适合任意类型数据。其特点是高性能、高可扩展性,常见应用包括缓存、会话管理、分布式锁、计数统计、配置管理和轻量级消息队列。然而,它不适用于结构化信息存储和复杂查询,选择时需考虑应用场景。
687 5
|
3月前
|
数据采集 数据管理 数据处理
深入理解数据库唯一键
【8月更文挑战第31天】
84 0
|
11月前
|
SQL 关系型数据库 Java
使用位运算,处理数据库中的"多选状态标识"
使用位运算,处理数据库中的"多选状态标识"
128 0
|
数据库
数据库中的各种键
数据库中的各种键
106 0
|
关系型数据库 MySQL 数据库
数据库|如何解决数据库插入中文字体时显示问号
数据库|如何解决数据库插入中文字体时显示问号
142 0
|
缓存 NoSQL 容灾
阿里云数据库包含哪些
阿里云数据库包含哪些
296 0
|
数据库
数据库码的理解
写下个人理解
496 0
数据库码的理解
|
数据可视化 NoSQL 关系型数据库
如何查看MySQL数据库状态及信息(内存、数据库、编码格式、表、列、索引等)
如何查看MySQL数据库状态及信息(内存、数据库、编码格式、表、列、索引等)
498 0
如何查看MySQL数据库状态及信息(内存、数据库、编码格式、表、列、索引等)
|
数据库
查找某数据库中所有的字段
查找某数据库中所有的字段
105 0
|
SQL 关系型数据库 MySQL