一 什么是分布式数据库
分布式数据库系统是在集中式数据库系统的基础上发展来的 是数据库技术与网络技术结合的产物
分布式数据库系统有两种 一种是物理上分布的 但逻辑上却是集中的 这种分布式数据库只适宜用途比较单一的 不大的单位或部门 另一种分布式数据库系统在物理上和逻辑上都是分布的 也就是所谓联邦式分布数据库系统 由于组成联邦的各个子数据库系统是相对 自治 的 这种系统可以容纳多种不同用途的 差异较大的数据库 比较适宜于大范围内数据库的集成
分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)
在分布式数据库系统中 一个应用程序可以对数据库进行透明 *** 作 数据库中的数据分别在不同的局部数据库中存储 由不同的DBMS进行管理 在不同的机器上运行 由不同的 *** 作系统支持 被不同的通信网络连接在一起
一个分布式数据库在逻辑上是一个统一的整体 即在用户面前为单个逻辑数据库 在物理上则是分别存储在不同的物理节点上 一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库 它的分布性表现在数据库中的数据不是存储在同一场地 更确切地讲 不存储在同一计算机的存储设备上 这就是与集中式数据库的区别 从用户的角度看 一个分布式数据库系统在逻辑上和集中式数据库系统一样 用户可以在任何一个场地执行全局应用 就好那些数据是存储在同一台计算机上 有单个数据库管理系统(DBMS)管理一样 用户并没有什么感觉不一样
分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性
分布式数据库系统是一个客户/服务器体系结构
在系统中的每一台计算机称为结点 如果一结点具有管理数据库软件 该结点称为数据库服务器 如果一个结点为请求服务器的信息的一应用 该结点称为客户 在ORACLE客户 执行数据库应用 可存取数据信息和与用户交互 在服务器 执行ORACLE软件 处理对ORACLE数据库并发 共享数据存取 ORACLE允许上述两部分在同一台计算机上 但当客户部分和服务器部分是由网连接的不同计算机上时 更有效
分布处理是由多台处理机分担单个任务的处理 在ORACLE数据库系统中分布处理的例子如
客户和服务器是位于网络连接的不同计算机上
单台计算机上有多个处理器 不同处理器分别执行客户应用
参与分布式数据库的每一服务器是分别地独立地管理数据库 好像每一数据库不是网络化的数据库 每一个数据库独立地被管理 称为场地自治性 场地自治性有下列好处
◆系统的结点可反映公司的逻辑组织
◆由局部数据库管理员控制局部数据 这样每一个数据库管理员责任域要小一些 可更好管理
◆只要一个数据库和网络是可用 那么全局数据库可部分可用 不会因一个数据库的故障而停止全部 *** 作或引起性能瓶颈
◆故障恢复通常在单个结点上进行
◆每个局部数据库存在一个数据字典
◆结点可独立地升级软件
可从分布式数据库的所有结点存取模式对象 因此正像非分布的局部的DBMS 必须提供一种机制 可在局部数据库中引用一个对象 分布式DBMS必须提供一种命名模式 以致分布式数据库中一个对象可在应用中唯一标识和引用 一般在层次结构的每一层实施唯一性 分布式DBMS简单地扩充层次命名模型 实施在网络上唯一数据库命名 因此一个对象的全局对象名保证在分布式数据库内是唯一
ORACLE允许在SQL语句中使用全局对象名引用分布式数据库中的模式对象(表 视图和过程) 在ORACLE中 一个模式对象的全局名由三部分组成 包含对象的模式名 对象名 数据库名 其形式如
SCOTT EMP@SALES DIVISION ACME
一个远程查询为一查询 是从一个或多个远程表中选择信息 这些表驻留在同一个远程结点
一个分布式查询可从两个或多个结点检索数据 一个分布式更新可修改两个或两个以上结点的数据
一个远程事务为一个事务 包含一人或多个远程语句 它所引用的全部是在同一个远程结点上 一个分布式事务中一个事务 包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据
在分布式数据库中 事务控制必须在网络上直辖市 保证数据一致性 两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句
ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性 利用视图 同义词 过程可提供ORACLE分布式数据库系统中的位置透明性
ORACLE提供两种机制实现分布式数据库中表重复的透明性 表快照提供异步的表重复;触发器实现同步的表的重复 在两种情况下 都实现了对表重复的透明性
在单场地或分布式数据库中 所有事务都是用MIT或ROLLBACK语句中止
二 分布式数据库系统的分类
( ) 同构同质型DDBS 各个场地都采用同一类型的数据模型(譬如都是关系型) 并且是同一型号的DBMS
( )同构异质型DDBS 各个场地采用同一类型的数据模型 但是DBMS的型号不同 譬如DB ORACLE SYBASE SQL Server等
( )异构型DDBS 各个场地的数据模型的型号不同 甚至类型也不同 随着计算机网络技术的发展 异种机联网问题已经得到较好的解决 此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据
三 分布式数据库系统主要特点
DDBS的基本特点
( )物理分布性 数据不是存储在一个场地上 而是存储在计算机网络的多个场地上
逻辑整体性 数据物理分布在各个场地 但逻辑上是一个整体 它们被所有用户(全局用户)共享 并由一个DDBMS统一管理
( )场地自治性 各场地上的数据由本地的DBMS管理 具有自治处理能力 完成本场地的应用(局部应用)
( )场地之间协作性 各场地虽然具有高度的自治性 但是又相互协作构成一个整体
DDBS的其他特点
( )数据独立性
( )集中与自治相结合的控制机制
( )适当增加数据冗余度
( )事务管理的分布性
四 分布式数据库系统的优点
( )更适合分布式的管理与控制
分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用 允许分布在不同区域 不同级别的各个部门对其自身的数据实行局部控制 例如 实现全局数据在本地录入 查询 维护 这时由于计算机资源靠近用户 可以降低通信代价 提高响应速度 而涉及其他场地数据库中的数据只是少量的 从而可以大大减少网络上的信息传输量;同时 局部数据的安全性也可以做得更好
( )具有灵活的体系结构
集中式数据库系统强调的是集中式控制 物理数据库是存放在一个场地上的 由一个DBMS集中管理 多个用户只可以通过近程或远程终端在多用户 *** 作系统支持下运行该DBMS来共享集中是数据库中的数据 而分布式数据库系统的场地局部DBMS的自治性 使得大部分的局部事务管理和控制都能就地解决 只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理 分布式DBMS可以设计成具有不同程度的自治性 从具有充分的场地自治到几乎是完全集中式的控制
( )系统经济 可靠性高 可用性好
与一个大型计算机支持一个大型的集中式数据库在加一些进程和远程终端相比 由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性 分布式系统比集中式系统具有更高的可靠性和更好的可用性 如由于数据分布在多个场地并有许多复制数据 在个别场地或个别通信链路发生故障时 不致于导致整个系统的崩溃 而且系统的局部故障不会引起全局失控
( )在一定条件下响应速度加快
如果存取的数据在本地数据库中 那么就可以由用户所在的计算机来执行 速度就快
( )可扩展性好 易于集成现有系统 也易于扩充
对于一个企业或组织 可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用 对原有的局部数据库系统作某些改动 形成一个分布式系统 这比重建一个大型数据库系统要简单 既省时间 又省财力 物力 也可以通过增加场地数的办法 迅速扩充已有的分布式数据库系统
五 分布式数据库系统的劣势
( )通信开销较大 故障率高
例如 在网络通信传输速度不高时 系统的响应速度慢 与通信相关的因素往往导致系统故障 同时系统本身的复杂性也容易导致较高的故障率 当故障发生后系统恢复也比较复杂 可靠性有待提高
( )数据的存取结构复杂
一般来说 在分布时数据库中存取数据 比在集中时数据库中存取数据更复杂 开销更大
( )数据的安全性和保密性较难控制
在具有高度场地自治的分布时数据库中 不同场地的局部数据库管理员可以采用不同的安全措施 但是无法保证全局数据都是安全的 安全性问题式分布式系统固有的问题 因为分布式系统式通过通信网络来实现分布控制的 而通信网络本身却在保护数据的安全性和保密性方面存在弱点 数据很容易被窃取
分布式数据库的设计 场地划分及数据在不同场地的分配比较复杂 数据的划分及分配对系统的性能 响应速度及可用性等具有极大的影响 不同场地的通信速度与局部数据库系统的存取部件的存取速度相比 是非常慢的 通信系统有较高的延迟 在CPU上处理通信信息的代价很高 分布式数据库系统中要注意解决分布式数据库的设计 查询处理和优化 事务管理及并发控制和目录管理等问题
六 分布式数据库系统 数据分片
类型
水平分片
按一定的条件把全局关系的所有元组划分成若干不相交的子集 每个子集为关系的一个片段
垂直分片
把一个全局关系的属性集分成若干子集 并在这些子集上作投影运算 每个投影称为垂直分片
导出分片
又称为导出水平分片 即水平分片的条件不是本关系属性的条件 而是其他关系属性的条件
混合分片
以上三种方法的混合 可以先水平分片再垂直分片 或先垂直分片再水平分片 或其他形式 但他们的结果是不相同的
条件
( )完备性条件
必须把全局关系的所有数据映射到片段中 决不允许有属于全局关系的数据却不属于它的任何一个片段
( )可重构条件
必须保证能够由同一个全局关系的各个片段来重建该全局关系 对于水平分片可用并 *** 作重构全局关系;对于垂直分片可用联接 *** 作重构全局关系
( )不相交条件
要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)
七 分布式数据库系统 数据分配方式
( )集中式 所有数据片段都安排在同一个场地上
( )分割式
所有数据只有一份 它被分割成若干逻辑片段 每个逻辑片段被指派在一个特定的场地上
( )全复制式 数据在每个场地重复存储 也就是每个场地上都有一个完整的数据副本
( )混合式 这是一种介乎于分割式和全复制式之间的分配方式
八 分布式数据库系统 体系结构
数据分片和数据分配概念的分离 形成了 数据分布独立型 概念
数据冗余的显式控制 数据在各个场地的分配情况在分配模式中一目了然 便于系统管理
局部DBMS的独立性 这个特征也称为 局部映射透明性 此特征允许我们在不考虑局部DBMS专用数据模型的情况下 研究DDB管理的有关问题
九 分布式数据库管理系统
接受用户请求 并判定把它送到哪里 或必须访问哪些计算机才能满足该要求
访问网络数据字典 了解如何请求和使用其中的信息
如果目标数据存储于系统的多个计算机上 就必须进行分布式处理
通信接口功能 在用户 局部DBMS和其他计算机的DBMS之间进行协调
在一个异构型分布式处理环境中 还需提供数据和进程移植的支持 这里的异构型是指各个场地的硬件 软件之间存在着差别
分布式数据库管理系统
lishixinzhi/Article/program/Oracle/201311/16998
下面是我的理解:
全局数据库名是服务名,而sid可以理解为是为一个服务名取的别名,一般情况下二者是相同的,
sid可以在tnsnameora总随便改,不过格式得正确哈!
实例:一个数据库上可以建很多实例,每个实例就是一个服务,一般都这样说,在那个服务器上的某某实例即指对应的这个服务。
实体:一般是在建模的时候才有这个概念,它是个抽象的,实体进一步实现就变成我们所为的表
1、主键(primary key)吧:一张表(关系)的一个列(属性)或多个列可以作为主键,但是前提是让这个列作主键,这个列就能保证该列下的各个行(元组)的值不能相同,比如说用姓名属性作主键的话,那么这个主键就不一定可以,如果有两个人是同样的名字的话,就不能做到该属性下的各个元组数据的值不同,如果用阿拉伯数字作主键就是一个很好的选择。
2、外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键。
3、候选键(Candidate Key):能唯一标识表(关系)中行(元组)的列(属性),则称该属性为候选键,也称 候选关键字 或 候选码;由此来看候选键可以不只一个,还看一看得出的就是主键同时它也是候选键。
四大开源数据库是哪些
开源世界中的那几个免费数据库
发布时间:2011-11-22 09:34:30 来源:CSDN 评论:0 点击:1476 次 字号:大 中 小
QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 复制 更多 0
开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源
开源数据库MySQL
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
盘点:开源社区那些免费的数据库软件
MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植性。这样的一款数据库,自然能够支持几乎所有的 *** 作系统,从Unix、Linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种 *** 作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。
与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。
首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。
其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。
第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。
非关系型数据库NoSQL
从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
盘点:开源社区那些免费的数据库软件
当然,NoSQL也是随着互联网Web20网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web20网站,特>>
该选择哪个开源数据库
如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢?
在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始就选择正确。两个流行的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品。对这两个开源数据库的高层次概览将会有助于你选择最适合自己需要的。
MySQL
MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括Linux、Apache及Perl/PHP/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如WordPress、Drupal、Zend及phpBB等。
一开始,MySQL的设计目标是成为一个快速的Web服务器后端,使用快速的索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的核心存储引擎与第三方引擎。
MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。
MySQL近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与munity。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。
现在,基于最初的MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一Michael "Monty" Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。
PostgreSQL
PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。
PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。
可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和>>
该选择哪个开源数据库?哪一个更好
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃,表现为英文“Service Unavailable”。
MS SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Microsoft Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。Microsoft SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
MySql短小精悍,像access一样的文件型数据库,但比access强百倍,是真正多用户多任务的数据库系统,从Linux上移植过来的,安全性非常好,不过大部分 *** 作是在dos下进行,虽然也有第三方开发的图形界面但并不好用。MySQL是跨多平台的数据库管理软件,可运行于LINUX、NT、UNIX等系统,可支持命令和图形化管理,对于一般的数据库足以应付了,占用系统资源较少,速度较快,而且是开源的。
Oracle各方面都比较成熟,但对硬件要求高,用于数据完整性、安全性要求较高的场合,能在所有主流平台上运行,完全支持所有的工业标准,采用完全开放策略。可以使客户选择最适合的解决方案,对开发商全力支持。平行服务器通过使一组结点共享同一簇中的工作来扩展服务器的能力,提供高可用性和高伸缩性的簇的解决方案,获得最高认证级别的iso标准认证,多层次网络计算,支持多种工业标准,可以用odbc,jdbc,oci等网络客户连接,较复杂,同时提供gui和命令行,在windows和unix下 *** 作相同,如果windows不能满足需要,用户可以把数据库移到unix中。其 *** 作和设置比较复杂,适用于有一定 *** 作经验的用户。
db2 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
总之,各个主流数据库各有优势与侧重,对于初学者而言,建议从MS SQL Server 着手学习,众所周知,微软的东西么,简单易懂。
该选择哪个开源数据库
如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免
费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库
呢?
在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始就选择正确。两个流行
的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品。对这两个开源数据库的高层次概览将会有助于你选择最适合自己需要的。
MySQL
MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括
Linux、Apache及Perl/PHP/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如
WordPress、Drupal、Zend及phpBB等。
一开始,MySQL的设计目标是成为一个快速的Web服务器后端,使用
快速的索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了
ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的
核心存储引擎与第三方引擎。
MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。
MySQL近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL
AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版
本:Standard、Enterprise、Classic、Cluster、Embedded与munity。其中有一些是免费下载的,另外一
些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。
现在,基于最初的
MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一Michael
"Monty"
Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的
MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。
PostgreSQL
PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。
PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了多个
不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一>>
现在的开源图形数据库有哪些
首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。
其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。
第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。
什么是开源数据库
开源意思是开放源代码,没有加密
开源数据库,说明这个数据库没有加密的,代码就是开放的
数据库作用都是用于动态语言开发的网站
有哪些开源的 POI 数据库
这个多了去了 ,apache 绝对是 开源里面的领头羊 for example: 分类 项目名 说明开发语言 服务器 (共20) Apache >
--一、导出/导入(Export/Import)
----利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。
----1简单导出数据(Export)和导入数据(Import)
----Oracle支持三种类型的输出:
----(1)表方式(T方式),将指定表的数据导出。
----(2)用户方式(U方式),将指定用户的所有对象及数据导出。
----(3)全库方式(Full方式),将数据库中的所有对象导出。
----数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。
----2增量导出/导入
----增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为exportdmp,如果不希望自己的输出文件定名为exportdmp,必须在命令行中指出要用的文件名。
----增量导出包括三个类型:
----(1)“完全”增量导出(Complete)
----即备份整个数据库,比如:
----$expsystem/managerinctype=completefile=990702dmp
----(2)“增量型”增量导出
----备份上一次备份后改变的数据。比如:
----$expsystem/managerinctype=incrementalfile=990702dmp
----(3)“累计型”增量导出(Cumulative)
----累计型导出方式只是导出自上次“完全”导出之后数据库中变化了的信息。比如:
----$expsystem/managerinctype=cumulativefile=990702dmp
----数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。
----比如数据库的备份任务可作如下安排:
----星期一:完全导出(A)
----星期二:增量导出(B)
----星期三:增量导出(C)
----星期四:增量导出(D)
----星期五:累计导出(E)
----星期六:增量导出(F)
----星期日:增量导出(G)
----如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:
----第一步:用命令CREATEDATABASE重新生成数据库结构;
----第二步:创建一个足够大的附加回段。
----第三步:完全增量导入A:
----$impsystem/managerinctype=RECTOREFULL=YFILE=A
----第四步:累计增量导入E:
----$impsystem/managerinctype=RECTOREFULL=YFILE=E
----第五步:最近增量导入F:
----$impsystem/managerinctype=RESTOREFULL=YFILE=F
----二、冷备份
----冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:
----1.是非常快速的备份方法(只需拷贝文件)
----2.容易归档(简单拷贝即可)
----3.容易恢复到某个时间点上(只需将文件再拷贝回去)
----4.能与归档方法相结合,作数据库“最新状态”的恢复。
----5.低度维护,高度安全。
----但冷备份也有如下不足:
----1.单独使用时,只能提供到“某一时间点上”的恢复。
----2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
----3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
----4.不能按表或按用户恢复。
----如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
----1.所有数据文件
----2.所有控制文件
----3.所有联机REDOLOG文件
----4.Initora文件(可选)。
----值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的
----下面是做冷备份的完整例子:
----(1)关闭数据库$sqldbalmode=y
----SQLDBA>connectinternal;
----SQLDBA>shutdownnormal;
----(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
----SQLDBA>!cp
----(3)重启Oracle数据库
----$sqldbalmode=y
----SQLDBA>connectinternal;
----SQLDBA>startup;
----三、热备份
----热备份是在数据库运行的情况下,采用archivelogmode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
----1.数据文件一个表空间一个表空间地备份。
----(1)设置表空间为备份状态
----(2)备份表空间的数据文件
----(3)恢复表空间为正常状态
----2.备份归档log文件。
----(1)临时停止归档进程
----(2)log下那些在archiveredolog目标目录中的文件
----(3)重新启动archive进程
----(4)备份归档的redolog文件
----3.用alterdatabasebackupcontrolfile命令来备份拷贝文件
----热备份的优点是:
----1.可在表空间或数据文件级备份,备份时间短。
----2.备份时数据库仍可使用。
----3.可达到秒级恢复(恢复到某一时间点上)。
----4.可对几乎所有数据库实体作恢复。
----5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。
----热备份的不足是:
----1.不能出错,否则后果严重。
----2.若热备份不成功,所得结果不可用于时间点的恢复。
----3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。
主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引。\x0d\\x0d\外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。既没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。\x0d\\x0d\主键:表中记录的唯一标识\x0d\\x0d\外键:依赖于别的表的数据\x0d\\x0d\唯一键:在表中唯一\x0d\\x0d\键是一个或多个字段的组合\x0d\\x0d\唯一键:可以确定一条记录的字段(或字段组合),一张表可以有多个唯一键,正如可以识别你的身份的可以是身份z,学生证,军人证\x0d\\x0d\主键:你把唯一键的一个选做主键,一张表只能有一个主键\x0d\\x0d\外键:所定义的外键是另一张表的主键,\x0d\\x0d\主键:表中记录的唯一标识,外键:依赖于别的表的数据,唯一键:在表中唯一。\x0d\\x0d\主键和唯一键的一个区别:主键是不允许为NULL的,唯一键则可以,当然你可以加上NOT NULL来限制它\x0d\\x0d\主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。\x0d\\x0d\外键:\x0d\\x0d\若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。\x0d\\x0d\A为基本表,B为信息表。\x0d\\x0d\在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份z号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份z号一样,必须是每个记录的值都不同,这才能根据主键的值来确定不同的记录。\x0d\\x0d\什么是外键?\x0d\\x0d\说明你的表A中的某项a,是引用表B的某列b\x0d\\x0d\为什么要使用外键?\x0d\RDBMS的基本概念,可以维护数据库的完整。\x0d\\x0d\如何来用,涉及到数据库的定义。\x0d\\x0d\唯一约束和主键的区别是什么?\x0d\\x0d\唯一性约束\x0d\\x0d\唯一性约束所在的列允许空值,但是主键约束的列不允空值。\x0d\\x0d\可以把唯一约束放在一个或者多个列上,但是,唯一性约束所在的列并不是表的主键列。\x0d\\x0d\唯一性约束强制在指定的列上创建一个唯一性索引,在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。\x0d\\x0d\主键:\x0d\\x0d\用于标识某行而且与之相关\x0d\\x0d\是不可能更新\x0d\\x0d\不应该允许空\x0d\\x0d\唯一域/字段\x0d\\x0d\用于作为访问某行的可选手段。\x0d\\x0d\只要唯一就可以更新\x0d\\x0d\可以为空\x0d\\x0d\注意唯一和主键的区别,它们都是创建一个唯一的索引,一个表格仅含有一个主键约束列,但是,它有可能在其他列中含有许多的唯一约束。
如果我们想向南京图书馆借阅一册《永乐大典》,只须坐在电脑旁,点击中国教育科研网连接南京图书馆的站点,打开古籍书目数据库,键入书名:《四库全书》,系统响应后会显示该库中收藏《四库全书》的情况,于是便可以进一步办理借阅手续。
数据库可以通俗地比喻为存放大量数据的仓库。以科学的术语讲,数据库是存储在计算机存储设备上的数据集合。举例来说,如果我们把一本书的书名、作者名、出版单位、出版年月、主要内容等等,按照著录条例进行规范,就可以得到这本书的书目数据。目此,把许多的书目数据有序地长期存放在计算机磁盘上,使广大用户均可共享,这些书目数据于是就成为书目数据库。数据库的建立、运用和维护,全都依靠数据库管理系统软件来完成,并由人统一管理和控制。只要在图书馆的计算机上建立起书目数据库,使用计算机进行查询和检索就成为可能了。
数据库在计算机科学与技术中的发展是最快的重要分支之一。只要将数据库技术与其他学科的技术相结合,可以根据需要设计出各种各样的数据库。例如,把数据库技术与图书情报学结合可做成书目数据库;演绎数据库是将数据库技术与人工智能学结合而成的;多媒体数据库是数据库技术与多媒体技术相结合而成等等。数据库对大量信息具有进行有效存储和快速存取的能力,所以它成为大型信息系统的基础和核心,相关应用领域已从传统的商业和事务处理,扩展到科技、经济、军事、社会生活的各个领域,发挥着越来越大的作用。
以上就是关于分布式数据库系统(DDBS)概述全部的内容,包括:分布式数据库系统(DDBS)概述、oracle中全局数据库与sid有什么区别 另外实例与实体有什么区别 讲得明白就好!、数据库里面的主键和外键及候选键是什么意思啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)