아직까지는 어렵지 않죠? 그런데 좀 깊이 생각해 보면 데이터를 저장하는 것과 원하는 데이터를 조회해 골라내는 것은 이해관계가 서로 상충될 수 있습니다. 간단한 예를 들어보죠. 책이 데이터이고 책장이 데이터베이스, 책을 책장에 넣는 행위가 데이터를 저장하는 것이라고 해 봅시다. 저장 측면에서 보면 가장 가까운 책장에 무작위로 책을 꽂는 것이 속도도 빠르고 효율적입니다. 반면 어떤 책을 찾으려 할 때는 책 제목이나 주제 등으로 분류해 넣는 것이 현명한 선택이죠. 하지만 이렇게 하면 무작위로 꽂아 둘 때에 비해 시간이 오래 걸립니다. 따라서 책을 꽂아 두고 보관하는 것과 나중에 책을 찾는 두 가지 행위를 되도록 효율적으로 처리할 수 있으면 좋겠죠. 데이터 저장과 조회도 마찬가지입니다.
이 같은 문제 외에도 넘어야 할 난관이 많습니다. RDBMS는 처음 소개되었을 때부터 지금까지 이에 대한 해결책을 제시해 왔습니다. 하지만 첫술에 배부를 수 없듯이 처음부터 문제를 모두 해결한 것도 아니고, 현재 시점에서 완벽히 해결했다고 볼 수도 없습니다. 또한, 제시한 해결책에는 단점도 있습니다. 그렇다고 RDBMS의 공로를 가벼이 여길 수는 없습니다. 최상은 아니어도 최선의 해결책을 제시하며 DBMS를 발전시켜 왔고, 또 꽤 잘 처리했기 때문이죠.
그럼 RDBMS의 특징을 살펴보도록 하죠.