😎
Onemorebottlee's TIL
  • 🤓Introduce
  • 📖DevLog
    • 💣Error
      • npm ERR! Cannot read properties of null (reading 'edgesOut')
      • git
        • src refspec main does not match any
      • NextJS
        • No img element
        • ReferenceError : document is not defined
        • `next/image` Un-configured Host
  • 📺Lecture
    • Nomad Coders
      • 초보자를 위한 리덕스 101
        • #0 Introduction
        • #1 PURE REDUX: COUNTER
        • #2 PURE REDUX: TO DO LIST
        • #3 REACT REDUX
        • #4 Redux Toolkit
      • 바닐라 JS로 그림 앱 만들기
      • React JS 마스터 클래스
        • #2 Styled Componnents
        • #3 TypeScript
        • #4 Crypto Tracker
        • #5 State Management
        • #6 Trello
        • #7 ANIMATIONS
      • Next.js 시작하기
        • #0 INTRODUCTION
        • #1 FRAMEWORK OVERVIEW
        • #2 PRACTICE PROJECT
      • Typescript로 블록체인 만들기
        • #1 Introduction
        • #2 Overview of TypeScript
        • #3 Functions
        • #4 Classes and Interfaces
        • #5 TypeScript Blockchain
      • SQL Master Class
        • #1 Introduction
        • #2 SQLite
        • #3 Data Definition Language
        • #4 Data Manipulation Language
        • #5 Subqueries and CTEs
        • #6 Indexes
        • #7 MySQL
        • #8 Foreign Keys
        • #9 JOINS
        • #10 Nomalization
        • #11 Events & Triggers
        • #12 Full-Text Indexes
        • #13 PostgreSQL
        • #14 Functions And Procedures
        • #15 Transactions
        • #16 Data Control Language
        • #17 PostgreSQL JSON Columns
        • #18 PostgreSQL Extensions
        • #19 MongoDB
        • #20 REDIS
        • #21 Javascript and Python Drivers
    • Udemy
      • TypeScript 마스터 with Webpack & React
        • [S1] 소개
        • [S2] 설치 및 설정
        • [S3] 타입 애너테이션 기초
        • [S4] 함수
        • [S5] 객체 타입
        • [S6] 배열 타입
        • [S7] 유니온타입
        • [S8] Tuple & Enum
        • [S9] 인터페이스
        • [S10] TypeScript 컴파일러
        • [S11] 미니 프로젝트 DOM, 타입 단언, 그리고 더 많은 내용
        • [S12] Class
        • [S13] TS Class
        • [S14] Generics ⭐⭐⭐⭐⭐
        • [S15] Narrowing
        • [S16] Type Declarations
        • [S17] Module
        • [S18] Webpack 과 TypeScript
        • [S19] React
    • 모두를 위한 컴퓨터 과학 CS50
      • 1. 컴퓨팅 사고
      • 2. C언어
      • 3. 배열
      • 4. 알고리즘
      • 5. 메모리
      • 6. 자료구조
    • 생활코딩
      • DATABASE
        • DATABASE1
  • 📚Book
    • 모던 자바스크립트 Deep Dive
      • 1장 프로그래밍
      • 2장 자바스크립트란?
      • 3장 자바스크립트 개발 환경과 실행 방법
      • 4장 변수
      • 5장 표현식과 문
      • 6장 데이터 타입
      • 7장 연산자
      • 8장 제어문
      • 9장 타입 변환과 단축 평가 ⭐⭐⭐
      • 10장 객체 리터럴
      • 11장 원시 값과 객체의 비교
      • 12장 함수 ⭐⭐⭐⭐
      • 13장 스코프
      • 14장 전역 변수의 문제점
      • 15장 let, const 키워드와 블록 레벨 스코프 ⭐⭐⭐
      • 16장 프로퍼티 어트리뷰트
      • 17장 생성자 함수에 의한 객체 생성
      • 18장 함수와 일급 객체 ⭐⭐
      • 19장 프로토타입 ⭐⭐⭐⭐⭐
      • 20장 strict mode
      • 21장 빌트인 객체 ⭐
      • 22장 this ⭐⭐⭐
      • 23장 실행 컨텍스트 ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
      • 24장 클로저 ⭐⭐⭐⭐⭐⭐⭐
      • 25장 클래스
      • 26장 ES6 함수의 추가 기능
      • 27장 배열 ⭐⭐⭐
      • 28장 Number
      • 29장 Math
      • 30장 Date
      • 31장 RegExp
      • 32장 String
      • 33장 7번째 데이터 타입 Symbol
      • 34장 이터러블
      • 35장 스프레드 문법
      • 36장 디스트럭처링 할당
      • 37장 Set과 Map
      • 38장 브라우저의 렌더링 과정⭐⭐⭐⭐⭐⭐⭐⭐
      • 39장 DOM ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
      • 40장 이벤트⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
      • 41장 타이머
      • 42장 비동기 프로그래밍 ⭐⭐⭐⭐⭐⭐⭐⭐
      • 43장 Ajax
      • 44장 REST API
      • 45장 프로미스
      • 46장 제너레이터와 async/await
      • 47장 에러 처리
      • 48장 모듈
      • 49장 Babel과 Webpack을 이용한 ES6+/ES.NEXT 개발 환경 구축
    • 러닝 타입스크립트
      • Ch.1 자바스크립트에서 타입스크립트로
      • Ch.2 타입 시스템
      • Ch.3 유니언과 리터럴
      • Ch.4 객체
      • Ch.5 함수
      • Ch.6 배열
      • Ch.7 인터페이스
      • Ch.8 클래스
      • Ch.9 타입 제한자
      • Ch.10 제네릭
      • Ch.11 선언 파일
      • Ch.12 IDE 기능 사용
      • Ch.13 구성 옵션
      • Ch.14 구문 확장
      • Ch.15 타입 운영
      • 용어 사전
    • 자바스크립트 완벽 가이드
    • SQL in 10 Minutes
      • 1장 SQL 이해하기
      • 2장 데이터 가져오기
      • 3장 가져온 데이터 정렬하기
      • 4장 데이터 필터링
      • 5장 고급 데이터 필터링
      • 6장 와일드카드 문자를 이용한 필터링
      • 7장 계산 필드 생성하기
      • 8장 데이터 조작 함수 사용하기
      • 9장 데이터 요약
      • 10장 데이터 그룹핑
      • 11장 서브쿼리 사용하기
      • 12장 테이블 조인
      • 13장 고급 테이블 조인 생성하기
      • 14장 쿼리 결합하기
      • 15장 데이터 삽입하기
      • 16장 데이터 업데이트와 삭제
      • 17장 테이블 생성과 조작
      • 18장 뷰 사용하기
      • 19장 저장 프로시저 사용하기
      • 20장 트랜잭션 처리 관리하기
      • 21장 커서 사용하기
      • 22장 고급 데이터 조작 옵션
    • 면접을 위한 CS 전공지식 노트
      • 4 데이터베이스
        • 4.1 데이터베이스의 기본
    • 2023 이기적 SQL 개발자 이론서 + 기출문제
      • 데이터 모델링 이해
        • S1. 데이터 모델링
  • 💻Study
    • CS 지식 발표
      • 1회차
      • 2회차
      • 3회차
      • 4회차
      • 5회차
      • 6회차
      • 7회차
      • 8회차
      • 9회차
    • TypeScript Exercises
      • Ex 1
      • Ex 2
      • Ex 3
      • Ex 4
      • Ex 5
      • Ex 6
      • Ex 7
      • Ex 8
      • Ex 9
      • Ex 10
  • 🔄ETC
    • Article
      • Atomic Design Pattern
      • 프론트엔드 개발자
    • DATABASE
      • Oracle
        • CEIL() & FLOOR() - 소수점 올림 & 내림
        • DUAL 테이블 - 임시 테이블로 결과 확인하기
    • Ubuntu
      • 어플리케이션 업데이트
