数据库系统开发

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: *2004年左右写的资料,留个底!  一.   系统架构分析 现有的数据库应用系统,无论是小型桌面数据库应用系统,还是大型的分布式应用系统,其系统架构一般有C/S架构及N-Tier架构(分布式).

*2004年左右写的资料,留个底!微笑 

一.   系统架构分析

现有的数据库应用系统,无论是小型桌面数据库应用系统,还是大型的分布式应用系统,其系统架构一般有C/S架构及N-Tier架构(分布式).C/S为传统桌面数据库系统中加入了数据引擎(Database Engine).原有的桌面系统为直接操控数据文件(库),其数据文件或库一般称为Flat File式的.如.dat,.dab,.mdb等.C/S则以Database Engine为中间界面,使各种系统可以透过统一的接口访问不同的数据库(关系式数据库系统 RDBMS或Flat Files).Windows封装的ODBC,及Borland公司提供的BDE,最新的ADO,Java的JDBC都是数据引擎.对于N-Tier则表示在应用系统的数据组织中数据录入,数据处理及数据存储分割开来.在C/S架构中,客户端的处理工作较为繁重,需要即时的进行数据检索,汇总,存储,有效性检查等等.虽然目前的硬件水平大有改善,但对于中型及大型的应用环境前端的处理能力受限,而且大多数客户都希望有瘦客户端系统的实现,以降低整体的系统投资.在此状况下,系统的架构加以延伸,将数据处理功能改由后台(中间层)统一处理,也即是Application Server..同样是因为Application Server承载了诸多的功能,而使得它的稳健性关系全局,所以在有些大型系统了担供分布数据处理能力及备用服务器切换功能.

      中间层的实现方法有MTS,MIDAS,DCOM(COM+)等.MIDAS为Boland公司提供给使用Borland开发工具的系统厂商使用.编程的首推为C++,它的执行效率高.其次是Delphi(Cbuilder).Delphi(Cbuilder)为N-Tier的实现提供了完整的Solution,开发效率高.其他开发工具在中间层的实现上都不如前两者.

二.   数据库组织

数据库在传统意义上公公是数据存储的地方,大部分人理所当然的认为数据库的功能也就公限于存储,检索,汇总等功能.即使是软件人员,也存在这样的偏见.事实上,自从SQL(Structure Query Language)诞生后,数据库的功能已从传统功能上演变成具有强大数据处理能力,且可提供有限二次开方能力.在这些方面,都要优于应用系统.对于一些数据库系统其织方式正度图突破关系式数据库系统的限制,向OODBMS系统演化.对MS SQL Server,View,Trigger,StoreProcedure,UserDefinedFunction的应用,T-SQL支持都使得MS SQL Server可以提供较前台应用程式更为稳妥,更为高效的数据处理功能.当然如Sybase及Orcale要比MS SQL Server更为强大.

许多程序员在开发数据库系统时,大都忽略了数据库的潜能,忽略了数据库自身的优化能力,而有了前台应用程式主控一切的错误决策.

同样一套高效,稳健的数据库应用系统,对数据库功效的发挥应当是极佳的.数据库系统设计的优劣同样反应出一套应用系统的整体性能.

一个好的数据库系统设讦应包括对以下特性的考量:

1.       数据表组织符合何级范式

2.       数据关联关系是否明确

3.       数据相关的表间及表内处理

4.       常用的大批量数据处理方法

  特别是在MS SQL Server 2000已有Formula的设定,这一点很重要,也反应出了市场对此项的需求。所谓Formula的设定,即是设定一个Field的来源同其他字段依赖关系。简单而言,在实际应用中有A=B+C,有此设定系统可以设定AField的Formula为B+C则数据库在提交新的B或C值时自动更新A值,从而省去系统在前台的处理。这对数据库系统有重要意义,目前几乎所有的软件公司都希望有兼容性极强的产品,以应付不同的需求。但事实上许多的客户的应用规则都是千差万别的,而这里的规则正可以抽象为公式。这一类的规则如成本计算,薪资计算等等。许多公司也意识应当尽量提取各种应用中的共性,但他们在将理念付之实现时,却倾向于前台实现。一方面是不愿意在数据库系统做枯燥的工作。另一方面则是没有方法实现公式的解读。便如果从效能上出发,对公式的实现是唯一可以在兼容性和高效之间取得平衡的办法。这一点就需要对SQL Server好好了解一下了。(SQL Server提供的函数和存储过程都很好的数据处理机制)

