So i want to understand how DBMS implementation works
To give an example :
MySQL implements each tables with its own pages, which are 16KB
so each table is a file, and is a multiple of 16KB, considering how large is it and therefore how many pages it needs
Now i read somewhere that these pages don't get fragmented, so my question is, HOW?
how do DBMS developers tell the operating system that "hey i just added a 16KB data (page) to this file, but make this page doesn't get fragmented"
sorry if this is a duplicate, i searched and couldn't find any related question, also lets say the O.S is windows or Linux
my point is lets say O.S stores files based on 4KB chunks, and may fragment some files when they exceed it, and the DBMS uses 16KB pages, my question is how do they implement that DBMS so that 16KB pages which get added to table files dont get fragmented? when i append a 16KB data to a file, is it by default reserved for it and will never get fragmented? (basically how do they reserve a 16KB on the disk and make sure its not gonna get fragmented?)
if you can give an example in any language that how these type of appending is done I'm Ok, I'm not looking for a specific language just wanna know how its done
Also I'm not asking about any specific database either, all the relational databases use these pages.
ALSO I'm taking about fragmentation inside a disk image or memory image, not sure if these images are logical or what, so when i take the image of that database folder, or its process in memory, these pages are not fragmented, how?