分布式理论(二)——Base 理论

1240

前言

在前文 分布式理论(一) —— CAP 定理 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统而言,是必须的。最后,我们说,如果系统能够同时实现 CAP 是再好不过的了,所以出现了 BASE 理论,今天就来讲讲 Base 理论。

1. 什么是 Base 理论

BASE:全称:Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写,来自 ebay 的架构师提出。

Base 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于 CAP 定理逐步演化而来的。其核心思想是:

既是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

2. Basically Available(基本可用)

什么是基本可用呢?假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:

  1. 响应时间上的损失:正常情况下的搜索引擎 0.5 秒即返回给用户结果,而基本可用的搜索引擎可以在 1 秒作用返回结果。

  2. 功能上的损失:在一个电商网站上,正常情况下,用户可以顺利完成每一笔订单,但是到了大促期间,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。

3. Soft state(软状态)

什么是软状态呢?相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种 “硬状态”。

软状态指的是:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

4. Eventually consistent(最终一致性)

这个比较好理解了哈。

上面说软状态,然后不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性。从而达到数据的最终一致性。这个时间期限取决于网络延时,系统负载,数据复制方案设计等等因素。

稍微官方一点的说法就是:

系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都能够获取到最新的值。

而在实际工程实践中,最终一致性分为 5 种:

1. 因果一致性(Causal consistency)

指的是:如果节点 A 在更新完某个数据后通知了节点 B,那么节点 B 之后对该数据的访问和修改都是基于 A 更新后的值。于此同时,和节点 A 无因果关系的节点 C 的数据访问则没有这样的限制。

2. 读己之所写(Read your writes)

这种就很简单了,节点 A 更新一个数据后,它自身总是能访问到自身更新过的最新值,而不会看到旧值。其实也算一种因果一致性。

3. 会话一致性(Session consistency)

会话一致性将对系统数据的访问过程框定在了一个会话当中:系统能保证在同一个有效的会话中实现 “读己之所写” 的一致性,也就是说,执行更新操作之后,客户端能够在同一个会话中始终读取到该数据项的最新值。

4. 单调读一致性(Monotonic read consistency)

单调读一致性是指如果一个节点从系统中读取出一个数据项的某个值后,那么系统对于该节点后续的任何数据访问都不应该返回更旧的值。

5. 单调写一致性(Monotonic write consistency)

指一个系统要能够保证来自同一个节点的写操作被顺序的执行。

然而,在实际的实践中,这 5 种系统往往会结合使用,以构建一个具有最终一致性的分布式系统。实际上,不只是分布式系统使用最终一致性,关系型数据库在某个功能上,也是使用最终一致性的,比如备份,数据库的复制过程是需要时间的,这个复制过程中,业务读取到的值就是旧的。当然,最终还是达成了数据一致性。这也算是一个最终一致性的经典案例。

5. 总结

总的来说,BASE 理论面向的是大型高可用可扩展的分布式系统,和传统事务的 ACID 是相反的,它完全不同于 ACID 的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间是不一致的。

