5. 정규화와 반정규화

  • 함수 종속성의 개념과 추론규칙
    • 함수 종속의 유형
      • 완전 함수 종속 1NF 
      • 부분 함수 종속 2NF
      • 이행함수적 종속성 3NF 
      • 결정자함수 종속성 BCNF : 함수 종속이 되는 결정자가 후보키가 아닌 경우
  • 정규화의 이상현상
    • 삽입이상
      • 원하지 않는 정보까지 함께 삽입해야함
    • 삭제이상
      • 필요한 정보까지 함께 삭제
    • 수정이상(갱신이상)
      • 동일한 내용을 여러 건의 데이터에서 반복 수정해야함
  • 정규화를 적용하여 데이터베이스 설계
    • 1NF -> 2NF제거 -> 3NF제거 -> BCNF제거 -> 함수종속이 아닌 다치 종속제거 -> 후보키를 통하지 않는 조인종속 제거
  • 반정규화 
    • 정규화된 엔터티, 속성, 관계에 대해 시스템 성능 향상 및 개발과 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스
    • 절차
      • 대상 조사
        • 범위 처리 빈도수 조사
        • 대량의 범위처리 조사
        • 통계성 프로세스 조사
        • 테이블 조인 개수 조사
      • 다른 방법 유도 검토
        • 뷰 테이블 : 많은 조인이 걸칠때
        • 클러스터링 사용 
        • 인덱스 적용 
        • 응용 어플리케이션
      • 반 정규화 적용
        • 테이블 병합
        • 테이블 분할
        • 테이블 추가
        • 중복 칼럼 추가 : 조인에 의한 성능 저하를 예방
  • 성능 설계를 위한 고려사항 설명
    • 성능 개선 목표
      • 처리능력, 처리시간, 응답 시간, 로드 시간
    • 엔터티의 통합 및 분리 
      • 장점 : 불필요한 조인 제거를 통한 성능 향상, 테이블 개수 감소,,
      • 단점 : 데이터 모델의 확장성 저하, 업무 흐름 이해 어렵
    • 기본키 조정
      • 비지니스 키가 복잡한 경우 시스템 키로 대체
    • 데이터 모델 구조 변경
      • 정규화를 통한 성능 개선
      • 반정규화를 통한 성능 개선
      • 데이터 모델의 단순화를 통한 성능 개선
    • 인덱스와 관련된 성능 개선
      • 효율적 순서 지정
      • 함수기반 인덱스 사용

 

6. 데이터베이스 물리설계

  • 관계형 테이블 전환의 개념과 과정
    • 관계형 테이블 전환
      • 엔터티 타입의 전환
      • 악성 엔터티의 변환
      • 1 : 1 관계의 변환
      • 1 : N 관계의 변환
      • M : N 관계의 변환
      • 다중치속성의 변환
      • N - ary 관계의 변환
      • 일반화 관계의 변환
  • 테이블 설계
  • 데이터타입 설계
  • 인덱스 설계
  • 데이터베이스 뷰 설계
    • 뷰 특징
      • 원하는 데이터만 모아 가상적으로 만든 테이블
      • 반복되는 데이터 조작을 효율적으로 수행함
      • 관심을 가지는 데이터에만 초점 
      • 계산된 정보나 파생된 정보 보여줌
      • 사용자가 볼 수 있는 데이터 제한
    • 뷰 생성
      • CREATE VIEW
      • WITH CHECK OPTION : 뷰에 대해 수행되는 모든 데이터 수정 문장들이 뷰를 정의하는 SELECT문의 조건을 지키도록
      • WITH ENCRYPTION : 뷰를 생성하는 텍스트를 사용자가 못보게
      • 제약사항 : SELECT INTO 문 사용 불가, SELECT 권한 있어야 한다
    • 데이터 수정
      • 복사본 가지지 않음
      • 갱신은 항상 원본 테이블에 영향 미침
      • 제약사항
        • 갱신은 하나의 테이블에만 영향 줌
        • 계산된 값이나 내장함수, 계산함수를 포함하는 칼럼에 대해서는 뷰를 통한 개신 허용 X
        • NOT NULL 칼럼을 가지는 테이블에 영향을 미치는 경우는 오류를 유발함
        • 입력되지 않은 칼럼인 경우 디폴트 값이 정의되어 있거나 NULL이 허용되어 있어야함
    • 고려사항
      • 뷰 정의한 뒤 -> 원본 테이블에 새로운 칼럼 추가 -> 뷰에 안나타남
      • 뷰 자체 정의 변경 -> 기존 뷰 삭제해야함
      • 원본 삭제되어도 뷰는 삭제 안됨
  • 분산 데이터베이스 설계
    • 특징 
      • 네트워크 상에서는 물리적으로 분산되어있지만, 사용자 입장에선 하나의 데이터베이스처럼 
    • 장점
      • 원격 데이터에 대한 의존도 감소
      • 대용량 처리 가능
      • 점진적 확장 가능
      • 한 사이트가 고장나도 그기만 고장남
    • 단점 
      • 복잡도  증가
      • 개발 비용 증가
      • 통제 기능 취약
      • 오류 발생 가능성 증가
      • 데이터 무결성 보장 어렵
    • 데이터 투명성
      • 분할 투명성 : 사용자에게 전역 스키마가 어떻게 분할되었는지
      • 위치 투명성 : 사용자나 어플리케이션에서 데이터의 물리적인 위치 알 필요 없
      • 중복 투명성 : 중복되었는지, 어디에 보관하는지 알 필요 없
      • 장애 투명성 : 네트워크 장애가 발생하더락도 데이터의 무결성 보장되어야함
      • 병행 투명성 : 다수 트랜잭션이 동시에 수행되어도 결과의 일관성 유지되는 성질

 

 

