第一章 关联式资料模型
第二章 关联式资料正规化
第三章 INFORMIX-SQL
第四章 基本资料形态和运算式
第五章 控制流程与叙述
第六章 函数
第七章 资料的处理
第八章 萤幕画面(FORM)的制作
第九章 MENU制作
第十章 多栏位的选择
第十一章 多重表画面的处理[@more@]INFORMIX-4GL教程第一章 关联式资料模型 1-1 前言 传统上,企业公司的数据处理,大都是按照部门或应用加以分类。因此,早期企业公司的计算机大多是为了处理各个部门或者应用系统的大量数据而装置的;例如一家汽车制迼公司,可能有产品制造部门、会计部门;而一家餐馆,可以有编制顾客账单之应用系统、维护应收帐款之档案系统等。而每一个部门或每一种应用系统原则上都有它自己的主要档案,而各个部门或应用系统都有自己所需的数据,和更新档案及提供信息所需的程序。利用这种数据处理方式来存取数据,最大的好处是程序的设计方式相当单纯,因为每个档案系统均针对该部门或应用系统的特殊处理要求来设计,因此所设计出来的系统较容易满足各部门或应用系统之要求。但是相随衍生的问题却不少。 应用系统 一 应用程序一 ←→ 档案系统一 (或部门一) 应用系统 二 应用程序二 ←→ 档案系统二 (或部门二) 应用系统 N 应用程序N ←→ 档案系统N (或部门N) 1-2 传统的数据处理 一、数据重复 相同的数据域栏位值会重复出现在不同的档案系统上。例如:在一家公司里,销售员的地址数据、学历数据年龄数据也可能会重复地出现在人事管理部门、会计部门、产品销售部门;须要在这么多的档案中输入、保存及维护这些相同的数据,代价何其昂贵啊!举例来说吧!当某一位销售员的地址数据有所更动时,就必须到所储存地址数据的档案系统中,去更正这些旧有的地址数据,否则就会造成数据的不一致。 二、数据的不完整 不同的应用系统间之数据往往关系十分密切。例如:陈先生向银行办理个人小额货款买了一部卡拉OK,然而因未履约,故其卡拉OK须被取回,并降低了他的个人小额贷款的信用等级。但陈先生在银行里,也曾办过房屋贷款,假使房屋贷款所对应的信用等级未随之同时更新的话,那就产生混乱了。然而要维持数据的完整性,就须执行好几个程序来更新数据,此将花费很高的费用。 三、数据的不安全 由于企业公司各部门各自为政,公司的数据分散在不同的档案系统上,对于敏感性和机密性较高的数据,无法做有效的集中管理;往往会因某些部门负摃人的管理不善,而让商业间谍有机可乘,从中盗取机密数据。 四、应用程序的不稳定 在程序上,我们往往利用Format或者Picture来定义数据之精确格式。例如:有一个学校在该校的学生姓名存在各个不同的档案中,居然用很多种不同的数据格式。因此,一旦有姓名格式发生变化,如增长或减短,或删除时,相对应的程序也要跟着修改,同时数据文件库也要随之改变,甚至连带地撷取数据的逻辑也要跟着翻新了。因之,应用程序的稳定性不佳。而改程序往往是最浪费时间和金钱的。 由于不同应用系统间的数据息息相关,而当这种关系愈来愈复杂后,传统的数据处理技术就再也难以胜任愉快了。于是有新的数据处理技术─数据库系统之提倡。数据库系统的观念主要强调数据应该是集中式的与整合式的,数据的异动在系统中仅需一次即可完成。 1-3 数据库系统的优点 使用数据库系统的优点,大致可归纳如下: (一).避免数据的大量重复─相同的数据在数据库内只需出现一次即可,但在非不得已时,亦可重复出现。如此可使重复性数据减至最少。 (二).数据独立─数据库之结构与内含数据发生变动时,不影响使用者之 程序,亦即使用者程序无须随之修改。 (三).避免数据不致的现象─数据库由专人统一管理维护,数据有所异动 ,亦一次同时更新,因此不会发生同样的数据项而数据值却不相同的现象。 (四).维持数据的完整性或整体性─各部门数据均集中在一起,因此可随时提供经营管理者所需的各种整体性信息。 (五).简化程序撰写工作─应用程序不需描述数据库之结构与数据记录间的相互关系,同时欲存取数据库数据,亦有一定之方法与格式,因此程序撰写工作可大为简化,程序设计员之生产力将大为提高。 (六).保护数据的安全─由于数据库管理系统对其内部数据有完善的保护功能,故数据不易被偷取或破坏。 (七).数据共通性─数据库可包容各部门之数据,因之数据库愈大数据的价值就愈高,它不仅可供更多使用者使用,且可提供更详细与完整的数据。 1-4 关连式数据模型 关连式数据模型是由E.F. Codd在1970年所提出。它将每一个档案用一此表格,又叫关连,来表示。而表格上的每一字段称做一个领域,它代表一笔记录的最基本数据项。例如职称的领域代表公司里所有可能的职称。年龄的领域代表公司里所有员工的可能年龄。例如下面的关连表示一个EMPLOYEE记录档案。其中领域EMPLOYEE NAME = {C.C CHANG,R.H. LEE,W.H. TSAI,M.Y. LEE, L.H. HWANG,....},领域EMPLOYEE NUMBER = {1041,2172,1437,4012,3128,....}等。 表1 EMPLOYEE 关连 ┌───────┬────────┬──┬──┬─────┬───┐ │EMPLOYEE NAME │EMPLOYEE NUMBER │SEX │AGE │ TITLE │SALARY│ ├───────┼────────┼──┼──┼─────┼───┤ │C.C. CHANG │ 1041 │ M │ 37 │MANAGER │ 79000│ │R.H. LEE │ 2172 │ F │ 28 │SECRETARY │ 28000│ │W.H. TSAI │ 1437 │ M │ 30 │MANAGER │ 60000│ │M.Y. LEE │ 4012 │ F │ 35 │ASSISTANT │ 23000│ │L.H. HWANG │ 3128 │ F │ 35 │DIRECTOR │ 31000│ │D.J. BUEHRER │ 4412 │ M │ 40 │MANAGER │ 62000│ └───────┴────────┴──┴──┴─────┴───┘ 而在关连中的每一列分别代表一笔记录,又叫一个元素组。至于DEPARTMENT关连可以用表2来表示。 表2 DEPARTMENT 关连 ┌────────┬────────┬──────┬──────┐ │DEPARTMENT NAME │DEPARTMENT CODE │ MANAGER │PHONE NUMBER│ ├────────┼────────┼──────┼──────┤ │COMPUTER │ 117 │C.C. CHANG │ 2263420 │ │ACCOUNTING │ 120 │W.H. TSAI │ 2547326 │ │ENGINERRING │ 137 │D.J. BUEHRER│ 2263410 │ └────────┴────────┴──────┴──────┘ 由于关连结构中的各个关连无主从关系,亦无键相连系,故要表示EMPLOYEE与DEPARTMENT间的关系,则需仰赖另一关连的穿针引线,此关连包含EMPLOYEE关连和DEPARTMENT关连之主键属性。 表3 DEPT-EMP 关连 ┌─────────┬────────┐ │DEPARTMENT NUMBER│EMPLOYEE NUMBER │ ├─────────┼────────┤ │ 117 │ 1041 │ │ 117 │ 2172 │ │ 117 │ 3128 │ │ 120 │ 1437 │ │ 120 │ 4012 │ │ 137 │ 4012 │ └─────────┴────────┘ 1-5 关连式数据库系统之应用 1-5-1 键型态 在每一个关连中,如果我们仔细检查每一笔元素组,均可以发现一个特性,那就是某一个属性,或某一组(多于一个)属性之组合,可以唯一用来代表该笔元素组,因此该属性或该组属性就可以称做该关连的主键(Primary Key)。 例如,在下面的关连S中,SNO可以当作主键,而SNAME也可以被用来当作主键,然而在一个关连中我们最多只选用一个主键就够了,譬如选SNO当作主键斯足矣。值得一提的是,不一定每一个关连均要宣告一个主键。而在关关连中够资格当主键的单一属性或属性组均被称为候选键(CandidateKey)。 ┌─────────────────┐ │ SNO SNAME STATUS SCITY │ ├─────────────────┤ │S001 SMITH 20 LONDON │ │S002 JONES 10 PARIS │ │S003 BLAQE 30 PARIS │ │S004 CLARK 20 LONDON │ │S005 ADAMS 30 ATHENS │ └─────────────────┘ 若该键没有被选上担任主键,则就称之为替换键(Alternate Key),如SNAME没有被选上担任主键,则它称之为替换键。 在关连SP中,属性SP和属性组(SNO PNO)均为候选键,而我们若选上属性SP当做主键,则(SNO PNO)就称之为替换键。 ┌───────────────┐ │ SP SNO PNO QTY │ ├───────────────┤ │ SP01 S001 P001 120.00 │ │ SP02 S001 P002 200.00 │ │ SP03 S001 P003 100.00 │ │ SP04 S002 P004 300.00 │ │ SP05 S002 P005 230.00 │ │ SP06 S003 P001 150.00 │ │ SP07 S003 P003 400.00 │ └───────────────┘ 然而,在关连的所有属性中,有一些属性常常会出现在查询条件中,这一烦的属性可以被事先宣告为次键(Secondary Key)。例如:一个SQL的查询有可能是这样宣告的:SELECT PNAME FROM P WHERE COLOR = 'RED' OR WEIGHT
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/91888/viewspace-1004105/
,如需转载,请注明出处,否则将追究法律责任。