ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3-1. 논리 데이터 저장소 확인
    공부 일기/정보처리기사 실기 2024. 7. 14. 01:13
    728x90

    1-1. 요구사항 분석 https://minjh1126.tistory.com/44

    1-2. 현행시스템 분석 https://minjh1126.tistory.com/45

    1-3. 요구사항 확인 https://minjh1126.tistory.com/46

    2-1. UI 요구사항 확인 https://minjh1126.tistory.com/47

    2-2. UI 설계 https://minjh1126.tistory.com/48

    7-1. 데이터베이스 기본 https://minjh1126.tistory.com/49

    7-2. 응용 SQL 작성하기 https://minjh1126.tistory.com/50

    8-1. 개발환경 구축 https://minjh1126.tistory.com/51

    8-2. 공통 모듈 구현 https://minjh1126.tistory.com/52

    9-1. 보안 https://minjh1126.tistory.com/53

     

    1. 데이터 모델

    1. 데이터 모델

    • 데이터 모델: 현실의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화함. 
    • 표시 요소
      • 연산: DB에 저장된 실제 데이터를 처리. 릴레이션을 조작하기 위한 관계 연산.
      • 구조: DB에 표현될 대상으로서의 개체 타입과 관계. 데이터 구조 및 정적 성질을 표현.
      • 제약 조건: DB에 저장될 수 있는 실제 데이터의 제약 조건. 무결성 유지를 위한 보편적인 방법 - 개체 무결성, 참조 무결성 등.
    • 데이터 모델 철차
    단계 모델 설명 특징
    요구조건 분석   도출된 요고사항 간 상충 해결, 범위 파악, 외부 환경과의 상호작용 작용 분석을 통해 데이터에 대한 요구 분석  
    개념적 설계 개념적 데이터 모델 트랜잭션 모델링. 현실 세계의 인식을 추상적, 개념적으로 표현해 개념적 구조 도출. 트랜잭션 모델링, 뷰 통합 방법 및 속성 합성 고려.
    DB종류와 관계 없음.
    개체 관계 대아이그램으로 표현.
    논리적 설계 논리적 데이터 모델 트랙잭션 인터페이스 설계. DBMS에 맞춰 스키마 설계. 모델링 표기법으로 형상화해 이해 쉬움. 정규화 수행, DB 구조로 매핑.
    스키마 평가 및 정제.
    관계형 DB에서는 테이블 설계.
    물리적 설계 물리적 데이터 모델 논리 데이터 모델을 특정 DBMS에 맞춰 물리적 스키마 제작. 논리적 데이터 모델을 DBMS의 특성에 맞춰 DB 저장 구조로 변환. 객체를 생성하고 반정규화 실행.
    레코드 집중 분석, 저장 레코드 양식, 접근 경로 설계.

     

    2. 논리 데이터 모델 검증

    1. 논리 데이터 모델링

    • 논리 데이터 모델링: 엄부의 모습을 모델링 표기법으로 형상화. 개념 모델로부터 업무 영역의 데이터 및 규칙을 구체적으로 표현.
      • 관계 데이터 모델: 논리적 구조가 2차원 테이블. 기본키, 외래키 등으로 관계 표현. 1:1, 1:N, N:M의 관계를 자유롭게 표현.
      • 계층 데이터 모델: 논리적 구조가 트리 형태. 상하 관계가 있음. 1:N만 가능.
      • 네트워크 데이터 모델: 논리적 구조가 그래프. 상위와 하위 레코드 사이에 N:M의 관계를 만족.

    2. 관계 데이터 모델

      • 관계 데이터 모델: 데이터를 2차원 배열에 넣은 모델.
      • 구성 요소
        • 릴레이션: 테이블
        • 튜플: 행 - 갯수: 카디널리티
        • 속성: 열 - 갯수: 차수
        • 스키마: DB의 구조나 제약 조건 등을 담고 있는 기본적 구조
        • 인스턴스: 정의된 스키마에 저장되는 실제 데이터
      • 관계 대수: DB에서 원하는 정보를 어떻게 유도하는지 서술하는 절차적 정형 언어
        • 종류
          • 일반 관계 연산자(집합): 합집합, 교집합, 차집합, 카티션 프로덕트(x로 표현, 모든 튜플을 연결)
          • 순수 관계 연산자
            • 셀렉트: 릴레이션에서 조건을 만족하는 튜플 반환 - σ조건(릴레이션), 행 반환
            • 프로젝트:  릴레이션에서 주어진 속성들의 값으로만 구성된 튜플 반환 -π 속성리스트(릴레이션), 열 반환
            • 조인: 릴레이션 R과 S의 튜플들을 연결해 만들어진 튜플 반환 - 릴레이션R▷◁조건 릴레이션 S
            • 디비전: 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환 - R÷S
      • 관계 해석: 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어. 프레디킷 해석에 기반했고 원하는 정보가 무엇이라는 것만 선언하는 비절차적 언어.
        • 관계 대수는 절차적 언어라 순서를 명시하고 어떻게 유도하는지에 중점인 것에 반해 관계 해석은 비절차적 언어라 유연하며 무엇을 얻을지가 중점.

    3. 논리 데이터 모델링 속성

    • 속성
      • 개체: 사물 또는 사건. 사각형이나 표로 표시.
      • 속성: 개체가 가지고 있는 요소나 성질. 타원형으로 표시. 단수형으로 쓰고 개체 이름은 사용하지 않음.
      • 관계: 두 개체 간 관계. 마름모로 표시. 

    4. 개체-관계 모델(E-R모델)

    • E-R모델: 현실의 데이터와 관계를 표현한 모델. 
    • 기호
      • 개체: □, 관계: ◇, 속성: ○, 다중값 속성: ◎
      • 개체 집합과 관계 집합, 속성 연결: 실선, 관계 집합과 속성 연결: 점선

    5. 정규화

    • 정규화: 데이터 모델의 중복성을 제거해 이상을 방지하고 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정.
    • 이상 현상
      • 삽입 이상: 정보 저장 시 불필요한 세부 정보 입력 필요.
      • 삭제 이상: 정보 삭제 시 다른 정보도 같이 삭제됨.
      • 갱신 이상: 중복 데이터 중 특정 부분만 수정돼 중복 데이터 값이 모순됨.
    • 단계
      • 1정규형: 원자값으로 구성
      • 2정규형: 부분 함수 종속 제거 -> 릴레이션 기본 키가 복합키일 떄 기본 키를 구성하는 속성 중 일부에게 종속됨
      • 3정규형: 이행 함수 종속 제거 -> x→y일 때 y는 x전체 속성에 대해 종속하고 부분 집합 속성에 종속하지 않음
      • BCNF: 결정자 후보 키가 아닌 함수 종속 제거
      • 4정규형: 다치 종속 제거
      • 5정규형: 조인 종속 제거

    6. 반정규화

    • 반정규화: 정규회된 릴레이션에 성능 향상과 개발 운영의 단순화를 위해 통합 등을 함. 성능이 향상되고 관리의 효율성이 증가하지만, 데이터의 일관성 및 정합성이 저하되고 유지를 위한 비용이 발생에 성능에 안 좋은 영향을 미칠 수 있음.
    • 기법
      • 테이블
        • 테이블 병합: 1:1, 1:N 관계를 통합해 조인 횟수 줄임.
        • 테이블 분할
          • 수직 분할: 테이블의 컬럼 개수가 증가. 갱신 위주나 자주 조회되는 속성 등을 분할.
          • 수평 분할: 테이블 분할을 레코드 기준으로 활용.
        • 중복 테이블 추가: 집계함수(Group by 등)을 사용할 때 효과적인 수행을 위해 통계 테이블을 두거나 중복 테이블 추가.
          • 집계 테이블 추가: 원본 테이블에 트리거를 설정해 사용. 트리거의 오버헤드 있음.
          • 진행 테이블 추가: 이력 관리 등을 위한 테이블로 적절한 데이터 양 유지와 활용도를 높이기 위함.
          • 특정 부분만 포함하는 테이블 추가: 데이터가 많은 테이블의 적정 부분만 사용해 테이블 생성.
      • 컬럼
        • 컬럼 중복화: 조인 성능 향상을 위해 컬럼 중복화.
      • 관계
        •  중복 관계 추가: 여러 경로를 거쳐 조인이 가능하지만, 성능 저하를 예방하기 위해 추가적 관계를 맺음.

     

     

    728x90
Designed by Tistory.