分布式 DBMS - 概念


为了任何组织的正常运作,都需要一个维护良好的数据库。不久前,数据库本质上是集中式的。然而,随着全球化的加剧,组织往往在全球范围内实现多元化。他们可能选择将数据分布在本地服务器而不是中央数据库上。由此,出现了分布式数据库的概念。

本章概述了数据库和数据库管理系统(DBMS)。数据库是相关数据的有序集合。DBMS 是一个用于数据库的软件包。有关 DBMS 的详细研究,请参阅我们名为“学习 DBMS”的教程。在本章中,我们修改了主要概念,以便能够轻松地完成DDBMS的学习。涵盖的三个主题是数据库模式、数据库类型和数据库操作。

数据库及数据库管理系统

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

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

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

DBMS 应用领域示例

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

DBMS 包的示例

  • MySQL
  • 甲骨文
  • SQL服务器
  • 数据库
  • 福克斯Pro
  • PostgreSQL 等

数据库模式

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

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

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

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

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

数据库管理系统的类型

DBMS 有四种类型。

分层数据库管理系统

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

分层数据库管理系统

网络数据库管理系统

网络 DBMS,其中数据库中的数据之间的关系是网络形式的多对多类型。由于存在大量的多对多关系,结构通常比较复杂。网络 DBMS 使用“图”数据结构进行建模。

网络数据库管理系统

关系型数据库管理系统

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

例如 - 学生关系 -

关系型数据库管理系统

面向对象的数据库管理系统

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

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

面向对象的数据库管理系统

分布式数据库管理系统

分布式数据库是分布在计算机网络或互联网上的一组互连数据库。分布式数据库管理系统(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';
  • 修改数据库意味着改变表的结构。然而,表的修改受到许多限制。

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

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

    示例- 要删除当前年级的所有学生,当他们昏倒时,我们使用 SQL 命令 -

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

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

DROP TABLE STUDENT;