본문 바로가기
[DB] 반정규화 (De-Normalization) 1. 반정규화(De-Normalization)란? 반정규화란 성능을 향상시키거나, 편의성을 위해 정규화된 데이터에 의도적으로 테이블을 병합/분할하거나, 테이블(또는 칼럼, 릴레이션)을 추가하는 것이다. 정규화만을 수행하면 엔터티의 갯수가 증가하고 관계가 많아져 일부 여러 개의 조인이 걸려야만 데이터를 가져오는 경우가 있다. 이러한 경우 오히려 성능에 역효과를 가져오는데, 이 때 성능 개선을 위해 부분적으로 반정규화를 적용하는 방법이 있다. 또한 정규화의 함수적 종속관계는 위반하지 않지만 데이터의 중복성을 증가시켜야만 데이터 조회의 성능을 향상시키는 경우가 있다. 이러한 경우 반정규화를 통해서 성능을 향상시킬 수 있게 되는 것이다. 칼럼의 반정규화가 많은 이유는 개발을 하다가 SQL문장 작성이 복잡해지고 .. 2023. 2. 27.
[DB] Attribute 1. Attribute 란? 엔티티를 설명할 수 있는 정보들 중, 더 이상 의미적으로 분리되지 않는 가장 작은 데이터 단위 인스턴스가 엔티티를 구성하는 요소인 것처럼, 속성(Attribute)은 인스턴스를 구성하는 요소이다. Entity, Instance, Attribute, Value의 관계를 다이어그램으로 보자. 에를 들면, 사원 집합(Entity)은 여러 명의 사원(Instance)들로 구성되며, 각 사원은 이름, 주소, 전화번호 등 여러 속성(Attribute)로 설명 가능하고, 이 속성들은 각각의 속성값(Value)과 1:1 매칭된다. 2. Attribute의 조건 업무에 반드시 필요로 하며, 관리해야 할 정보이어야 한다. 제 2정규화 조건에 따라, 주 식별자에 함수적 종속성을 가져야 한다. 하.. 2023. 2. 26.
[DB] Relationship 1. Relationship이란? 엔티티와 엔티티 사이의 논리적인 연관성 중, 특별히 관리하고자 하는 업무적, 직접적인 연관성을 뜻한다. 인스턴스들끼리의 연관성을 Pairing이라고 하며, Relationship은 Pairing들의 집합이다. 2. Cardinality 관계 수, 차수로, 서로 연관된 실체 유형 간의 관계유형. 한 실체 유형과 쌍을 맺고 있는 다른 편 실체 유형의 수를 정의한다. 관계 소속의 관계 수 1:1, 1: N(일대다), N:1(다대일) 혹은 M:N(다대다) 관계의 정도 혹은 순서 3가지가 있다. 1 : 1 1 : N M : N 3. Optionality 존재할 수도, 존재하지 않을 수도 있다라는 것으로, Relationship의 진위 여부를 판단해주기도 한다. 두 엔티티 간의 관.. 2023. 2. 25.
[DB] Entity 1. Entity란? 엔티티란 업무에서 지속적인 관심을 가져야 할 대상인 인스턴스들을 공통점으로 묶어놓은 집합이다. 엔티티는 자신의 특성을 설명할 수 있는 속성(Attribute)를 갖는다. 2. Entity의 조건 업무에 필요하고, 관리하고자 하는 정보이어야 한다. 유일한 식별자에 의해 식별이 가능해야 한다. 영속적으로 존재하는 두 개 이상의 인스턴스 집합이어야 한다. 업무 프로세스에 이용되어야 한다. 반드시 속성(Attribute)을 가져야 한다. 다른 엔티티와 최소 한 개 이상의 관계(Relation)를 가져야 한다. 3. Entity의 분류 유무(有無)형에 따른 분류 유형 엔티티 : 물리적인 형태가 있고 안정적이며, 지속적으로 활용되는 엔티티. ex) 사원, 물품, 강사, 등... 개념 엔티티 :.. 2023. 2. 24.
[DB] Data Modeling 1. Data Modeling이란? 주어진 개념으로부터 논리적인 모델을 구성하고, 이를 물리적인 모델로 표현하는 것을 말한다. 업무를 분석하여 일정한 표기법으로 표현하여 데이터베이스를 만들고, 개발 및 데이터관리에 사용하기 위한 것이다. 3요소 Entity(엔터티) → Table Relation(관계) → PK, FK Attribute(속성) → Column 특징 추상화 : 현실을 일정한 형식에 맞추어 표현한다. 단순화 : 누구나 쉽게 이해할 수 있도록 표현한다. 명확화 : 애매모호함을 제거하고 유일한 의미를 갖도록 표현한다. 관점 데이터 관점 : 업무와 데이터의 관계, 또는 데이터 간의 관계는 무엇인지에 대해서 모델링하는 방법. 프로세스 관점 : 무엇을 하고 있는지, 또는 무엇을 해야 하는지를 모델링하.. 2023. 2. 21.
[DB] 정규화 (Normalization) 1. 정규화(Normalization)란? 관계형 데이터베이스(RDBMS)의 설계에서 데이터의 중복을 최소화하도록 구조화하는 것. 일반적으로 정규화란 크고, 정리되지 않은 테이블들을 잘 조직된 작은 테이블들로 나누는 것이다. 정규화의 목적은 하나의 테이블에서 발생한 데이터 조작(삽입, 삭제, 변경)이 테이블 간의 관계를 통해 다른 테이블로 전달되게 하는 것이다. 이를 통해 이상 현상을 제거할 수 있다. ※ 데이터의 조작이 의도한대로 이루어지지 않은 것을 이상 현상하며, 삽입 이상, 수정 이상, 삭제 이상이 있다. 현재 제 6정규화까지 발표되었으며, 제 N정규화가 적용된 데이터를 제 N정규형(Normalized Form)이라 한다. 일반적으로는 제 3정규형을 많이 사용한다. 2. 정규형 (Normalize.. 2023. 2. 12.
반응형