Database

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 인 완전한 동기화 방식을 지원합니다. 비동기 방식마스터 측은 슬레이브에 반영되었는지에 대한 여부를 판단하지 않습니다.따라서 네트워크 비용 + 슬레이브 동기화 비용이 빠지기 때문에 사용자는 빠른 응답을 받게됩니다.그러나 만약 네트워크 장애가 발생한다면 마스터와 슬레이브의 갭 차이는 벌어지게 됩니다. 반동기 방식마스터 측은 슬레이브에 릴레이 로그 기록까지를 동기화 범주로 판단합니다.이후 이 로그를 이용하여 슬레이브의 실 데이터베이스 업데이트는 판단하지 않습니다.여기에서는 네트워크 비용 + 슬레이브 동기화 비용이 추가됩니다.그렇지만 장애 발생..
MySQL 소켓 번호를 변경하는 방법을 알아보겠습니다. MySQL 을 설치시 기본 소켓 포트는 3306 입니다.netstat 로 열린 포트를 확인해보면 알 수 있습니다.$ netstat -na | grep 3306tcp6 0 0 :::3306 :::* LISTEN 포트를 변경하는 방법1. my.cnf 파일을 다음과 같이 수정합니다. [mysqld] DSN 으로 되어있는 곳에, port 프로퍼티를 추가 후 값을 설정합니다.[mysqld] port=33072. MySQL 을 재구동 합니다.3. 변경된 포트를 확인합니다.$ netstat -na | grep 3307 tcp6 0 0 :::3307 :::* LISTEN 혹은 ps 로도 확인할 수 있습니다.$ ps -ef | grep 3307mysql 30055 ..
연동환경 서버 OS CentOS Linux release 7.4.1708 DATABASE Goldilocks 3.1.4 r24256 클라이언트 OS Windows 7 DATABASE Client Goldilocks 3.1.4 r24256 win32 DBeaver 4.3.3.1 DBeaver 다운로드 1. https://dbeaver.jkiss.org/ 사이트에 접속합니다.2. Download 탭을 누른 뒤, Windows 32 bit (installer + JRE) 를 클릭하여 다운로드르 진행합니다.3. DBeaver 를 설치합니다. DBeaver 드라이버 및 커넥션 설정 1. 만약 Goldilocks Windows ODBC 32 bit 가 등록되지 않은 경우, http://mozi.tistory.com..
Oracle, MySQL, Goldilocks 등을 활용하여 개발하시는 분들의 쿼리를 보다보면, 쿼리문에 WHERE 1 = 1 을 쓰는 모습을 종종 볼 수 있었습니다.아무래도 소스상의 가독성 때문에 이렇게 사용하는 분들이 많이 있을텐데요. WHERE 1 = 1 의 구문이 없는 소스의 경우와 있는 소스를 보면 가독성에 차이가 있습니다.mozi.append(" SELECT ID, AGE "); mozi.append(" FROM MOZI "); mozi.append(" WHERE "); if ( ID != null ){ mozi.append(" ID = 91 "); } if ( AGE != null) { if ( ID != null ) { mozi.append(" AND AGE = 28"); }else{ mo..
꽁담
'Database' 카테고리의 글 목록 (15 Page)