본문 바로가기

정보처리기사/필기

3과목 - 데이터 모델 / 설계

  • 데이터 모델 - 데이터베이스를 구축하기 위한 중간 과정으로 추상화, 단순화해 체계적으로 표현한 개념
    • 데이터베이스 모델에 표현할 요소
      • 구조(Structure) - 관계에 대한 표현으로 논리적 구조로 구성해야함
        • 테이블(관계), 열(속성) 같은 모델의 기본 요소 구성
          • 논리적 구조란! 사용자 - 장바구니 - 구매내역 등의 테이블로 관계형태로 잘 구성되었는지?
      • 연산(Operations) - SQL문
        • 실제 표현된 값들을 처리하는 작업
      • 제약 조건(Constraints) - 무결성 즉, 결함이없어야함 그래서 제약조건이 들어감
        • 잘못 저장하지 않도록 정의된 규칙
        • 정확성과 일관성을 보장하기 위함
    • 테이블 구조
      • 개체
        • 전체 테이블을 개체 
        • 행 전체를 개체 인스턴스
      • 속성 - 컬럼
      • 관계 - 일반키와 외래키로 2개의 테이블이 연결됨 즉, 관계 설정함
    • 데이터베이스 모델의 종류로 개념적 -> 논리적 -> 물리적 모델 순으로 데이터 베이스를 구축
      • 개념적 모델 - 사람이 이해
        • ER다이어그램
          • 2개 이상의 테이블간에 관계
            • 사격형 : 개체
            • 마름모 : 관계
            • 타원(원) : 속성
            • 밑줄 타원 : 일반키
            • 선, 링크 = 개체타입과 속성을 연결
            • 이중 타원(원) : 다중 속성(복합)
        • 관계형 다이어그램
          • 2차원 테이블 형태로 만들어짐
          • 기본키와 외래키로 관계가 이루어짐
        • 추상적 개념으로 표현
      • 논리적 모델 - 기계(컴퓨터)가 이해
        • 정규화 하는 단계
      • 물리적 모델 - 실체화하는 것
        • 실제로 DB에 저장하는 단계
  • 데이터베이스 설계
    • 설계의 고려사항
      • 무결성 
    • 개념적 설계 - 개념스키마 | 트랜잭션 모델링 | E-R 모델링
      • 목표 DBMS 종속적인 물리적 구조 설계 -사용할 DB선택 및 그 DB에 맞추어 설계
      • 트랜잭션 - 작업의 단위
        • 시작과 끝까지의 단위
          • 예 : 주문하기 다시 주문취소까지의 작업
        • 트랜잭션의 특성
          • 원자성(Atomicity) - 오류시 ROLLBACK(취소)되어야 하고 성공이면, COMMIT(구입)
            • All or Nothing으로 완전히 수행되거나 완전히 수행되지 않거나
            • 티켓 3개 구입시 2개만 구입하는 것은 없다.
          • 일관성(Consistency) - 이벤트나 작업의 이전과 이후의 값이 일관된 상태로 유지
            • 은행에서 A라는 계좌에는 5000원이 있고, 거기서 2000원의 돈일 빼고, 그럼 B라는 계좌에는 1000원이 있었는데, A라는 계좌에서 2000원을 받아서 B라는 계좌에 입급했기 때문에 A라는 계좌에는 3000원이 남아 있고, B라는 계좌에는 2000원이 더해져서 3000원이 되어야함..
            • 총합이 6000원이 였는데, 입급과 출금후에도 6000원
          • 격리성(Isolation) OR 독립성- 서로 영향을 미치면 안된다.
            • 티켓 구매
            • 독립적으로 처리되야한다.
          • 지속성(Durability) OR 영속성 - 오류/성공에도 오류의 기록이 남아야하는것
            • 입금은 성공했는데, 실패 처리로 기록에 남지도 않고 입금이 되지 않았다고 하면, 안되는 것으로 성공했다면, COMMIT되어 확실히 처리해줘야함
      • E-R다이어그램 작성
    • 논리적 설계
      • 논리적 스키마 설계
      • 트랜잭션 인터페이스 설계 : 데이터 타입 및 데이터 타입 간에 관계 표현
      • 개념적 스키마 평가 및 정제
        • 왜? 하는지? 무결성과 일관성을 평가하고 결함이 있으면 안되니?
        • 정규화
          • 데이터 베이스의 중복 최소화하고 이상현상 최소화하기 위함
    • 물리적 설계 - 실제 데이터 변환
      • 트랜잭션 세부 설계(처리량, 응답시간, 하드디스크 용량)
      • 레코드의 집중 분석/설계, 저장 레코드 양식 설계
        • 레코드란 행 또는 튜플이라고함
      • 접근 경로 설계