데이터 모델링

데브tty·2021년 10월 2일
0

DB

목록 보기
3/3

DB와 데이터 모델링

데이터 베이스는 현실 세계에 존재하는 데이터 중에서 운영하는데 꼭 필요한 데이터만 설별하여 컴퓨터에 저장한 것이다. 데이터 모델링이란 현실 세계의 데이터를 컴퓨터 세계의 데이터 베이스로 옮기는 작업을 말한다.

강아지를 DB에 저장한다고 생각하면 강아지를 그대로 컴퓨터 안에 넣을 수 없다. 강아지에 대한 정보를 DB에 저장하게 되는데 이를 추상화라고 한다. 추상화는 3개의 단계를 거친다

추상화 3단계 : 현실세계 - (개념 모델링) - 개념세계 -(논리적 모델링) 컴퓨터 세계

개념 모델링 : 현실 세계에서 중요한 데이터를 추출하여 개념 세계로 옮기는 작업
논리적 모델링 : 개념 세계의 데이터를 DB에 저장할 구조를 결정하고 이 구조로 표현하는 작업

데이터 모델

현실세계의 데이터는 강아지처럼 단순하지 않다. 복잡한 현실 세계에서 데이터를 추출하여 DB로 옮기는 일을 쉽게 해주는 도구가 바로 데이터 모델이다. 데이터 모델은 데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델이 있다.

개념적 데이터 모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 DB의 개념적 구조로 표현하는 도구
논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 DB의 논리적 구조로 표현하는 도구이다.

데이터 모델은 일반적으로 구조, 연산, 제약조건으로 구성되어 있다.

개념적 데이터 모델에서 데이터 구조는 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 푠현하는 개념적 구조이다. 논리적 데이터 모델에서 데이터 구조는 데이터를 어떤 모습으로 저장 할것인지 표현하는 논리적 구조이다.

데이터구조는 자주 변하지 않고 정적인 특성이 있다.

연산은 데이터 구조에 따라 개념세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업으로 값이 연산에 의해 계쏙 변경 될 수 있으므로 동적이라는 특징이 있다.

제약 조건은 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항이 있다.


개체

개체-관계 모델은 피터 첸이 제안한 것으로 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법이다. 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것을 개체-관계(ER) 다이어그램이라 한다.

개체는 사람, 사물 처럼 물리적으로 존재하는 것 이외에도 다양한 것을 포함한다.
ER 다이어그램에서 개체는 사각형으로 표현된다.

개체는 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나, 상태와 같은 속성을 하나이상 가지고 있다. 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입이라고 한다.

개체 타입은 DB에서 테이블, 개체 이름은 테이블 명, 속성은 ATTRIBUTE로 변환된다.


속성

속성은 개체가 가지고 있는 고유의 특성이다. 속성은 그 자체만으로 의미는 없지만 관련 있는 속성들을 모아 개체를 구서앟면 하나의 중요한 의미를 가진다. 속성은 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식된다.

ER 다이어그램에서 속성은 타원으로 표현한다.

단일 값 속성, 다중 값 속성

특정 개체를 구성하는 속성의 값이 하나면 단일 값 속성, 아니면 다중 값 속성으로 분류한다.

ER 다이어그램에서 다중 속성은 이중 타원으로 표현된다.

단순 속성, 복합 속성

단순 속성은 의미를 더는 분해할 수 없는 속성이다. 예를 들어 강아지의 키에 대한 속성은 더이상 분해를 할 수 없는 단일 속성이다. 복합 속성은 의미를 분해 할 수 있는 속성이다. 주소를 도, 시, 동 등으로 분해 할 수 있는것 처럼 복합 속성은 의미를 분해 할 수 있다.

ER 다이어그램에서 복합 속성은 복합 속성에서 타원이 뻗어 나가는 그림으로 표현된다.

유도 속성

값이 별도로 저정되는것 이외에 다른 속성 값에서 유도되어 결정되는 속성을 유도 속성이라 분류한다. 점심의 가격이 정가와 할인율에 따라 판매가격이 책정되는데 이를 유도 속성이라 부른다.

ER 다이어그램에서 유도속성은 타원이 점선으로 표현된다.

NULL 속성

NULL 값은 DB에서 여러가지로 중요한 의미를 가진다. NULL 값이 허용되는 속성을 NULL 속성이라 부른다. NULL 값은 다양한 의미를 가지므로 이는 찾아볼 노력이 필요하다.

KEY 속성

개체를 구성하는 속성들 중에서 특별한 역할을 하는 속성을 KEY 속성이라 부른다. KEY 속성은 개체에서 인스턴스를 구별하는데 사용된다.

ER 다이어그램에서 KEY 속성은 속성 명칭에 밑줄을 그어 작성한다.


관계

관계는 개체 사이에서 가지는 의미 있는 연관성으로 개체-관계 모델에서 중요한 요소이다. 예를 들어 손님과 음식 관계에는 '손님이 음식을 구매한다'와 같은 관계를 가진다. 관계도 개체와 마찬가지로 속성을 가질 수 있다. 손님이 음식을 구매한 일자, 영수증 발행 여부와 같은 정보를 속성으로 가질 수 있다.

ER 다이어그램에서는 관계를 마름모로 표시한다.

관계의 유형

관계도 다양한 기준에 따라 분류 할 수 있다. 관계의 유형으론 1:1, 1:N, N:M 관계가 있다.

관계의 참여 특성

개체 A와 B 사이의 관계에서 'A의 모든 인스턴스가 관계에 반드시 참여해야 된다'라는 정의가 있으면 이는 필수적 참여, 전체 참여라고 부른다. 만약 일부만 참여해도 된다면 선택적 참여, 부분 참여라고 부른다.

ER 다이어그램에서 필수적 참여는 이중선으로 표시된다.

관계의 종속성

두 개체가 관계에 종속적인 특징을 가지면 관계에 종속성이 있다고 표현된다. 개체 A가 독자적으로 생성 될 수 없고, B의 존재 여부에 의존적이라면 A가 B에 종속되어 있다고 말한다.

종속성은 ER 다이어그램에서 중요한 개념이다. 추후에 조금 더 알아보자.

ER 다이어그램

ER 다이어그램은 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다. 이는 그림으로 표현하여 글로 작성한 것보다 이해력을 높일 수 있다.


논리적 데이터 모델

위에서 말한 내용은 개념적인 구조로 모델링하는 개념적 데이터 모델이다. 논리적 데이터 모델링에서는 ER 다이어그램으로 표현되는 개념적인 구조를 DB에 표현하는 형태를 결정하는 DB 관리 시스템 종류가 중요하다(?)

DB에 있는 데이터들 간의 관계를 표현하는 방법에 따라 다양한 논리적 데이터 모델이 존재한다. >데이터 모델의 종류 : 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델

계층 데이터 모델

계층 데이터 모델은 데이터베이스의 논리적 구조가 TREE 형식이다.

네트워크 데이터 모델

네트워크 데이터 모델은 DB의 논리적 구조가 GRAPH 혹은 네트워크 형태이다.

관계 데이터 모델

이후에 자세하게 설명한다.

profile
dev띠

0개의 댓글