Home Database Mysql Tutorial 数据库体系结构

数据库体系结构

Jun 07, 2016 pm 03:48 PM
Architecture about study database

关于SQLServer2005的学习笔记(二)——体系结构一 SQLServer2005引擎组件 首先让我们先来看看 SQL Server2005的引擎组件,SQLServer2005有四大组件:协议、关系引擎、存储引擎和SQLOS。 协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并

关于SQLServer2005 的学习笔记(二)——体系结构一

 

SQLServer2005 引擎组件

首先让我们先来看看 SQL Server2005 的引擎组件, SQLServer2005 有四大组件:协议、关系引擎、存储引擎和 SQLOS 。

数据库体系结构

协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并把它们转换成关系引擎能够识别的形式。它还能够获取任意查询、状态信息、错误信息的结果,然后把这些结果转换成客户端能够理解的性,最后再返回客户端。这一层的意义在于是应用程序访问 SQL Server 的接口。

关系引擎层能够接收 SQL 批处理,以及决定如何处理。它能够解析、编译和优化请求并检查批处理的执行过程,对于所需的数据会发送数据请求给存储引擎。这一层的主要是解析、编译和优化,生成语法树,并与存储引擎进行交互。

存储引擎则负责管理 所有的数据访问,包括基于事务的命令和大批量操作。这些操作包括备份 、批量插入和某些数据库 一致性检查。根据图上所示,主要是实现数据的访问、数据的缓存、锁的管理等操作。

SQLOS 则可以理解为 SQL Server2005 的操作系统,主要负责处理与操作系统之间的工作,如何进行内存分配、死锁检查、 I/O 操作等;很难说的清楚 SQLOS 是 SQLServer 自己独有的处理机制呢,还是调用 OS 来完成相关处理的。

 

SQLServer2000 引擎结构

我们再回头看看 SQLServer2000 的组件关系,在 SQLServer2000 联机帮助中基本上缺乏相关 detail 的体系架构图,该图主要也是描述了 SQLServer2000 中各个主要组件之间的层次和调用关系;而且我对 SQLServer2000的体系结构也缺乏深刻认识,再次不做详述。

数据库体系结构

 

Oracle 体系架构

对于 Oracle 而言, Oracle 并没有提供一个比较全面的组件架构,而是认为 Oracle 就是数据库和实例的集合,当然我们也可以把 SGA 各个组成部分、 Oracle 各种进程、各种数据库文件视为其组件。实例是由 SGA 和Oracle 进程构成的。每一个运行的 Oracle 数据库都与一个 Oracle 实例关联。 Oracle 数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制

数据库体系结构

数据库体系结构

 

实际上从总体结构上看, SQLServer2005 也是基于实例和关系数据库的集合,即通过每一个实例来管理若干数据库( Oracle 和 SQL Server 的数据库是概念不同的,从 Oracle 角度而言, SQL Server 的数据库概念比较怪异,理论上应该与 Oracle 的逻辑概念表空间是等效的),这些数据库总的来说都是为了满足某个应用需要和业务逻辑而组合起来的一个完整的应用,而每个数据库又是一个相对独立的业务逻辑单位,但他们是为了实现一个共同的目标,因此也不大适合进行分割成若干实例。

SQL Server2005 的引擎组件更注重的是数据库处理过程中的依次顺序,实际上从实例角度而言,两者可以说是类似的,比如都具备数据缓冲区、字典缓冲区、日志缓冲区、各种数据库进程或线程(数据库读写进程、日志读写进程、检查点)

 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos Jul 18, 2024 am 05:48 AM

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

How does Hibernate implement polymorphic mapping? How does Hibernate implement polymorphic mapping? Apr 17, 2024 pm 12:09 PM

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

An in-depth analysis of how HTML reads the database An in-depth analysis of how HTML reads the database Apr 09, 2024 pm 12:36 PM

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

How to handle database connection errors in PHP How to handle database connection errors in PHP Jun 05, 2024 pm 02:16 PM

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

How to connect to remote database using Golang? How to connect to remote database using Golang? Jun 01, 2024 pm 08:31 PM

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.

How to use database callback functions in Golang? How to use database callback functions in Golang? Jun 03, 2024 pm 02:20 PM

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

How to handle database connections and operations using C++? How to handle database connections and operations using C++? Jun 01, 2024 pm 07:24 PM

Use the DataAccessObjects (DAO) library in C++ to connect and operate the database, including establishing database connections, executing SQL queries, inserting new records and updating existing records. The specific steps are: 1. Include necessary library statements; 2. Open the database file; 3. Create a Recordset object to execute SQL queries or manipulate data; 4. Traverse the results or update records according to specific needs.

See all articles