当前位置:文档之家› 数据库设计毕业设计(论文)

数据库设计毕业设计(论文)

数据库设计10.1 数据库及其访问方法10.1.1 数据库基本概念数据库是有组织、有约束和有联系的数据集合,其好处是把某方面应用的数据统一管理。

数据库管理系统是对数据库中的数据进行定义、操纵、控制、维护及保持数据字典的软件。

虽然数据库管理系统可用于某应用领域的数据存取、查询,但人机交互界面差和数据处理功能不够。

编写数据库前端应用程序可以提高人与数据库更有效的交互,加强数据处理的能力。

根据数据库中数据存放的数据逻辑模型,数据库可分为层次模型、网状模型和关系模型数据库。

由于关系模型数据库的理论完善、实现相对简单及适合表达大部分实际应用领域的问题,所以大多数应用采用关系(模型)数据库。

常见的关系数据库有FOXPRO、ACCESS、SQL SERVER、Oracle等等。

10.1.1.1.关系数据库基本概念关系数据库实际上把数据组织成一个个二维表格,关系就是二维表格。

如表10.1所示。

表10.1 学生表(1)记录或元组:表格中的一行数据称为一个记录或元组。

如表10.1中除第一行表头外的各行,可用行数标称(学号为010*******的记录的记录号为1,学号为010*******的记录的记录号为2,……)。

(2)属性:关系中的每列。

如表10.1中的5个列。

各列表头为属性名,实际上各列用属性名标称。

(3)属性值:行列交叉位置的具体数据。

如表10.1中记录号为2,列为姓名的属性值为“王英”。

(4) 属性类型:表中每列属性有多个属性值,但属性值的数据类型一样。

如表10.1中出生日期属性的数据类型为日期型;性别属性的类型为字符,长度为1。

(5)表结构:说明了一个表有多少列,每列的属性名称。

如表10.1的第一行。

(6)表格描述:对表结构的具体描述。

一般表达为:表名(属性名1,数据类型1,[长度1];属性名2,数据类型2,[长度2];……)例如表10.1的描述如下:学生表(学号,char,10;姓名,char,4;性别,char,1;班号,char,8;出生日期,date)(7)关键字:一个属性或几个属性的组合。

用关键字属性值可唯一地确定记录。

实际上,确立一个表中的关键字主要看现在和未来不可能有两个记录的关键字值相同。

如表10.1中,每个记录为一个学生,不可能有两个学生的学号相同,故学号属性是关键字。

姓名不是关键字的原因是可能有同姓名的学生。

姓名+出生日期这两个属性的组合可能成为关键字,这个组合的值极不可能出现在两个学生上。

关键字可代替记录号来唯一标称表中的记录。

(8)候选关键字(候选字):一个表中的关键字。

一个表可能有多个候选关键字。

(9)主关键字(主键):表中选定的一个候选关键字。

用来代替记录号来标称表中的记录。

在关系数据库中实体表一定要设置一个主关键字。

10.1.1.2.关系数据库设计在编写某一个应用领域的程序时必须要确定需要管理的数据,如何把这些数据组织成关系表是关系数据库的设计问题。

目前常用的设计方法为E-R模型分析法,E-R模型法(Entity-Relationship Approach)也称为实体-联系法,该方法的描述结果很容易转为关系数据库的关系模型表达。

有关E-R模型的概念如下:(1)实体:应用领域中可区分的事物个体。

如学生王屋、刘天宇;课程“大学计算机基础”、“数据库应用基础”;教室A210、B110等等。

(2)属性:每一个事物个体都有多个自己的特性值,每个特性值可有一个名称(称属性名),特性称属性,特性值称属性值。

如姓名属性为王屋的学生,还具有属性及属性值:学号为010*******、性别为男、出生日期为1991.7.11等等。

(3)实体集:具有相同特性的实体集合。

实体集中的每个实体具有相同的属性,只是每个实体的属性值不同,一个实体的属性值集合是实体集中实体之间可区分的依据,具有相同属性实体的属性值集合之排列即构成一个表,实体集就是一个实体表,表中的每行为一个实体。

在进行一个应用领域关系数据库设计时首先应确定应用领域的实体集,把实体归纳为实体集,而不要尽列实体,即把不同类别的有关事物分析列出,然后分析出实体集应有的属性。

如教学管理系统关系数据库设计中可以直观地列出学生、教师、课程、教室、行政班级、专业、院系、教学单位等等八个实体集。

他们的属性如下:学生(学号,姓名,性别,班级号,入学年期,出生日期,照片)教师(职工号,姓名,职称,教学单位号)课程(课程号,课程名,课程类型,总学时,实验学时,教材名,备注)教室(教室编号,教室名称,座位数,教室类型)行政班级(班级号,班级名,专业号,院系号,入学年期,计划人数)专业(专业号,专业名称,学制)院系(院系号,系名,院名,负责人,电话)教学单位(教学单位号,单位名称,院系号)实体表记录了可以区分的事物实体,一般都有一个属性的关键字来表示实体记录。

实体集的图标为一个矩形包围的实体集名。

属性图标为椭圆包围的属性名,一个实体集图标可以连接属于它的多个属性图标。

例如教师实体集的图标如图10.1所示。

图10.1 教师实体确定基本的实体集后,应分析实体集之间的联系。

实体集之间的联系类型有:(4) 一对一联系(1:1):在两个实体集A和B之间,A的一个实体与B中的一个实体存在某种联系,这种联系是一对一的。

如学生集与学生卡集之间,一个学生拥有一个学生卡,反过来,一张学生卡属于一个学生。

联系图标为一个菱形包围联系名,菱形连接两个实体图标,在两个“菱形与矩形连线”上分别标注“1”。

