Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

AI가 번역한 다른 언어 보기

제이의 블로그

논리적 데이터 모델링

  • 작성 언어: 한국어
  • 기준국가: 모든 국가 country-flag

언어 선택

  • 한국어
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

durumis AI가 요약한 글

  • 논리적 데이터 모델링은 개념적 데이터 모델링에서 ERD를 관계형 데이터베이스 패러다임에 맞게 변환하는 기계적인 과정으로, 맵핑 룰을 기준으로 진행된다.
  • 관계는 카디널리티와 옵셔널리티를 고려하여 1:1, 1:N, N:M 관계 순서로 표현되며, N:M 관계는 중간 테이블을 생성하여 처리한다.
  • 정규화는 테이블을 관계형 데이터베이스에 적합하게 만드는 과정으로, 제 1 정규화는 원자적 값을 갖도록, 제 2 정규화는 부분 종속성을 제거하고, 제 3 정규화는 이행적 종속성을 제거하는 과정이다.

요구 사항 분석과 개념적 데이터 모델링에 비해, 논리적 데이터 모델링은 좀 더 기계적인 절차다.

맵핑 룰(Mapping Rule)을 기준으로 관계형 데이터베이스 패러다임에 맞도록 개념적 데이터 모델링 산출물인 ERD를 변환하는 과정이 주를 이룬다.

맵핑 룰

  • 사각형 엔티티는 테이블로 변환한다.
  • 원형 속성은 컬럼으로 변환한다.
  • 관계는 PK 또는 FK로 변환한다.

가장 먼저 FK가 없는 테이블이 우선적으로 표현하기 편하다.

관계

  • 카디널리티와 옵셔널리티를 고려해 테이블 간 관계를 표현한다.
  • 가장 간단한 관계인 1:1 관계부터, 1:N 관계, N:M 관계 순서로 표현 한다.

1:1 관계의 처리

1:1 관계에서는 두 테이블간에 의존 관계를 살펴보고 FK를 설정한다.

부모와 자식 테이블로 볼 수 있다.

1:N 관계의 처리

1:N 관계에서는 1을 N이 참조하므로, N에 FK를 설정한다.

N:M 관계의 처리

관계형 데이터베이스에서 N:M 관계를 처리하기 위해서는 중간 테이블(맵핑 테이블 또는 연결 테이블이라고도 한다)을 생성하여 표현한다.

이 때 중요한 점은, 맵핑 테이블을 기준으로 참조되는 양쪽 테이블의 카디널리티와 옵셔널리티를 표현 해주어야 한다.

정규화(Normalization)

Wikipedia - Database Normalization

정제되지 않은 테이블을 관계형 데이터베이스에 어울리는 표로 만드는 과정이다.

산업적으로 사용되는 정규화 과정은 제 3 정규화 과정까지이며, 그 뒤의 정규화 과정들은 학술적으로 주로 이용된다.

정규화는 한번에 하나의 단계씩 순차적으로 진행해야한다.

제 1 정규화(1st Normal Form, 1NF)

  • 테이블에 속한 컬럼들이 원자적(Atomic)인 값만 가져야한다.

제 1 정규화의 대원칙을 살펴보면, 무슨 말인지 이해하기 어렵지만 단순히 각 컬럼이 하나의 값만을 가져야 한다는 것이다.

만약 하나의 컬럼안에 여러 값이 들어있다면, 즉 원자적이지 않다면 SQL문으로 조인하기도 어렵고 여러가지 문제점을 일으킬 수 있다.

제 2 정규화(2nd Normal Form, 2NF)

  • 제 1 정규화를 만족해야한다.
  • 부분 종속성을 제거해야한다.

테이블의 행 중에 중복되는 값이 존재한다면, 해당 행이 의존하고 있는 컬럼을 찾아서 분리 한다.

제 3 정규화(3rd Normal Form, 3NF)

  • 제 1 정규화를 만족해야한다.
  • 제 2 정규화를 만족해야한다.
  • 이행적 종속성을 제거해야한다.

