클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

[데이터베이스 구축] 논리 데이터베이스 설계 2 - 데이터 모델링 및 설계 본문

자격증 공부/정보처리기사 필기

[데이터베이스 구축] 논리 데이터베이스 설계 2 - 데이터 모델링 및 설계

huenuri 2024. 7. 31. 13:38

아침을 먹으면서 강의를 듣고 개념 학습을 진행해보았다. 밥 먹는 시간도 아까운 정도로 오늘 공부할 것들이 정말 많다. 데이터 모델링 부부은 정말 많이 어려웠다. 한번 강의를 들어서는 잘 이해가 되지 않을 정도였다.
그래도 공부한 내용을 정리하며 학습일지를 써본다.

여기까지 공부하면 3단원을 마치게 된다. 4단원 하나 남았는데 이건 오늘 저녁에 진행해보려고 한다. 이 공부만 마치면 이제 데이터베이스를 이어서 학습해볼 것이다.

 

학습 내용

데이터 모델링
개체-관계(E-R) 모델
논리적 데이터 모델링
데이터베이스 정규화

학습 시간

아침 9시 ~ 11시 15분 <2시간 15분 소요>



 

1. 데이터 모델

 

개념

  • 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

 

 

 

 
 
 
 
 

데이터베이스 설계 단계/ 데이터 모델 절차

설계 단계에는 요구조건 분석, 개념적 설계, 논리적 설계, 물리적 설계가 있다.

개체 관계 다이어그램(ERD; Entity Relationshiop Diagram)
각 업무 분석에서 도출된 엔터티 간의 관계를 이해하기 쉽게 도식화된 다이어그램

정규화(Normaliization)
관계형 데이터 모델에서 데이터의 중복성을 제거하여, 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해를 하는 과정



 

2. 개체-관계(E-R) 모델

 

개념

현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델

구성 요소

 
 

다이어그램 기호



 

3. 논리적 데이터 모델링 🔥🔥

 

개념

업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스

종류



 

 

4. 데이터베이스 정규화(DB Normalization) 🔥🔥🔥

 

1. 개념

관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

  • 데이터의 중복성을 제거, 삽입/삭제/갱신 이상을 제거하는 것이 핵심

 

2. 정규화 목적

  • 중복 데이터를 최소화하여 테이블 불일치 위험을 최소화
  • 수정, 삭제 시 이상 현상을 최소화함으로써 데이터 구조의 안정성을 최대화
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능
  • 데이터 삽입 시 릴레이션의 재구성에 대한 필요성을 줄임
  • 효과적인 검색 알고리즘을 생성
 

3. 이상 현상

개념

릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

종류

 
 
 

4. 함수 종속

  • 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우
  • 애트리뷰트 X의 값 각각에 대해 시간과 관계없이 항상 애트리뷰트 Y값이 오직 하나만 연관되어 있는 관계
  • 함수 종속 표기는 X → Y(Y는 X에 함수 종속)로 함
 

5. 데이터베이스 정규화 단계

1차 정규화 : 원자값으로 구성, 반복, 속성/중복 제거가 필요

 

 

 

2차 정규화 : 부분 함수 종속 제거(완전 함수적 종속 관계), 주 식별자 아닌 속성을 분리

 

 

 

 

3차 정규화 : 이행함수 종속 제거, 속성에 종속적인 속성을 분리

 

 

 

 

 

3차 정규화까지가 실무에서 자주 활용된다.

보이스-코드 정규화
결정자 함수 종속, 모든 결정자가 후보 키

 

 

 

 

4차 정규화
다치(다중 값) 종속성 제거, 특정 속성 값에 ㄸ라 선택적인 속성을 분리

 

 

 

 

 

5차 정규화
조인 종속성을 제거



 

 

자주 틀리는 기출문제 유형

 

1. 논리적, 물리적 설계 단계

논리적 설계 단계에서 트랜잭션의 인터페이스를 설계하며, 데이터 타입, 데이터 타입 간의 관계로 표현

 
 
 
 
 

2. 데이터베이스 정규화 단계 중 어떤 단계인지 고르기

특히 5 정규형 문제를 자주 틀렸다. 조인 종속성이 나오면 5라는 것을 꼭 기억하자!

 
 
 
 
 

3. 데이터 모델의 구성 요소

 

여기서도 정규형 단계를 고르는 문제를 많이 틀렸다. 그중 결정자 함수 종속 제거인 BCNF와 많이 헤깔렸다. 결정자가 후보키라는 말이 나오면 거의 대부분 BDNF이다.
데이터 모델 구성요소의 구조, 연산, 제약조건도 꼭 다시 확인해볼 것.

개념 정리에서는 분명히 언급하지 않았던 내용인데 문제에는 있는 것들도 꽤 있었다. 이런 부분은 문제 풀이 해설을 읽으면서 다시 한번 숙지하자!



 

 

학습을 마치고

이렇게 2시간 정도에 걸쳐 나머지 3단원 학습을 마쳤다. 이번 단원도 만만치 않게 어려웠지만 다 마치고 나니 정말 뿌듯했다. 새벽부터 11시가 조금 넘도록 거의 한번도 쉬지 않고 공부에 임했던 것 같다.
15분 정도는 스트레칭도 하고 쉬었다가 11시 반부터 데이터베이스 공부를 시작해보리고 한다.

아직은 뭐가 뭔지 잘 모르겠지만 문제를 보면서 이런 식으로 개념이 응용된다는 것 정도를 익히면 될 것 같다. 이론적으로만 사용하고 실무에서는 잘 사용되지 않는 것들도 있다고 한다.