转载于:https://www.cnblogs.com/stateis0/p/9062123.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
//供学习用,禁止用于商业用途。 2012.04.20   OceanBase解决什么问题   许多公司的核心资产是各种各样的商业数据,例如淘宝的商品、交易、订单、购物爱好等等,这些数据通常是结构化的,并且数据之间存在各种各样的关联,传统的关系数据库曾经是这些数据的最佳载体。然而,随着业务的快速发展,这些数据急剧膨胀,记录数从几千万条增加到数十亿条,数据量从百GB增加到数TB,未来还可能增加到数千亿条和数百TB,传统的关系型数据库已经无法承担如此海量的数据。OceanBase解决不断增加的结构化数据存储与查询的问题。   从Eric Brewer教授的CAP(一致性C: Consistency, 可用性A: Availability,分区容错性P: Tolerance of network Partition)理论角度分析,作为电子商务企业,淘宝和其他公司的业务对一致性和可用性的要求高于分区容错性,数据特征是数据总量庞大且逐步增加,单位时间内的数据更新量并不大,但实时性要求很高。这就要求我们提供一套更加偏重于支持CA特性的系统,同时兼顾可分区性,并且在实时性、成本、性能等方面表现良好。   OceanBase的架构   OceanBase的逻辑架构简图    ▲   OceanBase架构的一些基本概念   主键   row key,也称为primary key,类似于DBMS的主键,与DBMS不同的是,OceanBase的主键总是进制字符串(binary string),但可以有某种结构。OceanBase以主键为顺序存放表格数据   sstable   一种数据存储格式,OceanBase用来存储一个或几个表的一段按主键连续的数据   tablet   一个表按主键划分的一个(前开后闭的)范围,通常包含一个或几个sstable,一个tablet的数据量通常在256MB左右   基准数据和动态数据   OceanBase以增量方式记录一段时间内的表格数据的增删改,从而保持着表格主体数据在一段时间内相对稳定,其中增删改的数据称为动态数据(通常在内存,也称为内存表),而一段时间内相对稳定的主体数据称为基准数据,基准数据和转储后(保存到SSD固态盘或磁盘)的动态数据以sstable格式存储   ChunkServer   保存基准数据的服务器,通常是多台,为了避免软件硬件故障导致的服务中断,同一份基准数据通常保存了3份并存储在不同ChunkServer上   UpdateServer   保存动态数据的服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,UpdateServer记录commit log并通常使用双机热备   MergeServer   进行静态动态数据合并的服务器,常常与ChunkServer共用一台物理服务器。MergeServer使得用户能够访问到完整的最新的数据   RootServer   配置服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,RootServer记录commit log并通常采用双机热备。由于RootServer负载一般都很轻,所以它常常与UpdateServer共用物理机器   冻结   指动态数据(也称为内存表)的更新到一定时间或者数据量达到一定规模后,OceanBase停止该块动态数据的修改,后续的更新写入新的动态数据块(即新的内存表),旧的动态数据块不再修改,这个过程称为冻结   转储   出于节省内存或者持久化等原因将一个冻结的动态数据块(内存表)持久化(转化为sstable并保存到SSD固态盘或磁盘上)的过程   数据合并(merge)   查询时,查询项的基准数据与其动态数据(即增删改操作)合并以得到该数据项的最新结果的过程。此外,把旧的基准数据与冻结的动态数据进行合并生成新的基准数据的过程也称为数据合并   联表(join)   一张表与另一张或几张表基于主键的左连接关系,类似于DBMS的自然连接   COW   Copy on Write的缩写,在OceanBase中特指BTree在更新时复制数据备份写入,避免系统锁的技术手段   OceanBase的特点   OceanBase功能   OceanBase设计和实现的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入。   OceanBase数据访问特点   虽然数据总量比较大,但跟许多行业一样,淘宝业务一段时间(例如小时或天)内数据的增删改是有限的(通常一天不超过几千万次到几亿次),根据这个特点,OceanBase把一段时间内的增删改等修改操作以增量形式记录下来(称之为动态数据,通常保存在内存中),这样也使得了主体数据在一段时间内保持了相对稳定(称之为基准数据)。   由于动态数据相对较小,通常情况下,OceanBase把它保存在独立的服务器UpdateServer的内存中。以内存保存增删改记录极大地提高了系统写事务的性能。此外,假如每条修改平均消耗100 Bytes,那么10GB内存可以记录100M(即1亿)条修改,且扩充UpdateServer内存即增加了内存中容纳的修改量。不仅如此,由于冻结后的内存表不再修改,它也可以转换成sstable格式并保存到SSD固态盘或磁盘上。转储到SSD固态盘后所占内存即可释放,并仍然可以提供较高性能的读服务,这也缓解了极端情况下UpdateServer的内存需求。为了应对机器故障,动态数据服务器UpdateServer写commit log并采取双机(乃至多机)热备。由于UpdateServer的主备机是同步的,因此备机也可同时提供读服务。   因为基准数据相对稳定,OceanBase把它按照主键(primary key,也称为row key)分段(即tablet)后保存多个副本(一般是3个)到多台机器(ChunkServer)上,避免了单台机器故障导致的服务中断,多个副本也提升了系统服务能力。单个tablet的尺寸可以根据应用数据特点进行配置,相对配置过小的tablet会合并,过大的tablet则会分裂。   由于tablet按主键分块连续存放,因此OceanBase按主键的范围查询对应着连续的磁盘读,十分高效。   对于已经冻结/转储的动态数据,OceanBase的ChunkServer会在自己不是太繁忙的时候启动基准数据与冻结/转储内存表的合并,并生成新的基准数据。这种合并过程其实是一种范围查询,是一串连续的磁盘读和连续的磁盘写,也是很高效的。   传统DBMS提供了强大的事务性、良好的一致性和很短的查询修改响应时间,但数据规模受到严重制约,缺乏扩展性;现代云计算提供了极大的数据规模、良好的扩展性,但缺乏跨行跨表事务、数据一致性也较弱、查询修改响应时间通常也较长,OceanBase的设计和实现融合了者的优势:   --------------------------------------------------------------------------------   UpdateServer:类似于DBMS中的DB角色,提供跨行跨表事务和很短的查询修改的响应时间以及良好的一致性。   ChunkServer:类似于云计算中的工作机(如GFS的chunk server),具有数据多副本(通常是3)、中等规模数据粒度(tablet大小约256MB)、自动负载平衡、宕机恢复、机器plug and play等特点,系统容量及性能可随时扩展。   MergeServer:结合ChunkServer和UpdateServer,获得最新数据,实现数据一致性。   RootServer:类似于云计算中的主控机(如GFS master),进行机器故障检测、负载平衡计算、负载迁移调度等。   --------------------------------------------------------------------------------   上述的DBMS和云计算技术的优势互补使得OceanBase既具有传统DBMS的跨行跨表事务、数据的强一致性以及很短的查询修改响应时间,还有云计算的海量数据管理能力、自动故障恢复、自动负载平衡以及良好的扩展性。   OceanBase当前在淘宝的应用   OceanBase现在已经应用于淘宝收藏夹,用于存储淘宝用户收藏条目和具体的商品、店铺信息,每天支持4~5千万的更新操作。等待上线的应用还包括CTU、SNS等,每天更新超过20亿,更新数据量超过2.5TB,并会逐步在淘宝内部推广,也期待外部合作者。   主要的性能数据   测试软硬件环境   Red Hat Enterprise Linux Server release 5.4 (Tikanga)   gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)   Intel(R) Xeon(R) CPU E5520 @ 2.27GH   ChunkServer & MergeServer:Memory 16GB Disk 300GB SAS*10 NO Raid   UpdateServer & RootServer:Memory 48GB Disk 300GB SAS*6 Raid1   测试环境部署简图   ▲   测试数据规模   21亿条数据,基准数据3备份。   测试Schema   两张表,其中表1中有21列,表2中11列。   其中表1中的11列和表2中的11列存在join关系。   单条记录大小为500字节。   测试性能曲线图   Range数据查询   ▲   单条数据查询   ▲   当压力最大时,ChunkServer单台输出数据90MB/S,已经接近了千兆网卡的极限   更新数据   ▲
数据库系统的核心是什么 数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指研究、开发、建立、维护和应用数据库系统所涉及的理论、方法、技术所构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域。 数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。数据库系统的出现是计算机应用的一个里程牌,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往很复杂,是普通用户难以实现的,所以就由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。因此,数据的独立性和共享性是数据库系统的重要特征。数据共享节省了大量人力物力,为数据库系统的广泛应用奠定了基础。数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使计算机走出科研机构进入各行各业、进入家庭。 数据库系统有大小之分,大型数据库系统有SQL Server、Oracle、DB2等,中小型数据库系统有Foxpro、Access、MySQL。 按照类型可以分为关系型数据库,非关系型数据 。其中非关系型数据库包括NOSQL类的新型数据库。 折叠构成 数据库系统一般由4个部分组成: (1)数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。 (2)硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。 (3)软件:包括操作系统、数据库管理系统及应用程序。数据库管理系统(database management system,DBMS)是数据库系统的核心软件,是在操作系统的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。 (4)人员:主要有4类。第一类为系统分析员和数据库设计人员:系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。第类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。 折叠特点 数据的结构化,数据的共享性好,数据的独立性好,数据存储粒度小,数据管理系统,为用户提供了友好的接口。 数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。 数据库系统的核心是数据库管理系统。 数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
什么是数据库系统 悬赏分:0 " 解决时间:2006-2-24 13:40 " 提问者:爱吃西瓜的小狗 数据库系统DBMS 最佳答案 数据库 data base 为满足某一部门中多个用户多种应用的需要,按照一定的数据模型在计算机系统中组织 、存储和使用的互相联系的数据集合。 带有数据库的计算机系统,除具备一般的硬件、软件外,必须有用以存储大量数据的直 接存取存储设备、管理并控制数据库的软件——数据库管理系统(DBMS)、管理数据库的人 员——数据库管理员 (DBA)。这样的数据、硬件、软件和管理人员的总体构成数据库系统。数据库仅是数据库 系统的一个组成部分。 数据库系统的功能和特征 数据库系统由文卷系统发展而来。与文卷系统相比,这种系统具有数据、体系和控制三 个方面的主要特征。 数据特征 在文卷系统中虽然程序与数据之间可用存取方法进行转换,但文卷还是与应用程序对应的 ,即数据仍面向应用。每一应用各自建立自己的一组文卷。不同的应用若涉及相同的数据 ,则这些数据分别纳入各自的文卷之中。文卷的各种记录之间没有建立联系,因而数据 冗余度大。增加新的应用,必须同时增加新的文卷。因此,文卷系统中的文卷是无结构 的、不易扩充的信息集合。数据库则不仅描述数据本身,而且描述数据之间的联系。它 的数据结构反映了某一部门的整体信息结构,数据冗余度小、易于扩充新的应用,因而 是面向数据总体结构的信息集合,可为多个用户共享。 体系特征 一切数据都有逻辑和物理两个侧面。在数据库系统中,数据逻辑结构的描述称为逻辑模 式。逻辑模式又分为描述全局逻辑结构的全局模式(简称模式)和描述某些应用所涉及的 局部逻辑结构的子模式。数据物理结构的描述称为存储模式。这两种模式总称为数据库 模式。 数据库系统中,用户根据子模式编制程序。子模式与模式模式与存储模式之间有软件进 行映射。因此,程序与数据之间具有两级独立性:物理独立性和逻辑独立性。数据的存储 模式改变,而模式可以不改变,因而不必改写应用程序,这称为物理独立性。模式改变时 ,子模式可能不改变,也就不必改写应用程序,这称为逻辑独立性。由于数据库系统具备 比较高的程序与数据的独立性,可以使程序员在编制应用程序时集中精力考虑算法逻辑 ,不必过问物理细节,而且可以大大减少应用程序维护的工作量。 控制特征 数据库数据数量庞大,结构复杂,又为多个用户所共享。因此,必须由数据库管理系统 在定义、建立、运行以及维护时进行统一管理和控制,以保证数据库数据的安全性、完 整性和并发操作的一致性。此外,还必须有数据库管理员专门负责对数据库的管理、控 制监督和改进。 由于数据库系统具有上述特征,它的出现使信息系统的研制从围绕加工数据的程序为中 心,转变到围绕共享的数据库来进行。这便于数据的集中管理,有利于应用程序的研制 和维护。数据减少了冗余度和提高了相容性,从而提高了作出决策的相容性。因此,大 型复杂的信息系统大多以数据库为核心,数据库系统在计算机应用中起着越来越重要的 作用。 研究课题 数据库研究的课题,主要涉及三个领域。 数据库管理系统软件的研制 DBMS是数据库系统的基础。研制DBMS的基本目标,是扩大功能,提高性能和可用性,从 而提高用户的生产率。70年代以来,研制的重点是探索关系数据库管理系统的设计,内 容包括关系数据语言、查询优化、并发控制和系统性能等。另一类课题是对DBMS标准化 的研究,即研究一个统一的DBMS体系结构的规范。 数据库设计 这是在计算机系统具有的数据库管理系统的基础上,按照应用要求以及计算机系统所提 供的数据模型和功能,设计一个结构良好、使用方便、效率较高的,以数据库为核心的 应用信息系统。这一领域主要的研究课题,是数据库设计方法学和设计工具的探索。例 如,运用软件工程的方法和工具指导数据库设计;研究数据库设计各个阶段中完备的方 法和工具;以关系数据库的规范化理论为指南进行数据库逻辑设计等。 数据库理论 主要研究关系数据库理论。关系数据库理论研究的意义,一方面在于它为数据库学科奠 定了理论基础;另一方面它为数据库设计提供了判别标准,从而成为数据库设计的有力指 南。研究的主要内容是关系的规范化理论。关系规范化理论已应用于数据库设计的各个 阶段。 发展 数据库技术是计算机科学中发展最快的领域之一,新的领域越来越多。 分布式数据库系统 随着70年代后期分布计算机系统的发展,相应地研究成功分布式数据库系统。分布式数 据库系统是一个在逻辑上完整,而在物理上分散在若干台互相连接的结点机上的数据库 系统。它既具有分布性又具有数据库的综合性。这是数据库系统发展的一个重要方向。 分布式数据库系统结构复杂,其中最复杂的是分布式数据库管理系统。 数据库机器 新的计算机系统的体系结构。它把由中央处理器包办的数据库操作分散给一些局部的
数据库原理概论理论知识点总结 数据库概论 ⼀.绪论 1.1 数据库系统概述 数据是描述事物的符号记录,是数据库中存储的基本对象。 数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分割的。 数据库是长期存储在计算机内、有组织的、可共享的⼤量数据的集合。数据库具有永久存储,有组织和可共享三个基本特点。 数据库管理系统:数据库管理系统是位于⽤户与操作系统之间的⼀层数据管理软件。 DBMS主要功能:数据定义,数据组织、存储和管理,数据操纵。 数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语⾔、实⽤程序以及数据库管 理系统。 数据库管理技术经历:⼈⼯管理,⽂件系统,数据库系统三个⽅⾯。 数据库类型是根据( 数据模型 )划分的。 数据库系统的特点:数据结构化,数据的共享性⾼、冗余度低易于扩充,数据独⽴性⾼,数据由数据库管理系统统⼀管理和控制。 数据库系统的核⼼是数据库管理系统,数据库系统的核⼼和基础才应该是数据模型。 1.2 数据模型 数据模型是对现实世界数据特征的抽象,是数据库系统的核⼼与基础。分为两⼤类,属于不同层次,⼀类概念模型(信息模型),⼆类逻辑模型(有层次、⽹ 状等)和物理模型(数据最底层的抽象)。 层次模型以树结构表⽰数据间的关系,⽹状模型以图结构来表⽰数据间的关系,它们都是通过指针链接实现的。 现实世界 概念世界:DBA;概念世界 逻辑模型:DBA;逻辑世界 物理模型:DBMS; E-R图:⽅形(实体),菱形(关系)。 数据模型由数据结构,数据操作,数据的完整性约束三个部分组成。 1.3 数据库系统的结构 在数据模型中有型和值的概念,型是对某⼀类数据的结构和属性的说明,值是型的⼀个具体赋值。⼀个具体值也是⼀个实例。模式是相对稳定的,实例是相对 变动的。 三级模式:模式,内模式,外模式。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有⽤户的公共数据试图。外模式也称⼦模式,⽤ 户可以看到使⽤的局部数据的逻辑结和特征的描述,是数据库⽤户的数据视图。外模式是数据物理结构和存储⽅式的描述,是数据在数据库内部的组织⽅式,且 ⼀个数据库只有⼀个内模式。 数据的独⽴性是指逻辑独⽴性和物理独⽴性。 外模式/模式映像提供了数据的逻辑独⽴性,数据的逻辑独⽴性是指⽤户的应⽤程序与数据库的逻辑结构是相互独⽴的,也就是说,数据的逻辑结构改变了,⽤ 户程序也可以不变。 模式/内模式影响提供了数据的物理独⽴性,数据的物理独⽴性是指⽤户的应⽤程序与存储在磁盘上的数据库中数据是相互独⽴的,也就是说,数据在磁盘上的 数据库中怎样存储是有DBMS管理的,⽤户程序不需要了解,应⽤程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应⽤程序不⽤改变。 数据与程序之间的独⽴性使得数据的定义和描述可以从应⽤程序中分离出来。 外模式、模式在逻辑设计阶段得到,内模式在物理设计阶段得到。 ⼆.关系数据库 2.1 关系数据结构及形式化定义 关系模型包括单⼀的数据结构——关系,逻辑结构是⼀张扁平的⼆维表。 域是⼀组具有相同数据类型的集合。⼀个域允许的不同取值个数称为这个域的基数。 若关系中的某⼀属性组的值能够唯⼀标识⼀个元组,⽽且⼦集不能,则称该属性组为候选码。 关系可以有三种类型:基本关系,查询表,视图表。 关系数据库中,关系模式是型,关系是值。关系模式是对关系模式的描述,关系是元组的集合。 关系数据库的型称为关系关系数据库的模式,是对关系数据库的描述。关系数据库模式包括若⼲域的定义,以及在这些域上定义的若⼲关系模式。关系数据库 的值是这些关系模式在某⼀时刻对应的关系的集合,通常就称为关系数据库。 在关系模式R分解成数据库模式 ρ 时,谈论⽆损联接的先决条件是数据库模式ρ中的关系模式之间有公共属性,存在泛关系。 2.2 关系操作 关系运算包括选择、投影、连接以及除法。 集合运算是⼆⽬运算,包括并、差、交、⼴义笛卡尔积四种运算。 关系操作,操作的对象和结果都是集合。 关系数据语⾔:关系代数语⾔,关系演算语⾔(元组关系演算语⾔,域关系演算语⾔),具有两者双重特点(SQL)。 SQL语⾔是⼀种⾼度**⾮过程化**的语⾔。 投影是选取相应列组成新元组,连接在多个关系的笛卡尔积中进⾏筛选出的新关系,交运算是多个关系之间交集所产⽣的新的关系。 从关系中挑选出指定的元 组组成新关系的运算称为选取! 2.3 关系的完整性 关系模型中有三类完整性约束:实体完整性,参照完整性,⽤户⾃定义完整性。其中前两者为关系的两个不可变形。 空值是"不知道","不存在","⽆意义"的值。 2.4 关系代数 ⾃然连接是构成新关系的有效⽅法。⼀般情况下,当关系R和S进⾏连接操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值