Powered by GitBook
On this page
  • 데이터 모델링의 이해
  • 데이터 모델링
  • 데이터 모델링의 특징
  • 데이터 모델링 단계
  • 데이터 모델링을 위한 ERD (Entity Relationship Diagram)
  • 데이터 모델링 고려사항
  • 3층 스키마 3-Level Schema
  • 3층 스키마
  • 3층 스키마 구조
  • 엔터티 Entity
  • 엔터티 Entity
  • 엔터티 도출
  • 엔터티 특징
  • 엔터티 종류
  • 속성 Attribute
  • 속성 Attribute
  • 속성의 특징과 종류
  • 관계 Relationship
  • 관계 Relationship
  • 관계의 종류
  • 관계 차수 Relation Cardinality
  • 식별 관계 Identification Relationship
  • 엔터티 식별자 Entity Identifier
  • 주식별자 (기본키, Primary key)
  • 식별자의 종류

Was this helpful?

  1. Book
  2. 2023 이기적 SQL 개발자 이론서 + 기출문제
  3. 데이터 모델링 이해

S1. 데이터 모델링

데이터 모델링의 이해

데이터 모델링

  • 데이터 모델링은 현실 세계를 데이터베이스로 표현하기 위해 추상화한다.

  • 고객과의 의사소통을 통해 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해 모델링한다.

  • 데이터 모델링은 이해하기 쉽게 모델링해야 한다.

  • 데이터 모델링은 업무 프로세스를 추상화하고, 소프트웨어를 분석 설계하면서 점점 더 상세해진다.

  • 데이터 모델링은 고객의 비즈니스 프로세스를 이해하고 정의한 비즈니스 프로세스의 규칙으로 데이터 모델을 표현한다.

