B 트리 구현하는 과제를 하는데 몇 가지 궁금증들이 떠올랐습니다.

 

1. B 트리에서 leaf는 실제 데이터에 접근하는 포인터를 담아야 하고

 

internal은 다른 node에 대한 포인터를 담아야 하잖아요?

 

이 둘을 한 종류의 node로 다뤄야 할텐데, node를 추상화시키더라도

 

leaf에서 실제로 가리키는 자료형이 뭔지 결정을 할 수가 없더라고요.

 

왠지 native단에서 db와 파일 간의 연결 작업이 이뤄질 거 같은데(이런 부분은 하나도 모르겠어요..),

 

실제 db(mysql, oracle, etc..)들은 어떻게 구현이 되어있는지 궁금하더라고요.

 

2. db에서 쓰이는 어떠한 자료형이든 key로 사용될 수 있으니 저도 일반화시키려고 java generic을 생각해봤는데

 

B 트리 특성상 자식의 개수는 node의 크기에 따라 달라지니까 generic을 쓰면 node의 크기를 결정할 수 없을 것 같더라고요.

 

어떤 게 key로 쓰일지 모르니..

 

역시 이 경우도 실제로는 어떤 식으로 문제를 해결하는지 궁금하고요.

 

3. db는 보통 어떤 언어로 설계가 되는지, 어느 분야의 어느 정도의 지식을 갖춰야 설계를 할 수 있는지 궁금합니다.

 

 

잘 아시는 분들 답변 부탁드려요~