1. 데이터베이스- 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것- DBMS(Database Management System) : 데이터베이스 관리 소프트웨어n 데이터베이스의 발전- 1960년대 : 플로우차트 중심의 개발 방법- 1970년대 : 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품- 1980년대 : 관계형 데이터베이스가 상용화되었으며 Oracle, Sybase, DB2와 같은 제품- 1990년대 : 객체 관계형 데이터베이스로 Oracle, Sybase, Informix, DB2, Teradata, SQL Server n 관계형 데이터베이스 (Relational Database)- 1970년 영국의 수학자였던 E.F..
1. 분산 데이터베이스의 개요- 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스- 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스- 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임- 물리적 Site 분산, 논리적으로 사용자 통합 공유 2. 분산 데이터베이스의 투명성(Transparency)1) 분할투명성(단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 Site에 저장2) 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위치 정보가 System Catalog 에 유지 ..
1. 슈퍼/서브타입 모델의 성능고려 방법가. 슈퍼/서브타입 데이터 모델(Extended ER Model)의 개요- 최근 가장 많이 쓰임 (업무를 구성하는 데이터를 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다.)- 공통의 부분 => 슈퍼타입- 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성 => 서브타입- 논리적 데이터 모델에서 이용되는 형태이며, 분석단계에서 많이 쓰이는 모델- 물리적 데이터 모델로 설계시의 문제점이 나타난다. (적당한 노하우가 없어서 나타나며, 1:1타입이 되거나 All in One 타입이 되어버려 성능 저하가 일어난다.) 나. 슈퍼/서브타입 데이터 모델의 변환- 성능저하의 원인 3가지n 트랜잭션은 항상 일괄로 처리하는데 테이블은 개별로 유지되어 Union ..
1. 대량 데이터 발생에 따른 테이블 분할 개요- 테이블 분할 설계를 통한 성능 저하의 예방1) 수평분할 : 컬럼 단위로 분할하여 I/O 경감2) 수직분할 : 로우 단위로 분할하여 I/O 경감 - 성능저하의 원인1) 하나의 테이블에 데이터 대량 집중 : 한 테이블에 데이터가 대량으로 집중될 때 테이블 구조가 너무 커져서 효율성이 떨어져 테이버를 처리할 때 디스크 I/O를 많이 유발하게 된다.2) 하나의 테이블에 여러 개의 컬럼 존재 : 이 경우 디스크의 점유량이 높아지고 데이터를 읽는 I/O량이 많아져서 성능이 저하된다.3) 대량의 데이터가 처리되는 테이블의 경우 : SQL문장에서 데이터를 처리하기 위한 I/O의 양이 증가한다. 인덱스를 적절하게 구성하여 이용하면 이를 줄일 수 있다.4) 대량의 데이터가..
1. 반정규화를 통한 성능향상 전략가. 반정규화의 정의- 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상, 개발(Development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.- 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고, 좀 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다.- 성능이 저하될 것이 예상되는 경우 반정규화를 수행한다. 나. 반정규화의 적용방법1) 반정규화의 대상을 조사한다.l 자주 사용되는 테이블에 접근(Access)하는 프로세스의 수가 많고 항상 일정한 범위만 조회하는 경우에 반정규화를..
1. 정규화를 통한 성능 향상 전략- 정규화란? 다양한 유형의 검사를 통해 데이터 모델을 좀 더 구조화하고 개선시켜 나가는 절차에 관련된 이론이다. 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다.- 데이터처리의 성능이 무엇인지 정확히 구분하여 인식할 필요가 있다. 데이터베이스에서 데이터를 처리할 때 성능이라고 하면 조회 성능과 입력/수정/삭제 성능의 두 부류로 구분된다. 이 두 가지 성능이 모두 우수하면 좋겠지만 데이터 모델을 구성하는 방식에 따라 두 성능이 Trade-Off 되어 나타나는 경우가 많이 있다.- 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종..
1. 성능 데이터 모델링의 정의- 데이터의 용량이 커지고 기업의 의사결정 속도가 빨라질수록 데이터를 처리하는 속도는 빠르게 처리되어야 할 필요성을 반증해준다.- 성능이 저하되는 데이터 모델의 경우 크게 세 가지 경우를 고려하여 그 성능을 향상시킬 수 있다.l 데이터 모델 구조에 의해 성능 저하l 데이터가 대용량이 됨으로 인해 불가피하게 성능 저하l 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성함으로 인해 성능 저하- 성능데이터 모델링은 정규화를 통해서도 수행할 수 있고 인덱스의 특징을 고려해서 칼럼의 순서도 변형할 수 있다.- 대량의 데이터특성에 따라 비록 정규화된 모델이라도 테이블을 수직 또는 수평 분할하여 적용하는 방법도 있고 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따..
1. 식별자(Identifiers) 개념l 식별자는 엔티티를 구분짓는 논리적인 이름l 식별자는 엔티티를 대표할 수 있는 속성l 엔티티에는 반드시 하나의 유일한 식별자가 존재한다. 2. 식별자의 특징특징내용비고유일성주식별자에 의해 엔티티내에 모든 인스턴스들을 유일하게 구분함Ex) 사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유하게 부여됨최소성주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.Ex) 사원번호만으로도 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임불변성주식별자가 한 번 특정 엔티티에 지정되면 그 식별자의 값은 변하지 않아야 함Ex) 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는개념존재성주식별자..
1. 관계의 개념가. 관계의 정의- 인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태 나. 관계의 페어링- 유의해야할 점은 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것(페어링(이고 이것의 집합을 관계로 표현한다는 것이다.- 따라서, 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔티티 사이에 두 개 이상의 관계가 형성될 수 있다. 2. 관계의 분류 3. 관계의 표기법l 관계명(Membership) : 관계의 이름l 관계차수(Cardinality) : 1:1, 1:M, M:Nl 관계선택사양(Optionality) : 필수관계, 선택관계 가. 관계명 (Membership)- 엔티티에서 관계가 시작되는 편을 관계시작점(The Beginning)이..
1. 속성(Attribute)의 개념l 업무에서 필요로 한다.l 의미상 더 이상 분리되지 않는다.l 엔티티를 설명하고 인스턴스의 구성요소가 된다. 2. 엔티티, 인스턴스와 속성, 속성값에 대한 내용과 표기법가. 엔티티, 인스턴스, 속성, 속성 값의 관계n 한 개의 엔티티는 두 개 이상의 인스턴스의 집합이어야 한다.n 한 개의 엔티티는 두 개 이상의 속성을 갖는다.n 한 개의 속성은 한 개의 속성값을 가진다. 나. 속성의 표기법 3. 속성의 특징l 엔티티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보다.l 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.l 하나의 속성에는 한 개의 값만 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔티티를 이용하..