当前位置: 首页 > article >正文

SQL Server 架构、数据库文件组和数据库对象

1. SQL Server 架构

SQL Server 架构分为物理架构和逻辑架构。

1.1 物理架构

SQL Server 的物理架构主要组件:

  • 数据库文件:每个数据库由至少两个文件组成:主数据文件(.mdf)和日志文件(.ldf)。此外,还可以有一个或多个辅助数据文件(.ndf)。

    • 主数据文件(.mdf):包含数据库的启动信息和主要数据。
    • 辅助数据文件(.ndf):可选,用于拆分数据以提高性能或管理大型数据库。
    • 日志文件(.ldf):记录数据库的所有事务,确保数据的完整性和恢复。
  • 内存架构:包括缓冲池(Buffer Pool),用于缓存数据页和索引页以提高访问速度。

  • 进程架构:包括 SQL Server 的各个进程和线程,如 SQL Server 主服务(sqlservr.exe)和 SQL Server 代理服务(sqlagent.exe)。

1.2 逻辑架构

SQL Server 的逻辑架构主要组件:

  • 数据库:SQL Server 实例中的一个或多个数据库,每个数据库都包含一组表和其他数据库对象。
  • :存储数据的基本结构,包含行和列。
  • 索引:用于加速数据检索的结构。
  • 视图:虚拟表,基于 SQL 查询结果集。
  • 存储过程:预编译的 SQL 代码块,用于执行特定任务。
  • 触发器:自动在特定事件(如插入、更新、删除)发生时执行的存储过程。

2. 数据库文件组

数据库文件组是 SQL Server 中用于管理数据文件的逻辑单元。它们将数据库文件组织在一起,以便更好地管理和优化性能。

2.1 文件组的定义

文件组是数据库文件的逻辑集合。每个文件组包含一个或多个数据文件。文件组分为以下两种类型:

  • 主文件组(Primary Filegroup):包含主数据文件(.mdf)和任何其他文件。每个数据库必须有一个主文件组。
  • 用户定义文件组(User-defined Filegroup):由用户创建,用于存储特定数据。

2.2 创建和管理文件组

创建文件组的语法如下:

ALTER DATABASE MyDatabase
ADD FILEGROUP MyFilegroup;

在文件组中添加文件的语法如下:

ALTER DATABASE MyDatabase
ADD FILE 
(
    NAME = MyDataFile,
    FILENAME = 'C:\Data\MyDataFile.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
) 
TO FILEGROUP MyFilegroup;

将表或索引放置在特定文件组中的语法如下:

CREATE TABLE MyTable
(
    ID INT PRIMARY KEY,
    Name NVARCHAR(50)
) ON MyFilegroup;

3. 数据库对象

3.1 表

表是数据库中存储数据的基本结构。创建表的语法如下:

CREATE TABLE Employees
(
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    HireDate DATE
);

3.2 视图

视图是基于 SQL 查询结果集的虚拟表。创建视图的语法如下:

CREATE VIEW EmployeeNames
AS
SELECT FirstName, LastName
FROM Employees;

3.3 索引

索引用于加速数据检索。创建索引的语法如下:

CREATE INDEX IX_Employees_LastName
ON Employees (LastName);

3.4 存储过程

存储过程是预编译的 SQL 代码块,用于执行特定任务。创建存储过程的语法如下:

CREATE PROCEDURE GetEmployeeByID
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees
    WHERE EmployeeID = @EmployeeID;
END;

3.5 触发器

触发器是在特定事件发生时自动执行的存储过程。创建触发器的语法如下:

CREATE TRIGGER trgAfterInsert
ON Employees
AFTER INSERT
AS
BEGIN
    PRINT 'A new employee has been added.';
END;

4. 数据库类型和默认数据库的作用

4.1 数据库类型

SQL Server 支持多种数据库类型,主要包括:

  • 系统数据库:SQL Server 自带的数据库,用于管理 SQL Server 实例和系统任务。

    • master:存储所有系统级信息。
    • model:新数据库的模板。
    • msdb:用于 SQL Server 代理服务和计划任务。
    • tempdb:存储临时表和临时数据。
  • 用户数据库:用户创建的数据库,用于存储应用程序数据。

4.2 默认数据库的作用

默认数据库是用户连接到 SQL Server 实例时,如果没有指定数据库,将自动连接到的数据库。默认数据库通常设置为 master,但也可以为每个用户单独设置。

设置用户默认数据库的语法如下:

ALTER LOGIN [username] WITH DEFAULT_DATABASE = [database_name];

默认数据库的作用主要包括:

  • 简化连接:用户无需每次连接时都指定数据库。
  • 安全性:限制用户连接到特定数据库,防止未经授权的访问。

结论

通过合理设计和管理这些组件,可以显著提高数据库的性能和可维护性。


http://www.kler.cn/a/464340.html

相关文章:

  • 掌握RabbitMQ:全面知识点汇总与实践指南
  • java中static和const和final的区别
  • 【新教程】华为昇腾NPU的pytorch环境搭建
  • 46. Three.js案例-创建颜色不断变化的立方体模型
  • 数字PWM直流调速系统设计(论文+源码)
  • Git命令行的使用
  • 自动化删除work32挖矿脚本
  • windows C#-字符串和字符串字面量(一)
  • 力扣hot100——图论
  • Cauchy-Schwarz不等式:向量内积的“上限卫士”,帮你衡量向量有多“同向”
  • 数据挖掘——神经网络分类
  • df.replace({‘b‘: ‘.‘}, {‘b‘: np.nan})
  • SpringMVC(四)响应
  • 【Go学习】-01-1-入门及变量常量指针
  • R语言基础| 广义线性模型
  • 【可实战】需求分析-测试计划↓-测试设计-测试执行-测试总结↓(包含测试计划、测试总结模板,以公司要求为准)
  • 【Unity3D】基于UGUI——简易版 UI框架
  • PgSQL如何用cmd命令行备份和还原数据库
  • SQLALchemy如何将SQL语句编译为特定数据库方言
  • Windows11 安卓子系统存储位置更改
  • 论文分享—供应链不安全:软件物料清单(SBOM)解决方案中缺乏完整性保护
  • Linux中sed命令的使用技巧
  • 计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群
  • httpx.AsyncClient报错ProxyError: 504 Gateway Time-out
  • [CTF/网络安全] 攻防世界 Web_php_unserialize 解题详析
  • [算法] [leetcode-349] 两个数组的交集