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


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

 

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

 

 

 

TL;DR

논리적 설계는 개념적 설계에서 생성된 개념적 데이터 모델을 실제 DBMS에 맞는 논리적 데이터 모델로 변환하는 과정입니다. 논리적 설계를 거치면 개념적 설계에서 생성한 개념들이 실제 데이터베이스 논리 스키마로 변환되며, 데이터베이스 시스템의 성능을 고려한 구조가 설계됩니다.

 


데이터베이스 - 논리적 설계

논리적 설계는 개념적 설계에서 생성된 개념적 데이터 모델을 실제 DBMS에 맞는 논리적 데이터 모델로 변환하는 단계입니다. 이 단계에서 데이터베이스의 구조와 트랜잭션 인터페이스를 설계합니다.
논리적 설계의 핵심 작업은 개념 모델링을 반영할 논리 모델을 선택하고, 해당 모델의 구조로 데이터베이스를 변환하는 것입니다.
아래와 같은 다양한 논리 모델이 있습니다. 


- 네트워크 모델 (Network model)
- 계층 모델 (Hierarchical model)
- 관계 모델 (Relational model)
- 객체 모델 (Object model)
- 객체-관계 모델 (Object-Relational model)

 

논리적 데이터 모델로 변환

논리적 설계 단계에서는 개념적 설계 단계에서 생성된 개념적 데이터 모델을 실제 DBMS에 맞는 논리적 데이터 모델로 변환합니다. 개념적 데이터 모델은 ER Diagram과 같은 모델로 표현되고, 이를 관계형 데이터베이스 시스템이나 객체 지향 데이터베이스 시스템과 같은 실제 DBMS에 맞는 논리적 데이터 모델로 변환합니다.

 

논리 모델들

논리적 설계에서는 다양한 논리 모델들 중에서 적합한 모델을 선택하여 데이터베이스의 구조를 정의합니다. 네트워크 모델, 계층 모델, 관계 모델, 객체 모델 등이 있으며, 최근에는 객체-관계 모델과 관계형 데이터 모델이 가장 많이 사용됩니다. 객체-관계 모델은 객체 지향 프로그래밍과 관계형 데이터베이스의 장점을 결합한 모델로, 객체 지향적인 표현과 유연성을 갖고 있으면서도 관계형 데이터베이스의 무결성과 효율성을 유지할 수 있습니다.

 

관련 DBMS 결정

선택한 논리 모델에 맞춰 DBMS를 결정합니다. 각 DBMS들은 특정한 논리 모델과 데이터베이스 기능을 지원하는데, 이에 따라 사용할 DBMS를 선택하여 데이터베이스의 논리적 스키마를 생성합니다. 각 DBMS는 해당 논리적 스키마를 DDL(Data Definition Language)로 기술하며, DDL로 데이터베이스의 테이블 구조, 인덱스, 제약 조건 등을 정의합니다.

 

 

논리적 설계 - 트랜잭션 인터페이스 설계

논리적 설계의 중요한 단계 중 하나는 트랜잭션 인터페이스 설계입니다. 이 단계에서는 개념적 설계 단계에서 정의한 트랜잭션들의 인터페이스를 구체화하고, 데이터베이스 스키마를 검토하고 보완합니다.

 

트랜잭션 인터페이스 설계

이전 개념적 설계 단계에서 트랜잭션의 입출력과 기능을 정의해 데이터베이스 작업 흐름을 트랜잭션 모델로 설계했습니다. 다음 절차로 트랜잭션 모델을 구현하기 위해 트랜잭션 인터페이스를 설계합니다. 트랜잭션 인터페이스는 트랜잭션이 어떤 입력을 받고, 어떤 출력을 리턴하는지, 그리고 내부적으로 어떤 제어 흐름을 수행하는지 정의합니다. 이 과정에서 각 트랜잭션이 데이터베이스와 상호작용하는 방법을 정의합니다.

 

스키마 검토 및 보완

논리적 설계 단계에서 생성된 데이터베이스 스키마를 검토하고 보완합니다. 이 단계에서는 스키마가 논리적으로 일관성이 있는지, 무결성을 유지하는지, 데이터의 중복성이 없는지 등을 평가합니다. 또한 스키마가 데이터의 양, 처리 빈도수, 처리 작업량과 같은 대량 데이터 처리 및 성능 평가 기준에 부합하는지 확인합니다.


성능 평가는 논리적 레코드 접근, 데이터 전송량, 데이터베이스 크기 등과 같은 기준을 적용해 스키마 성능을 평가합니다. 데이터베이스 시스템 성능은 스키마 구조와 직결되기 때문에, 적절한 성능 평가 기준을 적용해 충분한 성능을 내도록 보완합니다.

 

논리적 설계 정리

논리적 설계는 개념적 설계 결과물을 실제 DBMS에서 사용할 수 있는 구조로 변환하는 단계입니다. 선택한 논리 모델과 관련된 DBMS를 결정하여 데이터베이스 스키마를 정의하고, 이를 논리 스키마 DDL로 기술하여 데이터베이스를 구축합니다.

 

논리적 설계 단계를 거치면 개념적 설계 단계에서 생성한 추상적인 개념들이 실제 데이터베이스 논리 스키마로 변환되며, 데이터베이스 시스템의 성능을 고려한 논리 스키마가 설계됩니다. 이후 물리적 설계 단계에서는 실제 데이터베이스 시스템에 적합한 저장 구조와 인덱스 등을 결정하여 구현을 수행합니다.
 

 

SQL 강좌 책 구매

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

 

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

책구매링크.png

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





XE Login