ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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. 해쉬 조인 기법

    -조인 칼럼의 인덱스가 없어도 사용 가능

    -해시함수를 이용해 조인 수행

    -동일한 값을 항상 같은 값으로 해시됨을 보장

    -해쉬 조인 작업을 수행하기 위해 해시 테이블을 메모리에 생성해야함

    -메모리에 적재할 수 있는 영역의 크기보다 크면 임시 영역에 저장

     

Designed by Tistory.