데이터베이스 설계

  • 개념적 데이터베이스 설계 : 정보 사용의 모델을 개발하는 과정으로 실세계를 바탕으로 추상화 모델을 구축한다.
    • 엔티티-관계 (ER: Entity-Relationship)모델이 주로 사용된다.
  • 물리적 데이터베이스 설계 : 물리적인 저장 장치와 접근 방식을 다룸
  • 엔티티 : 서로 구분이 되며 조직체에서 DB에 나타내려는 객체를 의미
  • 관계 : 두 개 이상의 엔티티들 간의 연관
  • 프로세스 : 관련된 활동
  • 무결성 제약조건 : 데이터의 정확성과 비즈니스 규칙을 의미
데이터베이스 설계의 개요
한 조직체의 운영과 목적을 지원하기 위해 DB를 생성하는 과정이다. 
목적은 모둔 주요 응용과 사용자들이 요구하는 데이터, 관계를 표현하는 것

데이터베이스 설계의 주요단계
- 요구사항 분석, 개념적 설계, DBMS의 선정, 논리적 설계, 물리적 설계, 트랜잭션 설계
  • 요구사항 수집 및 분석 : 기존의 문서 조사, 인터뷰나 설문 → 엔티티, 애트리뷰트, 관계 파악
    • 데이터 처리에 관한 요구사항 → 연산의 종류, 데이터의 양 분석
  • 개념적 설계 : 조직체에서 사용되는 정보의 모델을 구축
    • 사용자의 요구사항 명세로부터 개념적 스키마가 만들어짐
    • ER모델과 같은 높은 추상화 수준의 데이터 모델을 기반으로 구조 명시
    • 엔티티 타입, 애트리뷰트 도메인, 키 애트리뷰트를 결정
  • DBMS 선정 : 기술적, 정치적, 경제적 요인을 검토하여 선정
  • 논리적 설계 : 개념적 스키마에 알고리즘을 적용해 논리적 스키마를 생성, 스키마로 사상하는 과정
  • 물리적 설계 : 응답 시간, 트랜잭션 처리율 등의 성능 기준으로 요구사항을 만족시키는 구조를 결정
  • 트랜잭션 설계 : 완성될 DB에서 동작할 응용 프로그램에 대한 설계를 진행
ER 모델 : 개념적 설계를 위한 모델, 실세계를 엔티티, 애트리뷰트, 관계로 표현함
- 관계 데이터 모델로 사상하기 용이하며 엔티티, 관계, 애트리뷰트 및 카디날리티, 제약조건 등의 구문이 있다.

엔티티
  • 실세계에 독립적으로 존재하며 고유하게 식별이 가능한 객체
  • 생각이나 개념과 같이 추상적인 것도 있다.
  • 엔티티 타입은 동일한 애트리뷰트들을 가진 엔티티들의 틀
  • 엔티티 집합은 동일한 애트리뷰트들을 가진 엔티티들의 모임
  • 엔티티 타입은 내포, 엔티티 집합은 외연에 해당된다.
  • ER 다이어그램에서 직사각형으로 나타냄
  • 강한 엔티티 타입 ; 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입
  • 약한 엔티티 타입 : 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입. 소유 엔티티 타입이 필요하다.
애트리뷰트
  • 하나의 엔티티는 연관 애트리뷰트들의 집합으로 설명된다.
    • 사원 엔티티는 사원번호, 이름, 직책, 급여 등의 애트리뷰트를 갖는다.
  • 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 값들의 집합으로, 여러 애트리뷰트가 동일한 도메인을 공유할 수 있다.
  • 키 애트리뷰트는 한 엔티티 타입 내에서 각 엔티티를 고유하게 식별한다.
  • 요구사항 명세에서 명사나 형용사로 표현된다.
  • ER 다이어그램에서 타원형
  • 단순 애트리뷰트 : 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
  • 복합 애트리뷰트 : 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트. 밀접히 연관된 것을 모아놓은 것이다.
  • 단일 값 애트리뷰트 : 각 엔티티마다 정확히 하나의 값을 갖는 애트리뷰트 (대부분)
  • 다치 애트리뷰트 : 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트. 이중선 타원으로 표현한다.
  • 저장된 애트리뷰트 : 다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트
  • 유도된 애트리뷰트 : 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트. 점선 타원으로 표현한다. 
관계와 관계 타입 : 엔티티들 사이에 존재하는 연관, 연결로서 다이아몬드로 표현된다.
차수 : 관계로 연결된 엔티티 타입들의 개수. 2진 관계가 가장 흔하다.
카디날리티 : 하나의 엔티티가 참여할 수 있는 관계의 수를 말한다.
  • 1:1 관계, 1:N 관계, M:N 관계
  • 관계 실선 위에 최솟값과 최댓값이 표시된다. * (아스테리카) 표시는 n을 나타낸다.



ER 스키마를 관계 모델의 릴레이션으로 사상
  • 엔티티 타입과 단일 값 애트리뷰트 
    • 단계1_정규 엔티티 : 각 정규 엔티티 타입에 있던 단순 애트리뷰트를 릴레이션에 포함, 복합 애트리뷰트는 단순 애트리뷰트만 포함
    • 단게2_약한 엔티티 : 약한 엔티티 타입에 있던 단순 애트리뷰트를 릴레이션에 포함, 부분 키와 소유 엔티티의 기본 키를 외래키로 포함시켜 기본 키 구성 
  • 2진 관계 타입 
    • 단계3_2진 1:1관계 : 둘 중 하나의 릴레이션에서 기본 키를 나머지 릴레이션의 외래 키로 포함시키거나 다른 릴레이션을 만들어 포함
    • 단계4_2진 1:N관계 : 1측의 릴레이션 기본 키를 N측의 외래 키로 포함시킨다.
    • 단계5_2진 M:N관계 : 릴레이션을 새로 생성해서 M과 N측의 기본 키를 외래 키로 포함시킨다. 외래 키의 조합이 새로운 릴레이션의 기본 키가 된다.
  • 3진 이상 관계 타입
    • 단계6 : 새로운 릴레이션을 생성하고, 각 참여 릴레이션의 기본 키를 새로운 릴레이션의 외래 키로 포함. 이 외래 키의 조합이 기본 키가 된다.
    • 1:N:N의 경우는 1측의 기본 키를 참조하는 외래 키를 제외한 나머지 외래 키들의 조합이 기본 키가 된다.
  • 다치 애트리뷰트
    • 각 다치 애트리뷰트에 대해 새로운 릴레이션을 생성


+ Recent posts