데이터 모델링의 특징

데이터 모델링 단계

1) 개념적 모델링 (Conceptual Data Modeling)

  • 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해 데이터 모델링을 수행한다.

  • 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계

  • 업무적 관점에서 모델링하며 기술적 용어는 가급적 사용하지 않는다.

  • 엔터티와 속성을 도출하고 개념적 ERD를 작성한다.

  • 추상화 수준이 가장 높은 수준의 모델링

2) 논리적 모델링 (Logical Data Modeling)

  • 개념적 모델링을 논리적 모델링으로 변환하는 작업

  • 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.

  • 정규화를 수행하여 재사용성을 높이고 데이터 모델의 독립성을 확보한다.

  • 특정 데이터베이스 모델에 종속

3) 물리적 모델링(Physical Modeling)

  • 데이터베이스를 실제 구축한다.

  • 성능, 보안, 가용성을 고려해 구축한다.

  • 구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계

  • 성능, 보안, 가용성 등을 고려해 데이터베이스를 구축

데이터 모델링 단계

개념적 모델링 > 논리적 모델링 > 물리적 모델링

데이터 모델링을 위한 ERD (Entity Relationship Diagram)

엔터티와 엔터티 간 관계를 정의하는 모델링 방법으로 사실상 데이터 모델링의 표준

1) ERD 작성 절차

엔터티 도출하고 그리기 > 엔터티 배치 > 관계 설정 > 관계명 서술 > 관계 참여도 표현 > 관계의 필수 여부 표현

2) ERD 작성시 고려사항

  • 중요 엔터티는 가급적 좌상단 위치.

  • 이해가 쉬워야 하고, 복잡하지 않아야 한다.

데이터 모델링 고려사항

1) 데이터 모델의 독립성

  • 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있다.

  • 독립성 확보를 위해 중복 데이터를 제거한다.

  • 데이터 중복을 제거하는 방법 = 정규화

2) 고객 요구사항의 표현

  • 데이터 모델링으로 고객과 데이터 모델러 간 의사소통을 할 수 있어야 하므로, 고객의 요구사항을 간결하고 명확하게 표현해야 한다.

