Learn & Record

[SQLD] SQL 자격검정 실전문제 핵심 정리 (데이터모델링의 이해, 데이터 모델과 SQL) 본문

Certificate/SQLD

[SQLD] SQL 자격검정 실전문제 핵심 정리 (데이터모델링의 이해, 데이터 모델과 SQL)

Walker_ 2024. 3. 4. 22:20

[ 제 1장 데이터모델링의 이해 ]

 

1. 데이터 모델링이란

 - 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법

 - 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정

 - 데이터베이스를 구축하기 위한 분석 및 설계의 과정

 

2. 데이터 모델링 유의점

 - 중복, 비유연성, 비일관성

 

3. 데이터베이스 스키마 구조 3단계

 - 외부스키마, 개념스키마, 내부스키마

 

4. ERD 작성 순서

 - 1. 엔티티를 그린다

 - 2. 엔티티를 적절하게 배치한다

 - 3. 엔티티 간 관계를 설정한다

 - 4. 관계명을 기술한다

 - 5. 관계의 참여도를 기술한다

 - 6. 관계의 필수여부를 기술한다

 

5. 엔티티의 특징

 - 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다

 - 유일한 식별자에 의해 식별이 가능해야 한다

 - 영속적으로 존재하는 인스턴스의 집합이어야 한다 ( '한 개' 가 아니라 '두 개 이상')

 - 엔티티는 업무 프로세스에 의해 이용되어야 한다

 - 엔티티는 반드시 속성이 있어야 한다

 - 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다

 

6. 발생 시점에 따른 엔티티 분류

 - 기본, 키 엔티티

 - 중심 엔티티

 - 행위 엔티티

 

7. 엔티티, 인스턴스, 속성, 속성값의 관계

 - 한 개의 엔티티는 두 개 이상의 인스턴스 집합이어야 한다

 - 한 개의 엔티티는 두 개 이상의 속성을 갖는다

 - 한 개의 속성은 한 개의 속성값을 갖는다

 

8. 속성의 특성에 따른 분류

 - 기본속성, 설계속성, 파생속성

 

9. 도메인

 - 각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인이라 하며, 엔티티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약사항을 지정하는 것이다.

 

10. 속성의 명칭 부여

 - 해당 업무에서 사용하는 이름을 부여한다

 - 서술식 속성명은 사용하지 않는다

 - 약어 사용은 가급적 제한한다

 - 전체 데이터 모델에서 유일성을 확보하는 것이 좋다

 

11. 관계의 표기법

 - 관계명(Membership) : 관계의 이름

 - 관계차수(Cardinality) : 1:1, 1:M, M:N

 - 관계선택사양(Optionality) : 필수관계, 선택관계

 

12. 식별자의 종류

 - 엔티티 내에서 대표성을 가지는 가에 따라 주식별자와 보조식별자로 구분

 - 엔티티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자로 구분

 - 단일 속성으로 식별이 되는가에 따라 단일식별자와 복합식별자로 구분

 - 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분 위해 본질식별자와 인조식별자 구분

 

13. 주식별자의 특징

 - 유일성 : 주식별자에 의해 엔티티 내에 모든 인스턴스들을 유일하게 구분함

 - 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함

 - 불변성 : 주식별자가 한번 특정 엔티티에 지정되면 그 식별자의 값은 변하지 않아야 함

 - 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재해야 함(NULL 허용 안됨)

 

[ 제 2장 데이터 모델과 SQL ]

 

14. 정규형

 - 제1정규형 : 모든 속성은 반드시 하나의 값을 가져야 한다

 - 제2정규형 : 엔티티의 일반속성은 주식별자 전체에 종속이어야 한다

 - 제3정규형 : 엔티티의 일반속성 간에는 서로 종속적이지 않다

 

15. 1차정규화

 - 중복속성에 대한 분리가 1차 정규화의 대상이 되며, 로우단위의 중복도 1차 정규화의 대상이 되지만 칼럼 단위로 중복이 되는 경우도 1차 정규화의 대상이다

 

16. 널(NULL)의 특성

 - 널 값은 아직 정의되지않은 값으로 0 또는 공백과 다르다. 0은 숫자이고, 공백은 하나의 문자이다. 

 - 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있다

 - 널 값을 포함하는 연산의 경우 결괏값도 널 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다

 - 결괏값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL 함수를 사용한다. 널 값의 대상이 숫자 유형 데이터인 경우는 주로 0(Zero)으로, 문자 유형 데이터인 경우는 공백보다는 'x' 같이 해당 시스템에서 의미없는 문자로 바꾸는 경우가 많다.