请问数据库中的表是软件创建的,还是软件开发根据数据库的表开发的

请问数据库中的表是软件创建的,还是软件开发根据数据库的表开发的,第1张

通常表最终都是由sql创建的,不管人工写sql执行还是通过管理器编辑

创建好数据后客户端软件可以根据数据库架构设计,两者保持一致即可,其实不存在谁依赖谁的问题

随着计算机技术越来越广泛地应用于国民经济的各个领域 在计算机硬件不断微型化的同时 应用系统向着复杂化 大型化的方向发展 数据库是整个系统的核心 它的设计直接关系系统执行的效率和系统的稳定性 因此在软件系统开发中 数据库设计应遵循必要的数据库范式理论 以减少冗余 保证数据的完整性与正确性 只有在合适的数据库产品上设计出合理的数据库模型 才能降低整个系统的编程和维护难度 提高系统的实际运行效率 虽然对于小项目或中等规模的项目开发人员可以很容易地利用范式理论设计出一套符合要求的数据库 但对于一个包含大型数据库的软件项目 就必须有一套完整的设计原则与技巧

一 成立数据小组

大型数据库数据元素多 在设计上有必要成立专门的数据小组 由于数据库设计者不一定是使用者 对系统设计中的数据元素不可能考虑周全 数据库设计出来后 往往难以找到所需的库表 因此数据小组最好由熟悉业务的项目骨干组成

数据小组的职能并非是设计数据库 而是通过需求分析 在参考其他相似系统的基础上 提取系统的基本数据元素 担负对数据库的审核 审核内容包括审核新的数据库元素是否完全 能否实现全部业务需求 对旧数据库(如果存在旧系统)的分析及数据转换 数据库设计的审核 控制及必要调整

二 设计原则

规范命名 所有的库名 表名 域名必须遵循统一的命名规则 并进行必要说明 以方便设计 维护 查询

控制字段的引用 在设计时 可以选择适当的数据库设计管理工具 以方便开发人员的分布式设计和数据小组的集中审核管理 采用统一的命名规则 如果设计的字段已经存在 可直接引用 否则 应重新设计

库表重复控制 在设计过程中 如果发现大部分字段都已存在 开发人员应怀疑所设计的库表是否已存在 通过对字段所在库表及相应设计人员的查询 可以确认库表是否确实重复

并发控制 设计中应进行并发控制 即对于同一个库表 在同一时间只有一个人有控制权 其他人只能进行查询

必要的讨论 数据库设计完成后 数据小组应与相关人员进行讨论 通过讨论来熟悉数据库 从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息

数据小组的审核 库表的定版 修改最终都要通过数据小组的审核 以保证符合必要的要求

头文件处理 每次数据修改后 数据小组要对相应的头文件进行修改(可由管理软件自动完成) 并通知相关的开发人员 以便进行相应的程序修改

三 设计技巧

分类拆分数据量大的表 对于经常使用的表(如某些参数表或代码对照表) 由于其使用频率很高 要尽量减少表中的记录数量 例如 银行的户主账表原来设计成一张表 虽然可以方便程序的设计与维护 但经过分析发现 由于数据量太大 会影响数据的迅速定位 如果将户主账表分别设计为活期户主账 定期户主账及对公户主账等 则可以大大提高查询效率

索引设计 对于大的数据库表 合理的索引能够提高整个数据库的 *** 作效率 在索引设计中 索引字段应挑选重复值较少的字段 在对建有复合索引的字段进行检索时 应注意按照复合索引字段建立的顺序进行 例如 如果对一个 万多条记录的流水表以日期和流水号为序建立复合索引 由于在该表中日期的重复值接近整个表的记录数 用流水号进行查询所用的时间接近 秒 而如果以流水号为索引字段建立索引进行相同的查询 所用时间不到 秒 因此在大型数据库设计中 只有进行合理的索引字段选择 才能有效提高整个数据库的 *** 作效率

数据 *** 作的优化 在大型数据库中 如何提高数据 *** 作效率值得关注 例如 每在数据库流水表中增加一笔业务 就必须从流水控制表中取出流水号 并将其流水号的数值加一 正常情况下 单笔 *** 作的反应速度尚属正常 但当用它进行批量业务处理时 速度会明显减慢 经过分析发现 每次对流水控制表中的流水号数值加一时都要锁定该表 而该表却是整个系统 *** 作的核心 有可能在 *** 作时被其他进程锁定 因而使整个事务 *** 作速度变慢 对这一问题的解决的办法是 根据批量业务的总笔数批量申请流水号 并对流水控制表进行一次更新 即可提高批量业务处理的速度 另一个例子是对插表的优化 对于大批量的业务处理 如果在插入数据库表时用普通的Insert语句 速度会很慢 其原因在于 每次插表都要进行一次I/O *** 作 花费较长的时间 改进后 可以用Put语句等缓冲区形式等满页后再进行I/O *** 作 从而提高效率 对大的数据库表进行删除时 一般会直接用Delete语句 这个语句虽然可以进行小表 *** 作 但对大表却会因带来大事务而导致删除速度很慢甚至失败 解决的方法是去掉事务 但更有效的办法是先进行Drop *** 作再进行重建

数据库参数的调整 数据库参数的调整是一个经验不断积累的过程 应由有经验的系统管理员完成 以Informix数据库为例 记录锁的数目太少会造成锁表的失败 逻辑日志的文件数目太少会造成插入大表失败等 这些问题都应根据实际情况进行必要的调整

必要的工具 在整个数据库的开发与设计过程中 可以先开发一些小的应用工具 如自动生成库表的头文件 插入数据的初始化 数据插入的函数封装 错误跟踪或自动显示等 以此提高数据库的设计与开发效率

