数据库问答题:1、 列举一个符合第一范式的数据表,将其转换为符合第二范式的关系模式。

数据库问答题:1、 列举一个符合第一范式的数据表,将其转换为符合第二范式的关系模式。,第1张

第一范式:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么乘R是第一范式。

例如关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码没那么在关系中至少要出现两个元组,一边存储这两个号码

第二范式:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么R是第二范式

设关系模式R(WXYZ),主键是WX,R上还存在FD X->Z(也就是wx->z是一个局部依赖)此时应把R分成两个模式:

R1(XZ),主键是X;

R2(WXY),主键是WX,外键是X(REFERENCES R1).利用外间和主见的练级可以从r1和r2重新得到R.

至于你这个题目据下面一个例子:

仓库仓库号,货物号,库存量,仓库地址) 其中仓库号和货物号为主键--------1NF

转换为2NF:

库存(仓库号,货物号,库存量) 库存号和货物号是主键

仓库(仓库号,仓库地址) 仓库号是主键

为什么会这样 在1NF中,库存量完全依赖于仓库号和货物号,而仓库地址部分依赖于仓库号和货物号。 怎么弄成2NF 也是按照这个道理转换的

使用双重否定实现全称判断,意思就是没有任何零件当前工程没使用

select * from spj where j.jno=spj.jno and p.pno=spj.pno

这一句查询当前工程使用当前零件的记录

not exists(select * from spj where j.jno=spj.jno and p.pno=spj.pno)

这一句查询当前工程没有使用当前零件的记录

select * from p where not exists(select * from spj where j.jno=spj.jno and p.pno=spj.pno)

这一句查询当前工程没有使用的零件

not exists

(select *

from p

where not exists

(select *

from spj

where j.jno=spj.jno

and p.pno=spj.pno)

这一句表示不存在当前工程没用使用的零件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9653993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存