2018/10

데이터베이스란? 특정 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미합니다.이러한 데이터의 관리 혹은 손상시 복구를 위한 소프트웨어가 필요하며 이런 요구를 만족하는 시스템을 DBMS 라고 합니다. SQL SQL ( Structured Query Language ) 은 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 하기위해 사용하는 언어입니다.SQL 문장의 종류로는 DML, DDL, DCL, TCL 이 있습니다. DDL 데이터 조작어 : SELECT, INSERT, UPDATE, DELETE 구문이 있습니다.DDL 데이터 정의어 : CREATE, ALTER, DROP, RENAME 구문이 있습니다.DCL 데이터 제어어 : GRANT, REVOKETCL 트랜잭션 제어어 : ..
성능 데이터 모델링이란? 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 조인구조 등 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것을 의미합니다. 성능 데이터 모델링 고려사항 1. 정규화를 정확하게 수행한다.2. 데이터베이스 용량산정을 수행한다.3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.5. PK/FK 조정 등을 수행한다.6. 성능관점에서 데이터 모델을 검증한다. 정규화를 통한 성능향상 전략 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 지닙니다.엔터티가 늘어나므로 조인이 많이 발생하여 성능저하가 나타나는 경우도..
엔터티란? 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing) 입니다.객체라고도 표현합니다. 엔터티의 특징 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 합니다.2. 유일한 식별자에 의해 식별이 가능해야 합니다.3. 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 합니다.4. 업무 프로세스에 의해 이용되어야 합니다.5. 반드시 속성이 있어야 합니다.6. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 합니다. 엔터티의 분류 1. 유무형에 따른 분류 - 유형엔터티 : 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티 ( 예 : 사원, 물품 )- 개념엔터티 : 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티 ( 예 : 조직, ..
ERD 란? 각 업무분석에서 도출된 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법으로서,해당 업무에서 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물을 의미합니다. 다양한 ERD 표기법이 있으며, 이중 범용적인 IE ( Information Engineering ) 표기법에 대해 알아봅니다. ERD 모형 1. 엔터티 : 사각형3. 속성 : 타원형 ERD 작업순서 1. 엔터티를 그린다.2. 엔터티를 적절하게 배치한다.3. 엔터티간 관계를 설정한다.4. 관계명을 기술한다.5. 관계의 참여도를 기술한다.6. 관계의 필수여부를 기술한다. IE ERD 표기법 엔터티간의 관계를 나타내는 선 입니다. optional : 선택조건mandatory : 필수조건 또..
데이터 모델링 이란? 모델링의 특징 1. 추상화 : 현실세계를 일정한 형식에 맞춰 표현을 한다는 의미2. 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념을 의미3. 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미 모델링의 세가지 관점 1. 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해 모델링하는 방법2. 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법3. 상관괌점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법 데이터 모델링의 정의 1. 정보..
트랜잭션 격리 수준 기본적으로 트랜잭션은 시작과 끝 사이에서 데이터를 일관성있게 읽어들이는 것을 의미합니다.즉 다른 세션에서 변경된다고 하더라도 커밋이 이루어질때까지 또다른 세션은 변경작업을 확인할 수 없게 됩니다. 그렇지만, 트랜잭션의 격리 수준에 따라 위의 내용은 맞지 않을 수 있습니다.트랜잭션의 격리 수준은 4 단계로 이루어 집니다. 트랜잭션 레벨은 아래에서 확인할 수 있습니다.mysql> show variables like 'tx_isolation'; +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | tx_isolation | READ-UNCOMMITTED | +--..
MySQL 은 실행한 쿼리를 파일 혹은 테이블에 기록하는 기능을 제공합니다. 기록과 관련된 프로퍼티 프로퍼티 설명 general_log 로깅기능의 활성화 여부를 설정 general_log_file 로깅기록시 파일위치 및 명칭을 지정하며, log_output 이 FILE 인 경우 활성화 log_output 로깅기록의 저장장소 TABLE, FILE ,NONE 프로퍼티 설정 값 확인 방법Master-mysql> SHOW VARIABLES LIKE 'general_log%'; +------------------+-------------------------+ | Variable_name | Value | +------------------+-------------------------+ | general_log..
인덱스를 사용하는 이유 책에서 목차라고 생각하시면 편합니다.사용자는 목차를 보고 원하는 페이지를 바로 펼칠 수 있습니다. 즉, 인덱스를 사용하는 가장 큰 이유는 쿼리의 성능을 높이기 위해서 입니다.테이블에 다수의 레코드들이 정렬되어 있지 않고 무작위로 배열되어 있을 때, 특정 데이터를 찾기 위해서는 해당 테이블 전체를 검색해야 합니다.인덱스는 무작위 배열된 데이터를 정렬한 뒤, 필요로 하는 데이터만 가지고 오기 때문에 사용자는 빠른 결과를 받을 수 있습니다. 인덱스 생성시 고려사항 그렇다면 무작정 인덱스를 생성하면 좋을까요?아닙니다.인덱스 종류에 따라 물리적인 공간을 요구하기 때문에 무분별한 인덱스는 오히려 용량만 차지하게 됩니다.또한 옵티마이저는 생성한 인덱스 중 어느 인덱스를 선택해야 비용이 낮은지 ..
원인세션 하나당 할당받을 수 있는 Statement 수가 초과했을 경우 발생합니다. 해결방안MAXIMUM_CONCURRENT_ACTIVITIES 의 프로퍼티 값을 변경합니다. 변경 방법으로는 2가지가 있습니다.1. DB 가 재구동 가능한 경우goldilocks.properties.conf 파일의 MAXIMUM_CONCURRENT_ACTIVITIES 의 프로퍼티 값을 변경한 뒤 재구동합니다. 2. DB 가 재구동이 불가능한 경우SYS 계정으로 접속하여 ALTER SYSTEM 구문을 수행합니다. 이 때는 DEFERRED 옵션을 부여해야 합니다.DEFERRED 는 새로 접속하는 세션에만 해당 프로퍼티를 적용하며, 기존의 세션에 대해서는 이전의 값을 적용합니다.gSQL> ALTER SYSTEM SET MAXIM..
MySQL 은 이중화 기법으로 비동기, 반동기 방식 2가지를 제공한다. 참고로 Goldilocks 에서는 이중화 방식으로 Cyclone 툴인 비동기 방식, Cluster 인 완전한 동기화 방식을 지원합니다. 비동기 방식마스터 측은 슬레이브에 반영되었는지에 대한 여부를 판단하지 않습니다.따라서 네트워크 비용 + 슬레이브 동기화 비용이 빠지기 때문에 사용자는 빠른 응답을 받게됩니다.그러나 만약 네트워크 장애가 발생한다면 마스터와 슬레이브의 갭 차이는 벌어지게 됩니다. 반동기 방식마스터 측은 슬레이브에 릴레이 로그 기록까지를 동기화 범주로 판단합니다.이후 이 로그를 이용하여 슬레이브의 실 데이터베이스 업데이트는 판단하지 않습니다.여기에서는 네트워크 비용 + 슬레이브 동기화 비용이 추가됩니다.그렇지만 장애 발생..
꽁담
'2018/10 글 목록 (2 Page)