본문 바로가기

SQLD7

관계형 데이터베이스 개요 1. 데이터베이스 란 ? 1) 넓은 의미 에서의 DB 란 일상적인 데이터들을 모아 놓은 것 자체를 의미. 2) 일반적으로 DB를 말할 때는 특정 기업 / 조직 / 개인 이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미. 3) 사용자들은 효율적인 데이터의 관리 뿐만 아니라, 데이터의 손상이 일어날 변수를 차단 하고, 필요시 필요한 데이터를 복구 하기 위한 강력한 소프트웨어를 사용 한다. >> DBMS 이다. == Database Management System 2. 관계형 데이터베이스 란 ? (Relational Database) 1) 정규화를 통해 합리적인 테이블 모델링으로 이상 현상을 제거하고, 데이터 중복을 피함. 동시성 관리 / 병행 제어 를 통해 많은 사용자들이 동시에 데이터를 공유 .. 2023. 11. 14.
분산 데이터베이스와 성능 1. 분산 데이터베이스의 개요 1) 여러 곳으로 분산 되어 있는 데이터베이스를 하나의 가상 시스템으로 사용 할 수 있도록 한 데이터베이스. 2) 논리적으로는 동일한 시스템임. 컴퓨터 네트워크를 통해 물리적으로 분산 되어 있는 데이터의 모임. 2. 분산 데이터베이스의 적용 방법 및 장단점 1) 분산 데이터베이스 적용 방법 - 분산 환경의 데이터베이스를 성능이 우수하도록 하는 방법은, 업무의 흐름을 파악 하고 업무 구성에 따른 아키텍처 특징에 따라 데이터베이스를 구성 해야 한다. 그냥 쉽게 말해서 업무를 잘 알면 된다. - 단순히 분산 환경 에서 데이터베이스를 구축 하는게 아니라, 업무의 특징에 따라 데이터베이스 분산 구조를 선택적으로 설계 해야함. 2) 장점 - 빠른응답 속도 및 통신 비용 절감 - 각 지.. 2023. 11. 13.
데이터베이스 구조와 성능 1. 슈퍼 타입 / 서브 타입 모델 1) 업무를 구성 하는 데이터 특징을 분석. 공통점 / 차이점 을 고려 하여 효과적으로 표현함. 2) 공통의 부분을 슈퍼 타입 엔터티 으로 모델링 함. 공통의 것으로 부터 상속 받아, 다른 엔터티와 차이가 있는 속성은 별도의 서브 타입 엔터티로 구분 함. 3) 업무의 모습을 정확 하게 표현 하고, 물리적인 데이터 모델로 변환 하면, 선택의 폭을 넓힐 수 있는 장점이 있음. 만약에, 고객 이라는 테이블이 있다고 할 때, 이 고객은 개인 / 법인 고객이 있다. 이럴 때, 고객 테이블은 한개지만, 개인 고객과 법인 고객 두개로 나누어 테이블을 구성 하는 것을 서브 타입 이라고 한다. 2. 슈퍼 타입 / 서브 타입 모델 변환 방법 1) 슈퍼 타입 (Single Type / A.. 2023. 11. 12.
대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 개요 대량의 데이터가 존재 하는 테이블에는 많은 트랜잭션이 발생 하는데, 이때, 성능이 저하 되는 테이블 구조에 대해, 수평 / 수직 분할 설계를 통해 성능 저하를 예방 한다. 수직 분할 : 칼럼 단위로 분할 하여 I / O 를 감소 시킴. 수평 분할 : 로우 단위로 분할 하여 I / O 를 감소 시킴. 2. 테이블의 데이터는 블록 (Block) 단위로 저장 된다 오라클 기준으로, 하나의 블록의 크기는 8192 바이트 (B) 이다. 만약에 1 바이트 짜리 데이터를 읽더라도, 8191 바이트는 버려진다. 근데, 어떤 테이블에 칼럼이 엄청 많아서, 한개의 로우를 저장 할 때 8192 바이트를 초과 하면, (이게 정확히 무슨 말인지 모르겠네) 한개의 로우를 저장 할 .. 2023. 11. 12.
반정규화와 성능 1. 반정규화의 정의 1) 정규화된 엔티티 / 속성 / 관계에 대해 시스템의 성능 향상과 개발 및 운영의 단순화를 위해서, 중복 / 통합 / 분리 등을 수행. 2) 데이터를 중복시켜 성능을 향상시키기 위한 기법. 3) 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고, 데이터를 중복함. 왜냐하면, 데이터를 조회 할 때, I / O 량이 너무 많아, 성능 저하가 발생 되는 경우 이기 때문 이다. 또는, 조인이 너무 많아 성능 저하, 또는, 칼럼을 계산 할 때 성능 저하 등으로, 반정규화를 수행함. 2. 반정규화 절차 1) 반정규화도 난이도 높은 데이터 모델링 기술. 2) 칼럼의 반정규화 뿐만 아니라, 테이블의 반정규화도 종합적으로 고려. 3) 근데, 반정규화를 막연하게 중복 하는 것으로 하지는 않고, 성능을 .. 2023. 11. 10.
정규화와 성능 1. 정규화를 통한 성능 향상 전략 1) 정규화란 '결정자' 에 의해 함수적 종속을 가지고 있는 일반 속성을 '의존자' 로 하여, 입력 / 수정 / 삭제 이상 현상을 제거 하는 것을 뜻함. 2) 데이터 중복을 제거 하고, '결정자' 에 의해 동일한 의미의 일반 속성이, 하나의 테이블로 합쳐지므로, 하나의 테이블의 데이터 용량이 최소화 됌. 3) 정규화된 테이블은 데이터 처리 시, 속도가 향상 될 수도 있고, 저하 될 수도 있는 특징. [ 정리 ] 1) 정규화된 데이터 모델은 조회 시, 처리 조건에 따라 성능이 향상 또는 저하 됌. 2) 정규화된 데이터 모델은 입력 / 수정 / 삭제 시, 무조건 성능이 향상 됌. 2. 정규화 용어 1) 정규화 (Normalization) 함수적 종속성 (Functional.. 2023. 11. 10.
성능 데이터 모델링의 개요 1. 성능 데이터 모델링의 정의 데이터를 모델링 할 때 부터 (설계 단계 부터) 성능 향상을 목적으로 한다. 성능에 영향을 주는 것 들 : 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 2. 성능 데이터 모델링 수행 시점 1) 성능 향상을 위한 비용은, 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 비용이 절감. 2) 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 재 업무 (Rework) 비용을 최소화 할 수 있음. 3) 분석 / 설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 고려 해야함. 3. 성능 데이터 모델링 고려 사항 1) 데이터 모델링시, 정규화를 정확 하게 수행. 2) 데이터베이스 용량 산정을 수행. (데이터베이스의 용량이 얼마나 될지).. 2023. 11. 10.