#1 데이터 모델링에 대해
- 모델링은 단지 시스템 구현만을 위해 수행하는 task X, 시스템 구현을 포함한 업무분석 및 업무 형상화를 하는 목적도 존재
1) 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
2) 현실 세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
(-->따라서 모델링을 수행하고 나서 별도의 표기법을 이용한다 X)
3) 데이터베이스를 구축하기 위한 분석/설계의 과정
- 데이터 모델링에서 주의해야 할 점
1) 중복
2) 비유연성: 데이터 정의를 데이터 사용 프로세스와 분리한다
3) 비일관성: 데이터와 데이터 간의 관계에 대한 명확한 정의 필요
- 데이터 모델링의 3가지 특징
1) 추상화
2) 단순화
3) 명확화
- 데이터 모델링의 3단계 과정
1) 개념적: 추상화 수준 높음. 엄무 중심적이고 포괄적인 수준의 모델링
2) 논리적: 시스템으로 구축하고자하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현, 높은 재사용
3) 물리적: 실제로 데이터 베이스에 이실할 수 있도록 성능, 저장 등 물리적인 성격 고려
*계획단계 --> 개념적모델링/ 분석단계-->논리적 모델링 / 설계 단계-->물리적 모델링
- 데이터 베이스 스키마 구조 3단계 (ANSI-SPARC)
1) 외부 스키마 = 서브 스키마 : 각각 개별 집주인이 보는 집 (응용프로그래머의 관점_일부를 봄)
2) 개념 스키마 = 스키마 : 관리자가 보는 집 (데이터베이스 관리자의 관점_전체적인 논리적 구조)
3) 내부 스키마 = 저장 스키마: 건설업체가 보는 집 (시스템 프로그래머, 설계자의 관점_물리적 저장 장치의 입장에서 본 실제 데이터베이스 구조)
*스키마: 평면도 / 데이터 베이스:집 / 테이블: 방
-데이터 독립성 2가지
하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
1) 논리적 데이터 독립성 (응용 인터페이스 독립성 유지)
2) 물리적 데이터 독립성 (저장 인터페이스 독립성 유지)
#2 식별자
-식별자 개념
하나의 엔터티에 구성되어 있는 여러개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미
하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야함
- 식별자의 특징
1) 유일성: 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 함
2) 최소성: 주식별자를 구성하는 속서의 수는 유일성을 만족하는 최소의 수가 되어야 함
3) 불변성: 결정된 식별자는 자주 변경되지 X
4)존재성: 주식별자가 결정되면 반드시 값이 들어와야 함
- 식별자 관계 (부모--> 자식 상속 as for 주식별자)**계속 까먹어...ㅠ
1) 식별자 관계 : 부모의 주식별자가 자식의 주식별자로 상속됨
(NULL값X --> 반드시 부모엔터티가 생성되어야함/ 실선 표현)
2) 비식별자 관계:부모의 엔터티를 상속 받았지만, 자식 엔터티의 주식별자로 사용하지X 일반적인 속성으로만 사용하는 경우
(자식 주식별자 구성을 독립적으로 구성/자식 주식별자 구성에 부모 주식별자 부분 필요/약한 연결 관계/점선 표현 )
3) 식별자 관계와 비식별자 관계 결정: 외부 식별자 FK
- 식별자의 종류
1) 주식별자 vs. 보조식별자: 대표성을 가지는가?
2) 내부식별자 vs. 외부식별자: 엔터티 내에서 스스로 생성되었는가?
3) 단일식별자 vs. 복합식별자: 단일 속성으로 식별이 되는가?
4) 본질식별자 vs. 인조식별자: 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해
EX) 사번의 경우, 업무적으로 의미 있는 식별자로 시스템적으로 부여된 인조 식병자가 아니라 일반적으로 사원 인스턴스의 탄생과 함께 업무적으로 부여되는 사원 인스턴스의 본질적인 속성에 해당되므로 본질 식별자라고 볼 수 있다...
- 주식별자 도출기준
1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정
2) 이름, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 X
3) 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 함
4) 자주 수정되는 속성은 주식별자로 두지 않도록 함
#3 관계 (ERD)
- 작성 순서
1) 엔터티를 그림
2) 엔터티를 적절하게 배치
(가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치하여 전체 엔터티와 어울릴 수있도록함)
3) 엔터티간 관계를 설정
4) 관계명을 기술 (관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당)
5) 관계의 참여도를 기술
6) 관계의필수여부를 기술
- 관계 표기법
1) 관계명: 관계의 이름
2) 관계차수: 1:1, 1:M, M:N
3)선택사양 : 필수관계, 선택관계
- 두개의 엔터티 간 관계 정의 체크 사항
1) 두 개의 엔터티 사이에 연관규칙이 존재?
2) 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
3) 업무기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가?/ 현재형으로 쓰여있는가?
4) 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가?
- 관계 읽기
1) 기준 엔터티를 한개 또는 각 으로 읽는다
2) 대상(Target) 엔터티의 관계참여도 즉 개수(하나,하나 이상)를 읽는다
3)관계선택사양과 관계명을 읽는다
- ERD와 UML
UML(클래스다이어그램): 연관관계와 의존관계 (실선, 점선으로 표기)
ERD: 존재관계와 행위관계 (표기법 같음)
-존재 관계: 부서와 사원 엔터티 간의 소속관계
-행위 관계: 주문과 배송 엔터티 간의 배송근거 관계
#4 엔터티
1) 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다
2) 유일한 식별자에 의해 식별이 가능해야 한다
3) 영속적으로 존재하는 인스턴스의 집합이어야 한다 (두개 이상 --> 한 개X)
4) 엔터티는 업무 프로세스에 의해 이용되어야 한다
5) 엔터티는 반드시 속성이 있어야 한다 (한개의 엔터티는 두개 이상의 속성을 갖음/ 한개의 속성은 한개의 속성값을 갖음)
- 속성(ATTRIBUTE)이란? 업무에서 필요로하는 인스턴스에서 솬리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
6) 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다
- 엔터티 분류
1) 발생시점 (abm으로 암기하기)
- 기본 엔터티(키엔터티): 다른 엔티티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐
- 중심 엔터티(메인엔터티)
- 행위 엔터티
2) 유무형
- 유형 엔터티
- 개념 엔터티
- 사건 엔터티
- 엔터티를 명명하는 기준
1) 가능하면 현업업무에서 사용하는 용어를 사용
1) 가능하면 약어를 사용하지 않음
3) 단수명사를 사용
4) 모든 엔터티를 통틀어서 유일하게 이름이 부여되어야함
5) 엔터티 생성 의미대로 이름을 부여
#5 속성
엔터티를 설명하고 인스턴스의 구성요소가 된다
- 속성의 특징
1) 기본 속성 : 원래 속성
2) 설계 속성: 1:1 치환 (ex. 001-식품용기)_ 코드 엔티티를 따로 구분+값에는 코드값만 표기
3) 파생 속성: 계산값 (ex. 용기의 총 금액)_ 데이터를 조회할때 빠른 성능을 낼 수 있도록 함
- 도메인: 각 속성이 가질 수 있는 값의 범위 (엔터티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약 사항을 지정하는 것)
- 속성의 명칭 부여
1) 해당업무에서 사용하는 이름을 부여
2) 서술식 속성명은 사용하지 X
3) 약어 사용은 가급적 제한
4) 전체 데이터에서 유일성 확보하는 것이 좋음
'SQL스터디 > SQL자격검정시험_정리' 카테고리의 다른 글
SQL자격검정실전문제_데이터 모델과 성능(2) (0) | 2022.09.04 |
---|---|
SQL 자격 검정 실전문제_활용파트(4) (0) | 2022.09.04 |