Database/SQLD 30

[SQLD] 2-03. 대량 데이터에 따른 성능 2024.03.01

성능 저하의 원인 한 테이블에 데이터 대량 집중 ( = 대량의 데이터가 처리되는 테이블 ) 1) 인덱스의 Tree 구조 너무 커짐 ( 효율성↓) ➡ 데이터 처리(입력, 수정, 삭제, 조회)시 디스크 I/O 다량 유발 2) SQL문장에서 데이터를 처리하기 위한 I/O 양의 증가함 3) 인덱스를 생성할 때 인덱스의 크기(용량) ↑ ➡ 인덱스를 찾아가는 단계 깊어짐 ➡ 조회의 성능에 영향 미침 4) 인덱스의 특성으로 인한 일량 ↑ ➡ 트랜잭션 (데이터 입력/수정/삭제) 의 경우 조회보다 더 큰 성능 저하 유발 5) 데이터에 대한 범위 조회시 더 많은 I/O 유발로 인한 성능저하 한 테이블에 여러개의 칼럼 존재 1) 데이터가 디스크의 여러 블록에 존재 ➡ 디스크에서 데이터를 읽는 I/O ↑ 2) 로우 체이닝과 ..

[SQLD] 2-02. 반정규화 (De-Normalization) 2024.02.25

반정규화 : 데이터의 조회 서능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정 조회 성능은 향상될 수 있으나 입력, 수정, 삭제 성능은 저하될 수 있음 데이터 정합성 이슈가 발생할 수 있음 반정규화 과정은 정규화가 끝난 후 거치게 되며 일정한 룰이 존재함 반정규화 절차 1) 반정규화 대상조사 (범위처리빈도수, 범위, 통계성) 2) 다른 방법 유도 검토 (뷰, 클러스터링, 인덱스 조정) 3) 반정규화 적용 (테이블,속성, 관계 반정규화) 반정규화 대상 조사 1) 자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우 2) 테이블에 대량의 데이터가 있고 대량의 데이터 범위를 자주 처리하는 경우에 처리범위를 일정하게 줄이지 않으면 성능을 보장할 수 없는..

[SQLD] 2-01. 정규화 (Normalization) 2024.02.25

성능데이터 모델링 💡 성능 데이터 모델링 DB 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인구조, PK, FK 등 여러가지 성느오가 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능저하에 따른 재업무 비용을 최소화 할 수 있음 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가하게 됨 성능 데이터 모델링 고려사항 ① 데이터 모델링을 할 때 정규화를 정확하게 수행 ② DB 용량 산정을 수행 ③ DB에 발생되는 트랜잭션의 유형을 파악 ④ 용량과 트랜잭션의 유형에 따라 반정규화를 수행 ⑤ 이력모델의 조정, PK/FK조정, 슈퍼/서브타입 조정..

[SQLD] 1-05. 식별자 (Identifiers) 2024.02.13

05. 식별자 (Identifiers) (1) 식별자란? 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성을 의미 EX) 학번, 군번, 사번 식별자는 논리 모델링에서 사용하는 용어 ↔ 물리 모델링에서는 키(key)로 표현 (2) 주식별자 주식별자는 기본키, PK(Primary Key)에 해당하는 속성 하나의 속성이 주식별자가 될 수도 있고 여러 개의 속성이 주식별자가 될 수도 있음 유일성 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다 최소성 유일성을 보장하는 최소 개수의 속성이어야 한다 불변성 속성값이 되도록 변하지 않아야 한다 존재성 속성값이 NULL일 수 없다 (3) 분류 대표성 여부 주식별자 (Primary Identifier) - 유일성, 최소성, 불변성, 존재성을 가..

[SQLD] 1-04. 관계 (Relationship) 2024.02.13

04. 관계 (Relationship) (1) 관계란? 엔터티와 엔터티와의 관계 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있음 (2) 관계의 패어링 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 ➡ 패어링의 집합을 관계로 표현 (3) 존재 관계 존재 자체로 연관성이 있는 관계 EX) 직원과 부서 엔터티 / 학생과 학과 엔터티 (4) 행위 관계 특정한 행위를 함으로써 연관성이 생기는 관계 EX) 회원과 주문 엔터티 / 학생과 출석부 엔터티 * ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않고 표기했지만 UML에서는 이를 구분함 연관관계 : 실선 의존관계 : 점선 ⭐ 연관관계와 의존관계 연관(존재적)관계 - 항상 이용하는 관계 - 멤버변수로 가지고 있음 의존관..

[SQLD] 1-03. 속성 (Attribute) 2024.02.13

