数据库复习基本概念——关系、元组、属性、码、域、分量、形式化定义

本文深入讲解数据库中的核心概念,如关系、元组、属性、码、域等,并详细阐述了码的分类及其在数据系统中的作用,是理解数据库结构与设计的必备知识。

1)关系(Relation)

一个关系对应通常说的一张表

2)元组(Tuple)

表中的一行即为一个元组

3)属性(Attribute)

表中的一列即为一个属性,给每一个属性起一个名称,即属性名

4)码(键)

码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。

  • 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。
  • 候选码:关系(表)中的某个属性组,它可以唯一确定一个元组。
  • 若一个关系(表)中有多个候选码,则选定其中一个为主码。
  • 全码:关系的所有属性都包含在候选码中。
  • 主属性:包含在任何一个候选码中的属性
  • 非主属性 不包含在任何码中的属性
  • 主码: 主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。
  • 外码: 外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。
  • 域(Domain):属性的取值范围。
  • 分量:元组中的一个属性值。
  • 形式化定义
    R(D 1 ,D 2 ,…D n )
    R:关系名
    n:关系的目或度(Degree)
    例:
    关系名(属性1,属性2,…,属性n)
    学生(学号,姓名,年龄,性别,系,年级)
    候补码和超码
    候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。
    因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。
    例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。
### 数据库元组关系属性关系模式候选的概念及定义 #### 1. 元组 元组关系模型中的基本单位,表示二维表中的一行数据。它由一组有序的值组成,每个值对应于关系中的某个属性(列)。例如,在一个学生表 `students` 中,每一条学生记录(如 `(1, 'Alice', 20)`)就是一个元组[^3]。 ```sql INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20); ``` 上述语句中,`(1, 'Alice', 20)` 是一个元组,表示一个具体的学生成员。 --- #### 2. 关系 关系是一个二维表,由行列组成。每一行称为一个元组,每一列称为一个属性关系中的数据必须满足特定的约束条件,如主键约束、外键约束等。关系通常对应于数据库中的一个表[^1]。 例如,以下是一个学生关系的示例: | id | name | age | |-----|--------|-----| | 1 | Alice | 20 | | 2 | Bob | 22 | --- #### 3. 属性 属性关系中的列,表示实体的某种特征或性质。每个属性都有一个名称一个(取值范围)。例如,在学生关系中,`id`、`name` `age` 都是属性[^1]。 --- #### 4. 是指属性的取值范围或类型。例如,`id` 的可能是整数,`name` 的可能是字符串,`age` 的也可能是整数。确保了属性的值符合预定义的规则[^1]。 --- #### 5. 关系模式 关系模式是对关系结构的描述,包括关系的名称、属性列表以及属性。它是一个静态概念,定义关系的逻辑结构。例如,学生关系关系模式可以表示为: ``` Student(id: integer, name: string, age: integer) ``` 关系模式还可能包含其他约束条件,如主键、外键等。 --- #### 6. 個(候选键) 候选键是能够唯一标识关系元组属性属性组合。若某个属性组的闭包覆盖整个关系的所有属性,并且该属性组没有冗余,则该属性组称为候选键[^4]。 例如,在学生关系中,如果 `id` 能够唯一标识每个元组,则 `id` 是一个候选键。候选键的选择需要满足以下条件: - 属性组的闭包等于关系的所有属性。 - 属性组中没有冗余属性。 --- ### 示例代 以下是一个 SQL 查询,用于查找某个表的候选键: ```sql SELECT TABLE_NAME, INDEX_NAME, NON_UNIQUE, INDEX_TYPE, SEQ_IN_INDEX, COLUMN_NAME, COLLATION, CARDINALITY, SUB_PART, PACKED, NULLABLE, INDEX_COMMENT FROM information_schema.statistics WHERE table_schema = 'your_database_name' AND table_name = 'your_table_name'; ``` 此查询可以帮助识别表中的索引潜在的候选键。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值