티스토리 뷰
엔티티란 무엇인가.
구글을 통해 몇 블로그를 찾아보니 다음과 같이 나온다.
Entity : 실체, 객체라는 의미로 실무적으로는 엔티티라고 부른다. 즉 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명 할 수 있다.
예를들어 학교라는 곳에서는 과목이라는 엔티티가 존재할 수 있고 엔티티는 인스턴스의 집합으로 나타나게 된다.
즉 과목이라는 엔티티가 있다면, 수학, 영어, 국어와 같은 인스턴스가 과목이라는 엔티티에 포함되는 것이다.
이때 엔티티는 자신이 가지고 있는 인스턴스를 설명할 수 있는, 나타낼 수 있는 속성을 가지게 된다.
그럼 여기서 궁금한것이 속성(Attribute)란 무엇인가?
속성의 사전적 의미는 어떤 사물의 성질이나 특징, 그것이 없다면 실체를 생각 또는 표현 할 수 없는 것이라 정의할 수 있는데, 데이터 모델의 관점에서의 속성은 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 저장할 수 있다.
엔티티, 인스턴스, 속성, 속성값의 관계에 대해서는
엔티티에는 두개 이상의 인스턴스가 존재하며, 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 하나의 속성은 하나의 인스턴스에만 존재할 수 있으며, 각 인스턴스는 하나의 속성에 대해 하나의 속성 값만 가질 수 있다.
이게 무슨말인가 싶었다.
하지만 그림으로 알고보니 이해가 되었다.
다음과 같이 MySQL을에서 student table을 만들고 id, first_name, last_name, date_of_birth, email의 칼럼을 만들었다.
여기서 엔티티란 student 학생이며, 이 학생의 성과 이름, 출생일, 이메일 주소가 속성이라는 것이다.
그리고 이 속성이 가질 수 있는 범위가 그 속성의 도메인 이라고 한다. 예를들어 위 출생일에서 출생일로서는 날짜만 가질 수 있지 다른 string값을 가지면 안된다. 초등학교라 가정할때 학년이라고 한다면 1~6까지만 가질 수 있는데, 이 범위를 도메인 이라고 한다.
즉 내가 이해한 바로는 다음과 같다.
student라는 개체, 즉 엔티티가 존재한다. 이 개체는 학생1, 학생 2같이 인스턴스를 가질 수 있고, 하나의 속성(성)은 인스턴스(학생)마다 하나씩만 존재할 수 있고, 각 인스턴스(각 학생)는 하나의 속성(칼럼 값)에 대해서 하나의 속성값만 가질 수 있다라는 것이다.
관계형 데이터베이스에서 개체(Entity)란 표현하려는 유형, 무형의 실체로 서로 구별되는 것을 의미하기에, 위 Student를 개체 집합(Entity Set)이라고 하며 학생 한명 한명을 개체 인스턴스(Entity instance)라고 하기 때문에 학생 한명 한명도 개체라 부를 수 있는 것 같다.
(틀릴수도 있다.. 틀렸더라면 나중에라도 다시 알게된다면 수정하겠다.)
Reference :
https://doorbw.tistory.com/227
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zzu0e&logNo=220689973139
'Programming > Database' 카테고리의 다른 글
원티드 프리온보딩 백엔드 챌린지 - 데이터베이스 1일차 (0) | 2023.02.09 |
---|---|
Database 인덱스 (0) | 2022.05.26 |
Data Normalization & Relationships: Splitting & Joining data (0) | 2022.05.14 |
(용어정리) 쿼리, DBMS, Connection Pool, Connection Leak, 스키마 (0) | 2021.11.25 |
Transaction(트렌잭션) 이란? (0) | 2021.11.15 |
- Total
- Today
- Yesterday