turning data objects into MonoBehaviours

say i have a monobehaviour whose purpose is to hold and give a fair amount of data. this data may be taken from and, ideally, written to an xml or text file. the default data alone may need to be read by other parts of the program, without all of the baggage that comes with a GameObject. what is the cleanest way to write this? should i have an AttributeData class that derives from Object and an AttributeBehaviour that derives from MonoBehaviour, ensure that they have the same variables, and manually copy one to the other? or should AttributeBehaviour simply hold an instance of AttributeData? or is there another better way i haven’t thought of?

You can have a Singleton that isn’t extended from MonoBehaviour (or anything). It doesn’t need to be added to a GameObject and it’s fine for a database where you don’t need methods like Update() and other “baggage”.

i should’ve added that the data pulled from the table is not global data (which a singleton would be perfect for) but a collection of many similar objects’ data.