Sự khác biệt giữa cơ sở dữ liệu và lược đồ


166

Sự khác biệt giữa Cơ sở dữ liệu và Lược đồ trong SQL Server là gì? Cả hai đều là các thùng chứa của bảng và dữ liệu.

Nếu một Lược đồ bị xóa, thì tất cả các bảng có trong lược đồ đó cũng sẽ tự động bị xóa hoặc chúng có bị xóa khi Cơ sở dữ liệu bị xóa không?

Câu trả lời:


171

Một cơ sở dữ liệu là thùng chứa chính, nó chứa các tệp dữ liệu và nhật ký và tất cả các lược đồ bên trong nó. Bạn luôn sao lưu cơ sở dữ liệu, nó là một đơn vị riêng biệt.

Các lược đồ giống như các thư mục trong cơ sở dữ liệu và chủ yếu được sử dụng để nhóm các đối tượng logic lại với nhau, điều này dẫn đến việc dễ dàng thiết lập quyền theo lược đồ.

EDIT cho câu hỏi bổ sung

drop schema test1

Msg 3729, Cấp 16, Trạng thái 1, Dòng 1
Không thể bỏ lược đồ 'test1' vì nó đang được tham chiếu bởi đối tượng 'copyme'.

Bạn không thể bỏ một lược đồ khi nó được sử dụng. Trước tiên bạn phải xóa tất cả các đối tượng khỏi lược đồ.

Đọc liên quan:

  1. Các lược đồ SQL Server có gì tốt?
  2. MSDN: Phân tách lược đồ người dùng

5
trong phiên bản máy chủ sql 2005 trở lên, theo mặc định, mọi thứ sẽ nằm trong lược đồ DBO nếu chúng ta không đề cập đến bất kỳ tên lược đồ nào trong khi tạo các đối tượng cơ sở dữ liệu?
sqlchild

@sqlchild vâng đúng vậy. Một lược đồ là bắt buộc, mọi đối tượng được giữ trong một lược đồ, vì vậy mặc định là dbo
RichardTheKiwi

Bạn có xem xét việc sao chép các bảng trong cùng một cơ sở dữ liệu và nhóm chúng trong lược đồ theo các máy khách khác nhau, thay vì tạo cơ sở dữ liệu riêng biệt cho mỗi máy khách một cách thực hành tốt không?
Yevgraf Andreyevich Zhivago

Logic có giống với AWS Redshift không? Bất kỳ ai? Tôi bối rối giữa hai điều này về AWS.
Aakash Basu

19

Lược đồ là một cách phân loại các đối tượng trong cơ sở dữ liệu. Nó có thể hữu ích nếu bạn có một số ứng dụng chia sẻ một cơ sở dữ liệu và trong khi có một số dữ liệu chung mà tất cả các ứng dụng truy cập.


12

Cơ sở dữ liệu giống như nơi chứa dữ liệu với lược đồ và lược đồ là cách bố trí các bảng có kiểu dữ liệu, quan hệ và công cụ


1
Điều này không đúng cho SQL Server; Các bảng có các lược đồ trong cơ sở dữ liệu chung có, nhưng Các lược đồ (cho ai biết lý do) trong SQL Server cũng là các không gian tên có hiệu quả chứa các bảng (và các bảng đó cũng có các lược đồ theo nghĩa truyền thống). Tên không may mà Microsoft chọn cho họ - namespacephù hợp hơn nhiều.
HolySkull

7

Schema cho biết những bảng nào trong cơ sở dữ liệu, những cột nào chúng có và chúng có liên quan như thế nào. Mỗi cơ sở dữ liệu có lược đồ riêng.


nhưng nếu tôi không tạo ra bất kỳ lược đồ nào một cách rõ ràng và tạo các bảng mà không đề cập đến bất kỳ tên lược đồ nào thì các bảng được tạo ở đâu. theo mặc định họ phải đi vào lược đồ dbo. phải không
sqlchild

có nhưng thông thường bạn không xử lý lược đồ theo cách thủ công, bạn tạo các bảng từ một số công cụ quản lý hoặc sử dụng tính năng mã đầu tiên của một số công cụ ORM
Robert

Tôi sử dụng studio quản lý máy chủ sql và tôi không đề cập đến bất kỳ tên lược đồ nào
sqlchild

4

Lược đồ trong SQL Server là một đối tượng lưu giữ các định nghĩa cho các đối tượng cơ sở dữ liệu khác như bảng, dạng xem, thủ tục được lưu trữ, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.