创建数据库 王月 2001年 7期 #1 数据库是干什么的   “年过完了,又要上班了……”小欣坐在办公室里,看到堆在桌子上的一大堆材料直喊头疼:春节前买的各种办公用品需要入库、统计出去年的耗损材料、根据今年的工作拟订办公用品购买清单……唉!电脑、打印机、复印纸、办公桌,还有一大堆乱七八糟的小物品,光是查对固定资产卡片就够头疼的了!看来办公室主任也越来越不好当了,对了,不是有电脑吗?干脆编个适合自己单位用的设备管理数据库,用这个不就轻松多了吗,而且最大的好处就是“一劳永逸”。   说到用电脑,文字处理,上网,发邮件,小欣可是决不含糊,现在真要做个数据库出来,小欣可是丈二和尚摸不着头脑,不过不用着急,小欣自有高手请教,这不,来了吗。   “怎么,你的电脑又有问题了?”,阿月一看到小欣便热情地打招呼。   小欣看到阿月已经说到电脑了,心想赶快进入正题,急忙接嘴说:“劳你挂念,那到没有,只是想请你再给当一次师傅……”小欣紧接着把自己的想法说了出来。   “哦,是这样子,你若真想做这事的话,你得先坐下来,我们从头开始说。”   1.明确任务要求   “首先,你必须明确自己的想法,你究竟想要做什么,需要实现哪些功能?”阿月不慌不忙地问道。   “结合实际,我想把自己手上的所有办公设备都管起来:   第一,能够把我今后购买的日常办公用品的资料都输入数据库,当然以前已经买了的东西的资料也能一并输入。   第二,每年办公室开支都是有规定的,所以我想能够随时实现各个办公室设备的统计资料。   第三,能够随时查阅各个设备的资料,这样,我就可以根据实际情况,及时添置设备,也同时避免了买些不用的东西浪费了!”   想到自己需要什么,小欣当然毫不含糊了。   “这回你真的想对了,这些都是数据库的基本功能,肯定是没有问题的,不过要想做一个适合自己用的,可得要从头开始,你想好用什么语言来做了吗?是VB、VF、PB还是其他的什么啊?”   2.选择什么工具   阿月这样一问,马上就把小欣问懵了,“其实,我也不太清楚,我想应该找一个比较简单的,相对好学的,适合我们这种Office办公人员使用的,不要太复杂,和平时我们用的操作系统兼容性要好,这样我就可以在多台计算机上使用了,当然,操作简单,最好都能用鼠标来完成,不需要记太多的命令那就最好了,对了,还能把需要的东西都能打印出来就更方便了。”   “电脑给现代人提供的工作条件真是越来越好了!”阿月一边感慨一边用鼠标打开了一个应用程序,小欣发现,这个好像是Office 2000的一个组件,自己的机器上面也有,赶紧询问这是什么。   “Access 2000啊,Office 2000的组件之一,完全满足你的要求:操作简单全中文的交互式界面,还提供相应的提示信息帮助你完成操作。使用Access完成一般的数据库功能,完全可以不用那些繁杂的程序代码,有兴趣的话,还可以把声音、图片以及动画放进去,够方便的了吧!还有,想想你平时用的Word就知道了,它和Win98/2000的兼容性简直没得说!……”阿月不停地说道。   3.什么是数据库   “那我们马上开始用吧。”小欣急迫地说,但却发现阿月一点都没有要动手的样子。   “着什么急嘛?弄清楚了,这可不是教你发个邮件那么简单”,阿月不慌不忙地笑着对小欣说。   “你应该明白,数据库是一些具有共同特性的信息的集合,比如需要你管理的所有的办公室设备,它把这些大量的数据按一定的结构进行存储,集中管理并且统一使用这些数据,哪怕是个相对简单的数据库,在设计之前,都必须考虑整个数据库的内部结构以及需要实现的各个功能模块。在Access中,数据库不仅包含存放各种表,同时还包含以表中所存放的信息为操作对象的查询、窗体、报表等等数据库对象,这些都是在开始设计数据库之前必须要弄清楚的地方……”   “慢点,慢点,你怎么冒这么多的术语出来,说多了,我可不懂啊!”小欣急忙说。   “好吧,你也不用着急,就以你刚才提出的要求为准,我们来看看怎样使用Access建立一个小型数据库吧。”   “其实,对于初学者来说,可以把数据库看作是按照某种特定的结构将所有的数据组织起来存储在一起,这样就可以实现前面所说的集中管理、统一使用与资源共享了。而数据库管理系统是一个在操作系统支持下的软件包,利用它用户可以建立各种自己需要的数据库文件和其他一些辅助操作文件,并可以对数据库进行各种操作。”   “那么也就能实现我前面所说的各种功能了,但你不要讲得这么‘术语’啊。”小欣插嘴道。   “是的,你前面提到的都是数据库的基本功能,即:增(加)、删(除)、(修)改、统计、查询都可以实现的,干脆,画个简单的模块图来说明系统所完成的功能吧!你看是不是这样的!”(如^07060101a^1-1所示)。   “对,对,就是这样的!”小欣感到使用模块图很容易把自己想要的东西表现出来,使得设计的思路变得清晰、明了。   阿月接着说:“一个完整的数据库管理系统除了数据库本身之外,还需要用户使用界面、窗口、报表等方便用户的使用,我们在动手创建一个数据库应用程序的时候,都必须事先确定该系统的结构。今天不可能将一个数据库所有的设计过程都描述出来,只能告诉你创建数据库需要哪些基本步骤,并举一些例子来看看如何实现这些基本步骤,真正的数据库设计需要相当的时间,设计完后也还需要不断地调试修改才行。”   “当然,师傅领进门,修行还要靠个人。我们就开始吧。”小欣着急地说。   #1 创建数据库   一、数据库基本概念   “我想应该是先把需要的数据输入之后才能谈怎样处理的问题吧,可是各种办公设备的资料,比如:设备编号、价格、数量等等,又是怎样组织在一起形成数据库的呢?”小欣问。   数据库中存储数据的最基本对象是表,它也是构成数据库最重要的组成部分。这里的表是一个二维的线性结构,其实它和我们日常见到的各种表格,比如:工资表、学生成绩表等等的格式是一样的。表由若干行组成,每一行都被称为是一个记录,对应着一个实例,比如,我们这里的每一种办公设备就是一条记录;每一列称为一个字段,它表示着记录的一个属性信息。比如,每种办公设备都有编号、购置日期、价格等信息,这些信息就是属性了。若干张表结构相对完整独立,同时彼此之间也存在一定联系,这样就构成了一个数据库,我们对数据库的操作就不仅仅局限于一张表上。   “也就是说,一个数据库不止包含一张表了,那么我又需要几张表呢?”小欣又问。   表中到底含有哪些字段当然是和需要密切相关的,在这里,你至少需要两张表,一张是设备明细报表,包含所有办公设备的详细资料,另一张应该是设备报损表,包含需要报损的设备的相关信息。表的结构在很大程度上影响了数据库的效率。   小欣听完阿月一本正经的介绍后,对数据库有了一个粗略的了解,这时候,小月终于拿起鼠标、敲起键盘,动手“开干”了。   阿月说:“Access2000是Office 2000的组件之一,安装、启动、删除和使用帮助方法和WORD一模一样,这点我就不给小欣你多说了。”   二、使用向导设计表   “大体上,创建一个数据表,需要完成这些事情:创建数据库中需要的表、确定表中的字段、确定关键字、确定表间关系、最后还要把原始记录输进去。”阿月介绍说。   小欣边听边动,打开Access后,果断选择了“空Access数据库”选项,并确定了数据库的名字和存放位置,确定后进入如^07060101b^1-2所示的窗口后,等待阿月的进一步讲解了。   使用“空Access数据库”选项是Access提供两种创建数据库的方法之一,先创建一个空数据库,然后再添加表、窗体、报表及其他对象,这是最灵活的方法,但是必须分别定义每一个数据库组件;现在看到的图2所示的窗口就是首先帮助添加表的。在这个窗口中,提供了三种创建新表的方法,无论哪一种方法,都可以随时使用表设计视图来进一步定义表。使用向导创建表是最简单的做法。   在图1-2中,选择“使用向导创建表”,再单击“新建”按钮,然后在新弹出的窗口中选择“表向导”并确定,会弹出一个窗口(如^07060101c^1-3所示)。   到这里,小欣渐渐地看明白了,这实际上是一个很方便的工具,系统把经常使用到的一些字段的名称、类型等信息都分类列出,使用者根据需要将字段选出就可以了,必要时还可以对字段进行重新命名,确实很方便。由于有使用其他向导的经历,小欣很快就明白了该怎样做了,跟着向导的提示,她很快地就建立了设备报损表。可是主键又是什么啊,这一次阿月并没有马上回答她的问题。只是建议她再使用设计器创建下一个表。   三、使用设计视图创建表   小欣按照刚才的方法,双击“使用设计器创建表”进入了如^07060101d^1-4所示的窗口。   “看来这里需要我亲自动手了”。阿月急忙拿起鼠标。   在“字段名称”栏中输入字段,然后再将插入点移到“数据类型”中单击使其右边出现向下箭头按钮,在下拉菜单中选择数据类型,接着设置字段属性就可以了,对了,最后别忘了设置主键。   “不行,不行,你的动作太快了,先给我说说,数据类型是怎么回事情?”   Access允许有9种不同的数据类型,其实这和其他的数据库设计语言并无本质上的区别,你要记住,任何字段都必须给它确定唯一一种类型,你可以根据你的需要确定字段的类型,刚开始不熟悉的时候,可以参照一下这张表(^07060101e^1-5所示)。”   “那么字段属性又是怎么一回事呢?”小欣又问。   “字段属性是用于定义字段数据如何存放或显示,你看,在任何字段中单击时,该字段的属性都会自动显示在窗口的下半部。不同的字段类型相应的字段属性定义也会随之不同,对字段属性进行设置,可以帮助你统一数据显示和存储格式,同时也可以对数据输入的有效性进行限制。字段属性设置的参数很多,在你进一步优化数据库时可以参考系统帮助和其他参考书,你现在看看这张表(如^07060101f^1-6所示),对常用的属性有一个大体的了解就可以了。”阿月道。   小欣现在总算看明白了,她想了想自己需要的各项字段的要求,在图1-4所示的窗口中建立了相应的字段并确定了相应的数据类型和属性,如^07060101g^1-7所示。   “对了,最后还要设置主键,可这又是什么意思啊?”小欣不得不抬起头来,等待阿月的回答。   数据库中的每个表都有关键字,用来识别表中不同的记录,每一个记录都有不同的关键字以保证能够被唯一识别,这和我们的身份证号码、工作证号码是一个道理。当数据库中没有可以用来唯一识别表中的记录字段时,可以使用多个字段来组合成关键字。在这个设备明细表中,直接把设备编号作为主关键字就可以了。选中设备编号字段,单击右键或者直接使用工具栏上的按钮(如^07060101h^1-8所示)就完成了。   小欣果然聪明,照着阿月的话,设备明细表很快便建好了,不但如此,她还将刚才建立的设备报损表的结构进行了优化,优化后的设备报损表结构如^07060101i^1-9所示并也设“设备编号”为主键。   “表建好以后,下一步就应该进行数据输入了。”小欣现在很自然地想到。   数据输入很简单,在如^07060101j^1-10所示的窗口中选中设备明细表,并单击“打开”按钮,出现如^07060101k^1-11所示的窗口。   图1-11界面中的主要操作是向表内添加记录、修改记录、复制和替换数据、删除、以及调整行高、列宽、改变字体等等,这些和Excel中的方法很相似。如果有过在Word和Excel中制表的经验,这一步就不算太难。   “是的,这对于我来说不太难。你看来我这部分的工作还算完成得可以吧,接下来又要做什么呢?”小欣问道。   四、建立表间关系   现在就要建立表间关系了,这一步是非常重要的,当数据库中包含多个表时,需要通过主关键字的连接来建立表间的关系,使课表协调工作。   要在两个表间建立关系,必须使这两个表中拥有相同数据类型的字段。具体的实现方法如下:   1.打开表所在的数据库窗口;   2.单击“工具”菜单中的“关系”命令,弹出“显示表”对话框,在该框中选出要建立关系的表,按“添加”按钮确定,将设备报表和设备报损表都添加后,单击“关闭”按钮,如^07060101l^1-12所示。   3.在关系对话框中选中设备报表(主表)中的关键字──“设备编号”,拖到设备报损表(关系表)中的相应关键字中,将弹出“编辑关系”对话框如^07060101m^1-13所示。为了在更新主表中的主关键字字段的内容时同步更新关系表中的相关字段,选中该框中的“级联更新相关字段”和“实施参照完整性”复选框;另外,该框中的“级联删除相关字段”复选框是用来保证在删除主表中记录的同时,删除关系表中的相应记录的。在这里由于设备报损表中的记录将会为设备的购买提供依据,所以可以不选中该框。   4.继续单击该窗口中的“连接类型”按钮,在弹出的“连接属性”对话框中,选“2”并确定,在“编辑关系”对话框中按“创建”按钮后,可以看到在两表之间有一条线将它们连接起来,表示已创建好表之间的关系,如^07060101n^1-14所示。以后,只要在该线上双击即可弹出“编辑关系”对话框,以便对其关系进行修改;单击该线后按“Delete”键就可以删除该关系了。   到这里,阿月特别提醒到:“其实我们同样可以使用数据库向导来创建一个数据库,只是这种方法设计出的数据库很难满足用户的需要,所以一般都不采用。通过上述步骤一个简单的数据库就算建成了,现在就要看看怎样完成对数据库的查询等工作了。”