{"id":6549,"date":"2026-02-05T09:34:54","date_gmt":"2026-02-05T01:34:54","guid":{"rendered":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"modified":"2026-02-05T09:34:54","modified_gmt":"2026-02-05T01:34:54","slug":"designing-a-library-system-from-erd-to-normalization-to-database-schema","status":"publish","type":"post","link":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","title":{"rendered":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych"},"content":{"rendered":"<h2>Wprowadzenie<\/h2>\n<p>Projektowanie solidnego i efektywnego systemu baz danych jest kluczowym krokiem w tworzeniu systemu zarz\u0105dzania bibliotek\u0105. Ten proces obejmuje kilka etap\u00f3w, zaczynaj\u0105c od projektowania diagramu encji i relacji (ERD), po normalizacj\u0119, a na ko\u0144cu tworzenie schematu bazy danych. W tym artykule przejdziemy przez ka\u017cdy z tych etap\u00f3w, pokazuj\u0105c, jak przekszta\u0142ci\u0107 koncepcj\u0119 w dobrze zorganizowan\u0105 i zoptymalizowan\u0105 baz\u0119 danych systemu bibliotecznego.<\/p>\n<h2>Proces modelowania danych od ERD, przez normalizacj\u0119 do schematu bazy danych<\/h2>\n<ol>\n<li>Diagram encji i relacji (ERD)<\/li>\n<\/ol>\n<p>Pierwszym krokiem w projektowaniu bazy danych systemu bibliotecznego jest stworzenie diagramu encji i relacji (ERD). Diagram ERD to wizualne przedstawienie encji danych i ich relacji w systemie. Oto kluczowe elementy do rozwa\u017cenia:<\/p>\n<p>a. Encje: Zidentyfikuj g\u0142\u00f3wne encje w systemie bibliotecznym. Mog\u0105 to by\u0107 ksi\u0105\u017cki, autorzy, czytelnicy, pracownicy oraz transakcje.<\/p>\n<p>b. Atrybuty: Dla ka\u017cdej encji zdefiniuj atrybuty lub w\u0142a\u015bciwo\u015bci. Na przyk\u0142ad encja \u201eKsi\u0105\u017cka\u201d mo\u017ce mie\u0107 atrybuty takie jak ISBN, tytu\u0142, autor, data wydania itd.<\/p>\n<p>c. Relacje: Okre\u015bl relacje mi\u0119dzy encjami. Na przyk\u0142ad encja \u201eCzytelnik\u201d mo\u017ce mie\u0107 relacj\u0119 \u201eWypo\u017cyczy\u0107\u201d z encj\u0105 \u201eKsi\u0105\u017cka\u201d, aby przedstawi\u0107 wypo\u017cyczenie ksi\u0105\u017cek.<\/p>\n<p>d. Mocno\u015b\u0107 relacji: Okre\u015bl mocno\u015b\u0107 relacji, wskazuj\u0105c, ile wyst\u0105pie\u0144 jednej encji jest powi\u0105zanych z drug\u0105. Na przyk\u0142ad jeden czytelnik mo\u017ce wypo\u017cyczy\u0107 wiele ksi\u0105\u017cek, ale ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 wypo\u017cyczona tylko przez jednego czytelnika w danym momencie.<\/p>\n<ol start=\"2\">\n<li>Normalizacja<\/li>\n<\/ol>\n<p>Normalizacja to proces organizowania danych w bazie danych w celu usuni\u0119cia nadmiarowo\u015bci i poprawy integralno\u015bci danych. Celem jest minimalizacja powtarzania si\u0119 danych oraz zapewnienie, \u017ce ka\u017cda cz\u0119\u015b\u0107 informacji jest przechowywana w najbardziej odpowiednim miejscu. Oto kroki prowadz\u0105ce do normalizacji bazy danych systemu bibliotecznego:<\/p>\n<p>a. Zidentyfikuj zale\u017cno\u015bci funkcyjne: przeanalizuj atrybuty w swoich encjach i okre\u015bl, kt\u00f3re atrybuty zale\u017c\u0105 od innych. Na przyk\u0142ad w encji \u201eKsi\u0105\u017cka\u201d imi\u0119 autora zale\u017cy od ISBN ksi\u0105\u017cki.<\/p>\n<p>b. Zastosuj zasady normalizacji: u\u017cyj zasad normalizacji (np. Pierwsza Forma Normalna, Druga Forma Normalna, Trzecia Forma Normalna), aby roz\u0142o\u017cy\u0107 z\u0142o\u017cone encje na proste i stworzy\u0107 osobne tabele dla powi\u0105zanych informacji.<\/p>\n<p>c. Utw\u00f3rz relacje: utw\u00f3rz relacje mi\u0119dzy znormalizowanymi tabelami za pomoc\u0105 kluczy g\u0142\u00f3wnych i obcych, aby zachowa\u0107 integralno\u015b\u0107 danych.<\/p>\n<p>d. Usu\u0144 nadmiarowo\u015b\u0107: upewnij si\u0119, \u017ce ka\u017cda cz\u0119\u015b\u0107 danych jest przechowywana tylko w jednym miejscu. Na przyk\u0142ad informacje o autorze powinny by\u0107 przechowywane w osobnej tabeli \u201eAutor\u201d, a nie powtarza\u0107 si\u0119 w ka\u017cdym wpisie ksi\u0105\u017cki.<\/p>\n<ol start=\"3\">\n<li>Schemat bazy danych<\/li>\n<\/ol>\n<p>Gdy Twoja baza danych zostanie w pe\u0142ni znormalizowana, mo\u017cesz przej\u015b\u0107 do tworzenia schematu bazy danych. Schemat definiuje struktur\u0119 bazy danych, w tym tabele, kolumny, typy danych i ograniczenia. Oto kroki tworzenia schematu bazy danych dla systemu bibliotecznego:<\/p>\n<p>a. Zdefiniuj tabele: utw\u00f3rz tabele na podstawie encji zidentyfikowanych w diagramie ERD i danych znormalizowanych. Ka\u017cda tabela powinna reprezentowa\u0107 okre\u015blon\u0105 encj\u0119 (np. \u201eKsi\u0105\u017cki\u201d, \u201eAutorzy\u201d, \u201eCzytelnicy\u201d).<\/p>\n<p>b. Zdefiniuj kolumny: okre\u015bl kolumny dla ka\u017cdej tabeli, reprezentuj\u0105ce atrybuty zidentyfikowane w diagramie ERD. Upewnij si\u0119, \u017ce typy danych i ograniczenia (np. klucze g\u0142\u00f3wne, klucze obce, ograniczenia unikalno\u015bci) s\u0105 poprawnie zdefiniowane.<\/p>\n<p>c. Ustal relacje: u\u017cyj kluczy obcych, aby utworzy\u0107 relacje mi\u0119dzy tabelami, \u0142\u0105cz\u0105c powi\u0105zane dane. Na przyk\u0142ad tabela \u201eKsi\u0105\u017cki\u201d mo\u017ce mie\u0107 klucz obcy odnosz\u0105cy si\u0119 do tabeli \u201eAutorzy\u201d.<\/p>\n<p>d. Indeksowanie: zaimplementuj indeksowanie kolumn cz\u0119sto u\u017cywanych do wyszukiwania, aby poprawi\u0107 wydajno\u015b\u0107 zapyta\u0144.<\/p>\n<h2>Przyk\u0142ad studium przypadku: system biblioteczny<\/h2>\n<h3>Diagram encji i relacji<\/h3>\n<p>Zdefiniowali\u015bmy cztery tabele: Autorzy, Ksi\u0105\u017cki, Czytelnicy i Transakcje. Oto co reprezentuje ka\u017cda z nich:<\/p>\n<ol>\n<li>Autorzy: zawiera informacje o autorach ksi\u0105\u017cek. Ma AuthorID jako klucz g\u0142\u00f3wny i atrybut Name.<\/li>\n<li>Ksi\u0105\u017cki: reprezentuje szczeg\u00f3\u0142y dotycz\u0105ce ksi\u0105\u017cek. Zawiera ISBN (klucz g\u0142\u00f3wny), tytu\u0142, dat\u0119 wydania oraz AuthorID jako klucz obcy, odnosz\u0105cy si\u0119 do tabeli Autorzy, aby utworzy\u0107 relacj\u0119 mi\u0119dzy ksi\u0105\u017ckami a autorami.<\/li>\n<li>Czytelnicy: przechowuje informacje o czytelnikach biblioteki. Ma PatronID jako klucz g\u0142\u00f3wny i atrybut Name.<\/li>\n<li>Transakcje: ta tabela rejestruje transakcje, gdy czytelnicy wypo\u017cyczaj\u0105 ksi\u0105\u017cki. Zawiera TransactionID (klucz g\u0142\u00f3wny), BookID (klucz obcy odnosz\u0105cy si\u0119 do Ksi\u0105\u017cek), PatronID (klucz obcy odnosz\u0105cy si\u0119 do Czytelnik\u00f3w) oraz DueDate.<\/li>\n<\/ol>\n<p>Relacje mi\u0119dzy tymi tabelami s\u0105 przedstawione nast\u0119puj\u0105co:<\/p>\n<ul>\n<li>Autorzy i ksi\u0105\u017cki s\u0105 ze sob\u0105 powi\u0105zani relacj\u0105 jeden do wielu, co oznacza, \u017ce jeden autor mo\u017ce napisa\u0107 wiele ksi\u0105\u017cek.<\/li>\n<li>Ksi\u0105\u017cki i transakcje s\u0105 ze sob\u0105 powi\u0105zane, co oznacza, \u017ce ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 cz\u0119\u015bci\u0105 wielu transakcji, ale ka\u017cda transakcja odnosi si\u0119 do jednej ksi\u0105\u017cki.<\/li>\n<li>Czytelnicy i transakcje s\u0105 ze sob\u0105 po\u0142\u0105czone, co oznacza, \u017ce ka\u017cdy czytelnik mo\u017ce mie\u0107 wiele transakcji, ale ka\u017cda transakcja nale\u017cy do jednego czytelnika.<\/li>\n<\/ul>\n<h3>Proces normalizacji<\/h3>\n<p>Przejd\u017amy przez proces normalizacji dla bazy danych naszego systemu bibliotecznego przy u\u017cyciu tabel. Zaczniemy od pocz\u0105tkowego zestawu tabel i stopniowo je normalizujemy przez Pierwsz\u0105 Form\u0119 Normaln\u0105 (1NF), Drug\u0105 Form\u0119 Normaln\u0105 (2NF) i Trzeci\u0105 Form\u0119 Normaln\u0105 (3NF).<\/p>\n<p><strong>Pocz\u0105tkowe tabele:<\/strong><\/p>\n<ol>\n<li>Ksi\u0105\u017cki\n<ul>\n<li>ISBN (KLUCZ G\u0141\u00d3WNY)<\/li>\n<li>Tytu\u0142<\/li>\n<li>Data wydania<\/li>\n<li>AuthorID (KLUCZ OBCE)<\/li>\n<\/ul>\n<\/li>\n<li>Autorzy\n<ul>\n<li>AuthorID (KLUCZ G\u0141\u00d3WNY)<\/li>\n<li>Imi\u0119<\/li>\n<\/ul>\n<\/li>\n<li>Czytelnicy\n<ul>\n<li>PatronID (KLUCZ G\u0141\u00d3WNY)<\/li>\n<li>Imi\u0119<\/li>\n<\/ul>\n<\/li>\n<li>Transakcje\n<ul>\n<li>TransactionID (KLUCZ G\u0141\u00d3WNY)<\/li>\n<li>BookID (KLUCZ OBCE)<\/li>\n<li>PatronID (KLUCZ OBCE)<\/li>\n<li>Data zwrotu<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>Pierwsza Forma Normalna (1NF):<\/strong><\/p>\n<p>W Pierwszej Formie Normalnej ka\u017cda tabela powinna mie\u0107 klucz g\u0142\u00f3wny, a w \u017cadnej kolumnie nie powinno by\u0107 powtarzaj\u0105cych si\u0119 grup ani tablic. Nasze pocz\u0105tkowe tabele ju\u017c spe\u0142niaj\u0105 1NF, poniewa\u017c maj\u0105 klucze g\u0142\u00f3wne, a ka\u017cdy kom\u00f3rk\u0119 zawiera jedn\u0105 warto\u015b\u0107.<\/p>\n<p><strong>Druga Forma Normalna (2NF):<\/strong><\/p>\n<p>Aby osi\u0105gn\u0105\u0107 2NF, musimy zapewni\u0107, \u017ce atrybuty niekluczowe zale\u017c\u0105 od ca\u0142ego klucza g\u0142\u00f3wnego. W naszych pocz\u0105tkowych tabelach tabela Ksi\u0105\u017cki ma zale\u017cno\u015b\u0107 cz\u0119\u015bciow\u0105, poniewa\u017c Tytu\u0142 i Data wydania zale\u017c\u0105 tylko od ISBN, a nie od ca\u0142ego klucza g\u0142\u00f3wnego. Podzielimy tabel\u0119 Ksi\u0105\u017cki na dwie tabele:<\/p>\n<p><strong>Ksi\u0105\u017cki (2NF):<\/strong><\/p>\n<ul>\n<li>ISBN (KLUCZ G\u0141\u00d3WNY)<\/li>\n<li>AuthorID (KLUCZ OBCE)<\/li>\n<\/ul>\n<p><strong>Dane ksi\u0105\u017cki (2NF):<\/strong><\/p>\n<ul>\n<li>ISBN (Klucz obcy)<\/li>\n<li>Tytu\u0142<\/li>\n<li>Data publikacji<\/li>\n<\/ul>\n<p>Teraz ka\u017cda tabela ma atrybuty zale\u017cne od ca\u0142ego klucza g\u0142\u00f3wnego.<\/p>\n<p><strong>Trzecia posta\u0107 normalna (3NF):<\/strong><\/p>\n<p>W 3NF eliminujemy zale\u017cno\u015bci przechodnie. Tabela Patrons nie ma zale\u017cno\u015bci przechodnich, ale tabela Transactions ma zale\u017cno\u015b\u0107 przechodni\u0105 od Books poprzez BookID. Aby usun\u0105\u0107 t\u0119 zale\u017cno\u015b\u0107, stworzymy now\u0105 tabel\u0119 dla transakcji:<\/p>\n<p><strong>Transakcje (3NF):<\/strong><\/p>\n<ul>\n<li>ID_Transakcji (Klucz g\u0142\u00f3wny)<\/li>\n<li>ID_U\u017cytkownika (Klucz obcy)<\/li>\n<li>Data zwrotu<\/li>\n<\/ul>\n<p><strong>Wypo\u017cyczone_Ksi\u0105\u017cki (3NF):<\/strong><\/p>\n<ul>\n<li>ID_Transakcji (Klucz obcy)<\/li>\n<li>ID_Ksi\u0105\u017cki (Klucz obcy)<\/li>\n<\/ul>\n<p>Teraz tabela Transakcje zale\u017cy tylko od ID_U\u017cytkownika, a tabela Wypo\u017cyczone_Ksi\u0105\u017cki zarz\u0105dza relacj\u0105 mi\u0119dzy transakcjami a ksi\u0105\u017ckami.<\/p>\n<p>Nasze znormalizowane tabele w 3NF s\u0105 nast\u0119puj\u0105ce:<\/p>\n<p><strong>Ksi\u0105\u017cki (3NF):<\/strong><\/p>\n<ul>\n<li>ISBN (Klucz g\u0142\u00f3wny)<\/li>\n<li>ID_Autora (Klucz obcy)<\/li>\n<\/ul>\n<p><strong>Dane_Ksi\u0105\u017cki (3NF):<\/strong><\/p>\n<ul>\n<li>ISBN (Klucz obcy)<\/li>\n<li>Tytu\u0142<\/li>\n<li>Data publikacji<\/li>\n<\/ul>\n<p><strong>Autorzy (3NF):<\/strong><\/p>\n<ul>\n<li>ID_Autora (Klucz g\u0142\u00f3wny)<\/li>\n<li>Imi\u0119<\/li>\n<\/ul>\n<p><strong>U\u017cytkownicy (3NF):<\/strong><\/p>\n<ul>\n<li>ID_U\u017cytkownika (Klucz g\u0142\u00f3wny)<\/li>\n<li>Imi\u0119<\/li>\n<\/ul>\n<p><strong>Transakcje (3NF):<\/strong><\/p>\n<ul>\n<li>ID_Transakcji (Klucz g\u0142\u00f3wny)<\/li>\n<li>PatronID (Klucz obcy)<\/li>\n<li>Data zwrotu<\/li>\n<\/ul>\n<p><strong>Wypo\u017cyczone ksi\u0105\u017cki (3NF):<\/strong><\/p>\n<ul>\n<li>TransactionID (Klucz obcy)<\/li>\n<li>BookID (Klucz obcy)<\/li>\n<\/ul>\n<p>Poprzez stosowanie procesu normalizacji do 3NF poprawili\u015bmy integralno\u015b\u0107 danych, zmniejszyli\u015bmy nadmiarowo\u015b\u0107 i usuni\u0119to niepo\u017c\u0105dane zale\u017cno\u015bci, co spowodowa\u0142o powstanie dobrze zorganizowanej i znormalizowanej bazy danych systemu bibliotecznego.<\/p>\n<h3>Schemat bazy danych<\/h3>\n<p>\u2014 Tabela dla Autor\u00f3w<br \/>\nCREATE TABLE Authors (<br \/>\nAuthorID INT PRIMARY KEY,<br \/>\nName VARCHAR(255)<br \/>\n);<\/p>\n<p>\u2014 Tabela dla Ksi\u0105\u017cek<br \/>\nCREATE TABLE Books (<br \/>\nISBN VARCHAR(13) PRIMARY KEY,<br \/>\nAuthorID INT,<br \/>\nFOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)<br \/>\n);<\/p>\n<p>\u2014 Tabela dla szczeg\u00f3\u0142\u00f3w ksi\u0105\u017cki<br \/>\nCREATE TABLE BookDetails (<br \/>\nISBN VARCHAR(13),<br \/>\nTitle VARCHAR(255),<br \/>\nPublicationDate DATE,<br \/>\nFOREIGN KEY (ISBN) REFERENCES Books(ISBN)<br \/>\n);<\/p>\n<p>\u2014 Tabela dla Czytelnik\u00f3w<br \/>\nCREATE TABLE Patrons (<br \/>\nPatronID INT PRIMARY KEY,<br \/>\nName VARCHAR(255)<br \/>\n);<\/p>\n<p>\u2014 Tabela transakcji<br \/>\nUTW\u00d3RZ TABEL\u0118 Transakcje (<br \/>\nIDTransakcji INT KLUCZ G\u0141\u00d3WNY,<br \/>\nIDU\u017cytkownika INT,<br \/>\nDataZwrotu DATE,<br \/>\nKlucz obcy (IDU\u017cytkownika) ODNO\u015aI SI\u0118 DO U\u017cytkownicy(IDU\u017cytkownika)<br \/>\n);<\/p>\n<p>\u2014 Tabela Wypo\u017cyczoneKsi\u0105\u017cki (do przedstawienia relacji wiele do wielu mi\u0119dzy Transakcjami a Ksi\u0105\u017ckami)<br \/>\nUTW\u00d3RZ TABEL\u0118 Wypo\u017cyczoneKsi\u0105\u017cki (<br \/>\nIDTransakcji INT,<br \/>\nISBN VARCHAR(13),<br \/>\nKlucz obcy (IDTransakcji) ODNO\u015aI SI\u0118 DO Transakcje(IDTransakcji),<br \/>\nKlucz obcy (ISBN) ODNO\u015aI SI\u0118 DO Ksi\u0105\u017cki(ISBN)<br \/>\n);<\/p>\n<h2>Wnioski<\/h2>\n<p>Projektowanie bazy danych dla systemu zarz\u0105dzania bibliotek\u0105 to skomplikowane, ale niezb\u0119dne zadanie. Zaczynaj\u0105c od diagramu ERD, normalizuj\u0105c dane, a nast\u0119pnie tworz\u0105c dobrze zorganizowany schemat bazy danych, mo\u017cesz zapewni\u0107 integralno\u015b\u0107 danych, zmniejszy\u0107 nadmiarowo\u015b\u0107 i zoptymalizowa\u0107 wydajno\u015b\u0107 bazy danych. Ten systematyczny podej\u015bcie tworzy fundamenty niezawodnego i wydajnego systemu bibliotecznego, kt\u00f3ry skutecznie zarz\u0105dza ksi\u0105\u017ckami, autorami, u\u017cytkownikami i transakcjami.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wprowadzenie Projektowanie solidnego i efektywnego systemu baz danych jest kluczowym krokiem w tworzeniu systemu zarz\u0105dzania bibliotek\u0105. Ten proces obejmuje kilka etap\u00f3w, zaczynaj\u0105c od projektowania diagramu encji i relacji (ERD), po normalizacj\u0119, a na ko\u0144cu tworzenie schematu bazy danych. W tym artykule przejdziemy przez ka\u017cdy z tych etap\u00f3w, pokazuj\u0105c, jak przekszta\u0142ci\u0107 koncepcj\u0119 w dobrze zorganizowan\u0105 i zoptymalizowan\u0105 baz\u0119 danych systemu bibliotecznego. Proces modelowania danych od ERD, przez normalizacj\u0119 do schematu bazy danych Diagram encji i relacji (ERD) Pierwszym krokiem w projektowaniu bazy danych systemu bibliotecznego jest stworzenie diagramu encji i relacji (ERD). Diagram ERD to wizualne przedstawienie encji danych i ich relacji w systemie. Oto kluczowe elementy do rozwa\u017cenia: a. Encje: Zidentyfikuj g\u0142\u00f3wne encje w systemie bibliotecznym. Mog\u0105 to by\u0107 ksi\u0105\u017cki, autorzy, czytelnicy, pracownicy oraz transakcje. b. Atrybuty: Dla ka\u017cdej encji zdefiniuj atrybuty lub w\u0142a\u015bciwo\u015bci. Na przyk\u0142ad encja \u201eKsi\u0105\u017cka\u201d mo\u017ce mie\u0107 atrybuty takie jak ISBN, tytu\u0142, autor, data wydania itd. c. Relacje: Okre\u015bl relacje mi\u0119dzy encjami. Na przyk\u0142ad encja \u201eCzytelnik\u201d mo\u017ce mie\u0107 relacj\u0119 \u201eWypo\u017cyczy\u0107\u201d z encj\u0105 \u201eKsi\u0105\u017cka\u201d, aby przedstawi\u0107 wypo\u017cyczenie ksi\u0105\u017cek. d. Mocno\u015b\u0107 relacji: Okre\u015bl mocno\u015b\u0107 relacji, wskazuj\u0105c, ile wyst\u0105pie\u0144 jednej encji jest powi\u0105zanych z drug\u0105. Na przyk\u0142ad jeden czytelnik mo\u017ce wypo\u017cyczy\u0107 wiele ksi\u0105\u017cek, ale ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 wypo\u017cyczona tylko przez jednego czytelnika w danym momencie. Normalizacja Normalizacja to proces organizowania danych w bazie danych w celu usuni\u0119cia nadmiarowo\u015bci i poprawy integralno\u015bci danych. Celem jest minimalizacja powtarzania si\u0119 danych oraz zapewnienie, \u017ce ka\u017cda cz\u0119\u015b\u0107 informacji jest przechowywana w najbardziej odpowiednim miejscu. Oto kroki prowadz\u0105ce do normalizacji bazy danych systemu bibliotecznego: a. Zidentyfikuj zale\u017cno\u015bci funkcyjne: przeanalizuj atrybuty w swoich encjach i okre\u015bl, kt\u00f3re atrybuty zale\u017c\u0105 od innych. Na przyk\u0142ad w encji \u201eKsi\u0105\u017cka\u201d imi\u0119 autora zale\u017cy od ISBN ksi\u0105\u017cki. b. Zastosuj zasady normalizacji: u\u017cyj zasad normalizacji (np. Pierwsza Forma Normalna, Druga Forma Normalna, Trzecia Forma Normalna), aby roz\u0142o\u017cy\u0107 z\u0142o\u017cone encje na proste i stworzy\u0107 osobne tabele dla powi\u0105zanych informacji. c. Utw\u00f3rz relacje: utw\u00f3rz relacje mi\u0119dzy znormalizowanymi tabelami za pomoc\u0105 kluczy g\u0142\u00f3wnych i obcych, aby zachowa\u0107 integralno\u015b\u0107 danych. d. Usu\u0144 nadmiarowo\u015b\u0107: upewnij si\u0119, \u017ce ka\u017cda cz\u0119\u015b\u0107 danych jest przechowywana tylko w jednym miejscu. Na przyk\u0142ad informacje o autorze powinny by\u0107 przechowywane w osobnej tabeli \u201eAutor\u201d, a nie powtarza\u0107 si\u0119 w ka\u017cdym wpisie ksi\u0105\u017cki. Schemat bazy danych Gdy Twoja baza danych zostanie w pe\u0142ni znormalizowana, mo\u017cesz przej\u015b\u0107 do tworzenia schematu bazy danych. Schemat definiuje struktur\u0119 bazy danych, w tym tabele, kolumny, typy danych i ograniczenia. Oto kroki tworzenia schematu bazy danych dla systemu bibliotecznego: a. Zdefiniuj tabele: utw\u00f3rz tabele na podstawie encji zidentyfikowanych w diagramie ERD i danych znormalizowanych. Ka\u017cda tabela powinna reprezentowa\u0107 okre\u015blon\u0105 encj\u0119 (np. \u201eKsi\u0105\u017cki\u201d, \u201eAutorzy\u201d, \u201eCzytelnicy\u201d). b. Zdefiniuj kolumny: okre\u015bl kolumny dla ka\u017cdej tabeli, reprezentuj\u0105ce atrybuty zidentyfikowane w diagramie ERD. Upewnij si\u0119, \u017ce typy danych i ograniczenia (np. klucze g\u0142\u00f3wne, klucze obce, ograniczenia unikalno\u015bci) s\u0105 poprawnie zdefiniowane. c. Ustal relacje: u\u017cyj kluczy obcych, aby utworzy\u0107 relacje mi\u0119dzy tabelami, \u0142\u0105cz\u0105c powi\u0105zane dane. Na przyk\u0142ad tabela \u201eKsi\u0105\u017cki\u201d mo\u017ce mie\u0107 klucz obcy odnosz\u0105cy si\u0119 do tabeli \u201eAutorzy\u201d. d. Indeksowanie: zaimplementuj indeksowanie kolumn cz\u0119sto u\u017cywanych do wyszukiwania, aby poprawi\u0107 wydajno\u015b\u0107 zapyta\u0144. Przyk\u0142ad studium przypadku: system biblioteczny Diagram encji i relacji Zdefiniowali\u015bmy cztery tabele: Autorzy, Ksi\u0105\u017cki, Czytelnicy i Transakcje. Oto co reprezentuje ka\u017cda z nich: Autorzy: zawiera informacje o autorach ksi\u0105\u017cek. Ma AuthorID jako klucz g\u0142\u00f3wny i atrybut Name. Ksi\u0105\u017cki: reprezentuje szczeg\u00f3\u0142y dotycz\u0105ce ksi\u0105\u017cek. Zawiera ISBN (klucz g\u0142\u00f3wny), tytu\u0142, dat\u0119 wydania oraz AuthorID jako klucz obcy, odnosz\u0105cy si\u0119 do tabeli Autorzy, aby utworzy\u0107 relacj\u0119 mi\u0119dzy ksi\u0105\u017ckami a autorami. Czytelnicy: przechowuje informacje o czytelnikach biblioteki. Ma PatronID jako klucz g\u0142\u00f3wny i atrybut Name. Transakcje: ta tabela rejestruje transakcje, gdy czytelnicy wypo\u017cyczaj\u0105 ksi\u0105\u017cki. Zawiera TransactionID (klucz g\u0142\u00f3wny), BookID (klucz obcy odnosz\u0105cy si\u0119 do Ksi\u0105\u017cek), PatronID (klucz obcy odnosz\u0105cy si\u0119 do Czytelnik\u00f3w) oraz DueDate. Relacje mi\u0119dzy tymi tabelami s\u0105 przedstawione nast\u0119puj\u0105co: Autorzy i ksi\u0105\u017cki s\u0105 ze sob\u0105 powi\u0105zani relacj\u0105 jeden do wielu, co oznacza, \u017ce jeden autor mo\u017ce napisa\u0107 wiele ksi\u0105\u017cek. Ksi\u0105\u017cki i transakcje s\u0105 ze sob\u0105 powi\u0105zane, co oznacza, \u017ce ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 cz\u0119\u015bci\u0105 wielu transakcji, ale ka\u017cda transakcja odnosi si\u0119 do jednej ksi\u0105\u017cki. Czytelnicy i transakcje s\u0105 ze sob\u0105 po\u0142\u0105czone, co oznacza, \u017ce ka\u017cdy czytelnik mo\u017ce mie\u0107 wiele transakcji, ale ka\u017cda transakcja nale\u017cy do jednego czytelnika. Proces normalizacji Przejd\u017amy przez proces normalizacji dla bazy danych naszego systemu bibliotecznego przy u\u017cyciu tabel. Zaczniemy od pocz\u0105tkowego zestawu tabel i stopniowo je normalizujemy przez Pierwsz\u0105 Form\u0119 Normaln\u0105 (1NF), Drug\u0105 Form\u0119 Normaln\u0105 (2NF) i Trzeci\u0105 Form\u0119 Normaln\u0105 (3NF). Pocz\u0105tkowe tabele: Ksi\u0105\u017cki ISBN (KLUCZ G\u0141\u00d3WNY) Tytu\u0142 Data wydania AuthorID (KLUCZ OBCE) Autorzy AuthorID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Czytelnicy PatronID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Transakcje TransactionID (KLUCZ G\u0141\u00d3WNY) BookID (KLUCZ OBCE) PatronID (KLUCZ OBCE) Data zwrotu Pierwsza Forma Normalna (1NF): W Pierwszej Formie Normalnej ka\u017cda tabela powinna mie\u0107 klucz g\u0142\u00f3wny, a w \u017cadnej kolumnie nie powinno by\u0107 powtarzaj\u0105cych si\u0119 grup ani tablic. Nasze pocz\u0105tkowe tabele ju\u017c spe\u0142niaj\u0105 1NF, poniewa\u017c maj\u0105 klucze g\u0142\u00f3wne, a ka\u017cdy kom\u00f3rk\u0119 zawiera jedn\u0105 warto\u015b\u0107. Druga Forma Normalna (2NF): Aby osi\u0105gn\u0105\u0107 2NF, musimy zapewni\u0107, \u017ce atrybuty niekluczowe zale\u017c\u0105 od ca\u0142ego klucza g\u0142\u00f3wnego. W naszych pocz\u0105tkowych tabelach tabela Ksi\u0105\u017cki ma zale\u017cno\u015b\u0107 cz\u0119\u015bciow\u0105, poniewa\u017c Tytu\u0142 i Data wydania zale\u017c\u0105 tylko od ISBN, a nie od ca\u0142ego klucza g\u0142\u00f3wnego. Podzielimy tabel\u0119 Ksi\u0105\u017cki na dwie tabele: Ksi\u0105\u017cki (2NF): ISBN (KLUCZ G\u0141\u00d3WNY) AuthorID (KLUCZ OBCE) Dane ksi\u0105\u017cki (2NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Teraz ka\u017cda tabela ma atrybuty zale\u017cne od ca\u0142ego klucza g\u0142\u00f3wnego. Trzecia posta\u0107 normalna (3NF): W 3NF eliminujemy zale\u017cno\u015bci przechodnie. Tabela Patrons nie ma zale\u017cno\u015bci przechodnich, ale tabela Transactions ma zale\u017cno\u015b\u0107 przechodni\u0105 od Books poprzez BookID. Aby usun\u0105\u0107 t\u0119 zale\u017cno\u015b\u0107, stworzymy now\u0105 tabel\u0119 dla transakcji: Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) ID_U\u017cytkownika (Klucz obcy) Data zwrotu Wypo\u017cyczone_Ksi\u0105\u017cki (3NF): ID_Transakcji (Klucz obcy) ID_Ksi\u0105\u017cki (Klucz obcy) Teraz tabela Transakcje zale\u017cy tylko od ID_U\u017cytkownika, a tabela Wypo\u017cyczone_Ksi\u0105\u017cki zarz\u0105dza relacj\u0105 mi\u0119dzy transakcjami a ksi\u0105\u017ckami. Nasze znormalizowane tabele w 3NF s\u0105 nast\u0119puj\u0105ce: Ksi\u0105\u017cki (3NF): ISBN (Klucz g\u0142\u00f3wny) ID_Autora (Klucz obcy) Dane_Ksi\u0105\u017cki (3NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Autorzy (3NF): ID_Autora (Klucz g\u0142\u00f3wny) Imi\u0119 U\u017cytkownicy (3NF): ID_U\u017cytkownika (Klucz g\u0142\u00f3wny) Imi\u0119 Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) PatronID (Klucz obcy) Data zwrotu Wypo\u017cyczone ksi\u0105\u017cki (3NF): TransactionID (Klucz obcy) BookID (Klucz obcy) Poprzez stosowanie procesu normalizacji do 3NF poprawili\u015bmy integralno\u015b\u0107 danych,<a href=\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_eb_attr":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[17],"tags":[],"class_list":["post-6549","post","type-post","status-publish","format-standard","hentry","category-data-modeling-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides 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:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides Polish\" \/>\n<meta property=\"og:description\" content=\"Wprowadzenie Projektowanie solidnego i efektywnego systemu baz danych jest kluczowym krokiem w tworzeniu systemu zarz\u0105dzania bibliotek\u0105. Ten proces obejmuje kilka etap\u00f3w, zaczynaj\u0105c od projektowania diagramu encji i relacji (ERD), po normalizacj\u0119, a na ko\u0144cu tworzenie schematu bazy danych. W tym artykule przejdziemy przez ka\u017cdy z tych etap\u00f3w, pokazuj\u0105c, jak przekszta\u0142ci\u0107 koncepcj\u0119 w dobrze zorganizowan\u0105 i zoptymalizowan\u0105 baz\u0119 danych systemu bibliotecznego. Proces modelowania danych od ERD, przez normalizacj\u0119 do schematu bazy danych Diagram encji i relacji (ERD) Pierwszym krokiem w projektowaniu bazy danych systemu bibliotecznego jest stworzenie diagramu encji i relacji (ERD). Diagram ERD to wizualne przedstawienie encji danych i ich relacji w systemie. Oto kluczowe elementy do rozwa\u017cenia: a. Encje: Zidentyfikuj g\u0142\u00f3wne encje w systemie bibliotecznym. Mog\u0105 to by\u0107 ksi\u0105\u017cki, autorzy, czytelnicy, pracownicy oraz transakcje. b. Atrybuty: Dla ka\u017cdej encji zdefiniuj atrybuty lub w\u0142a\u015bciwo\u015bci. Na przyk\u0142ad encja \u201eKsi\u0105\u017cka\u201d mo\u017ce mie\u0107 atrybuty takie jak ISBN, tytu\u0142, autor, data wydania itd. c. Relacje: Okre\u015bl relacje mi\u0119dzy encjami. Na przyk\u0142ad encja \u201eCzytelnik\u201d mo\u017ce mie\u0107 relacj\u0119 \u201eWypo\u017cyczy\u0107\u201d z encj\u0105 \u201eKsi\u0105\u017cka\u201d, aby przedstawi\u0107 wypo\u017cyczenie ksi\u0105\u017cek. d. Mocno\u015b\u0107 relacji: Okre\u015bl mocno\u015b\u0107 relacji, wskazuj\u0105c, ile wyst\u0105pie\u0144 jednej encji jest powi\u0105zanych z drug\u0105. Na przyk\u0142ad jeden czytelnik mo\u017ce wypo\u017cyczy\u0107 wiele ksi\u0105\u017cek, ale ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 wypo\u017cyczona tylko przez jednego czytelnika w danym momencie. Normalizacja Normalizacja to proces organizowania danych w bazie danych w celu usuni\u0119cia nadmiarowo\u015bci i poprawy integralno\u015bci danych. Celem jest minimalizacja powtarzania si\u0119 danych oraz zapewnienie, \u017ce ka\u017cda cz\u0119\u015b\u0107 informacji jest przechowywana w najbardziej odpowiednim miejscu. Oto kroki prowadz\u0105ce do normalizacji bazy danych systemu bibliotecznego: a. Zidentyfikuj zale\u017cno\u015bci funkcyjne: przeanalizuj atrybuty w swoich encjach i okre\u015bl, kt\u00f3re atrybuty zale\u017c\u0105 od innych. Na przyk\u0142ad w encji \u201eKsi\u0105\u017cka\u201d imi\u0119 autora zale\u017cy od ISBN ksi\u0105\u017cki. b. Zastosuj zasady normalizacji: u\u017cyj zasad normalizacji (np. Pierwsza Forma Normalna, Druga Forma Normalna, Trzecia Forma Normalna), aby roz\u0142o\u017cy\u0107 z\u0142o\u017cone encje na proste i stworzy\u0107 osobne tabele dla powi\u0105zanych informacji. c. Utw\u00f3rz relacje: utw\u00f3rz relacje mi\u0119dzy znormalizowanymi tabelami za pomoc\u0105 kluczy g\u0142\u00f3wnych i obcych, aby zachowa\u0107 integralno\u015b\u0107 danych. d. Usu\u0144 nadmiarowo\u015b\u0107: upewnij si\u0119, \u017ce ka\u017cda cz\u0119\u015b\u0107 danych jest przechowywana tylko w jednym miejscu. Na przyk\u0142ad informacje o autorze powinny by\u0107 przechowywane w osobnej tabeli \u201eAutor\u201d, a nie powtarza\u0107 si\u0119 w ka\u017cdym wpisie ksi\u0105\u017cki. Schemat bazy danych Gdy Twoja baza danych zostanie w pe\u0142ni znormalizowana, mo\u017cesz przej\u015b\u0107 do tworzenia schematu bazy danych. Schemat definiuje struktur\u0119 bazy danych, w tym tabele, kolumny, typy danych i ograniczenia. Oto kroki tworzenia schematu bazy danych dla systemu bibliotecznego: a. Zdefiniuj tabele: utw\u00f3rz tabele na podstawie encji zidentyfikowanych w diagramie ERD i danych znormalizowanych. Ka\u017cda tabela powinna reprezentowa\u0107 okre\u015blon\u0105 encj\u0119 (np. \u201eKsi\u0105\u017cki\u201d, \u201eAutorzy\u201d, \u201eCzytelnicy\u201d). b. Zdefiniuj kolumny: okre\u015bl kolumny dla ka\u017cdej tabeli, reprezentuj\u0105ce atrybuty zidentyfikowane w diagramie ERD. Upewnij si\u0119, \u017ce typy danych i ograniczenia (np. klucze g\u0142\u00f3wne, klucze obce, ograniczenia unikalno\u015bci) s\u0105 poprawnie zdefiniowane. c. Ustal relacje: u\u017cyj kluczy obcych, aby utworzy\u0107 relacje mi\u0119dzy tabelami, \u0142\u0105cz\u0105c powi\u0105zane dane. Na przyk\u0142ad tabela \u201eKsi\u0105\u017cki\u201d mo\u017ce mie\u0107 klucz obcy odnosz\u0105cy si\u0119 do tabeli \u201eAutorzy\u201d. d. Indeksowanie: zaimplementuj indeksowanie kolumn cz\u0119sto u\u017cywanych do wyszukiwania, aby poprawi\u0107 wydajno\u015b\u0107 zapyta\u0144. Przyk\u0142ad studium przypadku: system biblioteczny Diagram encji i relacji Zdefiniowali\u015bmy cztery tabele: Autorzy, Ksi\u0105\u017cki, Czytelnicy i Transakcje. Oto co reprezentuje ka\u017cda z nich: Autorzy: zawiera informacje o autorach ksi\u0105\u017cek. Ma AuthorID jako klucz g\u0142\u00f3wny i atrybut Name. Ksi\u0105\u017cki: reprezentuje szczeg\u00f3\u0142y dotycz\u0105ce ksi\u0105\u017cek. Zawiera ISBN (klucz g\u0142\u00f3wny), tytu\u0142, dat\u0119 wydania oraz AuthorID jako klucz obcy, odnosz\u0105cy si\u0119 do tabeli Autorzy, aby utworzy\u0107 relacj\u0119 mi\u0119dzy ksi\u0105\u017ckami a autorami. Czytelnicy: przechowuje informacje o czytelnikach biblioteki. Ma PatronID jako klucz g\u0142\u00f3wny i atrybut Name. Transakcje: ta tabela rejestruje transakcje, gdy czytelnicy wypo\u017cyczaj\u0105 ksi\u0105\u017cki. Zawiera TransactionID (klucz g\u0142\u00f3wny), BookID (klucz obcy odnosz\u0105cy si\u0119 do Ksi\u0105\u017cek), PatronID (klucz obcy odnosz\u0105cy si\u0119 do Czytelnik\u00f3w) oraz DueDate. Relacje mi\u0119dzy tymi tabelami s\u0105 przedstawione nast\u0119puj\u0105co: Autorzy i ksi\u0105\u017cki s\u0105 ze sob\u0105 powi\u0105zani relacj\u0105 jeden do wielu, co oznacza, \u017ce jeden autor mo\u017ce napisa\u0107 wiele ksi\u0105\u017cek. Ksi\u0105\u017cki i transakcje s\u0105 ze sob\u0105 powi\u0105zane, co oznacza, \u017ce ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 cz\u0119\u015bci\u0105 wielu transakcji, ale ka\u017cda transakcja odnosi si\u0119 do jednej ksi\u0105\u017cki. Czytelnicy i transakcje s\u0105 ze sob\u0105 po\u0142\u0105czone, co oznacza, \u017ce ka\u017cdy czytelnik mo\u017ce mie\u0107 wiele transakcji, ale ka\u017cda transakcja nale\u017cy do jednego czytelnika. Proces normalizacji Przejd\u017amy przez proces normalizacji dla bazy danych naszego systemu bibliotecznego przy u\u017cyciu tabel. Zaczniemy od pocz\u0105tkowego zestawu tabel i stopniowo je normalizujemy przez Pierwsz\u0105 Form\u0119 Normaln\u0105 (1NF), Drug\u0105 Form\u0119 Normaln\u0105 (2NF) i Trzeci\u0105 Form\u0119 Normaln\u0105 (3NF). Pocz\u0105tkowe tabele: Ksi\u0105\u017cki ISBN (KLUCZ G\u0141\u00d3WNY) Tytu\u0142 Data wydania AuthorID (KLUCZ OBCE) Autorzy AuthorID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Czytelnicy PatronID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Transakcje TransactionID (KLUCZ G\u0141\u00d3WNY) BookID (KLUCZ OBCE) PatronID (KLUCZ OBCE) Data zwrotu Pierwsza Forma Normalna (1NF): W Pierwszej Formie Normalnej ka\u017cda tabela powinna mie\u0107 klucz g\u0142\u00f3wny, a w \u017cadnej kolumnie nie powinno by\u0107 powtarzaj\u0105cych si\u0119 grup ani tablic. Nasze pocz\u0105tkowe tabele ju\u017c spe\u0142niaj\u0105 1NF, poniewa\u017c maj\u0105 klucze g\u0142\u00f3wne, a ka\u017cdy kom\u00f3rk\u0119 zawiera jedn\u0105 warto\u015b\u0107. Druga Forma Normalna (2NF): Aby osi\u0105gn\u0105\u0107 2NF, musimy zapewni\u0107, \u017ce atrybuty niekluczowe zale\u017c\u0105 od ca\u0142ego klucza g\u0142\u00f3wnego. W naszych pocz\u0105tkowych tabelach tabela Ksi\u0105\u017cki ma zale\u017cno\u015b\u0107 cz\u0119\u015bciow\u0105, poniewa\u017c Tytu\u0142 i Data wydania zale\u017c\u0105 tylko od ISBN, a nie od ca\u0142ego klucza g\u0142\u00f3wnego. Podzielimy tabel\u0119 Ksi\u0105\u017cki na dwie tabele: Ksi\u0105\u017cki (2NF): ISBN (KLUCZ G\u0141\u00d3WNY) AuthorID (KLUCZ OBCE) Dane ksi\u0105\u017cki (2NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Teraz ka\u017cda tabela ma atrybuty zale\u017cne od ca\u0142ego klucza g\u0142\u00f3wnego. Trzecia posta\u0107 normalna (3NF): W 3NF eliminujemy zale\u017cno\u015bci przechodnie. Tabela Patrons nie ma zale\u017cno\u015bci przechodnich, ale tabela Transactions ma zale\u017cno\u015b\u0107 przechodni\u0105 od Books poprzez BookID. Aby usun\u0105\u0107 t\u0119 zale\u017cno\u015b\u0107, stworzymy now\u0105 tabel\u0119 dla transakcji: Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) ID_U\u017cytkownika (Klucz obcy) Data zwrotu Wypo\u017cyczone_Ksi\u0105\u017cki (3NF): ID_Transakcji (Klucz obcy) ID_Ksi\u0105\u017cki (Klucz obcy) Teraz tabela Transakcje zale\u017cy tylko od ID_U\u017cytkownika, a tabela Wypo\u017cyczone_Ksi\u0105\u017cki zarz\u0105dza relacj\u0105 mi\u0119dzy transakcjami a ksi\u0105\u017ckami. Nasze znormalizowane tabele w 3NF s\u0105 nast\u0119puj\u0105ce: Ksi\u0105\u017cki (3NF): ISBN (Klucz g\u0142\u00f3wny) ID_Autora (Klucz obcy) Dane_Ksi\u0105\u017cki (3NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Autorzy (3NF): ID_Autora (Klucz g\u0142\u00f3wny) Imi\u0119 U\u017cytkownicy (3NF): ID_U\u017cytkownika (Klucz g\u0142\u00f3wny) Imi\u0119 Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) PatronID (Klucz obcy) Data zwrotu Wypo\u017cyczone ksi\u0105\u017cki (3NF): TransactionID (Klucz obcy) BookID (Klucz obcy) Poprzez stosowanie procesu normalizacji do 3NF poprawili\u015bmy integralno\u015b\u0107 danych,Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych\" \/>\n<meta property=\"og:url\" content=\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Guides Polish\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-05T01:34:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"},\"headline\":\"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych\",\"datePublished\":\"2026-02-05T01:34:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"},\"wordCount\":1449,\"commentCount\":0,\"articleSection\":[\"Data Modeling \/ Database\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\",\"url\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\",\"name\":\"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides Polish\",\"isPartOf\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/#website\"},\"datePublished\":\"2026-02-05T01:34:54+00:00\",\"author\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/#\/schema\/person\/292e97a06c90d6d605ddfd451bfdfe6f\"},\"breadcrumb\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/guides.visual-paradigm.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Modeling \/ Database\",\"item\":\"https:\/\/guides.visual-paradigm.com\/pl\/category\/data-modeling-database\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/pl\/#website\",\"url\":\"https:\/\/guides.visual-paradigm.com\/pl\/\",\"name\":\"Visual Paradigm Guides Polish\",\"description\":\"Smart guides for an AI-driven world\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/guides.visual-paradigm.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides 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:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","og_locale":"pl_PL","og_type":"article","og_title":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides Polish","og_description":"Wprowadzenie Projektowanie solidnego i efektywnego systemu baz danych jest kluczowym krokiem w tworzeniu systemu zarz\u0105dzania bibliotek\u0105. Ten proces obejmuje kilka etap\u00f3w, zaczynaj\u0105c od projektowania diagramu encji i relacji (ERD), po normalizacj\u0119, a na ko\u0144cu tworzenie schematu bazy danych. W tym artykule przejdziemy przez ka\u017cdy z tych etap\u00f3w, pokazuj\u0105c, jak przekszta\u0142ci\u0107 koncepcj\u0119 w dobrze zorganizowan\u0105 i zoptymalizowan\u0105 baz\u0119 danych systemu bibliotecznego. Proces modelowania danych od ERD, przez normalizacj\u0119 do schematu bazy danych Diagram encji i relacji (ERD) Pierwszym krokiem w projektowaniu bazy danych systemu bibliotecznego jest stworzenie diagramu encji i relacji (ERD). Diagram ERD to wizualne przedstawienie encji danych i ich relacji w systemie. Oto kluczowe elementy do rozwa\u017cenia: a. Encje: Zidentyfikuj g\u0142\u00f3wne encje w systemie bibliotecznym. Mog\u0105 to by\u0107 ksi\u0105\u017cki, autorzy, czytelnicy, pracownicy oraz transakcje. b. Atrybuty: Dla ka\u017cdej encji zdefiniuj atrybuty lub w\u0142a\u015bciwo\u015bci. Na przyk\u0142ad encja \u201eKsi\u0105\u017cka\u201d mo\u017ce mie\u0107 atrybuty takie jak ISBN, tytu\u0142, autor, data wydania itd. c. Relacje: Okre\u015bl relacje mi\u0119dzy encjami. Na przyk\u0142ad encja \u201eCzytelnik\u201d mo\u017ce mie\u0107 relacj\u0119 \u201eWypo\u017cyczy\u0107\u201d z encj\u0105 \u201eKsi\u0105\u017cka\u201d, aby przedstawi\u0107 wypo\u017cyczenie ksi\u0105\u017cek. d. Mocno\u015b\u0107 relacji: Okre\u015bl mocno\u015b\u0107 relacji, wskazuj\u0105c, ile wyst\u0105pie\u0144 jednej encji jest powi\u0105zanych z drug\u0105. Na przyk\u0142ad jeden czytelnik mo\u017ce wypo\u017cyczy\u0107 wiele ksi\u0105\u017cek, ale ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 wypo\u017cyczona tylko przez jednego czytelnika w danym momencie. Normalizacja Normalizacja to proces organizowania danych w bazie danych w celu usuni\u0119cia nadmiarowo\u015bci i poprawy integralno\u015bci danych. Celem jest minimalizacja powtarzania si\u0119 danych oraz zapewnienie, \u017ce ka\u017cda cz\u0119\u015b\u0107 informacji jest przechowywana w najbardziej odpowiednim miejscu. Oto kroki prowadz\u0105ce do normalizacji bazy danych systemu bibliotecznego: a. Zidentyfikuj zale\u017cno\u015bci funkcyjne: przeanalizuj atrybuty w swoich encjach i okre\u015bl, kt\u00f3re atrybuty zale\u017c\u0105 od innych. Na przyk\u0142ad w encji \u201eKsi\u0105\u017cka\u201d imi\u0119 autora zale\u017cy od ISBN ksi\u0105\u017cki. b. Zastosuj zasady normalizacji: u\u017cyj zasad normalizacji (np. Pierwsza Forma Normalna, Druga Forma Normalna, Trzecia Forma Normalna), aby roz\u0142o\u017cy\u0107 z\u0142o\u017cone encje na proste i stworzy\u0107 osobne tabele dla powi\u0105zanych informacji. c. Utw\u00f3rz relacje: utw\u00f3rz relacje mi\u0119dzy znormalizowanymi tabelami za pomoc\u0105 kluczy g\u0142\u00f3wnych i obcych, aby zachowa\u0107 integralno\u015b\u0107 danych. d. Usu\u0144 nadmiarowo\u015b\u0107: upewnij si\u0119, \u017ce ka\u017cda cz\u0119\u015b\u0107 danych jest przechowywana tylko w jednym miejscu. Na przyk\u0142ad informacje o autorze powinny by\u0107 przechowywane w osobnej tabeli \u201eAutor\u201d, a nie powtarza\u0107 si\u0119 w ka\u017cdym wpisie ksi\u0105\u017cki. Schemat bazy danych Gdy Twoja baza danych zostanie w pe\u0142ni znormalizowana, mo\u017cesz przej\u015b\u0107 do tworzenia schematu bazy danych. Schemat definiuje struktur\u0119 bazy danych, w tym tabele, kolumny, typy danych i ograniczenia. Oto kroki tworzenia schematu bazy danych dla systemu bibliotecznego: a. Zdefiniuj tabele: utw\u00f3rz tabele na podstawie encji zidentyfikowanych w diagramie ERD i danych znormalizowanych. Ka\u017cda tabela powinna reprezentowa\u0107 okre\u015blon\u0105 encj\u0119 (np. \u201eKsi\u0105\u017cki\u201d, \u201eAutorzy\u201d, \u201eCzytelnicy\u201d). b. Zdefiniuj kolumny: okre\u015bl kolumny dla ka\u017cdej tabeli, reprezentuj\u0105ce atrybuty zidentyfikowane w diagramie ERD. Upewnij si\u0119, \u017ce typy danych i ograniczenia (np. klucze g\u0142\u00f3wne, klucze obce, ograniczenia unikalno\u015bci) s\u0105 poprawnie zdefiniowane. c. Ustal relacje: u\u017cyj kluczy obcych, aby utworzy\u0107 relacje mi\u0119dzy tabelami, \u0142\u0105cz\u0105c powi\u0105zane dane. Na przyk\u0142ad tabela \u201eKsi\u0105\u017cki\u201d mo\u017ce mie\u0107 klucz obcy odnosz\u0105cy si\u0119 do tabeli \u201eAutorzy\u201d. d. Indeksowanie: zaimplementuj indeksowanie kolumn cz\u0119sto u\u017cywanych do wyszukiwania, aby poprawi\u0107 wydajno\u015b\u0107 zapyta\u0144. Przyk\u0142ad studium przypadku: system biblioteczny Diagram encji i relacji Zdefiniowali\u015bmy cztery tabele: Autorzy, Ksi\u0105\u017cki, Czytelnicy i Transakcje. Oto co reprezentuje ka\u017cda z nich: Autorzy: zawiera informacje o autorach ksi\u0105\u017cek. Ma AuthorID jako klucz g\u0142\u00f3wny i atrybut Name. Ksi\u0105\u017cki: reprezentuje szczeg\u00f3\u0142y dotycz\u0105ce ksi\u0105\u017cek. Zawiera ISBN (klucz g\u0142\u00f3wny), tytu\u0142, dat\u0119 wydania oraz AuthorID jako klucz obcy, odnosz\u0105cy si\u0119 do tabeli Autorzy, aby utworzy\u0107 relacj\u0119 mi\u0119dzy ksi\u0105\u017ckami a autorami. Czytelnicy: przechowuje informacje o czytelnikach biblioteki. Ma PatronID jako klucz g\u0142\u00f3wny i atrybut Name. Transakcje: ta tabela rejestruje transakcje, gdy czytelnicy wypo\u017cyczaj\u0105 ksi\u0105\u017cki. Zawiera TransactionID (klucz g\u0142\u00f3wny), BookID (klucz obcy odnosz\u0105cy si\u0119 do Ksi\u0105\u017cek), PatronID (klucz obcy odnosz\u0105cy si\u0119 do Czytelnik\u00f3w) oraz DueDate. Relacje mi\u0119dzy tymi tabelami s\u0105 przedstawione nast\u0119puj\u0105co: Autorzy i ksi\u0105\u017cki s\u0105 ze sob\u0105 powi\u0105zani relacj\u0105 jeden do wielu, co oznacza, \u017ce jeden autor mo\u017ce napisa\u0107 wiele ksi\u0105\u017cek. Ksi\u0105\u017cki i transakcje s\u0105 ze sob\u0105 powi\u0105zane, co oznacza, \u017ce ka\u017cda ksi\u0105\u017cka mo\u017ce by\u0107 cz\u0119\u015bci\u0105 wielu transakcji, ale ka\u017cda transakcja odnosi si\u0119 do jednej ksi\u0105\u017cki. Czytelnicy i transakcje s\u0105 ze sob\u0105 po\u0142\u0105czone, co oznacza, \u017ce ka\u017cdy czytelnik mo\u017ce mie\u0107 wiele transakcji, ale ka\u017cda transakcja nale\u017cy do jednego czytelnika. Proces normalizacji Przejd\u017amy przez proces normalizacji dla bazy danych naszego systemu bibliotecznego przy u\u017cyciu tabel. Zaczniemy od pocz\u0105tkowego zestawu tabel i stopniowo je normalizujemy przez Pierwsz\u0105 Form\u0119 Normaln\u0105 (1NF), Drug\u0105 Form\u0119 Normaln\u0105 (2NF) i Trzeci\u0105 Form\u0119 Normaln\u0105 (3NF). Pocz\u0105tkowe tabele: Ksi\u0105\u017cki ISBN (KLUCZ G\u0141\u00d3WNY) Tytu\u0142 Data wydania AuthorID (KLUCZ OBCE) Autorzy AuthorID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Czytelnicy PatronID (KLUCZ G\u0141\u00d3WNY) Imi\u0119 Transakcje TransactionID (KLUCZ G\u0141\u00d3WNY) BookID (KLUCZ OBCE) PatronID (KLUCZ OBCE) Data zwrotu Pierwsza Forma Normalna (1NF): W Pierwszej Formie Normalnej ka\u017cda tabela powinna mie\u0107 klucz g\u0142\u00f3wny, a w \u017cadnej kolumnie nie powinno by\u0107 powtarzaj\u0105cych si\u0119 grup ani tablic. Nasze pocz\u0105tkowe tabele ju\u017c spe\u0142niaj\u0105 1NF, poniewa\u017c maj\u0105 klucze g\u0142\u00f3wne, a ka\u017cdy kom\u00f3rk\u0119 zawiera jedn\u0105 warto\u015b\u0107. Druga Forma Normalna (2NF): Aby osi\u0105gn\u0105\u0107 2NF, musimy zapewni\u0107, \u017ce atrybuty niekluczowe zale\u017c\u0105 od ca\u0142ego klucza g\u0142\u00f3wnego. W naszych pocz\u0105tkowych tabelach tabela Ksi\u0105\u017cki ma zale\u017cno\u015b\u0107 cz\u0119\u015bciow\u0105, poniewa\u017c Tytu\u0142 i Data wydania zale\u017c\u0105 tylko od ISBN, a nie od ca\u0142ego klucza g\u0142\u00f3wnego. Podzielimy tabel\u0119 Ksi\u0105\u017cki na dwie tabele: Ksi\u0105\u017cki (2NF): ISBN (KLUCZ G\u0141\u00d3WNY) AuthorID (KLUCZ OBCE) Dane ksi\u0105\u017cki (2NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Teraz ka\u017cda tabela ma atrybuty zale\u017cne od ca\u0142ego klucza g\u0142\u00f3wnego. Trzecia posta\u0107 normalna (3NF): W 3NF eliminujemy zale\u017cno\u015bci przechodnie. Tabela Patrons nie ma zale\u017cno\u015bci przechodnich, ale tabela Transactions ma zale\u017cno\u015b\u0107 przechodni\u0105 od Books poprzez BookID. Aby usun\u0105\u0107 t\u0119 zale\u017cno\u015b\u0107, stworzymy now\u0105 tabel\u0119 dla transakcji: Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) ID_U\u017cytkownika (Klucz obcy) Data zwrotu Wypo\u017cyczone_Ksi\u0105\u017cki (3NF): ID_Transakcji (Klucz obcy) ID_Ksi\u0105\u017cki (Klucz obcy) Teraz tabela Transakcje zale\u017cy tylko od ID_U\u017cytkownika, a tabela Wypo\u017cyczone_Ksi\u0105\u017cki zarz\u0105dza relacj\u0105 mi\u0119dzy transakcjami a ksi\u0105\u017ckami. Nasze znormalizowane tabele w 3NF s\u0105 nast\u0119puj\u0105ce: Ksi\u0105\u017cki (3NF): ISBN (Klucz g\u0142\u00f3wny) ID_Autora (Klucz obcy) Dane_Ksi\u0105\u017cki (3NF): ISBN (Klucz obcy) Tytu\u0142 Data publikacji Autorzy (3NF): ID_Autora (Klucz g\u0142\u00f3wny) Imi\u0119 U\u017cytkownicy (3NF): ID_U\u017cytkownika (Klucz g\u0142\u00f3wny) Imi\u0119 Transakcje (3NF): ID_Transakcji (Klucz g\u0142\u00f3wny) PatronID (Klucz obcy) Data zwrotu Wypo\u017cyczone ksi\u0105\u017cki (3NF): TransactionID (Klucz obcy) BookID (Klucz obcy) Poprzez stosowanie procesu normalizacji do 3NF poprawili\u015bmy integralno\u015b\u0107 danych,Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych","og_url":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","og_site_name":"Visual Paradigm Guides Polish","article_published_time":"2026-02-05T01:34:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"vpadmin","Szacowany czas czytania":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#article","isPartOf":{"@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"headline":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych","datePublished":"2026-02-05T01:34:54+00:00","mainEntityOfPage":{"@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"},"wordCount":1449,"commentCount":0,"articleSection":["Data Modeling \/ Database"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","url":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/","name":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych - Visual Paradigm Guides Polish","isPartOf":{"@id":"https:\/\/guides.visual-paradigm.com\/pl\/#website"},"datePublished":"2026-02-05T01:34:54+00:00","author":{"@id":"https:\/\/guides.visual-paradigm.com\/pl\/#\/schema\/person\/292e97a06c90d6d605ddfd451bfdfe6f"},"breadcrumb":{"@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/guides.visual-paradigm.com\/pl\/designing-a-library-system-from-erd-to-normalization-to-database-schema\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/guides.visual-paradigm.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Data Modeling \/ Database","item":"https:\/\/guides.visual-paradigm.com\/pl\/category\/data-modeling-database\/"},{"@type":"ListItem","position":3,"name":"Projektowanie systemu bibliotecznego: od diagramu ERD przez normalizacj\u0119 do schematu bazy danych"}]},{"@type":"WebSite","@id":"https:\/\/guides.visual-paradigm.com\/pl\/#website","url":"https:\/\/guides.visual-paradigm.com\/pl\/","name":"Visual Paradigm Guides Polish","description":"Smart guides for an AI-driven world","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/guides.visual-paradigm.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"}]}},"_links":{"self":[{"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/posts\/6549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/comments?post=6549"}],"version-history":[{"count":0,"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/posts\/6549\/revisions"}],"wp:attachment":[{"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/media?parent=6549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/categories?post=6549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/pl\/wp-json\/wp\/v2\/tags?post=6549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}