[This is an alternative magic frame, for D&D-style magic. I never really liked the idea that mages forget spells when they are cast, and here is my solution to that. It doesn't work well with my current MP-based magic system, but I have a soft spot for it so I thought I would share.]
What they can do, however, is summon and command astral entities that can perform magic.
When a magic user "learns" a spell they take the ritual they find in a grimoire (spell book) and use it to summon the appropriate astral entity (this generally take a day per level of the spell and 100gp per spell level). They then make the specified bargain with that entity (which is generally esoteric, not particularly onerous, and does not need to be detailed if you don't want to), for the service of that entity (generally limited to once per day). This is the Contract.
A magic user can maintain a number of Contracts of the appropriate level as indicated in the spell table. So a 2nd level magic user can maintain two 1st level Contracts. There is a possibility that a magic user could attempt to maintain more Contracts, but the additional contracts become severe burdens on the character (the costs become distinctly non-trivial). [This is why clerics can get bonus spells. The burden of maintaining these extra Contracts is part and parcel of the rituals the cleric takes part in as a matter of course. Plus, they are already likely to be under the same dominion, and thus favourable to applications from the cleric.]
This ritual is only performed once (when the magic user "initially" learns the spell) and creates the Contract. The magic user is then able to summon the entity once per day to perform the magical act the entity is capable of. For example a sleep spell in my [old] game summons an astral creature which commences to sing a lullaby (sleep in my game is a non-combat spell and takes 1d10 minutes to have full effect). It looks unlike a vertical cluster of multiple purple worms with mouths at the end of the upper tube that sing in harmony. Of course most people can't perceive the creature (without magical assistance) so it just appears that the victims of the spell fall asleep.
The level of the spell indicates both the astral plane the creature comes from. [This variant uses the OD&D (and traditional) notion of higher (and lower) planes, as represented by the spell contact higher plane, rather than the Gygaxian AD&D notion of a single astral plane.] If you need to give the creatures characteristics (for example if someone takes astral form and battles them directly), then they generally have characteristics equal to double their level, and hit dice equal to their level. They also tend to have a number of abilities equal to their level (although generally one directly applies to the spell they are summoned to cast). However in most cases there is no need to do so (well, I've never had to). Although it does mean there is more flexibility in dealing with the entities responsible for higher level spells (which is also why they are harder Contracts to impose and maintain).
A magic user could increase the burden of the individual Contract without it actually becoming burdensome for them by dedicating two spell slots to the Contract. The usual result of this is that the entity can be summoned more than once per day. If two slots are dedicated to the Contract, then the spell effect may be used three times a day, and with three slots (a massive commitment) it becomes six times a day. You could use a higher level spell slot to maintain a contract with a lower level astral entity if you really wanted, but it would still count as only a single spell slot.
A magic user can perform the ritual again to summon the entity to change the Contract. This includes cancelling it (effectively forgetting the spell). And expanding it to allow increased uses per day. Or to create a special one-use instance of the magic (with the contract commonly embodied in a scroll which is consumed in use).
The grimoire/spell book is only necessary for summoning the entity to make the contract, but most magic users hold tightly onto the spell books. This is because the ritual is the only way to summon the entity if one wants to change or modify the Contract. Without that original spell the magic user simply cannot summon the same entity again. The only way the magic user can safely dispose of a spell book is to perform the ritual again, and cancel the Contract with the entity. Then the spell book may be safely disposed of. The exception to this is if the magic user duplicates the spell in another spell book. This new/spare spell book has the identical spells. Of course a magic user could always go on a quest to seek out the original spell book, but that is an adventuring option. Just be warned that there are countless variations of low level spells that summon similar, but different entities. [For ease I rolled a d12 against spell level when the ritual is performed; if you roll less than or equal to the level of the spell, then it summons the same entity. So it's not impossible to find the same spell, just expensive.]
Cleric spell (prayer) books have a large advantage in this regard, because they tend to be copied from the same source and summon the same astral entities (who are considered divine servants of their god). For the standard spells of their faith a cleric can always negate the contract. The problem is that clerics have a much more limited ability to create new spells. Their spell knowledge is generally limited to those entities that are considered servants of their god.
Learning new spells is simple, and is essentially based on using the contact higher plane spell to find an entity on the appropriate plane and make a Contract with it using the Know% (taking a number of months equal to the level of the spell). Of course, the higher astral planes are not places for the human mind to roam freely without danger, as represented by the Insanity% column. Most research wizards are a few belfries shy of a bat.