자격증/IT / / 2021. 3. 15. 19:29

정보처리산업기사(필기) - 데이터베이스 : 데이터 모델링 및 설계

728x90
반응형

데이터 모델의 개념

데이터 모델의 정의

  • 정보를 단순화, 추상화 하며 표현한 개념적 모형
  • 데이터의 관계, 의미, 일관성, 제약조건 등 기술을 위한 개념적 도구 모임
  • 데이터 베이스 설계 과정 중 구조의 논리적 표현을 위한 도구

데이터 모델의 종류

  • 개념적 데이터 모델
    - 현실 세계에 대한 인식을 추상적 개념으로 표현
    - 속성들로 기술된 개체 타입과 개체 타입들 간 관계를 이용하여 표현
    - 정보 모델이라고도 함
    - 대표적으로 E-R 모델
  • 논리적 데이터 모델
    - 개념적 구조를 컴퓨터에 맞게 변환
    - 필드로 기술된 데이터 타입과 데이터 타입들 간 관계로 표현
    - 단순히 데이터 모델이라고 하면 이를 뜻함
    - 특정 DBMS는 특정 논리적 데이터 모델 하나만 사용
    - 데이터 간 관계에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분

데이터 모델에 표시할 요소

  • 구조(Structure) : 개체 타입간 관계. 데이터 구조 및 정적 성질 표현
  • 연산(Operation) : 데이터베이스의 실제 데이터 처리 작업 명세 및 조작 기본 도구
  • 제약 조건(Constraint) : 실제 데이터의 논리적 제약조건

데이터 모델의 구성 요소

개체(Entity)

  • 데이터베이스에 표현하려는 개념 및 정보 단위
  • 독립적 유형, 무형의 정보. 서로 연관된 몇 개의 속성으로 구성
  • 파일 시스템의 레코드에 대응, 정보 제공 역할
  • 독립적으로 존재

속성(Attribute)

  • 데이터의 가장 작은 논리적 단위. 데이터 항목이나 필드에 해당
  • 개체를 구성
  • 다음 표에서 
    속성 : 학번, 이름, 전공, 대학
    개체 타입 (레코드 타입) : 속성으로만 기술된 개체
    개체 인스턴스 : 각 속성들이 가진 하나의 개체
    개체 세트 : 개체 인스턴스 집합
학번 이름 전공 대학
21001 김00 컴퓨터 서울대
21002 박00 정보통신 연세대
21003 최00 하드웨어 고려대

관계(Relationship)

  • 관계의 형태
    - 일대일(1:1) : 개체 집합 A의 각 원소가 개체 집합 B의 원소 한개와 각각 대응
    - 일대다(1:n) : 개체 집합 A의 각 원소가 개체 집합 B의 원소 여러 개와 대응. B의 원소는 A하나와 대응
    - 다대다(n:m) : 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러개와 대응. B의 원소도 A 여럿과 대응

개체 - 관계 모델

개체-관계 (Entity-Relationship) 모델의 개요

  • 개념적 데이터 모델의 대표
  • 개체간 관계가 기본요소. 개체 타입과 이들간 관계 타입으로 표현
  • 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)로 묘사
  • 특정 DBMS를 고려X
  • 일대일, 일대다, 다대다 등 관계 유형을 제한없이 표현

E-R 다이어그램

E-R 다이어그램

+ 복수타원 : 복합속성

예제 : 

학생과 과목 사이의 관계

확장된 E-R 모델

  • 개체를 구성하는 속성은 선을 연결하여 작은 원으로 표시
  • 단일 식별자(기본키)는 작은 원을 검게 칠함
  • 복합 식별자는 관련 속성을 선으로 묶어 끝에 검은 원을 그림
  • 관계와 개체 연결선에 (최소 대응수, 최대 대응수) (1:1, 1:n 등)표시

관계형 데이터 모델

관계형 데이터 모델(Relational Data Model)의 개념

  • 가장 널리 사용. 계층 모델과 망 모델의 구조를 단순화
  • 표를 이용하여 상호 관계 정의
  • 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 관계 표현
  • 대표적으로 SQL
  • 1:1, 1:N, N:M 관계 표현가능

