数据库系统开发

本文涉及的产品
云数据库 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
目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
Python 数据库访问与ORM框架——打造高效开发利器
Python 作为一门广泛使用的编程语言,其在数据库访问方面也有着较为成熟的解决方案,其中ORM框架更是成为了开发者们的首选。本文将介绍 Python 中数据库访问和 ORM 框架的基本概念,以及如何使用 SQLAlchemy 这一优秀的 ORM 框架进行开发。
|
3月前
|
关系型数据库 API 数据库
Python数据库访问与ORM框架:加速开发、提升效率
在现代软件开发中,数据库是不可或缺的组成部分。本文介绍了Python中数据库访问的重要性,并探讨了ORM框架(例如SQLAlchemy)如何帮助程序员加速开发、提升效率。通过使用ORM框架,开发人员可以轻松地将Python对象映射到数据库表,并且可以通过简洁的API进行数据库操作。此外,本文还讨论了ORM框架在处理复杂查询、维护数据一致性和实现数据库迁移方面的优势。
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
47 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
3月前
|
SQL 数据库 C++
C++ Qt开发:Charts与数据库组件联动
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍`Charts`组件与`QSql`数据库组件的常用方法及灵活运用。在之前的文章中详细介绍了关于`QCharts`绘图组件的使用方式,本章将继续延续这个知识点,通过使用`QSql`数据库模块动态的读取某一个时间节点上的数据,当用户点击查询数据时则动态的输出该事件节点的所有数据,并将数据绘制到图形组件内,实现动态查询图形的功能。
34 0
C++ Qt开发:Charts与数据库组件联动
|
3月前
|
数据库连接 数据库
kettle开发篇-数据库查询
kettle开发篇-数据库查询
41 0
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
缓存 数据库 索引
高效后端开发:数据库优化策略详解
数据库优化是后端开发中不可或缺的一部分。本文将从多个方面详细阐述数据库优化策略,包括数据表设计、索引优化、查询性能优化等。通过本文的学习,读者可以了解如何优化数据库,提升后端应用性能和稳定性。
69 1