2022-05-19 소프트웨어_분석_및_설계_14

2022. 5. 19. 00:27학부 강의/소프트웨어 분석 및 설계

식별자

 

식별자 종류

한 엔티티 내의 특정 인스턴스를 구분할 수 있는 단일 속성 또는 속성 그룹

  • 후보 식별자 : 엔티티의 각 인스턴스를 유일하게 식별하기 위해 제공되는 속성이나 속성 그룹
  • 주 식별자 : 유일하게 식별하는 데 가장 적합한 것. 효율적이며 정적이다. not null. 업무 활용도가 높음.
  • 부 식별자 : = 후보 식별자 - 주 식별자
  • 대리 식별자 : 보안상 혹은 효율상의 이유로 주 식별자를 대체하는 인위적이고 단순한 단일 속성
  • 역 엔트리 : 어떤 속성이 특정 엔티티 인스턴스에 접근하는데 자주 사용될 경우 선택. DB 효율성을 위한 index. 유일할 필요성은 없다.

 

식별자 업무규칙

  • 참조 무결성(Referential integrity) : 엔티티 관계의 무결성을 강조
  • 엔티티 내 인스턴스가 입력, 삭제되거나 외부 식별자가 변경될 때 계속적인 관계 유지 방법 정의

 

업무 규칙 옵션

  • 입력 규칙 : 자식 엔티티의 인스턴스 입력 시 적용하는 업무규칙
  • 삭제 규칙 : 부모 엔티티의 인스턴스 삭제 시 적용하는 업무규칙
    • CASCADE : 삭제되는 부모 인스턴스와 대응되는 자식 인스턴스 모두 삭제
    • RESTRICT : 대응되는 자식 인스턴스가 없을 경우만 부모 인스턴스 삭제 허용
    • SET NULL : 부모 인스턴스의 삭제를 언제나 허용, 대응되는 자식 인스턴스의 외부 식별자를 NULL 값으로 설정

참고

개체 무결성(Entity integrity) : 기본 키를 구성하는 속성은 Null 값이나 중복 값을 가질 수 없음을 의미하는 제약조건

 


속성

 

속성(Attribute)

  • 엔티티의 특징을 나타내는 요소
  • 기초 속성 : 외부로부터 정보가 제공되어야만 유지된다.
  • 추출(파생) 속성 : 기존 속성으로부터 가공 처리를 통해 생성 및 유지된다. 속성의 정의 시 추출 알고리즘을 기록해야 한다.
  • 설계 속성 : 시스템의 효율성을 도모하기 위해 설계자가 임의로 부여하는 속성이다.

 

도메인 : 속성이 가질 수 있는 값의 범위

 


정규화

 

복잡한 데이터 구조를 단순화시켜 안정적인 구조로 변환하는 과정

 

함수 종속성 이론에 근거

(만약 A 속성 값이 정해지면 대응하는 B 속성값이 한 가지로 정해진다. 그렇다면 B는 A에 함수 종속적이라고 하고 A → B로 표기함.)

 

정규화의 목적

  • 정보의 중복 최소화
  • 정보의 일관성 확보
  • 무결성 극대화
  • 정보구조의 안정성 최대화
  • 정보 모형의 단순화
  • 정보의 신뢰도 증대

 

정규화 단계

  • 1차 정규화 : 반복되는 속성의 분할 제거, 원자 값으로 분할

 

  • 2차 정규화
    • 주 식별자에 종속되지 않는 속성의 분할 제거
    • 삭제 이상, 삽입 이상, 갱신 이상 (Delete/Insert/Update Anomaly)
    • 하나의 저장소를 분할함으로써 부분 함수 종속성 제거.
    • 릴레이션에서 종속자가이 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 속성 중 일부만 종속되는 경우입니다. 출처: https://dodo000.tistory.com/20 [이것저것 남겨두는 블로그]

→ 주 식별자 학번, 과목 중 학번과 교수는 서로 종속관계가 아니다.

 

-> 특정 과목의 교수가 누구인지 알려면 학번도 알아야 한다. & 과목의 교수가 변경되면 해당과목의 모든 학변의  교수를 수정해야한다.

 

→ 학번과 과목을 알면 학점을 알 수 있고 과목을 알면 교수를 알 수 있게 분할. (모든 속성이 주 식별자에 대해 완전 함수 종속관계)

 

  • 3차 정규화
    • 비식별자 속성에 종속하는 속성의 분할 제거 (이행 종속성 제거)
    • 삭제 이상
    • 하나의 저장소를 분할함으로써 이행 종속성 제거
    • X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때 이행적 함수 종속이라고 합니다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말합니다. 출처: https://dodo000.tistory.com/20 [이것저것 남겨두는 블로그]

→ 학번에 의해서 관계없는 수강료가 영향을 받을 수 있다. (이행 종속성)

→ 분할해서 학번에 의해서 수강료가 영향을 받지 않게 수정

 

  • 비정규화
    • 데이터 모델링 규칙에 얽매이지 않고 시스템이 물리적으로 구현되었을 때 성능 향상이 될 수 있도록 한다.
    • 정규화 규칙에 어긋나지만 신속히 자료를 찾아볼 수 있는 장점이 있을 경우 비정규화된 형태로 자료 저장

이상현상

  1. 삭제이상(deletion anomly) : 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 (triggered deletion) 발생
  2. 삽입이상(insertion anomly) : 투플 삽입 시 특정 속성에 해당하는 값이 없어 Null 값을 입력해야 하는 현상
  3. 수정이상(update anomly) : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 불일치 문제 (inconsitency) 발생