no image
[SQLD] 13. DDL(Data Definition Language)
제 2절 DDL(Data Definition Language) 1. 데이터유형 - 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아 들일 공간을 자료의 유형별로 나누는 기준- 선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러 발생 - ANSI / ISO 숫자타입 : NUMERIC Type의 하위개념인 NUMERIC, DECIMAL, DEC, SMALLINT, INTGER, INT, BIGINT, FLOAT, REAL, DOUBLE PRECISION- SQL Server, Sybase 숫자타입 : 작은 정수형, 정수형, 큰 정수형, 실수형, MONEY, SMALLMONEY 등- Oracle 숫자타입 : NUMBER- ANSI / ISO 그 외 데이터타입 : Bina..
2016.08.11
no image
[SQLD] 12. 관계형 데이터베이스 개요
제 1절 관계형 데이터베이스 개요 1. 데이터베이스 - 특정 기업이나 조직 또는 개인이 필요에 의해(부가가치가 발생하는 일 등) 데이터를 일정한 형태로 저장해 놓은 것- 그러나 관리 대상이 되는 데이터 양이 점점 많아지고 같은 데이터를 여러 사람이 동시에 여러 용도로 사용하게 되면서 단순 엑셀같은 소프트웨어는 한계에 부딪히게 됨- 많은 사용자들은 보다 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DMBS(Database Management System)라고 함 1.1 데이터베이스의 발전 1) 1960년대 : 플로우차트 중심의 개발 ..
2016.08.10
no image
[SQLD] 11. 분산 데이터베이스와 성능
제 6절 분산 데이터베이스와 성능 1. 분산 데이터베이스의 개요여전히 많은 데이터베이스는 네트워크를 통한 데이터베이스 간의 공유체계를 통해 분산 데이터베이스를 활용하고 있다. 분산 데이터베이스의 정의- 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스- 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임, 물리적 Site 분산, 논리적으로 사용자 통합 및 공유 가능 2. 분산 데이터베이스의 투명성(Transparency) 1) 분할 투명성(단편화)2) 위치 투명성 3) 지역사상 투명성4) 중복 투명성5) 장애 투명성6) 병행 투명성 3. 분산 데이터베이스의 적용 방법 및 장단점가. 분산 데이터베이스 적용방법 ..
2016.08.08
no image
[SQLD] 10. 데이터베이스 구조와 성능
제 5절 데이터베이스 구조와 성능 1. 슈퍼타입 / 서브타입 모델의 성능고려 방법 가. 슈퍼/서브타입 데이터 모델의 개요Extended ER모델이라고 부르는 이른바 슈퍼/서브타입 데이터 모델은 최근 데이터 모델링을 할 때 자주 쓰이는 모델링 방법이다. 이 모델이 자주 쓰이는 이유는 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉, 공통의 부분을 슈퍼타입으로 모델링하고, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현하면서, 물리적인 데이터 모델로 변환을 할 떄 선택의 폭을 넓힐 수 있는 장점이 있다. 슈퍼/서브타입의 데이터 모델은 논리적인 데이터 모델에서 이용되는 형태이고, ..
2016.08.08
no image
[SQLD] 9. 대량 데이터에 따른 성능
제 4절 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 개요 대량의 데이터가 하나의 테이블에 집약되어있고, 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 쉽지 않다. 처리 하는 일의 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법을 적용할 필요가 있는 것이다. 하나의 테이블에 대량의 데이터가 존재하는 경우에는 인덱스의 Tree 구조가 너무 커져 효율성이 떨어져 데이터를 처리(입력, 수정, 삭제, 조회)할 때 디스크 I/O를 많이 유발하게 된다. 또한, 인덱스를 생성할 떄 인덱스의 크기가 커지게 되고 그렇게 되면 인덱스를 찾아가는 ..
2016.08.05
no image
[SQLD] 8. 반정규화와 성능
제 3절 반정규화와 성능 1. 반정규화를 통한 성능향상 전략 가. 반정규화의 정의 반정규화(=역정규화, De-Normalization)는 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델리의 기법을 의미한다. 즉, 데이터를 중복하여 성능을 향상시키는 기법이며, 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 포함하게 된다. 데이터 무결성이 깨질 수 있는 위험성이 있는 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이..
2016.08.04
no image
[SQLD] 7. 정규화와 성능
제 2절 정규화와 성능 1. 정규화를 통한 성능 향상 전략 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거해주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 물론 조인이 많이 발생하여 성능저하가 나타나는 경우도 있지만 이런 부분은 사례별로 유의하여 반정규화를 해야한다. 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화 되는 효과가 있다. 따라서 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있..
2016.08.04
no image
[SQLD] 6. 성능 데이터 모델링의 개요
제 1절 성능 데이터 모델링의 개요 1. 성능 데이터 모델링의 정의 성능이 저하되는 데이터 모델- 잘못 설계된 데이터 모델 구조- 대용량 데이터를 가진 구조- 인덱스의 특성을 무시한 인덱스 생성 성능 데이터 모델링데이터 베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때 부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 - 정규화를 통해서 수행- 인덱스의 특징을 고려하여 칼럼의 순서를 변형- 대량의 데이터 특성을 고려햐여 정규화 됬다고 하더라도 테이블을 수직 또는 수평분할하여 적용- 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환 2. 성능 데이터 모델링 수행시점 성능향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 적게 든다.특..
2016.08.04
no image
[SQLD] 5. 식별자(Identifiers)
제 5절 식별자 1. 식별자(Identifiers) 개념 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 있어야 한다. 이 구분자를 식별자(Identifier)라고 한다. 식별자란 하나의 엔티티에 구성되어 있는 여러 개의 속성 중에서 엔티티를 대표할 수 있는 속성을 의미하며 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다. 여기서 식별자와 키를 동일하게 생각하는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용하고, 키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용한다. 2. 식별자의 특징 - 주식별자에 의해 엔티티 내에 모든 인스턴스들이 유일하게 구분되어야..
2016.08.01
no image
[SQLD] 4. 관계(Relationship)
제 4절 관계(Relationship) 1. 관계의 개념 가. 관계의 정의 사전적 정의 : 상호 연관성이 있는 상태데이터 모델에 의한 정의 : 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태 나. 관계의 패어링 각각의 엔티티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다. 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다. 최초의 ERD 모델에서는 관계는 속성을 가질 수 있었으나 요즘의 ERD 에서는 관계를 위해 속성을 도출하지 않는다. 관계의 표현에는 이항관계(Binary Relationship), 삼..
2016.08.01
no image
[SQLD] 3. 속성(Attribute)
제 3절 속성(Attribute) 1. 속성의 개념 사전적인 의미 : 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것데이터 모델링 관점에서의 의미 : 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 - 업무에서 필요로 함 - 의미상 더 이상 분리되지 않음- 엔티티를 설명하고 인스턴스의 구성요소가 됨 2. 엔티티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔티티, 인스턴스, 속성, 속성값의 관계엔티티에는 두 개이상의 인스턴스가 존재하고 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다.엔티티 내에 있는 하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값 만을 가질 수 있다. 예를 들면, ..
2016.08.01
no image
[SQLD] 2. 엔티티(Entity)
제 2절 엔티티(Entity) 1. 엔티티의 개념 Peter Chen (1976) : 변별할 수 있는 사물C.J Data (1986) : 데이터베이스 내에서 변별 가능한 객체James Martin (1989) : 정보를 저장할 수 있는 어떤 것Thomas Bruce (1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 위 개념들의 공통점- 엔티티는 사람, 장소, 물건, 사건 개념 등의 명사- 엔티티는 업무상 관리가 필요한 관심사- 엔티티는 저장이 되기 위한 어떤 것(Things) 엔티티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 이 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서그 대상들 간에 동질성을 지닌 인..
2016.08.01