관계형 데이터 모델의 구성

고객과 주문서, 주문 관계를 관계형 데이터 모델로 표현

  • 고객과 주문서는 개체 테이블, 주문은 관계로 만든 테이블
  • 기본키 : <고객>의 고객번호, <주문서>의 주문번호
    외래키 : <주문>의 고객번호, 주문번호

E-R 모델을 관계 모델의 테이블로 변환

개체 A, B와 관계 Y인 E-R 모델을 관계 테이블로 변환

  • 개체는 독립 테이블로 표현
  • 관계 Y가 1:1 관계이면 개체 A의 기본키를 개체 B의 외래키로 혹은 개체 B의 기본키를 개체 A의 외래키로 추가
  • Y가 1:N 이면 개체 A의 기본키를 개체 B의 외래키로 추가 하거나 별도 테이블로 표현
  • Y가 N:N 이면 개체 A와 B의 기본키를 모두 포함한 별도 테이블로 표현
  • 기본키는 밑줄

E-R 모델은 관계형 데이터 모델 테이블로 변환

  • 두 개체관 대응관계는 최대 대응수로 표현하므로 사람과 도시의 거주지 관계는 N:N, 출생지 관계 1:N
  • 관계 데이터 모델 표현 시 N:N 관계는 별도의 테이블로 모델링

관계형 데이터 모델의 특징

  • 장점 : 간결하고, 다른 데이터베이스로 변환 용이
  • 단점 : 성능 다소 낮음

계층형 데이터 모델

트리구조로 데이터 상호관계를 정의

 

계층형 데이터 모델(Hierarchical Data Model)의 구성형태

  • 구조가 트리형태, 개체가 트리의 노드 역할
  • 개체를 노드로, 개체 집합간 관계를 링크로 연결
  • 개체 간 관계를 부모 자식 관계로 표현
  • 계층형 DB의 관계 유형
    - 속성 관계(Attribute Relation) : 세그먼트(개체)를 구성하는 속성들의 관계
    - 개체 관계(Entity Relation) : 개체와 개체 간의 관계를 링크로 표시

계층형 데이터 모델의 특징

  • 개체 타입관 상하 관계 존재, 일대다(1:N) 대응 관계만 존재
  • 일대다 관계만 있으므로 링크의 이름 없음
  • 루트 개체 타입과 종속되는 개체 타입으로 구성된 순서 트리
  • 개체 삭제 시 연쇄 삭제(자손도 함께 삭제)
  • 개체 타입 간 사이클 없음
  • 두 개체 간 하나의 관계
  • 개체(Entity)를 세그먼트(Segment)라 부름
  • IMS가 대표적

계층형 데이터 모델의 장단점

장점

  • 구조 간단, 판독 용이
  • 구현, 수정, 검색 용이
  • 데이터 독립성 보장
  • 망 데이터 모델 및 관계 데이터 모델도 실제 구현 시 계층적 구조 이용

단점

  • 유연성 부족
  • 검색 경로 한정
  • 삽입 및 삭제가 복잡
  • 다대다 관계 처리 어려움

망(네트워크)형 데이터 모델

망형 데이터 모델(Network Data Model)의 개요

  • CODASYL 이 제안
  • 그래프 이용
  • 상위(Owner)와 하위 (Member) 레코드 사이 다대다(N:M) 대응 관계를 만족
  • 레코드 타입간 관계는 1:1, 1:N, N:M 가능
  • 대표적 DBMS : DBTG, EDBS, TOTAL

망형 데이터 모델의 표현

  • Entity군 : 동종의 Entity 그룹
  • Entity SET : 주종 관계에 있는 Entity 군들의 그룹
  • SET Membership Type : 일대다 관계에 연관된 레코드 타입
    - 오너(Owner) : 부모 개념
    - 멤버(Member) : 자식 개념

