개인사정으로 질문내용 삭제합니다 죄송합니다 0 15 3,721

by 될때까지 [Oracle 기초] [2013.08.22 11:18:58]


개인사정으로 질문내용 삭제합니다 죄송합니다

by 신이만든짝퉁 [2013.08.22 11:31:28]
일반적으로 마스터테이블은 기준이 되는 테이블이라고 생각하면 될 것입니다.

데이터베이스를 여러개 운영한다면, 이 데이터베이스간에 공통적으로 사용되는 테이블이 분명 존재할 것입니다. 예를 들면 회원 테이블 같은 경우겠죠.

이 경우 공통의 데이터를 어떻게 처리해야하는가 하는 문제가 발생하는데, 처리방법은 여러가지가 있을 수 있습니다. 디비링크를 통해서도 할 수 있고, 각 데이터베이스에 테이블을 복제하여 사용할 수 도 있습니다.
이 때 복제대상이 되는 데이터베이스의 테이블을 마스터테이블이라고 합니다.

또 다르게 해석할 수 도 있습니다.
데이터를 처리하다보면 통계성 데이터를 위해 별도의 테이블을 만들 수 있는데, 이 통계의 소스가 되는 테이블을 마스터 테이블이라고도 할 수 있습니다.

마지막으로 다른곳에서는 어떤지 모르겠으나 코드성 테이블을 마스터 테이블이라고 부르진 않습니다.

by 아발란체 [2013.08.22 11:42:14]

코드 테이블은
시스템을 운영하며 쌓이는 주 데이타가 아니기 때문에 마스터 테이블이라고 안하는게 아닐까 해용.

시스템을 운영하기 위해 미리 있는 데이타라고 보면
이건 그럼 그냥 코드 테이블이라고 부르는 것이 맞을까요? @.@)

히스토리, 트렌젝션 성격 테이블도 분명 아닐텐데;


by 될때까지 [2013.08.22 13:48:12]

신이만든짝퉁님, 답변주신 내용 중에 궁금한 것이 있습니다
데이터베이스를 여러개 운영한다는 것이 a회사의 데이터베이스, b회사의 데이터베이스 이런 식으로 각각 다른 2개 이상의 데이터베이스를 운영한다는 뜻인가요?

[그리고 데이터를 처리하다보면 통계성 데이터를 위해 별도의 테이블을 만들 수 있는데, 이 통계의 소스가 되는 테이블을 마스터 테이블이라고도 할 수 있습니다.]
라고 하신 부분과 본문에 제가 적은
[일련의 업무 등에 관련된 모든 테이블들의 pk컬럼들을 모아 생성한 테이블로,]
라는 부분이 정반대 같은데 제가 잘못이해한건가요? 아니면 다른 경우에 해당하는건가요?
저는 관련된 테이블들의 pk컬럼을 모아 기준이 되는 테이블을 생성하여 그 생성된 테이블을 마스터테이블로 본다 라고 생각했는데,
답변주신 내용을 보니 기준이 되는 테이블을 생성하기 위해 참조한 pk컬럼이 있던 본래의 테이블이 마스터테이블인건가? 하는 생각이 들어서 다소 헷갈립니다


by 신이만든짝퉁 [2013.08.22 14:59:56]
뭔가 생각하고 있는 부분이 많이 다른 것 같습니다.

일단 한 회사에서 운영하는 여러개의 데이터베이스를 말하는 겁니다.
1개의 데이터베이스만으로 모든 전산 시스템을 운영한다던지, 1개 벤더사의 DBMS로 모든 시스템을 운영하는 일은 없을 거라 생각합니다.(물론 존재할 수 있습니다만, 그런일은 드물거란 얘깁니다.)

영업, 생산 등 데이터베이스를 업무에 맞게 분리해서 관리할 수 도 있고, 시스템별로 오라클, Sql Server, Mysql  등의 다양한 벤더사의 제품을 섞어 사용할 수 있습니다.

이처럼 데이터베이스를 여러개 운영했을 때, 공통으로 사용하는 테이블이 반드시 존재한다는 것입니다.이런 공통테이블(예컨데 회원테이블)을 관리할 때 기준 데이터베이스를 하나 지정하고, 나머지 데이터베이스에서 데이터를 복제해서 쓸 수 있다는 것입니다. 이때 기준이 되는 테이블을 마스터 테이블이라 지칭할 수 있다는 것입니다.

