精华内容
下载资源
问答
  • MySQL是一种关系数据库管理系统,关系数据库将数据保存不同的表,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件...
  • 摘要:数据库系统与人工管理和文件管理系统相比,...与教师之间的关系,学生与班级、学生与系别、学生与教务处等之间的关系,而非简单的从单方面对学生数据进行处理,虽然文件系统中也有记录的概念,而各个文

    摘要:数据库系统与人工管理和文件管理系统相比,数据库系统具有实现数据整体结构化,使数据高共享性、低冗余性、易扩充,数据具有更高的独立性,且数据由DBMS管统一管理与控制。

     

    数据库整体结构化是数据库与其他两种系统的本质区别。

    比如:开发一个学院的数据管理系统,就应从整体的角度进行设计,在组织学生数据时,就应该考虑到学生 与教师之间的关系,学生与班级、学生与系别、学生与教务处等之间的关系,而非简单的从单方面对学生数据进行处理,虽然文件系统中也有记录的概念,而各个文件之间却缺乏联系,人工管理系统更是没有这种关系的概念。此外,在数据的操作方面,数据库系统凭借强大的DBMS,不仅可以对多组、多表数据进行操作,而 且可以对单记录、单项数据进行操作,相比文件系统与人工管理系统,更加灵活与方便。


     数据库的共享性高,冗余度低,易扩充。

    正是由于数据库的整体性,从而可以使其可以更容易被多用户、多应用程序共同访问,且数据库中的并发性控制机制 ,如封锁机制及事务管理、数据库连接池等,使数据库多用户、多任务的操作的实现成为了可能。数据库共享性 的提高另一方面也减少了数据库的存储,降低冗余。由于数据是面向整体的,且数据结构化,使得数据库更容易扩展 ,再加上DBMS及数据库的三级模式,使的数据库不仅能更好的组织数据,而且在数据扩展与修改方面都 有巨大的提高。

     

    数据库的独立性,得益于数据库的(三级模式与两级映象)??,使数据库拥有物理独立性与逻辑独立性。

    最后一点不得不提的是DBMS。正是由于它的出现,使得数据库系统得以实现,如果没有它,无法想象数据库系统是怎么实现的。DBMS管理并控制着数据库的安全性、完整性、并发性及数据的恢复,使得对数据的操作更灵活方、便且,更安全。

    展开全文
  • 数据库管理系统(DBMS)的事务都遵循着四种标准规格的约定。将这四种特性的首字母结合起来就统称为ACID特性。这些约定是所有DBMS都必须遵守的规则。原子性原子性是指事务结束时,其中包含的更新要么全部执行,...

    数据库管理系统(DBMS)的事务都遵循着四种标准规格的约定。将这四种特性的首字母结合起来就统称为ACID特性。这些约定是所有DBMS都必须遵守的规则。



    • 原子性

    原子性是指在事务结束时,其中所包含的更新要么全部执行,要么完全不执行的特性。

    就像原子一样,不可分割。(这里只是狭义上的,因为理论上原子也是可以分割的)



    • 一致性

    一致性指的是事务中包含的处理,要满足数据库提前设置的约束。如:主键约束或者NOT NULL 约束等。

    一致性也称为完整性。



    • 隔离性

    隔离性指的是保证不同事务之间互不干扰的特性,该特性保证了事务之间不会相互嵌套。此外,在某个事务中进行的更改,在该事物结束之前,对其他事务而言是不可见的。因此,即使某个事务向表中添加了记录,在没有提交之前,其他事务是看不到新添加的记录的。

    对于隔离性而言,也是具有几种隔离特征的,对此,我会在下一篇详细介绍。



    • 持久性

    持久性也可以称为耐久性,指的是事务(不论是提交还是回滚)一旦结束,DBMS会保证该时点的数据状态得以保存的特性,即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复。

    如果不能保证持久性,即使正常提交结束的事务,一旦发生了系统故障,就会导致数据丢失,一切都需要重头再来的后果。

    保证持久性的方法根据实现方式不同而不同,其中最常见的就是日志管理,将事务的执行记录保存到硬盘等存储介质中,当发生故障时,可以通过日志记录的历史数据,恢复到故障发生前的状态。

    转载自Nixgnaw:www.wangxin520.site

    转载于:https://www.cnblogs.com/wangxinblog/p/8655305.html

    展开全文
  • 各NoSQL数据库管理系统与模型比较

    千次阅读 2017-02-17 10:09:25
    提供:ZStack云计算 内容简介NoSQL数据库的存在意义在于提供传统关系数据库管理...今天的文章,我们将共同了解各类高人气NoSQL数据库管理系统及其定位与作用,从而帮助我们根据实际应用需求做出明智选择。词汇表1.

    提供:ZStack云计算

    内容简介

    NoSQL数据库的存在意义在于提供传统关系数据库管理系统所不具备的特定功能。无论是负责承载简单的键-值对存储以实现短期缓存,抑或是处理传统数据库及结构化查询语言(简称SQL)所难以消化的非结构化集合,NoSQL都能为我们提供巨大的帮助。

    在今天的文章中,我们将共同了解各类高人气NoSQL数据库管理系统及其定位与作用,从而帮助我们根据实际应用需求做出明智选择。

    词汇表

    1. 数据库管理系统

    2. NoSQL数据库管理系统

    1. 基于键/值
    2. 基于列
    3. 基于文档
    4. 基于图形

    3. 基于键/值的NoSQL数据库管理系统

    1. 主流键/值数据库
    2. 适合用途

    4. 基于列的NoSQL数据库管理系统

    1. 主流列式数据库
    2. 适合用途

    5. 基于文档的NoSQL数据库管理系统

    1. 主流文档数据库
    2. 适合用途

    6. 基于图形的NoSQL数据库管理系统

    1. 主流图形数据库
    2. 适合用途

    7. NoSQL数据库管理系统与关系数据库管理系统之对比

    1. NoSQL数据库适合用途

    数据库管理系统

    数据库属于逻辑性建模存储空间,负责承载各类不同信息(即数据)。每套数据库(除了无模式数据库以外)皆拥有一套模型,负责提供处理数据所必需的结构。数据库管理系统属于应用程序(或者库),旨在管理不同类型、规模以及形式的数据库方案。

    备注:要了解更多与数据库管理系统相关的内容,请参阅了解数据库一文。

    NoSQL数据库管理系统

    过去十年来,关系数据库管理系统一直成为开发者与系统管理员们的最佳选项,而其理由也相当充分。尽管灵活性并不理想,但RDBMS的强大特性使其能够创建、查询并使用复杂的数据库方案。其能力已经可以满足绝大部分需求,因为长久以来市场上并未出现差异性极大的需求转变。

    而“NoSQL”这一名号早在十几年前就已经出现,其强调的含义是“并非”另一种关系数据库。而在其背后则隐藏着完全不同的解决思路:消除对标准SQL的使用。接下来几年中,不过有厂商接过这面大旗并加以推动,隶属于该阵营的多种非关系数据库也开始不断涌现。

    从设计角度看,NoSQL数据库与管理系统为非关系型(或者说无模式)设计。它们并非基于单一模式(例如RDBMS的关系模型),而且每款数据库根据自身功能定位都会采用不同的模式。

    :NoSQL数据库包含以下几种不同的可选模式及功能系统:

    • 键/值:

    例如Redis、MemcacheDB等。

    • 列式:

    例如Cassandra、HBase等。

    • 文档:

    例如MongoDB、Couchbase等。

    • 图形:

    例如OrientDB、Neo4J等。

    为了更好地理解每种数据库管理系统的角色定位与底层技术,下面对这四种可选模式进行逐一剖析。

    键/值数据库

    我们首先来讲键/值类数据库管理系统,因为它们较为简单且属于NoSQL实现方案的基础与主干。

    这类数据库的工作原理是将键与值进行匹配,具体方式与字典相近。其中不存在结构或者关系。在接入数据库服务器(例如Redis)后,应用能够声明一个键(例如the_answer_to_life)并提供一个与之匹配的值(例如42)。在此之后,当我们提供该键,就能够检索到对应的值。

    键/值DBMS通常被用于存储基础性信息,有时候也会存储某些并不基础的执行结果——例如CPU与内存密集型计算结果。其性能极高,效率可观且通常易于扩展。

    备注:在计算机当中,字典指的通常是一种特殊的数据对象。其由大量集合数组构成,各数组中包含独立的键与值。

    列式数据库

    列式NoSQL数据库管理系统在键/值数据库的基础上更进了一步。

    尽管互联网上查到的图片看似难以理解,不过此类数据库的工作原理其实非常简单——创建一个或者多个键/值对集合,并共同匹配一条记录。

    与传统关系数据库的定义模式不同,列式NoSQL解决方案不需要利用预结构化表实现数据处理。每条记录都附带一个或者多个包含有信息的列,而每条记录中的每个列都可彼此不同。

    基本上,列式NoSQL数据库就是大量二维数组,其中每个键(即行/记录)都附加一个或者多个键/值对。此类管理系统能够承载规模庞大的非结构化数据(例如可在单一记录中添加大量信息)。

    这些数据库常被用于处理简单键/值对无法完成的任务,并存储总量极大、且承载信息量极多的记录。列式无模式DBMS能够实现极佳的扩展能力。

    文档数据库

    文档NoSQL数据库管理系统近来可谓人气爆棚。此类DBMS的工作原理与列式数据库基本一致;不过,它们能够实现更为深入的嵌套与更复杂的结构(例如某文档内包含一个文档,后者中又包含另一文档)。

    文档数据库克服了列式数据库中键/值嵌套只能分为一到两个层级的限制。基本上,任何复杂结构都可以文档形式体现,并使用此类管理系统加以存储。

    尽管自身非常强大,且能够通过个别键进行记录查询,但文档数据库管理系统也有着自己的问题与短板。例如,检索一条记录的值意味着需要对记录的全部内容进行搜索,更新亦是如此——这将极大影响执行性能。

    图形数据库

    最后来介绍最为有趣的NoSQL数据库管理系统类型——图形数据库。

    图形DBMS模式会以完全不同的方式进行数据表示。其采用树状结构(即图形),其中包含大量节点与边界,且彼此间通过关系实现对接。

    与数学计算类似,特定操作能够在此类模式中得以轻松实现,而这主要归功于相关信息片段的分组与连接方式(例如相关联系人)。

    这类数据库常用于需要具备明确边界并实现必要连接的应用场景。例如当我们注册任何形式的社交网站时,其中都会提供“与朋友的朋友结识”之类的功能,这正是图形数据库管理系统的最佳施展平台。

    键/值NoSQL数据库管理系统

    键/值数据存储拥有出色的性能表现、易用性及可扩展能力。

    主流键/值NoSQL数据库管理系统

    部分主流键/值数据存储方案包括:

    • Redis:

    内存内键/值存储且提供持久性选项。

    • Riak:

    高分布式副本型键/值存储方案。

    • Memcached / MemcacheDB:

    基于键/值存储机制的分布式内存方案。

    合适用途

    合适的用途包括:

    • 缓存:

    快速存储数据以备未来使用。

    • 队列:

    部分键/值存储机制(例如Redis)支持列表、集合以及队列等功能。

    • 分发信息/任务:

    可用于实现Pub/Sub

    • 保存实时信息。

    需要保持状态的应用可以利用键/值存储轻松实现。

    列式NoSQL数据库管理系统

    列式数据存储方案非常强大且能够用于保存规模庞大的重要数据。尽管在“灵活性”方面有所欠缺,但其主要卖点在于高功能性与高性能水平。

    主流列式数据库

    主流列式数据库包括:

    • Cassandra:

    基于BigTable与DynamoDB的列式数据存储方案。

    • HBase:

    源自BigTable设计灵感且面向Apache Hadoop的数据存储方案。

    合适用途

    合适用途包括:

    • 保存非结构化非易失性信息:

    如果需要对大量任意集合及值进行长期保存,那么列式数据存储方案将是最好的选择。

    • 扩展能力:

    列式数据存储方案天然拥有出色的可扩展能力,且能够处理总量极为庞大的信息。

    文档NoSQL数据库管理系统

    文档数据存储方案非常适用承载大量不相关且结构差别很大的复杂信息。

    主流文档数据库

    主流文档数据库包括:

    • Couchbase:

    基于JSON且与Memcached相兼容的文档数据存储方案。

    • CouchDB:

    一款突破性的文档数据存储方案。

    • MongoDB:

    一款极具人气且功能丰富的数据库选项。

    合适用途

    合适用途包括:

    • 嵌套信息:

    文档数据存储方案允许大家处理深层嵌套的复杂数据结构。

    • JavaScript友好性:

    文档数据存储方案的最大特色在于其与应用程序的对接方式:采用具备JavaScript友好性的JSON。

    图形NoSQL数据库管理系统

    图形数据存储方案能够提供与前几种DBMS完全不同的功能。

    主流图形数据库

    主流图形数据库包括:

    • OrientDB:

    一款速度很快的图形与文档混合NoSQL数据存储方案,由Java编写而成且拥有多种操作模式。

    • Neo4J:

    一款无模式高人气Java图形数据存储方案。

    合适用途

    合适用途包括:

    • 处理复杂的关系型信息:

    正如之前提到,图形数据库能够极为高效地轻松地处理复杂的关系型信息,例如两个条目间的对接以及与其相关联的其它更多条目。

    • 分类的建模与处理:

    图形数据库擅长处理任何涉及关系的状况。数据建模以及立足于关系实现信息分类都属于此类情况。

    NoSQL DMBS与关系DBMS之比较

    为了更加明确地了解NoSQL解决方案与关系数据库管理系统的不同,让我们对二者进行比较:

    NoSQL数据库合适用途

    • 规模是关键:

    如果需要处理大量数据集,那么可扩展能力更强的NoSQL家族将更胜一筹。

    • 速度:

    NoSQL数据库通常速度更快,特别是在写入层面。其选取速度通常也非常出色,且具体取决于NoSQL数据库本身以及所查询数据的类型。

    • 无模式设计:

    关系DBMS从设计之初就需要结构与之配合。而NoSQL解决方案则拥有更可观的灵活空间。

    • 自动(或者轻松)实现复制/规模伸缩:

    NoSQL数据库发展迅猛且立足于当下——各厂商都在努力解决各类常见问题,特别是复制与规模伸缩需求。与RDBMS不同,NoSQL解决方案能够轻松实现集群内规模调整。

    • 多种选项:

    在选择NoSQL数据存储方案时,可供挑选的模式多种多样。大家可以根据之前提到的特性,立足于实际数据类型做出决策。

    本文来源自DigitalOcean Community。英文原文:A Comparison Of NoSQL Database Management Systems And Models By O.S. Tezer

    翻译:diradw

    展开全文
  • 本教程,我们将探讨几种高人气关系数据库管理系统(简称RDBMS)间的异同,并探索它们特性与功能方面的差别,从而更为科学地选择合适的数据库方案。词汇表1. 数据库管理系统 关系数据库管理系统 关系与数据类型...

    提供:ZStack云计算

    内容介绍

    关系数据库的历史相当悠久,而其崛起要归功于关系模型的广泛普及,特别是在关键性数据处理领域的应用。

    在本教程中,我们将探讨几种高人气关系数据库管理系统(简称RDBMS)间的异同,并探索它们在特性与功能方面的差别,从而更为科学地选择合适的数据库方案。

    词汇表

    1. 数据库管理系统

    1. 关系数据库管理系统
    2. 关系与数据类型
    3. 热门与重要关系数据库

    2. SQLite

    1. SQLite所支持的数据类型
    2. SQLite的优势
    3. SQLite的缺点
    4. 何时使用SQLite
    5. 何时不适合使用SQLite

    3. MySQL

    1. MySQL支持的数据类型
    2. MySQL的优势
    3. MySQL的缺点
    4. 何时使用MySQL
    5. 何时不适合使用MySQL

    4. PostgreSQL

    1. PostgreSQL支持的数据类型
    2. PostgreSQL的优势
    3. PostgreSQL的缺点
    4. 何时使用PostgreSQL
    5. 何时不适合使用PostgreSQL

    数据库管理系统

    数据库负责以逻辑方式建立存储空间模型,从而容纳各类不同信息(数据)。每种数据库(除无模式数据库)都提供数据处理结构。数据库管理系统则属于对不同种类及大小的数据库进行管理的应用(或者库)。

    注意:要了解更多与数据库管理系统相关的内容,请参阅了解数据库一文。

    关系数据库管理系统

    关系数据库系统负责实现用于数据处理的关系模型。关系模型通过将数据定义为表内属性的相关条目来实现存储信息塑造。

    这类数据库管理系统要求其结构(例如表)必须进行定义,从而容纳并处理数据。在表中,每一列(例如属性)都容纳一种不同类型的信息(例如数据类型)。而数据库中的每条记录都以key作为惟一标识,借此将其翻译为归属于表内的某一行。各行的属性序列共同构成表内的一列——这些元素组合起来,就成为完整的关系模型。

    关系与数据类型

    关系可以理解为一系列共同代表数据库与所保存信息的属性系列。这种识别与收集方法类型正是关系数据库的起效基础。

    在定义某表进行插入记录时,每个构成记录的元素(即属性)都必须匹配所定义的数据类型(例如整数或数据等)。不同的关系数据库管理系统采用不同的数据类型——且其有时无法直接互换。

    正如我们之前所提到,关系数据库往往需要遵循多种约束条件。事实上,约束条件构成了关系的核心所在。

    注意:如果大家需要处理与工作无关的随机信息(例如文件),那么比较适合使用NoSQL(无模式数据库)。如果大家对此抱有兴趣,请参阅NoSQL数据库管理系统对比

    热门与重要关系数据库

    在本教程中,我们将介绍三款高人气且重要的开源关系数据库管理系统。

    • SQLite:

    一套非常强大的嵌入式关系数据库管理系统。

    • MySQL:

    最为强大且应用广泛的RDBMS。

    • PostgreSQL:

    最先进且兼容SQL的开源对象型RDBMS。

    注意:开源应用绝大多数供大家免费使用。如果大家对DBMS感兴趣,不妨了解更多fork项目,例如MariaDB

    SQLite

    SQLite是一套出色的库,以嵌入应用的方式起效。作为一款独立的、基于文件的数据库,SQLite提供一系列强大工具以处理各类数据,约束较少且较托管型、基于进程(服务器)的关系数据库更为易用。

    当应用使用SQLite时,其以整合方式实现功能并直接包含数据的文件(即SQLite数据库),而非通过各类接口(即端口与套接)进行通信。通过这种方式,SQLite拥有极为出色的速度与效率表现。

    SQLite支持的数据类型

    • NULL:

    NULL值。

    • INTEGER:

    包含符号的整数,根据具体值大小存储为1、2、3、4、6或8字节中。

    • REAL:

    浮点值,存储为一个8字节IEEE浮点数。

    • TEXT:

    文本字符串,利用数据库编码(UTF-8、UTF-16BE或者UTF-16LE)进行存储。

    • BLOB:

    数据blob,作为输入结果直接存储。

    注意:要了解更多与SQLite数据类型与SQLite类型亲和力相关的内容,请参阅官方说明文档

    SQLite的优势

    • 基于文件:

    整套数据库由磁盘上的单一文件构成,从而实现良好的可移植性。

    • 标准识别:

    尽管看似较为简单的数据库实现方案,但SQLite同样使用SQL。其省略了一些功能(RIGHT OUTER JOIN与FOR EACH STATEMENT等),但同时也增添了其它一些功能。

    • 适于开发及测试:

    在大多数应用的开发过程中,人们往往需要一套解决方案实现其并发扩展。SQLite凭借着自身丰富的功能集,能够满足各类开发需求,同时将一切数据融入单一文件且提供基于C的链接库。

    SQLite的缺点

    • 不具备用户管理机制:

    先进数据库往往提供用户支持能力,例如对各数据库及表的访问权限做出管理。但SQLite由于自身特性及用途所限,不提供此类功能。

    • 缺少额外性能提升空间:

    同样是由于设计所限,SQLite无法实现额外的性能调整。其库易于调整及易于使用,但正是由于这一简单性,其从技术角度不可能进一步改善——但必须强调,其默认性能已经非常出色。

    何时使用SQLite

    • 嵌入式应用:

    所有无需扩展且需要移植的应用,例如单用户本地应用、移动应用或者游戏。

    • 磁盘访问更换:

    多数情况下,需要面向磁盘直接读取/写入文件的应用能够从SQLite中发挥结构化查询语言(SQL)的各类功能与便利性。

    • 测试:

    可对大多数应用进行业务逻辑测试(即应用的主要作用:功能)。

    何时不适合使用SQLite

    • 多用户应用:

    如果大家需要构建多客户端访问且立足同一数据库的应用,那么功能刘备的RDBM(例如MySQL)更为合适。

    • 要求大量写入的应用:

    SQLite的一大缺点在于写入操作能力较差。此DBMS只允许同时存在一项写入操作,因此数据吞吐能力有限。

    MySQL

    MySQL是目前人气最高且应用最为广泛的数据库服务器。其功能丰富,且作为开源产品支持多种网站及应用。MySQL易于上手,开发者能够通过互联网找到大量关于该数据库的信息。

    注意:由于该产品人气极高,因此拥有大量与之配合的第三方应用、工具与集成库可供选择。

    尽管并未实现全部SQL标准,但MySQL仍然提供相当丰富的功能。作为独立数据库服务器,各应用能够与MySQL守护进程通信以访问数据库本身——这一点与SQLite不同。

    MySQL支持数据类型

    • TINYINT:

    极小整数。

    • SMALLINT:

    较小整数。

    • MEDIUMINT:

    中等整数。

    • INT或INTEGER:

    正常整数。

    • BIGINT:

    大型整数。

    • FLOAT:

    较小(单精度)浮点数。必须搭配符号。

    • DOUBLE, DOUBLE PRECISION, REAL:

    中等大小(双精度)浮点数。必须搭配符号。

    • DECIMAL, NUMERIC:

    无封装浮点数,必须搭配符号。

    • DATE:

    日期。

    • DATETIME:

    日期与时间结合。

    • TIMESTAMP:

    时间戳。

    • TIME:

    时间。

    • YEAR:

    年份,由2或4个数字构成(默认为4位数字)。

    • CHAR:

    固定长度字符串,以空格填充以始终保持固定长度。

    • VARCHAR:

    可变长度字符串。

    • TINYBLOB, TINYTEXT:

    BLOB或者TEXT列,最大长度为255(2^8-1)个字符。

    • BLOB, TEXT:

    BLOB或者TEXT列,最大长度为65535(2^16-1)个字符。

    • MEDIUMBLOB, MEDIUMTEXT:

    BLOB或者TEXT列,最大长度为16777215 (2^24 - 1)个字符。

    • LONGBLOB, LONGTEXT:

    BLOB或者TEXT列,最大长度为4294967295 (2^32 - 1)个字符。

    • ENUM:

    枚举。

    • SET:

    集。

    MySQL的优势

    • 易于使用:

    MySQL易于安装,且能够对接多种第三方工具,包括视觉工具(即GUI),能够大大简化上手难度。

    • 功能丰富:

    MySQL支持多种SQL功能,包括直接与间接支持。

    • 安全性:

    包含多种安全功能,其中还包括部分先进功能。

    • 可扩展性且极为强大:

    MySQL能够处理大量数据,因此可在必要时规模化使用。

    • 速度:

    由于放弃了部分标准,因此MySQL能够高效运作且具备速度优势。

    MySQL的缺点

    • 已知局限:

    从设计角度讲,MySQL并非面向全部需求,因此其中的某些功能局限可能影响到特定应用。

    • 可靠性问题:

    MySQL中的特定功能处理方式(例如引用、事务与审计)相较于其它RDBMS在可靠性方面较为薄弱。

    • 发展停滞:

    尽管MySQL仍然是一款开源产品,但其基于MySQL构建因此存在一定法律争论。MySQL标准安装版本之上的其它衍生成果还包括MariaDB等等。

    何时使用MySQL

    • 分布式操作:

    如果大家需要的功能超出SQLite的范畴,则可将MySQL作为独立数据库服务器纳入部署堆栈,从而提供更多易于使用的先进功能。

    • 高安全性:

    MySQL的安全功能能够轻松为数据访问与使用提供安全功能。

    • 网站与Web应用:

    大多数网站与Web应用都能够与MySQL顺畅协作。这款灵活且具备一定扩展能力的工具易于使用及管理,适合长期运行并维护。

    • 定制化解决方案:

    如果大家需要一套高度定制的特定解决方案,MySQL凭借着丰富的配置设置及操作模式足以成为理想的选项。

    何时不适合使用MySQL

    • SQL合规性:

    由于MySQL并不适合实现完整的SQL标准,因此这款工具并完全符合SQL合规要求。如果大家需要使用此类RDBMS,则应选择其它方案。

    • 并发性:

    尽管MySQL与某些存储引擎能够实现良好的读取操作,但并发读取-写入操作可能效果不佳。

    • 功能缺失:

    MySQL缺少特定功能,例如全文搜索。

    PostgreSQL

    PostgreSQL是一款高级开源对象关系数据库管理系统,其主要目标指向标准合规与可扩展能力。PostgreSQL,或者简称Postgres,采用并修订各项ANSI/ISO SQL标准。

    相较于其它RDBMS,PostgreSQL的特色在于支持各类面向对象及/或关系数据库功能,例如事务可靠性,即原子性、一致性、隔离性与持久性(简称ACID)。

    由于具备强大的底层技术,Postgres能够高效处理多种任务。由于其采用多版本并发控制(简称MVCC)机制,因此拥有良好的并发性能,同时确保ACID原则。

    PostgreSQL为高度可编程数据库,因此具备良好的扩展能力,各类定制化规程被称为“存储规程”。用户可以创建此类功能以简化需要重复的、复杂的数据库操作。

    尽管此DBMS不像MySQL那样知名,但仍有大量第三方工具及库可与之协作。如今PostgreSQL已经成为多种操作系统默认软件包管理器内的组成部分。

    PostgreSQL支持的数据类型

    • bigint:

    带符号的8字节整数

    • bigserial:

    自增8字节整数

    • bit [(n)]:

    固定长度的bit串

    • bit varying [(n)]:

    可变长度的bit串

    • boolean:

    逻辑Boolean(true/false)

    • box:

    平面上的矩形框

    • bytea:

    二进制数据(“byte array(字节数组)”)

    • character varying [(n)]:

    可变长度字符串

    • character [(n)]:

    固定长度字符串

    • cidr:

    IPv4或IPv6网络地址

    • circle:

    平面上的循环

    • date:

    日历日期(年、月、日)

    • double precision:

    双精度浮点数(8字节)

    • inet:

    IPv4或IPv6主机地址

    • integer:

    带符号4字节整数

    • interval [fields] [(p)]:

    时间跨度

    • line:

    平面上的无限延长线

    • lseg:

    平面上的线段

    • macaddr:

    MAC(媒体访问控制)地址

    • money:

    货币金额

    • numeric [(p, s)]:

    可选精度精确数字

    • path:

    平面上的几何路径

    • point:

    平面上的几何点

    • polygon:

    平面上的闭合几何路径

    • real:

    单精度浮点数(4字节)

    • smallint:

    有符号2字节整数

    • serial:

    自增4字节整数

    • text:

    可变长度字符串

    • time [(p)] [without time zone]:

    天内时间(无时区)

    • time [(p)] with time zone:

    天内时间(包括时区)

    • timestamp [(p)] [without time zone]:

    日期与时间(无时区)

    • timestamp [(p)] with time zone:

    日期与时间(包括时区)

    • tsquery:

    文本搜索查询

    • tsvector:

    文本搜索文档

    • txid_snapshot:

    用户级别事务ID快照

    • uuid:

    通用惟一标识符

    • xml:

    XML数据

    PostgreSQL的优势

    • 一套开源SQL标准合规RDBMS:

    PostgreSQL是一款开源、免费但还不够强大的关系数据库管理系统。

    • 强大的社区:

    PostgreSQL背后拥有忠诚且经验丰富的技术社区,能够全天候为用户免费提供专业知识支持。

    • 强大的第三方支持:

    除了先进的自身功能之外,PostgreSQL还拥有大量出色的开源第三方工具,能够帮助其完成管理系统的设计、管理与使用。

    • 可扩展性:

    PostgreSQL可利用存储规程实现编程化扩展,这也是先进RDBMS的必要能力之一。

    • 对象性:

    PostgreSQL并不只是一套关系数据库管理系统,同时亦拥有对象性——支持嵌套等特性。

    PostgreSQL的缺点

    • 性能:

    对于读取操作强度较大的应用,PostgreSQL显得不太擅长,性能水平远低于MySQL等解决方案。

    • 人气:

    由于此工具的定位,其缺少广泛的受众基础。尽管部署较为广泛,但仍然可能影响技术支持的丰富性。

    • 托管支持:

    由于以上原因,用户往往较难找到合适的PostgreSQL实例托管或服务供应商。

    何时使用PostgreSQL

    • 数据完整性:

    当可靠性与数据完整性最为优先时,PostgreSQL绝对是更好的选择。

    • 复制的定制化规程:

    如果大家希望自己的数据库能够执行定制化规程,PostgreSQL比较适合。

    • 集成性:

    未来如果有必要对整体数据库系统进行迁移,PostgreSQL拥有出色的合规性且易于完成转换。

    • 复杂的设计:

    相较于其它开源与免费RDBMS实现方案,PostgreSQL提供的大部分功能与机制能够很好地承载复杂的实际需求。

    何时不适合使用PostgreSQL

    • 速度:

    如果大家需要读取操作的调整性,PostgreSQL并不合适。

    • 设置简单性:

    除非大家要求绝对的数据完整性、ACID合规或者复杂设计,否则PostgreSQL困难的设置流程并不适合选用。

    • 复制:

    除非大家愿意耗费时间、精力与资源处理这项工作,否则MySQL更适合数据库与系统管理经验较少的用户。

    本文来源自DigitalOcean Community。英文原文:SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems By O.S. Tezer

    翻译:diradw

    展开全文
  • 数据库管理系统(DBMS)

    2009-07-31 22:55:39
    5、数据库系统原理文档记录:设计报告; 6、用户名、密码均源程序 (DBMS) 下的user.ini文件,超级管理员用户名:root,密码:root。 注: 1、“查询优化”按钮只使用优化技术时才使用。由于时间关系,没有...
  • 利用数据库管理系统(DBMS)软件就可能实现一个综合的数据库。 早70年代初期就出现了DBMS技术,但是直到70年代末期仍未得到普遍的接受。早期的DBMS“软件包”效率不高,实际上比传统的文件处理的要求更高的硬件能力...
  • 各院系(或部门)主要职责是对本部门员工的论文、科研项目、科研成果、奖励等信息进行审核后输入到本系统数据库中,查询本部门某时间内的科研信息、统计科研情况、打印相关资料等,同时对本部门的错误录入信息进行...
  • 构建一个医院数据库管理系统,用MySql和Java实现。结果比医院实际需要的要小得多,但同时也比医生要求的要多。 HDBMS/src/HDBMS Info/下提供了ERD、UML、登录系统的初始凭据,以及可以导入MySql的数据库备份(带有...
  • 1)数据库管理系统中建立各关系模式对应的库表,并设计需的视图、索引等。 2)能对各库表进行输入、修改、删除、添加、查询、打印等基本操作。 3)能根据学生要求借阅图书库中有的书,并完成一次借阅任务后汇总已...
  • Python数据库处理

    2020-06-12 12:24:10
    这是数据库管理系统(DBMS)。 DBMS是一个软件系统,使您可以创建,存储,修改,检索和以其他方式处理数据库的数据。 此类系统的大小也有所不同,从仅您的个人计算机上运行的小型系统到大型机上运行的大型...
  • 关于基于性能,安全性等方面的多个数据库管理应用程序的比较,需要做大量的工作,但是基于提供的数据评估这些数据库的情况下,我们可获得的信息有限。 这项研究将主要着眼于在处理JSON的数据时,这两种数据库...
  • 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个...
  • 本系统研究的内容是《企业人事信息管理系统》,随着我国社会主义市场经济的发展和改革开放的不断深入,计算机的应用已遍及国民经济的各个领域,计算机来到我们的工作和生活,改变着我们和周围的一切。以前,...
  • 药店管理系统|数据库设计

    千次阅读 2019-06-14 17:30:54
    数据库-药店管理系统 选题背景 随着科技的发展、社会的进步以及人们生活水平的提高,现代化的生活方式下,人们对生活各个方面的需求都增加。快节奏的生活方式以及激烈的竞争带来的压力也让人们的身体经常处于...
  • 数据库《小型超市管理系统

    热门讨论 2011-01-21 13:17:36
    最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。 1.3本选题的设计背景 超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。面对不同种类的信息,需要...
  • 招生管理系统中有如下事务: 考生投档 考生数据下载 生成考生通知书 考生信息发布 工作人员根据考生要求提供服务 工作人员进行查询,修改信息 对于读者来说,要求地服务都是直接传递给工作人员的,真正...
  • 再次体会到测试编程中所占的比重!50%以上时间做测试! 问题1.当jdbc处理"select * from table"查询语句时,无法从mysql读取中文标签。 解决:读取时全部改成(ResultSet)st.getString(int column);使用列名,而不...
  • 安全性是所有数据库管理系统的一个重要特征。理解安全性问题是理解数据库管理系统安全性机制的前提。 最近和同事做数据库权限清理的事情,主要是删除一些账号;取消一些账号的较大的权限等,例如,有一些有db_...
  • 数据库管理和数据库设计 医院管理系统适用于任何医院,以取代其现有的基于纸张的手动系统,以便新系统将以有效和具有成本效益的方式控制所有信息。 问题陈述:当前使用手动系统管理和维护关键信息的医院处理大量...
  • 再就业信息管理系统,数据信息和处理过程还需要通过数据字典来描述。本文的数据字典,主要对数据流,数据存储和处理过程进行说明。 (1)主要数据流定义 1)职工情况 位置:职工信息 定义: 职工情况=姓名+性别+...
  • ORACLE数据库智能化管理系统2012 软件介绍 序言 ORACLE数据库管理们: 你们还处理日常大量数据,天天写过多的SQL语句而烦恼吗? 还为由于没有面面具到的软件来汇制想要的日常数据报表而烦恼吗? 还为查找...
  • 数据:是对事物描述的...数据库管理系统:管理数据库的软件3.用户或应用程序4.数据库管理员(DBA):进行数据库的规划、设计、协调、维护和管理的人员或集体1.数据库系统的规划2.数据库设计3.数据库的建立4.数据库的运
  • 业务流程调查的主要任务是对系统的组织结构和功能进行分析的基础上,调查系统中各环节的业务活动,掌握业务的内容,作用及信息的输入,输出,数据存储和信息的处理方法及过程等,对原系统业务处理过程的有关资料...
  • ORACLE数据库智能化管理系统2009软件介绍 序言 ORACLE数据库管理们: 1. 你们还处理日常大量数据,天天写过多的SQL语句而烦恼吗? 2. 还为由于没有面面具到的软件来解决日常数据报表而烦恼吗? 3. 还为查找...
  • 数据库对于计算机界人士来讲应该是个老话题,但数据库技术涉及、处理的一些问题却是计算机的核心、根本问题。因为计算机最终是信息的处理数据库就是用来管理具有大量的、持久的和共享的特性的数据。随着计算机科
  • 数据库技术研究的问题是如何科学的组织和存储数据,在数据库系统中减少数据存储冗余,实现数据共享,以及如何保障数据安全、有效地获取和处理。 1.数据库技术的发展史 2.数据库系统介绍 3.数据模型 数据库技术的...
  • 数据库课程设计教务管理系统

    热门讨论 2009-06-24 14:05:38
    教务管理工作关系到高校教学秩序的稳定和教学质量的提高,关系到高校的发展和人才的培养,教务管理在高校占有相当重要的地位。 随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统的教务管理方法、手段...
  • ORACLE数据库智能化管理系统2009 软件介绍 序言 ORACLE数据库管理们: 1. 你们还处理日常大量数据,天天写过多的SQL语句而烦恼吗? 2. 还为由于没有面面具到的软件来解决日常数据报表而烦恼吗? 3. 还为查找...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,208
精华内容 883
关键字:

在数据库管理系统中所处理