망형 데이터 모델의 특징

  • 레코드 타입과 링크의 집합으로 구성
  • 레코드 타입의 집합이 존재
  • 레코드 타입을 연결하는 링크 집합 존재
  • 상위 하나에 하위 레코드가 복수대응, 하위 하나에 상위도 복수대응
  • 링크의 관계성 제한없음
  • 자기 자신으로의 링크 없음
  • 모든 링크는 한 방향으로는 함수적
  • 세트 이름은 링크로 표현
  • 오너와 멤버 레코드 타입은 동일 형태가 아님

데이터베이스 설계

데이터베이스 설계 시 고려사항

  • 무결성 : 연산 후 데이터가 제약 조건을 만족
  • 일관성 : 데이터 사이나, 특정 질의에 대한 응답이 일정
  • 회복 : 장애 복구
  • 보안 : 데이터 노출이나 손실 보호
  • 효율성 : 시간단축, 생산성, 최적화 등
  • 데이터베이스 확장 : 운영에 영향없이 데이터 추가 가능

요구 조건 분석

  • 사용자의 수행 업무와 필요한 데이터 종류, 용도 처리 형태, 흐름, 제약조건 등 수집
  • 수집 정보 바탕의 요구 조건 명세 작성

개념적 설계(정보 모델링, 개념화)

: 통신을 위해 현실에 대한 인식을 추상적 개념으로 표현

  • 개념 스키마 모델링과 트랜잭션 모델링 병행
  • 요구 조건 명세(요구 분석 결과)를 DBMS에 독립적 E-R 다이어그램(개체 관계도)로 작성
  • DBMS에 독립적 개념 스키마 설계

논리적 설계(데이터 모델링)

- 현실 자료를 특정 DBMS가 지원하는 논리적 구조로 변환

  • 데이터 타입 간 관계로 표현된 논리적 구조의 데이터로 모델화
  • 개념 스키마 평가 및 정재, DBMS에 따른 논리적 스키마 설계
  • 트랜잭션 인터페이스 설계
  • 관계형 데이터베이스의 테이블 설계

물리적 설계(데이터 구조화)

- 논리적 구조를 물리적 구조로 변환

  • DB 파일의 저장 구조 및 액세스 경로 결정
  • 데이터가 저장되는 방법 묘사
  • 레코드 양식설계, 레코드 집중(군집)의 분석 및 설계, 접근 경로 설계 포함
  • 기본 데이터 단위가 저장 레코드
  • 여러 타입의 저장 레코드 집합
  • 성능에 중대한 영향

물리적 설계 시 고려 사항

  • 인덱스 구조
  • 레코드 크기
  • 레코드 개수
  • 트랜잭션의 갱신과 참조 성향
  • 개념 스키마의 변경 여부
  • 질의(쿼리)와 트랜잭션의 수행속도
  • 운용시 파일 크기 변화

물리적 설계 옵션 선택 시 고려 사항

 - 데이터베이스 파일에 대한 저장구조와 접근 경로에 대한 다양한 옵션

  • 반응시간(Response Time) : 트랜잭션 요구 시점에서 결과까지 경과 시간
  • 공간 활용도(Space Utilization) : 파일과 경로 구조에 의해 사용되는 저장공간
  • 트랜잭션 처리량(Transaction Throughput) : 단위시간 동안 처리 가능한 트랜잭션의 평균 수

데이터베이스 구현

 - 논리적, 물리적 단계로 도출된 스키마를 파일로 생성

  1. DBMS의 DDL로 스키마를 기술 후 컴파일하여 DB 파일 생성
  2. DB 파일에 데이터 입력
  3. 응용 프로그램을 위한 트랜잭션 작성
  4. DB 접근을 위한 응용 프로그램 작성

데이터베이스 설계 순서

  1. 요구 분석 : 요구조건 명세서 작성
  2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R모델
  3. 논리적 설계 : DBMS에 맞는 논리 스키마, 트랜잭션 인터페이스 설계
  4. 물리적 설계 : 물리적 구조로 변환
  5. 구현 : DBMS의 DDL로 DB 생성 후 트랜잭션 작성
728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유