模块三 数据库设计
模块三 数据库设计
在图书管理系统中,数据库的设计非常关键,直接影响到数据的使用和存储以及今后的程序设计。为了准确高效的提供信息,我们的数据库文件可以包含一个或多个表、关系、视图和存储过程。 教学 目标 ? 掌握数据表基本操作:创建、打开、修改、关闭数据表,建立普通索引、主索引、候选索引、唯一索引。 ? 掌握数据库基本操作:创建、打开、修改、关闭数据库,添加删除表,删除数据库,设臵当前数据库,建立表之间的关联和参照完整性。 相关知识 数据库设计概述
1.数据库设计原则:
(1)多数据库,少数据量
如果所组织的数据库记录非常大,程序对数据库操作时所用的时间就特别长。此时,应该根据需要和数据库中的数据类型将该数据库拆分成多个数据库,从而减少每个数据库记录。这是为了程序执行时能快速访问数据,有利于查询、统计的一种设计方法。
(2)尽量减少多个表间的重复字段
除了保证各个表之间存在联系的外部关键字段外,尽量减少各表之间的重复字段,其目的是尽量减少数据的冗余,防止在插入、删除和更新时造成数据的不一致。
(3)表中必须保持正确和原始的基本数据
程序利用数据库中的数据进行各种各样的操作必然会产生中间或最终结果,但保证数据库中数据的正确性和原始性是非常重要的。若需要时,可将中间结果或最终结果保存在另外的数据库中,以保证其它程序操作的正确性。
(4)用外部关键字保证有关联的表之间的联系
各表间的关联是依靠外部关键字实现的,因此,在尽量减少重复字段的情况下,设计时还要考虑关联时所用到的相同的关键字段,使得表具有合理的结构。
2.数据库设计步骤: (1)需求分析
根据图书管理系统的要求、要完成的任务和要达到的各项指标,全面汇总、详细分析数据资料对数据库的设计十分重要。在以上的工作中总结出用户要从数据库所获得的信息内容,定义数据库结构、数据类型以及数据的方法等。
Page 1
Visual FoxPro 程序设计
(2)定制需要的表
根据用户对数据库的要求,查询、统计、报表等功能所需数据,将信息分门别类地建立各种各样的表,以满足各种功能的需要。
(3)确定表中的字段
每个表中都包含关于同一主题的信息,表中的每个字段则包含关于该主题的各个事件。例如,“客户”表可以包含公司的名称、地址、城市、省份和电话号码的字段。在草拟每个表的字段时,要注意以下问题:
①每个字段都直接与表的主题相关。
②不包含推导或计算的数据,如表达式的计算结果。 ③包含所需的所有信息。
④以最小的逻辑部分保存信息。例如,对英文姓名应该将姓和名分开保存。 (4)确定联系
根据要求所设计的数据库,不仅存储了所需实体信息,同时还要反映出实体之间客观存在的关联:一对多联系和多对多联系。
边学边练 用以上的数据库设计原则分析第一章我们的图书管理系统的数据库设计。 通过第一章我们的图书管理系统的功能分析,本系统需要五个表,模型如下:
t_book:(图书ID,书名,作者,单价,版次,出版社,出版日期,备注) t_reader:(借书证号,姓名, 性别,出生日期,班级,备注) t_borrow:(借书证号,图书ID,借书日期,还书日期,标记)
读者类型:( ID编号,类型名,可以借书的数量,借书的期限,读者的有效期限,备注)
图书分类代码表:(类型号,类型名,关键字,备注) 相关知识 数 据 模 型
1、数据模型的基本概念 实体的描述
实体(Entity):客观存在并可相互区别的事物称之为实体。 实体的属性:描述实体的特性称为属性 。 实体联系及联系的种类:
①一对一联系(1:1)如:学生————图书证 ②一对多联系(1:n)如:图书证————图书 ③多对多联系(m:n)如:学生————图书 2、数据模型的定义
现实世界中的客观事物(实体)是彼此相互联系的。具有联系性的相关数据总是按照一定的组织关系排列,从而构成一定的结构,对这种结构的描述就是数据模型。数据模型是计算机中表示客观事物及其联系的数据和结构。
2 Page 模块三 数据库设计
3、数据模型的类型
常用的数据模型有层次模型、网状模型和关系模型三种。 (1)层次模型
用树形结构表示数据及其联系的数据模型称为层次模型。 如图3-1所示。 特点:
①记录之间的联系通过指针实现 ②有且只有一个根结点 ③无法反映多对象的联系 ④应用程序的编写比较复杂
图3-1 层次模型
使用层次模型实现的数据库结构如图3-2所示。
图3-2层次模型实现的数据库结构
(2)网络模型
用网络结构表示数据及其联系的数据模型称为网状模型。网状模型是层次模型的拓展,网状模型的结点间可以任意发生联系,能够表示各种复杂的联系。网络模型是用网络结构来表示数据之间的联系,可以表示多对多的联系。如图3-3所示。
Page 3
Visual FoxPro 程序设计
特点:
①可以有一个以上的结点无父结点;
②至少有一个子结点有一个以上的父结点; ③在两个结点之间有两个或两个以上的联系。
图3-3 网络模型
使用网状模型实现的数据库结构:如图3-4所示。
图3-4 网状模型实现的数据库结构
(3)关系模型(Relational Model) 人们习惯用表格形式表示一组相关的数据,既简单又直观,如图3-5就是一张图书基本情况表。这种由行与列构成的二维表,在数据库理论中称为关系,用关系表示的数据模型称为关系模型。在关系模型中,实体和实体间的联系都是用关系表示的,也就是说,二维表格中既存放着实体本身的数据,又存放着实体间的联系。关系不但可以表示实体间一对多的联系,通过建立关系间的关联,也可以表示多对多的联系。
4 Page 模块三 数据库设计
图3-5 图书基本情况表
关系模型是建立在关系代数基础上的,因而具有坚实的理论基础。与层次模型和网状模型相比,具有数据结构单一、理论严密、使用方便、易学易用的特点,因此,目前绝大多数数据库系统的数据模型,都是采用关系数据模型,成为数据库应用的主流。
关系模型是把数据结构看成一个二维表,每个二维表就是一个关系,关系模型是由若干个二维表格组成的集合。
关系模型如图3-6所示。
图3-6 关系模型
注意:?
①数据项不可再分,是最基本的单位;
②一个关系是一张二维表,不允许有相同的字段名,也不允许有完全相同的记录行; ③各列、各行的顺序是任意的; ④不允许有表中表的形式 相关知识
关系的相关概念 (1)关系
一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。如图3-5所示的图书基本情况表就代表一个关系,Book_id则为
Page 5