반응형

Computer Science 62

[SQLD] 12. 관계형 데이터베이스 개요

제 1절 관계형 데이터베이스 개요 1. 데이터베이스 - 특정 기업이나 조직 또는 개인이 필요에 의해(부가가치가 발생하는 일 등) 데이터를 일정한 형태로 저장해 놓은 것- 그러나 관리 대상이 되는 데이터 양이 점점 많아지고 같은 데이터를 여러 사람이 동시에 여러 용도로 사용하게 되면서 단순 엑셀같은 소프트웨어는 한계에 부딪히게 됨- 많은 사용자들은 보다 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DMBS(Database Management System)라고 함 1.1 데이터베이스의 발전 1) 1960년대 : 플로우차트 중심의 개발 ..

[SQLD] 11. 분산 데이터베이스와 성능

제 6절 분산 데이터베이스와 성능 1. 분산 데이터베이스의 개요여전히 많은 데이터베이스는 네트워크를 통한 데이터베이스 간의 공유체계를 통해 분산 데이터베이스를 활용하고 있다. 분산 데이터베이스의 정의- 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스- 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임, 물리적 Site 분산, 논리적으로 사용자 통합 및 공유 가능 2. 분산 데이터베이스의 투명성(Transparency) 1) 분할 투명성(단편화)2) 위치 투명성 3) 지역사상 투명성4) 중복 투명성5) 장애 투명성6) 병행 투명성 3. 분산 데이터베이스의 적용 방법 및 장단점가. 분산 데이터베이스 적용방법 ..

[SQLD] 10. 데이터베이스 구조와 성능

제 5절 데이터베이스 구조와 성능 1. 슈퍼타입 / 서브타입 모델의 성능고려 방법 가. 슈퍼/서브타입 데이터 모델의 개요Extended ER모델이라고 부르는 이른바 슈퍼/서브타입 데이터 모델은 최근 데이터 모델링을 할 때 자주 쓰이는 모델링 방법이다. 이 모델이 자주 쓰이는 이유는 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉, 공통의 부분을 슈퍼타입으로 모델링하고, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현하면서, 물리적인 데이터 모델로 변환을 할 떄 선택의 폭을 넓힐 수 있는 장점이 있다. 슈퍼/서브타입의 데이터 모델은 논리적인 데이터 모델에서 이용되는 형태이고, ..

[SQLD] 9. 대량 데이터에 따른 성능

제 4절 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 개요 대량의 데이터가 하나의 테이블에 집약되어있고, 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 쉽지 않다. 처리 하는 일의 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법을 적용할 필요가 있는 것이다. 하나의 테이블에 대량의 데이터가 존재하는 경우에는 인덱스의 Tree 구조가 너무 커져 효율성이 떨어져 데이터를 처리(입력, 수정, 삭제, 조회)할 때 디스크 I/O를 많이 유발하게 된다. 또한, 인덱스를 생성할 떄 인덱스의 크기가 커지게 되고 그렇게 되면 인덱스를 찾아가는 ..

[SQLD] 8. 반정규화와 성능

제 3절 반정규화와 성능 1. 반정규화를 통한 성능향상 전략 가. 반정규화의 정의 반정규화(=역정규화, De-Normalization)는 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델리의 기법을 의미한다. 즉, 데이터를 중복하여 성능을 향상시키는 기법이며, 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 포함하게 된다. 데이터 무결성이 깨질 수 있는 위험성이 있는 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이..

[SQLD] 7. 정규화와 성능

제 2절 정규화와 성능 1. 정규화를 통한 성능 향상 전략 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거해주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 물론 조인이 많이 발생하여 성능저하가 나타나는 경우도 있지만 이런 부분은 사례별로 유의하여 반정규화를 해야한다. 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화 되는 효과가 있다. 따라서 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있..

[SQLD] 6. 성능 데이터 모델링의 개요

제 1절 성능 데이터 모델링의 개요 1. 성능 데이터 모델링의 정의 성능이 저하되는 데이터 모델- 잘못 설계된 데이터 모델 구조- 대용량 데이터를 가진 구조- 인덱스의 특성을 무시한 인덱스 생성 성능 데이터 모델링데이터 베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때 부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 - 정규화를 통해서 수행- 인덱스의 특징을 고려하여 칼럼의 순서를 변형- 대량의 데이터 특성을 고려햐여 정규화 됬다고 하더라도 테이블을 수직 또는 수평분할하여 적용- 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환 2. 성능 데이터 모델링 수행시점 성능향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 적게 든다.특..

[SQLD] 5. 식별자(Identifiers)

제 5절 식별자 1. 식별자(Identifiers) 개념 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 있어야 한다. 이 구분자를 식별자(Identifier)라고 한다. 식별자란 하나의 엔티티에 구성되어 있는 여러 개의 속성 중에서 엔티티를 대표할 수 있는 속성을 의미하며 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다. 여기서 식별자와 키를 동일하게 생각하는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용하고, 키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용한다. 2. 식별자의 특징 - 주식별자에 의해 엔티티 내에 모든 인스턴스들이 유일하게 구분되어야..

[SQLD] 4. 관계(Relationship)