如图10.2所示,它标示一个学生拥有一张学生卡,一张学生卡属于一个学生。

学生集与学生卡集有一个1:1的联系。

图10.2 一对一联系示例(5) 一对多联系(1:n):在两个实体集A和B之间,A的一个实体与B中的多个实体存在某种联系,而B中的一个实体与A中的一个实体存在联系。

例如院系与行政班级之间,一个院系管理多个行政班级,而一个行政班级只属于一个院系。

如图10.3所示,在联系连线院系实体集图标端标示“1”。

在联系连线行政班级实体集图标端标示“n”。

一般一对多的实体集称主集(如院系),另一个称从集(如行政班级)。

主集的关键字通常是从集的属性。

院系号在院系主集中是关键字,在从集行政班级中是属性(从集中的属性是另一个实体中的关键字,该属性称外键)。

关系数据库中很容易通过同名的关键字和外键在两个实体集之间建立1:n的联系。

外键也可看成是对一个实体的引用键。

专业与行政班级、院系与专业实体之间也存在1:n联系。

图10.3 一对多联系示例(6) 多对多联系(n:m):在两个实体集A和B之间,A的一个实体与B中的多个实体存在某种联系,而B中的某个实体与A中多个实体存在联系对应。

例如专业实体集与课程实体集之间,一个专业实体在“包含”联系下对应多个课程实体,一个课程实体在“包含”的反向联系“属于”下对应多个专业实体。

如图10.4所示,一个专业实体”包含”多门课程实体,在联系连线课程实体集图标端标示“m”。

反之,一个课程实体”属于”多个专业,在联系连线专业实体集图标端标示“n”。

图10.4 多对多联系示例两个实体集之间存在n:m联系,如果这种联系是实际应用中需要记录的活动话,应生成一个联系表(集)。

如图10.4所示,联系“包含/属于”实际上是教学管理活动中的专业课程计划,它说明某专业在哪个学期应学习的课程,是人为的规定。

为了保存专业实体与课程实体之间这种n:m联系,必须把每个专业应包含的每个课程都记录下来,因此生成一个联系集。

该联系集是在专业课程计划活动中产生,称为专业课程计划联系集,其属性如下:专业课程计划(专业号,课程号,实际学时,年度,学期,入学年期)“专业课程计划”联系集包括专业和课程两个实体集关键字属性“专业号”和“课程号”。

一个专业应学一个课程的计划是针对某年级的学生在第几年度哪个学期中执行多少学时,联系集中加入了时间约定属性(实际学时,年度,学期,入学年期)。

在E-R关系模型中,存在实体集和联系集,其区分在于实体集的实体可以独立实际存在,一般实体集主关键字只一个属性;联系集是两个n:m实体集在实际过程中建立实体与实体联系的记录集,联系集包含两个实体集的关键字属性外,还包含联系的约束和附加的属性。

在学生、教师、课程、教室、教学单位实体集两两之间想象上存在多个n:m联系,一个n:m联系可建立一个联系记录集,一般应根据活动过程的分析来确定联系记录集是否应该存在。

应用领域的活动过程会影响到实体集的关联,从而明确联系记录集。

教学管理中可进行下列活动:①院系、专业、行政班级、课程、教学单位、教师及教室设置及维护。

②学生注册及维护③专业课程计划④行政班级课程计划⑤课程班计划⑥课程班人员安排⑦选课⑧排课⑨查询这些活动可作为功能分析,下面主要讨论活动在实体表间产生需记录的关联。

活动①、②中只是对学生、院系、专业、行政班级、课程、教学单位个别实体集的属性分别设置,不会产生关联记录集。

活动“③专业课程计划”是计划某专业的某年级在某学期应学习的课程。

它是专业实体与课程两个实体之间的联系,“应学/被学”这种联系是n:m联系。

这种联系必须记录下来。

“专业课程计划”联系集的属性如下:专业课程计划(专业号,课程号,实际学时,年度,学期,入学年期)活动“④行政班级课程计划”是制定某行政班级在某学期应学习的课程,为设置课程班打下基础。

它涉及行政班级与课程两个实体的联系,在“选择/被选择”这种联系下这两个实体是n:m联系。

“行政班级课程计划”联系集的属性如下:行政班级课程计划(年度,学期,行政班级号,课程,人数,实际学时,课程班号) “行政班级课程计划”表大部分记录可由“专业课程计划”表自动产生。

活动“⑤课程班计划”是把“行政班级课程计划”表合成为“课程班计划”表,即在某学年期实际上为某课程应开几个课程班。

一个课程班在教学管理中应该是独立并且明显可区分的实体,故在课程班集中增设一个关键字属性课程班号,使课程班集设计为实体集。

课程班集的属性如下:课程班(课程班号,课程号,年度,学期,教师号)活动“⑥课程班人员安排”是给每个课程班安排老师,它会在教师实体集与课程班实体集之间产生联系,一个教师可教几个课程班,一个课程班由一个教师主讲,是1:n的联系。

行政班级课程计划、课程班、教师三个实体集关系如下图10.5所示。

图 10.5 行政班级课程计划、课程班、教师三个实体集关系图对于1:n联系的主实体集与从集,只要把主实体集中的关键字属性放入从实体集作为属性,在实际中会记录好这种联系。

因而教师实体集中关键字属性教师号作为课程班实体集属性,课程班实体集中关键字属性课程班号作为行政班级课程计划联系集的属性。

活动“⑦选课”是学生选择课程班的过程,显然它是学生实体集与课程班实体集“选课”下n:m联系。

选课集的属性如下:选课(学生号,课程班号,平时成绩,期考成绩,综合成绩,成绩状况)活动“⑧排课”是给课程班在适当的时间分配教室。

相关主题