<< Click to Display Table of Contents >> Navigation: Introduction > Overview |
The system is configured in a Client / Server model, where CORE-GS is the client and Microsoft SQL Server is the server:
CORE-GS |
Server & Database |
While the system is optimized for network use (i.e. one database with multiple concurrently connected instances of CORE-GS), it can also be installed and run in a standalone environment on any Windows 7 / 8 or 10 device (i.e. desktop, laptop or tablet). Where multiple databases are used, data can be transferred between databases using various methods, including synchronization (SYNC Add-in).
CORE-GS connects to databases via Microsoft SQL Server. Microsoft SQL Server manages all operations performed on the database to ensure consistency.
System Administrators typically access Microsoft SQL Server using tools like Microsoft SQL Server Management Studio (MSSMS) to perform various tasks across databases.
CORE-GS stores data in a relational SQL (structured query language) database designed specifically to store multiple projects in a single centralized location, making data readily accessible to users and other applications such as GIS.
In simple terms, a database can be viewed as a spreadsheet with links between sheets. These links constrain data to maintain data integrity and optimize the efficiency of searches:
Excel |
Database |
Comments |
Sheet |
Table / View |
Equivalent |
Column |
Field |
Equivalent |
Row |
Record |
Equivalent |
- |
Key / Indexes |
Only exist in databases. These are used to ensure the uniqueness of a record or constrain data in some way. |
- |
Relationship |
Only exist in databases. These link related data from one table to another to enforce consistency and cascade changes to related tables. |
CORE-GS implements permissions to restrict access to protect against inadvertent changes.
Three user types exist:
•Standard User - by default all users are assumed to be a member of this type.
•Division Administrator - users in this role have elevated permission to perform most tasks in a division, including managing master collections, public lookup list and accessing protected projects.
•System Administrator - users in this role have the highest permission to perform tasks throughout the system, including changing the database schema (user must be a member of the db_owner role).
Permissions are used to restrict access to:
•Projects
•Collections
Collections are used through the software to store templates:
•Project – stores project specific templates that can be created / edited by any user with access to a project
•Master – stores templates that can used by any project within a division, but only System Administrator & Division Administrator may change these
•Global – templates that any user can copy, but only System Administrator may change these
Note |
Most permissions are application level and are not enforced at the server level. This means that data can be accessed using 3rd party tools. Enforcement of server level permissions is highly recommended for any enterprise level deployment. As the requirements of permissions varies between organizations, these enterprise level systems are setup on a case-by-case basis. |
The majority of remaining tables are referred to as lookup tables, of which there are three types:
•Project Lookup - data in project lookup tables can only be referenced by the project that defines them. Data may be viewed and edited by any user when a project is unprotected, or any user with project permission when protected.
•Public Lookup - data in public lookup tables is referenced across all projects in a division. Users can view data in these tables, but may be restricted by permissions so that only System Administrator and System Administrator can edit the data.
•Private Lookup - data in private lookup tables is typically data that does not change, or data that must be restricted to protect the system. These tables are only accessible by the System Administrator via the Design Module.
The system is designed around projects, and is highly configurable to provide the functionality required on multiple disciplinary projects.