이행적 종속성이라는 말이 굉장히 이해하기 어렵다. 이해한 바로는, 특정 테이블에서 암시적으로 다른 테이블의 식별자를 의미하는 값(물론 FK는 제외한다)이 하나 이상이라면 그것을 이행적 종속성이라고 하는 것 같다.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
칸반보드 프로젝트 2 논리적 데이터 모델링 논리적 데이터 모델링을 진행하기 위해 개념적 데이터 모델링 ERD를 표 형태로 변환하고 정규화를 수행하는 과정을 설명합니다. 특히, Ticket 테이블의 Tag를 별도 테이블로 생성하여 제 2 정규형을 만족시키는 방법을 다룹니다.

2024년 4월 9일

관계형 데이터 모델링 관계형 데이터 모델링은 현실 세계의 정보를 테이블과 데이터로 나누는 과정이며, 요구 사항 분석, 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링의 네 단계로 구성됩니다.

2024년 4월 8일

개념적 데이터 모델링 개념적 데이터 모델링은 정보를 엔티티로 분리하고, 엔티티 간의 관계를 ERD로 표현하는 과정입니다. 엔티티는 독립적인 데이터 저장 단위이며, 속성은 엔티티가 가진 데이터를 의미합니다. ERD에서는 식별자를 사용하여 엔티티를 고유하게 식별하며, 식별자는 기본 키, 후보 키, 대체 키, 중복 키 등으로 구분됩니다. 엔티티 간의 관계는 존재에 의한 관계와 행위에 의한 관계로 나뉘며, 카디널리티와 옵셔널리티를 통해 수적 관계와 필수/선택적 관계를 표현합니다.

2024년 4월 8일

[비전공, 개발자로 살아남기] 13. 신입 개발자 기술면접 신입 개발자 기술 면접에서 자주 묻는 질문과 답변 예시를 통해 개발 역량을 어필할 수 있습니다. 객체 지향 프로그래밍, 데이터베이스, 네트워크, 알고리즘, 팀 프로젝트 경험 등 다양한 질문에 대한 준비를 통해 자신감 있는 면접을 준비하세요.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024년 4월 1일

[비전공, 개발자로 살아남기] 14. 신입 개발자 자주 묻는 기술면접 내용 요약 신입 개발자 면접에서 자주 나오는 기술 질문과 답변을 정리했습니다. 메모리 영역, 자료구조, 데이터베이스, 프로그래밍 패러다임, 페이지 교체 알고리즘, 프로세스와 스레드, OSI 7 계층, TCP와 UDP 등 다양한 주제를 다룹니다.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024년 4월 3일

[이펙티브 자바] 아이템 5. 자원을 명시하지 말고 의존 객체 주입을 사용하라 클래스가 내부적으로 하나 이상의 자원에 의존하는 경우, 싱글턴과 정적 유틸리티 클래스 대신 의존 객체 주입을 사용하는 것이 좋습니다. 의존 객체 주입을 통해 클래스의 유연성, 재사용성, 테스트 용이성을 향상시킬 수 있습니다.
제이온
제이온
제이온
제이온

2024년 4월 28일

[이펙티브 자바] 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 정적 팩터리 메서드는 생성자 대신 인스턴스를 생성하는 데 사용할 수 있는 유용한 방법입니다. 이름을 가질 수 있고, 생성자보다 더 많은 유연성을 제공하며, 플라이웨이트 패턴, 싱글톤 패턴, 서비스 제공자 프레임워크와 같은 디자인 패턴을 구현하는 데 사용할 수 있습니다.
제이온
제이온
제이온
제이온

2024년 4월 27일

[오브젝트] 2장. 객체 지향 프로그래밍 영화 예매 시스템을 객체 지향 프로그래밍으로 구현하는 방법을 설명합니다. 영화, 상영, 사람, 할인 정책, 할인 조건 등의 객체를 정의하고, 객체 간의 협력을 통해 할인 요금을 계산하는 방법을 제시합니다.
제이온
제이온
제이온
제이온

2024년 4월 28일

데이터 라벨링이란? 종류, 장점, 단점 데이터 라벨링은 컴퓨터가 데이터를 이해하고 활용할 수 있도록 데이터에 태그를 붙이는 과정입니다. 개와 고양이를 구별하는 작업을 예로 들면, 컴퓨터가 개와 고양이 사진을 구분하도록 각 사진에 "개" 또는 "고양이"라는 태그를 붙여주는 것입니다. 데이터 라벨링은 사물 인식, 텍스트 분류, 감정 분석, 음성 인식 등 다양한 분야에서 활용됩니다.
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

2024년 3월 29일