Data model

Dette er en beskrivelse af den fysiske data model til SQLAdmin. Da værktøjet er under løbende udvikling, er der kun enkelte noter om den konceptuelle og den logiske data model.

Generelt

Da værktøjet bliver lavet i fritiden og ad hoc, arbejder jeg direkte på de fysiske datamodel.
Dette er i komplet modstrid med, hvad jeg ellers plæderer!

Data objekter

Tekst kolonner er defineret unicode, så den beskrevne implementering kan ret nemt benyttes i en given standard collation.

Alle objekter er placeret i det dertil oprettede schema [sqladmin]. Den fysiske model består af disse data objekter:

Lige nu er der ikke defineret constraints, da modellen er temmelig dynamisk (igen ad hoc).

Input objekter

I den fysiske data model er også disse input objekter:

  • database-set
  • ssdb_instance-set
  • table-set
  • windows_server-set
  • windows_share-set

Output objekter

Disse output objekter er også placeret i den fysiske data model:

  • database-get

Funktionelle objekter

Der er enkelte funktionelle objekter i den fysiske model. Disse objekter benyttes typisk internt af modellens input eller output objekter:

  • error_info-get

Alle navne er skrevet med minuskler for at være uafhængig af den givne collation { Case Insesitive (CI) | Case Sensitive (CS) }. Navgivningen er på engelsk for at gøre data modellen brugbar internationalt.


Nedenstående er en beskrivelse af systemets data objekter.

Tabellen [sqladmin].[customer]

Kunder, klienter, partnere — kært barn har mange navne. Indholdet bør komme fra CMDB.
Tabellen kan sagtens gøres mere detaljeret…

Definition

Definition af kunde tabellen [Customer].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
customer_id int Identity Primær nøgle
customer_name nvarchar( 128 )   Kunde navn
customer_description nvarchar( 256 )   Præcis beskrivelse af kunden.

Tabellen [sqladmin].[environment]

Organisation har forskellige miljøer, som mine databaser er spredt ud over. Denne tabel indeholder miljøerne samt oplysninger om dem, inklusive den vedtagne forkortelse.

Definition

Definition af tabellen [environment].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
env_id int Identity Primær nøgle
env_name nvarchar( 128 )   Miljøets navn
env_abbreviation nchar( 3 )   Den vedtagne forkortelse for miljøet
env_rank int   Miljøets rang. Jo højere værdi, jo højere rang; for eksempel kan Produktion have rangen 10, mens Sandkasse kan have rangen 0 (nul)
env_description nvarchar( 256 )   Kort og præcis beskrivelse af miljøet

Eksempel

Eksempel på indhold i tabellen [environment].
env_id env_name env_abbreviation env_rank env_description
1 Production PRD 10 Production!
2 Acceptance ACP 8 Preproduction, change acceptance
3 Test TST 4 Testing integration, functionality, performance
4 Development DEV 1 Development - group, project, system etc.
5 Sandbox SND 0 Sandbox - personal and group

Tabellen [sqladmin].[system]

En oversigt over organisationens systemer. Indholdet bør komme fra CMDB.

Definition

Definition af tabellen [system].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
system_id int Identity Primær nøgle
system_name nvarchar( 128 )   Systemets navn
system_abbreviation nchar( 8 )   Den vedtagne forkortelse for systemet. Hvis din organisation arbejder med systemnummer, skal definitionen af denne kolonne tilpasses.
system_owner nchar( 3 )   Systemets ejer – en persons initialer
system_owner2 nchar( 3 )   Den sekundære systemejer – en persons initialer. Dette er ikke en pæn konstruktion i datamodellen.
system_dba nchar( 3 )   Systemets database administrator – en persons initialer
system_dba2 nchar( 3 )   Den sekundære database administrator – en persons initialer
system_description nvarchar( 256 )   En kort, præcis og fyldestgørende beskrivelse af systemet

