You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2274448
Browse filesBrowse the repository at this point in the historyBrowse files
or <ahref="https://pypi.python.org/pypi/MySQL-python/1.2.5">MySQL-python</a> (for
3316
-
MySQL). Take a look at the table below which shows that ORMs can work with
3317
-
different web frameworks and database connectors.</p>
3329
+
MySQL). Take a look at the table below which shows how ORMs can work with
3330
+
different web frameworks and connectors and relational databases.</p>
3318
3331
<p><imgsrc="theme/img/orm-examples.png" width="100%" alt="Examples of how varying Python ORMs can work with different connectors and backends." class="technical-diagram" /></p>
3319
-
<p>For example, in the above table SQLAlchemy can work with or without an
3320
-
accompanying web framework as well as different database connectors.
3332
+
<p>The above table shows for example that SQLAlchemy can work with or without
3333
+
an accompanying web framework as well as varying database connectors.
3321
3334
Developers can also use ORMs without a web framework, such as when creating
3322
3335
a data analysis tool or a batch script without a user interface. </p>
3323
3336
<h2>What are the downsides of using an ORM?</h2>
3324
3337
<p>There are numerous downsides of ORMs, including</p>
3325
3338
<ol>
3326
3339
<li>impedance mismatch</li>
3327
-
<li>difficulty writing complex queries</li>
3340
+
<li>difficulty expressing complex queries</li>
3328
3341
<li>potential for reduced performance</li>
3329
3342
<li>shifting complexity into the application from the database layer</li>
3330
3343
</ol>
3344
+
<h3>Impedance mismatch</h3>
3345
+
<p>The phrase "impedance mismatch" is commonly used in conjunction with ORMs.
3346
+
Impedance mismatch is a catch-all term for the difficulties that occur when
3347
+
moving data between relational tables and application objects. The gist
3348
+
is that the way a developer uses objects is different from how data is
3349
+
stored and joined in relational tables.</p>
3331
3350
<h2>Django's ORM</h2>
3332
3351
<p>The <ahref="/django.html">Django</a> web framework comes with
3333
3352
its own built-in object-relational mapping module, generally referred to
or <ahref="https://pypi.python.org/pypi/MySQL-python/1.2.5">MySQL-python</a> (for
76
-
MySQL). Take a look at the table below which shows that ORMs can work with
77
-
different web frameworks and database connectors.</p>
89
+
MySQL). Take a look at the table below which shows how ORMs can work with
90
+
different web frameworks and connectors and relational databases.</p>
78
91
<p><imgsrc="theme/img/orm-examples.png" width="100%" alt="Examples of how varying Python ORMs can work with different connectors and backends." class="technical-diagram" /></p>
79
-
<p>For example, in the above table SQLAlchemy can work with or without an
80
-
accompanying web framework as well as different database connectors.
92
+
<p>The above table shows for example that SQLAlchemy can work with or without
93
+
an accompanying web framework as well as varying database connectors.
81
94
Developers can also use ORMs without a web framework, such as when creating
82
95
a data analysis tool or a batch script without a user interface. </p>
83
96
<h2>What are the downsides of using an ORM?</h2>
84
97
<p>There are numerous downsides of ORMs, including</p>
85
98
<ol>
86
99
<li>impedance mismatch</li>
87
-
<li>difficulty writing complex queries</li>
100
+
<li>difficulty expressing complex queries</li>
88
101
<li>potential for reduced performance</li>
89
102
<li>shifting complexity into the application from the database layer</li>
90
103
</ol>
104
+
<h3>Impedance mismatch</h3>
105
+
<p>The phrase "impedance mismatch" is commonly used in conjunction with ORMs.
106
+
Impedance mismatch is a catch-all term for the difficulties that occur when
107
+
moving data between relational tables and application objects. The gist
108
+
is that the way a developer uses objects is different from how data is
109
+
stored and joined in relational tables.</p>
91
110
<h2>Django's ORM</h2>
92
111
<p>The <ahref="/django.html">Django</a> web framework comes with
93
112
its own built-in object-relational mapping module, generally referred to
or [MySQL-python](https://pypi.python.org/pypi/MySQL-python/1.2.5) (for
54
-
MySQL). Take a look at the table below which shows that ORMs can work with
55
-
different web frameworks and database connectors.
67
+
MySQL). Take a look at the table below which shows how ORMs can work with
68
+
different web frameworks and connectors and relational databases.
56
69
57
70
<imgsrc="theme/img/orm-examples.png"width="100%"alt="Examples of how varying Python ORMs can work with different connectors and backends."class="technical-diagram" />
58
71
59
-
For example, in the above table SQLAlchemy can work with or without an
60
-
accompanying web framework as well as different database connectors.
72
+
The above table shows for example that SQLAlchemy can work with or without
73
+
an accompanying web framework as well as varying database connectors.
61
74
Developers can also use ORMs without a web framework, such as when creating
62
75
a data analysis tool or a batch script without a user interface.
63
76
@@ -66,11 +79,20 @@ a data analysis tool or a batch script without a user interface.
66
79
There are numerous downsides of ORMs, including
67
80
68
81
1. impedance mismatch
69
-
1. difficulty writing complex queries
82
+
1. difficulty expressing complex queries
70
83
1. potential for reduced performance
71
84
1. shifting complexity into the application from the database layer
72
85
73
86
87
+
### Impedance mismatch
88
+
The phrase "impedance mismatch" is commonly used in conjunction with ORMs.
89
+
Impedance mismatch is a catch-all term for the difficulties that occur when
90
+
moving data between relational tables and application objects. The gist
91
+
is that the way a developer uses objects is different from how data is
92
+
stored and joined in relational tables.
93
+
94
+
95
+
74
96
## Django's ORM
75
97
The [Django](/django.html) web framework comes with
76
98
its own built-in object-relational mapping module, generally referred to
@@ -121,6 +143,7 @@ is required for commercial projects. The license is a one-time payment
121
143
and does not necessitate a recurring fee.
122
144
123
145
146
+
124
147
## Schema migrations
125
148
Schema migrations, for example when you need to add a new column to an
126
149
existing table in your database, are not technically part of ORMs. However,
0 commit comments