参考答案:
【问题1】
数据模型通常由数据结构、数据操作、数据的约束条件3部分组成。数据库最常用的数据模型有层次模型、网状模型、关系模型3种。
【问题2】
数据库设计表设计如下:
学生表student:
StuID 学号唯一标识 整型、主键
StuName 学生姓名 字符串型
StuSex 学生性别 bool型
MajorId 专业号 整型
StuAge 学生年龄 整型
教师表teacher:
TeaId 教师编号 整型、主键
TeaName 教师姓名 字符串型
TeaAge 教师年龄 整型
TeaCourse 所授课程号 整型、外键couse(CourseId)
课程表course:
CourseId 课程编号 整型、主键
CourseName 课程名称 字符串型
CourseCredit 课程学分 数值型
CourseTeacher 课程教师编号 整型、外键teacher(TeaId)
CourseTime 授课时间 日期型
选课表Elective:
EleStuId 选课学生学号 整型 外键student(stuId)
EleCourseId 课程号 整型 外键course(CourseId)
EleScore 考试成绩 数值型
“张大民(教师名)”讲授的课程名和在这些课程中考试超过90分的学生的学号及姓名,按分数的降序排列。查询语句如下:
Select course.courseName,student.Stuid,student.StuName from student,teacher,course,elective where student.Stuid=elective.EleStuid and teacher.teaId=course.courseTeacher and Course.courseId=elective.eleCourseId and teacher.teaName=’张大民’and elective.EleScore>90 order by elective.EleScore DESC
详细解析:
【问题1】
数据模型通常由数据结构、数据操作和完整约束3个部分组成。
(1)数据结构:数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,它包括两类,一类是与数据类型、内容、性质有关的对象。一类是数据之间联系有关的对象。它是对系统静态特性的描述。
(2)数据操作:是指对数据中各种对象(型)的实例(值)允许执行的操作的集合。它是对系统动态特性的描述。
(3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态变化,以保证数据的正确、有效和相容。
常用的数据模型有:
(1)层次模型:类似于倒置的树型的父子结构,它构成层次结构。一个父表有多个子表,而一个子表只能有一个父表。优点是数据结构类似金字塔,不同层次之间的关联性直接且简单;缺点是,由于数据纵向发展,横向关系难以建立,数据可能会重复出现,造成管理维护不便。
(2)网状模型:与层次结构不同的是,网状模型的结点间可以任意发生联系,能够表示各种复杂的联系。优点是可以避免数据的重复性,缺点是关联性比较复杂,尤其是数据库变得越来越大时,关联性的维护会非常复杂。
(3)关系模型:它突破了层次模型和网状模型的许多局限。关系是指由行与列构成的二维表。在关系模型中,实体和实体间的联系都是用关系表示的。
【问题2】
数据库设计表设计如下:
学生表student:
StuID 学号唯一标识 整型、主键
StuName 学生姓名 字符串型
StuSex 学生性别 bool型
MajorId 专业号 整型
StuAge 学生年龄 整型
教师表teacher:
TeaId 教师编号 整型、主键
TeaName 教师姓名 字符串型
TeaAge 教师年龄 整型
TeaCourse 所授课程号 整型、外键couse(CourseId)
课程表course:
CourseId 课程编号 整型、主键
CourseName 课程名称 字符串型
CourseCredit 课程学分 数值型
CourseTeacher 课程教师编号 整型、外键teacher(TeaId)
CourseTime 授课时间 日期型
选课表Elective:
EleStuId 选课学生学号 整型 外键student(stuId)
EleCourseId 课程号 整型 外键course(CourseId)
EleScore 考试成绩 数值型
“张大民(教师名)”讲授的课程名和在这些课程中考试超过90分的学生的学号及姓名,按分数的降序排列。查询语句如下:
Select course.courseName,student.Stuid,student.StuName from student,teacher,course,elective where student.Stuid=elective.EleStuid and teacher.teaId=course.courseTeacher and Course.courseId=elective.eleCourseId and teacher.teaName=’张大民’and elective.EleScore>90 order by elective.EleScore DESC