数据库管理系统
什么是数据库管理系统?它包揽了一切管理数据的存储安全性可伸缩性提供了一组工具以便输入数据和从数据库中取出数据等在选择一个DBMS时需要考虑这些问题下面几个小节简要地介绍了其中一些需要考虑的因素
存储容量
所选择的DBMS是否能满足当前和将来的需要?如果只是想存储喜欢的菜谱或者管理家庭的藏书那么采用一个桌面型数据库(例如Microsoft Access)就够了当需要存储百万兆字节级别的信息(例如最近年纽约证券交易所的金融交易信息)时则应该采用一个企业级的DBMS例如OracleMicrosoft SQL Server或者IBM DB
用户数量
如果你是数据库唯一的用户那么也许并不需要数据库具有某些专门设计用于支持并发数据使用的功能例如当前版本的Microsoft Access最大支持个并发用户(在实践中实际的并发数量取决于很多因素包括网络带宽和处理能力等)如果使用高级的群集技术那么在诸如Oracle这样的企业级DBMS中用户的数量在理论上并没有什么限制
安全性
数据应该达到什么样的安全级别?如果你最喜欢的菜谱被偷走你可能并不会为此特别烦恼但是对于我们的银行信息或健康信息则要求尽可能安全(对于各种数据资料应该执行哪一个级别的保护要有一定的规章制度)企业级DBMS与桌面型数据库两者之间的一个重要区别在于健壮的精细粒度的安全实现Microsoft Access数据库的一个简单文件比起基于服务器的具有多级保护的IBM DB数据库来说它的安全性相对较低
性能
数据库需要多快的速度?对于一个股票交易平台在获取信息时可以等待几分钟还是必须具有亚秒级的响应能力?这一问题的答案与并发用户数和可伸缩性有关某些DBMS天生就比其他DBMS要慢因此在处理速度要求较高的环境中不应该采用这样的数据库
可伸缩性
正如Yogi Berra所说预言是困难的特别是关于未来的预言数据库必须能够适应商业需求的变化尽管没有人可以预见所有的未来但可以根据可能的情形和行业趋势作出一些有把握的猜测商业需求会发生改变(例如业务发展壮大或者企业并购)数据库也需要随之而改变可以打赌的是数据的生存期将比存储它们的数据库还要长操作系统(例如大型机UNIX/LinuxWindows)可能会发生改变程序设计环境(COBOLC/C++JavaNet)可能发生改变相关规则也可能发生改变但数据必须持久这并不完全是因为情感的原因
对于所有这些因素任何一种现代企业级RDBMS都可以获得一个良好的成绩最终商业需求将决定技术的选择对于规模较大的数据库产品的部署需要听取专家的意见另外还需要有资质的数据库管理员来确保数据库保持最佳的状态一旦掌握了数据库语言就可以获取数据并将其转换为信息然后从这些信息中获得我们所需的知识
成本
当然在考虑安装和操作数据库的同时考虑到数据库的成本因素也是很重要的对于一个企业级DBMS数据库厂商的售价可能高达数十万美元而对于一个开源的DBMS可能可以免费获取请记住天下没有免费的午餐开源的DBMS可能在当前可以节省费用但是在专业经验时间工具的可用性以及维护成本方面的代价很快就会超过节省的费用对于选择的每一种DBMS必须考虑其总成本(total cost of ownershipTCO)
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程