-
[SQLD] 1과목 정리[스파르타코딩클럽]데이터분석 과정/LEARN 2024. 1. 2. 13:06
1. 엔터티
엔터티 정의의 공통점
-개념, 사건, 사람, 장소 등과 같이 명사
-비즈니스 프로세스에서 관리되어야 하는 정보
-저장이 필요한 어떤 것
엔터티의 특징
-유일한 식별자 존재
-두 개 이상의 인스턴스
-속성 존재
-다른 엔터티와의 최소 한 개 이상의 관계
-업무에서 관리되어야 하는 집합
발생 시점에 따른 엔터티
-기본키 엔터티 : 다른 엔터티의 도움 없이 생성되는 엔터티
-중심(main) 엔터티 : 업무처리에 중심이 되는 엔터티로, 부모 엔터티로부터 파생
-행위 엔터티 : 업무처리를 하는 동안 발생되는 엔터티로 자주 변경되고 지속적으로 추가
유형/무형에 따른 엔터티
-유형 엔터티
-개념 엔터티
-사건 엔터티
2. 속성
속성의 특징
-업무에서 관리되는 정보
-속성은 하나의 값만 가짐
-중복값은 허용
-주식별자에게 함수적으로 종속
속성의 종류
분해 여부
-단일 속성 : 하나의 의미
-복합 속성 : 복합 속성
-다중값 속성 : 여러개의 값
특성
-기본 속성 : 본래의 속성
-설계 속성 : 유일한 값
-파생 속성 : 다른 속성에 의해 만들어짐
속성명
-업무에서 사용하는 명칭
-데이터 모델에서 유일하게 사용
-서술어와 약어 지양
3. 관계
관계 정의
-업무 기술서, 정표에 관계 연결을 가능하게 하는 동사가 있는지
-두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는지
-업무 기술서, 정표에 관계연결 규칙이 서술되어 있는가
-두 개의 엔터티 사이에 정보의 조합이 발생하는가
관계의 종류
-존재관계 : 엔터티 간의 상태
-행위관계 : 엔터티 간의 행위
관계차수
두 개의 엔터티 간에 참여하는 수
* 완전 1:1
-하나의 엔터티에 관계되는 엔터티의 관계가 하나의 경우로 반드시 존재
* 선택적 1:1
-하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수 있다
* 1:N
-엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계
-두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것
-관계형 DB에서 M:N 관계의 조인은 카테시안 곱이 발생
* 필수적 관계
-반드시 존재해야하는 관계
-|로 표현
* 선택적 관계
-없을 수도 있는 관계
-O로 표현
4. 키
-기본키 : 후보키 중 엔터티 대표
-후보키 : 유일성, 최소성
-슈퍼키 : 유일성 O
-대체키 : 후보키 중 기본키가 아닌 것
-외래키 : 참조무결성 확인
5. 식별관계
식별관계
-외래키를 기본키로 사용하는 관계
-강한 연결관계
-부모 엔터티의 주식별자를 자식엔터티의 주식별자로 포함
-식별 관계는 실선
비식별관계
-외래키를 기본키로 사용하지 않고 일반 속성으로 취급하는 관계
-약한 연결관계
-약한 종속관계
-비식별 관계는 점선
식별자 종류
*대표성
-주식별자 : 유일성, 최소성, 대표성, 불변성, 다른 엔터티와 참조 관계 연결 가능
-보조식별자 : 유일성 O, 최소성 O, 대표성 X
*생성여부
-내부 식별자 : 엔터티 내부에서 스스로 생성
-외부 식별자 : 다른 엔터티와의 관계로 생성
*속성 수
-단일 식별자 : 하나의 속성
-복합 식별자 : 두 개 이상의 속성
*대체 여부
-본질 식별자 : 비즈니스 프로세스에서 만들어짐
-인조 식별자 : 인위적으로 만들어짐, 순서번호를 사용해 식별자 사용, 최대한 범용적인 값을 사용하고 유일한 값을 만들기 위해 사용되는 식별자, 대표성이 없어서 참조 관계를 가지지 못하는 식별자
6. 모델링
모델링의 중요 개념
things : 업무가 관여하는 어떤 것
Attributes : 업무가 관여하는 어떤 것의 성격
Relationships : 업무가 관여하는 어떤 것의 관계
데이터 모델링의 주요 특징
추상화, 단순화, 명확화
데이터 모델링 시에 고려사항
데이터중복, 비유연성, 비일관성
데이터 모델링 절차
개념적 모델링 : 전사적 관점에서 모델링, 추상화 수준 높음, 업무 측면의 모델링
논리적 모델링 : 식별자 정의, 관계, 속성 표현, 정규화로 재사용 높임
물리적 모델링 : 성능, 보안 가용성 등을 고려해 DB 구축
데이터 모델의 3가지 관점
데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무어신지에 대해서 모델링 하는 방법
프로세스 관점 : 업무가 실제로 하고 있는 일을 무엇인지 또는 무엇을 해야 하는지를 모델링 하는 방법
데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법
좋은 모델링 요건
중복배제, Business Rule, 완전성
7.정규화
제1정규화
-속성의 원자성 확보
-기본키 설정
제2정규화
-기본키가 2개 이상일때만
-부분 함수 종속성 제거
제3정규화
-기본키(주식별자)를 제외한 칼럼 종속 제거
-이행 함수 종속성 제거
BCNF
-기본키를 제외하고 후보키가 기본키의 속성 중에 하나를 함수적으로 종속하는 경우
제4정규화
-다중값 종속성 제거
제5정규화
-조인 종속성 분해
반정규화
-DB 성능향상을 위해 데이터 중복 허용, 조인 줄이는 방법
-데이터 독립성은 낮아짐 (독립성 향상)
-조회 속도 향상
-데이터 모델의 유연성은 낮아짐
반정규화 수행하는 경우
-트랜잭션의 유형, 데이터 용량 등 고려
-정규화에 충실하면 종속성, 활용성은 향상되지만 수행속도가 느려지는 경우
-다량의 범위를 자주 처리해야 하는 경우
-특정 범위를 자주 처리해야 하는 경우
-특정 범위의 데이터만 자주 처리하는 경우
-요약/집계 정보가 자주 요구되는 경우
반정규화 기법
-계산된 칼럼 추가 : 배치프로그램으로 미리 계산하고 그 결과를 특정 칼럼에 추가
-테이블 수직 분할 : 하나의 테이블을 두 개 이상의 테이블로 분할, 칼럼을 분할해 새 테이블 만듦
-테이블 수평 분할 : 하나의 테이블에 있는 값을 기준으로 테이블 분할
-중복관계 추가 : 데이터 무결성을 깨뜨릴 위험을 갖지 않고있고 데이터 처리의 성능을 향상 시킬 수 있는 기법
8. 3층 스키마
-외부스키마 : 사용자 관점, 응용프로그램이 접근하는 DB 정의
-개념스키마 : 설계자 관점, 조직전체 관점, 통합 데이터 베이스 구조
-내부스키마 : 개발자 관점, DB의 물리적 저장 구조
9. ERD 작성 절차
엔터티 도출- 엔터티 배치- 엔터티 간 관계-관계명 서술- 관계 참여도- 관계의 필수 여부
10. 파티션 기법
-데이터 베이스에서 파티션을 사용해 테이블을 분할할 수 있다.
-논리적으로 하나의 테이블이지만 여러개의 데이터 파일에 분산되어 저장
Range partition : 데이터 값의 범위를 기준으로 파티션 수행
List partiton : 특정한 값을 지정해 파티션 수행
Hash partition : 해시 함수를 적용해 파티션 수행
Composite partition : 범위와 해시를 복합적으로 사용해 파티션 수행
11.슈퍼타입 및 서브 타입 변환방법
*one to one type
-슈퍼타입과 서브 타입을 개별테이블로 도출
-테이블 수가 많음
-조인이 많이 발생
-관리가 어려움
*Plus type
-슈퍼타입과 서브타입 테이블로 도출
-조인 발생
-관리 어려움
*Single type
-슈퍼타입과 서브타입을 하나의 테이블로 도출
-조인 성능 좋음
-관리 편리
-입출력 성능 나쁨
12.분산 데이터베이스
장점
-DB 신뢰성, 가용성 높음
-분산 DB가 병렬처리를 수행하기 때문에 빠른 응답
-분산 DB를 추가해 시스템 용량 확장 쉬움
단점
-DB 분리로 관리와 통제가 어려움
-보완 관리 어려움
-데이터 무결성 관리 어려움
-DB 설계 복잡함
분산 데이터 베이스 투명성
-분할 투명성 : 이용자는 릴레이션이 쪼개져서 여러 곳에 저장되어 있음을 알 필요가 없음
-위치 투명성 : 이용자가 데이터 저장장소 위치 알 필요 없음
-지역사상 투명성 : 지역 DBMS와 물리 DB 사이의 Mapping 보장
-중복 투명성 : 여러 시스템에 객체가 중복되어 있어도 데이터 일관성 유지
-장애 투명성 : 통신에 장애가 발생해도 데이터 무결성 보장
-병형 투명성 : 여러 명이 이용해도 이상이 없어야 함
13. 카디널리티
: 하나의 릴레이션에서 튜플의 전체 개수
14. 선택도
: 특정 조건에 의해서 선택될 것으로 예상되는 레코드의 비율, 조건절에서 요청한 값의 범위/전체
15. 도메인
: 하나의 속성이 가질 수 있는 모든 원자 값들의 집합, 칼럼의 제약 조건
16. 해쉬 조인 기법
-조인 칼럼의 인덱스가 없어도 사용 가능
-해시함수를 이용해 조인 수행
-동일한 값을 항상 같은 값으로 해시됨을 보장
-해쉬 조인 작업을 수행하기 위해 해시 테이블을 메모리에 생성해야함
-메모리에 적재할 수 있는 영역의 크기보다 크면 임시 영역에 저장
'[스파르타코딩클럽]데이터분석 과정 > LEARN' 카테고리의 다른 글
[파이썬] 코딩 기초 트레이닝 Day 1,2 (1) 2024.01.08 [파이썬] 초보자를 위한 파이썬 300제 (2) (0) 2024.01.05 [파이썬] Lv.0 코드카타 (1) 2024.01.05 [파이썬] 초보자를 위한 파이썬 300제 (1) 2024.01.04 [SQL] LENGTH함수 (0) 2024.01.02