{"id":11073,"date":"2026-06-03T13:38:37","date_gmt":"2026-06-03T05:38:37","guid":{"rendered":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"modified":"2026-06-03T13:38:37","modified_gmt":"2026-06-03T05:38:37","slug":"comprehensive-guide-to-uml-class-diagrams-diagram-as-code","status":"publish","type":"post","link":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","title":{"rendered":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod)"},"content":{"rendered":"<blockquote data-nodeid=\"1675\">\n<p data-nodeid=\"1676\">\ud83d\udca1\u00a0<strong data-nodeid=\"2062\">Uwaga<\/strong>: Wszystkie diagramy s\u0105 dost\u0119pne w formacie<strong data-nodeid=\"2063\">PlantUML<\/strong> format. Mo\u017cesz natychmiast renderowa\u0107 je za pomoc\u0105<a href=\"http:\/\/vpascode.com\">Visual Paradigm Diagram jako kod<\/a>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1696\"\/>\n<h2 data-nodeid=\"1697\">\ud83d\udd39 Wprowadzenie do UML<\/h2>\n<h3 data-nodeid=\"1698\">Czym jest UML?<\/h3>\n<blockquote data-nodeid=\"1699\">\n<p data-nodeid=\"1700\"><em data-nodeid=\"2097\">\u201eJ\u0119zyk modelowania zintegrowanego (UML) to og\u00f3lnego przeznaczenia j\u0119zyk wizualnego modelowania, u\u017cywany do okre\u015blania, wizualizowania, konstruowania i dokumentowania artefakt\u00f3w systemu oprogramowania.\u201d<\/em>\u00a0\u2014 Rumbaugh et al., 1999<\/p>\n<\/blockquote>\n<p data-nodeid=\"1701\"><strong data-nodeid=\"2101\">Kluczowe cechy:<\/strong><\/p>\n<ul data-nodeid=\"1702\">\n<li data-nodeid=\"1703\">\n<p data-nodeid=\"1704\">\ud83c\udfa8\u00a0<strong data-nodeid=\"2107\">Notacja wizualna<\/strong>: Graficzna sk\u0142adnia do modelowania system\u00f3w<\/p>\n<\/li>\n<li data-nodeid=\"1705\">\n<p data-nodeid=\"1706\">\ud83d\udcd0\u00a0<strong data-nodeid=\"2113\">Standardowy<\/strong>: Standard przyj\u0119ty przez OMG od 1997 roku<\/p>\n<\/li>\n<li data-nodeid=\"1707\">\n<p data-nodeid=\"1708\">\ud83d\udd27\u00a0<strong data-nodeid=\"2119\">J\u0119zyk, a nie metoda<\/strong>: Definiuje notacj\u0119, a nie proces<\/p>\n<\/li>\n<li data-nodeid=\"1709\">\n<p data-nodeid=\"1710\">\ud83c\udf10\u00a0<strong data-nodeid=\"2125\">Szeroki zakres<\/strong>: Modeluje procesy biznesowe, funkcje systemu, struktury kodu i schematy baz danych<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1711\">Czym UML NIE JEST<\/h3>\n<table data-nodeid=\"1713\">\n<thead data-nodeid=\"1714\">\n<tr data-nodeid=\"1715\">\n<th data-nodeid=\"1717\">Pomy\u0142ka<\/th>\n<th data-nodeid=\"1718\">Rzeczywisto\u015b\u0107<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1721\">\n<tr data-nodeid=\"1722\">\n<td data-nodeid=\"1723\">Metodologia rozwoju<\/td>\n<td data-nodeid=\"1724\">Po prostu notacja modelowania<\/td>\n<\/tr>\n<tr data-nodeid=\"1725\">\n<td data-nodeid=\"1726\">J\u0119zyk programowania<\/td>\n<td data-nodeid=\"1727\">Abstrakcyjny j\u0119zyk specyfikacji<\/td>\n<\/tr>\n<tr data-nodeid=\"1728\">\n<td data-nodeid=\"1729\">Tylko do programowania obiektowego<\/td>\n<td data-nodeid=\"1730\">Stosowalny do baz danych, modelowania biznesowego itp.<\/td>\n<\/tr>\n<tr data-nodeid=\"1731\">\n<td data-nodeid=\"1732\">Dok\u0142adnie zdefiniowany we wszystkich aspektach<\/td>\n<td data-nodeid=\"1733\">W wersjach wczesnych pozostaj\u0105 pewne niejasno\u015bci semantyczne<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1734\"\/>\n<h2 data-nodeid=\"1735\">\ud83d\udd39 Historia i standaryzacja<\/h2>\n<h3 data-nodeid=\"1736\">Chronologia rozwoju<\/h3>\n<p id=\"xFCmEsT\"><img alt=\"The Evolution of Unified Modeling Language (UML)\" class=\"alignnone wp-image-12647 size-full\" decoding=\"async\" height=\"658\" loading=\"lazy\" sizes=\"auto, (max-width: 1208px) 100vw, 1208px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png 1208w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-300x163.png 300w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-1024x558.png 1024w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-768x418.png 768w\" width=\"1208\"\/><\/p>\n<pre data-nodeid=\"1737\"><code>1965\u20131970: Simula-67 (pierwszy j\u0119zyk obiektowy)\r\n     \u2193\r\n1970\u20131980: Smalltalk w Xerox PARC\r\n     \u2193\r\n1984: C++ wprowadzony przez Bjarne Stroustrupa\r\n     \u2193\r\n1988\u20131992: Rozprzestrzenianie si\u0119 metod obiektowych (Booch, OMT, OOSE itp.)\r\n     \u2193\r\n1994: Rumbaugh do\u0142\u0105cza do Boocha w Rational \u2192 zaczyna si\u0119 unifikacja\r\n     \u2193\r\n1995: UML 0.8 \u2013 projekt wydany\r\n     \u2193\r\n1996: OMG wydaje zaproszenie do ofert na standardowy j\u0119zyk modelowania\r\n     \u2193\r\n1997: UML 1.1 przyj\u0119ty przez OMG (14 listopada)\r\n     \u2193\r\n2000: UML 1.3 oficjalnie opublikowany\r\n     \u2193\r\n2003: UML 1.5 opublikowany; struktura UML 2.0 zaakceptowana\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1738\">Dlaczego UML wygra\u0142 \u201eWojn\u0119 metod\u201d<\/h3>\n<ul data-nodeid=\"1739\">\n<li data-nodeid=\"1740\">\n<p data-nodeid=\"1741\">Zintegrowa\u0142o ponad 50 konkurencyjnych metod programowania obiektowego w jedn\u0105 standardow\u0105<\/p>\n<\/li>\n<li data-nodeid=\"1742\">\n<p data-nodeid=\"1743\">Wspierane przez najwi\u0119kszych graczy bran\u017cowych (IBM, Microsoft, Oracle, HP)<\/p>\n<\/li>\n<li data-nodeid=\"1744\">\n<p data-nodeid=\"1745\">Zapewni\u0142o mechanizmy rozszerzania do dostosowania<\/p>\n<\/li>\n<li data-nodeid=\"1746\">\n<p data-nodeid=\"1747\">Sta\u0142o si\u0119 standardem de facto dla modelowania obiektowego<\/p>\n<\/li>\n<\/ul>\n<blockquote data-nodeid=\"1748\">\n<p data-nodeid=\"1749\">\u26a0\ufe0f\u00a0<strong data-nodeid=\"2156\">Krytyczna perspektywa<\/strong>: Niekt\u00f3rzy twierdz\u0105, \u017ce UML to \u201epotworny j\u0119zyk zaprojektowany przez komitet\u201d z nieprecyzyjn\u0105 semantyk\u0105 w wersjach wczesnych.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1750\"\/>\n<h2 data-nodeid=\"1751\">\ud83d\udd39 Klasy i atrybuty<\/h2>\n<h3 data-nodeid=\"1752\">Struktura klasy<\/h3>\n<p data-nodeid=\"1753\">Klasa UML jest przedstawiana jako prostok\u0105t z maksymalnie trzema kom\u00f3rkami.<\/p>\n<p id=\"zEMvvmf\"><img alt=\"\" class=\"alignnone size-full wp-image-12648\" decoding=\"async\" height=\"183\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbbe222b36.png\" width=\"258\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1754\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  firstName: String\r\n  lastName: String\r\n  email[0..1]: String\r\n  encryptedPW: String\r\n  + totalPoints(): Integer\r\n  + setPassword(pw: String)\r\n  + checkPW(pw: String): Boolean\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1755\">Sk\u0142adnia deklaracji atrybutu<\/h3>\n<pre data-nodeid=\"1756\"><code>[widoczno\u015b\u0107] nazwa[mno\u017cno\u015b\u0107]: Typ [= warto\u015b\u0107 domy\u015blna] {w\u0142a\u015bciwo\u015bci}\r\n<\/code><\/pre>\n<p data-nodeid=\"1757\"><strong data-nodeid=\"2164\">Przyk\u0142ady PlantUML:<br \/>\n<\/strong><img alt=\"\" class=\"alignnone size-full wp-image-12649\" decoding=\"async\" height=\"134\" loading=\"lazy\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png 310w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555-300x130.png 300w\" width=\"310\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1758\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  + ProgramOfStudy[0..2]: String = \"MIS\"\r\n  - encryptedPW: String {frozen}\r\n  # internalID: Integer\r\n  ~ packagePrivateData: String\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1759\">Zakres atrybutu<\/h3>\n<ul data-nodeid=\"1760\">\n<li data-nodeid=\"1761\">\n<p data-nodeid=\"1762\"><strong data-nodeid=\"2170\">Zakres instancji<\/strong>\u00a0(domy\u015blne): Ka\u017cda instancja ma w\u0142asn\u0105 warto\u015b\u0107<\/p>\n<\/li>\n<li data-nodeid=\"1763\">\n<p data-nodeid=\"1764\"><strong data-nodeid=\"2175\">Zakres klasy<\/strong>\u00a0(statyczne): Jedna warto\u015b\u0107 wsp\u00f3\u0142dzielona przez wszystkie instancje<\/p>\n<\/li>\n<\/ul>\n<p id=\"IpqQSPg\"><img alt=\"\" class=\"alignnone size-full wp-image-12650\" decoding=\"async\" height=\"85\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc920bfbd.png\" width=\"227\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1765\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  name: String\r\n  {static} count: Integer\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1766\">Klucze w UML \u26a0\ufe0f<\/h3>\n<p data-nodeid=\"1767\"><strong data-nodeid=\"2181\">Wa\u017cyne ograniczenie<\/strong>: UML nie ma wbudowanego poj\u0119cia kluczy. U\u017cyj stereotyp\u00f3w lub warto\u015bci oznacze\u0144 jako obej\u015bcia.<\/p>\n<p id=\"hLmsAEe\"><img alt=\"\" class=\"alignnone size-full wp-image-12651\" decoding=\"async\" height=\"117\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbcd8087f6.png\" width=\"184\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1768\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {pk} id: Integer\r\n  {ak1} email: String\r\n  - name: String\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1769\"\/>\n<h2 data-nodeid=\"1770\">\ud83d\udd39 Powi\u0105zania i relacje<\/h2>\n<h3 data-nodeid=\"1771\">Podstawowe powi\u0105zanie i wielko\u015b\u0107<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAVeavgKVtLBhayt8vfEQb08q50000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1772\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise\r\nclass Chapter\r\nExercise \"0..*\" -- \"1..1\" Chapter : Nale\u017cyDo\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAVeavgKVtLBhayt8vfEQb08q50000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1773\"><em data-nodeid=\"2190\">Interpretacja<\/em>: Ka\u017cde \u0107wiczenie nale\u017cy do dok\u0142adnie jednego rozdzia\u0142u; rozdzia\u0142 mo\u017ce zawiera\u0107 zero lub wi\u0119cej \u0107wicze\u0144.<\/p>\n<h3 data-nodeid=\"1774\">Nazwy r\u00f3l<\/h3>\n<p data-nodeid=\"1775\">Zamiast (lub dodatkowo do) nazw powi\u0105za\u0144, u\u017cyj nazw r\u00f3l na ko\u0144cach powi\u0105za\u0144:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bK90KM9oVdbUPhO-c9MIM9wSoClba9gN0ZGU0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1776\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Person\r\nclass Company\r\nPerson \"0..*\" --&gt; \"0..1\" Company : Pracownik\/Pracodawca\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bK90KM9oVdbUPhO-c9MIM9wSoClba9gN0ZGU0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1777\"><em data-nodeid=\"2203\">Realizacja<\/em>: The\u00a0<code data-backticks=\"1\" data-nodeid=\"2197\">Osoba<\/code>\u00a0tabela mia\u0142aby klucz obcy\u00a0<code data-backticks=\"1\" data-nodeid=\"2199\">pracodawca<\/code>\u00a0odsy\u0142aj\u0105cy do\u00a0<code data-backticks=\"1\" data-nodeid=\"2201\">Firma<\/code>.<\/p>\n<h3 data-nodeid=\"1778\">Dost\u0119pno\u015b\u0107<\/h3>\n<p data-nodeid=\"1779\">Okre\u015bl kierunek przemieszczania si\u0119 za pomoc\u0105 strza\u0142ek:<\/p>\n<p id=\"akPRCei\"><img alt=\"\" class=\"alignnone size-full wp-image-12652\" decoding=\"async\" height=\"170\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd4c87489.png\" width=\"104\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1780\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise\r\nclass Chapter\r\nExercise \"0..*\" --&gt; \"1\" Chapter\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1781\">\n<li data-nodeid=\"1782\">\n<p data-nodeid=\"1783\">Strza\u0142ka wskazuje kierunek efektywnego przemieszczania<\/p>\n<\/li>\n<li data-nodeid=\"1784\">\n<p data-nodeid=\"1785\">W OODB: implementowane jako wska\u017anik tylko w jednym kierunku<\/p>\n<\/li>\n<li data-nodeid=\"1786\">\n<p data-nodeid=\"1787\">W RDBMS: po\u0142\u0105czenia dzia\u0142aj\u0105 w obu kierunkach niezale\u017cnie<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1788\">Typy kolekcji z\u00a0<code data-backticks=\"1\" data-nodeid=\"2210\">{uporz\u0105dkowane}<br \/>\n<\/code><\/h3>\n<p id=\"eKzRwWF\"><img alt=\"\" class=\"alignnone size-full wp-image-12653\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd8d068d1.png\" width=\"129\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1789\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter \"1\" -- \"0..*\" Exercise : {ordered}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1790\">\n<li data-nodeid=\"1791\">\n<p data-nodeid=\"1792\"><code data-backticks=\"1\" data-nodeid=\"2211\">{uporz\u0105dkowane}<\/code>: Zachowaj kolejno\u015b\u0107 (u\u017cyj listy, a nie zbioru)<\/p>\n<\/li>\n<li data-nodeid=\"1793\">\n<p data-nodeid=\"1794\">Realizacja w RDBMS: Dodaj atrybut numeru kolejno\u015bci<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-sql\" data-nodeid=\"1795\"><code data-language=\"sql\">\u0106WICZENIA (\r\n    id PRIMARY KEY,\r\n    chapter_id ODWO\u0141UJE SI\u0118 DO ROZDZIA\u0141Y,\r\n    sort_no INTEGER,\r\n    UNIQUE (chapter_id, sort_no)\r\n)\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1796\">Wyr\u00f3\u017cniki<\/h3>\n<p data-nodeid=\"1797\">Wyr\u00f3\u017cniki dziel\u0105 powi\u0105zane obiekty przy u\u017cyciu mechanizmu przypominaj\u0105cego klucz:<\/p>\n<p id=\"kMuWSIi\"><img alt=\"\" class=\"alignnone size-full wp-image-12654\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbdce6a835.png\" width=\"206\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPdPYINwHdPr2NhwLWcTUIMewo3o7rBmKe3q0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1798\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter \"1\" --&gt; \"0..1\" Exercise : &lt;&lt;qualifikator&gt;&gt; no: Integer\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPdPYINwHdPr2NhwLWcTUIMewo3o7rBmKe3q0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1799\"><em data-nodeid=\"2220\">Znaczenie<\/em>: Dla danego rozdzia\u0142u i numeru \u0107wiczenia zwracane jest co najwy\u017cej jedno \u0107wiczenie.<\/p>\n<h3 data-nodeid=\"1800\">Klasy po\u0142\u0105cze\u0144<\/h3>\n<p data-nodeid=\"1801\">Gdy po\u0142\u0105czenie ma atrybuty lub operacje:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhWN5TArABaZEBK-7I-Jcb9PdvUGhLl5mA2Yc99QbM2Yv04iGhoC_CAocsKl3CAqbDJotYvQhbvO8Qfw1aeAUdfQIWgmjZmGnMi5B8JLGeogygpppIMfMO1pG9ReUU7i8vo888HpcavgK07Gy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1802\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student\r\nclass Exercise\r\nclass Solution {\r\n  date: Date\r\n  points: Integer\r\n}\r\nStudent \"0..*\" -- \"0..*\" Exercise : ma rozwi\u0105zane\r\nSolution .. Student\r\nSolution .. Exercise\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhWN5TArABaZEBK-7I-Jcb9PdvUGhLl5mA2Yc99QbM2Yv04iGhoC_CAocsKl3CAqbDJotYvQhbvO8Qfw1aeAUdfQIWgmjZmGnMi5B8JLGeogygpppIMfMO1pG9ReUU7i8vo888HpcavgK07Gy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1803\">\n<li data-nodeid=\"1804\">\n<p data-nodeid=\"1805\">Jeden\u00a0<code data-backticks=\"1\" data-nodeid=\"2224\">Rozwi\u0105zanie<\/code>\u00a0obiekt na par\u0119 (Student, \u0107wiczenie)<\/p>\n<\/li>\n<li data-nodeid=\"1806\">\n<p data-nodeid=\"1807\">Wymusza: ten sam student nie mo\u017ce przes\u0142a\u0107 dw\u00f3ch rozwi\u0105za\u0144 dla tego samego \u0107wiczenia<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1808\">Kompozycja vs. Agregacja<\/h3>\n<table data-nodeid=\"1810\">\n<thead data-nodeid=\"1811\">\n<tr data-nodeid=\"1812\">\n<th data-nodeid=\"1814\">Cecha<\/th>\n<th data-nodeid=\"1815\">Kompozycja (<code data-backticks=\"1\" data-nodeid=\"2230\">*--<\/code>)<\/th>\n<th data-nodeid=\"1816\">Agregacja (<code data-backticks=\"1\" data-nodeid=\"2233\">o--<\/code>)<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1820\">\n<tr data-nodeid=\"1821\">\n<td data-nodeid=\"1822\">Symbol<\/td>\n<td data-nodeid=\"1823\">Czarny romb<\/td>\n<td data-nodeid=\"1824\">Bia\u0142y romb<\/td>\n<\/tr>\n<tr data-nodeid=\"1825\">\n<td data-nodeid=\"1826\">Zwi\u0105zek<\/td>\n<td data-nodeid=\"1827\">Cz\u0119\u015b\u0107-ca\u0142o\u015b\u0107, silna w\u0142asno\u015b\u0107<\/td>\n<td data-nodeid=\"1828\">Cz\u0119\u015b\u0107-ca\u0142o\u015b\u0107, s\u0142abe odwo\u0142anie<\/td>\n<\/tr>\n<tr data-nodeid=\"1829\">\n<td data-nodeid=\"1830\">Cykl \u017cycia<\/td>\n<td data-nodeid=\"1831\">Cz\u0119\u015bci usuni\u0119te razem z ca\u0142o\u015bci\u0105<\/td>\n<td data-nodeid=\"1832\">Cz\u0119\u015bci niezale\u017cne<\/td>\n<\/tr>\n<tr data-nodeid=\"1833\">\n<td data-nodeid=\"1834\">Mno\u017cno\u015b\u0107<\/td>\n<td data-nodeid=\"1835\">1 lub 0..1 po stronie ca\u0142o\u015bci<\/td>\n<td data-nodeid=\"1836\">Dowolny<\/td>\n<\/tr>\n<tr data-nodeid=\"1837\">\n<td data-nodeid=\"1838\">Mapowanie do RDBMS<\/td>\n<td data-nodeid=\"1839\"><code data-backticks=\"1\" data-nodeid=\"2248\">ON DELETE CASCADE<\/code><\/td>\n<td data-nodeid=\"1840\">Standardowy klucz obcy<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5x_pSWlogokIiH8JAVAmg7TEBKjCJmGeTKlDIW5O30000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1841\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter *-- \"0..*\" Exercise : Kompozycja\r\nChapter o-- \"0..*\" Exercise : Agregacja\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5x_pSWlogokIiH8JAVAmg7TEBKjCJmGeTKlDIW5O30000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1842\"\/>\n<h2 data-nodeid=\"1843\">\ud83d\udd39 Operacje i metody<\/h2>\n<h3 data-nodeid=\"1844\">Sk\u0142adnia deklaracji operacji<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1845\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Calculator {\r\n  + getTotal(studID: Integer, inclExtra: Boolean = true): Float {isQuery=true}\r\n  + {static} getInstance(): Calculator\r\n  + {constructor} Calculator(initialValue: Float)\r\n  - recalculate(): void\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1846\"><strong data-nodeid=\"2256\">Specyfikacja parametr\u00f3w<\/strong>:<\/p>\n<pre data-nodeid=\"1847\"><code>[kierunek] nazwa: Typ [= warto\u015b\u0107Domy\u015blna]\r\n<\/code><\/pre>\n<ul data-nodeid=\"1848\">\n<li data-nodeid=\"1849\">\n<p data-nodeid=\"1850\">Kierunki:\u00a0<code data-backticks=\"1\" data-nodeid=\"2258\">wej\u015bcie<\/code>\u00a0(domy\u015blne),\u00a0<code data-backticks=\"1\" data-nodeid=\"2260\">wyj\u015bcie<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2262\">wej\u015bcie\/wyj\u015bcie<\/code><\/p>\n<\/li>\n<li data-nodeid=\"1851\">\n<p data-nodeid=\"1852\">Warto\u015bci domy\u015blne umo\u017cliwiaj\u0105 parametry opcjonalne<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1853\">Specjalne stereotypy operacji<\/h3>\n<table data-nodeid=\"1855\">\n<thead data-nodeid=\"1856\">\n<tr data-nodeid=\"1857\">\n<th data-nodeid=\"1859\">Stereotyp<\/th>\n<th data-nodeid=\"1860\">Cel<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1863\">\n<tr data-nodeid=\"1864\">\n<td data-nodeid=\"1865\"><code data-backticks=\"1\" data-nodeid=\"2267\">{isQuery=true}<\/code><\/td>\n<td data-nodeid=\"1866\">Gwarantuje brak modyfikacji stanu<\/td>\n<\/tr>\n<tr data-nodeid=\"1867\">\n<td data-nodeid=\"1868\"><code data-backticks=\"1\" data-nodeid=\"2269\">{konstruktor}<\/code><\/td>\n<td data-nodeid=\"1869\">Tworzy i inicjuje nowe instancje<\/td>\n<\/tr>\n<tr data-nodeid=\"1870\">\n<td data-nodeid=\"1871\"><code data-backticks=\"1\" data-nodeid=\"2271\">{statyczny}<\/code><\/td>\n<td data-nodeid=\"1872\">Operacja na poziomie klasy, brak implikowanego<code data-backticks=\"1\" data-nodeid=\"2273\">self<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1873\">Operacje w kontek\u015bcie bazy danych<\/h3>\n<p data-nodeid=\"1874\"><strong data-nodeid=\"2279\">Kulturowy konflikt<\/strong>: OO podkre\u015bla hermetyzacj\u0119; relacyjny podkre\u015bla bezpo\u015bredni dost\u0119p do danych.<\/p>\n<p data-nodeid=\"1875\"><strong data-nodeid=\"2284\">Strategie implementacji<\/strong>:<\/p>\n<table data-nodeid=\"1876\">\n<thead data-nodeid=\"1877\">\n<tr data-nodeid=\"1878\">\n<th data-nodeid=\"1880\">Typ operacji<\/th>\n<th data-nodeid=\"1881\">Implementacja RDBMS<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1884\">\n<tr data-nodeid=\"1885\">\n<td data-nodeid=\"1886\">Prosty dost\u0119p do atrybutu<\/td>\n<td data-nodeid=\"1887\">Bezpo\u015bredni SELECT\/UPDATE<\/td>\n<\/tr>\n<tr data-nodeid=\"1888\">\n<td data-nodeid=\"1889\">Wyprowadzony atrybut (bez parametr\u00f3w)<\/td>\n<td data-nodeid=\"1890\">Widok bazy danych<\/td>\n<\/tr>\n<tr data-nodeid=\"1891\">\n<td data-nodeid=\"1892\">Wyprowadzony atrybut (z parametrami)<\/td>\n<td data-nodeid=\"1893\">Procedura sk\u0142adowana lub logika aplikacji<\/td>\n<\/tr>\n<tr data-nodeid=\"1894\">\n<td data-nodeid=\"1895\">Z\u0142o\u017cone zapewnienie ogranicze\u0144<\/td>\n<td data-nodeid=\"1896\">Wyzwalacze lub procedury aplikacji<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1897\"\/>\n<h2 data-nodeid=\"1898\">\ud83d\udd39 Og\u00f3lnienie i dziedziczenie<\/h2>\n<h3 data-nodeid=\"1899\">Podstawowe og\u00f3lne<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbRmByvFIeHnWajAKrBpIc3SWAByjDJY_29UBh0g1PiQNLs46YGnX4A7rBmKeEa0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1900\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Osoba\r\nclass Student\r\nclass Profesor\r\nOsoba &lt;|-- Student\r\nOsoba &lt;|-- Profesor\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbRmByvFIeHnWajAKrBpIc3SWAByjDJY_29UBh0g1PiQNLs46YGnX4A7rBmKeEa0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1901\">Klasy abstrakcyjne i operacje<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TOun3eCm54FtIBc3nrPLBy042_SmIIHIGb8bdoA4k3j5TEZ2QhzdkIx2BDCOj69N97CmooiIGs0X6cFI50MhLi0J7GEZSHNQa2X7ze1rxrIyt3WUvA-wL_WaRqzY_H_UC7lfRUPyOMnQrIxQxwCT\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1902\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nabstrakcyjna klasa Account {\r\n  - balance: Float\r\n  + deposit(amount: Float): void\r\n  + {abstrakcyjna} withdraw(amount: Float): void\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TOun3eCm54FtIBc3nrPLBy042_SmIIHIGb8bdoA4k3j5TEZ2QhzdkIx2BDCOj69N97CmooiIGs0X6cFI50MhLi0J7GEZSHNQa2X7ze1rxrIyt3WUvA-wL_WaRqzY_H_UC7lfRUPyOMnQrIxQxwCT\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1903\">Ograniczenia uog\u00f3lnienia<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrDTb5zrjEb8Qt9LNggEGa7gqQQyr5exErGDSAE9ru9aENvD3gbvAK0l0W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1904\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Person\r\nclass Student\r\nclass Professor\r\nclass OtherPerson\r\nPerson &lt;|-- Student : &lt;&lt;{roz\u0142\u0105czne, pe\u0142ne}&gt;&gt;\r\nPerson &lt;|-- Professor : &lt;&lt;{roz\u0142\u0105czne, pe\u0142ne}&gt;&gt;\r\nPerson &lt;|-- OtherPerson : &lt;&lt;{roz\u0142\u0105czne, pe\u0142ne}&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrDTb5zrjEb8Qt9LNggEGa7gqQQyr5exErGDSAE9ru9aENvD3gbvAK0l0W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1905\">Wielokrotna klasifikacja \/ Dyskryminatory<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niYl9JgXApxEpGLK1DnAi6Q31OlZGfjQeWCpMvAZKlCnLJ6SG9s5KwfEQb03q90000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1906\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Employee\r\nclass Staff\r\nclass Faculty\r\nclass HMO\r\nclass NonHMO\r\nEmployee &lt;|-- Staff : &lt;&lt;rodzaj&gt;&gt;\r\nEmployee &lt;|-- Faculty : &lt;&lt;rodzaj&gt;&gt;\r\nEmployee &lt;|-- HMO : &lt;&lt;ubezpieczenie&gt;&gt;\r\nEmployee &lt;|-- NonHMO : &lt;&lt;ubezpieczenie&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niYl9JgXApxEpGLK1DnAi6Q31OlZGfjQeWCpMvAZKlCnLJ6SG9s5KwfEQb03q90000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1907\">\n<li data-nodeid=\"1908\">\n<p data-nodeid=\"1909\">Dyskryminatory grupuj\u0105 wzajemnie wykluczaj\u0105ce si\u0119 specjalizacje<\/p>\n<\/li>\n<li data-nodeid=\"1910\">\n<p data-nodeid=\"1911\">Obiekty mog\u0105 mie\u0107 jedn\u0105 warto\u015b\u0107 na wymiar dyskryminatora<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"1912\"\/>\n<h2 data-nodeid=\"1913\">\ud83d\udd39 Mechanizmy rozszerzalno\u015bci<\/h2>\n<p data-nodeid=\"1914\">UML zapewnia trzy mechanizmy rozszerzalno\u015bci:<\/p>\n<h3 data-nodeid=\"1915\">1. Stereotypy<code data-backticks=\"1\" data-nodeid=\"2305\">&lt;&lt; &gt;&gt;<\/code><\/h3>\n<p data-nodeid=\"1916\">Rozszerz semantyk\u0119 UML poprzez tworzenie nowych \u201epodtyp\u00f3w\u201d element\u00f3w metamodelu.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDIyvAjBDJgERbKb3GLSXCiLBmp2j9JKyjWWZa9UQcMYa4bnHbvgNpSjN2JF1DBCdmoKmgIYog11fIUdHFPKbgSbLU_j7PHzfXfcah56VcQLHOARZbv2UMQ49fY4noVZ4M6Q3n3gbvAK2N0W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1917\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Customer &lt;&lt;encja&gt;&gt; {\r\n  - id: Integer\r\n  - name: String\r\n}\r\nclass MathLibrary &lt;&lt;u\u017cyteczno\u015b\u0107&gt;&gt; {\r\n  + sin(x: Float): Float\r\n  + cos(x: Float): Float\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDIyvAjBDJgERbKb3GLSXCiLBmp2j9JKyjWWZa9UQcMYa4bnHbvgNpSjN2JF1DBCdmoKmgIYog11fIUdHFPKbgSbLU_j7PHzfXfcah56VcQLHOARZbv2UMQ49fY4noVZ4M6Q3n3gbvAK2N0W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1918\">2. Warto\u015bci oznacze\u0144<code data-backticks=\"1\" data-nodeid=\"2312\">{klucz=warto\u015b\u0107}<\/code><\/h3>\n<p data-nodeid=\"1919\">Dodaj niestandardowe w\u0142a\u015bciwo\u015bci do element\u00f3w modelu.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1920\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {author=sb, version=1.0, persistence=persistent}\r\n  - id: Integer\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1921\">3. Ograniczenia\u00a0<code data-backticks=\"1\" data-nodeid=\"2315\">{...}<\/code><\/h3>\n<p data-nodeid=\"1922\">Dodaj ograniczenia semantyczne przy u\u017cyciu dowolnego tekstu, OCL lub zdefiniowanych skr\u00f3t\u00f3w.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1923\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise {\r\n  - no: Integer\r\n  - points: Integer {value &gt;= 0}\r\n  {points &lt;= maxPoints}\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1924\"\/>\n<h2 data-nodeid=\"1925\">\ud83d\udd39 UML do projektowania bazy danych: kluczowe aspekty<\/h2>\n<h3 data-nodeid=\"1926\">Przekszta\u0142canie UML w schemat relacyjny<\/h3>\n<table data-nodeid=\"1928\">\n<thead data-nodeid=\"1929\">\n<tr data-nodeid=\"1930\">\n<th data-nodeid=\"1932\">Konstrukcja UML<\/th>\n<th data-nodeid=\"1933\">Realizacja relacyjna<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1936\">\n<tr data-nodeid=\"1937\">\n<td data-nodeid=\"1938\">Klasa<\/td>\n<td data-nodeid=\"1939\">Tabela<\/td>\n<\/tr>\n<tr data-nodeid=\"1940\">\n<td data-nodeid=\"1941\">Atrybut<\/td>\n<td data-nodeid=\"1942\">Kolumna<\/td>\n<\/tr>\n<tr data-nodeid=\"1943\">\n<td data-nodeid=\"1944\">Klucz podstawowy\u00a0<code data-backticks=\"1\" data-nodeid=\"2326\">{pk}<\/code><\/td>\n<td data-nodeid=\"1945\">Ograniczenie PRIMARY KEY<\/td>\n<\/tr>\n<tr data-nodeid=\"1946\">\n<td data-nodeid=\"1947\">Zwi\u0105zek (1:*)<\/td>\n<td data-nodeid=\"1948\">Klucz obcy po stronie \u201ewiele\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"1949\">\n<td data-nodeid=\"1950\">Zwi\u0105zek (<em data-nodeid=\"2341\">:<\/em>)<\/td>\n<td data-nodeid=\"1951\">Tabela po\u015brednicz\u0105ca\/przeci\u0119cia<\/td>\n<\/tr>\n<tr data-nodeid=\"1952\">\n<td data-nodeid=\"1953\">Kompozycja<\/td>\n<td data-nodeid=\"1954\">Klucz obcy +\u00a0<code data-backticks=\"1\" data-nodeid=\"2345\">ON DELETE CASCADE<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"1955\">\n<td data-nodeid=\"1956\">Klasa asocjacji<\/td>\n<td data-nodeid=\"1957\">Tabela z z\u0142o\u017conymi kluczami obcymi + atrybutami<\/td>\n<\/tr>\n<tr data-nodeid=\"1958\">\n<td data-nodeid=\"1959\">Uog\u00f3lnienie<\/td>\n<td data-nodeid=\"1960\">Oddzielne tabele (z kluczami obcymi) lub jedna tabela z rozr\u00f3\u017cnieniem typu<\/td>\n<\/tr>\n<tr data-nodeid=\"1961\">\n<td data-nodeid=\"1962\"><code data-backticks=\"1\" data-nodeid=\"2350\">{uporz\u0105dkowane}<\/code>\u00a0asocjacja<\/td>\n<td data-nodeid=\"1963\">Dodaj kolumn\u0119 sekwencji + ograniczenie unikalno\u015bci<\/td>\n<\/tr>\n<tr data-nodeid=\"1964\">\n<td data-nodeid=\"1965\">Wyr\u00f3\u017cnik<\/td>\n<td data-nodeid=\"1966\">Cz\u0119\u015b\u0107 klucza z\u0142o\u017conego lub kolumny indeksowanej<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1967\">Kluczowe r\u00f3\u017cnice: obiektowe vs. relacyjne<\/h3>\n<table data-nodeid=\"1969\">\n<thead data-nodeid=\"1970\">\n<tr data-nodeid=\"1971\">\n<th data-nodeid=\"1973\">Aspekt<\/th>\n<th data-nodeid=\"1974\">Obiektowe<\/th>\n<th data-nodeid=\"1975\">Relacyjne<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1979\">\n<tr data-nodeid=\"1980\">\n<td data-nodeid=\"1981\"><strong data-nodeid=\"2362\">To\u017csamo\u015b\u0107<\/strong><\/td>\n<td data-nodeid=\"1982\">Odwo\u0142anie do obiektu (zast\u0119pcze)<\/td>\n<td data-nodeid=\"1983\">Klucz podstawowy (biznesowy lub zast\u0119pczy)<\/td>\n<\/tr>\n<tr data-nodeid=\"1984\">\n<td data-nodeid=\"1985\"><strong data-nodeid=\"2368\">Operacje<\/strong><\/td>\n<td data-nodeid=\"1986\">J\u0105dro projektowania, hermetyzowane<\/td>\n<td data-nodeid=\"1987\">Zewn\u0119trzne (SQL, procedury)<\/td>\n<\/tr>\n<tr data-nodeid=\"1988\">\n<td data-nodeid=\"1989\"><strong data-nodeid=\"2374\">Hermetyzacja<\/strong><\/td>\n<td data-nodeid=\"1990\">Prywatne atrybuty, publiczny interfejs<\/td>\n<td data-nodeid=\"1991\">Domy\u015blne bezpo\u015bredni dost\u0119p do tabeli<\/td>\n<\/tr>\n<tr data-nodeid=\"1992\">\n<td data-nodeid=\"1993\"><strong data-nodeid=\"2380\">Dziedziczenie<\/strong><\/td>\n<td data-nodeid=\"1994\">Wsparcie dla j\u0119zyka naturalnego<\/td>\n<td data-nodeid=\"1995\">Z\u0142o\u017cone strategie mapowania<\/td>\n<\/tr>\n<tr data-nodeid=\"1996\">\n<td data-nodeid=\"1997\"><strong data-nodeid=\"2386\">Relacje<\/strong><\/td>\n<td data-nodeid=\"1998\">Wska\u017aniki\/odniesienia<\/td>\n<td data-nodeid=\"1999\">Klucze obce i po\u0142\u0105czenia<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"2000\">Prawdopodobne rekomendacje dla projektant\u00f3w baz danych<\/h3>\n<ol data-nodeid=\"2001\">\n<li data-nodeid=\"2002\">\n<p data-nodeid=\"2003\"><strong data-nodeid=\"2398\">Jawnie modeluj klucze<\/strong>: U\u017cyj\u00a0<code data-backticks=\"1\" data-nodeid=\"2394\">{pk}<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2396\">{ak1}<\/code>\u00a0stereotypy, poniewa\u017c UML nie obs\u0142uguje domy\u015blnie kluczy<\/p>\n<\/li>\n<li data-nodeid=\"2004\">\n<p data-nodeid=\"2005\"><strong data-nodeid=\"2405\">Zaznacz trwa\u0142o\u015b\u0107<\/strong>: U\u017cyj\u00a0<code data-backticks=\"1\" data-nodeid=\"2403\">{persistent}<\/code>\u00a0warto\u015b\u0107 oznaczon\u0105, aby odr\u00f3\u017cni\u0107 klasy bazodanowe od klas aplikacji tymczasowych<\/p>\n<\/li>\n<li data-nodeid=\"2006\">\n<p data-nodeid=\"2007\"><strong data-nodeid=\"2410\">Upro\u015b\u0107 operacje<\/strong>: Mapuj operacje zapyta\u0144 na widoki; z\u0142o\u017cone operacje na procedury przechowywane<\/p>\n<\/li>\n<li data-nodeid=\"2008\">\n<p data-nodeid=\"2009\"><strong data-nodeid=\"2415\">Ostro\u017cnie traktuj dziedziczenie<\/strong>: Wybierz strategi\u0119 mapowania na podstawie wzorc\u00f3w zapyta\u0144<\/p>\n<\/li>\n<li data-nodeid=\"2010\">\n<p data-nodeid=\"2011\"><strong data-nodeid=\"2420\">Dokumentuj ograniczenia<\/strong>: U\u017cyj OCL lub jasnych ogranicze\u0144 tekstowych dla regu\u0142 biznesowych<\/p>\n<\/li>\n<li data-nodeid=\"2012\">\n<p data-nodeid=\"2013\"><strong data-nodeid=\"2425\">Ostro\u017cnie u\u017cywaj klas asocjacji<\/strong>: Tylko wtedy, gdy relacja ma istotne atrybuty<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"2014\"\/>\n<h2 data-nodeid=\"2015\">\ud83c\udfaf Szybki arkusz referencyjny<\/h2>\n<h3 data-nodeid=\"2016\">Podsumowanie notacji diagramu klas PlantUML<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNApaaiJbImiIakIIrApI-fB4YrirFmIwmgJ_G6obGgLFDoAIXKboIcfwUcs9ObvfIcre94ehNrTVMLzUjY5V90QgDpItDAOgqKGYeB5A9j5O3gOXMg2uho2ugngTOeI2nAp4qjAQhKj588hyn3A0KYXzIy5A3B0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"2017\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nklasa &lt;&lt;stereotype&gt;&gt; NazwaKlasy {\r\n  {tagged=value}\r\n  [+\/-\/#\/~] nazwa[mult]: Typ [= val] {props}\r\n  [+\/-\/#\/~] nazwa(parametry): Wyn {props}\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNApaaiJbImiIakIIrApI-fB4YrirFmIwmgJ_G6obGgLFDoAIXKboIcfwUcs9ObvfIcre94ehNrTVMLzUjY5V90QgDpItDAOgqKGYeB5A9j5O3gOXMg2uho2ugngTOeI2nAp4qjAQhKj588hyn3A0KYXzIy5A3B0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2018\">Notacja asocjacji<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNopaaiJdHKKCejpIbnL5BGrOKmdPGKm39E2bOAVebLvOcEnVd9MOd9MPbmBLf0jL0r2keAtlcv1VbLbK0rS0NvA0eSqujIqnEHvNLrxP0Do4mjoYzFpCdBFphxI3ilbqDgNWhGXG00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"2019\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nKlasaA \"multA\" -- \"multB\" KlasaB : NazwaAsocjacji\r\nKlasaA *-- KlasaB  ' Kompozycja\r\nKlasaA o-- KlasaB  ' Agregacja\r\nKlasaA --&gt; KlasaB  ' Kierowalno\u015b\u0107\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNopaaiJdHKKCejpIbnL5BGrOKmdPGKm39E2bOAVebLvOcEnVd9MOd9MPbmBLf0jL0r2keAtlcv1VbLbK0rS0NvA0eSqujIqnEHvNLrxP0Do4mjoYzFpCdBFphxI3ilbqDgNWhGXG00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edytuj PlantUML w VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2020\">Symbole widoczno\u015bci<\/h3>\n<ul data-nodeid=\"2021\">\n<li data-nodeid=\"2022\">\n<p data-nodeid=\"2023\"><code data-backticks=\"1\" data-nodeid=\"2430\">+<\/code>\u00a0Publiczny<\/p>\n<\/li>\n<li data-nodeid=\"2024\">\n<p data-nodeid=\"2025\"><code data-backticks=\"1\" data-nodeid=\"2432\">-<\/code>\u00a0Prywatny<\/p>\n<\/li>\n<li data-nodeid=\"2026\">\n<p data-nodeid=\"2027\"><code data-backticks=\"1\" data-nodeid=\"2434\">#<\/code>\u00a0Chroniony<\/p>\n<\/li>\n<li data-nodeid=\"2028\">\n<p data-nodeid=\"2029\"><code data-backticks=\"1\" data-nodeid=\"2436\">~<\/code>\u00a0Pakiet<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"2030\">W\u0142a\u015bciwo\u015bci i ograniczenia wsp\u00f3lne<\/h3>\n<ul data-nodeid=\"2031\">\n<li data-nodeid=\"2032\">\n<p data-nodeid=\"2033\"><code data-backticks=\"1\" data-nodeid=\"2441\">{statyczny}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2443\">{isQuery=true}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2445\">{abstrakcyjny}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"2034\">\n<p data-nodeid=\"2035\"><code data-backticks=\"1\" data-nodeid=\"2446\">{warto\u015b\u0107 &gt;= 0}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2448\">{xor}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2450\">{uporz\u0105dkowany}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2452\">{pk}<\/code><\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"2036\"\/>\n<blockquote data-nodeid=\"2037\">\n<p data-nodeid=\"2038\">\ud83d\udca1\u00a0<strong data-nodeid=\"2462\">Ostateczna my\u015bl<\/strong>: Diagramy klas UML s\u0105 pot\u0119\u017cne w modelowaniu koncepcyjnym, ale pami\u0119taj, \u017ce zosta\u0142y zaprojektowane przede wszystkim do in\u017cynierii oprogramowania. Przy u\u017cywaniu UML do projektowania baz danych przygotuj si\u0119 na rozszerzenie notacji (przez stereotypy, warto\u015bci oznaczone, ograniczenia), aby uchwyci\u0107 poj\u0119cia relacyjne, takie jak klucze, normalizacja i deklaratywne ograniczenia, kt\u00f3re nie s\u0105 naturalne dla podstawy obiektowej UML.<\/p>\n<\/blockquote>\n<p class=\"\" data-nodeid=\"2039\"><em data-nodeid=\"2470\">Przewodnik przygotowany na podstawie \u201eCz\u0119\u015b\u0107 6: Diagramy klas UML\u201d przez Stefana Brassa, Universit\u00e4t Halle, 2003. Wszystkie diagramy sformatowane w sk\u0142adni PlantUML w celu zapewnienia kompatybilno\u015bci z nowoczesnymi narz\u0119dziami.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udca1\u00a0Uwaga: Wszystkie diagramy s\u0105 dost\u0119pne w formaciePlantUML format. Mo\u017cesz natychmiast renderowa\u0107 je za pomoc\u0105Visual Paradigm Diagram jako kod. \ud83d\udd39 Wprowadzenie<\/p>\n","protected":false},"author":3482,"featured_media":11074,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","fifu_image_url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","fifu_image_alt":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-11073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish\" \/>\n<meta property=\"og:description\" content=\"\ud83d\udca1\u00a0Uwaga: Wszystkie diagramy s\u0105 dost\u0119pne w formaciePlantUML format. Mo\u017cesz natychmiast renderowa\u0107 je za pomoc\u0105Visual Paradigm Diagram jako kod. \ud83d\udd39 Wprowadzenie\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:site_name\" content=\"ArchiMetric Polish\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-03T05:38:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/><meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1208\" \/>\n\t<meta property=\"og:image:height\" content=\"658\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"headline\":\"Kompletny przewodnik po diagramach klas UML (Diagram jako kod)\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"wordCount\":1259,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"url\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"name\":\"Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\",\"url\":\"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png\",\"contentUrl\":\"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png\",\"width\":1208,\"height\":658},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.archimetric.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kompletny przewodnik po diagramach klas UML (Diagram jako kod)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/#website\",\"url\":\"https:\/\/www.archimetric.com\/pl\/\",\"name\":\"ArchiMetric Polish\",\"description\":\"EA, Dev Ops, Scrum, Agile and More\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.archimetric.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.archimetric.com\/pl\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_locale":"pl_PL","og_type":"article","og_title":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish","og_description":"\ud83d\udca1\u00a0Uwaga: Wszystkie diagramy s\u0105 dost\u0119pne w formaciePlantUML format. Mo\u017cesz natychmiast renderowa\u0107 je za pomoc\u0105Visual Paradigm Diagram jako kod. \ud83d\udd39 Wprowadzenie","og_url":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_site_name":"ArchiMetric Polish","article_published_time":"2026-06-03T05:38:37+00:00","og_image":[{"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"","width":"","height":""},{"width":1208,"height":658,"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"image\/png"}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","twitter_misc":{"Napisane przez":"curtis","Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article","isPartOf":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"author":{"name":"curtis","@id":"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"headline":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod)","datePublished":"2026-06-03T05:38:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"wordCount":1259,"commentCount":0,"image":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png","articleSection":["Uncategorized"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","url":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","name":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod) - ArchiMetric Polish","isPartOf":{"@id":"https:\/\/www.archimetric.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"image":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png","datePublished":"2026-06-03T05:38:37+00:00","author":{"@id":"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"breadcrumb":{"@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage","url":"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png","contentUrl":"https:\/\/www.archimetric.com\/pl\/wp-content\/uploads\/sites\/13\/2026\/06\/img_6a1fbb7554f19.png","width":1208,"height":658},{"@type":"BreadcrumbList","@id":"https:\/\/www.archimetric.com\/pl\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.archimetric.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Kompletny przewodnik po diagramach klas UML (Diagram jako kod)"}]},{"@type":"WebSite","@id":"https:\/\/www.archimetric.com\/pl\/#website","url":"https:\/\/www.archimetric.com\/pl\/","name":"ArchiMetric Polish","description":"EA, Dev Ops, Scrum, Agile and More","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.archimetric.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba","name":"curtis","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.archimetric.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.archimetric.com\/pl\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/posts\/11073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/users\/3482"}],"replies":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/comments?post=11073"}],"version-history":[{"count":0,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/posts\/11073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/media\/11074"}],"wp:attachment":[{"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/media?parent=11073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/categories?post=11073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.archimetric.com\/pl\/wp-json\/wp\/v2\/tags?post=11073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}