반응형
데이터모델링을 하는 이유
- 업무 정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써
정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하기 위한 목적 - 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 목적
데이터모델링 시 유의점
비유연성(Inflexibility)
- 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써
유지보수의 어려움을 가중시킬 수 있음
데이터모델링 관계
ERD : 존재적 관계와 행위에 의한 관계를 구분 X
- 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나,
ERD에서는 관계를 연결할 때 존재와 행위를 구분하지 않고 단일화된 표기법을 사용
클래스 다이어그램 : 연관관계와 의존관계로 표현하여 구분 O
- UML(Unified Modeling Language)에는 클래스 다이어그램의 관계 중
연관관계(Association)와 의존관계(Dependency)가 있고 이것은 실선과 점선의 표기법으로 다르게 표현
개념스키마(Conceptual Schema)
- 통합 데이터베이스 구조
- 모든 사용자 관점을 통합한 조직 전체의 관점의 통합적 표현
- 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로
DB에 저장되는 데이터와 그들 간의 관계를 표현한 스키마
엔터티 (엔터티가 기억나지 않을 땐 전설의 포켓몬 앤테이를 떠올려 보자(?))
- 속성이 없는 엔터티는 없을 수 없다. 반드시 속성을 가져야 한다.
- 하나의 엔터티는 두 개 이상의 속성을 갖는다.
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (업무 프로세스에 의해 이용돼야 함)
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. (단, 통계성·코드성 엔터티의 경우 관계 생략 가능)
- 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.
속성
업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티에 대한 자세하고 구체적인 정보를 나타낸다.
- 하나의 인스턴스에서 각각의 속성은 한 개의 속성값을 가져야 한다. ('한 개 이상'이라고 낚는 문제 출제 多)
- 속성도 집합이다.
도메인
각 속성이 가질 수 있는 값의 범위 (엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정)
주식별자(Primary Identifier)
- 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정되면 반드시 값이 들어와야 한다.
특징
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 유일성 : 주식별자에 의해 엔터티 내 모든 인스턴스들을 유일하게 구분
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재 (Null 불가)
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- (노랭이 교재 기준 위의 4가지지만 혹시 몰라 대표성 추가)
대표성 : 주식별자는 엔터티를 대표할 수 있어야 함
후보키(Candidate Key) : 최소성과 유일성 만족
슈퍼키(Super Key) : 유일성만 만족하고 최소성은 만족X
외래키(Foreign Key) : 하나 혹은 다수의 다른 테이블의 기본키 필드를 가리키는것으로 참조 무결성을 확인하기 위해 사용
식별 관계와 비식별 관계
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 |
- 반드시 부모엔터티 종속 - 자식 주식별자 구성에 부모 주식별자 포함 필요 - 상속받은 주식별자 속성을 타 엔터티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자 구성을 독립적으로 구성 - 자식 주식별자 구성에 부모 주식별자 부분 필요 - 상속받은 주식별자 속성을 타 엔터티에 차단 필요 - 부모쪽의 관계 참여가 선택 관계 |
+ 추가
- 부모엔터티의 인스턴스가 자식 엔터티와 같이 소멸되는 경우 식별자관계로 정의하는 것이 더 적합
- 부모엔터티의 주식별자를 자식엔터티에서 받아 손자엔터티까지 계속 흘려보내려면 식별자관계를 고려
- 자식테이블에서 독립적인 Primary Key의 구조를 가지기 원할 때 비식별자관계를 고려
- 관계의 강약을 분석해 상호간에 연관성이 약할 경우 비식별자관계를 고려
- 모든 관계가 식별자 관계로 연결되면 SQL Where절에서 비교하는 항목이 증가되어 Join에 참여하는 테이블에 따라
SQL문장이 길어져 SQL문의 복잡성이 증가되는 것을 방지하기 위해 비식별자관계를 고려
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQLD 노랭이 112번~127번 마지막 문제까지 나오는 (윈도우함수, PL/SQL) 요약 정리 (0) | 2023.06.07 |
---|---|
SQLD 노랭이 105번 문제부터 나오는 ROLLUP, CUBE, GROUPING SETS 완벽 정리 (0) | 2023.06.07 |
SQLD 노랭이 기출 단답형 예상문제 모음 (0) | 2023.06.07 |
SQLD 노랭이 2과목 요점 정리 (SQL 기본 및 활용) (0) | 2023.06.07 |
SQLD 기출문제 CBT 정리 (0) | 2023.06.05 |