DATE 가 쓴 DATABASE SYSTEMS 책의 ERD 이다..
매주 알티베이스 가서 세미나를 하기 때문에 부랴부랴 하고는 있는데 ...
누구나 다 아는 recurisive relationship 에서 EXP IMP 를 도저히 모르던중에 의미를 찾았다 ..
자료구조 수준의 Opeation
- explosion :
explosion은 입력으로 부품번호가 들어가서 출력으로 조립에 필요한 하위부품 정보가 나오는 Operation이며, 이를 재귀적으로 적용하면 Indented BOM을 구성한다 - implosion :
Implosion은 부품번호를 입력하면 이 부품으로 조립되는 모든 조립부품을 출력해 준다. 이는 Reorder를 내는데 사용된다. 보통 Implosion은 1 level 상위를 대상으로 한다.
EXP를 따라가면 이 부품을 만들기 위해 필요한 부품의 정보가 나오고
IMP를 따라가면 이 부품으로 조립되는 부품의 모든 정보가 나온다?? ;;;
. 주요 질의
Indented Bill은 부품의 전체 Tree 구조를 알수 있게 해준다. 이때 Tabel에서 정의한 leve을 보면 부품의 포함관계를 알 수 있다. Copy Bill은 전체 Tree 구조중의 부분 Tree를 Copy 하는 질의이다. 이 질의는 새로운 부품에 대한 BOM을 작성할 때 기존의 부붐을 많이 공유하므로 Copy 한 것의 일부분만 수정하여 새로운 BOM을 구성하면 되므로 매우 유효하다.
Relational db의 SQL을 이용할 경우 다음과 같은 기본 질의를 지원할 수 있다.
1 level explosion 과 implosion
explosion: SELECT * FROM STRUCTURE WHERE Parent-Part = "A"; implosion: SELECT * FROM STRUCTURE WHERE Component="C"
부품 이름등 부가적인 정보를 알고 싶을경우 Part-Master Tabel과 Join을 하여 결과를 보여준다. 말단의 부품까지 모든 Tree 구조를 보여주기 위해서는 다음과 같은 View와 Recusive Join을 하는 질의를 작성해야 한다. 이러한 Recursive join은 데이타베이스에 성능저하에 많은 영향을 주며 질의 자체가 항시 다시 Compile되기 때문에 관계형 데이타베이스를 기초한 BOM 프로세스 작성은 적합하지 않다.
CREATE VIEW BILL AS SELECT one.*, two.Component, two.Quantity-per FROM Structure one, Structure two WHERE one.Component = two.Parent /* 1 level 이상 경우 처리 */ OR one.Componet NOT NULL; /* 1 level 경우 처리 */ SELECT * FROM BILL WHERE Parent="A"
위의 결과를 실제 MS Access 7.0으로 구현한결과가 다음과 같다.
ID | parent | component | description |
---|---|---|---|
1 | A | D | |
2 | A | E | |
3 | B | F | |
4 | B | G | |
5 | C | H | |
6 | C | I | |
7 | H | J | |
8 | I | K |
위의 Record 에 대하여 아래와 같은 질의가 가능하며 그결과는 다음의 표와 같다. (잘못된 Query : C-H-J관계가 나타나야 함)
SELECT a.parent, a.compont, a.description FROM structure AS a, structure AS b WHERE a.component=b.parent or a.component is Not Null GROUP BY a.parent, a.compont, a.description;
parent | component | description |
---|---|---|
A | D | |
A | E | |
B | F | |
B | G | |
C | H | |
C | I | |
H | J | |
I | K |
형 공부 너무 열심히하시는거 아니에요??ㅎ
답글삭제ㅎㅎㅎ 볼 DB 책이 산더미야 ㅋㅋㅋ ;; 슬슬 회사에서 빡시게 굴릴려고 하는듯 ;;
답글삭제