Trong SQL Server, mọi cơ sở dữ liệu đều được lưu trữ dưới dạng những tệp vật lý trên ổ cứng, đảm bảo cho việc quản lý, truy xuất cũng như bảo vệ an toàn dữ liệu. Mỗi database thông thường bao gồm các loại file sau:
- Primary Data File (.mdf): Đây là tệp dữ liệu chính của database, chứa metadata của database và dữ liệu. Mỗi cơ sở dữ liệu chỉ có duy nhất một file .mdf.
- Secondary Data Files (.ndf): Đây là các file bổ sung. Database có thể có nhiều file .ndf hoặc không có file nào, tùy thuộc vào nhu cầu mở rộng của từng hệ thống.
- Có thể tạo nhiều file để lưu dữ liệu phân tán trên nhiều thư mục, phân vùng, ổ đĩa.
- Giúp cải thiện performance I/O, phân tán trên nhiều ổ đĩa.
- Quản lý database thông qua File Groups.
- Transaction Log File (.ldf): Tệp này lưu trữ toàn bộ lịch sử các giao dịch (transaction) diễn ra trong cơ sở dữ liệu, khôi phục dữ liệu về trạng thái trước đó trong trường hợp xảy ra lỗi. Mỗi database sẽ có ít nhất một file .ldf, trong trường hợp có nhiêu file:
- SQL server sẽ sử dụng tuần tự từng file để ghi transaction long cho database
- SQL server sẽ tự động chuyển qua file khác khi file hiện tại đã đầy.
- Do việc ghi tuần tự nên việc có nhiều file không làm tăng performace cho việc truy cập database, nó chỉ có tác dụng trong trường hợp gặp giới hạn về dung lượng lưu trữ và cần phải phân tán ra trên nhiều ổ đĩa.

Mặc định, khi khởi tạo một database thì chỉ cần có hai file là Primary Data File (.mdf) và Transaction Log File (.ldf) thì bạn đã có thể sử dụng database. Việc phân chia thêm file Secondary Data Files (.ndf) để hỗ trợ lưu trữ cho Primary Data File (.mdf) phụ thuộc vào độ lớn của database, mức truy vấn database và việc sắp xếp phân bố lưu trữ trên ổ cứng sao cho hợp lý. Việc phân chia thành các Secondary Data Files (.ndf) bạn có thể thực hiện ngay lúc khởi tạo database hoặc phân chia lại file và filegroup với databae đã có sẵn.

Để xem database có bao nhiêu file, bạn thực hiện như sau:
Cách 1: Sử dụng giao diện đồ họa
Click chuột phải lên database, chọn Properties

Trong cửa sổ Database Properties của database, chọn mục Files bạn sẽ thấy được database có bao nhiêu file và nó có tên là gì.

Cách 2: Sử dụng câu lệnh query:
Chọn lên server, chọn New query, sau đó điền vào câu lệnh đơn giản sau:
- Thay thế database_name thành tên database mà bạn muốn biết thông tin, trong ví dụ này là Test
USE [database_name]; GO EXEC sp_helpfile;

Kết quả câu query chúng ta có như sau:

Như vậy, chúng ta đã tìm hiểu sơ bộ các loại file của một database trên SQL Server, cung cấp các khái niệm cơ bản và cách để xem một database có bao nhiêu file, gồm những file nào. Trong bài tiếp theo chúng ta sẽ đi tìm hiểu về vị trí lưu trữ của các file trên ổ đĩa và các vấn đề liên quan đến lưu trữ file.
