데이터 공부/데이터베이스 & SQL

04. DB - 데이터 모델링

한소희DE 2021. 6. 7. 01:34

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다.

 

 

 

 

 

 

 

목차

데이터 모델링 개념

개념적 모델링

논리적 모델링

 

 


 

 

 

 

01. 데이터 모델링 개념

 

데이터 모델링이란, 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

 

 

예를 들어, 코끼리(현실 세계 데이터)를 데이터베이스로 정보를 저장한다고 가정하자.

우리는 1) 개념적 모델링 2) 논리적 모델링을 거쳐야 한다.

1) 첫 번 째로, 코끼리의 정보를 문서화한다. 예를 들어, '발이 4개, 몸무게는 1톤 이상' 등으로 정리할 수 있겠다.

 

두 번째로, 논리적 모델링을 수행한다. 기술한 정보를, 데이터베이스의 논리적 구조로 표현하는 것을 의미한다.

 

한 가지의 예시를 더 들어보자.

고객의 요구사항에 맞춰 아파트를 건설할 때, 고객의 요구사항에 따라 설계도를 그리는 과정이 개념적 모델링이고, 이것을 갖고 모델하우스를 만들 때 사용하는 방법이나 도구 등을 논리적 모델(그 과정을 논리적 모델링)이라고 한다.

 


 

02. 개념적 모델링

개념적 모델링이란 현실세계의 중요 데이터를 추출해 개념화하는 작업을 뜻한다.

 

이것은 보통, 개체-관계 모델로 모델링을 한다. 이것을 그림으로 그린 것을 E-R 다이어그램이라고 한다.

 

 

 

 

2-1. 개체란 무엇인가?

저장할만한 가치가 있는 중요 데이터를 갖고 있는 유/무형 객체를 말한다.

 

예를 들어, 학과 과목 고객 등이 개체라고 할 수 있다.

 

이 개체의 고유 이름과 속성으로 정의해둔 것을 개체 타입이라고 한다. 그리고 특정 개체 타입을 갖고 있는 개별 개체들을 개체 인스턴스라고 한다.

 

 

 

 

2-2. 속성이란 무엇인가?

개체가 갖고 있는 고유의 특성이다.

 

 

예를 들어, 고객 개체에는 이름과 주소, 연락처를 저장한다고 가정하자. 그럼 여기에서 속성은 이름과 주소, 연락처다.

 

단일 값 속성과 다중 값 속성?

1. 단일값 속성: 특정 개체 구성하는 속성 값이 한 개 인 것
2. 다중값 속성: 특정 개체 구성하는 속성 값이 여러 개인 것. 예를 들어, 책 개체의 저자 속성은 다중 값 속성이다. 왜냐하면 저자가 여러 명이 될 수 있기 때문이다.

 

단순 속성과 복합 속성?

1. 단순 속성: 의미를 더는 분해할 수 없는 속성. 예를 들어 이름같은것이 그것이다.
2. 복합 속성: 의미를 분해할 수 있는 속성. 예를 들어, 주소 속성 혹은 생년월일 속성을 뜻한다. (주소는 도, 시, 구 등으로 구분 가능하고 생년월일은 연, 월, 일로 분리가 가능하기 때문이다.)

 

🔥 유도 속성?

값이 다른 속성에 의해 유도돼 결정되는 속성. 책 개체의 정가 그리고 할인율이라는 속성이 있으면, 판매가라는 속성은 이 두 속성에 의해 결정되므로 유도 속성이다.

 

🔥 널 속성?

null은 아직 정해지지 않은 값 혹은 모르는 값이다.
0은 값이 0이라는 것이고, 공백은 존재하지 않는다는 것이므로 다르게 사용되니 유의하자.

 

키 속성?

개체 인스턴스를 식별할 수 있는 속성이다. 예를 들어 고객 개체에서 고객 ID가 일반적으로 키 속성으로 쓰인다. 이를 보통 Primary Key라고 한다.

 

 

 

 

2-3. 관계란 무엇인가?

괜계란 개체와 개체가 맺고 있는 의미 있는 연관성을 말한다.

 

즉, 개체 간 무엇으로 매핑(=대응)되는가를 뜻한다.

 

예를 들어, 고객 개체와 책 개체는 구매라는 관계를 갖고 있으므로, 구매가 관계타입이다. 여기서 실제로 구매가 이뤄져 인스턴스가 생성되면, 이를 관계 인스턴스라고 한다. (그러니 당연히 관계 속성도 존재한다.)

 

 

2-3-1. 일대일 관계

개체와 개체가 서로 한 개씩만 관계를 맺을 수 있는 관계 유형

예를 들어, 대한민국 혼인제도가 있겠다.

 

2-3-2. 일대다 관계

한 개체에서 다른 개체로 뻗어지는 가지가 여러 개이고, 그 다른 개체에선 한 개인 관계 유형

예를 들어, 부서와 사원이 있겠다. 부서 내에는 여러 사원이 존재하나, 사원은 단일 부서와만 관계가 맺어질 수 있다.

 

2-3-3. 다대다 관계

개체와 개체가 서로 여러 개씩 관계를 맺을 수 있는 관계 유형

예를 들어, 고객과 책이 있겠다. 고객은 책 여러 권을 구매할 수 있고, 마찬가지로 책도 여러 고객에게 팔려도 무방하다.

 

 

 

2-4. 관계의 특성

 

2-4-1. 관계의 종속성

 

두 개체가 관계에 대해 종속적일 수 있다.

만약, 개체 A와 개체 B가 있을 때, 개체 A가 삭제되면 개체 B도 반드시 삭제되어야 하는 경우가 그것이다. 이때 개체 A를 오너개체, 개체 B를 약한 개체라고 한다.

 

오너 개체와 약한 개체에서, 약한 개체를 식별하는 방법?

약한 개체 키 속성에 오너 개체의 키를 포함해야 약한 개체를 식별할 수 있다. 약한 개체 키 속성은 약한 개체 내에서는 구분자가 될 수 있지만, 전체에서는 구분자가 될 수 없을 수도 있기 때문이다.

예를 들어, 회사에서 사원과 부양가족 데이터가 있을 때, 부양가족 이름이 A라고 하자. A 속성을 찾으려고 보면, 다른 사원 부양가족 이름도 A가 될 수 있다. 따라서 사원 ID 등의 오너 개체 키 속성+부양가족 키 속성을 더해야 특정 약한 개체 인스턴스를  찾을 수 있다.

 


 

03. 논리적 모델링

논리적 모델링이란, E-R 다이어그램 등으로 표현된 개념적 구조를
DB에 저장할 형태로 표현한 논리적 구조를 뜻한다.

 

3-1. 계층 데이터 모델

데이터베이스의 논리적 구조가 트리 형태인 모델

 

계층 데이터 모델에서는 다대다 관계를 직접 표현할 수 없어 별도의 개체를 추가로 생성해, 일대다 X 일대다 관계로 표현해야 한다.

 

 

3-2. 네트워크 데이터 모델

데이터베이스의 논리적 구조가 네트워크 혹은 그래프 형태인 모델

 

🔥 계층 데이터 모델과 네트워크 데이터 모델의 장단점 및 특징?

★ 찾아보니 이해가 잘 안된다... 시간날 때 다시 구글링 후 정리해서 작성해두기!

 

 

 


 

 

 

📧 E-mail: eng.sohee@gmail.com