👁🗨 SQLD(SQL-Developer) 시험 안내
- 객관식 50문항 (1시간 30분 응시)
- 평균 60점 이상 합격
| 과목명 | 문항수 | 배점 | 과락기준 | 검정시간 |
| 데이터 모델링의 이해 | 10 | 20(문항당 2점) | 8점 미만 | 90분 |
| SQL 기본 및 활용 | 40 | 80(문항당 2점) | 32점 미만 | |
| 계 | 50 | 100 |
💙 모델링의 개념
- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
- 데이터베이스의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의
💙 모델링의 특징
1. 단순화(Simplification)
- 현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거
- 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐
2. 추상화(Abstraction)
- 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정
- 다양한 현상을 일정한 양식인 표기법에 따라 표현
3. 명확화(Clarity)
- 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술하는 과정
- 명확화를 통해 모델을 이해하는 이들의 의사소통을 원활히 함
💙 데이터 모델링 유의점
1. 중복(Duplication)
- 한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
2. 비유연성(Inflexibility)
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의
- 데이터 정의를 프로세스와 분리
3. 비일관성(Inconsistency)
- 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 데이터간 상호연관 관계를 명확히 정의
- 데이터 품질 관리 필요
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
💙 데이터 모델링 3가지 요소
- 대상(Entity) : 업무가 관리하고자 하는 대상(객체)
- 속성(Attribute) : 대상들이 갖는 속성(하나의 특징으로 정의될 수 있는 것)
- 관계(Relationship) : 대상들 간의 관계
💙 데이터 모델링의 3단계
1. 개념적 모델링
- 업무 중심적이고 포괄적(전사적)인 수준의 모델링
- 추상화 수준이 가장 높음
- 업무를 분석 뒤 업무의 핵심 엔터티(Entity)를 추출하는 단계
- 도출된 핵심 엔터티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
2. 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
- 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용 시 재사용 가능
- 동일한 논리적 모델을 사용하는 경우 쿼리도 재사용 가능
- 데이터 정규화 수행
- 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
3. 물리적 모델링
- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
- 데이터베이스 성능, 디스크 저장구조, 하드웨어의 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
- 추상화 수준은 가장 낮음(가장 구체적인 모델링이므로)
💙 데이터 모델의 표기법(ERD : Entity Relationship Diagram)
- 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램
- 1976년 피터 첸(Peter Chen)이 만든 표기법, 데이터 모델링 표준으로 사용
💙 ERD 작성 절차 (6단계)
1️⃣ 엔터티를 도출한 후 그린다
2️⃣ 엔터티 배치
3️⃣ 엔터티 간의 관계를 설정
4️⃣ 관계명을 서술
5️⃣ 관계의 참여도 기술
6️⃣ 관계의 필수 여부를 확인
💙엔터티(Entity)의 개념
- 현실 세계에서 독립적으로 식별 가능한 객체나 사물을 나타냄
- 엔터티는 업무상 분석해야 하는 대상(Instance)들로 이루어진 집합
- 인스턴스는 엔터티의 특정한 속성 값들로 구성되며, 엔터티의 개념을 현실에서 구체적으로 나타낸 것
예) 엔터티와 속성, 인스턴스 등의 관계
- 엔터티(Entity): 학생
- 속성(Attribute): 학번, 이름, 학과 등.
- 식별자(Identifier): 학번(고유한 학번으로 각 학생을 식별)
- 인스턴스: 특정 학생의 데이터
- 학번: 2021001
- 이름: 홍길동
- 학과: 컴퓨터 공학
💙엔터티(Entity)의 특징
1️⃣ 유일한 식별자에 의해 식별 가능
- 인스턴스가 식별자에 의해 한 개씩만 존재하는 지 검증 필요
- 유일한 식별자는 그 엔터티의 인스턴스만의 고유 이름
ex) 이름은 동명이인이 있을 수 있으므로 사번, 학번 등이 고유식별자
2️⃣ 해당 업무에 필요하고 관리하고자 하는 정보
- 설계하는 업무의 시스템 구축에 필요한 정보여야 함
ex) 학교 시스템 구축 시 학생정보 필요. 다른 업무엔 학생 정보 불필요.
3️⃣ 인스턴스들의 집합
- 영속적으로 존재하는 2개 이상의 인스턴스의 집합
- 인스턴스가 한 개 밖에 없는 엔터티는 집합이 아니므로 성립이 안됨.
4️⃣ 엔터티는 반드시 속성을 가짐
- 각 엔터티는 2개 이상의 속성을 가짐
- 하나의 인스턴스는 각각의 속성들에 대한 1개의 속성 값만을 가짐
ex) 학생 엔터티에서 한 학생의 데이터(인스턴스)의 이름(속성) 정보에는 반드시 한 값만 저장됨
5️⃣ 엔터티는 업무 프로세스에 의해 이용
- 업무적으로 필요해 선정했지만 실제 사용되지 않으면 잘못 설계된 것
- 모델링 시 발견하기 어려운 경우 데이터 모델 검증이나 상관 모델링 시 단위 프로세스 교차점검으로 문제 도출
- 누락된 프로세스의 경우 추후 해당 프로세스 추가
- 반대로 사용되지 않는 고립 엔터티는 제거 필요
6️⃣ 다른 엔터티와 최소 1개 이상의 관계 성립
- 엔터티는 업무적 연관성을 갖고 다른 엔터티와 연관의 의미를 가짐
- 관계가 없는 엔터티 도출은 부적절한 엔터티이거나 적절한 관계를 찾지 못한것
💙엔터티의 분류
1) 유형과 무형에 따른 분류
1️⃣ 유형엔터티
- 물리적 형태가 있음(실체가 있는 대상)
- 안정적이며 지속적으로 활용되는 엔터티
- 업무로부터 구분하기가 가장 용이한 엔터티
ex) 사원, 물품, 감사 등
2️⃣ 개념엔터티
- 물리적인 형태 없음
- 관리해야 할 개념적 정보로부터 구분되는 엔터티
ex) 조직, 보험상품 등
3️⃣ 사건엔터티
- 업무를 수행에 따라 발생하는 엔터티
- 발생량이 많고 각종 통계자료에 이용
ex) 주문, 청구, 미납 등
2) 발생 시점에 따른 분류
1️⃣ 기본엔터티
- 그 업무에 원래 존재하는 정보
- 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성
- 타 엔터티의 부모 역할을 하는 엔터티
- 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐
ex) 사원, 부서, 고객, 상품 등
2️⃣ 중심엔터티
- 기본엔터티로부터 발생되고 그 업무에서 중심적인 역할
- 많은 데이터가 발생되고 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성
ex) 계약, 사고, 청구, 주문, 매출 등
3️⃣ 행위엔터티
- 2개 이상의 부모엔터티로부터 발생
- 자주 내용이 바뀌거나 데이터 양이 증가
- 분석 초기 단계보다는 상세 설계 단계나 프로세스와 상관모델링을 진행하면서 도출
ex) 주문(고객과 상품 엔터티로부터 발생하므로 행위엔터티이기도 함), 사원변경이력, 이력 등
💙엔터티의 명명
1️⃣ 현업에서 사용하는 용어 사용
2️⃣ 가능하면 약자 사용은 자제
3️⃣ 단수 명사 사용
4️⃣ 모든 엔터티에서 유일하게 이름 부여
5️⃣ 엔터티 생성 의미대로 이름 부여
'자격증 > SQLD' 카테고리의 다른 글
| SQLD(SQL-Developer) (6) (2) | 2024.10.28 |
|---|---|
| SQLD(SQL-Developer) (5) (2) | 2024.10.24 |
| SQLD(SQL-Developer) (4) (5) | 2024.10.18 |
| SQLD(SQL-Developer) (3) (4) | 2024.10.09 |
| SQLD(SQL-Developer) (2) (4) | 2024.09.27 |