10. 데이터베이스 질의 응용

  • 저장 프로시저의 개념과 특징
    • 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
    • 장점
      • 하나의 요청ㅁ으로 여러 SQL 실행 -> 부하 줄임
      • 처리 시간 단축
      • 트리거와 결합하여 복잡한 규칙에 의해 데이터의 참조 무결성 유지
      • sql문이랑 java 코드 분리되어 가독성 향상
      • 보수성 뛰어남 (저장프로시저의 교체에 의한 수정 가능)
    • 단점
      • 재사용성 낮음( 제품간의 호환성 낮아서)
  • 임베디드SQL의 개념과 특징
    • sql문장이 응용프로그램(c++, java,,,) 포함되어 프로그램 실행 시점에 함께 수행
    • 삽입되는 sql = 임베디드 sql
    • 응용프로그램 = 호스트 프로그램
    • 특징
      • 하나의 투플만 반환가능
      • 반환되는 투플은 일반 변수를 사용하여 저장 가능
      • 호스트 프로그램의 데이터 타입 = 데이터베이스 필드의 데이터 타입
  • 동적 SQL의 개념과 특징
    • 변수를 담아서 동적 처리함
    • 처리방식
      • 변수 생성
      • 구문 생성
      • REF CURSOR에 저장 (SQL)
      • REF CURSOR OPEN
      • REF CURSOR FETCH
      • RECORD TYPE에 데이터 저장
      • REF CURSOR CLOSE 
  • 질의 최적화의 단계별 특징
    • 질의 최적화 : DBMS로 하여금 질의문을 생성하는 여러 전략들을 체계적으로 평가 -> 하나의 최적 전략 선택
  • 유형별 옵티마이저의 특징
    • 옵티마이저 : 가장 빠른 데이터 접근 경로 작성 및 채택 -> 최적의 경로 or 처리 절차 찾아주는 역활
    • 질의 변환
    • 비용 산정
    • 분류
      • 규칙 기준 옵티마이저 (RBO)
        • 인덱스 구조나 비교연산자에 따른 순위 부여 기준으로 최적의 경로 설정
        • 오차가 크게 발생 가능
      • 비용 기준 옵티마이저 (CBO)
        • 처리 방법들에 대한 비용 산정 -> 가장 적게 소요되는거 선택
        • 실행 계획에 대한 예측 및 제어 어렵
  • 웹과 데이터베이스의 연동 기법

 

 

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용  (0) 2021.05.21
[2021 topcit 준비] 데이터 이해와 활용  (0) 2021.05.21

