分布式数据库管理系统 - 概念



任何组织的正常运作都需要一个维护良好的数据库。在过去,数据库通常是集中式的。然而,随着全球化的发展,组织往往遍布全球。他们可以选择将数据分布到本地服务器上,而不是集中到一个中央数据库中。于是,分布式数据库的概念应运而生。

本章概述了数据库和数据库管理系统(DBMS)。数据库是相关数据的有序集合。DBMS 是用于处理数据库的软件包。在我们的名为“学习 DBMS”的教程中提供了对 DBMS 的详细研究。在本章中,我们将回顾主要概念,以便于轻松学习 DDBMS。涵盖的三个主题是数据库模式、数据库类型和数据库操作。

数据库和数据库管理系统

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

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

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

DBMS 应用领域的示例

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

DBMS 软件包的示例

  • MySQL
  • Oracle
  • SQL Server
  • dBASE
  • FoxPro
  • PostgreSQL 等。

数据库模式

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

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

  • 内部级包含内部模式 - 它描述了数据库的物理结构、内部存储的细节以及数据库的访问路径。

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

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

DBMS 的类型

DBMS 有四种类型。

层次式 DBMS

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

Hierarchical DBMS

网络 DBMS

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

Network DBMS

关系型 DBMS

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

例如 - 学生关系 -

Relational DBMS

面向对象 DBMS

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

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

Object-oriented DBMS

分布式 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;
广告