排课是教学环节中的重要过程,该过程包括以下实体。 课程实体: course ( cid , cname , chour , ctype )。其中, cid 唯一标识每一个课程, cname 为课程名, chour 为课程学时, ctype 为课程类别( 0 表示选修课, 1 表示必修课)。 教室实体: classroom ( crid , crname , crbuilding )。其中, crid 用于标识每一个教室, crbuilding 为教室的楼宇, crname 为教室的名称。 教师实体: teacher ( tid , tname )。其中, tid 唯一标识每一名教师, tname 为教师姓名。 各实体的关系是:每一个教师可以教授多门课程,一门课程可以被多个教师教授,一个教室可以承载多门课程,一个课程可以被安排在多个教室中。当课程安排在指定教室的时候,需指明安排的日期( cdata )以及当天的第几节课程( carrange )。 请根据上述需求,回答以下问题。 ( 1 )设计该系统的 E-R 图。 ( 2 )将 E-R 图转换成关系模式,并指出主码。 ( 3 )根据关系模式,使用 SQL 创建课程实体,要求 SQL 语句中包含主码约束和非空约束,各属性的类型及长度自选。