《数据库原理》课程设计报告 - 11 -
3.3 逻辑结构设计
3.3. 1 E-R图向关系模式转换原则
1.一个实体转换为一个表,实体的属性转换为表的列,实体的码转换为表的主键。 2.实体间的联系根据联系的类型转换如下:
1:1的联系 两个实体分别转换为表后,只要在一个表中增加外键,一般在记录较少的表中增加属性,作为外键,该属性是另一个表的主键。
1:n的联系 在n端的实体对应的表中增加属性,该属性是1端实体对应的主键。 m:n的联系 通过引进一个新表来表达两个实体多对多的联系,新表的主键是由联系两端实体的主键组合而成,同时增加相关的联系属性。
3.3.2范式的判定(3NF)
范式的判定
院系:Deparement(Xno, Xname, Xdirector) 3NF
学生:Student(Sno, Sname, Ssex, Saddr, Sage, Smajor ,Cno) 3NF 教师:Teacher(Tno, Tname, Tsex, Tpos, Tage, Tsal) 3NF
课程:Cource(Courceno, Courcename,Credit, Courcedirector) 3NF 教室:Classroom(Rno, Rname, Raddr) 3NF 班级:Class(Cno, Cname, Xno, Cdirector) 3NF 选课信息:Elective(Sno, Courceno, Grade) 3NF 占用教室信息:Occupy(Cno, Rno, Stime, Uestime) 3NF 授课信息:Teaching(Tno, Cno, Courceno, Teachtime) 3NF
11
《数据库原理》课程设计报告 - 12 -
以上各表均满足第一范式属性是不可分割的基本数据象,第二范式关系属性集中的非主属性完全依赖于候选码,第三范式每个非主属性既不部分函数依赖于码,也不传递依赖于码。
具体的基本E-R图向关系模型的转化如下:
院系:Department(Xno, Xname, Xdirector) 学生:Student(Sno, Sname, Ssex, Saddr, Sage, Smajor, Cno) 教师:Teacher(Tno, Tname, Tsex, Tpos, Tage, Tsal)
课程:Course(Courceno, Coursename,Credit, Coursedirector) 教室:Classroom(Rno, Rname, Raddr)
班级:Class(Cno, Cname, Xno, Cdirector) 选课信息:Elective(Sno, Courseno, Grade) 占用教室信息:Occupy(Cno, Rno, Stime, Uestime) 授课信息:Teaching(Tno, Cno, Courseno, Teachtime)
(注:标有直线下划线的为主属性,标有波浪线下划线的为外键属性,主属性与外键属性一起构成主码)
模型优化
确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:
1.系表的数据依赖:{系号->系名,系号->系主任}
2.班级表的数据依赖:{班号->班名,班号->班主任,班号->系号}
3.学生表的数据依赖:{学生号->姓名,学生号->性别,学生号->省份,学生号->年龄,学生号->班级号,学生号->专业}
4.课程表的数据依赖:{课程号->课程名,课程号->学分,课程号->任课教师号} 5.教师表的数据依赖:{教师号->姓名,教师号->职称,教师号 ->性别,教师号->年龄,教师号->工资}
6.教室表的数据依赖:{教室号->教室名,教室号->教室位置 } 7.选课表的数据依赖:{(学生号,课程号)->成绩 }
12
《数据库原理》课程设计报告 - 13 -
8.占用表的数据依赖:{(班级号,教室号,上课时间)->占用学时}
9.授课表的数据依赖:教授表的数据依赖:{(教师,班级号,课程号)->授课时间} 3.3.3 子模式的设计(视图)
1.院系信息表
2 .班级信息表
3. 学生信息表
4. 课程信息表
13
《数据库原理》课程设计报告
5. 选课信息表
6. 教室信息表
7. 占用信息表
8. 教师信息表
- 14 -
14
《数据库原理》课程设计报告 - 15 -
9. 授课信息表
3.4 物理结构设计
3.4.1存储结构与存取方法
存储结构的确定
确定数据库的存储结构,主要是数据库中数据的存放位置,合理设置系统参数。数据库中的数据主要是指表、索引、聚促、日志、备份等数据。存储结构选择的主要原则是:数据存取时间上的高效性、存储空间的利用率、存储数据的安全性。
存放位置
在数据存放位置之前,要将数据中易变部分和稳定部分适当分离并分开存放;要将数据库管理系统文件和数据库文件分开。如果系统采用多个磁盘和磁盘阵列,将表和索引存放在不同的磁盘上,查询时由于两个驱动器并行工作,可以提高I/O读写速度。为了系统的安全性,一般将日志文件和重要的系统文件存放在多个磁盘上,互为备份。另外,数据库文件和日志文件的备份,由于数据量大,并且只在数据库恢复时使用,所以一般存储在磁带上。
系统配置
DBMS产品一般都提供大量的配置参数,供数据库设计人员和DBA进行数据库的物理结构设计和优化,如用户数,缓冲区,内存配置,物理块的大小等。一般建
15