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 [이것저것 남겨두는 블로그]
→ 학번에 의해서 관계없는 수강료가 영향을 받을 수 있다. (이행 종속성)
→ 분할해서 학번에 의해서 수강료가 영향을 받지 않게 수정
- 비정규화
- 데이터 모델링 규칙에 얽매이지 않고 시스템이 물리적으로 구현되었을 때 성능 향상이 될 수 있도록 한다.
- 정규화 규칙에 어긋나지만 신속히 자료를 찾아볼 수 있는 장점이 있을 경우 비정규화된 형태로 자료 저장
이상현상
- 삭제이상(deletion anomly) : 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 (triggered deletion) 발생
- 삽입이상(insertion anomly) : 투플 삽입 시 특정 속성에 해당하는 값이 없어 Null 값을 입력해야 하는 현상
- 수정이상(update anomly) : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 불일치 문제 (inconsitency) 발생
'학부 강의 > 소프트웨어 분석 및 설계' 카테고리의 다른 글
2022-05-21 소프트웨어_분석_및_설계_16 (보호) (0) | 2022.05.21 |
---|---|
2022-05-19 소프트웨어_분석_및_설계_15 (0) | 2022.05.19 |
2022-05-08 소프트웨어_분석_및_설계_13 (0) | 2022.05.08 |
2022-05-02 소프트웨어_분석_및_설계_12 (0) | 2022.05.02 |
2022-04-29 소프트웨어_분석_및_설계_11 (0) | 2022.04.29 |