그리고 저는 아직 그러한 경우를 못 보았습니다만,
모든테이블의 PK컬럼을 하나의 테이블로 모을 필요가 있나요?
그렇게 만든 테이블이 대체 어떤 용도로 쓰일지가 더 궁금하네요.

그리고 '마스터 테이블' 이라는 명칭에 너무 얽매이는 게 아닌가 생각이 듭니다.

테이블중에 마스터 테이블은 이러이러한 것이다 라고 정의된 것은 없다고 봅니다.
회사에 맞게 규칙을 만들어 정할 수 있으나, 그것이 모든 회사에서 통용된다는 보장도 없습니다.

by 될때까지 [2013.08.22 15:09:02]

그렇군요 감사합니다 신이만든짝퉁님,
일단 제가 db에 대해 아무것도 모른 채로 입사해서 교육을 받은지 1달도 안된 신입교육사원이라 모르는 것이 너무 많습니다 그래서 생각하고 있는 부분이 많이 다르다기 보다는 제가 이해를 잘 못하고 있기 때문에 생긴 문제같습니다

영업, 생산 등 데이터베이스를 업무에 맞게 분리해서 관리하거나 시스템별로 다양한 벤더사의 제품을 섞어 사용 할 경우 공통으로 사용하는 테이블이 반드시 존재하는데, 이런 공통테이블 중 하나를 기준으로 지정해서 나머지 데이터베이스의 데이터들을 복제해서 사용 할 수가 있는데 이 때 기준으로 잡는 테이블을 마스터 테이블이라고 할 수 있다는 말씀이시죠?
그럼 이런 경우도 일종의 조인이라고 볼 수 있는 것 같은데 맞나요?


by 아발란체 [2013.08.22 11:37:13]

전문가 마다 관점이 약간 틀린 부분도 있는 것 같습니다.
큰 맥락에서 말씀 하신 부분들은 맞는 것 같습니다.

위에서 B가 마스터.
또는 주 데이타가 쌓이는 테이블 마스터.

관련 부가 정보 또는 이력이 쌓이는 트렌젝션 테이블.

성격이 간섭 없이 이력 성격이 강하게 데이타가 쌓이는 히스토리 테이블.


명확한 근거를 두고 얘기하는 것이 아니라서 저도 많이 궁금하네요.. ㅡ ㅁ ㅡ)/
다른 분의 의견으로 보다 이해가 있었으면 좋겠습니다. ^.^


by 될때까지 [2013.08.22 13:38:36]

신이만든짝퉁님 아발란체님 감사합니다
마스터테이블이라는 건 일반적으로 이런거다 라고 이해하면 끝날 줄 알았는데 그게 아닌가보네요
일단 지금 제가 이해해야 될 부분은 join과 마스터와의 관계가 핵심이라는 힌트에 관련되어서 일 것 같은데,
그렇다면 일단은 기본적으론 조인 시 기준이 되는 테이블... 이라고 이해하면 되는걸까요?
저도 아발란체님 말씀처럼 다른 분들의 고견을 더 듣고 싶습니다

by 아발란체 [2013.08.22 14:49:31]

설계할 때 테이블명을 코드로 만들 때가 있었습니다.
그 때 마스터 테이블은 M
트렌젝션 테이블은 T
히스토리 테이블은 H 코드를 끝에 붙이기 했었는데

설계도 전체 그림으로 봤을 때 주 데이타가 쌓이는 테이블에 M
(데이타가 쌓이고 잘 변하지 않는 데이타, 주로 회원 기본 정보)

자주 데이타가 업데이트 되는 것들은 T

수정이 없고 이력 성격으로 쌓이는 것들을 H 로 했습니다.

구글링 하니 비슷한 질문이 꽤 많네요.

검색어 "Master table, transaction Table"

근데 대부분 명확한 근거를 두고 답이 있다기 보다 다 철학적인 답변들 같습니다.

그중 하나 http://scn.sap.com/thread/729334

여기에는 처음 셋팅하고 변하지 않는 코드 테이블을

organizational data라고 분류 하는 분이 계시네요.
관련 근거 내용도 있었으면 좋았을텐데.

by 될때까지 [2013.08.22 15:39:52]