3) 데이터 품질 확보

  • 데이터베이스 구축 시 데이터 표준을 정의하고 표준 준수율을 관리해야 한다.

  • 데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있다.


3층 스키마 3-Level Schema

3층 스키마

  • 사용자, 설계자, 개발자의 관점별 데이터베이스를 기술하고 관계를 정의한 표준이다.

  • 3층 스키마는 을 확보하기 위한 방법이다.

  • 3단계 계층으로 분리해 을 확보하는 방법으로 각 계층을 뷰라고도 한다.

3층 스키마 구조

구조
설명

외부 스키마

사용자 관점, 업무상 관련 있는 데이터 접근

관련 데이터베이스의 뷰를 표시

응용 프로그램이 접근하는 데이터베이스를 정의한다.

설계자 관점, 사용자 전체 집단의 데이터베이스 구조

전체 데이터베이스 내 규칙과 구조를 표현한다.

통합 데이터베이스 구조

내부 스키마

개발자 관점, 데이터베이스의 물리적 저장 구조

데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미


엔터티 Entity

엔터티 Entity

관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야 하는 데이터이다.

엔터티의 의미

인물
엔터티의 의미

Peter Chen 1976

엔터티는 변별할 수 있는 사물이다.

James Martin 1989

정보를 저장할 수 있는 어떤 것이다.

C.J Date 1986

데이터베이스 내부에서 변별 가능한 객체이다.

Thomas Bruce 1992

정보가 저장될 수 있는 장소, 사람, 사건, 개념, 물건 등이다.

엔터티 도출

  • 엔터티는 고객의 비즈니스 프로세스에서 관리되어야 하는 정보를 추출해야 한다.

엔터티 특징

엔터티 특징
설명

식별자

유일한 식별자가 있어야 한다.

인스턴스 집합

2개 이상의 인스턴스가 있어야 한다.

속성

반드시 속성을 가지고 있다.

관계

다른 엔터티와 최소 1개 이상 관계가 있어야 한다.

업무

업무에서 관리되어야 하는 집합이다.

엔터티 종류

  • 엔터티 종류는 물리적 형태의 존재 여부, 엔터티 발생 시점에 따른 종류로 나뉘어진다.

물리적 형태의 존재 여부에 따른 엔터티 종류

종류
설명

유형

지속적으로 사용되는 엔터티

개념

물리적 형태 없이 개념적으로 사용되는 엔터티

사건

비즈니스 프로세스를 실행하면서 생성되는 엔터티

발생 시점에 따른 엔터티 종류

종류
설명

기본

키 엔터티, 독립적으로 생성되는 엔터티

중심

기본 엔터티로부터 발생되고 행위 엔터티를 생성하는 엔터티

행위

2개 이상의 엔터티로부터 발생된다


속성 Attribute

속성 Attribute

  • 속성은 업무에서 필요한 정보인 엔터티가 가지는 항목이다.

  • 속성은 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.

  • 인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다.

속성의 특징과 종류

속성의 특징

  • 속성은 업무에서 관리되는 정보이다.

  • 일반적으로 하나의 값만 가지며, 주식별자에 함수적으로 종속된다. 즉, 기본키가 변경되면 속성 값도 변경된다.

속성의 종류

분해 여부에 따른 속성의 종류

종류
설명

단일 속성

하나의 의미로 구성된 것 회원ID, 이름 등

복합 속성

여러 의미가 있는 것 주소

다중값 속성

여러 값을 가질 수 있는 것으로 엔터티로 분해된다. 상품 리스트

특성에 따른 속성의 종류

종류
설명

기본 속성

비즈니스 프로세스에서 도출되는 본래의 속성 회원ID, 이름, 계좌번호, 주문 일자 등

설계 속성

데이터 모델링 과정에서 발생되는 속성 유일한 값 부여 상품 코드, 지점 코드 등

파생 속성

다른 속성에 의해 만들어지는 속성 합계, 평균 등

