I have knowledge of selenium and want to implement data driven framework. So, I need basic knowledge for this at a starting level so that I can proceed in my organization
Don't start with designing framework: YAGNI principle applies. Start coding. Implement tests, refactor common parts - and framework will emerge. Difference is, this framework will have only features you need.
By definition, if you have to ask how to design a testing framework (don't already have skills to do it right), you should not try to foresee what you may need - because you cannot do it right.
Become a skilled programmer, and after trying for a while, you will see what works for your situation. Also, read code of other more skilled coders. Join some relevant open source projects.
I would tend to disagree with the comment of not designing and just coding. As with any testing you should aim to plan and find issues in requirements Before writing code. Its harder to change things later!
I am quite a fan of Page Object Model (POM) as an approach
This approach keeps your tests, data and page elements separate from one another. For me, this makes the tests easy write, and just as importantly, to maintain.
For example if a test fails following this model its unlikely the test conditions have changed after it initially passed. That means the test code will probably not need changing.
Has the element moved? Update the element location Has the data changed? Update the data
Following concepts like "one test, one assert" will also mean your errors will likely tell you exactly what needs updating to fix your tests. Or better yet, what to raise a bug about ;)