2.关系模式R (员工编号,日期,零件数,部门 名称,部]经理),表示某个工厂里每个员工 的日生产零件数以及员工所在的部]和经 理信息。 假设:每个员工每天只有一个日生产零件 数,每个员工只在一个部门工作,每个部门 只有一个经理,那么: . (1)写出模式R的基本函数依赖和码; (2) R否是2NF,如果不是把R分解成2NF; (3)进一步将R分解成3NF。的代码
时间: 2024-03-26 08:34:42 浏览: 286
1. 根据关系模式R,可以列出以下基本函数依赖和码:
基本函数依赖:
- 员工编号 -> 日期, 零件数, 部门名称, 部门经理
- 部门名称 -> 部门经理
码:
- {员工编号}
2. R不是2NF,因为存在部分依赖。即部门名称依赖于员工编号,而不是依赖于整个候选码。
因此,可以将R分解为以下两个关系模式:
员工表(员工编号,部门名称,部门经理)
日生产表(员工编号,日期,零件数)
员工表的候选码为员工编号,日生产表的候选码为(员工编号,日期)。
3. 根据2NF分解后,可以得到以下两个关系模式:
员工表(员工编号,部门名称,部门经理)
部门表(部门名称,部门经理)
员工表的候选码为员工编号,部门表的候选码为部门名称。
最终的SQL语句如下:
```sql
CREATE TABLE 员工表 (
员工编号 INT PRIMARY KEY,
部门名称 VARCHAR(50) NOT NULL,
部门经理 VARCHAR(50) NOT NULL
);
CREATE TABLE 日生产表 (
员工编号 INT NOT NULL,
日期 DATE NOT NULL,
零件数 INT NOT NULL,
PRIMARY KEY (员工编号, 日期),
FOREIGN KEY (员工编号) REFERENCES 员工表(员工编号)
);
CREATE TABLE 部门表 (
部门名称 VARCHAR(50) PRIMARY KEY,
部门经理 VARCHAR(50) NOT NULL
);
```
这样,关系模式R就被分解到了3NF。
阅读全文