📐 Sistēmu modelēšana - vizuāli piemēri
Septiņas datu un sistēmu modelēšanas metodes ar diagrammām. Piemēri ir izdomāti, paredzēti mācībām.
Entītiju un attiecību diagramma
ERD - Library Domain (Member · Loan · Book)
Kad lietot
Pašā sākumā, kad jāsaprot, kādas lietas (entītijas) sistēmā ir un kā tās savā starpā saistītas - vēl pirms tabulu veidošanas.
Saistīts standarts
Chen ERD (1976), Crow's Foot notation, IDEF1X. Bieži ievada datu vārdnīcas (data dictionary).
Ierobežojumi
Nerāda ne gala tabulas, ne biznesa likumus. “Daudzi pret daudziem” saites vienmēr jāsadala ar starptabulu.
Objektorientētā klašu diagramma
UML Class - Vehicle Hierarchy
Kad lietot
Projektējot objektorientētu kodu - lai redzētu klases, to laukus, metodes un mantošanu vēl pirms rakstīšanas.
Saistīts standarts
OMG UML 2.5.1. Ietver arī sequence, state, activity un deployment diagrammas.
Drošības piezīme
private/protected nav drošības siena - kods tos var apiet (piem., Java reflection). Īsta drošības robeža ir atsevišķi procesi vai servisi.
Trīs slāņu datu modeļa transformācija
Conceptual → Logical → Physical (Inventory)
Kad lietot
Lai pakāpeniski no biznesa skata nonāktu līdz gatavai datubāzes shēmai. Katrs slānis paredzēts citam lasītājam - biznesam, arhitektam, DBA.
Saistīts standarts
ANSI/SPARC three-schema architecture (1975). Mūsdienās: dbt staging→intermediate→mart slāņi seko līdzīgam principam.
Ierobežojumi
Mazos projektos konceptuālo slāni bieži izlaiž - bet tieši tas neļauj biznesa loģikai iestrēgt datubāzes shēmā.
Datu plūsmas diagramma · 1. līmenis
DFD - Restaurant Order (with trust boundary)
Kad lietot
Lai redzētu, kā dati plūst starp cilvēkiem un sistēmām un kur tie glabājas. Tas ir pamats draudu modelēšanai.
Saistīts standarts
Yourdon/DeMarco notation. Mūsdienās - Microsoft Threat Modeling Tool, OWASP pytm, draw.io DFD šablons.
Drošības piezīme
Katra “uzticības robeža” ir vieta, kur jāpārbauda, kas tu esi (autentifikācija), ko drīksti (autorizācija) un vai dati ir derīgi (validācija). No tās sākas STRIDE.
Relāciju normalizācija · Unnormalized → 3NF
Normalization - Movie Rentals
Kad lietot
Sistēmās, kur datus bieži maina un dublēšanās rada kļūdas (OLTP). Datu noliktavās (OLAP) bieži dara pretējo - apzināti dublē ātruma dēļ.
Saistīts standarts
Codd, 1NF–6NF (1970+). Boyce-Codd Normal Form (BCNF) - stingrāka par 3NF. Praktiski apstājas pie 3NF/BCNF.
Ierobežojumi
Par daudz normalizācijas = daudz JOIN = lēnāka sistēma. Praksē sāk ar 3NF un denormalizē tikai tad, ja mērījumi to prasa.
C4 arhitektūras modelis · 2. līmenis (Container)
C4 Container - Weather Forecast Platform
Kad lietot
Lai aprakstītu sistēmas arhitektūru augstā līmenī. “Container” līmenis rāda atsevišķi palaižamās daļas - servisus, datubāzes, ārējās sistēmas.
Saistīts standarts
Simon Brown, c4model.com. arc42 ietvars (sec. 5 = Building Block View) bieži lieto C4 līmeņu vietā.
Drošības piezīme
Sistēmas robeža ir pirmā vieta, kur pieraksta, kā notiek autentifikācija, kur beidzas TLS un kurā sistēmā glabājas audita žurnāli.
Threat modeling · Microsoft, 1999
STRIDE - Per-element Threat Categories
| DFD elements | S | T | R | I | D | E |
|---|---|---|---|---|---|---|
| External Entity (user, sistēma ārpus robežas) | ✓ | - | ✓ | - | - | - |
| Process (services, lambdas, mikropakalpojums) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Data Store (DB, faili, S3 bucket) | - | ✓ | ✓ | ✓ | ✓ | - |
| Data Flow (HTTP/TCP, queue, IPC) | - | ✓ | - | ✓ | ✓ | - |
Kad lietot
Pēc DFD - iziet cauri katram elementam un pārbaudīt, kuri sešu veidu draudi (STRIDE) tam der. Katram atrastam draudam pieraksta, kā to mazināt.
Saistīts standarts
Microsoft Threat Modeling Tool, OWASP pytm. MITRE ATT&CK papildina ar reālajām taktikām. PASTA, LINDDUN - citi piegājieni.
Drošības piezīme
STRIDE neaptver biznesa loģikas kļūdas, kriptogrāfijas vājumus vai piegādes ķēdi. Tāpēc to bieži apvieno ar OWASP Top 10 un MITRE ATT&CK.