이제 여러가지 관점에서 볼 수 있다는 점은 알겠는데...
제가 받고 있는 교육의 일부가 주어진 단어를 설명할 수 있을 때까지 공부해서 설명해야 하는 것인데 마스터테이블은 참 난감하네요 JOIN과 마스터의 관계를 핵심 키워드로 잡고 설명을 해야하는데 아직도 감이 안옵니다.. ㅠㅠ
마스터 테이블을 마치 드라이빙 테이블처럼 설명한 내용들도 보이는데 혹시 마스터 테이블과 드라이빙 테이블을 같게 보는 관점도 있는건가요?

by 신이만든짝퉁 [2013.08.22 16:02:33]
JOIN의 관점에서 본다면,
고객, 회원 등 처럼 대부분의 테이블간 조인에서 쓰이는 핵심 테이블이 마스터 테이블이 될 수 있겠네요.

고객이나 회원 테이블 등을 통해서 파생한 테이블이 대부분이고(예컨대 주문, 계약 등), 이 테이블을 통해 대부분의 조인이 이뤄지므로 이런 테이블이 마스터 테이블이라고 생각해도 무리가 없을 듯 합니다.

이 경우 '수많은 테이블 들 중에서 조인에 가장 많이 쓰이는 테이블이 마스터 테이블이다(코드성 테이블 제외)'라고 정의할 수 있겠네요. 물론 마스터 테이블은 여러개가 될 수 있습니다. 회원, 상품 테이블 등 처럼 말입니다.

by 될때까지 [2013.08.22 16:22:19]
그렇군요 이제 이해가 되기 시작하네요...
하루종일 마스터테이블만 붙잡고 있었는데도 진척이 없어서 걱정이 많이 되던 참이었습니다
감사합니다
나름대로 정리한 내용과 알려주신 내용 가지고 남은 시간동안 공부해봐야겠네요
오늘안에 설명을 할 수 있을 정도로 이해가 되었으면 좋겠습니다 ㅎㅎ

by 아린 [2013.08.22 16:00:55]
드라이빙 테이블이 어떤거라고 생각하시나요?

by 될때까지 [2013.08.22 16:14:31]
제가 이해한 드라이빙(선행) 테이블은,
조인 시에 가장 먼저 엑세스 되는 테이블이 선행 테이블이 되는데 선행 테이블에서 후행 테이블의 컬럼을 조회하게 됩니다
A 테이블의 데이터가 천건이고 B테이블은 천만건이라고 가정하면,
A 테이블이 드라이빙 테이블이 되는 경우 천번의 탐색이 반복되고,
B 테이블이 드라이빙 테이블이 되는 경우 천만번의 탐색이 반복되게 됩니다
그래서 조인 시 기준이 되는 것이 드라이빙 테이블이라고 이해하고 있었는데, 마스터테이블에 대한 설명을 마구잡이로 찾다보니 이 내용과 비슷한 내용이 보였었습니다
혹시 제가 잘못이해하고 있는 부분이 있나요? 조금 걱정되네요 ^^;
혹시 잘못 이해하고 있다면 바로잡아야 하니까 조금 더 자세하게 설명해보겠습니다
A 테이블의 PK컬럼에 1~1000까지의 row가 존재할 경우,
A테이블이 선행테이블이라면 첫번째 row가 B테이블을 스캔, 값을 비교하고
두번째 row가 다시 B테이블을 스캔, 값을 비교하고... 이런 식으로 1000번째 까지 반복하게 됩니다

by 아린 [2013.08.22 16:20:25]
말씀하신 것처럼, 
가장 먼저 엑세스 되는 테이블(선행테이블)을 드라이빙 테이블이라고 하는데요.

마스터테이블이 먼저 엑세스 되면  
( "마스터테이블과 드라이빙테이블을 같게 보는관점" ) 으로 보실수도 있지만,

마스터테이블이 나중에 엑세스 되면
다를수도 있지요.

또한, 일반테이블(마스터테이블 제외) 끼리 조인되는 경우 드라이빙 테이블만 있을수도 있고요.
즉, 별개로 봐야 될것같습니다.

by 될때까지 [2013.08.22 16:24:04]
음.. 마스터테이블과 드라이빙 테이블은 확실히 다른 것이군요
개념 설명에 대한 부분이 뭔가 비슷해보이는 사이트를 봐서 크게 착각하고 실수할 뻔 했습니다
감사합니다
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입