-
[SQLD]공부2일차_1과목이론공부하기+노랭이풀기_241107자격증/SQLD 2024. 11. 7. 23:15반응형
# 최초 등록일 : 2024년 11월 07일 23:14
# 최근 변경일 : 2024년 11월 07일 23:14
# 내용 : 노랭이문제풀기 + 유튜브에서 강의찾아서 SQLD 데이터 모델링 부분 정리 중2
노랭이로 공부하다가 이론 정리가 필요함을 느끼고 바로 유튜브에 검색해서 아무거나 듣기 시작했었습니다...
지난 번에는 문제 1~8번까지 풀었어요!
이어서, 일단 눈에 머리에 이론을 익히면서 문제를 풀어봅니다.
------------------------------------------------------------------------------------------------------------------------------------
SQLD 문제 풀이------- 데이터 모델링의 이해
SQL 자격검정 실전문제
문제: 9~31
* 엔터티 : 2개 이상의 속성과 2개 이상의 인스턴스를 가져야 함
> 엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보
2. 유일한 식별자에 의해 식별이 가능
3. 영속적으로 존재하는 (2개 이상의) 인스턴스의 집합
4. 엔터티는 업무 프로세스에 의해 이용
5. 엔터티는 반드시 속성이 있어야 함
6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함
* 기본엔터티(키엔터티) : 그 업무에 원래 존재하는 정보
다른 엔터티와의 관계에 의해 성성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 됨 & 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 됨.
* 엔터티의 명명 기준
> 현업업무에 사용하는 용어
> 약어를 사용하지 않음
> 단수명사
> 모든 엔터티를 통틀어서 유일하게 이름이 부여되어야 함
> 생성의미대로 이름 부여
* 속성(Attribute) : 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
> 엔터티에 대한 자세하고 구체적인 정보
> 하나의 엔터티는 두 개 이상의 속성
> 하나의 인스턴스에서 각각의 속성은 한 개의 속성값을 가짐
> 속성도 집합
* 속성의 특성에 따른 분류
> 기본속성
> 설계속성
> 파생속성 : 데이터를 조회할 때 빠른 성능을 낼 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
* 도메인(Domain) : 각 엔터티(테이블)의 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념
* 관계(Relationship)
> ERD에서 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용
> UML 연관관계와 의존관계 O, 실선과 점선의 표기법
> 관계는 존재, 행위에 관계를 구분 X
> 연관관계와 의존관계에 대해 다른 표기법을 가지고 표현
* 관계의 표기법: 관계명, 관계차수, 선택성(선택사양)
> 관계차수 : 1:1 1:N
* 엔터티 사이에서 관계를 도출 할 때 체크할 사항
> 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
> 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
> 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
> 업무기술서, 장표에 관계연결을 가능하게 하는동사가 있는가?
* 주식별자를 지정할 때 고려해야 할 사항
> 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 한다.
> 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야한다.
> 지정된 주식별자의 값은 자주 변하지 앟는 것이어야 한다.
> 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
SQLD 문제 풀이------- 데이터 모델과 성능
* 성능 데이터모델링 : 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영도리 수 있도록 하는 것
> 데이터 증가 - 성능저하에 따른 성능개선비용증가
> 데이터 모델은 성능을 튜닝하면서 변경될 수 있음
> 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우, 성능 저하에 따른 rework 비용 최소화 가능성
------------------------------------------------------------------------------------------------------------------------------------
* 속성(attribute)의 개념
> 업무에 필요로 하는 고유하나 성질, 특징을 의미 -> 컬럼
> 업무에서 Instance 로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
* Entity , Instance , Attribute 값의 관계
> 한 개의 Entity 는 2개 이상의 Instance 의 집합(하나의 테이블은 두 개이상의 행)
> 한 개의 Entity 는 2개 이상의 Attribute (하나의 테이블은 두 개 이상의 컬럼)
> 한 개의 Attribute 은 1개의 속성값(각 컬럼의 값은 하나씩만 삽입 가능)
> Attribute 은 Entity 에 속한 Entity 에 대한 자세하고 구체적인 정보
> 각 Attribute 은 구체적인 값을 가짐
* Attribute 의 특징
> 반드시 해당 업무에 필요하고 관리하고자 하는 정보
> 정해진 주식별자에 함수적 종속성
> 하나의 Attribute 은 한 개의 값만 가짐
> 하나의 Attribute 에 여러 개의 값이 있는 다중값일 경우, 별도의 Entity 를 이용하여 분리
> 하나의 Instance 는 Attribute 마다 반드시 하나의 속성값을 가짐 ( 속성의 원자성)
* 원자성 : 데이터모델에서 각 Entity 의 Instance 가 해당 Attribute 에 대해 단일하고 명확한 값을 가지는 것
* 함수적 종속성
> 한 속성의 값이 다른 속성의 값에 종속적인 관계를 갖는 특징
A -> B (B는 A에 함수적으로 종속됐다)
* 완전 함수적 종속 : 특정 컬럼이 기본키에 대해 완전히 종속될 때
* 부분 함수적 종속 : 기본키 전체가 아니라, 기본키 일부에 대해 종속될 때
* 속성의 분류
> 속성의 특성에 따른 분류: 기본 속성, 설계 속성, 파생 속성
> 기본 속성 : 업무로부터 추출된 모든 속성, Entity 에 가장 일반적으로 많이 존재하는 속성
> 설계 속성: 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성
> 파생 속성: 다른 속성에 의해 만들어지는 속성, 일반적으로 계산된 값들이 해당, 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음
> Entity 구성방식에 따른 분류: PK, FK, 일반속성
> PK : 기본키, Instance 를 식별할 수 있는 속성
> FK : 외래키, 다른 Entity 와의 관계에서 포함된 속성, 참조속성
> 일반속성 : Entity 에 포함되어 있고 PK/FK에 포함되지 않는 속성
> 분해 여부에 따른 속성: 단일 속성, 복합 속성, 다중값 속성
> 단일 속성: 하나의 의미로 구성
> 복합 속성: 여러개의 의미로 구성
> 다중값 속성: 속성에 여러 개의 값을 가질 수 잇는 경우, 다중값 속성은 Entity 로 구분
* Attribute 의 명명 규칙
> 해당 업무에서 사용하는 이름을 부여
> 서술식 속성명은 사용X
> 약어의 사용은 가급적 제한
> 전체 데이터 모델에서 유일한 명칭
* 도메인: 각 Attribute 이 가질 수 있는 값의 범위
> Entity 내에서 Attribute 에 대한 데이터 타입과 크기, 제약사항을 지정하는 것
* 관계(Relationship) : Entity 간의 연관성을 나타낸 개념
> Instance(각 행 데이터)간의 논리적인 연관성을 파악하여 정의
> Entity를 어떻게 정의하느냐에 따라 변경
* Relationship의 종류
> 존재적 관계, 행위적 관계
> 존재적 관계: 한 Entity의 존재가 다른 Entity의 존재에 영향을 미치는 관계, Entity 간의 연관된 상태를 의미
> 행위적 관계: Entity 간의 어떤 행위가 있는 것
** ERD에서는 존재관계와 행위 관계를 구분하지 않는다.
* Relationship의 구성 : 관계명, 차수, 선택성
* Relationship의 차수 : 한 Entity 의 레코드(Instance)가 다른 Entity의 레코드(Instance)와 어떻게 연결되는지를 나타내는 표현 (1:1 1:N N:M)
> 완전 1:1 : 하나의 Entity에 관계되는 Entity가 반드시 하나로 존재하는 경우
> 선택 1:1 : 하나의 Entity에 관계되는 Entity가 하나이거나 없을 수 있는 경우
> 1:N : Entity에 하나의 행에 다른 Entity의 값이 여러 개 있는 관계
> N:M : 두 Entity 가 다대다의 연결 관계
* 관계의 페어링 : Entity 안에 Intance가 개별적으로 Relationship 를 가지는 것
> 관계란 페이렁의 집합
** 차수는 하나의 Entity와 다른 Entity 간의 레코드 연결 방식
** 관계적 페이렁은 두 Entity 간의 특정 연결을 설명하고 추가 정보를 제공하는 용도
반응형'자격증 > SQLD' 카테고리의 다른 글
[SQLD]공부5일차_1과목마무리!+2과목_241112 (4) 2024.11.12 [SQLD]공부4일차_문제풀면서부족한거채워보기_241109 (2) 2024.11.09 [SQLD]공부3일차_머릿속에넣기_이론정리중_241108 (8) 2024.11.08 [SQLD]공부1일차_일단유명한노랭이로때려박기시도하다가이론찾아본내용_241023 (8) 2024.10.24 [SQLD]자격증공부_241023 (6) 2024.10.23