본문 바로가기
Infra & Security Eng/Database Engineering

view, content, insert, id.html 4가지 웹페이지 파일 모델링 실습, 해설

by 엔지니어 E 2026. 4. 2.
반응형
실습내용: view, content, insert, id.html  4가지 웹페이지 파일 모델링을 실시하고, 합쳐서 모델링 한다

 

view.html

게시글 목록이나 상세 화면에서 작성자가 누구인지 보여줘야 한다. 이작성자 정보는 member 테이블에 이미 있으므로 ID 값을 가져와 연결하는 외래키가 형성된다 

content.html



insert.html

번호는 새로운 글이 생성될 때마다 부여되는 고유 번호이다. 속성에서 제목과 내용은 사용자가 직접 입력하는 원천 데이터 이다

id.html

ID 사용자를 중복 없이 식별할 수 있는 고유한 값이다.이름이나 별명은 중복될 수 있지만, ID는 시스템 내에서 유일해야 하므로 PK가 된다

 

BOARD 파일 (파일 통합 과정)

왜 결과물이 딱 2개의 상자(테이블)로 합쳐지는가?
데이터베이스 정규화의 핵심은 **"같은 성격의 데이터는 한 곳에 모으고, 중복을 제거하는 것"**

회원 관련 정보: id.html에서 정의된 모든 속성(아이디, 패스워드, 주소 등)은 '사용자'라는 하나의 개체를 설명한다. 따라서 member 테이블 1개로 합쳐친다.
게시글 관련 정보: view.html, content.html, insert.html은 각각 목적은 다르지만, 다루는 대상은 모두 '게시글'이다.
insert에서 입력한 '제목'이 view와 content에서 출력되는 동일한 데이터이다.
데이터 중복을 막기 위해 모든 게시글 관련 속성을 post 테이블 1개로 통합한다.
결론: 관리 대상이 '사람(회원)'과 '글(게시글)' 두 종류뿐이므로 상자는 2개가 된다

 

BOARD 파일 (파일 통합 과정) - 최종


(이렇게 모델링을 많이 함)

1. 파일별 속성 구성 및 PK/FK 형성 이유
각 파일은 데이터베이스 관점에서 입력(Insert) 또는 **출력(Select)**의 단위이다


참고사항
1.왜 게시글(post)이 자식인가?

1) 데이터베이스에서 부모는 정보를 제공하는 쪽, 자식은 그 정보를 받아서 참조하는 쪽이다
2) 게시글은 '누가 썼는지' 알기 위해 회원의 id를 빌려와야 한다
3) 회원(부모)이 먼저 존재해야 게시글(자식)의 작성자 칸을 채울 수 있으므로 게시글이 자식이 된다

2. 왜 비식별 관계(점선)인가?
ERwin에서 **식별 관계(실선)**와 **비식별 관계(점선)**를 나누는 기준은 "자식의 PK에 부모의 PK가 포함되는가?"이다

1) PK 독립성: 게시글의 PK는 번호 이다. 번호는 회원 ID가 없어도 1, 2, 3... 순서대로 고유하게 존재할 수 있다. 즉, 게시글의 존재 근거(PK)가 회원 ID에 묶여있지 않다
2) 의존성 판단: "회원이 없어도 시스템은 존재한다"는 의미는, 만약 회원이 한 명도 가입하지 않은 상태여도 post 테이블의 구조(번호, 제목, 내용 등)는 깨지지 않고 독립적으로 유지될 수 있다는 뜻이다
3) 결론: 부모의 PK(id)가 자식의 일반 속성(FK)으로만 들어가기 때문에 **비식별 관계(점선)**로 표시한다

3. 내용 상자에 왜 외래키가 들어와야 하는가?
1) 내용 상자는 혼자서 존재할 수 없다. 반드시 어떤 게시글의 본문인지를 가리켜야 한다
2) 만약 외래키가 없다면: 내용 상자에 글을 써도, 이게 1번 게시글의 내용인지 100번 게시글의 내용인지 연결할 방법이 없다
3) 따라서: 게시글 상자의 글번호를 복사해서 내용 상자로 가져와야 하며, 이것이 바로 **외래키(FK)**의 역할이다

핵심
(1) 게시글 상자: 글번호를 새로 만든다 (PK)
(2) 내용 상자: 게시글의 글번호를 그대로 빌려온다 (FK)
(3) 동시에: 빌려온 그 번호를 자기의 고유 번호로도 쓴다 (PK)
요약
1. 파일 통합: 데이터의 성격이 '회원'과 '게시글'로 명확히 구분되므로 2개의 테이블로 압축됨
2. PK 선정: 각 개체를 구별하는 유일한 값(ID, 번호)을 PK로 설정
3. FK 연결: 게시글에서 작성자를 식별하기 위해 회원 ID를 참조함
4. 점선 사용: 게시글의 고유번호가 회원 ID로부터 만들어지는 것이 아니기 때문(독립적 PK)
구분 view (게시글) content (내용)
빌려오는 값 회원의 id 게시글의 글번호
자기만의 PK 있음 (글번호) 없음 (부모 번호를 그대로 씀)
관계 종류 비식별 관계 (점선) 식별 관계 (실선)
논리 회원이 없어도 글 번호는 독립적임 게시글 번호가 없으면 내용도 존재 불가함