This stores information as a set of linked tables. So if information naturally fits into a tabular form then a relation database might be a good choice to hold that information.
The structure of the the relational database can be optimised , this is known as the normalised form. However this may not provide the fastest access, so sometimes the information is de-normalised for speed reasons. Forms are then used to present this information in a way that best suits each type of user.
One of the main advantages of relational databases is that there is a lot of experience and theory in there use over the years, in particular that they are designed to scale up to very big databases with lots of concurrent accesses.
Relational databases can store tree structured information and also it could store object oriented data. However it might not be very efficient at this because a class might have to be stored in a table with enough columns to hold all the fields of all its derived classes, so this could result in a very wide, sparsely populated, table. Also there is an overhead in having to flatten out a programs internal object data into a table structure when it needs to store or retrieve its data.
CODDs Definition of a RDBMS
- All information represented only in tables.
- Each atomic value is accessible by combination of table name, primary key and column name. - No duplicates
- Systematic treatment of NULLs.
- line data catalog maintained. - Accessible in same way as ordinary data.
- Comprehensive data sublanguage. Data definitions, View definitions, Data manipulation (interactive and programmed), Integrity constraints, Authorisation, Transaction boundaries.
- Views updated correctly.
- High-level Insert, Update and Delete. - Set operators, not record operators.
- Physical data independence.
- Logical data independence.
- Integrity independence. - Not in application program (Semantic integrity a near-impossibility here)
- Distribution independence. - If not distributed, no problem
- Non-subversion. -Low-level language can't subvert or bypass high-level language.