SQL Server를 쓰고 있다면 ERD를 보려고 다른 프로그램을 설치할 필요가 없습니다. SSMS(SQL Server Management Studio)에 데이터베이스 다이어그램 기능이 들어 있어서, 이미 만들어져 있는 테이블을 그림으로 확인하는 데까지 몇 번의 클릭이면 됩니다.
SSMS 데이터베이스 다이어그램을 처음 사용할 때는 데이터베이스 안에 지원 개체를 설치해야 합니다. 그다음 새 다이어그램에 테이블을 올리고 보기 방식을 조정해 이미지로 복사하거나, 스키마만 DDL로 생성할 수 있습니다. 다른 DB 도구의 절차는 MySQL Workbench·DBeaver·A5:SQL Mk-2 안내에서 확인할 수 있습니다.
시작하기 전: 다이어그램 지원 개체 설치
개체 탐색기에서 데이터베이스를 펼치면 데이터베이스 다이어그램(Database Diagrams) 노드가 있습니다. 이 노드를 처음 펼치면 다이어그램 기능을 설정하겠느냐는 안내가 나옵니다. 예를 누르면 설치가 진행됩니다.
이때 해당 데이터베이스에 다음 개체가 만들어집니다.
sysdiagrams테이블sp_creatediagram,sp_alterdiagram,sp_dropdiagram,sp_renamediagram저장 프로시저sp_helpdiagrams,sp_helpdiagramdefinition,sp_upgraddiagrams저장 프로시저fn_diagramobjects함수
만든 다이어그램을 데이터베이스 안에 저장하기 위한 개체들입니다. 업무 테이블을 건드리지는 않지만 스키마에 개체가 추가되는 작업이므로, 운영 DB라면 팀의 변경 절차에 맞춰 진행하는 편이 좋습니다.
설치는 db_owner 역할의 구성원만 할 수 있습니다. 다이어그램 접근을 제어하기 위한 조건이라, 권한이 없으면 노드를 펼쳐도 설치 안내가 나오지 않거나 오류가 납니다. 읽기 권한만 받은 계정으로 접속했다면 DBA에게 요청하거나, 아래의 DDL 추출 방법으로 넘어가면 됩니다.
SSMS 데이터베이스 다이어그램 만들기
설치가 끝나면 다이어그램을 만들 수 있습니다.
- 데이터베이스 다이어그램 노드를 우클릭하고 새 데이터베이스 다이어그램(New Database Diagram) 을 고릅니다.
- 테이블 추가(Add Table) 창이 열리면서 데이터베이스의 테이블 목록이 나옵니다. 필요한 테이블을 골라 추가를 누르거나, 테이블 이름을 더블클릭하면 캔버스에 올라갑니다.
- 창을 닫으면 다이어그램이 완성됩니다. 외래 키로 이어진 테이블 사이에는 관계선이 자동으로 그려집니다.
테이블을 나중에 더 올리고 싶다면 캔버스 빈 공간에서 우클릭하고 다시 테이블 추가를 고르면 됩니다. 반대로 화면에서 빼고 싶은 테이블은 선택한 뒤 다이어그램에서 제거하면 되는데, 이 동작은 그림에서만 빼는 것이라 실제 테이블은 그대로 남습니다.
수백 개짜리 스키마를 한 장에 다 올리면 읽기 어려워집니다. 회원, 주문, 정산처럼 도메인 단위로 다이어그램을 여러 장 만들어 두는 편이 실무에서는 훨씬 쓸모 있습니다. 다이어그램은 데이터베이스 안에 저장되므로 이름만 구분해 두면 다음에 바로 열 수 있습니다.
관계선 읽는 법
여기서 한 가지 짚어 둘 점이 있습니다. SSMS의 데이터베이스 다이어그램은 관계선 끝을 열쇠 모양과 무한대 기호로 표시합니다. 열쇠가 붙은 쪽이 기본키를 가진 부모, 무한대 기호가 붙은 쪽이 여러 건이 오는 자식입니다.
온라인 ERD 도구에서 흔히 보는 까마귀발(IE) 표기와는 모양이 다릅니다. 담고 있는 의미는 같습니다. 다른 도구에서 그린 다이어그램과 나란히 놓고 보게 된다면 ERD 표기법 총정리에서 기호 대응을 확인해 두면 헷갈리지 않습니다.
관계선을 클릭하면 속성 창에서 어떤 컬럼끼리 연결되어 있는지, 삭제와 업데이트 규칙이 어떻게 지정되어 있는지 확인할 수 있습니다. 인수인계받은 DB에서 외래 키의 동작을 파악할 때 유용한 자리입니다.
테이블 표시 방식 바꾸기
기본 상태에서는 컬럼 이름과 자료형이 모두 표시되어 테이블이 큽니다. 테이블이 열 개만 넘어가도 화면이 금방 좁아집니다.
테이블 제목을 우클릭하고 테이블 뷰(Table View) 를 고르면 표시 방식을 바꿀 수 있습니다.
- 표준(Standard). 컬럼 이름, 자료형, NULL 허용 여부까지 표시합니다. 설계를 자세히 볼 때 사용합니다.
- 열 이름(Column Names). 컬럼 이름만 표시합니다. 구조를 훑을 때 가장 균형이 좋습니다.
- 키(Keys). 기본키와 외래 키 컬럼만 표시합니다. 관계 중심으로 볼 때 편합니다.
- 이름만(Name Only). 테이블 이름만 남깁니다. 전체 구조를 한 화면에 담을 때 사용합니다.
- 사용자 지정(Custom). 표시할 항목을 직접 고릅니다.
전체 구조를 파악하는 단계에서는 이름만이나 키로 두고 관계를 먼저 보고, 특정 테이블을 파고들 때 표준으로 바꾸는 방식이 편합니다. 배치는 테이블을 드래그해서 옮기면 되고, 캔버스 우클릭 메뉴의 테이블 정렬을 쓰면 겹친 테이블을 자동으로 펼칠 수 있습니다.
다이어그램에서 스키마를 편집할 때 주의할 점
SSMS의 데이터베이스 다이어그램은 보기 전용 도구가 아니라 디자이너입니다. 다이어그램 위에서 테이블과 컬럼, 기본키, 인덱스, 관계, 제약 조건을 만들고 고치고 지울 수 있습니다.
편하지만 그만큼 조심해야 합니다. 저장을 누르는 순간 실제 스키마가 변경됩니다. 구조만 확인할 목적으로 열었다면 저장하지 않고 닫는 습관을 들이는 편이 좋고, 운영 DB에 연결한 상태라면 더욱 그렇습니다. 실수로 컬럼을 끌어 옮기거나 관계선을 지운 채 저장하면 그대로 반영됩니다.
설계 변경을 다이어그램에서 진행할 계획이라면, 변경 전에 개체 탐색기에서 해당 테이블의 스크립트를 한 번 뽑아 두는 것이 안전합니다.
다이어그램을 여러 장으로 나눠 관리하기
다이어그램은 데이터베이스 안에 저장되므로 한 DB에 여러 장을 만들어 두고 목적에 따라 열어 쓸 수 있습니다. 테이블이 수십 개만 넘어가도 한 장에 다 담기 어려우니, 처음부터 나눠 만드는 편이 낫습니다.
이름 규칙을 하나 정해 둡니다. 01_회원, 02_주문처럼 앞에 번호를 붙이면 목록에서 순서가 유지되고, 어떤 다이어그램부터 봐야 하는지가 이름만으로 전달됩니다. 특정 시점의 구조를 남겨 둘 목적이라면 주문_2026-08처럼 시점을 붙여 두면 나중에 비교할 때 기준이 됩니다.
경계에 걸친 테이블은 양쪽에 함께 올립니다. 주문 다이어그램에 회원 테이블이 이름만이라도 보이면, 관계가 어디로 이어지는지 놓치지 않습니다. 같은 테이블이 여러 장에 등장해도 문제가 없습니다. 실제 테이블은 하나이고 그림에만 여러 번 나오는 것이기 때문입니다.
다이어그램은 그린 시점의 스냅샷이 아닙니다. 열 때마다 현재 스키마를 읽어 오므로, 다른 사람이 컬럼을 추가했다면 다음에 열었을 때 반영되어 있습니다. 특정 시점의 구조를 보존해야 한다면 이미지로 남기거나 그 시점의 DDL을 함께 보관해야 합니다.
관계선 라벨과 페이지 나누기
캔버스 우클릭 메뉴에는 보기와 관련된 항목이 몇 가지 더 있습니다. 알아 두면 그림의 완성도가 달라집니다.
관계선 이름 표시. 관계선 위에 외래 키 제약의 이름을 함께 보여 줍니다. FK_posts_members처럼 제약 이름을 규칙에 맞게 지어 둔 스키마라면, 선을 클릭하지 않고도 어떤 관계인지 읽힙니다. 반대로 제약 이름이 자동 생성된 무의미한 문자열이라면 꺼 두는 편이 깔끔합니다.
페이지 나누기 보기. 인쇄했을 때 어디서 잘리는지 점선으로 표시합니다. 회의에 종이로 들고 갈 계획이라면 이 표시를 켜 두고 테이블 배치를 맞추면, 관계선이 페이지 경계에서 끊긴 그림을 인쇄하는 일이 없습니다.
확대·축소. 테이블이 많을 때는 축소해서 전체 흐름을 보고, 특정 영역만 확대해서 컬럼을 확인하는 방식으로 오가게 됩니다. 표시 방식을 이름만으로 바꾸는 것과 함께 쓰면 큰 스키마도 다룰 만해집니다.
인덱스와 제약 조건까지 확인하기
다이어그램은 테이블과 관계를 보여 주지만, 필요한 정보는 그 자리에서 더 꺼낼 수 있습니다. 테이블을 우클릭하면 인덱스와 키, 관계, 체크 제약 조건을 여는 항목이 있습니다.
인수인계받은 DB에서 특정 조회가 왜 느린지 확인할 때 이 흐름이 편합니다. 다이어그램에서 해당 테이블을 찾아 인덱스 목록을 열고, 어떤 컬럼에 어떤 순서로 인덱스가 걸려 있는지 확인한 다음, 실제 쿼리의 조건과 맞는지 보면 됩니다. 복합 인덱스는 컬럼 순서가 중요해서 목록에서 순서까지 확인해야 합니다.
관계 대화상자에서는 외래 키의 삭제 규칙과 업데이트 규칙을 볼 수 있습니다. 회원을 지웠을 때 게시글이 어떻게 되는지가 여기에 적혀 있습니다. 설계 의도를 파악할 때 코드보다 이쪽이 빠릅니다.
다이어그램에서 새 테이블을 설계할 때
기존 구조를 보는 용도만이 아니라, 새 테이블을 이 화면에서 만들 수도 있습니다. 진행 순서는 다음과 같습니다.
- 캔버스 빈 공간에서 우클릭하고 새 테이블을 고른 뒤 이름을 입력합니다.
- 컬럼 이름과 자료형, NULL 허용 여부를 표에 채웁니다.
- 기본키로 쓸 컬럼을 선택하고 도구 모음의 기본키 설정을 누릅니다.
- 부모 테이블의 기본키 컬럼에서 자식 테이블의 외래 키 컬럼으로 끌어다 놓으면 관계가 만들어집니다.
- 저장을 누르면 실제 DB에 반영됩니다.
여기서 자주 나오는 실수가 하나 있습니다. 관계를 만들 때 드래그 방향이 반대가 되면 부모와 자식이 뒤바뀝니다. 대화상자에서 기본 키 테이블과 외래 키 테이블이 의도한 대로 지정되었는지 확인하고 넘어가는 게 좋습니다. 어느 쪽이 부모인지 판단하는 기준은 ERD 그리는 법의 관계와 카디널리티 부분에 정리되어 있습니다.
설계를 새로 시작하는 단계라면 이름 규칙과 자료형 기준을 먼저 정해 두는 편이 결과적으로 빠릅니다. 판단 기준은 DB 테이블 설계 체크리스트에 항목별로 정리해 두었습니다.
다이어그램을 이미지로 남기기
완성한 다이어그램은 회의 자료나 인수인계 문서에 넣게 됩니다. 다이어그램 창에서 파일로 바로 내보내는 메뉴는 없고, 클립보드를 거칩니다.
캔버스 빈 공간에서 우클릭하고 클립보드로 다이어그램 복사(Copy Diagram to Clipboard) 를 고르면 다이어그램 전체가 이미지로 클립보드에 담깁니다. 워드나 파워포인트, 그림판에 붙여넣은 뒤 원하는 형식으로 저장하면 됩니다.
테이블이 많아 한 화면에 담기지 않는다면, 이미지로 만들기 전에 테이블 뷰를 이름만으로 바꾸고 배치를 정리해 두는 편이 결과가 낫습니다. 인쇄가 목적이라면 페이지 나누기를 표시해 두고 배치를 맞추면 잘리는 부분을 미리 확인할 수 있습니다.
스키마를 DDL로 뽑기
다이어그램은 SSMS 안에서 보는 그림이라, 다른 도구로 옮기거나 문서로 만들려면 DDL이 필요합니다. SQL Server에서 구조만 뽑는 방법은 이렇습니다.
- 개체 탐색기에서 데이터베이스를 우클릭하고 태스크(Tasks) → 스크립트 생성(Generate Scripts) 을 고릅니다.
- 전체 개체를 스크립팅할지, 특정 테이블만 고를지 선택합니다.
- 스크립팅 옵션 화면에서 고급(Advanced) 을 누르고, 스크립팅할 데이터 형식(Types of data to script) 을 스키마만(Schema only) 으로 지정합니다.
- 파일이나 새 쿼리 창으로 출력하면 CREATE TABLE 문이 나옵니다.
행 데이터가 빠져 파일은 대체로 가벼워지지만, 테이블·컬럼명과 제약 조건도 시스템 구조를 드러내는 내부 정보입니다. 생성한 스크립트는 운영 데이터와 분리해서 다루되 접근 권한은 그대로 관리해야 합니다. 여기서 나온 스크립트는 다른 ERD 도구의 SQL 가져오기에 사용할 수 있습니다. MySQL과 PostgreSQL의 추출 명령은 SQL을 ERD로 변환하기의 1단계에 정리되어 있습니다.
VS Code를 주로 쓴다면
SSMS를 열지 않고 편집기 안에서 해결하고 싶다면 방법이 하나 더 있습니다. Microsoft의 MSSQL 확장에 스키마 디자이너(Schema Designer) 가 들어와 2026년에 정식 기능이 되었습니다. 테이블과 외래 키, 기본키, 제약 조건을 시각적으로 만들고 고칠 수 있고, 검색과 드래그 앤 드롭, 확대, 미니맵, 자동 배치를 지원합니다.
편집기에서 ERD를 다루는 방법은 VS Code에서 ERD 그리기에 확장별로 정리해 두었습니다.
자주 묻는 질문
다이어그램 노드를 눌렀더니 설치하겠냐고 묻습니다. 눌러도 되나요?
다이어그램 기능을 처음 사용할 때 나오는 정상적인 안내입니다. 예를 누르면 해당 데이터베이스에 sysdiagrams 테이블과 다이어그램 관련 저장 프로시저, 함수가 만들어집니다. 다이어그램을 저장하기 위한 개체라 업무 테이블에는 영향을 주지 않지만, 운영 DB라면 변경 절차에 맞춰 진행하는 편이 좋습니다. 설치는 db_owner 역할의 구성원만 할 수 있습니다.
다이어그램에서 테이블을 수정하면 실제 DB에 반영되나요?
반영됩니다. SSMS의 데이터베이스 다이어그램은 보기 전용이 아니라 디자이너라서, 컬럼을 추가하거나 관계를 만들고 저장하면 실제 스키마가 변경됩니다. 구조만 확인할 목적이라면 저장하지 않고 닫는 습관이 안전하고, 운영 DB에 연결한 상태라면 특히 주의해야 합니다.
만든 다이어그램을 이미지 파일로 저장하려면 어떻게 하나요?
다이어그램 빈 공간에서 우클릭하고 클립보드로 다이어그램 복사를 고르면 이미지가 클립보드에 담깁니다. 그림판이나 워드, 파워포인트에 붙여넣은 뒤 원하는 형식으로 저장하면 됩니다. 다이어그램 창에서 파일로 바로 내보내는 메뉴는 따로 없습니다.
스키마만 DDL로 뽑으려면 어떻게 하나요?
개체 탐색기에서 데이터베이스를 우클릭하고 태스크의 스크립트 생성을 실행합니다. 마법사의 스크립팅 옵션에서 고급을 누르고 스크립팅할 데이터 형식을 스키마만으로 지정하면 CREATE TABLE 문만 나옵니다. 데이터 없이 구조만 담기므로 파일도 가볍고, 다른 도구에 붙여넣기에도 적합합니다.
SQL Server ERD를 화면에서 확인하려면 지원 개체 설치 후 테이블을 추가하고 표시 방식을 조정해 클립보드로 복사합니다. 다른 도구나 문서에 사용할 구조는 스크립트 생성에서 스키마만 선택해 내보내면 됩니다.
뽑아 둔 DDL이 있다면 WorksCove ERD에 붙여넣어 다이어그램과 테이블 명세서를 만드는 방법도 있습니다. SQL Server DDL을 그대로 읽고, 필요하면 MySQL이나 PostgreSQL 문법으로 바꿔 내보내는 것도 됩니다. 붙여넣기부터 결과까지는 SQL을 ERD로 변환하기에 화면과 함께 정리되어 있습니다.