티스토리 뷰

엔티티란 무엇인가.

구글을 통해 몇 블로그를 찾아보니 다음과 같이 나온다.

Entity : 실체, 객체라는 의미로 실무적으로는 엔티티라고 부른다. 즉 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명 할 수 있다.

예를들어 학교라는 곳에서는 과목이라는 엔티티가 존재할 수 있고 엔티티는 인스턴스의 집합으로 나타나게 된다. 

즉 과목이라는 엔티티가 있다면, 수학, 영어, 국어와 같은 인스턴스가 과목이라는 엔티티에 포함되는 것이다.

이때 엔티티는 자신이 가지고 있는 인스턴스를 설명할 수 있는, 나타낼 수 있는 속성을 가지게 된다.

 

그럼 여기서 궁금한것이 속성(Attribute)란 무엇인가?

속성의 사전적 의미는 어떤 사물의 성질이나 특징, 그것이 없다면 실체를 생각 또는 표현 할 수 없는 것이라 정의할 수 있는데, 데이터 모델의 관점에서의 속성은 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 저장할 수 있다.

 

엔티티, 인스턴스, 속성, 속성값의 관계에 대해서는

엔티티에는 두개 이상의 인스턴스가 존재하며, 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 하나의 속성은 하나의 인스턴스에만 존재할 수 있으며, 각 인스턴스는 하나의 속성에 대해 하나의 속성 값만 가질 수 있다.

 

이게 무슨말인가 싶었다.

하지만 그림으로 알고보니 이해가 되었다.

다음과 같이 MySQL을에서 student table을 만들고 id, first_name, last_name, date_of_birth, email의 칼럼을 만들었다.

여기서 엔티티란 student 학생이며, 이 학생의 성과 이름, 출생일, 이메일 주소가 속성이라는 것이다.

 

그리고 이 속성이 가질 수 있는 범위가 그 속성의 도메인 이라고 한다. 예를들어 위 출생일에서 출생일로서는 날짜만 가질 수 있지 다른 string값을 가지면 안된다. 초등학교라 가정할때 학년이라고 한다면 1~6까지만 가질 수 있는데, 이 범위를 도메인 이라고 한다.

 

즉 내가 이해한 바로는 다음과 같다.

student라는 개체, 즉 엔티티가 존재한다. 이 개체는 학생1, 학생 2같이 인스턴스를 가질 수 있고, 하나의 속성(성)은 인스턴스(학생)마다 하나씩만 존재할 수 있고, 각 인스턴스(각 학생)는 하나의 속성(칼럼 값)에 대해서 하나의 속성값만 가질 수 있다라는 것이다.

각 Row는 student 개체에 대한 하나의 인스턴스 이다.  그리고 각 인스턴스들은 column에 해당하는 속성에 대하여 하나의 값만을 가진다.

관계형 데이터베이스에서 개체(Entity)란 표현하려는 유형, 무형의 실체로 서로 구별되는 것을 의미하기에, 위 Student를 개체 집합(Entity Set)이라고 하며 학생 한명 한명을 개체 인스턴스(Entity instance)라고 하기 때문에 학생 한명 한명도 개체라 부를 수 있는 것 같다.

 

(틀릴수도 있다.. 틀렸더라면 나중에라도 다시 알게된다면 수정하겠다.)

Reference : 

https://blog.naver.com/PostView.naver?blogId=soojin_2604&logNo=221982279992&categoryNo=25&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=search&userTopListOpen=true&userTopListCount=10&userTopListManageOpen=false&userTopListCurrentPage=1 

https://doorbw.tistory.com/227

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zzu0e&logNo=220689973139 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday