学生信息管理系统 毕业论文1.doc_第1页
学生信息管理系统 毕业论文1.doc_第2页
学生信息管理系统 毕业论文1.doc_第3页
学生信息管理系统 毕业论文1.doc_第4页
学生信息管理系统 毕业论文1.doc_第5页
免费预览已结束,剩余60页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘 要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统 的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型应 用工具,任何一个单位要生存要发展,要高效率地把内部活动有机地 组织起来,就必须建立与自身特点相适应的管理信息系统。 本系统是以东北大学秦皇岛分校的学生信息管理工作为调研背景, 针对东北大学秦皇岛分校学生信息管理部门的工作情况和工作需求, 对其工作流程和工作内容做出充分的调查,然后根据调查设计出学生 信息管理系统的总体结构规划,对学生的基本信息、班级信息、成绩 信息等进行统一管理,便于查询、修改和打印。 本管理系统采用 vb6.0 和 access 2002 软件为开发工具,应用 sql 查询语句对数据库进行修改、删除、查询等操作,应用 ado 技术 连接应用程序和数据库,以上两种技术的应用使数据库的内容显示在 vb 的 msflexgride 控件之中。结合 vb 的面向对象编程的特点,应用 vb 的 mdiform 将各个子窗体连接起来,将各个子窗体的 mdichild 属 性设置为 true,使得各个子窗体以 mdiform 为父窗体,子窗体在父窗 体中显示但不可遗出父窗体。 本管理信息系统主要实现的功能模块:基本信息管理、班级信息 管理、成绩信息管理、学籍变动信息管理、其他信息管理、管理员信 息管理、系统管理。 本 系 统 界 面 友 好 , 功 能 完 善 , 操 作 简 单 , 比 较 实 用 。 关键词:控件、窗体、模块、数据库 ii abstract along with informational technology thorough in management, the management information system is more and more perfect in the technology. this system is the new tools for management informations work. if any business want development and have the high efficiency organically to organize the internal activity, they must establish the management information system which adapts with own characteristic. for the management information of northeast university qinghuandao batch, we design a school register management information system, to students basic information, the class information, the score information and so on .on the unification management, is advantageous for the inquiry, the revision and the printing. this article uses vb and access 2002 basic on sql language and ado technology. connect vb and access above two technologies for msflexgrid. childform for mdiform dont move out fatherform by mdichild was set ture. main realization function module: basic information management, class and grade information management, result information management, school register change information management, miscellaneous information management, manager information management, system administration. this system contact surface friendly, operation simple, quite is practical. key words: controls, the window, the module,database iii 目 录 摘 要 i abstract ii 第 1 章 绪 论 .1 1.1 系统设计的背景 1 1.2 系统的功能简介 1 1.3 论文的组织结构 2 第 2 章 系统分析 4 2.1 需求分析 .4 2.1.1 基本信息管理功能: .4 2.1.2 班级信息管理功能: .4 2.1.3 成绩信息管理功能: .4 2.1.4 学籍变动信息管理功能: .5 2.1.5 其它管理功能: .5 2.1.6 管理员管理功能: .5 2.1.7 系统管理功能: .5 2.2 数据流程分析 5 2.2.1 数据流程图 .5 2.2.2 数据库 .6 第 3 章 开发工具介绍 .7 3.1 开发工具的选择 .7 3.2 visual basic 概述 7 3.3 vb 的特点: .8 3.4 access 概述 .9 第 4 章 系统数据库设计 .11 4.1 与数据库相关的概念 11 4.2 access数据库基本特点: .12 4.3 access数据库及其基本操作 .13 4.3.1 新建数据库 13 4.3.2 创建数据表 14 4.4 vb 与 access的连接(ado) .14 4.5 数据库设计 15 4.4.1 数据的属性 15 iv 4.4.2 数据 库的总体 e-r 图 17 第 5 章 系统详细设计 .18 5.1 设计简述 18 5.2 系统功能设计 18 5.2.1 登录模块 18 5.2.2 总模块 19 5.2.4 学籍变动信息管理模块 24 5.2.5 其它信息管理 25 5.3 系统功能实现 26 5.3.1 系统登录窗体的实现 26 5.3.2 基本信息管理模块窗体的实现 26 5.3.3 学籍变动信息管理窗体的实现 .29 5.3.4 其它信息管理窗体的实现 .30 5.3.5 关于窗体的实现 .32 第 6 章 系统连接与测试 33 第 7 章 结 论 .34 致 谢 .35 参考文献 36 附 录 .1 附录 1:英文原 文:introduction of sql .1 附录 2:英文译文:sql 的简介 .1 附录 3:学生信息管理系统的主要代码 .6 1 第 1 章 绪 论 1.1 系统设计的背景 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已 为人们深刻认识,已进入人类社会的各个领域并发挥着越来越重要的 作用。 学校中学生信息的管理水平还停留在纸介质的基础上,这样的机 制已经不能适应时代的发展,这种管理方式存在着许多缺点,如:效率 低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、 更新和维护都带来了不少的困难,并且这种老式的管理手段也浪费了 许多人力和物力;在信息时代这种传统的管理方法必然被计算机为基 础的信息管理所取代。 作为计算机应用的一部分,使用计算机对学生档案信息进行管理, 有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性 高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大地 提高学生档案管理的效率。本学生信息管理系统的设计是为适应信息 化的要求,使学生信息管理部门管理学生信息提高到计算机化的水平 而设计的。 在课题的实现过程中,课题小组先后多次同学生处的老师进行沟 通,逐步明确所要实现的目标,从而正确的进行设计,并实现了所要 达到的功能,本系统能够极大地提高学生信息管理的效率,也是学校的 科学化、正规化管理,与世界接轨的重要条件。 1.2 系统的功能简介 它的功能基本能够完成学生基本信息,成绩,班级等的存储修改 和查询。并提供部分系统维护功能,使用户方便进行数据查询、修改 2 和删除。本学生信息管理系统应该具有界面友好、思路清晰、方便易 用、后台管理功能强大等功能。 本系统包括基本信息管理,班级信息管理,成绩信息管理,其它 管理,学籍变动管理,管理员管理和系统管理。其中基本信息管理有 含有档案录入、档案修改、档案删除和档案查询;班级信息管理中含 有班级录入、班级修改和班级删除;成绩信息管理中含有成绩登记、 成绩修改、成绩删除和成绩查询;其它信息管理中含有其他信息添加、 和其他信息查询;学籍变动管理中含有学籍变动添加、学籍变动查询; 管理员管理中含有管理员添加和修改密码;系统管理中又含有帮助主 题、关于、返回和退出。 以计算机为基础学生信息管理系统应该能够为用户提供充足的信 息和快捷的操作手段。其开发主要包括后台数据库的建立和维护以及 前端应用程序的开发两个方面。对于前者要求建立起数据一致性强和 完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能 完备,操作方便等特点。 1.3 论文的组织结构 第二章系统分析,简单讨论学生信息管理系统的分析过程,重点 说明学生信息管理系统包括的功能。第三章开发工具介绍,选用 vb 和 access 作为系统的开发工具的依据和两种开发工具的简单介绍。第 四章系统数据库的设计,介绍数据库的设计思想和 access 的操作过程, 以及数据库概念的介绍。第五章在系统详细设计,介绍了系统的内部 结构和操作界面。第六章系统的连接与测试,对各个模块的连接做了 说明和对连接后的系统做的系统测试,并列举的一个测试用例。第七 章结论,总结整篇论文和毕业设计所作的工作,对系统的不足之处做 3 了相应的说明,对以后的体统完善做了基本介绍。 4 第 2 章 系统分析 2.1 需求分析 本系统的主要任务是实现学校学生信息管理部门对学生的基本信 息管理、成绩管理、班级管理、学籍变动管理、其它信息管理,管理 员管理及系统管理。其主要功能包括: 2.1.1 基本信息管理功能: 档案添加:提供给管理员进行学生的基本信息的添加,已达到学 生信息入库。 档案删除:当学生毕业后,系统的基本数据库中需要删除毕业学 生的基本信息。 档案修改:本部分的功能主要是为了应对有的学生的基本信息在 校期间发生变化,需要进行修改的情况。 档案查询:对已有的学生信息进行查询,提供了按学号,班号, 专业等信息的查询功能。 2.1.2 班级信息管理功能: 班级添加:把新曾班级的班号、专业、导员、备注等信息写入数 据库中。 班级修改:当班级信息发生变化时而必须有的功能。 班级删除:当学生毕业后,这些信息也就没有用了就需要删除。 2.1.3 成绩信息管理功能: 成绩添加:为了每次考试后都可以把学生的考试信息装进数据库 中。 成绩删除:当一条成绩信息不再有用成为垃圾信息时就把它从库 中删掉。 5 成绩修改:当学生的成绩输入错误时或分数有变化时而必须有的 功能。 成绩查询:本模块提供了按学号查询和课程查询两种查询模式。 2.1.4 学籍变动信息管理功能: 学籍变动添加:主要是为了有转学,退学,降级等情况而设定的 功能。 学籍变动查询:对制定学号的学生进行学籍变动查询。 2.1.5 其它管理功能: 其它信息添加:主要是为了添加学生是否参加过勤工俭学,是否 申请助学贷款和记录学生奖学金获得情况。 其它信息查询:对杂项库中记录的信息进行的查询。 2.1.6 管理员管理功能: 管理员添加:为了有新的管理人员加入工作而设计的功能。 修改密码:为了增强保密性,而设计的让管理员经常更换密码。 2.1.7 系统管理功能: 本功能提供了帮助主题,关于,返回,退出四项功能,主要是为 了方便用户管理。 2.2 数据流程分析 2.2.1 数据流程图 根据以上的系统功能描述,设计出顶层数据流图如下: 6 统计表 操作结果 系统管理管理员管理 其它管理 学籍变动管理 成绩管理 班级管理 基本信息管理 学 生 信 息 管 理 系 统 用 户 学生信息 管理系统 图 2.1 顶层数据流图 fig.2.1 the datas figure for the top of database 2.2.2 数据库 基本信息 (学号(c,20),姓名(c,20),性别(c,2),出生日期(data), 政治面貌(c,10),家庭出身(c,10),家庭电话(c,20),家庭邮编(c,10); 家庭住址(c,100);考生来源(c,100),曾用名(c,20),民族(c,10), 系名(c,20),专业(c,30),班号(c,10),本人成分(c,8),籍贯(c,100), 备注(c,100) 班级(班号(c,10),导员姓名(c,20),专业(c,30),备注(c,200) 杂项(学号(c,20),奖学金(c,30),勤工俭学(c,4),助学贷款(c,4) 成绩(学号(c,20),课程名(c,20),成绩(integer) 学籍变动(学号(c,20),学籍变动类型(c,20)备注(c,200) 管理(管理员名称(c,50),密码(c,20) 7 第 3 章 开发工具介绍 3.1 开发工具的选择 经过分析,我们使用 microsoft 公司的 visual basic6.0 和 microsoft access 2002 开发工具, microsoft 公司的 visual basic 6.0,利用其强大的可视化界面功能及对数据库的支持,先构造一个 原型,逐步增加功能,最终满足需求。系统中大量采用 sql 查询语句, 界面友好,功能较强。 microsoft access 2002 数据库对提供数据库管理方面方便快捷, 尤其是对数据库的表的操作简单易用,对于本系统在数据库的建立方 面有着比其他数据库软件更大的优势。 3.2 visual basic 概述 微软公司的 visual basic 6.0 是 windows 应用程序开发工具, 使目前最为广泛的、易学易用的面向对象的开发工具。visual basic 提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少 了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应 用程序的运行效率和可靠性。 vb 是可视化设计具有“所见即所得”的功能。在程序设计时,头 脑中所想的应用程序界面,完全可以通过键盘与鼠标完成,而不用编 制大量的代码。如果需要修改,也可利用键盘或鼠标完成,而底层的 一些程序代码可由 vb 自动生成或修改。vb 是事件驱动编程,在 vb 中 把窗体及控件称为对象。这些对象组成了与用户交互的图形界面(用 户界面) 。用户通过鼠标和键盘和应用程序进行交互式最直接、最方 便的,这时那些对象对鼠标、键盘操作所引起的事件做出响应。 (响 应就是指执行一段应用程序,它不沿预定的路径执行,而是在响应不 8 同事件时执行不同的代码。 ) vb6.0 是一种 32 位的开发工具,vb5.0 以前的开发工具很多是在 dos 和 window3x 下使用的,因而它们基本上是 16 位的开发工具,vb6.0 是运行在 windows9x 或 windownt 操作系统下的,因此它是典型的 32 位开发工具。 因此,实现本系统 vb 是一个相对较好的选择。 3.3 vb 的特点: 应用面向对象的程序设计方法:在 vb 中,应用面向对象的程序 设计方法(oop) ,把程序和数据封装起来视为一个对象,每个对象都 是可视的。程序员在设计时只需用现有工具根据界面设计的要求,直 接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象, 并为每个对象设置属性。 事件驱动的编程机制: 事件驱动是非常适合图形用户界面的编 程方式。事件掌握着程序运行的流向,每个事件都能驱动一段程序的 运行。程序员只需编写响应用户动作的代码,而各个动作之间不一定 有联系。这样的应用程序代码一般较短,所以程序既易于编写又易于 维护。 提供了易学易用的应用程序集成开发环境: 在 vb 集成开发环境 中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成 可执行文件在 windows 中运行,使用户在友好的开发环境中工作。 结构化的程序设计语言:vb 具有丰富的数据类型和结构化程序结 构,而且简单易学。而且 vb 有许多独到之处: 强大的数值和字符串处理功能。 丰富的图形指令,可方便地绘制各种图形。 9 提供静态和动态数组,有利于简化内存管理。 过程可递归调用,使程序更为简练。 支持随机文件访问和顺序文件访问。 提供了一个可供应用程序调用的包含多种类型的图标库。 具有完善的运行出错处理。 支持多种数据库系统的访问 :利用数据控件可访问的数据库系 统有:microsoft access、btrieve、dbase、microsoft foxpro 和 paradox 等,也可访问 microsoft excel,lotusl-2-3 等多种电子表 格。 支持动态数据交换(dde) 、动态链接库(dll)和对象的链接与 嵌入(ole)技术动态数据交换(dde)的编程技术,使 vb 开发应用 程序能与其他 windows 应用程序之间建立数据通信。 通过 vb 的动态链接库(dll)技术,在 vb 程序中可方便地调用 c 语言或汇编语言编写的函数,也可调用 windows 应用程序接口 (api)函数,以实现 sdk 所能实现的功能。vb 的核心是其对对象的 链接与嵌入(ole)的支持,它是访问所有对象的一种方法。利用 ole 技术,vb 将其他应用软件视为一个对象嵌入到 vb 应用程序中,进行 各种操作,也可将各种基于 windows 的应用程序嵌入到 vb 应用程序, 实现声音、图像、动画等多媒体功能。 3.4 access 概述 access2002 就是关系数据库开发工具,数据库能汇集各种信息 以供查询、存储和检索。access 的优点在于它能使用数据表示图或 自定义窗体收集信息。数据表示图提供了一种类似于 excel 的电子 表格,可以使数据库一目了然。另外,access 允许创建自定义报表 10 用于打印或输出数据库中的信息。access 是一种关系数据库工具, 关系数据库是已开发的最通用的数据库之一。如上所述,access 作 为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌 面数据库的便利和关系数据库的强大功能。 11 第 4 章 系统数据库设计 4.1 与数据库相关的概念 (1)数据库 数据库(database)就是按一定的结构组织在一起的相关数据的 集合。对于一个特定的数据库来说,它是集中、统一地保存、管理着 某一单位或某一领域内所有有用信息的系统。这个系统根据数据间的 自然联系结构而成,数据较少冗余,并且具有较高的数据独立性,能 为多种应用服务。如,学校中的所有学生的档案,公司企业的人事档 案和有关的商务信息等。 (2)数据表 数据表(table)可以比喻成一个存放原始数据的特定容器,是 一种有关特定实体的数据集合。在一个数据表中,常常可以按照行或 列的格式组织数据。对于每个实体分别使用的数据只需存储一次。这 将提高数据库的效率,并减少数据输入错误。早期数据库系统的数据 库,表和数据库是同一个概念,如 dbase 等,现在的数据库和表是不 同的概念,如 access 等。比如说,在学校中关于学生信息的数据保 存在一个表中,而有关学生的成绩保存在另一张表中,两张表通过一 定的关系联系到一起。 (3)记录和字段 数据表可以被分为行和列,行称为记录(record) ,列称为字段 (fields) 。在表中同一行数据被称为一条记录。每一个信息行都可 以设想为一个单独的实体,它可以根据需要进行存取或排列。例如, 在前面所举的例子中,将学生表中的涉及同一学生的信息就包含在一 12 条记录中。记录通常通过记录在数据表中的唯一的数据值来识别,这 个数据值通常被称为主键。在表中同一列数据具有相似的信息,这些 数据的列条目就是字段。例如:学号、姓名等等。每一个字段都通过 明确的数据类型来进行识别,常见的数据类型有文本型、数字型、货 币型等,字段必须定义特定的长度,每个字段在顶行用一个名字来表 明其具体信息类别。 (4)数据值 数据表中的行和列,即记录与字段的相交处就是值存储的数 据元素。数据值的特点是不唯一性,在同一个表中,同一个值可能会 重复出现。而每个数据值的字段和记录却是唯一的,字段可以用字段 名来识别,记录则通常通过记录的某些唯一的特征符号来识别。 j.martin 给数据库下了一个比较完整的定义:数据库是存储在一 起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗 余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库 插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式 进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系 统包含一个“数据库集合“。 4.2 access 数据库基本特点: access 是一个前后台结合的“软件” 。 也就是说 access 既拥有 用户界面(vb 可以用来开发用户界面);也拥有逻辑、流程处理,即 vba 语言(vb 也可以用来做逻辑处理);又可以存储数据,即在“表” 中存储数据。而所有这些都存储在一个 mdb 格式的文件中(当然,也 可以是 mde 等格式) access 不是一种存储格式,是一种软件。其基 本特点如下: 13 access 是一个中、小型关系数据库管理系统。 access 又是一个完全面向对象,采用事件驱动机制的最新关系数 据库管理系统,使得数据库的应用与开发更加便捷、灵活。 access 是一个同时面向数据库最终用户和数据库开发人员的关系 数据库管理系统。 access 是一个典型的开放式数据库管理系统。 access 支持多媒体的应用与开发。 access 既可以在单用户环境下工作也可以在多用户环境下工作, 并且具有完善的安全管理机制。 access 内置了大量的函数。 access 提供了许多宏操作。 access 提供了联机帮助功能。 4.3 access 数据库及其基本操作 4.3.1 新建数据库 使用 access2002 新建一个数据库有两种方法:一种是创建一个 空数据库,即建立一个没有表、查询、窗体和报表等内容的数据库; 另一种方法是使用 access 中提供的数据库模板创建数据库,即通过 对向导所提出的选项和不同选择来设计窗体、查询和报表等,从而建 立一个完整的数据库。本系统采用了第一种方法设计数据库。第一步, 在 access 窗口中单击 “文件(f)”菜单,在下拉菜单中选择 “新 建”项;第二步,双击 “数据库” 图标,即会显示 “文件新建 数据库” 对话框;第三步,在文件名文本框中输入要保存数据库的 文件夹及新建的数据库名,如 “d:datamassage” ,然后选择 “确定” 。即可创建好一个名为 “datamassage” 的数据库 14 4.3.2 创建数据表 表是 access 数据库的基础,是信息的载体。其它对象如查询、 窗体和报表,也是将表中的信息以各种形式表现出来,方便用户使用 这些信息。在 access 中,创建表的方法有三种:一是使用设计器创 建表;二是通过输入数据创建表;三是利用向导创建表。在这里,我 们采用第二种方法创建表:在中文 access 2000 中,可将数据直接输 入到空白的数据表中,然后当保存这张新的数据表时,这个软件能分 析数据并且自动为每一字段指定适当的数据类型及使用格式。为了执 行该操作,首先要在数据库窗口中选定“对象”列表中的“表”项, 然后单击工具栏中的“新建”按钮,进入“新建表”对话框后通过列 表中的“数据表视图”项,此后,屏幕上将显示一个空数据表提供有 默认的列名称,即字段:字段 1、字段 2,。此时,可以立即输 入数据记录,建立数据表了。 4.4 vb 与 access 的连接(ado) ado(activex data objects)中文名叫 activex 数据对象。是 一种战略性的,高层次的,独立于编程语言的,可以访问任何种类数 据源的数据访问接口。大多数 vb 程序员选择通过 ado 来引用包括 sql server、oracle、access 等数据库。 ado 技术为连接数据源提供了三种方法:ado 数据控件、data environment designer 和代码中定义的对象。本程序应用的是在代 码中定义对象的方法。 第一步:我们要在代码中创建一个 ado 对象 dim cnn as adodb.connection dim 语句只用于声明 15 变量名和对象类型 dim rst as adodb.recordset set cnn = new adodb.connection 对象的创建使用关 键字 new 第二步:让 ado 与数据库建立连接 set cnn = new adodb.connection 创建对象 set rst =new adodb.recordset dim strapppath as string strapppath = app.path if right(strapppath, 1) 10000; sql 能被数据库管理员、管理人员、应用程序开发者等各 类终端用户广泛使用。 现在,国际性的 sql 语言标准已成为定义和操作关系数据库名义 上和事实上的标准(iso,1992,1999a) 。 5.1.2 sql 历史 正如第 3 章所述,关系模型(间接意义上的 sql)起源于在 ibm san jose 研究室工作的 e.f.codd 发表的一篇论文(codd,1970)。1974 年,该研究室的 d. chamberlin 定义了一种称为 sql 的结构化英语查 3 询语言,或称为 sequel。1976 年,其修改版本 sequel/2 出现,然后 正式改名为 sql(chamberlin and boyce,1974;chamberlin et al.,1976)。如今,仍有很多人将 sql 读为“see-quel” ,尽管官方的 读法为“s-q-l” 。 ibm 在 sequel/2 的基础上推出了称为 system r 的 dbms 原型,用 于验证关系模型的可行性。除了其他方面的成果外,最重要的成果是 开发了 sql。但是 sql 的最初起源应当追溯到 system r 前期的 square(specifying queries as relational expression)语言, 它是一种用英语句子表示关系代数的研究语言。 20 世纪 70 年代末期,现名的 oracle corporation 推出了第一个 基于 sql 语言开发的商业 rdbmsoracle 数据库系统。不久,又出 现了基于 quel 查询语言的 ingres 数据库系统,quel 语言和 sql 语言 相比,结构化特性更强,但与英语不大类似。当 sql 成为关系数据库 系统标准语言后,ingres 也转向支持 sql 的 dbms。1981 年和 1982 年, ibm 公司分别在 dos/vse 和 vm/cms 环境下推出了第一个商业 rdbms sql/ds 数据库系统。随后又于 1993 年在 mvs 环境下推出 db2 数据 库系统。 1982 年,美国国家标准组织基于 ibm 公司提交的一份概论性建议 文件开始着手制定关系数据库语言(rdl)的标准。1983 年,iso 参 与这一工作,并共同制定了 sql 标准(名称 rdl 从 1984 年不再使用, 标准的草稿转变为与已有的各种 sql 实现更加类似的形式) 。 1987 年,iso 组织最公布的标准受到有关人士的严厉批评。该领 域内一位很有影响的研究员 date 声称,诸如引用完整性规则和某些 关系运算符等一些重要的特性被忽略掉了。他还指出,该语言严重冗 余,换句话说可用多种方法写相同的查询语句 4 (date,1996,1997a,1990) 。许多批评是正确的,并且在标准公布之 前就已为标准组织所了解。然而组织认为,更重要的是尽早公布标准, 为语言和实现的发展奠定基础,而不是等待人们定义和认同所有特性。 1989 年,iso 组织公布了名为“完整性增强特性” (integrity enhancement feature)的补充文件(iso,1989 ) 。1992 年,对 iso 标准进行了第一次比较大的修改,称为 sql2 或 sql-92(iso,1992) 。 尽管一些特性是第一次在标准中提及,但实质上,它们已在 sql 许多 实现的一个或多个版本中以部分或类似的形式得体现。直到 1999 年, 标准的一个新版本形成,通常称为 sql3(iso,1999a) 。这个版本附 加了包括支持面向对象数据管理等特性,将在本书 27.4 节讨论。 供应商基于标准之上提供的特性称为扩展。比如标准仅为 sql 数 据库中的数据确定了六种不同的数据类型。许多实现以不同的方式扩 展了这个数据类型表。sql 的每个实现称为一种“方言” 。没有两种方 言完全相同,当前也没有方言和 iso 标准完全匹配。而且当数据库供 应商引进新的功能时,他们还扩展他们的 sql 方言,使其离标准更远。 但是 sql 语言的核心部分还是越来越标准化了。 虽然,sql 源于 ibm 公司的建议,但是它的重要性很快就激发了 其他供应商建立了自己的实现系统。时至今日,成百个基于 sql 的产 品得到应用,而且新产品还在不断涌现。 5.1.3 sql 的重要性 sql 是第一个也是惟一一个得到普通认可的数据库标准语言。另一 个数据库标准语言,即基于 codasyl 网络模型的网络数据库语言 (network database language,ndl),只有很少认同者。近来大的供 5 应商开发数据库产品都是基于 sql 或是 sql 接口的,这些供应商大多 数都是标准制定组织的成员。供应商和用户都在 sql 语言上进行了大 量的投资。sql 已成为应用体系结构的一部分,如 ibm 的系统应用体 系结构(system application architecture,saa) 。sql 也成为许多 大型的、有影响的组织的战略性选择,如支持 unix 标准的 x/open 联 盟。sql 也成为美国联邦信息处理标准(federal information processing standard,fips),销售给美国政府的所有数据库产品都 需满足该标准。供应商的国际联盟 sql 访问组(sql access group) 为 sql 定义了一组增强特性以支持异构系统的互操作。 sql 也被其他标准所使用,甚至作为一种定义工具影响了其他标准 的发展。比如,iso 的信息资源目录系统(information resource dictionary system,irds)标准和远程数据访问(remote data access,rda)标准。该语言的开发等到学术界的关注,它们提供了该 语言的理论基础以及顺利实现所需的技术,特别是在查询优化、数据 分布和安全领域。sql 面向新的市场,比如在联机分析处理(online analytical processing,olap)领域,而专门设计的实现也已出现。 5.1.4 术语 iso 组织公布的 sql 标准并未使用形式化的术语,如关系、属性和 元组,而使用通用的术语如表、列和行。使用中,通常用 iso 的术语 表示 sql 语句。注意,sql 并不严格支持第 3 章所描述的关系模型的 定义。例如,sql 允许 select 语句产生的结果表中包含重复行,它按 列进行排序并且允许用户对表中的行进行排序。 6 附录 3:学生信息管理系统的主要代码 模块主要代码 public username as string sub main() dim flogin as new formlanding flogin.show vbmodal if not flogin.ok then end end if unload flogin set fmainform = new mdiformmain fmainform.show end sub public function connectstring() as string dim strapppath as string strapppath = app.path if right(strapppath, 1) “ then strapppath = strapppath dbq=“ pwd=neuq“ end function public function executesql(byval sql as string, msgstring as string) as adodb.recordset dim cnn as adodb.connection dim rst as adodb.recordset dim stokens() as string on error goto executesql_error stokens = split(sql) set cnn = new adodb.connection cnn.open connectstring if instr(“insert,delete,update“, ucase$(stokens(0) then cnn.execute sql msgstring = stokens(0) & “ query successful“ else set rst = new adodb.recordset rst.open trim$(sql), cnn, adopenkeyset, adlockoptimistic set executesql = rst msgstring = “查询到“ & rst.recordcount & “ 条 记录 “ end if 8 end function end sub 登陆界面主要代码 private sub form_load() dim i as integer i = 0 txtsql = “select * from 管理“ set mrc = executesql(txtsql, msgtext) with txtusername do while not mrc.eof i = i + 1 .additem trim(mrc!管理员) mrc.movenext loop .listindex = i - 1 end with mrc.close ok = false micount = 0 end sub private sub cmdok_click() txtsql = “select * from 管理 where 管理员 = “ & txtusername.text & “ 9 set mrc = executesql(txtsql, msgtext) if mrc.eof = true then msgbox “没有这个用户,请重新输入用户名!“, vbokonly + vbexclamation, “警告“ txtusername.setfocus else if trim(mrc.fields(1) = trim(txtpassword.text) then ok = true mrc.close me.hide mdiformmain.visible = true mdiformmain.enabled = true username = trim(txtusername.text) else msgbox “输入密码不正确,请重新输入!“, vbokonly + vbexclamation, “警告“ txtpassword.setfocus txtpassword.text = “ end if end if micount = micount + 1 if micount = 3 then me.hide end if 10 exit sub end sub 基本信息添加主要代码 private sub command1_click() txtsql = “select * from 基本信息 where 学号= “ & trim(text1) & “ “ set mrc = executesql(txtsql, msgtext) if mrc.eof = false then msgbox “此学号已存在!“, vbokonly, “警告“ text1.setfocus exit sub end if mrc.close txtsql = “select * from 基本信息“ set mrc = executesql(txtsql, msgtext) mrc.addnew mrc.fields(0) = trim(text1) mrc.fields(1) = trim(text2) mrc.update mrc.close text1.text = “ text8.text = “ 11 text9.text = “ text10.text = “ text11.text = “1982-10-13“ msgbox “信息添加成功!“, vbokonly, “提示“ end sub private sub command2_click() text1.text = “ text2.text = “ end sub 基本信息的修改和删除代码 private sub command1_click() txtsql = “delete from 基本信息 where 学号=“ & trim(text1) & “ set mrc = executesql(txtsql, msgtext) txtsql = “select * from 基本信息“ set mrc = executesql(txtsql, msgtext) mrc.addnew mrc.fields(0) = trim(text1) mrc.fields(1) = trim(text2) mrc.update 12 mrc.close text1.text = “ text11.text = “1982-10-13“ msgbox “信息修改成功!“, vbokonly, “提示“ showdata end sub private sub showdata() dim txsql as string dim mrcc as adodb.recordset txsql = “select * from 基本信息“ set mrcc = executesql(txsql, msgtext) with msflexgrid1 .colwidth(0) = 2000 .colwidth(1) = 1200 .textmatrix(0, 0) = “学号“ .textmatrix(0, 1) = “系名“ .textmatrix(0, 2) = “专业“ .textmatrix(0, 3) = “班号“ do while not mrcc.eof .rows = .rows + 1 for i = 0 to mrcc.fields.count - 1 .textmatrix(.rows - 1, i) = mrcc.fields(i) & 13 “ next i mrcc.movenext loop end with mrcc.close end sub private sub msflexgrid1_click() text1 = trim(msflexgrid1.textmatrix(msflexgrid1.row, 0) text2 = trim(msflexgrid1.textmatrix(msflexgrid1.row, 1) end sub 基本信息查询的代码 dim mrc as adodb.recordset dim txtsql as string dim msgtext as string private sub command2_click() if option1.value = true then if not isnumeric(text1) then msgbox “学号输入有误!“, vbokonly + vbexclamation, “提示“ text1.setfocus exit sub end if 14 txtsql = “select * from 基本信息 where 学号=“ & trim(text1.text) & “ set mrc = executesql(txtsql, msgtext) if mrc.eof = true then msgbox “无此学号!“, vbokonly + vbexclamation, “ 提示“ text1.setfocus exit sub end if else if option2.value = true then if text2.text = “ then msgbox “专业不可为空!“, vbokonly + vbexclamation, “提示“ text2.setfocus exit sub end if txtsql = “select * from 基本信息 where 专业 =“ & trim(text2.text) & “ set mrc = executesql(txtsql, msgtext) if mrc.eof = true then msgbox “无此专业!“, vbokonly + vbexc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论