DB/RDB 11

물리적 데이터 모델링 역정규화 (Denormalization) 활용

원본 테이블 이 데이터 구조는 정규화된 상태로, 데이터의 중복을 최소화하고 데이터 무결성을 유지하도록 설계되어 있습니다.  • author: 작성자 정보 (id, name, profile) • topic : 주제 정보 (title, description, created, author_id) • topic_tag_relation : 주제와 태그 간의 관계를 나타내는 테이블 (topic_title, tag_id) • tag : 태그 정보 (id, name)방법 1 . 컬럼 중복 → JOIN 줄이기topic_tag_relation 테이블에 tag_name이라는 열을 추가하여, 태그 이름(rdb, free, commercial)을 바로 확인할 수 있도록 만듭니다. 1. 역정규화 이전 쿼리SELECT tag.na..

DB/RDB 2024.12.26

물리적 데이터 모델링 역정규화 (Denormalization)

역정규화 (Denormalization)  역정규화(Denormalization)는 정규화를 통해 잘게 분리된 테이블을 다시 통합하거나, 데이터 중복을 추가하여 데이터베이스의 읽기 성능을 최적화하는 기법입니다.주로 물리적 데이터 모델링 단계에서 적용되며, 데이터를 더 빠르게 조회하고 쿼리 성능을 개선하기 위해 사용됩니다.필요한 경우 읽기 성능 향상테이블을 통합하거나 중복 데이터를 저장하여, 자주 사용되는 데이터를 JOIN 없이 조회 가능JOIN 비용 감소정규화된 데이터베이스는 여러 테이블을 JOIN해야 필요한 데이터를 얻을 수 있는데, JOIN 연산은 성능에 부담을 줄 수 있음역정규화는 이 문제를 완화실시간 응답 속도 요구실시간 처리 시스템에서 빠른 데이터 조회가 중요한 경우, 역정규화를 통해 성능 최적..

DB/RDB 2024.12.25

물리적 데이터 모델링 (Physical Data Modeling)

물리적 데이터 모델링 물리적 데이터 모델링(Physical Data Modeling)은 논리적 데이터 모델을 기반으로, 실제 데이터베이스에서 구현 가능한 구조를 설계하는 단계입니다.이 단계에서는 DBMS의 특성, 성능 요구사항, 저장 장치의 구조 등을 고려하여 데이터베이스를 최적화된 형태로 설계하고, 결과적으로 SQL 문으로 변환하여 데이터베이스를 생성합니다.특히, 이 단계에서는 성능을 향상 시키는 것이 가장 중요한데, 이를 위해서는 find slow query, 즉, 병목 현상이 발생하는 지점을 찾는게 중요하다. * slow query각 DBMS 마다 설정이 다르다.MySQL : https://bemeal2.tistory.com/314 mysql / mariadb 슬로우쿼리(slowquery) 탐지하기..

DB/RDB 2024.12.24

논리적 데이터 모델링 도메인 (Domain)

도메인 (Domain)  도메인(Domain)은 데이터베이스 설계에서 속성(Attribute)에 허용되는 값들의 집합을 의미합니다. 특정 속성이 가질 수 있는 데이터의 범위나 타입을 정의하는 개념입니다.데이터 타입 : INTEGER, VARCHAR, DATE 등값의 제약 조건 : 범위 제한, 특정 형식 등특징 값의 범위 제한도메인은 속성이 가질 수 있는 값의 유형과 허용 범위를 정의합니다.ex. 나이 속성의 도메인은 0~120 사이의 정수(Integer)일 수 있습니다.속성의 데이터 타입과 제약 조건 포함도메인은 데이터 타입(ex. INTEGER, VARCHAR, DATE)뿐 아니라, 제약 조건(ex. UNIQUE, NOT NULL, CHECK)을 포함하여 속성을 더 구체적으로 정의할 수 있습니다.속성 ..

DB/RDB 2024.12.23

논리적 데이터 모델링 정규화 (Normalization)

