Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit 277749d

Browse files
authoredFeb 24, 2024
[RDBMS] Complete database documentation part (#186)
[RDBMS] Complete database documentation part
2 parents 83fabc9 + db6ff27 commit 277749d

File tree

12 files changed

+1478
-811
lines changed

12 files changed

+1478
-811
lines changed
 

‎poetry.lock

Lines changed: 100 additions & 99 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "python-course"
3-
version = "2023.11.dev"
3+
version = "2024.02.dev"
44
description = "Python training course materials"
55
license = "MIT"
66
authors = [

‎requirements.txt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
alabaster==0.7.13 ; python_version >= "3.9" and python_version < "4.0"
1+
alabaster==0.7.16 ; python_version >= "3.9" and python_version < "4.0"
22
babel==2.14.0 ; python_version >= "3.9" and python_version < "4.0"
3-
certifi==2023.11.17 ; python_version >= "3.9" and python_version < "4.0"
3+
certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0"
44
charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0"
55
click==8.1.7 ; python_version >= "3.9" and python_version < "4.0"
66
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows"
77
docutils==0.18.1 ; python_version >= "3.9" and python_version < "4.0"
88
idna==3.6 ; python_version >= "3.9" and python_version < "4.0"
99
imagesize==1.4.1 ; python_version >= "3.9" and python_version < "4.0"
1010
importlib-metadata==7.0.1 ; python_version >= "3.9" and python_version < "3.10"
11-
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0"
11+
jinja2==3.1.3 ; python_version >= "3.9" and python_version < "4.0"
1212
latexcodec==2.0.1 ; python_version >= "3.9" and python_version < "4.0"
1313
markdown-it-py==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
14-
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0"
14+
markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0"
1515
mdit-py-plugins==0.3.5 ; python_version >= "3.9" and python_version < "4.0"
1616
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
1717
myst-parser==1.0.0 ; python_version >= "3.9" and python_version < "4.0"
@@ -21,24 +21,24 @@ pybtex==0.24.0 ; python_version >= "3.9" and python_version < "4.0"
2121
pygments==2.17.2 ; python_version >= "3.9" and python_version < "4.0"
2222
pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4.0"
2323
requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0"
24-
setuptools==69.0.3 ; python_version >= "3.9" and python_version < "4.0"
24+
setuptools==69.1.0 ; python_version >= "3.9" and python_version < "4.0"
2525
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0"
2626
snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
2727
sphinx-copybutton==0.5.2 ; python_version >= "3.9" and python_version < "4.0"
2828
sphinx-intl==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
2929
sphinx-reredirects==0.1.3 ; python_version >= "3.9" and python_version < "4.0"
3030
sphinx-rtd-theme==1.3.0 ; python_version >= "3.9" and python_version < "4.0"
3131
sphinx==6.2.1 ; python_version >= "3.9" and python_version < "4.0"
32-
sphinxcontrib-applehelp==1.0.7 ; python_version >= "3.9" and python_version < "4.0"
32+
sphinxcontrib-applehelp==1.0.8 ; python_version >= "3.9" and python_version < "4.0"
3333
sphinxcontrib-bibtex==2.5.0 ; python_version >= "3.9" and python_version < "4.0"
34-
sphinxcontrib-devhelp==1.0.5 ; python_version >= "3.9" and python_version < "4.0"
35-
sphinxcontrib-htmlhelp==2.0.4 ; python_version >= "3.9" and python_version < "4.0"
34+
sphinxcontrib-devhelp==1.0.6 ; python_version >= "3.9" and python_version < "4.0"
35+
sphinxcontrib-htmlhelp==2.0.5 ; python_version >= "3.9" and python_version < "4.0"
3636
sphinxcontrib-jquery==4.1 ; python_version >= "3.9" and python_version < "4.0"
3737
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" and python_version < "4.0"
3838
sphinxcontrib-mermaid==0.8.1 ; python_version >= "3.9" and python_version < "4.0"
39-
sphinxcontrib-qthelp==1.0.6 ; python_version >= "3.9" and python_version < "4.0"
40-
sphinxcontrib-serializinghtml==1.1.9 ; python_version >= "3.9" and python_version < "4.0"
39+
sphinxcontrib-qthelp==1.0.7 ; python_version >= "3.9" and python_version < "4.0"
40+
sphinxcontrib-serializinghtml==1.1.10 ; python_version >= "3.9" and python_version < "4.0"
4141
sphinxcontrib-svg2pdfconverter==1.2.2 ; python_version >= "3.9" and python_version < "4.0"
4242
toml==0.10.2 ; python_version >= "3.9" and python_version < "4.0"
43-
urllib3==2.1.0 ; python_version >= "3.9" and python_version < "4.0"
43+
urllib3==2.2.1 ; python_version >= "3.9" and python_version < "4.0"
4444
zipp==3.17.0 ; python_version >= "3.9" and python_version < "3.10"
Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
# SOME DESCRIPTIVE TITLE.
2+
# Copyright (C) 2024, Python training course authors and contributors
3+
# This file is distributed under the same license as the Python Training
4+
# Course package.
5+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
6+
#
7+
#, fuzzy
8+
msgid ""
9+
msgstr ""
10+
"Project-Id-Version: Python Training Course 2024.02.dev\n"
11+
"Report-Msgid-Bugs-To: \n"
12+
"POT-Creation-Date: 2024-02-18 16:48+0200\n"
13+
"PO-Revision-Date: 2024-02-18 16:59+0200\n"
14+
"Last-Translator: Serhii Horodilov <sgorodil@gmail.com>\n"
15+
"Language-Team: uk <LL@li.org>\n"
16+
"Language: uk\n"
17+
"MIME-Version: 1.0\n"
18+
"Content-Type: text/plain; charset=utf-8\n"
19+
"Content-Transfer-Encoding: 8bit\n"
20+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
21+
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
22+
"Generated-By: Babel 2.14.0\n"
23+
"X-Generator: Poedit 3.4.2\n"
24+
25+
#: ../../src/rdbms/acid.txt:-1
26+
msgid "Database normalization"
27+
msgstr "Нормалізація бази даних"
28+
29+
#: ../../src/rdbms/acid.txt:-1
30+
msgid "Serhii Horodilov"
31+
msgstr "Serhii Horodilov"
32+
33+
#: ../../src/rdbms/acid.txt:-1
34+
msgid "sql, db, database, acid, atomic, consistent, isolated, durable"
35+
msgstr "sql, db, database, acid, atomic, consistent, isolated, durable"
36+
37+
#: ../../src/rdbms/acid.txt:8
38+
msgid "ACID"
39+
msgstr "ACID"
40+
41+
#: ../../src/rdbms/acid.txt:10
42+
msgid ""
43+
":abbr:`ACID (Atomicity, Consistency, Isolation, Durability)` is a set of "
44+
"properties of database transactions intended to guarantee data validity "
45+
"despite errors, power failures, and other mishaps. In the context of "
46+
"databases, a sequence of database operations that satisfies the ACID "
47+
"properties is called a transaction."
48+
msgstr ""
49+
":abbr:`ACID (Atomicity, Consistency, Isolation, Durability - атомарність, "
50+
"узгодженість, ізоляція, довговічність)` - це набір властивостей транзакцій "
51+
"бази даних, призначених для гарантування дійсності даних, незважаючи на "
52+
"помилки, збої в електропостачанні та інші непередбачувані ситуації. У "
53+
"контексті баз даних послідовність операцій з базою даних, яка задовольняє "
54+
"властивості ACID, називається транзакцією."
55+
56+
#: ../../src/rdbms/acid.txt:17
57+
msgid "Atomicity"
58+
msgstr "Атомарність"
59+
60+
#: ../../src/rdbms/acid.txt:19
61+
msgid ""
62+
"Transactions are often composed of multiple statements. Atomicity guarantees "
63+
"that each transaction is treated as a single \"unit\", which either succeeds "
64+
"completely, or fails completely: if any of the statements constituting a "
65+
"transaction fails to complete, the entire transaction fails and the database "
66+
"left unchanged. A guarantee of atomicity prevents updates to the database "
67+
"from occurring only partially, which can cause greater problems, than "
68+
"rejecting the whole series outright."
69+
msgstr ""
70+
"Транзакції часто складаються з декількох операцій. Атомарність гарантує, що "
71+
"кожна транзакція розглядається як одна \"одиниця\", яка або повністю "
72+
"завершується успішно, або повністю провалюється: якщо будь-який з "
73+
"операторів, що складають транзакцію, не завершується, вся транзакція "
74+
"провалюється, а база даних залишається незмінною. Гарантія атомарності "
75+
"запобігає частковому оновленню бази даних, що може спричинити більші "
76+
"проблеми, ніж повна відмова від усієї серії оновлень даних."
77+
78+
#: ../../src/rdbms/acid.txt:27
79+
msgid "As an example, there are few rows in an accounting table:"
80+
msgstr "Наприклад, в бухгалтерській таблиці є кілька рядків:"
81+
82+
#: ../../src/rdbms/acid.txt:29
83+
msgid "accounting"
84+
msgstr "accounting"
85+
86+
#: ../../src/rdbms/acid.txt:32
87+
msgid "person_id"
88+
msgstr "person_id"
89+
90+
#: ../../src/rdbms/acid.txt:32
91+
msgid "name"
92+
msgstr "name"
93+
94+
#: ../../src/rdbms/acid.txt:32
95+
msgid "balance"
96+
msgstr "balance"
97+
98+
#: ../../src/rdbms/acid.txt:34 ../../src/rdbms/acid.txt:40
99+
msgid "..."
100+
msgstr "..."
101+
102+
#: ../../src/rdbms/acid.txt:36 ../../src/rdbms/acid.txt:53
103+
msgid "529"
104+
msgstr "529"
105+
106+
#: ../../src/rdbms/acid.txt:36 ../../src/rdbms/acid.txt:53
107+
msgid "Dora Headstrong"
108+
msgstr "Dora Headstrong"
109+
110+
#: ../../src/rdbms/acid.txt:36
111+
msgid "$1,000"
112+
msgstr "$1,000"
113+
114+
#: ../../src/rdbms/acid.txt:38 ../../src/rdbms/acid.txt:55
115+
msgid "402"
116+
msgstr "402"
117+
118+
#: ../../src/rdbms/acid.txt:38 ../../src/rdbms/acid.txt:55
119+
msgid "Toby Mugwort"
120+
msgstr "Toby Mugwort"
121+
122+
#: ../../src/rdbms/acid.txt:38 ../../src/rdbms/acid.txt:55
123+
msgid "$100"
124+
msgstr "$100"
125+
126+
#: ../../src/rdbms/acid.txt:43
127+
msgid ""
128+
"In case, Dora wants to transfer $100 to Toby, this can be split into 3 "
129+
"statements:"
130+
msgstr "Якщо Дора хоче переказати $100 Тобі, це можна розбити на 3 операції:"
131+
132+
#: ../../src/rdbms/acid.txt:46
133+
msgid "Check if $100 is available"
134+
msgstr "Перевірити, чи доступні $100"
135+
136+
#: ../../src/rdbms/acid.txt:47
137+
msgid "Deduct $100 from Dora's balance"
138+
msgstr "Відняти $100 з балансу Дори"
139+
140+
#: ../../src/rdbms/acid.txt:48
141+
msgid "Add $100 to Toby's balance"
142+
msgstr "Додати $100 на баланс Тобі"
143+
144+
#: ../../src/rdbms/acid.txt:50
145+
msgid "In case the 3rd statement fails, the data may stay as:"
146+
msgstr "Якщо 3-й оператор не спрацює, дані можуть залишитися у вигляді:"
147+
148+
#: ../../src/rdbms/acid.txt:53
149+
msgid "$900"
150+
msgstr "$900"
151+
152+
#: ../../src/rdbms/acid.txt:58
153+
msgid ""
154+
"Atomicity guarantee reverting database to an old state, in case any "
155+
"statement fails."
156+
msgstr ""
157+
"Атомарність гарантує повернення бази даних до старого стану, якщо якийсь "
158+
"оператор зазнає невдачі."
159+
160+
#: ../../src/rdbms/acid.txt:62
161+
msgid "Consistency"
162+
msgstr "Узгодженість"
163+
164+
#: ../../src/rdbms/acid.txt:64
165+
msgid ""
166+
"You can think \"consistency\" as \"correctness\". It ensures that a "
167+
"transaction can only bring the database from one consistent state to "
168+
"another, preserving database invariants: any data written to the database "
169+
"must be valid according to all defined rules, including constraints, "
170+
"cascades, triggers, and any combination of thereof. This prevents database "
171+
"corruption by an illegal transaction. As example, referential integrity "
172+
"guarantees the primary key -- foreign key relationship."
173+
msgstr ""
174+
"Ви можете думати про \"узгодженість\" як про \"правильність\". Вона "
175+
"гарантує, що транзакція може лише переводити базу даних з одного узгодженого "
176+
"стану в інший: будь-які дані, записані в базу даних, повинні бути дійсними "
177+
"згідно з усіма визначеними правилами, включаючи обмеження, каскади, тригери "
178+
"та будь-яку їх комбінацію. Це запобігає пошкодженню бази даних неправильною "
179+
"транзакцією. Наприклад, цілісність посилань гарантує зв'язок між первинним і "
180+
"зовнішнім ключами."
181+
182+
#: ../../src/rdbms/acid.txt:73
183+
msgid "Isolation"
184+
msgstr "Ізоляція"
185+
186+
#: ../../src/rdbms/acid.txt:75
187+
msgid ""
188+
"Transactions are often executed concurrently (e.g. multiple transactions "
189+
"reading and writing to a table at the same time). Isolation ensures that "
190+
"concurrent execution of transactions leaves the database in the state that "
191+
"would have been obtained if the transactions were executed sequentially. "
192+
"Isolation is the main goal of concurrency control; depending on the "
193+
"isolation level used, the effects of an incomplete transaction might not be "
194+
"visible to other transaction."
195+
msgstr ""
196+
"Транзакції часто виконуються паралельно (наприклад, декілька транзакцій "
197+
"одночасно читають і записують дані в таблицю). Ізоляція гарантує, що "
198+
"одночасне виконання транзакцій залишає базу даних у стані, який був би "
199+
"отриманий, якби транзакції виконувалися послідовно. Ізоляція є основною "
200+
"метою контролю паралелізму; залежно від рівня ізоляції, що використовується, "
201+
"наслідки незавершеної транзакції можуть бути невидимими для інших транзакцій."
202+
203+
#: ../../src/rdbms/acid.txt:83
204+
msgid ""
205+
"For example, two persons have access to the same account having $1,000 on "
206+
"it, and both persons tries to get the money out of this account. Dora tries "
207+
"to get $1,000, and Toby tries to get $100."
208+
msgstr ""
209+
"Наприклад, дві особи мають доступ до одного рахунку, на якому є $1,000, і "
210+
"обидві особи намагаються зняти гроші з цього рахунку. Дора намагається зняти "
211+
"$1,000, а Тобі - $100."
212+
213+
#: ../../src/rdbms/acid.txt:87
214+
msgid ""
215+
"The sum of the money to get out of the account is $1,100, which cause an "
216+
"issue of leaving negative amount of money. So, one of these transactions "
217+
"fails."
218+
msgstr ""
219+
"Сума грошей, яку потрібно зняти з рахунку, становить $1,100, що призводить "
220+
"до проблеми від'ємної суми. Отже, одна з цих транзакцій не вдається."
221+
222+
#: ../../src/rdbms/acid.txt:90
223+
msgid "Isolation ensures the concurrent executions are safe."
224+
msgstr "Ізоляція забезпечує безпеку конкурентного виконання."
225+
226+
#: ../../src/rdbms/acid.txt:93
227+
msgid "Durability"
228+
msgstr "Довговічність"
229+
230+
#: ../../src/rdbms/acid.txt:95
231+
msgid ""
232+
"The durability means once the transaction has been committed, the data must "
233+
"be writen to non-volatile memory. So, even if a crash happens, or something "
234+
"wrong with the database, the data must be where, and must not be corrupted."
235+
msgstr ""
236+
"Довговічність означає, що як тільки транзакція була здійснена, дані повинні "
237+
"бути записані в енергонезалежну пам'ять. Таким чином, навіть якщо трапиться "
238+
"збій або щось не так з базою даних, дані повинні бути на місці і не повинні "
239+
"бути пошкоджені."

0 commit comments

Comments
 (0)