Menu

vault_pattern

Katherine E. Lightsey

Vault Pattern

The sole purpose of SQL as a language and a relational database as an implementation of the relational method is to store and manipulate data. Relational databases store, manipulate, manage, and retrieve data as mundane as user comments on online forums and as important as financial and medical transactions. There can be no higher purpose in a design than to ensure the security, availability, and integrity of the data that is contained and managed by the resultant implementation. I keep wanting to go back and make that previous sentence bold, in huge flashing letters, alternating colors, and then repeat it for about half a page. Just reread it and think about it a bit; if you're storing data and allowing it through negligence or poor design to be compromised, corrupted, or become unavailable; what's your job again?

The Vault pattern is designed specifically to ensure the security, availability, and integrity of the data that is contained and managed by the resultant implementation of your design. It consists of the following:

- A secure schema, non-accessible to all but designated (_secure) application user, in which to store a table
- A table that is completely validated using the [Validator pattern](validator_pattern), to be located in the secure schema.
- A public schema, accessible to all users.
- Accessor and mutator methods as required to expose the data publicly (to users other than the (_secure) application user, to be located in the public schema, and filling the roles of [bridge_pattern] or [facade_pattern].


copyright Katherine Elizabeth Lightsey 1959-2013 (aka; my life)

"If you have built castles in the air, your work need not be lost; that is where they should be. Now put the foundations under them." - Henry David Thoreau, Walden




Related

Wiki: bridge_pattern
Wiki: design_pattern
Wiki: facade_pattern
Wiki: validator_pattern