Database vs Data Structure?

castironpi at gmail.com castironpi at gmail.com
Mon Apr 21 13:55:42 EDT 2008


On Apr 19, 10:56 pm, Dennis Lee Bieber <wlfr... at ix.netcom.com> wrote:
> On Sat, 19 Apr 2008 11:27:20 -0700, Scott David Daniels
> <Scott.Dani... at Acm.Org> declaimed the following in comp.lang.python:
>
>         Hijacking as with the gmail kill filter I had to apply...
>
> > castiro... at gmail.com wrote:
> > > Are databases truly another language from Python, fundamentally?
>
>         Databases predate Python by decades... Though getting hardware fast
> enough to implement the current darling -- relational -- did take a few
> years.
>
>         In my college days, database textbooks introduced: Hierarchical (IBM
> IMS, I believe was the archetype used, though there were many others);
> DBTG (Data Base Task Group) Network (the DBMS on the Xerox Sigma-6 at my
> campus was a network model); and then gave Relational as an
> experimental/theoretical format. About two years after I graduated, the
> revised versions of the textbooks started with Relational, and then
> listed hierarchical and network as "historical" formats.
>
>         In hierarchical and network, one had to explicitly code for the way
> the data was stored... In simple form: hierarchical required one to
> access from a top-level record, which then had "fields" comprising
> related data (and could have multiple occurrences).
>
> Invoice:        has customer number, name, address, etc. and a "field" for
> line items... The line items were a subtree: item number, description,
> quantity, price, extended price...
>
>         Network extended the hierarchical model by allowing access to the
> "subtrees" from multiple different types of parent trees.
>
>         Relational started life as a theory of "how to view the data --
> independent of how it is stored" -- comprising relations (which are NOT
> the links between tables. In relational theory the terms equate as:
>
> Common/Lay                      Theory
> table                                   relation
> column                                  domain
> row/record                              tuple
>
> "relation" meant that all the data in each tuple was related to the
> others. The SQL "relationship operators" that are used to link separate
> tables are not where "relational database" comes from.
>
>         SQL started life as a query language -- also independent of how the
> data is stored. however, it fit into relational theory easily... Maybe
> because it sort of combines relational algebra and relational calculus.
>
>
>
> > Classic qualities for a database that don't normally apply to Python
> > (all properties of a "transaction" -- bundled set of changes):
>
>         Examples might have been useful <G>
>
> >      * Atomicity:
> >         A transaction either is fully applied or not applied at all.
>
>         Well... self-explanatory...
>
> >      * Consistency:
> >         Transactions applied to a database with invariants preserve
> >         those invariants (things like balance sheets totals).
>
>         One of the key ones...
>
>         update accounts set
>                 balance = balance - 100
>         where accountnum = "from account";
>         update accounts set
>                 balance = balance + 100
>         where accountnum = "to account";
>
>         A failure between the two update statements MUST ensure that no
> changes were made to the database... Otherwise, one would lose 100 into
> the vapor. (This example does link back to the "A" and is more on the
> user side -- the code needs to specify that both updates are part of the
> same transaction).
>
> >      * Isolation:
> >         Each transactions happens as if it were happening at its own
> >         moment in time -- tou don't worry about other transactions
> >         interleaved with your transaction.
>
>         Though how various RDBMs implement this feature gets confusing. One
> has everything from locking the entire database (basically meaning that
> "losing" transactions don't get applied at all and the code has to
> reexecute the transaction logic) down to those that can lock on
> individual records -- so overlapping transactions that don't need those
> records complete with no failures.
>
> >      * Durability:
> >         Once a transaction actually makes it into the database, it stays
> >         there and doesn't magically fail a long time later.
>
>         Assuming a disk failure is not "magic" and one doesn't have a recent
> backup <G>
>
> --
>         Wulfraed        Dennis Lee Bieber               KD6MOG
>         wlfr... at ix.netcom.com             wulfr... at bestiaria.com
>                 HTTP://wlfraed.home.netcom.com/
>         (Bestiaria Support Staff:               web-a... at bestiaria.com)
>                 HTTP://www.bestiaria.com/

I'm holding the premise that money can be made different ways, also
and as technique is scarce, and exploration in programming is a non-
negative utility.  I have a soft-coded script I can show, I'm just not
in the space program.



More information about the Python-list mailing list