Microsoft의 데이터베이스 명명 규칙?


78

MSDN 에서 명명 지침 을 찾았 지만 Microsoft의 MSSQL 데이터베이스에 대한 지침입니까?


4
아래에 훌륭한 답변이 있지만 다음을 추가하겠습니다. DB 구성 (이름 지정 포함)을 위해 조직 내에서 규칙에 동의하고 따르는 것도 중요합니다. 예를 들어, 기본 키 열을 먼저 유지 한 다음 모든 외래 키 열을 유지하여 한눈에 관계를 찾을 수 있도록 한 다음 모든 추가 열을 알파벳순으로 유지하여 테이블에 많은 열이있을 때 원하는 열을 찾을 수 있습니다. . 특정 규칙의 지혜는 논쟁의 여지가 있지만 팀과 대화를 나누는 것의 가치는 아마도 그렇지 않을 것입니다.
bopapa_1979

답변:


182

SQL Server의 AdventureWorks 데이터베이스 에서 사용되는 명명 규칙 은 스타일 측면에서 많은 모범 사례를 보여줍니다.

요약:

  • 개체 이름을 쉽게 이해할 수 있습니다.
  • 테이블 이름이 복수화되지 않음 ( "Users"가 아닌 "User"테이블)
  • 약어는 적지 만 허용됨 (예 : Qty, Amt 등)
  • 특정 열 이름 (예 : rowguid)을 제외하고 독점적으로 사용되는 PascalCase
  • 밑줄 없음
  • 특정 키워드가 허용됩니다 (예 : 이름)
  • 저장 프로시 저는 "usp"로 시작됩니다.
  • 함수 앞에는 "ufn"이 붙습니다.

여기에서 자세한 내용을 확인할 수 있습니다.

한 가지주의 사항 : 데이터베이스 명명 규칙은 매우 논란이 될 수 있으며 제가 만난 대부분의 데이터베이스 개발자는 자신의 스타일에 개인적인 이해 관계를 가지고 있습니다. 테이블 이름을 "OrderHeader"또는 "OrderHeaders"로 지정해야하는지에 대한 열띤 논쟁을 들었습니다.


12
나는 당신이 원본 기사에 링크하는 것을 좋아하고 모든 사람을 위해 요약하려고 귀찮은 것을 정말로 좋아합니다. 두 번 upvote 수 있기를 바랍니다.
bopapa_1979

6 년이 지난 후에도 링크와 좋은 요약이 포함 된 잘 정리 된 답변에 대해 여전히 +1을 받고 있습니다.

저장 프로 시저 및 함수를 usp및으로 미리 지정 하면 어떤 이점이 ufn있습니까? 저장 프로시 저는 일반적으로 동사로 시작하며 함수는 일반적으로 함수별로 지정된 이름을 갖습니다.
ca9163d9

17

아니요, 제공 한 링크의 관행을 염두에 두는 것이 좋습니다.

저장 프로 시저 이름 지정과 관련하여 "sp_"접두사를 붙이지 마십시오 .이 링크에서 이유에 대해 자세히 알아볼 수 있습니다 .

"이 접두사는 시스템 저장 프로 시저 식별 용으로 예약되어 있으므로 저장 프로 시저 앞에 sp_를 붙이지 마십시오."


3
짧기 때문에 기사에서 관련 인용문을 추가했으며 5 년 된 게시물에 대한 링크가 영원히 지속될 것으로 기대할 수 없습니다.
Gabe 2010-08-29

1
sp_는 예약되어 있지 않으며 SQL Server가 사용자 정의 프로 시저를 검색하기 전에 시스템 프로 시저를 검색하도록합니다.

6

@ 8kb (작성 당시)의 답변에서 "스타일 측면에서 모범 사례"가 무엇을 의미하는지 모르겠습니다. 분명히 나열된 항목 중 일부 ( "테이블 이름은 복수형이 아닙니다", "밑줄 없음"등)은 명백하게 주관적인 스타일 선택 일뿐입니다. 문서화 팀 리더의 개인적 선호도가 여기서 가장 큰 요인이라고 생각했을 것입니다.

일반적으로 SQL의 휴리스틱과 관련하여 (T-SQL과 같은 독점 SQL과는 대조적으로) 주제에 대한 책은 한 권 밖에 없습니다 : Joe Celko의 SQL 프로그래밍 스타일. SQL Server의 AdventureWorks 데이터베이스에 대한 많은 선택 사항이 Celko의 지침과 충돌합니다.

Celko의 명명 규칙은 국제 표준 ISO 11179를 기반으로합니다. 예를 들어 구분 문자 (예 : 밑줄)를 사용하여 이름의 요소를 구분해야합니다. 다른 스타일 선택도 마찬가지로 연구를 통해 백업됩니다. 예를 들어 열 이름에 소문자 만 사용하므로 육안으로 스캔하는 데 도움이됩니다. 의심 할 여지없이 주관적인 개인적 선호도는 현장에서 수년간의 경험을 바탕으로합니다.

장점은 최근 몇 년 동안 SQL Server 문서에서 개선 된 점입니다. 예를 들어 SQL 키워드를 대문자로, 세미콜론을 문으로 구분하는 등의 작업이 있습니다. Adventure works는 Northwind와 pub에서 크게 향상되었습니다. 이제 Management Studio의 스크립팅 기능이 눈에 좀 더 쉬운 코드를 뱉어 낼 수없는 이유는 무엇입니까?!


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.