본문 바로가기
DATABASE

데이터베이스(DB) 데이터 모델

by YoonJong 2022. 10. 22.
728x90

현실 시계에 존재하는 데이터를 컴퓨터의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라고 한다.

 

모델링은 추상화 하는과정과 데이터베이스에 어떻게 저장할지 구조를 정하는 것이다.

 

예로, 뱀이라고 했을 때, 다리가 0개이며, 꼬리가 있고, 혀를 낼름거린다. 라고 하는것을 추상화 과정이라고 한다.

이러한 특징을 데이터베이스로 옮기는 것 까지를 모델링 과정이라고 한다.

 

모델링 과정은 현실세계의 사물의 중요한 데이터를 추출해서 개념세계로 옮기는 것을 개념적 모델링과정이라고 하며,

개념적 모델링 과정 이후, 데이터베이스에 저장할 구조를 결정하는 과정을 논리적 모델링이라고 하는데,

보통 합쳐서 데이터 모델링이라고 부른다.

( 데이터 모델링 = 개념적 모델링 + 논리적 모델링 )

 

 

데이터 모델링은 현실 세계의 데이터를 표현하는 것이 정말 까다로운데 이런 데이터모델링 결과물을 쉽게 도와주는 것이

데이터모델 이다.

 

데이터모델은 데이터구조 , 연산 , 제약조건으로 이루어져 있다.

 

데이터구조 : 현실 세계를 개념 세계로 추상화 했을때 어떤 요소로 이루어져있는지 표현하는 구조 ( 정적 )

연산 : 데이터구조에서 실제로 표현된 값들을 처리하는 작업 ( 동적 )

제약조건 : 데이터 무결성 유지를 위해 적용


현실 세계를 개념적 구조로 표현하는 방법을 알아보자.

 

개체 - 관계 모델

개체는 사람이나 사물과 같이 구별되는 모든 것을 의미한다.

형태가 꼭 있어야 하는 것이 아니라, 학과, 등급 처럼 반드시 필요한 개념은 모두 개체라고 할 수 있다.

 

개체 인스턴스는 개체가 실체화된 것을 의미한다.

개체 타입 : 고객(이름,주소,연락처)

개체 인스턴스 : 홍길동,경기도,010-1234-1324

 

속성이란, 개체가 가지고 있는 고유한 특성이다. 

속성은 하나의 속성만 가질 수 있는 단일성 속성과 여러 속성값을 가질 수 있는 다중값 속성이 있다.

예로, 단일성 속성은 고객명 이고, 다중값 속성은 연락처(핸드폰,집,회사 등) 으로 들 수 있다.

 

유도속성 : 판매가격과 같이 가격과 할인율에 따라 달라지는 속성을 뜻한다.

널(null) 속성 : 아직 결정되지 않거나 모르는 값을 의미한다.

키 속성 : 모든 개체와 개체 인스턴스를 인식할때 사용한다.

 

관계란, 개체와 개체가 맺고 있는 연관성, 즉 대응관계, 매핑을 의미한다.

예로, 고객이 책을 구매한다 라는 것에서 고객과 책 사이에 관계가 있다.

 

관계도 다양하게 구분할 수 있다.

 

일대일 (1:1) 관계

개체 A의 개체 인스턴스는 개체 B 의 인스턴스와 각각 하나씩 관계를 맺을 수 있다.

예로, 남편과 아내 를 들 수 있다.

 

일대다(1:n) 관계

개체 A 의 인스턴스는 개체 B 의 인스턴스를 0개 이상 가질 수 있다.

예로, 부서와 사원을 들 수 있다. 인사팀에는 여러명의 사원을 가질 수 있다.

 

다대다(n:m) 관계

개체 A 의 인스턴스는 개체 B 의 인스턴스를 0개 이상가질 수 있으며,

개체 B의 인스턴스 또한 개체 A의 인스턴스를 0개 이상가질 수 있다.

예로, 고객과 책을 들 수 있다. 홍길동이라는 사람은 A책, B 책을 가질 수 있으며, A책라는 종류의 책은 홍길동에게도 갈 수 있고, 둘리에게도 갈 수 있다.


모든 관계에서는 참여 조건을 정할 수 있다.

예로, 모든 고객이 책을 구매해야 한다는 조건이 있을 수도 있으며, 해당 조건이 없다면 어느 고객은 책을 구매하지 않을 수 있다.

 

관계는 종속성이 있을 수 있다.

종속성을 예로 들어보면, 학교의 학생과 학부모 데이터와 같다.

학생이 졸업을 하거나 전학을 가게되면 데이터가 지워지는데, 이때 이 학생의 학부모 데이터도 지워진다.

이는 학부모가 학생에게 종속적이라고 표현하며, 학부모는 약한객체 , 학생은 강한객체라고 표현한다.

728x90

댓글