initial import
This commit is contained in:
231
Design-Persistence.md
Normal file
231
Design-Persistence.md
Normal file
@@ -0,0 +1,231 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<link type="image/png" href="assets/logo.png" rel="icon">
|
||||
<title>ReadySet Markdown</title>
|
||||
</head>
|
||||
<script src="https://www.w3schools.com/lib/w3data.js"></script>
|
||||
<body>
|
||||
|
||||
<topbar style="display:none;">
|
||||
<item><a href="index.html">Overview</a></item>
|
||||
<item><a href="plan.html">Project Plan</a></item>
|
||||
<item><a href="index-all.html">Workflows</a></item>
|
||||
<menu name="Themes"><item><a id="settheme"><b>Current</b></a></item></menu>
|
||||
<toc></toc>
|
||||
</topbar>
|
||||
|
||||
<xmp theme="readable" style="display:none;">
|
||||
<!-- Markdown content here -->
|
||||
|
||||
# [Design](design.html) > Persistence
|
||||
---
|
||||
|
||||
##### Project:
|
||||
::PROJECTNAME
|
||||
|
||||
##### Internal Release Number:
|
||||
::X.Y.Z
|
||||
|
||||
##### Related Documents:
|
||||
::LINKS TO RELEVANT STANDARDS
|
||||
::LINKS TO OTHER DOCUMENTS
|
||||
|
||||
---
|
||||
|
||||
### Overview
|
||||
|
||||
*TODO: Answer the questions below to help you design needed persistence
|
||||
features. Some example text is provided. Add or delete text as needed.*
|
||||
|
||||
#### What are the most important facts that a developer should know about persistent data storage in this system?
|
||||
::PARAGRAPH OR BULLETS
|
||||
|
||||
#### What are the ranked goals for persistence in this system?
|
||||
|
||||
1. ::[Expressiveness](glossary-std.html#dg_expressiveness)
|
||||
2. ::[Ease of access](glossary-std.html#dg_easy_access)
|
||||
3. ::[Reliability](glossary-std.html#dg_data_reliability)
|
||||
4. ::[Data capacity](glossary-std.html#dg_data_capacity)
|
||||
5. ::[Data security](glossary-std.html#dg_data_security)
|
||||
6. ::[Performance](glossary-std.html#dg_data_performance)
|
||||
7. ::[Interoperability](glossary-std.html#dg_data_interop)
|
||||
|
||||
### Central Database
|
||||
|
||||
#### What is the logical database design?
|
||||
|
||||
::The logical database design is described in this [UML
|
||||
model](LINK-TO-MODEL) or this [ER diagram](LINK-TO-DIAGRAM).
|
||||
|
||||
::Additional logical constraints on the database are:
|
||||
|
||||
- ::Students can repeat a course (and thus have two records for the
|
||||
same course in their transcript), if and only if they got a
|
||||
grade of "C-" or lower, or the course number is 198, 199, 298,
|
||||
or 299.
|
||||
- ::A grade of "A+" is valid only for transcript entries during or
|
||||
after Fall 1990. Prior to that term, the highest possible grade
|
||||
was an "A".
|
||||
- ::LOGICAL CONSTRAINT THAT CANNOT BE EXPRESSED IN THE DIAGRAM
|
||||
- ::LOGICAL CONSTRAINT THAT CANNOT BE EXPRESSED IN THE DIAGRAM
|
||||
|
||||
#### What are the physical tables and views?
|
||||
|
||||
::The physical database design is described in this [UML
|
||||
model](LINK-TO-MODEL) or this [ER diagram](LINK-TO-DIAGRAM).
|
||||
|
||||
#### How will objects in the application be stored in the database?
|
||||
|
||||
::We will use one database table for each class, and one row in the
|
||||
database for each persistent instance of that class.
|
||||
|
||||
::We will use a [library](LINK-TO-LIBRARY) to do our
|
||||
object-relational mapping. (E.g., torque, castor, JDO,
|
||||
ADO, hibernate)
|
||||
|
||||
#### What database access controls will be used?
|
||||
|
||||
::A database user account has been created that has access to the
|
||||
needed application database tables. The username and password for
|
||||
this account is stored in a configuration file read by the
|
||||
application server. The database limits login by that user to only
|
||||
the IP-address used by the application server.
|
||||
|
||||
#### Is this application's central database accessible to other applications?
|
||||
|
||||
::Yes. The database is an important point of interoperability for new
|
||||
applications to be added later. The database itself provides support
|
||||
for access controls and checks validity constraints so that a
|
||||
defective application cannot corrupt the database.
|
||||
|
||||
::No. This database should always be accessed through
|
||||
this application. All relevant pieces of information are available
|
||||
through the application interfaces. The database itself does not
|
||||
protect against data corruption that could be caused by
|
||||
other applications.
|
||||
|
||||
### File Storage
|
||||
|
||||
#### What data needs to be stored in files?
|
||||
|
||||
::Nothing is stored in files, everything is in the database.
|
||||
|
||||
::The server stores most data in the database, but mailing list
|
||||
attachments are written to files on the server hard disk.
|
||||
|
||||
::All user documents are stored in files on their computer hard disk.
|
||||
|
||||
#### What are the conventions for directory structure and file naming?
|
||||
|
||||
::N/A
|
||||
|
||||
::Files are stored on the server as
|
||||
|
||||
```/var/data/attachments/msgNNNN-MMM.dat```
|
||||
|
||||
::Users store files anywhere on their computer, with the filename
|
||||
extension ```.TST```.
|
||||
|
||||
#### What file system access controls will be used?
|
||||
|
||||
::N/A
|
||||
|
||||
::Files for message attachments are only readable and writable by the
|
||||
mailing list archiving process that runs as operating system
|
||||
user "archdaemon".
|
||||
|
||||
::Users can use whatever file permissions they like.
|
||||
|
||||
#### What file format will be used?
|
||||
|
||||
::The [XYZ](LINK-TO-STANDARD) standard file format.
|
||||
|
||||
::A java .properties file.
|
||||
|
||||
::A window's .ini file.
|
||||
|
||||
::An XML file using [this DTD file](LINK-TO-DTD).
|
||||
|
||||
::A simple text file with the following format: ...
|
||||
|
||||
::A custom binary file in the following format: ...
|
||||
|
||||
### Distributed Storage
|
||||
|
||||
#### What information (if any) will be stored on client machines? For how long?
|
||||
|
||||
::A cookie will be stored on the user machine for the purpose of
|
||||
identifying a user session. When the user logs out or closes their
|
||||
web browser, the cookie is deleted. Most browsers will not even
|
||||
write this cookie to the disk.
|
||||
|
||||
::The a cookie is stored on the user's computer that is equivalent to
|
||||
their password (but it is NOT actually their password). This cookie
|
||||
is needed for the auto-login feature. The cookie lasts a maximum of
|
||||
30 days, and it can only be used from the same IP address.
|
||||
|
||||
::User preferences for color scheme are stored in cookies in
|
||||
their browser. This information is not at all sensitive, so it is
|
||||
kept indefinitely.
|
||||
|
||||
::All the user data will be stored on files on their computers.
|
||||
|
||||
### Persistence Mechanisms Checklist
|
||||
|
||||
|
||||
#### Expressiveness: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Ease of access: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Reliability: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Capacity: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Security: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Performance: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Interoperability: To what extent has this been achieved?
|
||||
|
||||
::2-4 SENTENCES
|
||||
|
||||
#### Has the persistence design been communicated to the development team and other stakeholders?
|
||||
|
||||
::Yes, everyone understands. Feedback is welcome.
|
||||
|
||||
::No, this is a risk that is noted in the [Risk Management](plan.html#risks)
|
||||
section.
|
||||
|
||||
<!-- End Markdown content -->
|
||||
</xmp>
|
||||
|
||||
<div w3-include-html="_words-of-wisdom.html"></div>
|
||||
<div w3-include-html="_footer.html"></div>
|
||||
|
||||
<script>
|
||||
w3IncludeHTML();
|
||||
</script>
|
||||
|
||||
<script src="http://strapdownjs.com/v/0.2/strapdown.js"></script>
|
||||
<!-- Include it AFTER strapdown -->
|
||||
<script src="assets/strapdown/strapdown-topbar.min.js"></script>
|
||||
<!-- Include it AFTER EVERYTHING -->
|
||||
<script src="assets/logo.js"></script>
|
||||
<script src="assets/themeswitcher.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user