본문 바로가기

용어,개념

[정보처리기능사] PART 2. 데이터 모델링

  1. 데이터베이스 설계
    데이터베이스 설계는 데이터베이스의 스키마를 정의 한 후에 이에 따라 데이터베이스를 구현하기 위한 전반적인 과정
    데이터베이스 설계과정은 요구조건분석, 설계, 구현, 운영 및 개선 등의 과정을 통해 이뤄짐

    1. 요구조건분석 : 사용자가 무엇에 대한 정보를 필요로 하는지 문제가 무엇인지 등을 분석하는 과정
                           실제로 만들어야 할 데이터 베이스 정의, 사용자의 요구 조건에 따라 명세서(Specification) 작성
    2. 설계
      1. 개념적 설계(Conceptual Design) : 개념적으로 구현할 데이터베이스를 정의, 구성요소 결정, E-R모델 이용
        • E-R모델(Entity-Relation Model)
          데이터베이스에서 사용되는 개체(Entity), 속성(Attribute), 개체와 개체 간의 관계(Relation) 등을 약속된 기호를 이용하여 표현함으로써 데이터베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델
      2. 논리적 설계(Logical Design) : 사용자가 알아 볼 수 있는 형태로 변환, 스키마 정의, 표의 형태로 표현된 모델을 '관계 데이터 모델'이라 함
      3. 물리적 설계(Physical Design) : 실제 기계가 처리하기에 알맞도록 내부 저장 장치 구조와 접근 경로 등을 설계, 효율적인 기계 처리에 맞도록 설계
    3. 구현
      • 설계 과정에서 얻어진 것을 토대로 실제 데이터베이스를 만드는 과정으로 데이터베이스 언어를 이용하여 간결·명료하면서도 분석·계획한 내용과 일치하고 유지·보수가 용이하도록 작성
      • 데이터베이스 언어
        • 정의어(DDL) : 데이터베이스의 정의, 수정, 삭제를 위해 사용하는 언어
        • 조작어(DML) : 데이터베이스 내의 자료를 검색, 삽입, 수정, 삭제하기 위해 사용하는 언
        • 제어어(DCL) : 데이터베이스의 데이터 보호와 관리를 위해 사용하는 언어  
    4. 운영 및 개선
      • 구현된 데이터베이스를 실제로 운영하는 단계. 문제점과 개선점 등을 파악


  2. 개체-관계 모델
    1. 개체-관계 모델(E-R Model)
      • 개념적 설계에서 사용하는 설계 기법
      • 데이터베이스를 구성하는 개체(Entity)타입과 관계(Relation)타입 간의 구조 또는 개체를 구성하는 속성(Attribute)등을 약속된 기호로 이용하여 표현
      • P.Chen 박사에 의해 최초로 제안
    2. E-R Model의 기호


    3. E-R Model의 표현
      • 학번, 성명, 전공 속성으로 구성된 학생의 경우


      • 개체와 개체 간의 관계 타입을 표현한 경우



      • 관계의 종류에 따른 표현 방법




    4. 다양한 관계 표현법(정보 공학적 표현법)



      • 1:1 관계의 정보 공학적 표현



      • n:m 관계의 정보 공학적 표현



      • 'O'의 선택적 관계 표현



    5. 데이터베이스의 모델
      개념적 설계 이후 논리적 설계 단계에서 사용되는 모델로 논리적으로 구현 가능한 데이터 모델로 변환하기 위해 사용
      종류 : 관계 데이터 모델, 네트워크 데이터 모델, 계층 데이터 모델 등

      • 관계 데이터 모델
        '표 데이터 모델'이라고도 함
        2차원 구조의 표(테이블) 형태로 표현
        구조가 단순하며 사용이 편리하여 가장 많이 사용하고 있는 형태
        n:m 표현이 가능

      • 네트워크 데이터 모델
        '망 데이터 모델'이라고도 함
        레코드 타입간 관계를 도형으로 표현


      • 계층 데이터 모델
        트리 구조로 표현
        '트리 데이터 모델'이라고도 함
        부모-자식 관계 즉, 1:n 관계를 나타냄



  3. 관계 데이터 모델
    1. 관계 데이터 모델의 용어
      • 릴레이션(Relation) :  자료의 저장 형태가 2차원 구조인 테이블(표)
      • 속성(Attribute) : 릴레이션을 구성하는 각 열(Column=항목)
      • 튜플(Tuple) : 릴레이션의 한 행을 구성하는 속성들의 집합으로 행(Row)을 의미, 레코드(Record)라고도 함
      • 도메인(Domain) : 하나의 속성이 가질 수 있는 값들의 범위
      • 릴레이션 스키마(Relation Schema) : 릴레이션의 이름과 속성 이름의 집합으로 릴레이션의 구조를 의미
      • 릴레이션 인스턴스(Relation Instance) : 릴레이션에서 어느 시점까지 입력된 튜플들의 집합
      • 차수(Degree) : 하나의 릴레이션을 구성하는 속성(항목)의 수
      • 카디널리티(Cardinality) : 하나의 릴레이션에 입력된 튜플(행)의 수






        • 릴레이션의 특징
          릴레이션의 튜플들은 모두 상이하다.
          릴레이션의 튜플들은 유일하며 순서에는 의미가 없다.
          릴레이션의 속성들 간의 순서는 의미가 없다.
          릴레이션의 속성은 원자값으로 구성되며 분해가 불가능 하다.


    2. E-R Model과 관계 데이터 모델과의 관계
      • E-R Model로 표현된 단순한 개체와 속성을 릴레이션으로 표현한 경우
        E-R Model에서 개체는 릴레이션으로, E-R Model에서 각각의 속성은 릴레이션의 각 속성(항목)으로 변환


      • 개체와 개체 간의 관계를 나타낸 E-R Model을 릴레이션으로 표현한 경우
        E-R Model에서 두 개체 간의 관계를 나타낸 경우 두 릴레이션으로 표현
        두 릴레이션의 관계를 연결하기 위해서는 두 릴레이션의 기본키 속성을 필요한 릴레이션에 추가해서 관계가 성립되도록한다

        Mapping Rule
        개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여 데이터베이스 구조로 변환하는 과정을 말함
        개체(Entity)는 릴레이션(테이블)으로 속성은 릴레이션의 항목으로, 키 속성(식별자)은 기본키로, 관계는 외래키로 변환


        교차 엔티티(Intersection Entity)
        n:M(다대다)관계의 E-R Model을 릴레이션으로 표현하는 경우 보다 정확한 상호 참조를 위해 하나의 릴레이션을 더 만들게 되는데 이를 '교차 엔티티(Intersection Entity)라고 함



  4. 키(Key)와 무결성 제약조건
    1. 키(Key)의 개념
      • 관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합
      • 데이터베이스를 참조하거나 검색할 때 사용
    2. 키(Key)의 종류
      • 후보키(Candidate Key)
        • 릴레이션(테이블)에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
        • 후보키가 될 수 있는 조건 : '유일성 + 최소성' 을 모두 만족
      • 기본키(Primary Key)
        • 후보키 중에서 튜플을 식별하기 위해 특별히 선택된 키
        • 중복될 수 없으며, Null 값이 올 수 없음
        • '유일성 + 최소성' 모두 만족
      • 대체키(Alternate Key)
        • 후보키 중에서 기본키를 제외한 속성을 말함
      • 외래키(Foreign Key)
        • 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조(이용)하기 위해 사용되는 속성
        • '외래 식별자'라고도 함
        • 외래키는 참조 릴레이션(테이블)의 기본키와 같아야 함
        • 외래키는 Null이 올 수 없다  있다
        • 외래키의 속성명과 참조 릴레이션의 기본키 속성명은 서로 달라도 무방
      • 슈퍼키(Super Key)
        • 한 릴레이션(테이블) 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합
        • 유일성은 만족하지만 최소성은 만족하지 않음




    3. 무결성(Integrity) 제약조건
      • 개체 무결성
        • 기본키는 Null 값이 올 수 없으며, 중복될 수 없음
        • 개체를 식별하기 위해서 오류가 없도록 하기 위한 제약조건
      • 참조 무결성
        • 외래키는 Null 값이 올 수 없으며  있으며, 참조 릴레이션(테이블)의 기본키와 같아야 함
        • 테이블 참조시 오류가 없돌고 하기 위한 제약 조건
      • 도메인 무결성
        • 릴레이션(테이블)에서 속성값의 범위가 정의된 경우 그 속성값은 정해진 범위 이내의 값으로 구성해야 함
        • 동일한 속성에 대해 데이터 타입과 데이터 길이가 동일해야 함
      • 고유(Unique) 무결성
        • 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 함
      • Null 무결성
        • 특정 속성값에 Null이 올 수 없다는 조건이 주어진 경우, 그 속성값은 Null값이 올 수 없음
      • 키 무결성
        • 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 함



  5. 관계 데이터 연산
    1. 관계  대수(Relational Algebra)
      절차적 언어 : 릴레이션에서 사용자가 원하는 결과를 얻기 위해 연산자를 표현하는 방법으로 결과를 얻기 위한 절차를 표현함 /크게 순수 관계 연산자와 일반 집합 연산자로 나뉨/순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVISON/일반 집합 연산자 : 합집합(u), 교집합(n), 차집합(-), 카티션 프로덕트(x) 등

      • 셀렉트(SELECT, σ)
        • 릴레이션에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산
        • 결과는 조건을 만족하는 튜플들로 테이블이 만들어짐
        • 연산 기호 : 시그마(σ)
        • 표기 형식 : σ<선택조건>(테이블이름)

      • 프로젝트(PROJECT, π)
        • 릴레이션에서 수직적 부분 집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위함
        • 연산 기호 : 파이(π)
        • 표기 형식 : π<추출 속성리스트>(테이블 이름)
      • 조인(JOIN, )
        • 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산
        • 종류 : 동일 조건(Equi Join), 자연 조인(Natural Join), 외부 조인(Outer Join) 등
        • 연산 기호 :
        • 표기 형식 : 테이블1 <조인조건>테이블2
      • 동일 조건(Equi Join)
        • 관계 연산자 중 '=' 연산자만을 사용하여 조건 표현
        • 가장 기본이 되는 조인
        • 두 테이블의 모든 속성을 합한 하나의 테이블 구조로 만들어짐(중복되는 속성도 포함된다)
      • 디비전(DIVISION, ÷)
        • A, B 두 테이블에서 'A  DIVISION B'는 B 테이블의 조건을 만족하는 튜플들을 A 테이블에서 추출
        • 결과는 연산에 사용된 속성은 제외
        • 연산 기호 : ÷
        • 표기 형식 : 테이블1(테이블1속성÷테이블2속성)테이블2

    2. 관계 해석(Relational Calculus)
      • 릴레이션에서 결과를 얻기 위한 과정을 표현하는 것
      • 연산자 없이 정의하는 방법을 이용하는 비절차적 언어
      • 종류 : 튜플관계해석, 도메인관계해석
      • 표기 형식 : {결과값 | 조건}

      [참고자료: 이기적in 2011 정보처리기능사/영진닷컴]