教学管理系统数据库的逻辑结构设计
逻辑结构设计的任务是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化,得到满足用户要求和系统功能需求的关系模式。
1、 E-R模型转换为关系模式
将E-R模型转换成初始关系模式的一般规则是:系统中各个实体转换为对应的关系模式;实体之间多对多的联系也转换为关系模式。
根据转换规则,可以将系部、班级、学生、教师、课程五个实体转换成与之对应的五个关系模式;而将学生与课程两者之间多对多的选修关系以及教师、班级和课程三者之间多对多的开课关系也转换为关系模式。
2、关系模式中的主键和外键的概念
一个关系模式描述了关系数据库中的一个关系,这种关系可以表示为一个二文的数据表格。而一个关系数据库通常又包含多个具有相关联系的数据表,也就是说这些数据表是可以相互关联的,但是这种关联性必须由主键和外键所体现的参照关系才能实现,否则将不能保证表之间有关联的数据的一致性和合法性,即不能保证数据库中数据的完整性。
以下对键、主键、外键、公共键的概念作一解释:
键(KEY)是表中的某一列或几列的组合。根据键的作用不同,分为主键、外键、公共键等。以下说明这几种的含义和作用:
主键(PRIMARY KEY简称PK): 可唯一标识一行记录的列或列的组合,如jxgl数据库中的class表中的“班级号”,student表中的“学号”。其作用是实施实体完整性(即行完整性,用以确保表中的每一行数据在表上表示惟一的实体),为达此目的,每个表必须有而且仅有一个主键。主键的特性是值不可重复且不能为空。
外键(FOREIGN KEY简称PK): 本表中含有与另一个表的主键相同的某个列或列的组合,如class表中的“班级名称”是该表的主键,但在student表中的“班级名称”,它却是外键而不是主键。外键的作用是实施参照完整性,class表与student表存在一对多的关系,通常我们把class表称为父表(或被参照表、被引用表),而将student表称为子表(或参照表、引用表),其含义就是student表中的“班级名称”必须使用class表中已存在的“班级名称”,即student表中的“班级名称”必须参照class表中的“班级名称”来使用,从而确保了两个表中同一数据项的值的一致性。
公共键(COMMON KEY): 关系数据库中的多个表中含有相同的某个列或列的组合,则这些列或列的组合就称为公共键,如class表中的“班级名称”及department表中的“系部部名称”等。公共键的作用是建立表之间的关联。公共键的列名称可以不一定相同,但必须表示同一项数据,例如表示一个系部的名称的列名在department表中用“系部名称”表示,而在teacher表中则是用“所在系”表示。
使用外键的目的通常有两个:
1)作为公共列提供表与表之间的连接。例如通过“系部名称”可以将class表与department表连接;
2)可以根据外键的值检查输入的数据的合法性。例如在输入class表中的“系部名称”的值时,若输入了department表中不存在的“系部名称”,则数据库会拒绝接收。
3、关系模式的设计
根据上述的转换结果,在对关系模式中数据进行规范化处理后,得到的关系模式如下:
学生:{学号、姓名、性别、出生日期、民族、政治面貌、来源地、入学成绩、学生类别、班级名称、电话、备注}
班级:{班级号、班级名称、班主任、学生人数、系部名称、备注}
系部:{系号、系部名称、班级数}
教师:{教师号、教师姓名、性别、出生日期、所在系、职称、备注}
课程:{课程号、课程名、考核方式、学分、学时数}
选修:{学号、课程号、成绩}
开课: {教师号、班级名称、课程号、开课学期、授课地点}
每个关系模式中带下划线的属性或属性的组合表示主键、带双波浪线的属性表示与之关联的表的外键。
根据系统功能需求,数据采用SQL Server 2000所支持的实际数据模型,也就是数据库的逻辑结构。启动SQL Server 2000,创建一个数据库命名为:jxgl。该数据库中各个数据表的结构如下面各个表格所示。每个表格对应于数据库中的一个表。
3、将关系模式转换为数据库中的表
按照关系数据模型的结构,将关系模式转换为关系数据库中的数据表,转换的规则是:一个关系模式转换为一个数据表,关系模式中的每个属性转换为数据表中的一个列。同时设置表中各个列的名称、数据类型、数据宽度以及数据规则,得到如下几个表:
学生表(student)
列名 类型 宽度 规则
班级名称 CHAR 20 外键(内容取自班级信息表的班级名称)
学号 CHAR 10 主键、长度为10个字符
姓名 CHAR 8
性别 CHAR 2 非空、只能取“男”或“女”
出生日期 DATETIME
民族 CHAR 4 假定只能取以下之一:汉、壮、白、回、苗、满、其它
政治面貌 CHAR 4 只能取以下之一:党员、团员、群众
来源地 CHAR 10
入学成绩 INT
学生类别 CHAR 10 假定只能取以下之一:本科、大专(普)、大专(业)、中专、技校、函授、其它
电话 CHAR 11
备注 CHAR 10
注:(1)该表存放全校所有学生的基本信息,每个学生产生一条记录。
(2)学号的前4位表示年级,第5--8位表示班级号(其中第5-6位表示系号, 第7-8位表示系内班级号),最后两位是班内的学生编号,在输入记录内容时应加以区分。
班级表(class)
列名 类型 宽度 规则
系部名称 CHAR 10 非空、外键(内容取自系部信息表的系部名称)
班级号 CHAR 4 非空、唯一、长度为4个字符
班级名称 CHAR 20 主键
班主任 CHAR 8
学生人数 INT
备注 CHAR 10
注:(1)该表存放全校所有班级的信息,每个班级产生一条记录。
(2)班级号的前2位表示系号,后两位为系内的班级编号,在输入记录内容时应加以区分。
系部表(department)
列名 类型 宽度 规则
系号 CHAR 2 非空、长度为2个字符
系部名称 CHAR 10 主键
班级数 INT
注:该表存放某校所有的系部信息,每个系部产生一条记录。
教师表(teacher)
列名 类型 宽度 规则
教师号 CHAR 4 主键、长度为4个字符
姓名 CHAR 8
性别 CHAR 2 非空、只能取“男”或“女”
出生日期 DATETIME 751com.cn
职称 CHAR 6 只能取以下之一:教授、副教授、讲师、助教、其他
所在系 CHAR 20 非空、外键(内容取自系部表的系部名称)
上一页 [1] [2] [3] [4] [5] 下一页
教学管理系统数据库设计 第3页下载如图片无法显示或论文不完整,请联系qq752018766