정규화 (Normalization) 정규화(Normalization)는 데이터베이스 설계에서 데이터의 중복을 줄이고 무결성을 유지하기 위해 테이블을 체계적으로 분리하는 과정입니다. 논리적 데이터 모델링 단계에서 정규화는 데이터를 구조화하고 관계형 데이터베이스의 최적화된 설계를 만드는 핵심 작업입니다. * 목적 데이터 중복 제거데이터를 여러 테이블로 나눔으로써 중복된 데이터를 줄입니다.데이터 무결성 유지데이터를 체계적으로 저장하여 삽입, 수정, 삭제 시 발생할 수 있는 이상현상(Anomalies)을 방지합니다.데이터 구조 최적화데이터를 논리적으로 구조화하여 관계형 데이터베이스의 성능과 일관성을 향상시킵니다.제1정규형 (1NF : First Normal Form) 조건모든 속성이 원자값(Atomic Valu..

DB/RDB 2024.12.20

논리적 데이터 모델링 Mapping Table

Mapping Table Mapping Table(매핑 테이블)은 관계형 데이터베이스에서 N:M 관계를 구현하기 위해 생성되는 중간 테이블(Junction Table)을 의미합니다. Mapping Table은 두 개의 엔터티 간 다대다(N:M) 관계를 일대다(1:N) 관계로 분리하여 처리합니다.특징 N:M 관계를 해결두 엔터티 간의 N:M 관계를 각각 1:N 관계로 분리각 엔터티는 Mapping Table과 1:N 관계를 맺습니다.교차 테이블 역할Mapping Table은 두 테이블의 기본 키(Primary Key)를 포함하여, 이를 복합 키(Composite Key) 또는 개별 열로 사용하여 두 테이블 간 관계를 정의합니다.데이터 연결Mapping Table은 두 테이블 간의 연결 정보를 저장하는 용도..

DB/RDB 2024.12.19

논리적 데이터 모델링 Mapping Rule

Mapping Rule Mapping Rule(매핑 규칙)은 개념적 데이터 모델(Conceptual Data Model)에서 정의된 엔터티(Entity), 속성(Attribute), 관계(Relationship)를 논리적 데이터 모델(Logical Data Model)로 변환할 때 사용하는 변환 규칙을 의미합니다.엔터티와 속성, 관계를 테이블, 열, 키로 변환하는 체계적인 규칙을 말하며, 관계형 데이터베이스 설계 과정에서 중요한 단계입니다.주요 작업 엔터티와 속성을 테이블과 열로 변환개념적 모델의 엔터티(Entity)를 테이블(Table)로 변환속성(Attribute)을 테이블의 열(Column)로 정의식별자를 키로 정의개념적 모델에서 정의된 식별자(Identifier)를 논리적 모델의 기본키(Prima..

DB/RDB 2024.12.18

논리적 데이터 모델링 (Logical Data Modeling)

논리적 데이터 모델링 논리적 데이터 모델링(Logical Data Modeling)은 개념적 데이터 모델링에서 정의된 엔터티(Entity), 속성(Attribute), 관계(Relationship)를 기반으로, 이를 관계형 데이터베이스 구조에 맞게 구체화하는 작업입니다. 논리적 데이터 모델링은 데이터베이스 설계 과정의 중간 단계로, 데이터를 데이터베이스 관리 시스템(DBMS)에 독립적인 형태로 설계하여, 이후 물리적 데이터 모델링으로 전환하는 기초를 제공합니다.주요 작업  1. 엔터티와 속성을 테이블과 열로 변환엔터티를 테이블로 변환하고, 속성을 열(Column)로 정의합니다.각 열에는 데이터 타입과 제약 조건을 설정합니다.2. 키(Key) 정의후보키(Candidate Key)를 식별하고, 기본키(Pri..

DB/RDB 2024.12.17

개념적 데이터 모델링 (Conceptual Data Modeling)

개념적 데이터 모델링 개념적 데이터 모델링(Conceptual Data Modeling)은 데이터베이스 설계의 초기 단계로, 현실 세계의 데이터를 추상화하여 엔터티(Entity), 속성(Attribute), 관계(Relationship)를 정의하는 과정입니다. 이 과정에서 데이터를 명확히 시각적으로 표현하고 분석하기 위해 ERD(Entity-Relationship Diagram)를 사용합니다. 구성 요소  1. ERD (Entity-Relationship Diagram)ERD(엔터티-관계 다이어그램)는 데이터베이스 설계에서 엔터티(Entity), 속성(Attribute), 관계(Relationship)를 시각적으로 표현한 다이어그램입니다. 데이터 간의 구조와 상호작용을 한눈에 이해할 수 있도록 돕는 도구..

DB/RDB 2024.12.16

관계형 데이터 모델링 (Relation Data Model)

관계형 데이터 모델링 (Relation Data Model)  관계형 데이터 모델링(Relational Data Modeling)은 데이터를 논리적이고 체계적으로 설계하여 관계형 데이터베이스에 저장하고 관리할 수 있도록 만드는 과정입니다. 이 과정에서는 데이터를 엔터티(Entity), 속성(Attribute), 관계(Relationship)로 나누고, 이를 테이블 형식으로 구현하며, 데이터 간의 관계를 효율적으로 정의합니다. 이 모델링은 데이터의 일관성, 무결성, 중복 제거, 효율적인 검색을 보장하기 위해 필수적입니다.순서  업무파악 ➡️ 개념적 데이터 모델링 ➡️ 논리적 데이터 모델링 ➡️ 물리적 데이터 모델링 1. 업무파악활용하면 좋은 툴 : ?데이터를 어떤 목적으로 사용할지, 저장해야 할 데이터는 ..

DB/RDB 2024.12.13