Inner workings of a database
Could anyone recommend me a clear introductory article on the inner workings of each element composing a database system:
- file versus server (sqlite vs mysql)
- how the database engine integrates to the system (MyISAM, InnoDB) and how can MySql make it possible to choose between the 2
- indexation
- how a request is processed
- how SQL开发者_运维技巧 is implemented
- etc.
Optionally with illustrations and comparisons between MySql, PosgreSql, Oracle, Access etc.
===
I am looking for articles with some technical details and keywords. The information I am looking for could answer the following question: I want to program a database engine from scratch, now what? Where do I start? How do I move from reading/writing parameters in a .ini file to sending requests to a SQL server? Of course I am not willing to program a whole database system from scratch, just a guidethrough of challenges, concepts, architecture tips etc. to better undertand the tools I am working with. Thanks in advance.
Here is a good course from Stanford University. You can review the lecture notes if you want lots of details:
http://infolab.stanford.edu/~hyunjung/cs346/
This article really helped my understanding of indexes. I would highly recommend reading it.
This is a good introductory article, with links to more detailed information.
http://databases.about.com/od/specificproducts/a/whatisadatabase.htm
And of course, Wikipedia always has good nov-techie explanations, such as this one:
http://en.wikipedia.org/wiki/Database
As a matter of fact, this google search yielded many results that have the info you're asking about.
Clear? No. All of this is a material for several books of different CS areas. But here are answers to some of the points anyway:
file versus server (sqlite vs mysql)
There is no significant difference here. In the end both of the engines use files. The only difference is that for MySQL (usually) any request has to be transported to the server through some communication channel (be it real network or just local socket) while with Sqlite you pretty much access the engine directly.
how the database engine integrates to the system (MyISAM, InnoDB) and how can MySql make it possible to choose between the 2
Good (enough) abstraction.
精彩评论