Database 52

Data Mart

그러면 DW와는 무슨 차이가 있는 것일까요? DW는 최종사용자와의 인터페이스보다는 방대한 분량의 데이터를 효율적으로 통합하고 관리하는 측면에 보다 초점을 맞춘다. 따라서 사용자 측면에서 편리한 형태로 설계되지 않을 수 있습니다. 그리고 전사적인 용도로 구축되기 때문에 각 개별부서나 사용자 집단에 적합한 형태로 데이터가 저장되지 않는다. 따라서 사용자 질의에 최적의 성능을 제공하지 못할 수도 있습니다. 대부분의 사용자들은 DW의 전체 데이터 중 일부분만을 주로 사용할 것이며, 기업의 모든 사용자들이 DW에 대해 직접 질의를 수행하는 것은 많은 시스템 자원을 필요로 하며 시스템 성능에 심각한 부하를 줄 수 있기 때문에 분산된 DB영역에서 구축 하는 것이 바람직합니다. 출처: https://unabated.t..

Database 2019.11.26

[MySql] 암호화된 데이터 like 검색하기

휴대폰 번호를 암호화해서 저장하는데 화면에서 검색어 입력시 검색 대상에 휴대폰 번호가 포함됨. 1. Query에서 암호화 or 복호화 하여 검색http://seongtak-yoon.tistory.com/43 2. Java에서 복호화 후 검색 https://okky.kr/article/172719암호화된 데이터는 like 검색, 정렬도 불가능한게 원칙입니다. https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=169235like해야 되는 필드는 당연 암호화 안해야죠 ㅡㅡ;;;;;; 기본중에 기본인데 ㅡㅡ;;; https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr..

Database 2018.11.12

[MyBatis] foreach

http://huskdoll.tistory.com/507 방법은 Map을 선언시 로 선언하고 Object에 list를 넣어주고 query 부분에서 리스트를 foreach 돌려 사용하면 됩니다. DAO 부분에서 책 정보를 가져오도록 작성1234567891011121314151617public List getBooksInfo() { Map param = new HashMap(); param.put("id", "1"); //#{id}에 셋팅 param.put("name", "victor"); //#{name}에 셋팅 List codeList = new ArrayList(); codeList.add("01"); //in 조건에 넣을 정보 codeList.add("05"); param.put("code_list"..

Database 2018.05.25

[MySql] DISTINCT , GROUP BY

DISTINCT의 결과를 정렬된 결과가 아니지만, GROUP BY는 정렬된 결과를 보내준다. GROUP BY의 작업을 크게 "그룹핑" + "정렬"로 나누어서 본다면, DISTINCT는 "그룹핑" 작업만 수행하고 "정렬" 작업은 수행하지 않는 것이다. 그런데, 여기서 "정렬"은 "그룹핑" 과정의 산물이 아닌 부가적인 작업이다. 가끔 어떤 사용자는 DISTINCT가 마치 함수인 것처럼 (괄호를 사용하여) 아래와 같이 사용을 하는데 만약 fd1 컬럼은 unique 값, fd2는 전체 값을 원한다면 절대 그 결과를 얻을 수 없다. SELECT DISTINCT(fd1), fd2 FROM tab; SELECT 문장에 DISTINCT라는 키워드가 있으면, MySQL은 SELECT되는 모든 컬럼(튜플)들에 대해서 DI..

Database 2018.05.10

[MySql] INDEX

인덱스 컬럼 기준먼저 말씀드릴 것은 1개의 컬럼만 인덱스를 걸어야 한다면, 해당 컬럼은 카디널리티(Cardinality)가 가장 높은 것을 잡아야 한다는 점입니다.카디널리티(Cardinality)란 해당 컬럼의 중복된 수치를 나타냅니다. 예를 들어 성별, 학년 등은 카디널리티가 낮다고 얘기합니다. 반대로 주민등록번호, 계좌번호 등은 카디널리티가 높다고 얘기합니다.인덱스로 최대한 효율을 뽑아내려면, 해당 인덱스로 많은 부분을 걸러내야 하기 때문입니다. 만약 성별을 인덱스로 잡는다면, 남/녀 중 하나를 선택하기 때문에 인덱스를 통해 50%밖에 걸러내지 못합니다. 하지만 주민등록번호나 계좌번호 같은 경우엔 인덱스를 통해 데이터의 대부분을 걸러내기 때문에 빠르게 검색이 가능합니다. 여러 컬럼으로 인덱스를 잡는다..

Database 2018.05.08

[MySQL] Transaction과 Loack

소스를 보고있었는데 transaction이 걸려야할 것 같은 곳에 transaction이 없었다.이유를 물어보니 transaction을 걸면 lock이 걸린다고했다.row transaction이 걸려야하는데 DB특성상 table transation이 걸려서? 그렇다고 했다.그래서 찾아보았다. MySQL에서 사용하는 Lock의 이해 [출처] http://blog.saltfactory.net/introduce-mysql-lock/ MySQL에서 Lock은 크게 Table Lock, Global Lock, Name Lock, User Lock 이 있다. Table Lock 테이블락은 어떤 세션에서 테이블 자원에 엑세스하여 데이터를 읽거나 쓰기를 할때 다른 세션에서는 테이블 자원에 대한 엑세스를 제한 하는 락이..

Database 2018.03.22

[SQLD] SQL 전문가 가이드 내용 정리

과목1 데이터 모델링의 이해 제1장 데이터 모델링의 이해 제1절 데이터모델의 이해 1. 모델링의 이해 가. 모델링의 정의 나. 모델링의 특징 다. 모델링의 세 가지 관점 2. 데이터 모델의 기본 개념의 이해 가. 데이터 모델링의 정의 나. 데이터 모델이 제공하는 기능 - 가시화, 명세화, 구조화, 문서화, 다양한 관점, 구체화된 상세 수준의 표현방법 제공 3. 데이터 모델링의 중요성 및 유의점 가. 파급효과(Leverage) 시스템 구축이 완성도어 가는 시점에 불가피한 데이터 구조의 변경으로 인한 일련의 변경작업은 시스템 구축에서 큰 위험요소 나. 복잡한 정보 요구사항의 간결한표현(Conciseness) 데이터 모델은 건축물로 비유하자면 설계 도면에 해당. 시스템을 구축하는 많은 관련자들이 설계자의 생각..

Database 2017.10.17
반응형