随笔分类 -  数据库

摘要:无论是网站建设还是任何其它系统项目中使用的数据流,锁是数据库不可分割的一部分,有了数据库锁,数据才能够在允许并发请求存在的同时,还能确保数据库ACID属性中的一致性和隔离性。但是,数据库锁有很多种,甚至连实现它们的方法也有很多种。下表中对各种开源数据库系统和第三方专有的数据库系统支持的各种锁类型进行了概述。 阅读全文
posted @ 2013-12-03 19:05 iNc0ming 阅读(404) 评论(0) 推荐(0)
摘要:数据库关系是由数据库模型决定的,而数据模型抓住了数据的基础和参照完整性规则。要理解这是如何实现的,就要理解构建数据模型需要的基础步骤,这些步骤将生成数据定义语言的语句,用这些语句才能真正创建存放数据的物理结构,也就是数据库表和列。虽然数据建模流程中有很多变体,但对于关系模型来说,第一步通常是定义实体。 阅读全文
posted @ 2013-11-25 20:38 iNc0ming 阅读(597) 评论(0) 推荐(0)
摘要:总结:我们已经介绍了三种在大型网站建设项目中可能适用的数据库系统,分别是NoSql,文件系统和基于分布式计算的MapReduce。无论我们决定采用哪种方式之前,都必须清楚地连接应用需求和场景,因为每种存储方式都有各自的优缺点和适应的专用场景,只有在正确的场景中使用了正确的方案,才能将网站建设项目的周期,成本,可扩展性和性能最大化。 阅读全文
posted @ 2013-10-24 21:47 iNc0ming 阅读(358) 评论(0) 推荐(0)
摘要:通常情况下,我们都需要对系统的可扩展性和灵活性进行权衡。数据实体之间的关系是进行衡量的关键,随着关系增多,灵活性会增加。灵活性增加,会使成本增加,可扩展性降低。总之,关系带来了灵活性,但降低了可扩展性。正是因为这个原因,网站建设中我们不能滥用关系数据库,而是要“因地制宜”,在有效分析网站需求和数据结构后再做定夺,使系统得到更大的扩展性。 阅读全文
posted @ 2013-10-21 17:49 iNc0ming 阅读(414) 评论(0) 推荐(0)
摘要:数据库是网站建设工作中的根本,无论是电子商务型的营销型网站建设还是普通企业展示型网站建设都离不开数据库。当我们步入大数据时代时,数据库的角色更是举足轻重,但是在大多数网站制作人员的眼里,数据库就是Sql Server,MySql,Oracle,实际上,这些数据库都属于关系型数据库(RDBMS),属于同一类数据库,它们也不能满足所有应用的需求。在数据库的大家族里,还有其它成员也在某些特定场景下默默扮演着重要角色,接下来我们就如何在网站建设中合理地选择数据库进行讨论。 阅读全文
posted @ 2013-10-18 17:08 iNc0ming 阅读(428) 评论(0) 推荐(0)
摘要:从网站建设的角度来看,决定采用哪种安全措施最终应该从利润最大化的方面考虑。通常安全措施只是减少风险的一种方法。而风险则是发生某个动作且该动作会造成影响或损害的可能性。防火墙通过减少事件发生的可能性来降低风险。采用防火墙会有些额外的支出,对可用性也会有一些影响,通常还会影响扩展性,在网络流量或事务数量方面造成扩展瓶颈。 阅读全文
posted @ 2013-10-15 17:54 iNc0ming 阅读(303) 评论(1) 推荐(1)
摘要:对于大型的网站建设,我们之前已经说了如何根据服务器负载量来横向扩展数据库。抛开关于面向服务(SOA)和面向资源(ROA)概念的争论,深入了解它们的基本前提就会发现,至少它们都有一个共同点,都要求架构师和程序员考虑架构中的职责拆分。大体上就是采用动词(服务)和名词(资源)的概念来实现拆分。 阅读全文
posted @ 2013-10-12 18:01 iNc0ming 阅读(774) 评论(0) 推荐(0)
摘要:在网站建设的过程中,一个高扩展性的架构设计可以保证当网站业务量和访问量达到零界点时我们能够以较低的成本对现有系统进行扩展。而网站系统最难扩展的部分通常是数据库或者持久化存储。当今最流行的RDBMS数据库,如Oracle,Sql Server等,都是关系型数据库。大多数的网站建设项目都可以通过这两种方法来增强网站扩展性,不仅仅是数据库,web服务器通常也能通过类似的原理轻松扩展,这样就能够把事务平均分配到多个服务器上进行横向扩展。但是遗憾的是,几乎没有一款现有的建站系统或建站软件原生支持这样的横向扩展,程序员必须对代码和数据库进行二次开发后才能实现。 阅读全文
posted @ 2013-10-10 13:25 iNc0ming 阅读(1298) 评论(0) 推荐(1)