CS 스터디
[데이터베이스] 데이터베이스 물리적, 논리적 설계란?
수방방
2024. 7. 12. 16:54
📍 데이터베이스의 논리적 설계란?
🔮 데이터 모델링
- 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장 장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 구조로 변환시키는 과정입니다.
- 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터를 모델화합니다.
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계입니다.
- 트랜잭션의 인터페이스 설계
- 관계형 데이터베이스라면 테이블을 설계하는 단계입니다.
🔮 논리적 설계에서 수행해야 하는 주요 작업
- E-R 다이어그램의 릴레이션 스키마 변환
- 논리적 설계의 첫번째 작업은 개념적 설계 단계에서 작성된 E-R 다이어그램을 릴레이션 스키마로 변환하는 것입니다.
- 엔티티(Entity) 변환 : 각 엔티티는 테이블로 변환됩니다.
- 속성(Attribute) 변환 : 각 엔티티의 속성은 테이블의 컬럼으로 변환됩니다.
- 관계(Relationship) 변환 : 엔티티 간의 관계는 외래키로 표현됩니다.
- 릴레이션 스키마의 세부 정의
- 릴레이션 스키마로 변환한 후 속성의 데이터 타입, 길이, null 값 허용 여부, 기본값 설정, 제약 조건 등 세부 사항을 정의해야 합니다.
- 제약 조건(Constraints) 설정: 데이터의 무결성을 유지하기 위한 제약 조건을 설정합니다.
- 기본키(Primary Key): 각 테이블의 기본키를 설정하여 고유 식별자를 정의합니다.
- 외래키(Foreign Key): 테이블 간의 관계를 정의하고, 참조 무결정을 유지합니다.
- 유일성 제약(Unique Constraint): 특정 컬럼의 값이 중복되지 않도록 설정합니다.
- 체크 제약(Check Constraint): 특정 조건을 만족하는 값만 입력되도록 설정합니다.
- 정규화 (Normalization)
- 데이터 중복의 최소화하고, 데이터 무결성을 유지하기 위해 정규화를 수행합니다.
- 제1정규형(1NF) : 각 테이블의 모든 속성 값이 원자 값을 가지도록 변환
- 제2정규형(2NF) : 부분 함수 종속성 제거
- 제3정규형(3NF) : 이행적 함수 종속성 제거
📍 데이터베이스의 물리적 설계란?
🔮 데이터 구조화
- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장 장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정입니다.
- 물리적 설계 단계에서는 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정합니다.
- 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사합니다.
🔮 물리적 설계 시 고려 사항
-> 물리적 데이터베이스 구조는 DB 시스템 성능에 중대한 영향을 주기 때문에 아래와 같은 사항을 고려해야 합니다.
- 인덱스 구조
- 레코드 크기
- 파일에 존재하는 레코드 수
- 파일에 대한 트랜잭션의 갱신과 참조 성향
- 성능 향상을 위한 개념 스키마의 변경 여부 검토
- 잦은 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려, 시스템 운용 시 파일 크기와 변화 가능성