Tabellen [sqladmin].[security]

Denne oversigt over organisationens sikkerhedskategorier benyttes pt. til at klassificere tabeller, men kan i stedet benyttes til at klassificerer kolonner i tabeller eller materialiserede views.
Indholdet skal naturligvis være i overensstemmelse med organisationens sikkerhedspolitik.

Definition

Definition af tabellen [security].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
security_id int Identity Primær nøgle
security_name nvarchar( 128 )   Sikkerhedskategoriens navn
security_abbreviation nchar( 6 )   Den vedtagne forkortelse for sikkerhedskategorien. Skal helst være definiret i organisationens sikkerhedspolitik, så forkortelsen er genkendelig for alle.
security_rank int   Miljøets rang. Jo højere værdi, jo højere rang; f.eks kan Produktion have rangen 10, mens Sandkasse kan have rangen 0 (nul)
security_description nvarchar( 256 )   Præcis og fyldestgørende beskrivelse af den enkelte sikkerhedskategori.

Eksempel

Eksempel på indhold i tabellen [security].
security_id security_name security_abbreviation security_rank security_description
1 TopSecret TOPSEC 10 Top Secret – Adgang kræver godkendelse fra Senior Management eller det samlede Security Board.
2 Secret SECRET 8 Secret – Adgang kan gives af Senior Manager, Security Board eller Data Ejer.
3 Confidential CONFID 4 Confidential – Adgang gives af Management.
4 Restricted RSTRIC 1 Restricted – Adgang for ansatte i fast ansættelse.
5 Public PUBLIC 0 Public – Data kan distribueres uden begrænsninger.

Tabellen [sqladmin].[service_level]

Denne oversigt over organisationens serviceniveauer benyttes pt. til at klassificere databaser, men kan i stedet benyttes til at klassificerer database instanser eller Windows Server hosts.
Indholdet skal naturligvis være i overensstemmelse med organisationens serviceaftaler.

Definition

Definition af tabellen [service_level].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
service_level_id int Identity Primær nøgle
service_level_name nvarchar( 128 ) <manuel> Serviceniveauets navn
service_level_symbol nchar(1) <manuel> Det vedtagne symbol for serviceniveauet. Skal helst være defineret i organisationen, så symbolet er genkendeligt for alle.
service_level_rank int <manuel> Serviceniveauets rang. Jo højere værdi, jo højere rang; f.eks kan Guld have rangen 10, mens Bronze kan have rangen 0 (nul)
service_level_description nvarchar(256) <manuel> Præcis og fyldestgørende beskrivelse af det enkelte serviceniveau.

Eksempel

Eksempel på indhold i tabellen [service_level].
service_level_id service_level_name service_level_symbol service_level_rank service_level_description
1 Guld α 10 Højeste serviceniveau.
2 Sølv β 8 Almindeligt serviceniveau for Produktion.
3 Bronze γ 6 Lavt serviceniveau.
4 uspecificeret 0 Serviceniveau er uspecificeret, typisk Test.

Tabellen [sqladmin].[windows_server]

Kun Windows Server hosts, som har SQL Server installeret er interessante. Indholdet skal være automatisk opdateret.

Definition

Definiton af tabellen [windows_server].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
windows_id int Identity Primær nøgle
windows_name nvarchar( 128 )   Windows Server fulde navn, inklusive fuld domænesti.
windows_ip4 nchar( 15 )   Windows Server IP v4 adresse med tre cifre i hver oktet.
windows_version nvarchar( 128 )   Windows Server fulde version.
windows_cpu__kernel_count int   Antal installerede CPU kerner.
windows_cpu_socket_used_count int   Antal CPU sokler i brug.
windows_cpu_socket_total_count int   Totalt antal CPU sokler i maskinen.
windows_is_virtual bit   Windows Server er installeret virtuelt.
windows_in_use bit   Windows Server er i brug. Server kan registreres før installation
windows_description nvarchar( 256 )   Præcis og fyldestgørende beskrivelse af Windows Server.

