JavaScript/JS백엔드

논리적 모델링

염두리안 2025. 1. 2. 13:19
728x90
반응형

비즈니스 룰) 특정 조직이 운영되기 위해 따라야 하는 정책, 절차, 원칙에 대한 간단 명료하한 설명

비즈니스 룰에서 개체, 속성, 관계 후보 찾기

  • 모든 명사는 개체 후보다
  • 모든 동사는 관계 후보다
  • 하나의 값으로 표현할 수 있는 명사는 속성 후보다

여러 값을 갖는 속성

  • 세번째 규칙에 대한 예외 경우 => 값으로 표현할 수 있는 명사여도 속성이 아닌 개체로 만듦
    • 왜? NULL이 많이 생길 수 있음 | 컬럼 개수를 정하기가 애매 | 조회가 비효율적

식별자(Identifier): DB 내의 각 엔티티를 구별하는 속성이나 속성의 조합

  • 주식별자와 보조식별자
    • 주식별자(Primary): 엔티티에서 유일하게 식별할 수 있는 가장 중요한 속성
      • 최소성 | 대표성 | 유일성 | 불변성 | 존재성
    • 보조식별자(Secondary): 주식별자 외 엔티티를 식별할 수 있는 추가적인 속성
  • 내부식별자와 외부식별자
    • 내부식별자(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
반응형