首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:数据库设计基础知识--数据模型

数据库的基础结构是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作和数据的约束条件。

(1)数据结构。对象类型的集合,是对系统静态特性的描述。

(2)数据操作。对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及操作规则。如操作有检索、插入、删除和修改,操作规则有优先级等。数据操作是对系统动态特性的描述。

(3)数据的约束条件。是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。

按照不同的数据模型,可以将数据库的发展历史分为3个阶段。

1.层次和网状数据库系统

层次模型采用树形结构表示数据与数据间的联系。在层次模型中,每个结点表示一个记录类型(实体),记录之间的联系用结点之间的连线表示,并且根结点以外的其他结点有且仅有一个双亲结点。上层和下一层类型的联系是1:n联系(包括1:1联系)。

采用网络结构表示数据间联系的数据模型称为网状模型。在网状模型中,允许一个以上的结点无双亲,或者一个结点可以有多于一个的双亲。

网状模型是一个比层次模型更具有普遍性的数据结构,层次模型是网状模型的一个特例。

网状模型可以直接地描述现实世界,因为去掉了层次模型的两个限制,允许两个结点之间有多种联系(称之为复合联系)。需要说明的是,网状模型不能表示记录之间的多对多联系,需要引入联结记录来表示多对多联系。

层次或网状模型,底层的数据结构均可用图来表示。二者的共同特点如下。

支持三级模式的体系结构;

用存取路径来表示数据之间的联系;

独立的数据定义语言;

导航的数据操纵语言。

2.关系数据库系统

关系模型(Relation Model)是目前最常用的数据模型之一。关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特,色是描述的一致性。关系模型是由若干个关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。关系是一个实例,也是一张表,对应于程序设计语言中变量的概念。变量的值随时间可能会发生变化,类似地,当关系被更新时,关系实例的内容也发生了变化。

由于关系模型比网状、层次模型更为简单灵活,因此,数据处理领域中,关系数据库的使用己相当普遍。

3.第三代数据库系统

层次、网状和关系数据库系统的设计目标源于商业事务处理,面对当前层出不穷的新型应用显得力不从心。从20世纪80年代开始,出现了许多新型应用,数据管理出现了许多新的数据模型,如面向对象模型、语义数据模型、XML数据模型、半结构化数据模型等。数据模型的型发展,需要数据库系统支持日益复杂的数据类型。其中最典型的是No SQL(Not Only of SQL)运动。

No SQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了No SQL的概念,这时的No SQL主要指非关系型、分布式、不提供ACID的数据库设计模式。2009年在亚特兰大举行的讨论会是一个里程碑,其口号是"select fun,profit from real_world where relational-false;"。因此,对NoSQL最普遍的解释是“非关联型的”,强调Key-Valuc Stores和文档数据库的优点,而不是单纯的反对RDBMS。

随着互联网Web2.0网站的兴起,传统的关系数据库在处理Web 2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。No SQL数据库的产生就是为了面对大规模数据集合和多重数据种类带来的挑战,特别是大数据应用难题。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O63STUs26-Ci-SLXqoZztqMA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券