Tabellen [sqladmin].[windows_share]

Når du ikke har adgang til SQL Server Management Studio eller Remote Desktop, vil du være glad for en oversigt over dine muligheder for at kigge i servernes diske!

Definition

Definition af tabellen [windows_share].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
share_id int Identity Primær nøgle.
share_name nvarchar( 128 )   Disk Share navn.
share_path nvarchar( 256 )   Fulde Disk Share sti.
share_description nvarchar( 256 )   Præcis beskrivelse af Disk Share og dets generelle indhold.
windows_id int   Fremmed nøgle til registreret Windows Server.

Tabellen [sqladmin].[ssdb_instance]

Alle dine SQL Server database instanser, også de default, som registreres med „.“ (dot).

Definition

Definiton af tabellen [ssdb_instance].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
ssdb_id int Identity Primær nøgle.
ssdb_name nvarchar(128) T–SQL: SERVERPROPERTY('InstanceName') SQL Server instans navn.
ssdb_audit_level nvarchar(128) SMO: Server.AuditLevel
Facet: Server.AuditLevel
SQL Server instansens revisionsniveau.
ssdb_maxmem int   Den fastsatte grænse for SQL Server instansens allokering af memory (RAM).
ssdb_backup_directory nvarchar(256) Facet: Server.BackupDirectory SQL Server database instansens standard backup folder.
ssdb_build_clr_version int T–SQL: SERVERPROPERTY('BuildClrVersion') Microsoft .NET versionen som SQL Server database instansen blev bygget med.
ssdb_collation_id int T–SQL: SERVERPROPERTY('CollationID') SQL Server instans collation identitet.
ssdb_collation_name nvarchar(128) T–SQL: SERVERPROPERTY('Collation') SQL Server instans collation med fuldt beskrivende streng.
ssdb_collation_locale_id int T–SQL: SERVERPROPERTY('LCID') Windows locale indentitet for SQL Server instans collation.
ssdb_comparison_style int T–SQL: SERVERPROPERTY('ComparisonStyle') Windows comparison style for SQL Server instansens collation.
ssdb_edition_id int T–SQL: SERVERPROPERTY('EditionID') SQL Server instans udgave identitet.
ssdb_edition_name nvarchar(128) T–SQL: SERVERPROPERTY('Edition') SQL Server instans udgave. For eksempel Enterprise.
ssdb_engine_edition int T–SQL: SERVERPROPERTY('EngineEdition') SQL Server instans udgave. For eksempel Enterprise.
ssdb_errorlog_count nvarchar(256) SMO: Server.NumberOfLogFiles Antal filer til SQL Server instansens errorlog.
ssdb_errorlog_directory nvarchar(256) SMO: Server.ErrorLogPath SQL Server instansens standard errorlog folder.
ssdb_file_directory nvarchar(256) SMO: Server.DefaultFile
Facet: Server.DefaultFile
SQL Server instansens standard datafil folder.
ssdb_is_clustered int T–SQL: SERVERPROPERTY('IsCLustered') Angiver om SQL Server instansen er sat op i et failover cluster.
ssdb_is_fulltext_installed int T–SQL: SERVERPROPERTY('IsFullTextInstalled') Angiver om SQL Server instansen har FullText installeret.
ssdb_is_integrated_security_only int T–SQL: SERVERPROPERTY('IsIntegratedSecurityOnly') Angiver om SQL Server instansen er sat til Windows Authentication modsat Mixed.
ssdb_is_single_user int T–SQL: SERVERPROPERTY('IsSingleUser') Angiver om SQL Server instansen er i Single User tilstand.
ssdb_license_count int T–SQL: SERVERPROPERTY('NumLicenses') Antal SQL Server instansens klient licenser.
ssdb_license_type nvarchar(128) T–SQL: SERVERPROPERTY('LicenseType') SQL Server instansens licens.
ssdb_log_directory nvarchar(256) SMO: Server.DefaultLog
Facet: Server.DefaultLog
SQL Server instansens standard transaktionslogfil folder.
ssdb_master_data_directory nvarchar(256) SMO: Server.MasterDBPath Folder navn for SQL Server instansens master database data fil.
ssdb_master_log_directory nvarchar(256) SMO: Server.MasterDBLogPath Folder navn for SQL Server instansens master database log fil.
ssdb_process_id int T–SQL: SERVERPROPERTY('ProcessID') Proces nummer for SQL Server instansens service (sqlservr.exe).
ssdb_version nvarchar(128) T–SQL: SERVERPROPERTY('ProductVersion') SQL Server instans fuld version.
ssdb_service_account_name nvarchar(128) Facet: Server.ServiceAccount SQL Server instans fuld version.
ssdb_tcp int   SQL Server instans TCP port nummer.
ssdb_description nvarchar(256)   Fyldestgørende beskrivelse af SQL Server instans og dens indhold.
windows_id int   Fremmed nøgle til Windows Server.
env_id int   Fremmed nøgle til miljøangivelse.

