데이터베이스 설계는 데이터를 구성하고 저장하는 방식을 계획하는 프로세스입니다.
보통 개념적 설계, 논리적 설계, 물리적 설계로 나누어집니다.
개념적 설계
개념적 설계는 데이터베이스에서 포함되어야 하는 엔티티, 속성 및 관계를 식별하는 프로세스입니다. 이 단계에서는 데이터 모델링 도구를 사용하여 엔티티 관계 다이어그램(ERD)을 작성하며, 이를 통해 업무 프로세스를 모델링하고 데이터 요구 사항을 식별합니다.
요약하자면, UML 모델링 처럼 사용자의 요구 사항을 수집하고 이를 바탕으로 시스템 구조와 기능을 정의하는 과정입니다.
https://myallinone.tistory.com/entry/ERD-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%84%A4%EA%B3%84%ED%95%A0%EA%B9%8C
예를 들어, 학교의 학생과 교수에 대한 데이터베이스를 설계한다고 가정해보겠습니다.
개념적 설계에서는 학생과 교수가 엔티티이고, 각각의 속성으로 이름, 학번, 전공, 연락처를 추가하고 학생과 교수의 관계로는 수업을 수강하는 관계나 지도교수와 학생간의 관계를 지정합니다. 이러한 엔티티, 속성, 관계 등을 ERD를 사용하여 모델링하는 것이 개념적 설계의 예시입니다.
논리적 설계
논리적 설계는 개념적 설계의 결과를 토대로 데이터베이스 스키마를 설계하는 과정입니다. 이 단계에서는 ERD를 기반으로 데이터 모델을 선택하고 릴레이션 스키마를 설계합니다. 이 과정에서는 무결성 제약 조건을 식별하고 데이터를 검색하고 업데이트하는 방법을 결정합니다.
요약하자면, 데이터베이스에 CREATE TABLE 명령어를 사용하여 테이블을 생성하는 과정입니다.
학생의 경우 학번을 기준으로 릴레이션을 설계할 수 있으며, 교수의 경우 교번을 기준으로 릴레이션을 설계할 수 있습니다. 이러한 릴레이션 스키마를 생성하면 릴레이션 간의 관계, 외래키 등을 추가하고 무결성 제약 조건을 정의할 수 있습니다.
물리적 설계
물리적 설계는 데이터베이스를 실제로 저장할 수 있는 형태로 변환하는 과정입니다. 이 단계에서는 릴레이션에 대한 물리적 저장소를 결정하고 인덱스 및 기타 성능 향상 기술을 선택합니다. 이 단계에서는 또한 데이터베이스 보안, 백업 및 복원, 병행성 제어 등과 같은 운영 요구 사항을 고려합니다.
MySQL 데이터베이스를 사용한다면 데이터베이스와 테이블을 생성하고 인덱스 및 성능 최적화 기술을 선택할 수 있습니다. 또한, 데이터베이스 백업 및 복원, 보안 등의 운영 요구 사항을 고려하여 데이터베이스를 최종적으로 구축합니다.
정리하자면 개념적 설계는 데이터베이스 설계의 초기 단계로서 엔티티, 속성 및 관계를 모델링하고 식별합니다. 논리적 설계는 릴레이션 스키마를 설계하고 무결성 제약 조건과 데이터 검색 및 업데이트 방법을 결정합니다. 물리적 설계는 릴레이션에 대한 물리적 저장소와 인덱스, 보안 등의 운영 요구 사항을 고려합니다.
'정보처리기사' 카테고리의 다른 글
[정보처리기사] HTTP 통신 (HyperText Transfer Protocol)이란? (0) | 2023.04.19 |
---|---|
[정보처리기사] OSI 7계층 (Open Systems Interconnection) (0) | 2023.04.19 |
[정보처리기사] 파티셔닝과 클러스터링의 차이점 (0) | 2023.04.13 |
[정보처리기사] 정규화 (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) (0) | 2023.04.13 |
[Database] MySQL의 뷰 테이블로 SQL 성능을 향상 시키기 (0) | 2023.04.13 |