DATOR


꽃과 엔티티

---------------------------------------------------- 꽃(김춘수) ---------------------------------------------------- 내가 그의 이름을 불러 주기 전에는 그는 다만 하나의 몸짓에 지나지 않았다. 내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다. 내가 그의 이름을 불러 준 것처럼 나의 이 빛깔과 향기에 알맞은 누가 나의 이름을 불러 다오. 그에게로 가서 나도 그의 꽃이 되고 싶다. 우리들은 모두 무엇이 되고 싶다. 너는 나에게 나는 너에게 잊혀지지 않는 하나의 눈짓이 되고 싶다. ---------------------------------------------------- 엔티티(신승렬) -----------------------------------------------...

» More

분해조립 데이터모델 #2

[분해 조립 데이터 모델 #2] 지난번 분해 조립 데이터 모델 #2 데이터 모델 연결에서 보았던 관계를 명확히 함으로써 어떤 현상이 나타나는지 살펴 본다. 먼저 “항목”과 “조건종류”의 관계를 풀어 보자 관계가 없다 ! 라고 정의 할 수도 있겠으나 좀 더 정밀한 데이터 관리 혹은 편리한 데이터 조작 및 화면 UI까지 생각해 본다면 분명 무언가 존재한다. 위에서 제시한 가입 조건에 사용되는 항목은 국적, 군필여부, 나이, 키, 몸무게, 시력, 결혼여부가 있었다. 특정 조건은 어떤 항목으로 구성되어 있다 혹은 구성해야 한다. 라는 사실을 표기하는 ...

» More

분해조립 데이터모델 #1

[ 분해 조립 데이터 모델 ] 네이버에서 “우주탐험” 카페에 가입하고자 버튼을 꾹 눌렀더니 무슨 가입 조건이 달린다. “신체 건장한 대한민국 남자 중에서 군대를 다녀온 나이 30 ~ 40대이어야 함. 키 170 ~ 180. 몸무게 60 ~ 80 KG. 시력 1.0 이상. 미혼 이어야 함. 기타등등” 참 내 카페회원 거창하게 소집하는 구나. 이 우주카페에는 10년 후 우주여행을 할 후보자 선정기준은 다음과 같았다. “카페가입 5년 이상. 출석체크 최소 한달에 1번. 팔굼혀펴기 100회. 100M달리기 11초 이하, 회원등급 AAA” 탈퇴 조건도 있군요 “오프라인 모임 미 참석...

» More

성능개선에서 비효율이란?

비효율의 뜻이 무엇인지 사전을 찾아 본다. 非效率 (비효율) : 효율적(效率的)이지 못함. 설명이 썩 맘에 들지 않아서 “효율”을 찾아본다. 效率 (효율) : 들인 노력과 얻은 결과의 비율. 기계의 일한 양과 공급되는 에너지와의 비(比). %로 말하자면 100% 투입해서 100%의 결과가 나오지 않으면 비효율이라 부르나 보다. 언젠가 튜닝을 나갔을 적에 고객님이 물어 보시길 “ 비효율을 개선한다고 하는데 뭐가 비효율이란 거죠? “ “ . . . “ 당연한 것을 물어볼 때 말문이 막혀 버린다. 1 + 1 = 2 임을 증명하시오 문제를 내었던 수학선생님이 순간 머리...

» More

동시성제어 SELECT FOR UPDATE #2

테이블의 데이터를 조작하여 동시성 제어를 처리하는 방식을 알아 보겠습니다. 데이터를 처리 하는 방식은 데이터 관리 영역일까요? 아니면 응용 어플리케이션 영역일까요? 그냥 퉁 쳐서 프로그램 영역 일까요 ? 데이터 모델을 인체의 골격으로 비유하면 데이터는 혈관 속을 흐르는 피 와 유사 한것 같아요. 데이터 모델링, SQL 작성 , 튜닝과는 좀 더 다른 측면인 데이터 처리 및 데이터 흐름관리는 실제 개발 경험이 없으면 접하기 힘든 것 같아요. 아래에서 제시하는 동시성 제어 방법은 모델러가 작성한 테이블만으로는 아무 기능도 하지 못합니다. 설계...

» More

동시성제어 SELECT FOR UPDATE ...

오라클 데이터베이스에서 선택된 행들에 대하여 배타적인 Lock을 설정 할 수 있는 기능이 SELECT FOR UPDATE 입니다. 요 기능에 대해서 잠시 살펴 봅니다. 어플리케이션에서 해당 기능을 프로그래밍 할 수도 있으나 오라클에서 제공되는 기능을 사용할 상황이 있겠죠. 활용하려는 상황 1. 특정한 테이블의 데이터(row)에 대하여 순차적 DML 처리를 가능하도록 하고자 하는 경우 2. 특정 데이터에 대해 동시 트랜잭션이 발생하여 데이터 정합성이 깨지는 것을 방지하고자 할 때 3. Update 처리 진행 중인 데이터를 다른 세션에서 읽는 것을 방지하고자 하는 ...

» More

서브젝트 이력관리 사례 #3

서브젝트 이력과 연관된 변경이력 사례를 하나 더 소개 해 봅니다. 아마도 이번에 소개 하는 것은 현장에서 많이 발견되는 유형일 겁니다. [ 그림 1 ] 상품의 여부 속성들 [ 그림 1 ]은 상품 테이블의 여러 속성 중에서 프로모션과 관련된 제한여부, 가능여부, 제한된 금액을 관리하는 속성들이다. 위 속성들의 이력관리는 어떻게 구현 할 수 있을까 ? 해당 속성들의 쓰임새를 분석해 본 결과는 다음과 같다. -- 제한 관련된 속성을 세팅하는 화면이 별도로 존재한다. -- 데이터가 변경되면 어떤 속성이 어떻게 변경되었는지 추적 가능해야 한다. ...

» More

서브젝트 이력관리 사례 #2

서브젝트 이력관리 사례 #1 의 단점을 살펴 봅니다. 최종 결정된 이력모델의 장점은 과거 + 현재 + 미래가 모두 포함된 데이터 구조이다. 그런데, [상품명변경] 이력 테이블에서는 무슨 일이 발생하고 있던 것일까? 실전에서 발생한 데이터는 다음과 같다 오늘이 20110926 이라고 가정하자 상품코드 시작일시 종료일시 노출상품명 프로모션명 홍보문구명 1001 20110701 20110703 잘나가 노트북 5% 할인기간 최강 멋진 노트북임 1001 20110704 20110714 잘나가 노트북 최강 멋진 노트북임 1001 20110715 20110720 잘나가 노트북 마우스 증정 최강 멋진 노트북임 ...

» More

서브젝트 이력관리 사례 #1

데이터 모델을 하면서 아차 ~ 이것이 최선이 아니구나 !. 하고 뒤늦게 발견하는 경우가 있지 않은가? 기억을 되살려 실수(?) 하였던 사례들을 모으고 정리하는 것도 재미있어 보인다. 시간이 되는 대로 많이 많이 모아 볼까나. 데이터 모델링 프로젝트를 진행하면서 반드시 겪어야만 하는 과정 중에 데이터의 변경에 대한 이력관리를 어떻게 할 것인가를 고민하게 된다. 이력관리 테이블은 업무성격, 데이터 특성, 활용방법, 프로그래머의 숙련도 등 그때그때 마다 매번 서로 다른 이력형 테이블이 생겨나는 것 같다. 물론 알고 있음에도 불구하고 현장에서 적용할 ...

» More

번쩍 ~ 기록하고 공유하기

번쩍 ! ! ! 번쩍 ~ ~ ~ 막상 무엇인가를 정리해야지 하는 순간의 머리속은 백지 상태가 된다. 백지에 까만 글자를 하나 하나 쓰기 시작하는 순간 멈추어져 있던 두뇌가 활동을 시작함을 느낀다. 키보드를 열심히 두드릴때 내 머리가 먼저인지 내 손가락이 먼저인지 알 수 없을 때가 종종 있다. 내 머리가 생각하는 것이 아니라 내 손가락이 움직이고, 이때 만들어 지는 글자들과 그림들의 조합이 내 생각을 움직이는 것 같다. 데이터와 함께 지내온 시간이 10년을 훌쩍 넘어가 버렸는데도.. 무엇인가를 기록 하고 저장하는 일은 쉬운 일이 아니다. ...

» More