避免长事务 对单个大表的删除或插入 *** 作会带来大事务 解决的办法是对参数进行调整 也可以在插入时对文件进行分割 对于一个由一系列小事务顺序 *** 作共同构成的长事务(如银行交易系统的日终交易) 可以由一系列 *** 作完成整个事务 但其缺点是有可能因整个事务太大而使不能完成 或者 由于偶然的意外而使事务重做所需的时间太长 较好的解决方法是 把整个事务分解成几个较小的事务 再由应用程序控制整个系统的流程 这样 如果其中某个事务不成功 则只需重做该事务 因而既可节约时间 又可避免长事务

适当超前 计算机技术发展日新月异 数据库的设计必须具有一定前瞻性 不但要满足当前的应用要求 还要考虑未来的业务发展 同时必须有利于扩展或增加应用系统的处理功能

lishixinzhi/Article/program/SQL/201311/16498

在delphi中有一批数据库专用的控件,比如ADO类的,可以直接用于数据库开发,你可以先用一个Access数据库自己进行一下测试。

首先在窗体上放一个ADOConnection1控制,用于与Access数据库进行连接,连接字符串为:

ADOConnection1ADOC_DataConnectionString:='provider=MicrosoftJetOLEDB40;'

+'userID=Admin;'

//+'DataSource='+ExtractFilePath(ApplicationExeName)+'MyRecordmdb;'

+'DataSource='+MyDataBaseName+';'

+'Mode=ShareDenyNone;ExtendedProperties=\"\";'

+'JetOLEDB:Systemdatabase=\"\";'

+'JetOLEDB:RegistryPath=\"\";'

+'JetOLEDB:DatabasePassword=\"123456;'//数据库密码

+'JetOLEDB:EngineType=5;'

+'JetOLEDB:DatabaseLockingMode=1;'

+'JetOLEDB:GlobalPartialBulkOps=2;'

+'JetOLEDB:GlobalBulkTransactions=1;'

+'JetOLEDB:NewDatabasePassword=\"\";'

+'JetOLEDB:CreateSystemDatabase=False;'

+'JetOLEDB:EncryptDatabase=False;'

+'JetOLEDB:Don'+''''+'tCopyLocaleonCompact=False;'

+'JetOLEDB:CompactWithoutReplicaRepair=False;'

+'JetOLEDB:SFP=False';

DMADOC_DataLoginPrompt:=False;

再放一个ADOQuery1控制,用于 *** 作数据表,将它的Connection属性设置为ADOConnection1。或用语句实现:ADOQuery1Connection:=ADOConnection1;

然后再分别放置一个DataSource1和一个DBGrid1控件,

将DataSource1的DataSet属性设置为ADOQuery1。

将DBGrid1的DataSource属性设置为DataSource1。

这时就可以通过ADOQuery1来执行SQL语句来查询数据表,并通过DBGrid1显示出来了。

维护:能够进行 *** 作系统和数据库维护;以MSSQL为例,需要掌握:数据备份、还原、分离、收缩等技能

2初级编程:能够对数据库进行建表;设置索引、约束等;并利用简单程序开发工具,进行编程;

3中级编程:能够利用数据库本身的编程SDK;以MSSQL为例,需要掌握:存储过程、函数、视图、触发器等

4高级编程:在上述基础上,增加宏观的数据库管理思想;重点研究数据库安全性、角色、复制分发、订阅、部署;乃至Raid0、Raid1、Raid0+1、Raid5等磁盘阵列方式

数据库,港、台地区称为资料库,可以被视为能够进行自动查询和修改的数据集。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。

数据库开发工程师需要学习的课程有:

1、计算机导论

内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。

2、数字电路与数字逻辑

内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。

3、计算机组成原理与汇编语言

内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。

4、计算机网络

内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。

5、计算机体系结构

内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。

6、离散数学

内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。

7、高级程序设计语言

内容提要:分别以C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。

8、算法分析与设计

内容提要:本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习),多项式运算与FFT,串匹配,概率分析算法。希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。

9、数据结构

内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。

10、数据库系统原理

内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。

11、编译技术

内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。

12、 *** 作系统

内容提要:介绍 *** 作系统的设计与实现,包括 *** 作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。

数据库开发工程师是指设计、开发、维护管理大型数据库的专业人才。

第一类是MySQL,以自由软件为主,以社团式开发为代表。版本选择40,侧重于在Linux平台(RedHat80)。MySQL数据库短小精悍,速度比较快,它是自由软件产品,现在美国国家航天局的数据库系统就是MySQL。在很多中小型的ICP有着广泛的应用。

第二类是SQLServer2000,中小型企业数据库,界面友好,可 *** 作性强,在数据库市场占有很大的份量,SQLServer2000是企业产品的代表,定位数据库中低端市场。

第三类是Oracle9i,中大型企业数据库,跨平台,在数据库中高市场占有很大的份量,Oracle9i介绍主要是Windows2000平台和Linux平台(RedHat80)。Oracle9i在金融、电信、银行有很多经典应用。

数据库开发需要学习数据结构与算法, *** 作系统程序,语言开发,数据库知识,基础知识,SQL语言数据流程,设置数据库系统的运行和管理。光写数据库开发还不行,还得要搭配一门开发语言,只有开发语言了,结合数据库开发才是一个合格的程序员。开发语言建议你学Java或者是PhP。

以上就是关于请问数据库中的表是软件创建的,还是软件开发根据数据库的表开发的全部的内容,包括:请问数据库中的表是软件创建的,还是软件开发根据数据库的表开发的、大型数据库的设计原则与开发技巧、新手如何delphi开发数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9846485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存