实体型转换为一个关系模式

转载自:http://iask.sina.com.cn/b/18107163.html

1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。

2.一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:
若联系为1:1,则每个实体的码均是该关系的后选码。
若联系为1:n,则关系的码为n端实体的码。
若联系为m:n,则关系的码为诸实体码的组合。
 
2.1  联系为1:1
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,l 每个实体的码均是
该关系的候选码。
如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

2.2 联系为1:n
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
如果与n端对应的关系模式合并,则在n端实体对应模式中加入1端
实体所对应关系模式的码,以及联系本身的属性。而关系的码为n端实体的码。

2.3 联系为m:n
一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

3.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。

4.具有相同码的关系模式可合并。
### 实体转换关系模式 将给定的实体转换关系模式: - 员工(员工编号,姓名,性别,出生日期,联系方式,岗位编号) - 岗位(岗位编号,岗位名称,岗位职责) - 考勤记录(考勤记录编号,员工编号,考勤时间,考勤状态) - 绩效评估(绩效评估编号,员工编号,评估时间,绩效评分) - 薪资记录(薪资记录编号,员工编号,薪资月份,基本工资,奖金,扣除项) ### 关系模式规范化 #### 第一范式(1NF) 这些关系模式每个属性都是不可再分的原子值,所以都满足第一范式。 #### 第二范式(2NF) - 员工关系模式:主码是员工编号,不存在非主属性对主码的部分依赖,满足2NF。 - 岗位关系模式:主码是岗位编号,不存在非主属性对主码的部分依赖,满足2NF。 - 考勤记录关系模式:主码是考勤记录编号,不存在非主属性对主码的部分依赖,满足2NF。 - 绩效评估关系模式:主码是绩效评估编号,不存在非主属性对主码的部分依赖,满足2NF。 - 薪资记录关系模式:主码是薪资记录编号,不存在非主属性对主码的部分依赖,满足2NF。 #### 第三范式(3NF) - 员工关系模式:不存在非主属性对主码的传递依赖,满足3NF。 - 岗位关系模式:不存在非主属性对主码的传递依赖,满足3NF。 - 考勤记录关系模式:不存在非主属性对主码的传递依赖,满足3NF。 - 绩效评估关系模式:不存在非主属性对主码的传递依赖,满足3NF。 - 薪资记录关系模式:不存在非主属性对主码的传递依赖,满足3NF。 #### 巴斯 - 科德范式(BCNF) 这些关系模式的每一个决定因素都包含码,满足BCNF。 #### 第四范式(4NF) 这些关系模式中不存在非平凡且非函数依赖的多值依赖,满足4NF。 ### 处理实体间的联系 - 员工和岗位之间是多对一的联系,通过员工关系模式中的岗位编号实现关联。 - 员工和考勤记录之间是一对多的联系,通过考勤记录关系模式中的员工编号实现关联。 - 员工和绩效评估之间是一对多的联系,通过绩效评估关系模式中的员工编号实现关联。 - 员工和薪资记录之间是一对多的联系,通过薪资记录关系模式中的员工编号实现关联。 ### SQL 创建表语句示例 ```sql -- 创建岗位表 CREATE TABLE Position ( PositionID INT PRIMARY KEY, PositionName VARCHAR(100), PositionResponsibility TEXT ); -- 创建员工表 CREATE TABLE Employee ( EmployeeID INT PRIMARY KEY, Name VARCHAR(100), Gender CHAR(1), DateOfBirth DATE, ContactInfo VARCHAR(200), PositionID INT, FOREIGN KEY (PositionID) REFERENCES Position(PositionID) ); -- 创建考勤记录表 CREATE TABLE AttendanceRecord ( AttendanceRecordID INT PRIMARY KEY, EmployeeID INT, AttendanceTime DATETIME, AttendanceStatus VARCHAR(20), FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID) ); -- 创建绩效评估表 CREATE TABLE PerformanceEvaluation ( PerformanceEvaluationID INT PRIMARY KEY, EmployeeID INT, EvaluationTime DATETIME, PerformanceScore DECIMAL(5, 2), FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID) ); -- 创建薪资记录表 CREATE TABLE SalaryRecord ( SalaryRecordID INT PRIMARY KEY, EmployeeID INT, SalaryMonth VARCHAR(7), BasicSalary DECIMAL(10, 2), Bonus DECIMAL(10, 2), Deductions DECIMAL(10, 2), FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID) ); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值