데이터 설계

반응형
SMALL

스키마

  • 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것이다.

종류 내용 예시

외부 스키마 사용자나 응용프래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것 회계 팀 사용자는 고객의 거래 내역, 결제 정보 등 회계 관련 데이터만 볼 수 있도록 구성된 스키마
개념 스키마 • 데이터베이스의 전체적인 논리적 구조
• 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재함
회사 전체의 데이터베이스: 직원 정보, 고객 정보, 판매 내역, 재고 관리, 회계 정보 등이 포함된 데이터베이스 구조
내부 스키마 • 물리적 저장장치의 입장에서 본 데이터베이스 구조
• 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄
데이터가 하드디스크에 B-Tree 구조로 저장되거나, 해싱 기법을 사용해 레코드가 특정 위치에 물리적으로 저장되는 방식이 내부 스키마에 정의됨

데이터베이스 설계 순서

1. 요구 조건 분석

  • 설명: 사용자의 요구 사항을 분석하고, 데이터베이스에서 어떤 정보가 필요한지를 파악합니다. 이 단계에서 요구 조건 명세서를 작성하여 시스템의 목표와 사용자 요구를 명확히 정의합니다.
  • 예시:
    • 온라인 서점 프로젝트의 경우, 고객의 주문 내역, 재고 관리, 결제 처리, 배송 정보 등의 요구 사항이 분석됩니다. 이를 바탕으로, 고객, 상품, 주문, 결제 정보를 관리할 필요가 있다는 결론에 도달할 수 있습니다.

2. 개념적 설계

  • 설명: 분석된 요구 조건을 기반으로 개념 스키마를 작성하고, 데이터 간의 관계를 정의합니다. 이 과정에서는 E-R ****다이어그램을 통해 엔티티(객체)와 그 관계를 시각적으로 표현하고, 트랜잭션 모델링도 함께 수행합니다.
  • 예시:
    • 온라인 서점의 E-R 다이어그램에는 고객(Customer), 주문(Order), 상품(Product), 결제(Payment)와 같은 엔티티가 있고, 고객은 주문을 하고, 주문에는 여러 상품이 포함되며, 각 주문은 결제 정보를 가집니다.

3. 논리적 설계

  • 설명: 개념적 설계를 기반으로, 목표 DBMS에 맞는 논리적 스키마를 설계합니다. 이는 데이터베이스 관리 시스템(DBMS)에서 구현 가능한 구조로 변환하는 과정입니다. 또한, 트랜잭션 인터페이스도 설계하여 데이터 조작을 위한 인터페이스를 정의합니다.
  • 예시:
    • MySQL을 사용한다면, 고객, 주문, 상품, 결제와 같은 테이블을 정의하고, 각각의 속성(필드)과 데이터 타입을 설계합니다. 예를 들어, 고객 테이블에는 CustomerID, Name, Email 같은 필드가 포함됩니다.

4. 물리적 설계

  • 설명: 논리적 설계를 바탕으로, 목표 DBMS의 물리적 특성에 맞춰 데이터가 효율적으로 저장될 수 있도록 설계합니다. 인덱스 설계, 데이터 저장소 설정, 파티셔닝 등 물리적 저장 구조를 고려합니다.
  • 예시:
    • 데이터 조회 성능을 높이기 위해 고객 테이블의 CustomerID에 인덱스를 생성하고, 주문 데이터는 날짜별로 파티셔닝하여 저장할 수 있습니다.

5. 구현

  • 설명: 물리적 설계에 맞춰, DBMS의 DDL(데이터 정의어)을 사용하여 데이터베이스를 실제로 생성합니다. 이 단계에서 테이블, 뷰, 인덱스 등의 데이터베이스 객체를 생성하고, 트랜잭션을 처리하는 프로그램을 작성합니다.
  • 예시:
    • CREATE TABLE Customer (CustomerID INT PRIMARY KEY, Name VARCHAR(50), Email VARCHAR(100)); 와 같은 SQL 명령어를 사용하여 테이블을 생성하고, 주문 및 결제 처리를 위한 트랜잭션 프로시저도 작성합니다.

개념적 설계

  • 개념적 설계(정보 모델링, 개념화)는 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
  • 개념적 설계에서는 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행한다.
  • 개념적 설계에서는 요구 분석에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다.

논리적 설계

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

물리적 설계

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

'정보처리기사 > 데이터 입출력 구현' 카테고리의 다른 글

정규화과정  (1) 2024.10.13
관계  (5) 2024.10.13
데이터베이스 키(Key)와 제약조건  (1) 2024.10.13
릴레이션  (1) 2024.10.13
데이터 모델  (1) 2024.10.13