파이썬 문법만 100일째 공부중인 IT초보의 페이지 자세히보기

Lv02. 디비~DB~딥!/1. SQLD : 데이터모델링의 이해

8. 식별자(Identifiers)

오늘도레벨1 2023. 5. 5. 14:36
728x90
SMALL

 

안녕하세요 :0

오늘도레벨1입니다.

 

데이터 모델링의 이해

파트의 마지막 포스팅입니다.

 

그 내용은 바로 식별자인데요.

 

우선! 지난 시간들의 내용이

완벽하지 않으면 이번 포스팅은

어렵게 느껴질 수 있으니

아래의 링크로 꼬옥!

복습해주시길 바랍니다!

 

 

 

5. 엔터티(Entity)

안녕하세요 :0 오늘도레벨1입니다. 가정의 달이 찾아왔습니다. 올해는 연휴도 날짜가 좋네요~ 잘 맞춰서 휴가들 즐기시면 좋겠습니다. 이번 시간부터는 데이터 모델의 구성 요소들 각각에 대해

seung9-it.tistory.com

 

 

6. 속성(Attribute)

안녕하세요 :0 오늘도레벨1입니다. 벌써 한주의 절반입니다. 이번주는 금요일부터 연휴가 시작되는데 휴일 계획은 세우셨을지요 ㅎㅎ 지난 포스팅에서는 엔터티에 대해서 알아보았습니다. 아직

seung9-it.tistory.com

 

7. 관계(Relationship)

안녕하세요 :0 오늘도레벨1입니다. 어린이날인데 날이 이렇게 우중충할 수 없네요. 비도 왔다 안왔다하니 연휴 계획을 외부로 잡으신 분들께는 심심한 위로의 말씀을 전합니다.. ㅠ 그래도 디비

seung9-it.tistory.com

 

 

자, 그럼 이번 포스팅도

본격적으로 시작해볼까요?

 

우선 식별자의 개념부터

보고 넘어가시죠!

 

엔터티는 인스턴스의

집합이라고 설명드렸습니다.

 

그럼 이러한 집합체(인스턴스)를

구분할 수 있는 이름이 필요하겠죠?

그것을 식별자라고 합니다.

 

예를 들면, 학생 엔터티의

각각의 학생(인스턴스)을 구분하기 위해

각각의 인스턴스에 학번을 부여해주면

쉽게 구분할 수 있는 것이죠!

 

만약, 이름은요? 하실 수 있는데

동명이인의 경우는 문제가 될 수 있겠죠?

 

아무튼! 이 식별자는 하나의

엔터티에 구성되어 있는 여러 개의 속성 중

엔터티를 대표할 수 있는 속성을 의미하며

하나의 엔터티에는 반드시 하나의 유!일!한!

식별자가 존재해야 합니다.

 

이러한 식별자는 주식별자인가

외부식별자인지 등에 따라 특징이

약간씩 차이가 있는데요.

 

중요한 것은 주식별자의

특징 4가지랍니다.

 

아래의 표를 통해서

함께 보시죠!

 

특징 내용 예시
유일성 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분 사원번호(주식별자)가 모든 직원들에 대해 개인별로 고유하게 부여됨
최소성 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 사원번호만으로도 고유한 구조인데 사원분류코드+사원번호로 식별자가 구성된다면 이는 부적절한 구조임
불변성 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념임
존재성 주식별자가 지정되면 반드시 데이터 값이 존재
(Null 안됨)
사원번호 없는 회사직원은 존재할 수 없음

 

 

예시와 함께보니

더욱 쉽게 이해가 되는 것 같네요!

 

참고로 외부식별자의 경우는

주식별자의 특징과 일치하지 않으며

참조무결성 제약조건에 따른

특징을 가지고 있다고 합니다.

 

 

 

 

그럼 이어서 식별자의 분류와

표기법에 대해서 살펴보겠습니다.

 

아래의 그림처럼

총 4가지 분류 기준으로

분류가 가능한데요!

 

 

식별자 분류 (출처 : 한국데이터산업진흥원)

 

 

아래의 표를 통해 상세 내용을

함께 알아보도록 하겠습니다.

 

 

분류 식별자 설명
대표성 여부 주식별자 엔터티 내에서 특정 인스턴스를 구분할 수 있는 식별자
보조식별자 엔터티 내에서 특정 인스턴스를 구분할 수 있지만 대표성은 가질 수 없는 식별자
스스로 생성 여부 내부식별자 엔터티 내부에서 스스로 만들어지는 식별자
외부식별자 자식엔터티에서 부모엔터티에 있는 식별자
단일 속성 여부
(속성의 수)
단일식별자 하나의 속성으로 구성된 식별자
복합식별자 둘 이상의 속성으로 구성된 식별자
대체여부 본질식별자 업무에 의해 만들어지는 식별자
인조식별자 업무적으로 만들어지지 않지만 원조 식별자가 구성이 복잡하여 인위적으로 만든 식별자

 

 

