본문 바로가기 메뉴 바로가기

데브포유

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

데브포유

검색하기 폼
  • ※ 데브포유 둘러보기 (1230)
    • Dev4u Life (678)
      • 일상 (201)
      • 여행 (25)
      • 투자 (6)
      • Generative AI (11)
    • Database (339)
      • ClickHouse (5)
      • CockroachDB (19)
      • MariaDB (14)
      • mongoDB (63)
      • Oracle (145)
      • PostgreSQL(EDB) (3)
      • Presto (14)
      • SAP IQ (Sybase) (16)
      • yugabyteDB (7)
      • ETC (53)
    • Dev4u S/W (11)
      • Android App (3)
      • iPhone App (1)
      • WASMonitor (3)
      • ZtermManager (1)
    • Developer (198)
      • Android (7)
      • C & C++ (12)
      • Data Mining (4)
      • JFreeChart (4)
      • iPhone (4)
      • Java, Kotlin (35)
      • Node.js (2)
      • Python (15)
      • Rust (8)
      • Spark (10)
      • Unix Shell (12)
      • Util (31)
      • Web (16)
      • Weka (4)
      • ETC (34)
    • === E.N.D === (0)
  • 방명록

Database (339)
[데이터베이스] 정규화(Normalization) 란?

제1 정규화 ⊙ 반복된 속성이나 그룹 속성은 삭제하고, 새로운 실체를 추가한 뒤 기존의 실체와 1 : N의 관계를 형성한다 제2정규화 ⊙ 복합키로 구성된 경우 모든 칼럼들은 복합키 전체에 의존적이어야 한다. ⊙ 복합키 일부에 의존적인 칼럼은 제거해야 한다 ⊙ 복합키가 아닌 경우는 제2정규화의 대상이 아니다 제3정규화 ⊙ 테이블의 칼럼들은 기본키에 의존적이어야 한다. ⊙ 기본키 외의 칼럼에 종속적인 칼럼은 제거해야 한다. 대부분 1~3정규화만 잘 지켜도 물리 DB를 구축시 크게 문제될 경우가 없다고 해도 과언이 아니다라고 합니다. 보이스코드, 4차 5차 정규화까지 갈 경우가 그리 많지 않다는 얘기구요. 꼭 필요할 경우 1~3차에 반정규화 정도가 적당하지 싶습니다. 정말 중요한 1~3차 정규화를 예를 들어 ..

Database/ETC 2009. 7. 2. 13:06
[오라클] decode 문에서 숫자의 부호별 처리