三. 界面的组织

            任何一个系统都有自己的风格,但不能以个人观点决定,在系统中各个界面都要统一的规范如对控件布局,字体,Color的规定。如果需要录入的界面就要注意到可操作性。客户的偏爱不同,就会对操作方法有所要求。而操作是否简易方便也可反应系统设计的功力。对于录入界面,录入点的切换需要有序可循,一般为由左至右,由上及下。另外注意界面上文字靠左,数据靠右,这些都是界面设计的基本涵养。

四. 报表的组织

报表格式也应遵循文字靠左,数字靠右的规则。报表的输出至关重要,而报表输出的准确性,直接反映系统数据处理的准确性。报表的输出应有一定次序,无论是Group或主从表者要注意其顺序排列方法。对需要汇总或换行的部分都要处理得当。对于报表输出的数据的基本要求是数据完整准确,格式正确。

如果软件公司有能力,应提供相应报表自定义功能,以及报表输出到其他格式文档的接口,这样会保证日后系统稳定的运行和适当的扩展,增强系统的弹性.

五. 系统维护能力的考察

            对于许多台湾的软件公司,其研发团队在台湾,在大陆只设有一个客修部门,甚至没有客修部门。如果没有客修部门,则必须将一些信息反馈以台湾才可进行处理,其间传递信息的有效性,及时性可能较难保证,这样的客服质量是不高的。如果在大陆设有客修部门,最好有一定的研发团队,这样在一些Bug的处理上,顾问就可以同程序员准确进行有效的沟通,对较为紧急的事件,也可以及时处理。总之一点,能不能有效进行客服工作,要看其顾问同客修(研发)人员的沟通能力。

            考察一家软件公司亦可通过考察其文档的规范性入手,是否推行了软件工程相关的管理思想。如考察其有没有通过ISO或CMMI的相关认证。当然任何一家合法的软件公司都符合CMMI-I.其文档的规范性可以保证日后服务有章可循。因为目前软件人员整体流动性大,一旦程序员异人,还可以凭借有效的文档记录,继续提供有效的服务,保证服务的延续性。一般情况下我们可以要求其提供系统分析报告,系统设计及数据库设计等方面的文档或文档范本,就可以较为全面评估其软件开发能力,客修水平。

         对一家管理软件公司在管理理念(顾问水平),系统设计(开发水平)上同时进行考察才可最大限度的保证上百万,甚至上千万的资金投入有效地运用。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
5天前
|
存储 JSON 测试技术
【HarmonyOS Next开发】云开发-云数据库(二)
实现了云侧和端侧的云数据库创建、更新、修改等操作。这篇文章实现调用云函数对云数据库进行增删改查。
23 9
|
1月前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
1月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
1月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
50 4
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
69 2
|
1月前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
21 1
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
Rust 前端开发 关系型数据库
Tauri 开发实践 — Tauri 集成本地数据库
本文介绍了在 Tauri 框架中集成本地数据库的几种方案,包括直接绑定 SQLite、使用第三方数据库库和使用 tauri-plugin-sql-api 插件。最终选择了 tauri-plugin-sql-api,因为它集成简单、支持多种数据库类型,并且与 Tauri 框架深度整合,提升了开发效率和安全性。文章详细介绍了如何安装和使用该插件,以及如何编写核心代码实现数据库操作。
263 2
|
2月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
83 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
4月前
|
存储 前端开发 关系型数据库
秀啊,用Python快速开发在线数据库更新修改工具
秀啊,用Python快速开发在线数据库更新修改工具