03. 속성 (Attribute) (1) 속성이란? 속성 : 사물이나 개념의 특징을 설명해줄 수 있는 항목 = 엔터티의 특징을 나타내는 최소의 데이터 단위 의미상 더 이상 쪼개지지 않는 레벨이어야 함 프로세스에 필요한 항목이어야 함 (2) 속성의 특징 반드시 업무에서 필요하고 관리하고자 하는 정보여야 함 정해진 주식별자에 함수적 종속성을 가짐 하나의 속성은 한 개의 값만을 가짐 (3) 속성값 각각의 속성은 속성값을 가짐 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터라고 볼 수 있음 하나의 속성은 한 개의 속성값만 가질 수 있음 만약 하나의 속성이 여러 개의 속성값을 갖는 경우 별도의 엔터티로 분리하는 것이 바람직 함 (4) 엔터티, 인스턴스, 속성, 속성값의 관계 속성 ⊂ 인스턴스 ⊂ 엔터..

[SQLD] 1-02. 엔터티 (Entity) 2024.02.11

02. 엔터티 (Entity) (1) 엔터티란? 엔터티의 사전적 의미 ➡ 독립체 데이터베이스에서의 엔터티 : 식별이 가능한 객체 == 업무에서 쓰이는 데이터를 용도별로 분류한 그룹 - 엔터티는 명확한 조건이 기준이 되어야 함. 모호한 기준은 성립될 수 X - 각 엔터티는 자신을 더 상세하게 나타내기 위해 속성 (Attribute)를 갖게 됨 - 속성의 개수는 엔터티마다 상이해서 용도에 따라 매우 많을 수도 있고 매우 적을 수도 있음 EX) 상품 엔터티 '상품' 이라는 엔터티 상품코드, 상품명, 카테고리, 배송비 ➡ 속성 새우깡, 자갈치 ➡ 상품 엔터티의 인스턴스 💡 TIP 엔터티 : Table 인스턴스 : Row 속성 : Column (2) 엔터티의 특징 ① 업무에서 쓰이는 정보여야 함 실질적으로 업무에..

[SQLD] 1-01. 데이터 모델의 이해 (3) 2024.02.11

[SQLD] 01. 데이터 모델의 이해 (2) [SQLD] 01. 데이터 모델의 이해 01. 데이터 모델의 이해 (1) 모델링이란? 데이터베이스의 모델링 ➡ '현실 세계를 단순화하여 표현하는 기법' - 모델 : 현실 세계에서 일어날 수 있는 다양한 현상에 대 bean-soup-99.tistory.com (6) ERD (Entity Relationship Diagram) - 시스템에 어떤 엔티티들이 존재하며 그들 간에 어떤 관계가 있는지를 나타내는 다이어그램 - 1976년 Peter Chen이 Entity Relationship Model 개발 ERD 표기 방식 ① Peter Chen : 주로 대학교재에서 사용하는 표기법으로 실무에서 사용하는 경우는 드묾 ② IDEF1X (Integration Defini..

[SQLD] 1-01. 데이터 모델의 이해 (2) 2024.02.11

[SQLD] 01. 데이터 모델의 이해 01. 데이터 모델의 이해 (1) 모델링이란? 데이터베이스의 모델링 ➡ '현실 세계를 단순화하여 표현하는 기법' - 모델 : 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 bean-soup-99.tistory.com (5) 데이터의 독립성 ANSI-SPARC 아키텍처에서는 스키마를 3단계 구조로 나눔 3단계로 분리하는 목적 : 데이터베이스에 대한 사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적인 방식을 분리하기 위함 - 데이터베이스가 존재하는 목적 중 하나 -> 사용자에게 데이터를 보여줄 수 있는 뷰를 제공하는 것 - 사용자 입장에서는 필요한 데이터만 볼 수 있으면 되고 데이터베이스의 내부 구조에 대해서는 굳이 알 필요 X - DB..

[SQLD] 1-01. 데이터 모델의 이해 2024.02.05

01. 데이터 모델의 이해 (1) 모델링이란? 데이터베이스의 모델링 ➡ '현실 세계를 단순화하여 표현하는 기법' - 모델 : 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형 - 모델링 : 모델을 만들어가는 일 == 현실 세계에서 필요한 데이터를 저장하는 데이터베이스를 구축하기 위한 분석 / 설계의 과정 (2) 모델링의 특징 ① 추상화 (Abstraction) : 현실 세계를 일정한 형식으로 표현 == 아이디어나 개념을 간략하게 표현하는 과정 ② 단순화 (Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현 (불필요한 세부 사항 제거) ③ 명확화 (Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술 (3) 모..