안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 11-3. 관계형 데이터베이스 이해 - 데이터베이스 설계 단계를 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 관계형 데이터베이스 이해 - 데이터베이스 설계 단계입니다.

 

 

 

TL;DR

데이터베이스 설계 단계를 다룹니다. 설계는 데이터 중심 설계와 처리 중심 설계로 분류되며, 데이터베이스의 구조와 기능을 계획하고 설계하는 과정을 설명합니다.

 


데이터베이스 설계 단계

데이터베이스 설계는 일련의 단계를 거쳐 데이터베이스 시스템을 구축하는 과정을 의미합니다. 

 

121-2_2데이터베이스 설계 단계.png

 

각 단계는 순차적으로 진행되며, 이전 단계의 결과물을 바탕으로 다음 단계를 수행합니다. 

 

요구사항 분석 단계 (Requirement Analysis)

요구사항 분석 단계에서는 사용자와 시스템, 애플리케이션의 요구 사항을 수집하고 분석합니다. 데이터베이스가 어떤 목적으로 사용되며 어떤 기능을 제공해야 하는지 파악합니다. 데이터베이스에 저장해야 할 데이터의 종류, 데이터 처리 방법, 사용자와 애플리케이션의 요구사항 등을 정의합니다. 

 

개념적 설계 단계 (Conceptual Design)

요구사항 분석 단계에서 수집한 정보를 기반으로 데이터베이스의 개념적 모델(Conceptual model)을 구축합니다. 주로 ER 다이어그램(ER Diagram)과 같은 모델링 기법을 사용하여 데이터 간 관계를 표현합니다. 개념적 모델은 데이터의 의미와 구조를 추상적으로 표현(abstractly represents)하며, 목표는 데이터베이스의 전체적인 논리적 구조를 파악하는 것입니다.

 

논리적 설계 단계 (Logical Design)

개념적 설계 단계에서 생성된 개념적 모델을 실제 DBMS에 맞는 논리적 모델(Logical model)로 변환합니다. 데이터베이스의 논리적 구조를 정의하고, 릴레이션(테이블)과 애트리뷰트(열) 등을 설계합니다. 주로 관계형 데이터베이스를 기반으로 하며, 정규화(Normalization)와 인덱스 설계 등이 이 단계에서 이루어집니다.

 

물리적 설계 단계 (Physical Design)

논리적 설계 단계에서 생성된 논리적 모델을 실제 DBMS에 맞게 변환합니다. 물리적 설계 단계에서는 저장소 구조(Storage structures), 접근 경로(Access path), 데이터 형(Data type), 인덱스와 같은 세부 사항들을 결정합니다. 목표는 데이터베이스 시스템이 최적의 성능을 제공할 수 있도록 구현하는 것입니다.

 

구현 단계 (Implementation)

물리적 설계 단계에서 정의된 데이터베이스 스키마와 응용 프로그램을 실제로 구현합니다. 데이터베이스 시스템을 구축하고 데이터를 입력하며, 애플리케이션을 개발해 데이터베이스와 상호작용합니다.


위의 다섯 단계를 거쳐 데이터베이스 설계가 완료됩니다. 


데이터베이스 설계의 결과물은 구현 단계에서 구축되고 운영 단계에서 실제 사용됩니다. 데이터베이스 설계는 데이터베이스 시스템의 성능과 유지 보수에 많은 영향을 미치므로 신중하게 계획하고 수행하세요.

 

 

데이터베이스 설계 단계 - 데이터 중심 설계, 처리 중심 설계

데이터베이스 설계는 사용자의 요구를 기반으로 데이터베이스의 구조를 계획하고 설계하는 과정을 말합니다. 이 단계는 크게 데이터 중심(Data driven) 설계와 처리 중심(Processing driven) 설계로 분류됩니다. 데이터 흐름도(DFD-Data Flow Diagram)를 사용하여 작업 또는 프로세스의 관점과 정보 흐름의 관점에서 데이터베이스 구조를 설계할 수도 있습니다.

 

데이터 중심(Data driven) 설계

데이터 중심 설계는 데이터베이스의 구조를 결정할 때, 주로 데이터의 특성과 관계에 초점을 두는 설계입니다. 데이터 중심 설계는 데이터의 종류(Type), 속성(Attribute), 관계(Relationship) 등을 고려하여 데이터를 어떤 방식으로 구조화할지를 결정합니다. 이 설계 방식에서는 데이터의 정합성(Integrity)과 무결성(Consistency)을 보장하며, 데이터가 효율적이고 일관성 있게 저장됩니다. 데이터베이스 테이블, 애트리뷰트, 기본 키 등 데이터베이스의 구조를 설계하는 데에 사용됩니다.

 

처리 중심(Processing driven) 설계

처리 중심 설계는 데이터베이스에서 수행되는 작업이나 프로세스에 초점을 두는 방식입니다. 이 설계 방식은 주로 데이터베이스에 저장된 데이터를 처리하거나, 작업을 수행할 때 효율성과 성능을 우선 고려합니다. 데이터의 처리 방식, 쿼리 최적화, 인덱스 등을 고려하여 데이터베이스의 구조를 설계합니다.

 

데이터 흐름도(DFD-Data Flow Diagram)는 작업 또는 프로세스 관점과 정보 흐름(Flow of information)의 관점에서 데이터베이스 구조를 설계할 때 사용됩니다. 

 