이해가 어려울수 있으니

물론 예시가 필요하겠죠?

 

식별자들의 예시는 아래의

식별자 표기와 같이 보실 수 있습니다.

 

 

식별자의 분류-데이터모델 (출처:블로그주인장 오늘도레벨1 / 레퍼런스: 유선배 SQL개발자 과외노트)

 

 

그림을 통해 보니 훨씬 더

이해가 쏙쏙 되는 것 같네요!

 

 

 

이어서 학습하실 내용은

주식별자의 도출 기준입니다.

 

데이터 모델링 작업에서

중요한 작업 중 하나가 바로

주식별자를 도출하기 위한 작업인데요.

 

다음과 같은 기준을 가지고

주식별자를 도출합니다.

 

1) 해당 업무에서 자주 이용되는

속성을 주식별자로 지정한다.

 

2) 명칭, 내역 등과 같은 이름으로 기술되는

것을은 가능하면 주식별자로 지정하지 않는다.

 

3) 복합으로 주식별자로 구성할 경우

너무 많은 속성이 포함되지 않도록 한다.

 

이 내용 또한, 4지선다로

나오기 참 좋아보이네요!

 

이번 포스팅에서 마지막 보실 내용은

식별자 관계와 비식별자 관계에 따른

식별자에 관한 내용인데요.

 

이 부분은 상세히 들어가면

내용이 많이 복잡하고 방대하여 간단히

요약하여 설명드리고 그 이상의 내용은

기출문제를 풀어가면서 역으로

이해하시는 방법을 추천드립니다.

 

우선, 그럼 식별자 관계에 대해

알아보도록 하겠습니다.

 

식별자 관계(Identification Relationship)는

부모 엔터티의 식별자가 자식 엔터티의

"주식별자"가 되는 관계입니다.

 

주식별자는 반드시 존재하야한다는

존재성의 특징을 말씀드렸었죠!

 

따라서, 부모 엔터티가 있어야만

생성이 가능하며 단일식별자인지

복합식별자인지에 따라서

1:1 또는 1:M 인지 결정되니다.

 

아래의 ERD를 참고하시면서

이해하시면 더 좋겠네요!

 

식별자관계 (출처: 유선배 SQL개발자 과외노트)

 

이번에는

비식별자 관계(Non-Identification Relationship)에

대해서 알아보도록 하겠습니다.

 

부모 엔터티의 식별자가

자식 엔터티의 주식별자가 아닌

일반 속성이 되는 관계입니다!

 

일반 속성의 속성값은 Null이 될 수 있으므로

부모 엔터티가 없는 자식 엔터티 생성이

가능하고 역으로 자식 엔터티가 존재하는

상태에서 부모엔터티가 삭제 될 수도 있죠!

 

 

 

 

이렇게, 이번 포스팅에는

식별자에 대해서 알아보는 시간을

가져보았으며 여기까지 SQLD 첫번째 파트인

데이터 모델링의 이해가 종료되었습니다.

 

정말 고생많으셨고,

시중 문제집 또는 여러가지 경로로

기출 문제나 유사 문제를 구하셔서

문제의 유형과 출제 방식, 내용을

꼭 확인해보시길 바랍니다!

 

그럼 저는 다음 파트인

"데이터 모델과 성능"으로

다시 돌아오도록 하겠습니다.

 

더불어, 진도가 좀 느린것 같아

세번째 파트인 SQL 기초 부분도

함께 포스팅을 시작해볼까 하는데..

제 몸과 시간이 허용될지는 잘 모르겠으나

열심히!!! 올려보도록 하겠습니다.

 

그럼 이만 글을 마치겠습니다.

행복한 주말 및 연휴되세요!

 

 

 

 

구독과 좋아요는 제게 큰 힘이 됩니다 :)

 

728x90
LIST

'Lv02. 디비~DB~딥! > 1. SQLD : 데이터모델링의 이해' 카테고리의 다른 글

7. 관계(Relationship)  (6) 2023.05.05
6. 속성(Attribute)  (4) 2023.05.03
5. 엔터티(Entity)  (4) 2023.05.02
4. 데이터 모델링의 이해 (3)  (2) 2023.04.21
3. 데이터 모델링의 이해 (2)  (2) 2023.04.18