数据库作业14:职员与部门关系及完整性规则

0 下载量 130 浏览量 更新于2024-08-30 收藏 385KB PDF 举报
本资源是关于数据库作业的第十四题,主要集中在第五章——数据库完整性方面。题目的核心是创建和操作两个关系模式:职员(Staff)和部门(Department),并涉及到数据库设计和完整性规则的实践。 首先,我们有两个基本的关系模式: 1. **职员表(Staff)**: - 主键:Sno(职员编号,CHAR类型,长度为9) - 姓名:Sname(CHAR类型,长度为20) - 年龄:Sage(SMALLINT类型) - 职位:SJob(CHAR类型,长度为10) - 工资:Sal(INT类型) - 部门编号:Dno(CHAR类型,长度为20,作为外键引用Department表的主键) 2. **部门表(Department)**: - 主键:Dno(部门编号,CHAR类型,长度为20) - 部门名称:Dname(CHAR类型,长度为20) - 经理姓名:Manager(CHAR类型,长度为20) - 电话:Tel(CHAR类型,长度为10) 在题目的第二个部分,出现了错误的创建部门表语句,但根据前文逻辑,可以推断这是重复定义了Department表。正确的做法应该是删除这一部分或者只保留其中一个完整的定义。 第三部分涉及了职员表的完整性规则扩展,通过FOREIGN KEY约束确保了职员的部门编号与部门表中的记录关联,即每个职员都有一个存在的部门。此外,还添加了一个检查约束(Sage CHECK(Sage <= 60)),确保年龄字段的值不超过60,这体现了对数据的实体完整性(确保数据的有效性)。 接下来的SQL操作展示了如何向Staff表中插入数据,以及查询所有员工的信息。第一行插入了一名26岁的经理,符合年龄限制;第二行插入的63岁员工不符合年龄检查约束,这将导致插入失败,因为数据库会检测到数据不满足预设的完整性规则。 总结来说,本题目主要考察了数据库设计中的关系模型建立、外键约束的使用以及数据完整性规则的实施。学生需要理解并能够在实践中应用这些概念,以确保数据的准确性和一致性。在实际应用中,数据库完整性是确保数据质量的关键环节,对于任何业务系统都至关重要。