1. 데이터와 데이터베이스의 이해

  • 데이터의 이해
    • 데이터 : 특정의 목적에 의해 평가되지 않은 사실적 자료
    • 정보 : 데이터를 이러정한 프로그램 처리, 가공하여 특정 목적을 달성하는 데 중요한 정보가 생산됨
    • 지식 : 정보가 의사결정이나 창출에 이용되어 부가가치가 발생
    • 데이터 처리 유형
      • 일괄처리시스템 : 일정량 모아 한꺼번에 처리, 대기시간 필요, 수정 절차가 복잡 어려움
      • 온라인처리시스템 : 실시간 처리 시스템, 사용자 중심 처리방법, 사전준비 작업 불필요, 유지 보수 회복어렵 ex) 항공 좌성 예약 처리 시스템
      • 분산처리시스템 : 분산되어있는 처리기와 데이터베이스를 네트워크로 연결하여 처리하는 방식, 클라이언트/서버 시스템 형태로 운영, 연산속도 향상
  • 데이터베이스의 이해
    • 파일처리시스템의 문제점 
      • 독립성 보장 미흡
      • 일관성 보장 문제
      • 무결성 보장 문제
      • 공유성, 사용 편의성 저조
    • 데이터 베이스의 개념과 특징
      • 데이터베이스의 특징
        • 실시간 접근성
        • 계속적인 변화
        • 동시 공용
        • 내용에 의한 참조
  • 데이터베이스 시스템의 이해
    • 구성요소
      • 데이터베이스
      • 데이트베이스 언어
      • 사용자
      • 데이터베이스 관리시스템
    • ANSI-SPARC의 3-level Database Architecture
      • 외부스키마
        • 어떤 화면을 사용자에게 보여줄 것인가???
      • 개념스키마
        • 조직 전체의 DB를 기술하는 것
        • DB에 저장되는 data와 그들 간의 관계 표현
      • 내부스키마
        • DB가 물리적으로 저장된 형식
        • Data가 실제적으로 저장되는 방법 표현
    • 데이터 독립성
      • 논리적 독립성
        • 개념스키마가 변경되어도 외부 스키마에는 영향 미치지 않도록
        • 사용자 특성에 맞는 변경기능
      • 물리적 독립성
        • 내부 스키마가 변경되어도 외부/개념스키마에는 영향 미치지 않도록
  • DBA, DA의 역활
    • DBA(데이터 베이스 관리자) : DB구성 및 관리 운영 전반에 대한 책임을 가지는 역활
      • 데이터 모델링
      • DB물리설계
      • 튜닝(성능개선)
      • DB 구축
      • DB 운영
      • DB 표준화
    • DA(데이터아키텍트) : 데이터, 데이터베이스, 데이터표준, 데이터 보안 등에 대해 정책 및 기준 수립하여 모델링, 체계화하는 역활 수행자
      • 데이터 관리 체계
      • 데이터 표준수립
      • 데이터 모델링 수행
      • 데이터 보안체계 수립
  • DBMS
    • 응용 프로그램과 데이터 사이의 중재자, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게 관리해 주는 소프트웨어 시스템
    • 파일시스템의 문제점인 종속성과 중복성 문제 해결
    • 기능
      • 다 사용자 간의 데이터 공유
      • 권한없는 사용자의 데이터 접근 통제
      • 다양한 사용자에게 다양한 형태의 인터페이스 제공
      • 데이터 사이에 존재하는 ㄴ복잡한 관련성 표현
      • 데이터베이스의 무결성 보장

 

