1、第 2章 数据库的建立与维护 第 2章 数据库的建立与维护 2.1 数据表2.2 数据库设计2.3 创建数据库 2.4 创建数据表 2.5 表的操作 2.6 索引的创建和使用2.7 建立和编辑表之间的关系习题 第 2章 数据库的建立与维护 2.1 数 据 表数据表 (Table)是构成数据库的基本元素之一,是数据库中组织并存储数据的单元。在 Visual FoxPro中,数据库可由多个数据表组成,从用户实际使用的角度来看,关系模型的逻辑结构是一张二维表,它由行和列组成。关系模式对应一个二维表的表头。关系 (Relationship)对应通常所说的二维表,如表 2-1所示的学生情况表。其中每一列
2、指明学生的一种属性,属性的名称如学号、姓名、性别等在每一列的顶端标出,每一行则给出某个学生的具体属性值。第 2章 数据库的建立与维护 表 2-1 学 生 情 况 表学 号 姓 名 性 别 出生日期 班 级 联系方 式2001501 冯小亮 男 02/07/1984 机械 1班 23301232001307 王金科 男 03/11/1984 计算机 2班 23307872001203 刘丽丽 女 08/27/1983 国贸 1班 23308902001405 王海 男 11/20/1984 计算机 1班 23303482001421 李晓华 女 12/15/1983 计算机 2班 2330005
3、2001508 赵文娟 女 09/23/1983 机械 1班 23303972001209 张强 男 05/18/1984 国贸 1班 2330566第 2章 数据库的建立与维护 数据表中的一行称为一条记录 (Record)或一个元组,表示了数据表中一组相关联的信息。数据表中的一列称为一个字段(Field), 字段反映了某个主题的信息,数据表字段的取值范围称为域 (Domain), 如性别的域是 (男,女 ),所在班级的域是一个学校所有班级名的集合等。第 2章 数据库的建立与维护 关系数据库要求关系中的每一个元组具有唯一性,即关系中没有相同的元组。因此,对于关系中的某一个属性或属性组,若它的值
4、能唯一地标识出一个元组,则称该属性或属性组为候选键 (Candidate key)。 在一个关系中可能有多个候选键,可选择其中的一个作为主键 (Primary key), 也称为关键字。在一个关系中只能有一个主键。假设表 2-1所示的学生情况表中没有同姓名学生,则学号和姓名都分别是该关系的候选键,可以取学号作为主键。第 2章 数据库的建立与维护 数据库可包含多个数据表,每一个数据表对应一组相关主题信息。例如学生选课数据库系统可以包含学生情况数据表、课程情况数据表和学生选课数据表等,这几个表之间是相对独立又相互关联的。关系数据库的关系就体现为二维数据表的结构及表之间的联系。它允许用户不仅能从当前
5、选定表中访问数据,而且可以通过当前选定表访问其他表中的数据。在某个关系 R中可能有这样一组属性 A, 它不是关系 R的主键,但它是另一个关系 S的主键,则属性组 A称为关系 R的外键 (Foreign key)。 第 2章 数据库的建立与维护 2.2 数 据 库 设 计1. 应用示例背景信息教务处每一年都要组织学生进行选修课的选择,公布每门选修课的课程编号、名称、学分、学时、任课教师及课程内容等,学生根据自己的实际需要选修相应的课程。选修时填表录入自己的学号、选修课程号、选修学期等信息,教务处根据全院学生基本情况表清单 (表 2-1)建立每个学生的选修课程成绩档案,对学生的选修课成绩进行管理统
6、计。为了方便管理,要求建立相应的计算机数据库管理系统。第 2章 数据库的建立与维护 2. 确定数据表经过细致地调查和分析,在明确了建立数据库的目的、内容和处理方式之后,就可以着手把信息分成独立的主题,每个主题对应数据库中的一个表。例如对于上述管理学生选课的系统来说,可以建立 “学生情况表 ”、 “课程情况表 ”和 “学生选课表 ”三个表。 第 2章 数据库的建立与维护 3. 确定所需字段、字段类型和其他属性确定了数据库中所包含的表后,还应该根据表中所包含的信息项确定表的字段。例如,在学生情况表中,可以建立 “学号 ”、“姓名 ”、 “性别 ”等字段。字段的建立应该考虑既能描述主题信息,又能体现
7、数据表之间的关系且尽量避免冗余。Visual Foxpro 6.0是一个关系型的数据库管理系统,可以利用表之间的关系来迅速查找存储在多个表中的信息,并可将这些信息组合在一起。根据主关键字的定义,如果姓名存在重复值,则只有 “学号 ”可以作为其主关键字,因为根据 “姓名 ”或 “性别 ”是无法唯一确定某一条记录的。在 Visual Foxpro 6.0中,正是利用主关键字的特征,从而快速地关联多个表中的数据,并将数据组合在了一起。在确定主关键字时应注意以下两点:第 2章 数据库的建立与维护 (1) 在主关键字中不允许有重复值或 NULL值。因此,不能选择包含有重复值或 NULL值的字段作为主关键字。(2) 因为要用主关键字的值来查找记录,主关键字的长度直接影响数据库的操作速度。因此,在创建主关键字时,该字段值最好使用能满足存储要求的最小长度,所以它不能太长,以方便记忆和键入。