多张表的数据库设计

本文介绍了数据库中的关键概念,如外键的作用与创建方法、表间关系类型、组合键的概念及函数依赖等,并详细阐述了从第一范式到第三范式的规范化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模式(SCHEMA)是对数据库内的数据描述(列和表),以及任何相关对象和各种连接方式的描述。

1 外键

外键是表中的某一列,它引用用另一个表的主键
关于外键:
(1)外键可能与它引用的主键名称不同
(2)外键使用的主键也称为父键,主键所在的表又称为父表
(3)外键能用于确认一张表中的行与另一表中的行相对应
(4)外键的值可以值NULL,即使主键值不可为NULL
(5)外键值不需要唯一,事实上,外键通常不唯一
外键为NULL,表示在父表中没有相符的主键,要确认外键包含意义、已存储在父表中,可以通过约束实现。
插入外键列的值必须已经存在父表的来源表中,这是引用完整性
创建外键的方法
方法一:

create table emp(
emp_id char(8) primary key, 
emp_name char(30) 
);
create table salary(
id char(8), 
salary float, 
foreign key (id) references emp (emp_id) 
);

方法二:

alter table TABLE_NAME
add constraint FK_TABLE_NAME 
foreign key (AA) references TABLE_NAME2 (AA);

2 表与表之间的关系

表间的关系:一对一、多对一、多对多
连接表(junction table):遇到多对多关系,可以在中间新建表以满足范式的要求,减少重复数据。
组合键由多个列组成的主键。

3 函数依赖

当某列的数据必须随着另一列的数据的改变而改变时,表示第一列函数依赖于第二列。
T.xT.y 表示在关系表T 中,y 列函数依赖于x 
部分函数依赖指非主键的列依赖于组合主键的某个部分(但不是完全依赖于组合主键)
传递函数依赖指如果改变任何非键列可能造成其他列的改变

4 范式

第一范式(1NF)
规则1:每个数据行必须包含具有原子性的值
规则2:每个数据行必须有独一无二的识别项——主键
第二范式(2NF)
规则1:先符合1NF
规则2:没有部分函数依赖性
只要所有列都是主键的一部分或者表中有唯一主键列符合1NF的表也符合2NF
第三范式(3NF)
规则1:符合2NF
规则2:没有传递函数依赖性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值