2. 데이터베이스 종류 이해

  • 데이터베이스의 데이터 모델과 구조
    • 계층형 데이터베이스
      • 트리형태
      • 액세스 속도 빠름
      • 업무 프로세스에 대한 적응 쉽지 않음
      • 무작위 검색 어렵
    • 네트워크 데이터베이스
      • 망 형태로 확장
      • 포인터 사용
      • 복잡한 형태에서는 많은 유지보수 비용 필요
      • 프로그래머가 이해해야 프로그램 작성 가능
    • 관계형 데이터베이스(RDB)
      • Oracle, SQL, Server, DB2,,,,
      • 이차원 구조에 정보 저장
      • 여러 연산을 수학적으로 최적화할 수 있음
      • 질의어 존재
      • 비정형(멀티미디어) 복합 정보의 처리 곤란
    • 객체 지향 데이터베이스 (OODB)
      • 사용자 정의 데이터타입의 지원 및 상속성의 명세 가능
      • 비정형 복합 정보의 모델링 기능
      • 트랜잭션 처리, 동시처리기능 사용자 수,, 기능 취약-> 기업에서는 한계
  • 객체관계 데이터베이스(ORDB)의 개념과 특징
    • 개념 : 관계형 + 객체 지향형 DB 
    • 특징 
      • 사용자 정의 데이터타입 지원
      • 참조타입 지원
      • 중첩된 테이블 지원
      • 대단위 객체 지원
      • 테이블 상속 관계 지원
  • XML 문서 이해하고 작성
    • 웹 환경에서 데이터를 구조화하고 교환하기 위해 -> 표준으로 개발한 확장 가능한 마크업 언어
    • 특성
      • 단순성
      • 개방성 
      • 확장성 : 자신만의 태그
      • 모두 이해 가능
      • 내용과 표현의 분리 : 사용자가 원하는 포맷으로 변환 가능
      • 계층적 구조 : 구조검색, 전문검색가능
      • 유니코드 : 여러 언어 지원
  • 다양한 데이터베이스 시스템 설명
    • 멀티미디어 데이터베이스 : 멀티미디어 비정형 자료를 효율적으로 검색하고 관리하고자
    • 메인 메모리 데이터베이스(MMDB) : 데이터베이스를 메모리에 상주시킴
    • 임베디드 데이터베이스 : 임베디드 환경 하에 특정 기능 구현
    • 모바일 데이터베이스 : 중앙 서버로 전송하는 기능 
    • 공간 데이터베이스 :  좌표값으로 표현되는 공간 데이터의 집합
    • 칼럼형 데이터베이스 : 

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용2  (0) 2021.05.21
[2021 topcit 준비] 데이터 이해와 활용  (0) 2021.05.21
  • 데이터
    • 데이터와 연관된 시스템과 관련된 지식
    • 데이터 자체에 대한 응용 분야

 

  • 데이터 라이프 사이클
    • 데이터와 데이터베이스의 이해
      • 데이터, DB, DBMS, DB시스템
    • 데이터베이스 시스템의 이해
      • ANSI SPARC 3 레벨, 
      • 데이터 독립성
      • DBA, DA의 역활
    • 데이터 베이스 종류의 이해
      • 관계형 데이터베이스
      • 객체지향 데이터베이스
      • XML 데이터베이스
      • NoSQL 데이터 베이스
    • 데이터 베이스 설계
      • 구출 절차에 대한 기본 흐름
      • 데이터 모델링 평가
        • 정규화, 엔티티 속성, 관계, 주 식별자, 외부 식별자
      • 반 정규화
        • 기술, 인덱스, 지식
    • 데이터베이스 품질과 표준화
      • 단어 사전, 용어사전, 도메인 사전, 공통 코드
    • 3. 데이터베이스 프로그래밍
      • 관계 연산
        • 일반 집합 연산, 순수 관계 연산
      • 관계 데이터베이스 언어
        • DDL, DCL, DML
      • 데이터 베이스 질의 응용
        • 실전 현장에서 사용되는 SQL
    • 4. 데이터 베이스 운영
      • 동시성 제어
        • 트랜잭션의 개념과 특징
        • 병행성 제어 이론
        • 교착상태
        • 격리 수준
      • 데이터 베이스 복구
        • 데이터 베이스 장애의 개념 및 유형
        • ㄷ복구에 대한 지식 및 방법
        • 백업 방법
    • 5. 데이터 분석 및 응용 이해
      • 분석의 이해
        • 데이터웨어하우스의 개념과 특징
        • ETL
        • OLAP개념과 특징
        • 데이터 마이닝 개념과 알고리즘
      • 빅데이터의 이해
        • 정형, 비정형, 반정형 데이터
        • 하드웨어 구성 : 대량 데이터 효율적 처리
        • 소프트웨어 구성
        • 빅데이터의 통계적 분석
        • 자연어 처리
        • NoSql 개념
        • base이론
        • NoSQL분류방식 및 설계적 방식
      • 인공지능의 이해
        • 개념
        • 기계학습의 유형
        • 딥러닝의 개념 및 알고리즘 유형

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용2  (0) 2021.05.21
[2021 Topcit] 데이터 이해와 활용  (0) 2021.05.21

+ Recent posts