본문 바로가기

STUDY

[자격증] SQLD 준비

데이터 모델링의 이해

데이터모델의 이해

데이터 모델링의 3요소 : Thing, Attributes, Relationship

데이터 모델링 특징 : 추상화(모형화), 단순화, 명확화(정확화)

데이터 모델링 관점 : 데이터 관점, 프로세스 관점, 상관 관점

데이터 모델링 유의사항 : 중복(Duplication), 비유연성(Inflexibility), 비일관성(Inconsistency)

데이터 모델링 과정 : 개념적 - 논리적 - 물리적

스키마 구조 3단계

- 외부 스키마 (External Schema) : View 단계, 사용자 관점 접근 DB

- 개념 스키마 (Conceptual Schema) : 조직 전체의 통합 관점 DB

- 내부 스키마 (Internal Schema) : 물리적으로 저장된 형식

ERD : 엔티티 그리기 - 엔티티 배치 - 관계 설정 - 관계명 기술 - 관계 참요도 기술 - 관계 필수여부 기술

엔티티(Entity)

- 두 개 이상의 인스턴스, 두 개 이상의 속성

- 다른 엔티티와 한 개 이상의 관계

- 기본/키 엔티티 (Fundamental/Key Entity) : 독립적 생성 가능, 주식별자를 상속 받지 않음

- 중심 엔티티 (Main Entity) : 중심적인 역할, 다른 엔티티와 관계를 통해 행위 엔티티 생성

- 행위 엔티티 (Active Entity) : 두 개 이상의 부모 엔티티로 부터 발생

속성

- 유일성을 확보하는 것이 좋음

- 기본 속성 : 업무를 통해 정의한 속성

- 설계 속성 : 설계를 하면서 도출되는 속성

- 파생 속성 : 다른 속성으로 부터 생성되는 속성

도메인 : 속성이 가질 수 있는 값의 범위, 데이터타입, 크기

관계

- 존재에 의한 관계, 행위에 의한 관계

- UML(Unified Modeling Language)에서 연관관계(Association)은 실선, 의존관계(Dependency)는 점선

- 관계명(Membership), 관계차수(Cardinality), 선택사양(Optionality)

- 식별자관계, 비식별자관계

식별자

- 주/보조 식별자 : 엔티티 내에서 대표성을 가지는가

- 내부/외부 식별자 : 엔티티 내에서 스스로 생성 되었는가

- 단일/복합 식별자 : 단일 속성으로 식별이 되는가

- 본질/인조 식별자 : 업무적 의미가 있던 식별자를 대체한 일련번호 같은 식별자

- 주식별자 : 유일성, 최소성, 불변성, 존재성

데이터 모델과 SQL

정규화 수행 - 용량산정 - 트랜잭션 유형 파악 - 반정규화 - 이력모델 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 - 성능관점 모델 검증

정규화

- 1차 정규형 : 속성은 하나의 값, 동일한 형식, 유일한 이름, 레코드 간 식별 가능

- 2차 정규형 : 식별자가 아닌 속성은 전체 속성에 완전 종속

- 3차 정규형 : 나머지 속성들 간의 종속이 존재하지 않음

반정규화

- 정규화된 엔티티, 속성, 관계를 시스템의 성능향상과 개발, 운영의 단순화를 위해 중복, 통합, 분리를 수행

- 지나치게 많은 조인(JOIN)의 경우 뷰(VIEW)를 사용

- 클러스터링을 적용하거나 인덱스를 조정

- 파티셔닝 기법 적용

- 응용 어플리케이션에서 로직을 구사하는 방법 변경

대량 데이터 처리

- RANGE PARTITION : 보관 주기에 따라 데이터를 쉽게 지움

- LIST RARTITION : 값 각각에 의해 파티셔닝

- HASH PARTITION : 해쉬 알고리즘 적용

분산 데이터베이스

- 분할 투명성 (단편화), 위치 투명성, 지역사상 투명성, 중복 투명성, 장애 투명성, 병행 투명성

관계와 조인의 이해

모델이 표현하는 트랜잭션의 이해

Null 속성의 이해

NVL(A,B) : A가 NULL이면 B를 반환

집계함수는 Null 값을 제외하고 처리

본질식별자 vs 인조식별자

SQL 기본

관계형 데이터베이스 개요

DML : SELECT, INSERT, UPDATE, DELETE

DDL : CREATE, ALTER, DROP, RENAME

DCL : GRANT, REVOKE

TCL : COMMIT, ROLLBACK

- DROP, TRUNCATE, DELETE의 차이

SELECT 문

DISTINCT : 중복 제거 (반대는 ALL로 디폴트 옵션)

함수

IF - THEN - ELSE - END

NULL 처리 함수 : NVL, ISNULL, NULLIF, COALESCE

- COALESCE(A, B)

두 칼럼을 병합한다는 의미의 함수

보통 NULL을 제거하기 위해 사용

COALESCE(A, 0) 같이 사용하면 A의 null값을 0으로 채워줌

WHERE 절

연산자 우선순위 : 괄호 - NOT - 비교 - AND - OR

와일드카드 : %(0개 이상), _(단일 문자)

GROUP BY, HAVING 절

ORDER BY 절

Oracle에서는 NULL이 가장 크며, SQL Server에서는 NULL이 가장 작음

조인

표준 조인

- JOIN ON

ON을 통해 JOIN 조건 지정

INNER JOIN : 기본값, 교집합 부분만 JOIN

OUTER JOIN : LEFT, RIGHT, FULL, 기준 집합의 비어있는 부분도 NULL을 통해 JOIN

주의) MYSQL은 FULL OUTER JOIN을 지원하지 않는다

그외에 CROSS JOIN, SELF JOIN

SQL 활용

서브쿼리

뷰 (View) : 실제 데이터를 가지지 않지만 테이블 역할을 수행, 가상 테이블 (Virtual Table), 독립성, 편리성, 보안성

집합 연산자 (SET OPERATOR)

- UNION : 합집합, 중복된 행은 하나로

- UNION ALL : 합집합, 중복된 행도 그대로

- INTERSECT : 교집합

- EXCEPT : 차집합 (NOT IN, NOT EXISTS)

그룹 함수

ROLLUP, CUBE, GROUPING SETS, GROUPING

윈도우 함수

Top N 쿼리

TOP (N) WITH TIES

계층형 질의와 셀프 조인

PIVOT절과 UNPIVOT절

정규 표현식

 

 

'STUDY' 카테고리의 다른 글

[데이터] GIS  (1) 2024.06.27
[LLM] VLM (Multimodal) 업무  (2) 2024.06.19
[LLM] RAG  (0) 2024.06.05
[NLP] 요약 모델  (0) 2024.05.29
RANSAC 알고리즘  (0) 2023.09.12