숫자 n이 음수인지, 양수인지, 0인지를 판단하기 위해 case문은 처리하기가 쉽은데 decode문에선 언뜻 생각하면 어떻게 처리해야 하나 고민하는 경우가 있습니다. decode문이 case문에 비해 직관적이진 않지만 sql 라인수를 줄이고 짧게 사용할 수 있어 개이적으로 자주 사용하는 함수입니다. 그럼 decode에서 숫자 n이 음수인지 양수인지 아니면 0인지 어떻게 판단할 까요? 바로 sign 함수를 이용하면 됩니다. 즉 sign(음수) -> -1이고 sign(0) -> 0, sign(양수) -> 1 이렇게 결과가 나오기 때문에 컬럼 A가 음수, 양수가 있을때 음수와 양수를 각각 sum 할려면 decode 문에서 sign함수를 다음과 같이 사용하시면 됩니다. select sum(decode(sign(..

Database/Oracle 2009. 6. 25. 11:00
[오라클] GROUP BY 절에 의한 자동정렬에 대한 고찰

오라클를 조금 다뤄본 분들은 GROUP BY를 사용하면 ORDER BY를 사용하지 않더라도 자동으로 정렬이 된다는 것은 알고 계실텐데요(단 병렬처리(parallel) 제외) 그래서 책에서도 order by를 사용하지 않아도 된다고 나오죠. 그런데 아직도 그럴까요? Oracle 10g R2 부터는 group by를 사용해도 자동으로 정렬이 되지 않습니다. 원인은 Oracle 10g R2 New Feature - New In-Memory Sor Algorithm 때문인데요. 정렬 알고리즘이 Hash Based로 변경되면서 부터 입니다. 많은 양의 데이터가 정렬될 경우 기존방식보다 월등한 성능을 낸다고 하더군요. 그럼 이전처럼 GROUP BY절을 사용하면 정렬이 되게 할 수 없을까요. 새로운 방식의 알고리즘을..

Database/Oracle 2009. 6. 15. 16:13
[오라클] 날짜 더하기

일(day)를 기준으로 작성하시면 편합니다. 1일(day) 더하기 select sysdate, sysdate + 1 from dual; 1시(hour) 더하기 select sysdate, sysdate + 1/(24) from dual; 1분(minute) 더하기 select sysdate, sysdate + 1/(24*60) from duall; 1초(second) 더하기 select sysdate, sysdate + 1/(24*60*60) from dual; 1년(year) 더하기 select sysdate, sysdate + (1*365) from dual;

Database/Oracle 2009. 6. 15. 15:39
[오라클] 부정형 조인(ANTI JOIN)

하나의 테이블에서 데이터를 추출할때 다른 테이블에 없는 데이터만 추출하고자 할때 사용하는 것이 ANTI JOIN 입니다. 다른 집합에 있는 것만 뽑는 것은 EXIST나 IN 으로 연결하여 뽑으면 대부분 좋은 성능의 결과를 얻을 수 있지만 NOT EXISTS나 NOT IN은 좋은 성능을 위해서 고려해야 할 점이 많죠. NOT IN 이 사용되야 할때 MERGE ANTI JOIN이나 HASH ANTI JOIN를 사용하면 성능 향상에 많은 도움이 됩니다. 실제로 오늘 처음으로 MERGE ANTI JOIN를 사용해 봤는데 기적 그 자체더군요. 굳~~ SELECT COUNT(*) FROM TAB1 WHERE COL1 LIKE 'ABC%' AND COL2 IS NOT NULL AND COL2 NOT IN ( SELE..

Database/Oracle 2009. 6. 12. 14:36
[오라클] Join Update 시 /*+ bypass_ujvc */ 힌트사용

A 테이블과 B 테이블를 조인하여 A 테이블의 특정필드에 B 테이블의 특정 필드의 값을 업데이트 하고자 할경우 좋은 성능을 내는 힌트입니다. update /*+ bypass_ujvc */ ( select a.score old, b.score new from a, b where a.id = b.id ) set old = new ; 주의할 점은 oracle document에서도 찾기 힘든 힌트라 불안정할 경우가 있다는 얘기가 있더군요. 업데이트 전 값을 미리 체크하고 업데이트가 잘 작동되었는지 확인이 필요하다고 하더군요. 아직 한번도 사용해 본적은 없지만 . . .

Database/Oracle 2009. 6. 10. 09:24
[오라클] OR 연산 성능 튜닝

대량의 데이터를 처리할 경우 OR 연산이 조건에 있으면 성능 저하에 많은 영향을 줍니다. 특히 OR 조건중 어느 하나라도 인텍스가 없으면 FULL TABLE SCAN으로 풀리기 쉽죠. OR 연산을 튜닝하는 방법을 몇가지 소개해 드립니다. 예제) 매출테이블(T_TRADE)에서 상점(ID: A, B) 인 상점의 특정 거래일(TR_DT) 동안의 총 매출액(AMT)를 구하라. 1. OR 조건을 UNION ALL로 풀어냄 : 쉽게 작성할 수 있으나 SQL이 풀어낸 개수만큼 늘어나 유지보수가 어려움. SELECT ID, SUM(AMT) FROM ( SELECT AMT FROM T_TRADE WHERE TR_DT IN (SELECT DT FROM COPY_YMD_T WHERE DT BETWEEN '시작일' AND '..

Database/Oracle 2009. 6. 5. 12:44
[오라클] GROUP BY 절에 사용한 함수는 SELECT 에서 실행 안함.

group by 절에 사용한 함수 (decode 포함) 함수는 select 절에 기술되어 있어도 동작하지 않습니다. 즉 그룹핑할 때 한번만 수행이 됩니다. 이것을 이용하면 group 조건이 아닌 컬럼의 값을 사용할 수가 있어 손쉽게 데이터를 얻을 수 있습니다. ex) select decode(제품코드, '1', 'xxx', '2', decode(다른컬럼, '2'', ...) , count(*) from 매출 group by decode(제품코드, '1', 'xxx', '2', decode(다른컬럼, '2'', ...) ==> 예제가 딱히 생각이 나지 않아서 대충 적었습니다. 매출 집합에서 제품코드별 거래 건수를 알고 싶은데 특정 제품은 다른 조건 예를 들어(특판일 경우) 등등에 따라 거래 건수를 분리하고..

Database/Oracle 2009. 6. 1. 18:03
이전 1 ··· 36 37 38 39 40 41 42 43 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • ORACLE BASE
  • Oracle Tutorial
  • The Logical Optimizer
  • 데이터베이스-모델링(예제)
  • 한국 러스트 사용자 그룹
  • Ruste By Exsample
  • SQL튜닝
  • 나이파이 커스텀 프로세서
TAG
  • 코라나 19
  • 카카오 에드
  • 홈 오피스
  • yugabyteDB
  • 솔리드 쿨론
  • 톡토기
  • 남설 팔찌
  • 루미큐브 종류
  • 증권정보포털
  • 빈센트 반 고흐
  • Pixel Pals
  • GKRS
  • 르세라핌
  • node.js
  • VARIDESK
  • 로니카 BCS
  • 고체 향수
  • 오미크론
  • JMW 헤어드라이기기
  • 유가바이트디비
  • Sybase IQ
  • 배당급
  • 매직 트랙패드2
  • 브리다 정수기
  • Life Chair
  • 화분벌레
  • weka
  • 파나소닉 비데 DL-EH10KWS
  • 별이 빚나는 밤
  • 별잉 빛나는 밤
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.