CS 스터디

[데이터베이스] 데이터베이스 물리적, 논리적 설계란?

수방방 2024. 7. 12. 16:54

📍 데이터베이스의 논리적 설계란?

🔮 데이터 모델링

  • 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장 장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 구조로 변환시키는 과정입니다.
  • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터를 모델화합니다.
  • 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계입니다.
  • 트랜잭션의 인터페이스 설계
  • 관계형 데이터베이스라면 테이블을 설계하는 단계입니다.

🔮 논리적 설계에서 수행해야 하는 주요 작업

  1. E-R 다이어그램의 릴레이션 스키마 변환
    • 논리적 설계의 첫번째 작업은 개념적 설계 단계에서 작성된 E-R 다이어그램을 릴레이션 스키마로 변환하는 것입니다.
    • 엔티티(Entity) 변환 : 각 엔티티는 테이블로 변환됩니다.
    • 속성(Attribute) 변환 : 각 엔티티의 속성은 테이블의 컬럼으로 변환됩니다.
    • 관계(Relationship) 변환 : 엔티티 간의 관계는 외래키로 표현됩니다.
  2. 릴레이션 스키마의 세부 정의
    • 릴레이션 스키마로 변환한 후 속성의 데이터 타입, 길이, null 값 허용 여부, 기본값 설정, 제약 조건 등 세부 사항을 정의해야 합니다.
    • 제약 조건(Constraints) 설정: 데이터의 무결성을 유지하기 위한 제약 조건을 설정합니다.
      • 기본키(Primary Key): 각 테이블의 기본키를 설정하여 고유 식별자를 정의합니다.
      • 외래키(Foreign Key): 테이블 간의 관계를 정의하고, 참조 무결정을 유지합니다.
      • 유일성 제약(Unique Constraint): 특정 컬럼의 값이 중복되지 않도록 설정합니다.
      • 체크 제약(Check Constraint): 특정 조건을 만족하는 값만 입력되도록 설정합니다.
  3. 정규화 (Normalization)
    • 데이터 중복의 최소화하고, 데이터 무결성을 유지하기 위해 정규화를 수행합니다.
    • 제1정규형(1NF) : 각 테이블의 모든 속성 값이 원자 값을 가지도록 변환
    • 제2정규형(2NF) : 부분 함수 종속성 제거
    • 제3정규형(3NF) : 이행적 함수 종속성 제거

 

📍 데이터베이스의 물리적 설계란?

🔮 데이터 구조화

  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장 장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정입니다.
  • 물리적 설계 단계에서는 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정합니다.
  • 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사합니다.

🔮 물리적 설계 시 고려 사항

-> 물리적 데이터베이스 구조는 DB 시스템 성능에 중대한 영향을 주기 때문에 아래와 같은 사항을 고려해야 합니다.

  • 인덱스 구조
  • 레코드 크기
  • 파일에 존재하는 레코드 수
  • 파일에 대한 트랜잭션의 갱신과 참조 성향
  • 성능 향상을 위한 개념 스키마의 변경 여부 검토
  • 잦은 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려, 시스템 운용 시 파일 크기와 변화 가능성