SD - The Open Source Multivalue String Database
About SD
Open Source, Multivalue, String, Database - These terms are defined in reverse order below.
Database
A database is an ordered collection of data. The data is arranged in some kind of structure. A spreadsheet can be ordered data, but the order is not enforced and the linking of various types of data together may be difficult.
In SD, collections of similar data are stored in files. One database file might containe information about employees, another one about suppliers and a third about products. The data about employees might include an individual's name, hire date and title. Each collection of data about an individual employee is stored in a record, like a row in a spreadsheet. All the similar data, for example hire date, is stored in a single field, like a column in a spreadsheet.
Databases may assure that the data in a field is the same type of data for every individual. The age field should not contain a person's name. Thus can be done by limiting the type of data that can be entered in the field. For example, the age field might only allow numbers to be entered between 0 and 120.
Many other databases are relational databases. Data structures in SD can be designed using the relational model. However, this is not required. In many cases a more fluid design can more accurately reflect real life. Relational databases often contain hundreds of different files to capture the environment that is being modeled. Often, SD databases can be much simpler with the same data in far fewer files.
Finally, many database systems are resistant to change. Adding a new piece of information can be very time consuming and difficult and require updating all the programs that access the database. In SD and other multivalue databases, adding new data to the database can be much simpler in that only the programs that actually access the new data need to be modified.
String
SD is a string database. What does this mean. Everything in the database is stored as text, strings of characters. A record in SD is just a long string of text where fields in the record are separated by a special character called a field mark. An example employee record might look like "John Smith|07/07/1997|Operations Manager" (with the vertical bar representing the field mark character). All fields are variable length, with each field able to store data using only the space required. A field may store 1 character or thousands. It will size itself appropriately.
Multivalue
SD allows multiple values in a field. In some databases storing multiple phone numbers might require having fields named Phone1, Phone2, Phone3. Others might require a file called Phone_Numbers that contains an identifier for a person in one field and a single phone number in a second field. In this case multiple records would be required to hold all the phone numbers for an individual. In SD, a single field can contain multiple values something like "555-555-1212,555-555-1313,555-555-2434". In SD, instead of using commas to separate the multiple values we use a special character called a value mark.
Open Source
The source code for SD is included as a part of the download of the system. SD source code can be freely copied and distributed without any licensing fees. The primary license is the GPL license, version 3. A few components are licensed under the LGPL license, version 3. The installer is licensed under the Blue Oak Model License, version 1.