일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 보울룸
- ERD
- 홈트
- rename
- 일기
- constraint
- 직장인일기
- 책리뷰
- 빅데이터
- 회사생활
- 인덱스
- INSERT
- 회사싫어
- Drop
- 데이터모델링
- null
- SQL
- SQLD
- 직장생활
- 전생
- data
- 30일글쓰기
- 넷플릭스
- 도전
- 환생
- where절
- Update
- 테이블삭제
- 30일챌린지
- ROWNUM
- Today
- Total
최보름달
[SQL] 엔티티(Entity) 본문
엔티티
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(thing)
- 엔티티는 속성을 갖는다.
ex) "학생" 이라는 엔티티에는 학번, 이름, 학점, 등록일자, 생일, 주소, 전화번호, 전공 등의 속성(Attribute)를 갖는다.
- 인스턴스가 모여 엔티티가 된다.
ex) "과목"이라는 엔티티에는 수학, 영어, 국어가 있다.
- 개념적인 것이지만 사실상 '테이블'과 같은 의미로 봐도 될 것 같다. (인스턴스는 컬럼)
엔티티와 인스턴스
엔티티는 대부분 사각형으로 표기한다.
우측 이미지에서 과목, 강사,사건은 엔티티고, 수학, 영어, 이춘식 강사, 조시형 강사는 인스턴스이다.
엔티티와 인스턴스 표기법
엔티티 특징
1. 업무에서 필요로 하는 정보이어야 한다.
- 업무영역 내에서 관리할 필요가 있어야 한다.
ex) '환자' 엔티티는 병원에서는 필요하지만 일반 회사는 필요가 없다.
2. 유일한 식별자에 의해 식별이 가능해야 한다.
ex) 직원을 구분하는 방법에 '이름', '사원번호'가 있다. 이 중에 '이름'은 동명이인이 있으므로 유일 식별자가 될 수 없다.
3. 인스턴스의 집합이어야 한다.
- 두 개 이상의 인스턴스가 있어야 한다는 말이다.
4. 업무 프로세스에 의해 이용되어야 한다.
- 1번에서 말한 것처럼 업무에서 필요로 할 뿐 아니라 '업무 프로세스'에도 이용되고 있어야 한다.
5. 속성이 있어야 한다.
- 속성(Attribute)가 반드시 포함되어야 한다.
6. 다른 엔티티와 최소 1개 이상의 관계가 있어야 한다.
- 엔티티가 있다는 것은 다른 업무와 연관성이 있다는 뜻이므로 다른 엔티티와 관계가 있어야 한다.
- 예외도 있기는 한데, 통계업무, 코드 엔티티, 내부 필요에 의한 엔티티의 경우 관계를 생략하기도 한다.
엔티티의 분류
1. 실체 유형에 따른 분류
- 유형 엔티티 : 물리적인 형태가 있고, 안정적이며 지속적으로 활용되는 엔티티 ex)사원, 물품, 강사...
- 개념 엔티티 : 물리적인 형태가 없고, 관리해야 할 개념적 정보로 활용되는 엔티티 ex)조직, 보험상품..
- 사건 엔티티 : 업무를 수행함에 따라 발생되는 엔티티. ex)주문, 청구, 미납....
2. 발생 시점에 따른 분류
- 기본/키 엔티티: 원래 업무에 존재하는 정보로 독립적으로 생성 가능하고 부모 역할을 함. ex)사원, 부서, 고객, 상품...
- 중심 엔티티: 기본엔티티로부터 발생되고 업무의 중심이 됨 ex)계약, 사고, 청구, 주문, 매출...
- 행위 엔티티: 두 개 이상의 부모엔티티로부터 발생되고 자주 변경됨 ex) 주문목록, 사원변경이력
엔티티 이름 짓기
- 현업에서 사용하는 용어를 쓴다.
- 약어를 사용하지 않는다.
- 단수명사를 사용한다.
- 유일한 이름이 사용되어야 한다. (중복X)
- 엔티티 생성 의미대로 이름을 부여한다.
ex) '고객제품' 이라고 이름 지으면 '고객이 주문한 제품'인지, '고객의 제품'인지 애매모호해진다. 정확한 이름을 지어주자.
* kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
느낀점: 이과생들은 실존하지 않는 것. 눈에 보이지 않는 것들을 분류하고 이름 짓기를 좋아하는 것 같다.
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] 관계(Relationship) (0) | 2020.07.16 |
---|---|
[SQL] 속성(Attribute) (0) | 2020.07.15 |
[SQL] 좋은 데이터 모델의 요소 (0) | 2020.07.15 |
[SQL] 데이터 모델 표기법, ERD (0) | 2020.07.13 |
[SQL] 데이터 모델링의 이해관계자 (0) | 2020.07.13 |