제 4절 관계(Relationship) 1. 관계의 개념 가. 관계의 정의 사전적 정의 : 상호 연관성이 있는 상태데이터 모델에 의한 정의 : 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태 나. 관계의 패어링 각각의 엔티티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다. 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다. 최초의 ERD 모델에서는 관계는 속성을 가질 수 있었으나 요즘의 ERD 에서는 관계를 위해 속성을 도출하지 않는다. 관계의 표현에는 이항관계(Binary Relationship), 삼..

[SQLD] 3. 속성(Attribute)

제 3절 속성(Attribute) 1. 속성의 개념 사전적인 의미 : 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것데이터 모델링 관점에서의 의미 : 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 - 업무에서 필요로 함 - 의미상 더 이상 분리되지 않음- 엔티티를 설명하고 인스턴스의 구성요소가 됨 2. 엔티티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔티티, 인스턴스, 속성, 속성값의 관계엔티티에는 두 개이상의 인스턴스가 존재하고 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다.엔티티 내에 있는 하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값 만을 가질 수 있다. 예를 들면, ..

[SQLD] 2. 엔티티(Entity)

제 2절 엔티티(Entity) 1. 엔티티의 개념 Peter Chen (1976) : 변별할 수 있는 사물C.J Data (1986) : 데이터베이스 내에서 변별 가능한 객체James Martin (1989) : 정보를 저장할 수 있는 어떤 것Thomas Bruce (1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 위 개념들의 공통점- 엔티티는 사람, 장소, 물건, 사건 개념 등의 명사- 엔티티는 업무상 관리가 필요한 관심사- 엔티티는 저장이 되기 위한 어떤 것(Things) 엔티티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 이 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서그 대상들 간에 동질성을 지닌 인..

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

SQLD를 공부하기에 앞서서 SQL-D 폴더에 업데이트 하는 내용의 출처는 모두 http://www.dbguide.net 이곳에서 가져왔다. 제 1절 데이터 모델의 이해 1. 모델링의 이해 가. 모델링의 정의 1) Webster 사전에 의한 정의가설적 또는 일정 약식에 맞춘 표현 또는 어떤 것에 대한 예비 표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것2) 복잡한 현실세계를 단순화 시켜 표현하는 것3) 모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것4) 모델이란 현실세계의 추상화된 반영 나. 모델링의 특징1) 추상화 : 현실세계를 일정한 형식에 맞추어 표현을 함, 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현2) 단순화 : 복잡한..

[인공지능] LIBSVM 사용법 / visual studio 2013 / c++

svm 개념 참고 ( http://eehoeskrap.tistory.com/45 ) Training Data & Lable인공지능에서 기계학습의 개념을 말해보자면 기계에게 학습을 시킬 데이터를 즉, Training Data라고 지칭한다.'사람' 이라는 데이터가 있다고 했을 때, 키, 몸무게, 입고있는 옷, 머리카락 길이 등의 정보는 '사람'이라는 데이터의 Feature 가 된다.이러한 각각의 Feature들을 지닌 100명의 사람이 있다고 가정하자100명의 사람들을 분류하고 싶을 때 분류할 수 있는 기준은 여러가지가 존재하게 된다.이 기준을 정하고 분류 했을 때 가지는 값이 바로 Label 이 된다.기준을 성별로 한다고 치자, 그러면 A는 여자다. A의 Label 값은 '여자'가 될 것이다. Class ..

[인공지능] SVM (Support Vector Machine, 서포트 벡터 머신)

SVM (Support Vector Machine) 서포트 벡터 머신은 인공지능의 기계학습 분야 중 하나로, 패턴인식, 자료분석을 위한 지도학습 모델이다.즉, 2개의 범주를 분류하는 이진 분류기이다. 주로 분류와 회귀 분석을 위해 사용되며, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할 것인지 판단하는 비확률적 이진 선형 분류 모델을 만들게 된다. SVM의 기본적인 원리는 위와 같은 사진에서 살펴 봤을 때, 흰색 바둑알과 검은색 바둑알이 학습용 데이터로 주어졌다고 하자 두 그룹에서 각각의 데이터 간 거리를 측정하여 두 개의 데이터 사이의 중심을 구한 후에 그 가운데에서 최적의 초평면(Optimal Hyper Plane)을 구함으로써 흰색과 검은색 그룹을 나누는..

Kruskal Algorithm and Prim Algorithm (크루스칼, 프림 알고리즘)

Kruskal Algorithm과 Prim Algorithm은 Greedy Algorithm를 적용하는 알고리즘 중의 하나이다. 최소신장트리를 구성할 때, 최적의 해를 구하려면 가중치를 낮은 간선을 선택하는 것이 좋다. 그래서 고안된게 바로 크루스칼 알고리즘이다. 크루스칼 알고리즘은 각 단계에서 가중치가 작은 간선부터 선택한다.선택하는 과정에서 사이클이 만들어질 경우 그 간선은 선택하지 않는다.그리고, 신장트리는 n개의 정점을 가질 때, 반드시 n-1개의 간선을 가지게 되어있으므로 간선이 n-1개가 되면 종료하면 된다. 크루스칼 알고리즘은 다음과 같은 사항을 고려해야한다. 1. 가중치가 작은 간선을 선택하는 데는 많은 시간이 소요되므로 모든 간선을 오름차순으로 정렬2. 깊이우선탐색(DFS), 너비우선탐색..

728x90
반응형