123-1-DFD-Data Flow Diagram.png

Figma로 작성한 Uber DFD Example

 

DFD는 데이터와 데이터 처리 과정 간 흐름을 다이어그램으로 표현하여 데이터베이스의 구조와 작업 흐름을 시각적으로 분석할 수 있게 도와줍니다. DFD를 통해 데이터베이스에서 어떤 데이터가 어떻게 처리되는지 파악하여 데이터베이스의 구조를 최적화할 수 있습니다.


데이터베이스 설계 단계에서는 사용자의 요구를 분석하여 데이터 중심 또는 처리 중심 설계를 적절히 조합하고, DFD 등의 도구를 사용해 데이터베이스의 구조를 정의합니다. 


☑️ 챗GPT 활용: 데이터베이스 분석 설계 - 데이터 흐름도(DFD-Data Flow Diagram)에 대해서 알려줘

 

 

데이터베이스 설계 단계 - 데이터 중심 설계 & 처리 중심 설계 결합 방법론

121-3 데이터-처리 결합 방법론.png

 

데이터 중심 설계 & 처리 중심 설계 결합 방법론은 데이터와 처리를 함께 고려하여 데이터베이스의 개념적 설계와 기능적 설계를 함께 수행하는 접근 방식입니다.


이 방법론은 데이터 저장, 검색, 조작을 효과적으로 수행하고, 다양한 애플리케이션과 사용자 요구사항을 충족하는 데이터베이스 시스템을 만들기 위해 사용됩니다. 데이터와 처리 요소를 개별적으로 다루지 않고, 상호 보완적으로 인식해 결합하는 종합적인 접근 방식입니다.


바꿔 말하자면, 데이터베이스의 구조와 응용 프로그램의 처리 기능을 통합하여 전체 시스템의 효율성과 유지 보수 편의성을 향상하는 방법론입니다. 데이터베이스 시스템을 애플리케이션 요구에 적합하게 구축하고, 데이터 구조와 처리 흐름이 효율적으로 결합되어 데이터베이스 시스템의 성능을 최적화할 수 있는 방법론입니다.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 21871
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12245
2294 SQL강좌: 12-1. 인덱스 생성과 관리 - 인덱스(Index) 소개 file 코난(김대우) 2023.08.18 61
2293 SQL강좌: 11-8. 관계형 데이터베이스 이해 - 데이터베이스 구현 코난(김대우) 2023.08.18 24
2292 SQL강좌: 11-7. 관계형 데이터베이스 이해 - 데이터베이스 물리적 설계 코난(김대우) 2023.08.18 23
2291 SQL강좌: 11-6. 관계형 데이터베이스 이해 - 데이터베이스 논리적 설계 코난(김대우) 2023.08.18 23
2290 SQL강좌: 11-5. 관계형 데이터베이스 이해 - 데이터베이스 설계 요구사항(Requirements) 분석과 개념적 설계 코난(김대우) 2023.08.18 20
2289 SQL강좌: 11-4. 관계형 데이터베이스 이해 - 데이터베이스 설계 목표와 고려사항 코난(김대우) 2023.08.18 16
» SQL강좌: 11-3. 관계형 데이터베이스 이해 - 데이터베이스 설계 단계 file 코난(김대우) 2023.08.18 19
2287 SQL강좌: 11-2. 관계형 데이터베이스 이해 - 데이터베이스 생명주기 file 코난(김대우) 2023.08.18 24
2286 SQL강좌: 11-1. 관계형 데이터베이스 이해 - 관계형 모델 코난(김대우) 2023.08.18 33
2285 SQL강좌: 10-4. T-SQL 프로그래밍 - 공통 테이블 식(CTE-Common Table Expression) 코난(김대우) 2023.08.18 47
2284 SQL강좌: 10-3. T-SQL 프로그래밍 - 변수, 조건문(IF-ELSE), 반복문(WHILE), CASE 표현식 코난(김대우) 2023.08.18 27
2283 SQL강좌: 10-2. T-SQL 프로그래밍 - 일괄처리(Batch) 코난(김대우) 2023.08.18 32
2282 SQL강좌: 10-1. T-SQL 프로그래밍 - 소개 코난(김대우) 2023.08.18 21
2281 SQL강좌: 9-3. 커서 - 현업에서 커서 사용 및 주의사항 코난(김대우) 2023.08.18 49
2280 SQL강좌: 9-2. 커서 - 커서 구문 코난(김대우) 2023.08.18 23
2279 SQL강좌: 9-1. 커서(CURSOR) - 커서 소개 코난(김대우) 2023.08.18 40
2278 SQL강좌: 8-7. 저장 프로시저 - 프로시저 캐시와 RECOMPILE 코난(김대우) 2023.08.18 40
2277 SQL강좌: 8-6. 저장 프로시저 - 종속성(Dependency) 확인 코난(김대우) 2023.08.18 44
2276 SQL강좌: 8-5. 저장 프로시저 - OUTPUT 파라미터 코난(김대우) 2023.08.18 44
2275 SQL강좌: 8-4. 저장 프로시저 - 동적 SQL(Dynamic SQL)과 SQL 주입(Injection) 공격 코난(김대우) 2023.08.18 54





XE Login