I want to design a simple database management system like sqlite for my desktop application. Reason sqlite doesn't meet my need is it is not password-protected and not encrypted; open for anyone to view database using some kind of GUI app like Navicate.
In database design a record/tuple in the table should be indexed so that it can be searched fast for lookup /deletion /updation. As discussed here
These indexes use pointers to the records. Indexes can be dense, sparse, hash indexes etc. These indexes use pointers to the records in the database file. What these pointers points to-
- For performance reasons and efficiency no single record should span over two disk blocks as block is the smallest unit that can be read/writeen from disk. Using C file management API how can I know about disk blocks.
- Is the pointer in an index file is the a specific location where we can go using fseek() in a C language or a pointer to disk block?