도메인

속성이 가질 수 있는 값의 범위 성별 - 남자 | 여자


관계 Relationship

관계 Relationship

  • 관계는 엔터티 간 관련성을 의미하며 와 로 분류된다.

관계의 종류

1) 존재 관계

존재 관계는 엔터티 간 상태를 의미한다. 예를 들어 고객이 은행에 회원가입하면 관리점이 할당되고, 할당된 관리점에서 고객을 관리한다.

2) 행위 관계

행위 관계는 엔터티 간 어떤 행위가 있는 것을 의미한다. 예를 들어 증권회사는 계좌를 개설하고 주문을 발주한다.

관계 차수 Relation Cardinality

1) 관계 차수

두 엔터티 간 관계에 참여하는 수를 의미한다.

2) 관계 차수의 종류

1대1 관계

1대1 관계에는 와 가 있다.

1대N 관계

1대N 관계는 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계이다. 예를 들어 고객은 여러 개의 계좌를 가질 수 있다.

M대N 관계

M대N 관계는 두 엔터티가 서로 여러 개의 관계를 가지고 있는 것이다. 예를 들어 한 학생이 여러 개의 과목을 수강할 수 있다. 또한 한 과목은 여러 학생이 수강한다. 이 때 M대N 관계가 발생한다.

이러한 M대N 관계는 관계형 데이터베이스에서 조인할 경우 이 발생한다. 따라서 M대N 관계를 1대N, N대1로 해소해야 한다.

필수적 관계와 선택적 관계

필수적 관계는 반드시 하나 존재해야 하는 관계로 |로 표현한다.

선택적 관계는 없을 수도 있는 관계로 O로 표현한다.

식별 관계 Identification Relationship

1) 식별 관계

식별 관계란 강한 개체의 기본키를 약한 개체의 기본키 중 하나로 공유한 관계를 말한다.

강한 개체는 어떤 다른 엔터티에 의존하지 않고 독립적으로 존재하는 개체를 말한다. 강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에 기본키를 공유한다. 따라서 강한 개체의 기본키 값이 변경되면 식별 관계의 엔터티의 값도 변경된다.

2) 비식별 관계

비식별 관계는 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것을 의미한다.

강한 개체와 약한 개체

강한 개체는 누구에도 지배되지 않는 독립적 개체이다.

약한 개체는 개체의 존재가 다른 개체의 존재에 의존하는 개체이다.


엔터티 식별자 Entity Identifier

식별자는 엔터티를 대표할 수 있는 유일성을 만족하는 속성이다.

주식별자 (기본키, Primary key)

주식별자는 최소성, 대표성, 유일성, 불변성을 만족한다.

키의 종류에는 , , , , 가 있다.

식별자의 종류

식별자는 대표성, 생성 여부, 속성 수, 대체 여부로 분리된다.

1) 식별자의 대표성

주식별자 - 대표성 O. 유일성과 최소성, 대표성을 만족하는 식별자로 다른 엔터티와 참조 관계로 연결 가능

보조 식별자 - 대표성 X. 유일성과 최소성은 만족하지만 대표성을 만족하지 못함

2) 생성 여부

내부 식별자 - 생성 O. 엔터티 내부에서 스스로 생성되는 식별자

외부 식별자 - 생성 X. 다른 엔터티와의 관계로 인해 만들어지는 식별자

3) 속성의 수

단일 식별자 - 하나의 속성으로 구성

복합 식별자 - 두 개 이상의 속성으로 구성

4) 대체 여부

본질 식별자 - 비즈니스 프로세스에서 만들어지는 식별자

인조 식별자 - 인위적으로 만들어지는 식별자

대표성
생성 여부
속성 수
대체 여부

주식별자

내부 식별자

단일 식별자

본질 식별자

보조 식별자

외부 식별자

복합 식별자

인조 식별자

Previous데이터 모델링 이해NextCS 지식 발표

Last updated 7 months ago

Was this helpful?

📚