3.3k likes | 3.37k Views
数据库与数据表操作. 设计数据库 建立数据库与数据表 数据库表的基本操作 数据库的基本操作 索引的建立及使用 多表的使用 永久联系及参照完整性. 3.1 设计数据库. 确定数据库中所需的表. 确定表的主关键字. 确定数据表的结构. 确定表之间的关系. 设计数据库. 了解用户需求. 3.1.1 了解用户需求. 了解用户的需求及目的,是开发数据库应用系统的第一个且最重要的步骤。我们常说需求分析往往决定了一个应用系统的成败。
E N D
数据库与数据表操作 • 设计数据库 • 建立数据库与数据表 • 数据库表的基本操作 • 数据库的基本操作 • 索引的建立及使用 • 多表的使用 • 永久联系及参照完整性
确定数据库中所需的表 确定表的主关键字 确定数据表的结构 确定表之间的关系 设计数据库 了解用户需求
3.1.1 了解用户需求 • 了解用户的需求及目的,是开发数据库应用系统的第一个且最重要的步骤。我们常说需求分析往往决定了一个应用系统的成败。 • 在此阶段,开发人员要与应用系统的使用者进行交流,搜集人工操作报表,了解现行工作的处理过程。从而决定该系统输入数据的格式,应该解决的问题,需要获得的统计分析信息和报表的种类。
图书管理系统用户需求 某单位的小型图书馆有藏书数万册,为该单位的教职工和研究生进行图书借阅业务。该要求有以下功能: • 对于读者信息和书籍数据都要有新增、删除、修改、查询的功能。 • 需要根据各种条件查询图书的信息。 • 需要将每本图书的简介和封面图片保存在系统中。
图书管理系统用户需求 进行借书和还书的管理,借书时应遵循以下规则: • 书籍有精装、平装、线装三种类别,其中线装书不允许借阅。 • 对于研究生读者,可借书5本;对于教研人员和工作人员读者,可借书10本。 • 读者借书的期限为31天。
图书管理系统用户需求 需要打印的报表:借书证
图书管理系统用户需求 需要打印的报表:图书目录册
图书管理系统用户需求 需要打印的报表:逾期图书统计表
图书管理系统用户需求 • 该系统需要以下各数据项(字段): 读者证号、姓名、性别、身份、电话号码、 条形码、书名、分类号、作者、出版社、出版年月、售价、典藏类别、典藏时间、在库、币种、捐赠人、简介、封面、 借书日期、还书日期。 注意:对于能够根据已有信息计算出来的数据,不应定义为数据项。例如,“逾期图书统计”中的“逾期天数”
3.1.2 确定数据库中所需的表 若将所有的数据项放在一个数据表中,就会产生数据冗余。
确定数据库中所需的表 在设计数据库时,应将数据项划分为多个表,每个数据表只包含一个主题的信息。
3.1.3 设计表的结构 对于每一个数据表,要设计表结构,即数据表包括哪些字段,各字段的名称、数据类型、字段宽度和小数位数等信息。
确定数据表的字段 • 在确定所需字段时,应注意将与表的主题相关的字段存放在一个数据表中。 • 综合以上分析,各数据表的字段如下: • 读者表(读者证号、姓名、性别、身份、电话号码) • 图书表(条形码、书名、分类号、作者、出版社、出版年月、售价、典藏类别、典藏时间、状态、币种、捐赠人、简介、封面) • 借阅表(读者证号、条形码、借书日期、还书日期) 注意:在设计数据表时,应尽量避免在各个表之间出现重复的字段。
定义字段名称 • 数据库表字段名称最长可达128个字母,自由表字段名称最长可达10个字母。 • 字段名称可包含中文、字母、数字与下划线,但第一个字母不能是数字与下划线。 • 在同一个表中,各个字段的名称绝对不能重复。 通常,用户定义的字段名称与该字段所存储的数据项有关,如书名、sm、bookname均可作为描述书籍名称的字段名。
定义字段数据类型 • 字段的数据类型决定了该字段所储存数据的特性。 • VFP共提供了13种数据类型。
定义字段数据类型 • 字符型(C) 用来存储所有能打印的ASCII码字符和汉字,最多可存储254个字符。 • 像名称、地址、职称等字段,定义为字符型 • 像学号和电话号码这类字段,字段值由数字组成,但不需进行数学计算,也定义为字符型。
定义字段数据类型 • 数值型(N) 用来存储可参与加减乘除数学运算的整数或小数。 • 像价格、工资、成绩等字段,通常定义为数值型。 • 数据范围-9999999999E+19~0.9999999999E+20 • 浮点型的使用规则与数值型完全相同。
定义字段数据类型 • 货币型(Y) 用来存储一些表示货币量的数据。 • 由于小数位数固定为4位,如果输入货币型字段的数值的小数位超过四位,VFP将自动进行四舍五入。 • 数据范围-922337203685477.5807~922337203685477.5807
定义字段数据类型 • 整数型(I) 如果用户要存储的数值不需保留小数,并且在整型的数据范围之内,应采用整数型。 • 由于整数型字段是以4位的二进制值存储,所以它比其他的数值型字段要求较少的内存空间,并且处理速度也较快。 • 数据范围-2147483647~2147483647
定义字段数据类型 • 双精度型(B) 如果用户要存储的数值很大,或需要极高的精确度,则应选择双精度型。 数据范围+/-4.94065645841247E-324~+/-1.79769313486232E308
定义字段数据类型 • 日期型(D) 用来存储日期数据。 • 像出生日期、出版日期、借阅日期等字段,通常定义为日期型。 • 日期字段的默认格式为MM/DD/YY,在输入日期型数据时,VFP会检查其合法性。 • 可用 SET DATE TO 和SET CENTURY ON命令来改变日期格式。
定义字段数据类型 • 日期时间型(T) 通常用来存储仅包含时间或日期与时间都包含的数据。 • 像员工上下班的打卡时间,可以用日期时间型字段来存储。
定义字段数据类型 • 逻辑型(L) 逻辑型字段只能存放逻辑真值.T.或逻辑假值.F.。 • 当要存储的数据只能是两种状况之一时,例如图书是否在库,已婚或未婚等,适合采用逻辑型字段。
定义字段数据类型 • 备注型(M) 用来存储大量的文字信息。 • 由于字符型字段只能容纳254个字符,当字段需要存放较多的文本字符,如“经历”、“简介”等字段,定义为备注型。 • 一个表文件中如果包含备注字段,则系统将自动建立一个与表文件同名、扩展名为FPT的备注型文件,用来存放备注型字段所有内容。 • 备注型字段的长定固度为4字节,仅存放一个指针,指向该字段值在备注文件的地址。 • 备注型字段除了能进行编辑、显示和打印外,不能进行其他操作。
定义字段数据类型 • 通用型(G) 用来存储各种链接和嵌入OLE对象:图片、声音、音频、视频、office文档等。 • “照片”、word文档等字段应定义为通用型。 • 通用数据型字段仅存放指针,字段的内容存储在备注文件中。
定义字段数据类型 • 二进制字符型 与字符型相似,但其数据不会随代码页的改变而改变。 • 二进制备注型 与备注型相似,但其数据不会随代码页的改变而改变。
字段的宽度和小数位数 • 字段宽度 指字段中所能容纳的最大数据量。 • 对于字符型字段,字段宽度是指其所能输入的文本长度。其中,一个汉字所占宽度为2。 • 例如:读者表的姓名字段,最多要容纳4个汉字,应设置其宽度为8。
字段的宽度和小数位数 • 对于数值型与浮动型字段,字段宽度指其可能的最大位数(包括小数点和符号位) • 例如,若某数值型字段最小可能为-999999.99,应定义其字段宽度为1(负号)+6(整数最大位数)+1(小数点)+2(小数位数),即10。
字段的宽度和小数位数 有些数据类型的宽度是固定的: • 日期型,日期时间型,货币值类型,双精度型宽度固定为8; • 整数型宽度固定为4; • 逻辑型宽度固定为1; • 备注型与通用型宽度固定为4。
字段的宽度和小数位数 对于数值型、浮点型和双精度型字段,根据该字段需要的数据精度,设置小数位数。 • 例如图书表的售价字段,要求精确到角,设置其小数位数为1。由于图书价格最多不超过1万,该字段宽度为6。
3.1.4 确定表的主关键字 • 每个数据表必须有一个主关键字来唯一标识每一条记录。 • 例如,条形码字段能标识图书的唯一性,读者证号字段能标识读者的唯一性,是表的主关键字。
3.1.5 确定表之间的关系 • 用户在进行数据处理或查询时,需要用到的数据项可能存放在不同的数据表中。 • 根据表之间的关联将各个表的信息联系在一起。 • 图书表和借阅表通过公共字段“条形码”有着一对多的关联。 • 借阅表和读者表通过公共字段“读者证号”有着一对多的关联。
数据表的概念 • 数据表是一个由表结构和数据记录组成的二维表。 • 在建立数据表时,首先要创建表结构,即定义表中有哪些字段,每个字段的名称、数据类型、字段宽度和小数位数;然后再输入数据记录。
数据表的概念 • 数据表文件的扩展名为dbf。 • 若数据表中有备注型或通用型字段,还将产生一个扩展名为ftp的备注文件。
数据库的概念 • 数据库用来组织和管理相互联系的多个数据表及相关的数据库对象(包括视图、连接定义、存储过程)。 • 数据库中还包括数据字典的信息:即各个字段的标题、有效性规则、默认值等信息,各个数据表之间的关联及参照完整性信息。
数据库的概念 注意:数据表分为数据库表(隶属于一个数据库)和自由表(不属于任何数据库)。不管是哪种数据表,数据记录都是存放在dbf表文件中,而不是存放在数据库文件中。
选择数据库所保存在磁盘上的位置 输入数据库的名称 保存数据库
在项目管理器中建立数据库 注意:建立数据库后,系统在指定文件夹下创建了三个主文件名相同,扩展名不同的文件:.DBC为数据库文件,.DCT为数据库的相关备注文件,.DCX为数据库相关的索引文件。若要将数据库复制到其他地方,务必将三个文件一起复制,否则会出错。
文件(F) 新建(N) 通过新建对话框建立数据库
使用CREATE DATACASE命令建立数据库 CREATE DATABASE[<数据库名>|?] • 在命令中指定数据库名,则直接建立数据库。 • 如果未指定数据库名或使用问号,系统将打开“创建” 对话框,要求用户指定数据库名称和存储路径。 • 使用命令建立数据库后,只是将数据库打开。执行MODIFY DATABASE命令才打开数据库设计器。