📜  分布式DBMS-概念

📅  最后修改于: 2021-01-07 05:22:32             🧑  作者: Mango


为了使任何组织正常运行,需要一个维护良好的数据库。在最近的过去,数据库本质上是集中的。但是,随着全球化的发展,组织在全球范围内趋向多样化。他们可能选择通过本地服务器而不是中央数据库分发数据。因此,到达了分布式数据库的概念。

本章概述了数据库和数据库管理系统(DBMS)。数据库是相关数据的有序集合。 DBMS是在数据库上工作的软件包。有关DBMS的详细研究,请参见我们的教程“学习DBMS”。在本章中,我们将修改主要概念,以便可以轻松进行DDBMS的研究。涵盖的三个主题是数据库架构,数据库类型和数据库操作。

数据库和数据库管理系统

数据库是为特定目的而构建的相关数据的有序集合。数据库可以被组织为多个表的集合,其中表代表现实世界的元素或实体。每个表都有几个不同的字段,它们代表实体的特征。

例如,公司数据库可以包括项目,员工,部门,产品和财务记录的表。 Employee表中的字段可以是Name,Company_Id,Date_of_Joining等。

数据库管理系统是程序的集合,这些程序可以创建和维护数据库。 DBMS作为软件包提供,可帮助定义,构建,处理和共享数据库中的数据。数据库的定义包括对数据库结构的描述。数据库的构建涉及将数据实际存储在任何存储介质中。操作是指从数据库检索信息,更新数据库并生成报告。数据共享有助于数据被不同的用户或程序访问。

DBMS应用领域的示例

  • 自动柜员机
  • 火车预订系统
  • 员工管理系统
  • 学生信息系统

DBMS软件包示例

  • 的MySQL
  • 甲骨文
  • SQL服务器
  • 数据库
  • 狐狸
  • PostgreSQL等

数据库架构

数据库模式是对数据库的描述,它是在数据库设计期间指定的,并且不经常更改。它定义了数据的组织,它们之间的关系以及与它们相关联的约束。

数据库通常通过三模式架构ANSISPARC架构表示。该体系结构的目标是将用户应用程序与物理数据库分开。三个级别是-

  • 具有内部架构的内部级别-它描述了物理结构,内部存储的详细信息以及数据库的访问路径。

  • 具有概念模式的概念级别-它描述了整个数据库的结构,同时隐藏了数据物理存储的细节。这说明了实体,属性及其数据类型和约束,用户操作和关系。

  • 具有外部架构或视图的外部或视图级别-它描述了数据库中与特定用户或一组用户相关的部分,同时隐藏了其余数据库。

DBMS的类型

DBMS有四种类型。

分层DBMS

在分层DBMS中,建立数据库中数据之间的关系,以便一个数据元素作为另一个的下级存在。数据元素具有父子关系,并使用“树”数据结构建模。这些非常快速和简单。

分层DBMS

网络数据库管理系统

网络DBMS,其中数据库中数据之间的关系是网络形式的多对多类型。由于存在许多多对多关系,因此结构通常很复杂。网络DBMS使用“图形”数据结构建模。

网络数据库管理系统

关系数据库管理系统

在关系数据库中,数据库以关系的形式表示。每个关系都为一个实体建模,并表示为值表。在关系或表中,行称为元组,表示单个记录。列称为字段或属性,表示实体的特征属性。 RDBMS是最流行的数据库管理系统。

例如-学生关系-

关系数据库管理系统

面向对象的DBMS

面向对象的DBMS衍生自面向对象的编程范例模型。它们有助于表示存储在数据库中的一致数据以及执行程序中发现的瞬时数据。他们使用称为对象的小型可重用元素。每个对象都包含一个数据部分和一组对数据起作用的操作。通过指针访问对象及其属性,而不是将其存储在关系表模型中。

例如-简化的银行帐户面向对象的数据库-

面向对象的DBMS

分布式DBMS

分布式数据库是一组分布在计算机网络或Internet上的互连数据库。分布式数据库管理系统(DDBMS)管理分布式数据库并提供机制,以使数据库对用户透明。在这些系统中,数据有意地分布在多个节点之间,以便可以最佳地使用组织的所有计算资源。

DBMS上的操作

数据库的四个基本操作是创建,检索,更新和删除。

  • 创建数据库结构并用数据填充它-创建数据库关系涉及指定数据结构,数据类型和要存储的数据约束。

    示例-创建学生表的SQL命令-

CREATE TABLE STUDENT ( 
   ROLL INTEGER PRIMARY KEY, 
   NAME VARCHAR2(25), 
   YEAR INTEGER, 
   STREAM VARCHAR2(10) 
);
  • 一旦定义了数据格式,就根据该格式将实际数据存储在某些存储介质中。

    将单个元组插入到学生表中的示例SQL命令-

INSERT INTO STUDENT ( ROLL, NAME, YEAR, STREAM) 
VALUES ( 1, 'ANKIT JHA', 1, 'COMPUTER SCIENCE');
  • 从数据库中检索信息-通常检索信息包括选择表的子集或一些计算已经完成后,从表中显示的数据。这是通过查询表来完成的。

    示例-要检索计算机科学流的所有学生的姓名,需要执行以下SQL查询-

SELECT NAME FROM STUDENT 
WHERE STREAM = 'COMPUTER SCIENCE';
  • 更新信息存储并修改数据库结构–更新表涉及用新值更改现有表行中的旧值。

    示例-SQL命令将流从电子设备更改为电子设备和通信-

UPDATE STUDENT 
SET STREAM = 'ELECTRONICS AND COMMUNICATIONS' 
WHERE STREAM = 'ELECTRONICS';
  • 修改数据库意味着更改表的结构。但是,表的修改受到许多限制。

    示例-要向学生表添加新的字段或列(例如地址),我们使用以下SQL命令-

ALTER TABLE STUDENT 
ADD ( ADDRESS VARCHAR2(50) ); 
  • 整体上删除或存储信息表–删除特定信息涉及从满足特定条件的表中删除选定的行。

    例如-要删除谁是4年时,目前他们正在传递出所有学生,我们使用SQL命令-

DELETE FROM STUDENT 
WHERE YEAR = 4;
  • 或者,可以从数据库中删除整个表。

    示例-要完全删除学生表,使用的SQL命令为-

DROP TABLE STUDENT;