Overview

<< 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:

System_Software

System_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).

Server

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.

Database

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.

Permissions

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

Project access can be limited to specific users through the project permissions.  Once one user is added to the project permissions the project is protected to all other users, with the exception of users in the Division Administrator or System Administrator roles.  Any user with access to a project can assign other users to the project permissions.

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

noteNote

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.  

Tables

As the CORE-GS database is designed around projects, most tables are linked to the PROJECT table.

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.

Divisions

An additional level of separation is provided by divisions.  A division maintains projects, lookup lists and templates completely separate from other divisions.

System_Structure

Projects

The system is designed around projects, and is highly configurable to provide the functionality required on multiple disciplinary projects.