2009-02-28 33 views
8

Tôi có thể thấy trong cơ sở dữ liệu AdventureWorks mà các lược đồ khác nhau được sử dụng để nhóm bảng. Tại sao điều này được thực hiện (bảo mật, ...?) Và có những phương pháp hay nhất tôi có thể tìm thấy?Thực tiễn tốt nhất để sử dụng lược đồ trong SQL Server (2008)

thx, Lieven Cardoen

+0

bản sao có thể có của [Các phương pháp hay nhất để sử dụng lược đồ trong SQL 2005?] (Http://stackoverflow.com/questions/452048/best-practices-for-using-schemas-in-sql-2005) – raven

Trả lời

18

Như một người quản lý của Business Intelligence, chúng tôi dựa trên giản đồ cho nhóm hợp lý và quản lý an ninh. Dưới đây là một số trường hợp như thế nào chúng ta sử dụng sơ đồ:

LOGIC TỔ CHỨC

  1. Chúng tôi có một cơ sở dữ liệu chung mà được tải bởi các gói SSIS chỉ duy nhất cho dữ liệu dàn dựng trước khi chúng ta nạp lưu trữ dữ liệu hoạt động của chúng tôi (ODS). Trong cơ sở dữ liệu này, với ngoại lệ của lược đồ tất cả các đối tượng là indentical trong cấu trúc (tên bảng, tên cột, kiểu dữ liệu, nullability, vv) vào nguồn ban đầu của chúng. Chúng tôi sử dụng lược đồ để chỉ ra hệ thống nguồn gốc của bảng. Trong một số trường hợp hiếm hoi, hai cơ sở dữ liệu khác nhau có các bảng có cùng tên và lược đồ cho phép chúng ta tiếp tục sử dụng tên gốc trong cơ sở dữ liệu dàn dựng.

  2. Trong mọi cơ sở dữ liệu trên các máy chủ BI của chúng tôi, mỗi thành viên trong nhóm có một lược đồ test_username. Khi chúng ta tạo các đối tượng thử nghiệm trong một cơ sở dữ liệu, điều này giúp bạn dễ dàng theo dõi ai đã tạo ra đối tượng. Nó cũng làm cho nó dễ dàng hơn nhiều để thanh lọc các đối tượng thử nghiệm sau này vì mọi người đều biết ai đã làm gì. Thành thật mà nói, chỉ biết rằng chúng tôi đã làm cho nó thường là đủ để biết nó có thể bị xóa một cách an toàn, đặc biệt là khi chúng ta không thể nhớ khi nào hoặc tại sao chúng tôi đã làm cho nó!

  3. Trong cơ sở dữ liệu bộ điều khiển dữ liệu của chúng tôi, chúng tôi dựa vào lược đồ để tách các loại quy trình khác nhau giữa báo cáo, etl và tài nguyên chung.

  4. Trong kho dữ liệu lược đồ dấu sao của chúng tôi, tất cả các đối tượng được chia thành các lược đồ thứ nguyên và thực tế.

  5. Khi chúng tôi đẩy dữ liệu đến các máy chủ phòng ban khác, chúng tôi làm cho tất cả các đối tượng BI trên máy chủ của họ sử dụng lược đồ bi. Điều này làm cho nó thực sự dễ dàng để biết tải bi và duy trì bảng mặc dù nó không phải là trên máy chủ của chúng tôi. Nếu máy chủ đích không phải là hộp SQL Server 2008/2005, thì chúng ta sẽ thêm tiền tố vào bảng bằng bi_.

Khi nó được giảm xuống, chúng tôi sử dụng lược đồ cho tổ chức hợp lý bất cứ lúc nào chúng tôi đã thêm tiền tố hoặc hậu tố vào đối tượng để giúp sắp xếp nó khi không có lược đồ. Có nói điều này, có một vài trường hợp mà chúng tôi không sử dụng lược đồ trên các máy chủ BI của chúng tôi. Trong WorkDB của chúng tôi, mọi thứ đều là dbo. WorkDB của chúng ta được sử dụng như TempDB để tạo ra các bảng tạm thời, nhưng các bảng này là các bảng tạm thời mà chúng ta biết chúng ta sẽ tạo ra mọi thời gian một quá trình ETL chạy. Thuộc tính đặc biệt của WorkingDB là chúng ta không bao giờ sao lưu cơ sở dữ liệu và tất cả các quy trình ETL sử dụng cơ sở dữ liệu phải có khả năng tạo lại các đối tượng của chúng từ đầu khi không có bảng. Trong trường hợp này, chúng tôi cảm thấy sử dụng lược đồ không thêm bất kỳ giá trị tổ chức nào vì chúng tôi không thực sự sử dụng các đối tượng bên ngoài quy trình ETL tạm thời của chúng.

AN

  1. Kể từ khi chúng tôi là một nhóm BI, chúng ta thường không xây dựng và hỗ trợ các ứng dụng của chúng ta. Chúng tôi hầu như chỉ sử dụng các ứng dụng của người khác và mang dữ liệu từ cơ sở dữ liệu back-end của họ đến máy chủ của chúng tôi. Tuy nhiên, chúng tôi có một cơ sở dữ liệu được gọi là bi_applications, đó là back-end cho một loạt các ứng dụng CRUD nhỏ.Các ứng dụng này thường là các biểu mẫu nhập dữ liệu mà chúng tôi cung cấp cho doanh nghiệp để chúng có thể nắm bắt dữ liệu mà chúng tôi sẽ phải duy trì trong BI. Đó là một cách để nhận dữ liệu cần có trong các ứng dụng sản xuất vào BI trong khi chúng tôi chờ đợi các cải tiến ứng dụng ưu tiên thấp của chúng tôi để thu thập bụi trong danh sách phát triển trong tương lai. Mỗi ứng dụng có một lược đồ riêng biệt và tài khoản ứng dụng được sử dụng để cập nhật các bảng bên dưới CHỈ có quyền truy cập vào các đối tượng của lược đồ liên quan. Điều này giúp dễ hiểu, bảo mật và duy trì các ứng dụng riêng biệt.

  2. Trong một vài trường hợp, tôi cho phép người dùng có quyền truy cập cơ sở dữ liệu trực tiếp vào các bảng của chúng tôi hoặc các thủ tục được lưu trữ. Chúng tôi dựa vào việc sử dụng lược đồ kết hợp với các vai trò để bảo vệ các đối tượng. Chúng tôi cấp quyền cho giản đồ và người dùng được thêm vào vai trò. Điều này cho phép chúng ta dễ dàng hiểu được các đối tượng nào được sử dụng bởi ai mà không phải đào sâu qua các vai trò để tìm ra nó.

Nói tóm lại, chúng tôi sử dụng sơ đồ cho các mục đích an ninh khi chúng ta có lẽ sẽ xem xét tách các đối tượng ra vào cơ sở dữ liệu riêng của họ và khi chúng ta mong đợi một ứng dụng hoặc sử dụng bên ngoài của BI để truy cập cơ sở dữ liệu của chúng tôi.

Mặc dù đây không phải là thực tiễn kinh doanh tốt nhất cho nhà phát triển ứng dụng, tôi hy vọng các trường hợp sử dụng bi của bạn có thể giúp bạn nghĩ ra một số cách sử dụng lược đồ trong phần cuối của doanh nghiệp.

Các vấn đề liên quan