데이터베이스 (2)

김종하·2020년 10월 9일
2

데이터베이스

목록 보기
2/6

Entity

Entity(개체)란 유형 또는 무형의 저장되고 관리되어야 하는 데이터 집합을 의미한다.
내가 학교를 운영하는 교장이라면, 어떤식으로 데이터를 관리하는게 효용이 좋을 지 생각해보자. 학생들의 이름과 성적, 선생의 이름과 담당과목 이러한 데이터들이 중구난방으로 저장되어 있다고 생각해보자

김학생
김선생
1등
과학
23등
이학생
수학
이선생

이런식으로 저장된 데이터들은 크게 효용이없다. 따라서 적절한 분류가 필요하다.
그 분류의 기준의 첫번째는 데이터의 속성이다.
1등, 23등 이란 데이터는 무엇인가?
이 데이터들은 학생들의 등수를 표현한다.
그렇다면 김학생, 이학생, 김선생, 이선생과 같은 데이터들은 무엇인가?
바로, 이름을 의미한다.
이렇게 데이터가 가지는 속성으로 데이터들을 일차적으로 분류할수 있다.
분류가 완료되면 다음과 같다.

성적 1, 23
이름 김학생, 이학생, 김선생, 이선생
담당과목 과학, 수학

다음과 같이 분류된 데이터집합을 더 효용있게 분류할 순 없을까?
이 때 필요한 것이 바로 엔티티 이다. 우리는 쉽게 이 데이터들을 논리적으로 분류할 수 있다. 바로, 선생과 학생이란 기준으로 말이다. 이때 선생은 이름과 담당과목이란 속성을 가지고 있을 것이고 학생은 이름과 성적이란 속성을 가지고 있을 수 있다. 그리고 이런 학생과 선생이란 기준이 바로 엔티티가 된다. 이를 바탕으로 다시 한번 분류를 해보자.

학생 entity
이름 | 성적
김학생 | 1등
이학생 | 23등

선생 entity
이름 | 담당과목
김선생 | 수학
이선생 | 과학

이렇게 분류된 데이터들은 직관적이고, 효용이 높아진다.

Relation

그렇다면 Relation 이란 무엇일까?
릴레이션을 번역하면 관계이다. 관계가 왜 데이터에 필요할까를 잘 생각해보자.
교장이 선생들 중 한명을 뽑아 보너스를 지급하려한다고 생각해보자.
가장 능력있는 선생을 뽑아서 보너스를 주려고 할 때, 능력있는 선생의 기준을 높은 등수의 학생을 가르친 선생이라고 생각해보자. 위의 데이터 만으로는 한번에 알아볼 수 없음으로 학생 entity에 담당선생이란 속성을 추가해 보자

학생 entity
이름 | 성적 | 담당선생
김학생 | 1등 | 김선생
이학생 | 23등 | 이선생

이렇게 만들어진 데이터의 집합을 보면, 교장은 손쉽게 보너스를 지급할 선생을 찾아낼 수 있게 된다.

엔티티간의 관계는 사실 이미 논리적으로 설정이 되어있었다. 학생과 학생을 지도하는 선생 즉, 학생 엔티티와 선생 엔티티는 지도라는 추상적 개념아래 관계를 맺고 있었고, 이 둘의 관계를 이어 줄 속성하나를 추가함으로써 우리는 데이터를 더 효용적으로 관리할 수 있게 되었다.

0개의 댓글