某IT公司的数据库信息: ①部门具有部门编号、部门名称、办公地点; ②部门员工具有员工编号、姓名、级别,员工只在一个部门工作; ③每个部门有唯一一个部门员工作为部门经理; ④实习生具有实习编号、姓名、年龄,只在一个部门实习; ⑤项目具有项目编号、项目名称、开始日期、结束日期; ⑥每个项目由一名员工负责,由多名员工、实习生参与; ⑦一名员工只负责一个项目,可以参与多个项目,在每个项目具有工作时间比; ⑧每个实习生只参与一个项目。 (1)试画出这个数据库的E-R图。 (2)转化为适当的关系模型,并给出关系的主码和外码
时间: 2023-06-26 08:07:23 浏览: 408
以下是该数据库的E-R图:
![image](https://user-images.githubusercontent.com/26807227/120667396-2f69d580-c4c9-11eb-8d6c-51a9a5bcf4e0.png)
转化为关系模型后,可以得到以下表格:
**Department(部门)**
| 属性 | 数据类型 | 约束 |
| ------------ | ------------ | ------------------ |
| Dept_no | char(10) | 主键 |
| Dept_name | varchar(50) | 非空 |
| Dept_location| varchar(50) | 非空 |
**Employee(员工)**
| 属性 | 数据类型 | 约束 |
| ------------ | ------------ | ------------------ |
| Emp_no | char(10) | 主键 |
| Emp_name | varchar(50) | 非空 |
| Level | int | 非空 |
| Dept_no | char(10) | 外键,参考Department |
**Intern(实习生)**
| 属性 | 数据类型 | 约束 |
| ------------ | ------------ | ------------------ |
| Intern_no | char(10) | 主键 |
| Intern_name | varchar(50) | 非空 |
| Age | int | 非空 |
| Dept_no | char(10) | 外键,参考Department |
**Project(项目)**
| 属性 | 数据类型 | 约束 |
| ------------ | ------------ | ------------------ |
| Proj_no | char(10) | 主键 |
| Proj_name | varchar(50) | 非空 |
| Start_date | date | 非空 |
| End_date | date | 非空 |
| Emp_no | char(10) | 外键,参考Employee |
**Project_Employee(项目员工)**
| 属性 | 数据类型 | 约束 |
| ------------ | ------------ | ------------------ |
| Proj_no | char(10) | 外键,参考Project |
| Emp_no | char(10) | 外键,参考Employee |
| Work_time | int | 非空 |
在上述关系模型中,主码分别为:Department(Dept_no)、Employee(Emp_no)、Intern(Intern_no)、Project(Proj_no)、Project_Employee(Proj_no,Emp_no)。外码如上表中所示。
阅读全文