본문 바로가기
반응형

Data Base103

[NOSQL] : Fail Over Fail Over Primary 서버 노드에 장애가 발생하면 Secondary 서버가 Primary 서버로 Fail Over 되는 기능을 설정하는 방법입니다. 아래 글을 참고해서 서버를 우선 돌려줍니다. 2021.11.09 - [Data Base/NOSQL] - [NOSQL] : Replica Sets 환경 설정 [NOSQL] : Replica Sets 환경 설정 파일을 먼저 생성해 줍니다. mongod --dbpath c:\mongodb\disk1 --port 10001 --bind_ip localhost --replSet rptmongo --oplogSize 10 Primary Server 활성화 시켜줍니다. mongod --dbpath c:\mongodb\disk2 -.. ohju.tistory.c.. 2021. 11. 16.
[SQL] : Concatenation 연산자와 Distinct 키워드 Concatenation 연산자 정의 Concatenation는 연결이라는 뜻을 가지고 있습니다. 오라클에서 사용하는 Concatenation 연산자는 여러 개의 컬럼을 연결할 때 사용하고 연산자로는 || (수직바)를 사용합니다. select 2 ename ||'is a'|| job 3 from 4 emp; || 를 통해서 컬럼과 문자열 사이에 기술하여 하나로 연결하여 출력하면 됩니다. is a를 이름과 직업 사이에 넣어줬고 출력 결과를 보면 정상적으로 이름과 직업 사이에 is a가 추가된 것을 확인할 수 있습니다. DISTINCT 키워드 select 2 deptno 3 from 4 emp; 사원들이 소속되어 있는 부서 번호를 출력했습니다. 부서 번호 20에 속한 사람도 여럿이고, 30에 속한 사람도 여.. 2021. 11. 15.
[SQL] : 컬럼 이름에 별칭 부여하기 SQL 별칭 부여 select 2 ename, sal*12+nvl(comm,0) 3 from 4 emp; SQL에서 쿼리문의 결과가 출력될 때 컬럼 이름이 컬럼에 대한 헤딩(heading)으로 출력이 됩니다. select 2 ename, sal*12+nvl(comm,0) as Annsal 3 from 4 emp; 컬럼 이름 대신 별칭을 사용하려면 AS라는 키워드를 쓰고 별칭을 사용해 주면 됩니다. 위에 Annsal을 A만 대문자 나머지는 소문자로 적었는데 출력은 모두 다 대문자로 된 것을 확인할 수 있습니다. select 2 ename, sal*12+nvl(comm,0)"A n n s a l" 3 from 4 emp; 대문자와 소문자를 구분하고 싶으면 " " 안에 적어주면 됩니다. " "를 통해 별칭을 .. 2021. 11. 15.
[SQL] : NULL (널) NULL null(널)은 매우 중요한 데이터 입니다. 오라클에서는 컬럼에 널 값이 저장되는 것을 허용하는데 널 값을 제대로 이해하지 못 하면 쿼리문을 사용하는데 있어 원하는 결과를 얻기 어려울 수 있습니다. 정의 - 0(zero)가 아닙니다. - 빈 공간이 아닙니다. - 미확정, 알 수 없는 값을 의미합니다. - 어떤 값인지 알 수 없지만 분명 존재하고 있습니다. - ? 혹은 ∞ 의 의미로 사용되므로 연산, 할당, 비교가 불가능합니다. 예시 select 2 ename, sal, job, comm, sal*12, sal*12+comm 3 from 4 emp; 연봉을 계산하는 쿼리를 보면 SALESMAN은 COMM이 있으므로 연봉이 정상적으로 계산이 되었습니다. 심지어 COMM을 0을 받은 사람도 정상적으로.. 2021. 11. 15.
[Data Modeling] : 이력 관리 정의 이력 관리 현재는 단지 하나의 점에 불과하지만 과거란 엄청난 갯수의 점이 모여 있는 형상입니다. 이력은 선분이고 현재의 순간은 점이므로 선분을 관리해야 합니다. 이력 관리를 하려면 비용이 들어갑니다. 사용자 조사를 잘 하고 협의해서 합니다. 사용자 조사 데이터의 이력을 관리한다는 것은 많은 비용이 들어가므로 사용자의 검증 과정이 필요합니다. - 변경 내역을 감시할 필요가 있는가? - 시간의 경과에 따라 데이터가 변할 수 있는가? - 시간의 경과에 따라 관계가 변할 수 있는가? - 과거의 데이터를 조회할 필요가 있는가? - 과거 버전을 보관할 필요가 있는가? 이력 데이터의 종류 발생 이력 데이터 - 어떤 데이터가 발생할 때마다 이력 정보를 남기는 것 입니다. - 예를 들면 고객의 접속 기록 같은 것이 발생.. 2021. 11. 12.
[Data Modeling] : M : M 관계 해소, BCNF M : M 관계 해소 - M : M 관계는 논리 데이터 모델링 과정에서 많이 나타납니다. - 최종적으로 완성된 데이터 모델에는 존재할 수 없는 형태입니다. - M : M의 관계를 해소하면 행위 엔터티인 릴레이션 엔터티가 만들어 집니다. 이 엔터티를 가지고 M : M 관계 해소 작업을 해봅니다. 이렇게 M : M 관계를 해소해 주고 UID Bar를 가져왔습니다. 조금 더 고치면 이렇게 표현할 수 있습니다. 이렇게 식별자를 일련번호 하나에 둬서 할 수도 있는데 이건 개발자에게 떠넘기는 무책임한 설계라고 볼 수 있습니다. BCNF 결정자가 식별자의 항목이 아닌 것, 식별자로 들어와야 하는데 그렇지 못 한 것을 제거하는 것이 BCNF라고 볼 수 있습니다. 2021. 11. 12.
[Hadoop] : Apache Flume 응용 (2부) 로그 생성용 간단한 웹 프로젝트 생성하기 Dynamic Web Project를 만들어 줍니다. 기본적인 자바 기반 웹 프로젝트는 모두 Dynamic Web Project로 구현합니다. Dynamic Web Project는 js 등 동적 프로젝트를 만들고 Static Web Project는 정적으로 HTML 등 프로젝트를 만들 때 사용합니다. 프로젝트 이름을 설정해 줍니다. 모든 WAS(톰켓 포함)은 WEB-INF 폴더 밑에 존재하는 파일만 인식할 수 있도록 설정이 되어 있습니다. 실제 톰켓에 동작, 배포하기 위해 반드시 컴파일 되는 자바파일은 WEB-INF\classes에 존재해야 합니다. Content root는 도메인 주소의 위치를 의미합니다. 변경하지 않는다면 [ localhost:8080/프로젝트.. 2021. 11. 11.
[Hadoop] : Apache Flume 응용 (1부) 톰켓 WAS VMware를 실행시키고 PuTTY를 열어줍니다. apache-tomcat.tar.gz 파일을 받아줍니다. WinSCP를 통해 sw파일에 옮겨줍니다. 정상적으로 파일이 들어와 있습니다. cp apache-tomcat-8.5.70.tar.gz /usr/local/ 복사를 해 줍니다. 경로에 들어가서 확인해 보면 정상적으로 파일이 복사된 것을 볼 수 있습니다. tar -zxvf apache-tomcat-8.5.70.tar.gz 파일 압축을 풀어줍니다. 압축이 정상적으로 풀렸습니다. ln -s apache-tomcat-8.5.70 tomcat 가상디렉토리(링크)를 생성해 줍니다. tomcat에 들어가서 보면 1번부터 4번 순서로 톰켓 실행파일, 톰켓 환경설정, 톰켓 로그(이클립스 콘솔), War .. 2021. 11. 11.
[NOSQL] : Replica Sets 환경 설정 파일을 먼저 생성해 줍니다. mongod --dbpath c:\mongodb\disk1 --port 10001 --bind_ip localhost --replSet rptmongo --oplogSize 10 Primary Server 활성화 시켜줍니다. mongod --dbpath c:\mongodb\disk2 --port 10002 --bind_ip localhost --replSet rptmongo --oplogSize 10 Secondary Server를 활성화 시켜줍니다. mongod --dbpath c:\mongodb\arbit --port 10003 --bind_ip localhost --replSet rptmongo --oplogSize 10 Arbiter Server 서버도 활성화 시켜줍니.. 2021. 11. 9.
[NOSQL] : Sharding 구축 시스템 환경 mongod --shardsvr --dbpath c:\mongodb\shard1 --port 40001 --bind_ip localhost mongod --shardsvr --dbpath c:\mongodb\shard2 --port 40002 --bind_ip localhost mongod --shardsvr --dbpath c:\mongodb\shard3 --port 40003 --bind_ip localhost Shard Server를 활성화 합니다. mongod --configsvr --replSet rptconfig --dbpath c:\mongodb\config1 --port 50001 --bind_ip localhost mongod --configsvr --replSet rptco.. 2021. 11. 9.
[Data Modelling] : 3차 정규화 복습 정규화 논리 데이터 모델을 일관성이 있고 안정성 있는 자료구조로 만드는 단계입니다. 정규화 의미 - 입력 이상 # 릴레이션에 새 데이터를 삽입하기 위해 원치않는 불필요한 데이터도 함께 삽입해야 하는 문제 - 삭제 이상 #릴레이션에서 데이터를 삭제하면 꼭 필요한 데이터까지 함께 삭제하여 데이터가 손실되는 연쇄 삭제 현상 - 갱신 이상 # 릴레이션의 중복된 데이터들 중 일부만 수정하여 데이터가 불일치하게 되는 모순이 발생하는 것 - 저번에 이어 정규화에 대해 알아보도록 하겠습니다. 2021.10.29 - [Data Base/DA#] - [DA#] : 정규화 정의 및 제1정규화, 제2정규화 [DA#] : 정규화 정의 및 제1정규화, 제2정규화 정규화 (Normalization) - 논리 데이터 모델을 일.. 2021. 11. 5.
[NOSQL] : 샤딩 시스템 (Sharding System) 1부 샤딩 - 빅데이터 환경은 수많은 데이터를 빠른 시간에 수집 및 저장할 수 있어야 합니다. 때에 따라서는 분산, 집계하여 사용자가 원하는 통계 정보로 가공할 수도 있어야 합니다. 이런 시스템 구축 환경을 구축하기 위해 효과적인 데이터 분산 저장 및 처리 기술이 필요한데 그것을 샤딩(Sharding) 시스템 이라고 합니다. 목적 - 데이터의 분산 저장 - 빠른 성능 - 데이터의 백업과 복구 전략의 일환 Sharding 구축을 위한 시스템 환경 - 샤딩 시스템은 데이터의 적절한 분산 처리를 통한 효율성 향상이 큰 목적이므로 3대 이상의 샤드 서버로 구축할 것을 권창합니다. # 최소 2대 이상이지만 가장 적절한 선능이 보장되기 위한 적정 서버 수 - 싱글 노드를 운영할 때 요구되는 메모리 영역보다 최소 20~3.. 2021. 11. 2.
[SQL] : 데이터를 조회하는 SELECT 문 SELECT - SQL 명령어는 하나의 문장으로 구성되어야 하는데 여러 개의 절이 모여서 문장이 되는 것이고 문장들은 반드시 세미콜론[ ; ]으로 마쳐야 합니다. - [ * ](all, 올)은 테이블 내 모든 컬럼을 출력하고자 할 때 사용합니다. SELECT 컬럼 FROM 테이블 - SELECT문 기초 구성입니다. SELECT * FROM DEPT; - DEPT 테이블의 모든 컬럼을 조회하는 명령어입니다. - 부서 테이블 내 어떤 컬럼이 저장되어 있는지 확인할 수 있습니다. - 모든 칼럼을 조회하길 원하지 않고 몇 개만 따로 조회하길 원한다면 [ * ] 대신에 컬럼명을 적어주면 됩니다. - 조회하고자 하는 컬럼이 여러개면 [ , ] 콤마를 넣어 원하는 컬럼들을 추가하면 됩니다. 2021. 10. 31.
[SQL] : 데이터 딕셔너리 및 테이블 구조 확인 OracleDB를 사용하고 Scott 사용자를 활성화 시켜서 실습합니다. SQL은 대문자와 소문자를 가리지 않기 때문에 본인 알아서 대,소문자 구분해서 사용하시면 됩니다. 데이터 딕셔너리 TAB SELECT * FROM TAB; - TAB는 TABLE의 약자로 테이블의 정보를 알려주는 데이터 딕셔너리입니다. 테이블 구조를 확인하는 DESC DESC DEPT - DEPT는 부서의 정보를 저장하고 있습니다. - DEPT의 구조를 살펴보기 위해 DESC 명령어를 사용했습니다. - DESC 명령어는 테이블의 컬럼 이름, 데이터 형, 길이, NULL 허용 유무 등 특정 테이블의 정보를 알려줍니다. - DEPT 테이블에 DEPTNO(부서번호), DNAME(부서명), LOC(지역명)이렇게 3개의 컬럼이 있습니다. D.. 2021. 10. 31.
[Data Modelling] : 속성 정의 및 엔터티 상세화 속성 검증 및 확정 - 1단계 : 최소 단위까지 분할합니다. - 2단계 : 하나의 값만을 가지는 검증합니다. - 3단계 : 추출 속성인지 검증합니다. - 4단계 : 보다 상세하게 관리할 것인지 확인합니다. 속성 정의 시 유의사항 - 의미가 명확한 속성 명칭을 부여합니다. - 유일한 복합명사를 사용합니다. - 단수형으로 속성 명을 정합니다. - 표준 단어를 사용하고 작의적인 전용 금지합니다. 식별자 확정(UID : Unique Identifier) - 식별자는 엔터티 내 모든 인스턴스의 유일성을 보장하기 위해 반드시 필요합니다. - 키 엔터티의 본질 식별자 - 절대 종속 / 상대 종속 의미 - 직접 종속 / 간접 종속 의미 - 행위 엔터티의 본질 식별자 # 행위 엔터티는 육하원칙을 생각하면서 작성하면 됩니.. 2021. 10. 29.
[Data Modelling] : 정규화 정의 및 제1정규화, 제2정규화 정규화 (Normalization) - 논리 데이터 모델을 일관성이 있고 안정성 있는 자료구조로 만드는 단계입니다. - 정규화 의미 # 엔터티에 데이터를 삽입, 수정, 삭제할 때 오류가 발생할 개연성을 가지고 있으며, 이를 변경 이상이라 하며 구체적으로 삽입 이상, 수정 이상, 삭제 이상 등이 있습니다. # 변경 이상이 발생하는 데이터가 신뢰할 수 없는 값들로 채워지고 데이터의 일관성, 무결성을 해칩니다. # 정규화 과정을 통해서 변경 이상의 엔터티를 정규화된 엔터티로 변환하게 됩니다. 입력 이상 - 릴레이션에 새 데이터를 삽입하기 위해 원치 않는 불필요한 데이터도 함께 삽입해야 하는 문제입니다. 아아디 이벤트 번호 당첨 여부 고객 이름 등급 apple 01 Y 홍길동 GOLD apple2 02 N 홍동.. 2021. 10. 29.
[Hadoop] : Flume ( 플룸 ) 셋팅 및 실행 Flume ( 플룸) - 텍스트 형태의 데이터를 수집하기 위해 사용하는 빅데이터 기술입니다. - 일반적으로 로그 수집에 사용됩니다. 예를 들면 톰켓에서 주기적으로 생성되는 웹 로그 분석에 많이 사용됩니다. - 공식적으로 윈도우 서버는 없고 리눅스에서 지원을 합니다. - 웹 서버 > 소스 > 채널 > 싱크 > 하둡 순으로 흐릅니다. - 소스 = 원천 파일을 가져가기 위한 데몬이고 가지고 가서 하둡에 보내기 위해 - 채널이란 길을 통해 전송을 하고 - 싱크를 통해 맞춰서 보냅니다. Download — Apache Flume Download — Apache Flume flume.apache.org 위 링크에서 플룸을 설치해 주면 됩니다. 받은 플룸을 winSCP를 이용해 sw파일로 옮겨줍니다. 파일이 정상적으.. 2021. 10. 28.
01 . DA# Modeler5 테이블 만들고 PK 설정과 서브 타입 설정하기. DA# Modeler5 버전을 다운받았습니다. 간단한 테이블 만들기 실습을 합니다. 실행을 시키고 첫 화면입니다. 좌측 상단에 모델 추가를 눌러 줍니다. 아직은 프로젝트를 할 게 아니라 간단한 연습만 할 예정이라 프로젝트 추가를 할 필요가 없습니다. 이름과 물리 모델 유형을 선택해 줍니다. 오라클을 보통 사용해서 오라클로 선택을 했지만 리스트에 mysql 등 여러 물리 모델 유형을 선택할 수 있게 되어 있습니다. 파일을 추가하면 좌측 처럼 파일들이 생깁니다. 주제 영역에 논리와 물리가 생성되는 것도 볼 수 있습니다. 좌측 상단 메뉴에서 옵션 버튼을 눌러줍니다. 여기에서 기본 설정들을 바꿀 수 있습니다. 아직은 사용할 일은 없지만 나중에 본인에 맞춰 이것 저것 편리하게 설정하여 사용할 수 있습니다. 주제영.. 2021. 9. 3.
01 . MongoDB 서버 실행 및 클라이언트 접속 MongoDB를 다운로드 하고 C드라이브 아래 파일을 만들어서 가져옵니다. 윈도우 명령 프롬프트를 열어주고 cd c"\mongodb 명령어를 통해서 경로로 이동해 줍니다. mkdir test 메모리, 파일, 프로세스 영역을 활성화 하기 위해서 데이터가 저장될 물리적 경로를 생성해 줍니다. cd bin 아까 mongodb 경로에서 bin 경로로 들어가 주고 mongod --version 저장된 mongoDB 버전이 본인이 설치한 버전인지 체크해 줍니다. mongod --dbpath C:\mongodb\test 이제 아까 만든 test 파일을 경로로 mongoDB의 인스턴스를 활성화 시켜줍니다. ( mongoDB를 시작할 때 사용되는 서버 프로그램인 mongod.exe가 실행됩니다.) 이 단계에서 어떤 장애.. 2021. 8. 31.
반응형