Tabellen [sqladmin].[database]

Alle databaser — også i Test. Indholdet er naturligvis opdateret automatisk.

Definition

Definition af tabellen [database].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
database_id int Identity Primær nøgle.
database_name nvarchar(128)   Database navn.
database_collation nvarchar(128)   Database collation.
database_recovery_model nchar(10)   Database Recovery Model, for eksempel Full.
database_owner nvarchar(128)   Database ejer, login navn.
database_backup_full_last datetime   Tidspunkt for nyeste fulde backup af databasen.
database_backup_diff_last datetime   Tidspunkt for nyeste differentielle backup af databasen.
database_backup_log_last datetime   Tidspunkt for nyeste log backup af databasen.
database_create_time datetime   Dato for databasens oprettelse i den givne instans.
database_create_person nvarchar(128)   Personen som oprettede databasen i den givne instans.
database_vlf_count int   Antal Virtual Log Files (VLF) i databasens transaktionslogfil(–er).
database_homemade bit   Angivelse af om databasen er udviklet af organisationen selv.
database_update_time datetime T–SQL: GETDATE() Tidspunkt for sidste opdatering af databasens registrering i SQLAdmin.
database_update_user nvarchar(128) T–SQL: SUSER_SNAME() Bruger som sidst opdaterede registreringen af databasen i SQLAdmin.
database_description nvarchar(max)   Beskrivelse af databasen.
ssdb_id int   Fremmed nøgle til SQL Server instansen som indeholder database.
ssdb_id_mirror int   Fremmed nøgle til SQL Server instans som indeholder spejling af database.
ssdb_id_witness int   Fremmed nøgle til SQL Server instans som indeholder vidne database for databasens spejling.
system_id int   Fremmed nøgle til systemet, som databasen tilhører.
customer_id int   Fremmed nøgle til databasens kunde.

Tabellen [sqladmin].[table]

Alle tabeller i alle miljøer. Indholdet er naturligvis opdateret automatisk.

Definition

Definition af tabellen [table].
Kolonne navn Kolonne type Kolonne kilde Kolonne beskrivelse
table_id int Identity Primær nøgle.
table_name nvarchar( 128 )   Tabel navn.
table_schema nvarchar( 128 )   Tabellens schema.
table_description nvarchar( 256 )   Beskrivelse af tabellen hentet fra tabeldefinitionens udvidede egenskaber.
database_id int   Fremmed nøgle til databasen som tabellen er placeret i.
security_id int   Fremmed nøgle til Sikkerhedskategori.

Niels Grove-Rasmussen Opdateret 01-06-2010 22:38:53.
Ting Ta'r Tid! Hentet 17-11-2017 22:00:38.