JavaScript/JS백엔드
논리적 모델링
염두리안
2025. 1. 2. 13:19
728x90
반응형
비즈니스 룰) 특정 조직이 운영되기 위해 따라야 하는 정책, 절차, 원칙에 대한 간단 명료하한 설명
비즈니스 룰에서 개체, 속성, 관계 후보 찾기
- 모든 명사는 개체 후보다
- 모든 동사는 관계 후보다
- 하나의 값으로 표현할 수 있는 명사는 속성 후보다
여러 값을 갖는 속성
- 세번째 규칙에 대한 예외 경우 => 값으로 표현할 수 있는 명사여도 속성이 아닌 개체로 만듦
- 왜? NULL이 많이 생길 수 있음 | 컬럼 개수를 정하기가 애매 | 조회가 비효율적
식별자(Identifier): DB 내의 각 엔티티를 구별하는 속성이나 속성의 조합
- 주식별자와 보조식별자
- 주식별자(Primary): 엔티티에서 유일하게 식별할 수 있는 가장 중요한 속성
- 최소성 | 대표성 | 유일성 | 불변성 | 존재성
- 보조식별자(Secondary): 주식별자 외 엔티티를 식별할 수 있는 추가적인 속성
- 주식별자(Primary): 엔티티에서 유일하게 식별할 수 있는 가장 중요한 속성
- 내부식별자와 외부식별자
- 내부식별자(Internal): 엔티티 내부에서만 의미를 가짐
- 외부식별자(External): 다른 엔티티와의 관계를 통해 식별되는 식별자
- 단일식별자와 복합식별자
- 단일식별자(Single Attribute): 하나의 속성으로만 구성된 식별자
- 복합식별자(Composite): 두 개 이상의 속성을 결합해 만든 식별자
- 본질식별자와 인조식별자
- 본질식별자(Natural): 데이터 내부에서 자연스럽게 발생하는 식별자
- 인조식별자(Artificial): 데이터 식별위해 인위적으로 만들어진 식별자
NULL 속성: 값이 없음 또는 알 수 없음
- 일반 연산 시) NULL 반환
- 비교 연산 시) NULL은 다른 NULL과 비교해도 '같다'라고 판단 X ~> 참이 아닌 NULL
- 집계 함수 사용 시) SQL 집계 함수의 경우, NULL값 무시
- 논리 연산 시) 조건 중 하나가 NULL이라면, 전체 논리 연산의 결과도 NULL이 될 수 있음
카디널리티(Cardinality): 개체간에 몇 개의 관계로 연결될 수 있는지 | 일대일, 일대다, 다대다
- 1:1(일대일): 법적 부부관계
- 1:N(일대다): 학교 수업
- N:N(다대다): 찜하기 기능
트랜잭션
- 식별관계/비식별관계
- 식별관계(Identification): 부모 엔티티의 기본키가 자식 엔티티에서도 기본키의 일부로 사용되는 관계
- 비식별관계(Non-Identification): 부모 엔티티의 기본키가 자식 엔티티로 전달되지만, 자식 엔티티의 주요 키로 사용되지 않고 외래키로만 사용되는 관계
- 강한개체/약한개체
- 강한개체(Strong): 자체적으로 존재할 수 있는 독립적인 엔티티
- 약한개체(Weak): 강한 객체 없이는 존재할 수 없는 의존적인 엔티티
- 트랜잭션과의 연관성
- 트랜잭션: DB에서 수행되는 하나의 작업 단위나 일련의 연산 | 모두 함께 성공적으로 완료되거나 하나라도 실패할 경우 전체 작업이 취소 되어야 함
- 엔터티 간의 식별관계와 비식별관계는 트랜잭션 설계와 데이터 무결성 유지 방식에 중요한 영향을 미침... 특히 식별관계에선 부모-자식 엔티티간 관계가 더욱 긴밀하기에, 트랜잭션 설계에 있어 이를 고려해야 함
728x90
반응형