데이터베이스 (7) 데이터베이스 설계

gmlwlswldbs·2021년 12월 13일
0

Computer Science

목록 보기
8/16

데이터베이스 설계 단계

  • 데이터베이스 설계 : 사용자드의 요구 사항을 고려하여 데이터베이스를 생성하는 과정
  • 데이터베이스 설계 방법
    1. E-R 모델과 릴레이션 변환 규칙 설계
        1. 요구사항분석 2. 개념적 설계 3. 논리적 설계 4. 물리적 설계 5. 구현
      • 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경
    2. 정규화를 이용한 설계

요구 사항 분석

  • 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악
  • 다양한 요구 사항을 수집하고 이를 분석한 결과를 요구 사항 명세서로 작성
  1. 사용자의 범위 결정
    • 실제 사용할 주요 사용자의 범위를 정해 불필요한 요구사항을 수집하지 않도록 하는 작업
  2. 해당 사용자가 조직에서 수행하는 업무 분석
    • 업무와 관련해 필요한 데이터와 데이터에 필요한 처리 등에 맞춰 요구 사항들을 수집, 분석
    • 요구 사항 수집 방법 : 면담, 설문지 배포, 업무 관련 문서 분석 등
  3. 분석 결과를 요구사항 명세서로 문서화
  • 요구 사항 분석 단계의 결과물 : 요구 사항 명세서

개념적 설계

  • 요구 사항 분석 결과를 기반으로 현실 세계에서 중요한 데이터 요소인 개체를 추출한 후 개체 간의 관계를 결정하여 이를 E-R 다이어그램으로 표현하는 것
  • 데이터베이스에 저장해 둘 필요가 있다고 판단되는 데이터 요소를 추출하고 데이터 요소 간의 관계를 파악하여 이를 표현
  • 개념적 설계의 결과물 : 개념적 스키마 (E-R 다이어그램)
  1. 개체와 속성 추출
    • 개체 : 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물. 개념적 모델링에 가장 중요한 요소
    • 요구 사항 명세서의 문장들의 명사 (일반적이고 광범위한 의미의 명사는 제외)
  2. 관계 추출
    • 관계 추출
      • 개체 간의 의미 있는 연관성
      • 문장에서 동사 (연관성을 의미있게 표현한 동사)
    • 매핑 카디널리티와 참여 특성 결정
      • 매핑 카디널리티 : 관계를 맺고 있는 두 개체에서 각 개체 인스턴스가 관계를 맺고 있는 상대 개체의 개체 인스턴스의 개수 / 일대다, 일대다, 다대다
      • 참여특성 : 필수적 참여, 선택적 참여
  3. E-R 다이어그램 작성
    • 개념적 스키마 : 요구사항 명세서에서 추출한 개체, 속성, 관계를 하나의 E-R 다이어그램으로 표현

논리적 설계

  • DBMS에 적합한(사용할 DBMS의 특성 고려) 논리적 데이터 모델을 이용해서 개념적 스키마를 기반으로 논리적 스키마를 설계
  • 일반적으로 관계 데이터 모델
  • E-R 다이어그램 -> 릴레이션 스키마 (테이블 스키마)
  • 논리적 설계의 결과물 : 논리적 스키마 (릴레이션 스키마)
  • 5가지 규칙에 의해 변환
    1. 모든 개체는 릴레이션으로 변환한다
      • 각 개체는 하나의 릴레이션
      • 개체의 이름 : 릴레이션 이름, 개체의 속성 : 릴레이션 속성
      • 복합 속성인 경우 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환
      • 키 속성 : 릴레이션의 기본키
    2. 다대다 관계는 릴레이션으로 변환한다
      • 다대다 관계를 하나의 릴레이션으로 변환
      • 관계의 이름: 릴레이션의 이름, 관계의 속성 : 릴레이션의 속성
      • 관계를 맺고 있는 개체를 규칙 1에 의해 변환 후 릴레이션들의 기본키를 관계 릴레이션에 포함시키고 외래키로 지정. 이 외래키들을 조합하여 관계 릴레이션의 기본키로 지정 (그림 참고)
      • 외래키 지정시 이름 같으면 다 다르게 표현해주어야 함
    3. 일대다 관계는 외래키로 표현한다
      • 일대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현
      • 3-1. 일반적인 일대다 관계는 외래키로 표현한다
        • 일반 개체들이 참여하는 일대다 관계
        • 1측의 개체 릴레이션의 기본키를 가져와 n측 개체 릴레이션에 포함시키고 외래키로 지정
        • 관계 속성들도 n측 개체 릴레이션에 포함
      • 3-2. 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다
        • 약한 개체가 참여하는 일대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현
        • 1측의 개체 릴레이션의 기본키를 가져와 n측 개체 릴레이션에 포함시키고 외래키로 지정
        • 관계 속성들도 n측 개체 릴레이션에 포함
        • 다른점 : 외래키가 포함된 릴레이션에서 이 외래키를 포함하여 기본키를 지정
        • = n측 개체 릴레이션이 가지고 있던 키 속성과 외래키 속성을 조합하여 기본키로 지정 (오너 개체에 따라 존재 여부가 결정되기 때문에)
    4. 일대일 관계를 외래키로 표현한다
      • 4.1. 일반적인 일대일 관계는 외래키를 서로 주고 받는다.
        • 서로 기본키를 주고 받아 이를 외래키로 지정
      • 4.2. 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
        • 관계가 가지고 있는 속성들도 관계에 필수적으로 참여하는 개체에 해당하는 릴레이션에 함께 포함시킨다
      • 4.3 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
        • 두 개체에 해당하는 릴레이션들을 하나로 합쳐 표현
        • 관계의 이름을 릴레이션의 이름으로 사용, 속성들도 모두 포함시킴
        • 키 속성을 조합하여 관계 릴레이션의 기본키로 지정
    5. 다중 값 속성은 릴레이션으로 변환한다
      • 다중값 속성의 경우 별도의 릴레이션을 만들어 포함시킨다.
      • 릴레이션의 이름은 자유롭게 정하고 다중값 곳겅을 가지고 있는 개체에 해당하는 릴레이션의 기본키를 가져와 포함시키고 이를 외래키로 지정. 기본키는 다중값 속성과 외래키를 조합하여 지정.
    6. 기타
    • 일대일 일대다 관계도 릴레이션으로 변환할 수 있다 (대신 릴레이션이 많아져 부담스러워짐)
    • 순환관계 : 기본 규칙 그대로
  • 릴레이션 스키마 변환 규칙을 이용한 논리적 설계

물리적 설계와 구현

  • 물리적 설계 : 하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스의 구조나 내부 저장 구조 등에 대한 물리적인 구조 설계
    • 결과물 : 물리적 스키마
  • 구현 : DBMS를 이용해 SQL문을 작성하고 이를 실행시켜서 데이터베이스를 실제로 생성하면 완료
    • 결과물 : 데이터베이스

0개의 댓글