Thread: We all are looped on Internet: request + transport = invariant
Usage of database consist of request and transportation of results into visualizer. We all are looped on Internet, thus visualizer should be remoted. The most general format for data is XML. We also need to choose transport protocol: the most widespread is HTTP. SQL could send data so. Now SQL don't make this, thus we need one more language (php,etc). It's very, very bad for un-experienced user. We dream, that we simplify SQL by reject of this feature, but really we only carry un-triviality into other language. Un-triviality is saved ! But in addition to un-triviality, you have place of dock between SQL and other language. I offer the following way: http://sql40.by.ru/site/sql40/en/author/introduction_eng.htm http://sql40.by.ru/site/sql40/en/author/determination_eng.htm Representation of data as tree (instead of as matrix) is not aim itself, it's sideline-result.
On Fri, Apr 13, 2007 at 10:58:12AM +0300, Dmitry Turin wrote: > The most general format for data is XML. Surely not. In particular, XML is actually miserably bad at capturing certain kinds of relations between items. It's in fact this assumption that has made this conversation seem like we're talking past one another. > Now SQL don't make this, thus we need one more language (php,etc). > It's very, very bad for un-experienced user. So what? If a user has no experience, and wants to do something new, why should they not have to do some work to learn how to do those things? SQL is not so fantastically hard that you can't learn it. Indeed, I'm pretty sure that if someone as foolish as I can learn it, anyone can. A -- Andrew Sullivan | ajs@crankycanuck.ca If they don't do anything, we don't need their acronym. --Josh Hamilton, on the US FEMA
>In particular, XML is actually miserably bad at capturing certain kinds of relations between items. Write examples, please. P.S. By the way, XML is mentioned as tool for traffic (for transport). But i agree to forget about that to learn what are you imply in your quoting. >SQL is not so fantastically hard You don't understand, i speak not about SQL! Problem consist of transportation data, received by SQL, into external world. As i already wrote, it's very difficalt for users (in practice) to use libraries of additional language (php , perl, etc) for that. I offer to put one feature into SQL to avoid mentioned libraries. >why should they not have to do some work to learn how to do those things? For what user agonizes, if it's possible to avoid torments? Assembler turns Fortran by this reason.
On 4/19/07, sql4-en@narod.ru <sql4-en@narod.ru> wrote: > Problem consist of transportation data, received by SQL, into external > world. As i already wrote, it's very difficalt for users (in practice) > to use libraries of additional language (php , perl, etc) for that. > > I offer to put one feature into SQL to avoid mentioned libraries. And you offer latex and all other kind of things, too? That's the whole issue: you don't understand. SQL is for information retrieval, presentation thereof is and should (for a clean design) be independent of the retrieval. There's already a highly popular database out there that breaks and "enhances" standards. And there are tools available that will take tabular textual data and convert it into other file formats; no need to turn postgres into an egg-laying wool-bearing milk-sow.
On Thu, Apr 19, 2007 at 09:08:27AM +0300, sql4-en@narod.ru wrote: > >In particular, XML is actually miserably bad at capturing certain > >kinds of relations between items. > > Write examples, please. > > P.S. By the way, XML is mentioned as tool for traffic (for transport). > But i agree to forget about that to learn what are you imply in your > quoting. That's irrelevant to what you are proposing, because what you are proposing is to alter SQL -- or at least, PostgreSQL -- to break the relational model of SQL in order to make it look more like XML. An obvious example of the way XML is not _good_ at expressing kinds of relations is that it simply doesn't have a way of expressing foreign key relations. If you want that sort of thing, you write a DTD that somehow says two things go together; but it can't enforce it, because that has to be left to the implementation. Moreover, since you seem to want to make this perfectly generalizable to any XML at all, what you really are saying is that you'll give up the feature. Every time someone helpfully comes along and says that SQL doesn't "really need" this or that feature because of some special purpose application that they have dreamed up, I have exactly the same reaction: those proposing picked a SQL database because it's what they had, rather than what they need. This case is no exception. You have so far completely failed to explain why any of what you are proposing ought to be stored in PostgreSQL in the first place. What is wrong with flat files? Or bdb? Or something like that? Not every datum belongs in a relational database. More importantly. . . > You don't understand, i speak not about SQL! > > Problem consist of transportation data, received by SQL, into external > world. . . .you have completely missed the point of SQL, then. It's a special-purpose language, unconcerned with transport, that is there to perform queries on relational data. If you want some magic transport thing that doesn't need a special library to get it out of Postgres (and you seem here to have completely overlooked that you _always_ have to have one: someone who won't learn DBI and won't learn SQL sure as heck isn't gonna learn enough C to program libpq, which is actually how you talk to the PostgreSQL back end), then write that. Don't bollocks up the back end and change the syntax of SQL to achieve what is, IMNVHO, a really bad idea. A -- Andrew Sullivan | ajs@crankycanuck.ca Users never remark, "Wow, this software may be buggy and hard to use, but at least there is a lot of code underneath." --Damien Katz
>you are proposing is to ... break the relational model of SQL No. I'm proposing to add new thinking about relational model (primary i want to write "to add new view", but i remember, that "view" is reserved word in SQL :) ). Сonvince yourself, please: create table a ( id num primary key; data float; ); create table b ( id num primary key; ref num references a(id); data float; ); create table c ( id num primary key; link num references b(id); data float; ); insert into a values (1, 12.3); insert into b values (10, 1, 23.4); insert into b values (20, 1, 34.5); insert into b values (30, 1, 45.6); insert into c values (100,10,56.7); insert into c values (101,10,67.8); insert into c values (200,20,78.9); insert into c values (201,20,89.1); insert into c values (300,30,91.2); My suggest is "a.b.c"-request. Output is <a id=1 data=12.3> <b id=10 data=23.4> <c id=100 data=56.7/> <c id=101 data=67.8/> </b> <b id=20 data=34.5> <c id=200 data=78.9/> <c id=201 data=89.1/> </b> <b id=30 data=45.6> <c id=200 data=91.2/> </b> </a> I wrote about that in http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm http://sql4.by.ru/site/sql40/en/author/determination_eng.htm >to make it look more like XML Understand: XML is not model of data (in my suggest), XML is format of output. Can you offer better format for output of tree? If you can, write please, i listen. >because of some special purpose application Reception of tree from database is really often case. For example, open several schemes of database (in Erwin, in RationalRose, in other modeller) - scheme is net (count). After that, look at source of server programs, servicing this databases. These programs get part of net (not part of one table!, not part of joined tables! not part of one view!) and put it into program-visualizer. In back direction, server program get tree (records for several tables, not for one table!) and put it into database. >SQL ... It's ... language, unconcerned with transport I agree. Now it's so. >change the syntax of SQL SQL remains inviolate. I offer addition to it - i offer Tree Manipulation Language. Look once more: create table a ( id num primary key; data float; ); create table b ( id num primary key; ref1 num references a(id); ref2 num references a(id); data float; ); create table c ( id num primary key; lnk1 num references b(id); lnk2 num references b(id); data float; ); insert into a values (1, 12.3); insert into a values (2, 23.4); insert into b values (10, 1, 2, 34.5); insert into b values (20, 1, 2, 45.6); insert into b values (30, 1, 2, 56.7); insert into b values (40, 1, 2, 67.8); insert into c values (100,10,20,78.9); insert into c values (101,10,20,89.1); insert into c values (200,30,40,91.2); insert into c values (201,30,40,88.8) But TML is: a.b/ref1.c/lnk1 --- P.S. I'm very glad to get acquainted with you, and i'm much interesting to talk with you. Let's to write maximum simply, let's to use maximum simple expressions to understand each other better. Dmitry Turin http://html60.chat.ru http://sql40.chat.ru
Dmitry Turin wrote: >> you are proposing is to ... break the relational model of SQL > > No. I'm proposing to add new thinking about relational model > (primary i want to write "to add new view", but i remember, that > "view" is reserved word in SQL :) ). > Сonvince yourself, please: > > create table a ( > id num primary key; > data float; > ); > create table b ( > id num primary key; > ref num references a(id); > data float; > ); > create table c ( > id num primary key; > link num references b(id); > data float; > ); > insert into a values (1, 12.3); > insert into b values (10, 1, 23.4); > insert into b values (20, 1, 34.5); > insert into b values (30, 1, 45.6); > insert into c values (100,10,56.7); > insert into c values (101,10,67.8); > insert into c values (200,20,78.9); > insert into c values (201,20,89.1); > insert into c values (300,30,91.2); > > My suggest is "a.b.c"-request. Output is > > <a id=1 data=12.3> > <b id=10 data=23.4> > <c id=100 data=56.7/> > <c id=101 data=67.8/> > </b> > <b id=20 data=34.5> > <c id=200 data=78.9/> > <c id=201 data=89.1/> > </b> > <b id=30 data=45.6> > <c id=200 data=91.2/> > </b> > </a> > > I wrote about that in > http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm > http://sql4.by.ru/site/sql40/en/author/determination_eng.htm > >> to make it look more like XML > > Understand: XML is not model of data (in my suggest), XML is format of output. > Can you offer better format for output of tree? > If you can, write please, i listen. Your format seems to have thrown away all type information. How do I know with the "id=200" that 200 is an int rather than a byte or string? Also, how do we add the new table? CREATE TABLE d ( aref num references a, bref num references b, cref num references c ); >> because of some special purpose application > > Reception of tree from database is really often case. Well it's sometimes the case. I'm not sure you've given any evidence that *most* (or even many) accesses to a database want to retrieve a simple tree. And only a tree - presumably your alternative access method doesn't let me grab "nets" (directed graphs, possibly cyclic). > For example, open several schemes of database (in Erwin, in > RationalRose, in other modeller) - scheme is net (count). So - not a tree? > After that, look at source of server programs, servicing this databases. > These programs get part of net (not part of one table!, not part of > joined tables! not part of one view!) and put it into program-visualizer. Also not trees (necessarily) > In back direction, server program get tree (records for several tables, not for one table!) > and put it into database. I'm not sure that anyone is clear why you just don't write this as a simple php/perl/ruby/whatever script? There are libraries that will output XML for you in most of these I'd suspect, and if not it's just an afternoon's work. I mean, your application is written in *some* language, isn't it? -- Richard Huxton Archonet Ltd
Trees like you seem to suggest are called hierarchies. If you prefer hierarchies over relationnality you could use a hierarchicaldatabase instead of a relational database. When you search the internet you can find plenty of information oneg Adabas, GT.M., IMS, DMSII, Focus, Metakit and many others.<br /><br />>>> Dmitry Turin <sql4-en@narod.ru>2007-04-20 11:08 >>><br />>you are proposing is to ... break the relational model ofSQL<br /><br />No. I'm proposing to add new thinking about relational model<br />(primary i want to write "to add new view",but i remember, that<br />"view" is reserved word in SQL :) ).<br />?onvince yourself, please:<br /><br />create tablea (<br /> id num primary key;<br /> data float;<br />);<br />create table b (<br /> id num primarykey;<br /> ref num references a(id);<br /> data float;<br />);<br />create table c (<br /> id num primary key;<br /> link num references b(id);<br /> data float;<br />);<br />insert into a values (1, 12.3);<br />insert into b values (10, 1, 23.4);<br />insert into b values (20, 1, 34.5);<br />insert into b values(30, 1, 45.6);<br />insert into c values (100,10,56.7);<br />insert into c values (101,10,67.8);<br />insert into cvalues (200,20,78.9);<br />insert into c values (201,20,89.1);<br />insert into c values (300,30,91.2);<br /><br />My suggestis "a.b.c"-request. Output is<br /><br /><a id=1 data=12.3><br /> <b id=10 data=23.4><br /> <c id=100 data=56.7/><br /> <c id=101 data=67.8/><br /> </b><br /> <b id=20 data=34.5><br/> <c id=200 data=78.9/><br /> <c id=201 data=89.1/><br /> </b><br /> <b id=30 data=45.6><br /> <c id=200 data=91.2/><br /> </b><br /></a><br /><br />I wrote about thatin<br /><a href="http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm">http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm</a><br /><a href="http://sql4.by.ru/site/sql40/en/author/determination_eng.htm">http://sql4.by.ru/site/sql40/en/author/determination_eng.htm</a><br /><br/>>to make it look more like XML<br /><br />Understand: XML is not model of data (in my suggest), XML is format ofoutput.<br />Can you offer better format for output of tree?<br />If you can, write please, i listen.<br /><br />>becauseof some special purpose application<br /><br />Reception of tree from database is really often case.<br /><br/>For example, open several schemes of database (in Erwin, in<br />RationalRose, in other modeller) - scheme is net(count).<br /><br />After that, look at source of server programs, servicing this databases.<br />These programs get partof net (not part of one table!, not part of<br />joined tables! not part of one view!) and put it into program-visualizer.<br/><br />In back direction, server program get tree (records for several tables, not for one table!)<br/>and put it into database.<br /><br />>SQL ... It's ... language, unconcerned with transport<br /><br />I agree.Now it's so.<br /><br />>change the syntax of SQL<br /><br />SQL remains inviolate.<br />I offer addition to it- i offer Tree Manipulation Language.<br />Look once more:<br /><br />create table a (<br /> id num primary key;<br/> data float;<br />);<br />create table b (<br /> id num primary key;<br /> ref1 num references a(id);<br/> ref2 num references a(id);<br /> data float;<br />);<br />create table c (<br /> id num primarykey;<br /> lnk1 num references b(id);<br /> lnk2 num references b(id);<br /> data float;<br />);<br />insertinto a values (1, 12.3);<br />insert into a values (2, 23.4);<br />insert into b values (10, 1, 2,34.5);<br />insert into b values (20, 1, 2, 45.6);<br />insert into b values (30, 1, 2, 56.7);<br />insert into b values(40, 1, 2, 67.8);<br />insert into c values (100,10,20,78.9);<br />insert into c values (101,10,20,89.1);<br />insertinto c values (200,30,40,91.2);<br />insert into c values (201,30,40,88.8)<br /><br />But TML is:<br /><br />a.b/ref1.c/lnk1<br/><br />---<br /><br />P.S.<br />I'm very glad to get acquainted with you, and i'm much interesting totalk with you.<br />Let's to write maximum simply, let's to use maximum simple expressions<br />to understand each otherbetter.<br /><br /><br />Dmitry Turin<br /><a href="http://html60.chat.ru/">http://html60.chat.ru</a><br /><a href="http://sql40.chat.ru/">http://sql40.chat.ru</a><br/><br /><br />---------------------------(end of broadcast)---------------------------<br/>TIP 3: Have you checked our extensive FAQ?<br /><br /> <a href="http://www.postgresql.org/docs/faq">http://www.postgresql.org/docs/faq</a><br/>
Hi Richard, On Fri, 2007-04-20 at 12:14 +0100, Richard Huxton wrote: > I'm not sure that anyone is clear why you just don't write this as a > simple php/perl/ruby/whatever script? There are libraries that will > output XML for you in most of these I'd suspect, and if not it's just an > afternoon's work. > > I mean, your application is written in *some* language, isn't it? It appears that Dmitry wants that an application, written in whatever language, will issue an SQL query (or maybe a TML "query" such as "a.b.c") and get back the XML. He's not concerned about loss of datatype information because from his perspective the application will just "present" the XML and similarly he's not concerned about DDL features because TML is a "transport" mechanism. I hope I haven't totally misrepresented Dmitry's words, but it seems he wants to create a universal "database to web" interface language, so that you and I won't have to deal with the pesky complications of retrieving data in C with libpq or with PHP, Python and what not libraries or "adapters", and then have to transform that data for display to the user. However, IMHO this appears to be rather simplistic and not completely grounded in actual experience. In other words, Dmitry, have you written a TML parser or a libpq prototype that given a TML "query" produces the XML and tested it with datatypes other than integer and float. Or do you have feedback from actual average users that TML is indeed easier to use than SQL? Two other items to think about. One is that the scheme apparently requires that tables be defined in a special way, but no indication is given as to how this will be accomplished or ensured that it is correct. Second is how does TML handle relational manipulations such as restriction, projection or aggregation. It appears TML is primarily for joins. Lastly, Dmitry, I think you'll be better off discussing this in comp.databases.theory. Joe
Joe wrote: > Hi Richard, > > On Fri, 2007-04-20 at 12:14 +0100, Richard Huxton wrote: >> I'm not sure that anyone is clear why you just don't write this as a >> simple php/perl/ruby/whatever script? There are libraries that will >> output XML for you in most of these I'd suspect, and if not it's just an >> afternoon's work. >> >> I mean, your application is written in *some* language, isn't it? > > It appears that Dmitry wants that an application, written in whatever > language, will issue an SQL query (or maybe a TML "query" such as > "a.b.c") and get back the XML. He's not concerned about loss of > datatype information because from his perspective the application will > just "present" the XML and similarly he's not concerned about DDL > features because TML is a "transport" mechanism. > > I hope I haven't totally misrepresented Dmitry's words, but it seems he > wants to create a universal "database to web" interface language, so > that you and I won't have to deal with the pesky complications of > retrieving data in C with libpq or with PHP, Python and what not > libraries or "adapters", and then have to transform that data for > display to the user. OK, but I'm still not seeing how this avoids me having to use PHP/Perl/etc anyway. I mean, I'm going to need some application logic at some point, in which case who cares whether the RDBMS has this specific layout as a format. I can see how it might be useful as a library, but then there are libraries that provide plenty of XML formatting. -- Richard Huxton Archonet Ltd
Hi Richard, On Fri, 2007-04-20 at 13:50 +0100, Richard Huxton wrote: > OK, but I'm still not seeing how this avoids me having to use > PHP/Perl/etc anyway. I mean, I'm going to need some application logic at > some point, in which case who cares whether the RDBMS has this specific > layout as a format. I can see how it might be useful as a library, but > then there are libraries that provide plenty of XML formatting. But if TML catches on so that "even a caveman can do it" *, i.e., query a database from just a browser, then you and I (and most everyone on this list) will be out of a job and PHP/Perl/etc. will be relegated to the dustbin of programming languages. [Sorry, couldn't resist :-) ] Joe * see http://en.wikipedia.org/wiki/Geico
Just some thoughts on the matter: Dmitry, you should acknowledge the fact that in databses you have two kinds of hierarchies: a) The hierarchy denoted by the referential constraints between tables which constitute a Directed Graph (DG), with tables as nodes and FKeys as arrows. b) Hierarchies applying to data, e.g. create table ppl ( id serial PRIMARY KEY, name text not null, parentid integer REFERENCES ppl(id) ); (with GOD himself having parentid = null :). I think that the second type is of interest at the application level. (For system applications however, such as DB mirroring the first type of table hierarchy is important as well). Speaking of postgresql there is a fine package by the GiST/tsearch creators, contrib/ltree whose main task is to provide the primitives (functions/operators) for tree manipulation. Dont know if i am irrelevant in this thread, but i hope i helped a little bit. -- Achilleas Mantzios
>How do I know with the "id=200" that 200 is an int rather than a byte or string? Field (of database) and attribute (of tag) are put into one-to-one correspondence. Thus datatype of attribute is datatype of field (which is specified during "create table" or "alter table"). >how do we add the new table? by DDL, of course. TML don't create/alter/drop table/index. >accesses to a database want to retrieve a simple tree It's difficult to bring inverse example - when it's necessary to get records of only one table. Really, in life (not in math problems). >your alternative access method doesn't let me grab "nets" (directed graphs, possibly cyclic) Yes. You must inquere records of two tables (nodes and bonds) separately. >> After that, look at source of server programs, servicing this databases. >> These programs get part of net (not part of one table!, not part of >> joined tables! not part of one view!) and put it into program-visualizer. >Also not trees (necessarily) No. Server program inqueries tree (as part of graph). >why you just don't write this as a simple php/perl/ruby/whatever script? Not me. Not programmer. I speak about appied specialists (physicists, biologists, etc), which can NOT do that. Join of SQL and php (using libraries) is problem for them. >it's just an afternoon's work Not for mentioned people.
On Fri, Apr 20, 2007 at 05:49:08PM +0300, Dmitry Turin wrote: > I speak about appied specialists (physicists, biologists, etc), which > can NOT do that. > >it's just an afternoon's work > > Not for mentioned people. I think part of the reason I'm sceptical of your plan is that every physicist or biologist I ever knew, who had anything to do with storing large volumes of data, all knew a great deal of Perl. What they didn't know, they got the computer-support staff (that was my job) to build for them. People who work with data have to learn to use the tools for processing it. Nobody ever suggests that stats is just too hard, so we should make an easy-stats course that just covers the teeny bit that (say) biologists need to know. That seems to be what you are suggesting be done to SQL. Now, anyone who knows anything about biology -- or physics, for that matter -- knows that you actually have to have a good handle on stats to do any interesting work. You don't need everything economists use, though, so you don't learn those bits. Similarly, I don't expect a biologist to learn (for instance) the Net::DNS modules for Perl. That doesn't mean they can get away without learning a bit about XML, Perl, and Pg.pm. Anyway, I've said enough on this topic. When you have the start of a user library that implements your proposal, perhaps you can post it to -hackers for the response you'll get there. A -- Andrew Sullivan | ajs@crankycanuck.ca When my information changes, I alter my conclusions. What do you do sir? --attr. John Maynard Keynes
>have you written a TML parser No. I want, that you and other people help me in that. >do you have feedback from actual average users, >that TML is indeed easier to use than SQL? Yes. TML was born in discuss with these users (mainly nucleus physicists, optics , molecular biologists, zoologist and ecologist) >scheme apparently requires, that tables be defined in a special way No. Table must be created in traditional way (by "create table, alter table") and not through browser. User must use "create table", etc in database-terminal like "psql.exe". > you'll be better off discussing this in comp.databases.theory There are two reason to discuss TML in this forum: 1. postgres is my favorite database, 2. discussion not in theory forum, but in forum of real database approach to realization in greater degree. Dmitry Turin http://html6.by.ru http://sql4.by.ru
> he wants to create a universal "database to web" interface language, so > that you and I won't have to deal with the pesky complications of > retrieving data in C with libpq or with PHP, Python and what not > libraries or "adapters", and then have to transform that data for > display to the user. Yes. Especially about adapters ! >OK, but I'm still not seeing how this avoids me having to use >PHP/Perl/etc anyway. TML stored function get XML from external world (DBMS listen port #80), work, than make output of other XML into external world. Transport is executed through HTTP. >who cares whether the RDBMS has this specific layout as a format. I want to answer, but i don't understood phrase "layout as a format". Please, explain your question. >I can see how it might be useful as a library I don't see, how to use TML as library :) >there are libraries that provide plenty of XML formatting Once more: XML is side effect! If you know better format for tree, please describe it. Gold is ejection of shim (gasket): php, perl, etc. Dmitry Turin http://html6.by.ru http://sql4.by.ru
>every physicist or biologist ... knew a great deal of Perl They spend own time and force for that. Next generation will not have this need. >they got the computer-support staff (that was my job) And your money. Besides money, they spend own time to explain task to you. >People ... have to learn They must nothing, they are forced >That doesn't mean they can get away without learning a bit about ... Perl Why? Dmitry Turin http://html60.by.ru http://sql40.by.ru
A hierarchical is specialized in managing data which is hierarchically structured, while a relational database is not.
Maybe this analogy is clearer: If you want to fly you could attach wings to your sportscar, but it's more logical to use a plane.
>>> Dmitry Turin <sql4-en@narod.ru> 2007-04-20 16:21 >>>
>you could use a hierarchical database instead of a relational database
why ?
why is impossible to make addition for relational database?
>>> Dmitry Turin <sql4-en@narod.ru> 2007-04-20 16:21 >>>
>you could use a hierarchical database instead of a relational database
why ?
why is impossible to make addition for relational database?
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
"Bart Degryse"
Date:
If these people really work with hierarchically structured data, let them try a hierarchical database (even though PostgreSQL is your favourite database). They will profit 100fold from the advantages such a database has for such data. I now several biologists specialized in taxonomy (which is by nature hierarchically structured) and they all use a hierarchical database for their data.
If these people want to output relational data in a hierarchical way (eg XML), they will have to learn sql (to manage their data in a relational database) and some xml library (in Perl, PHP, ASP or whatever they like most) to transform what the database outputs into the way they want it to look. Especially such people are quick learners and stating they can't do that is simply unbelievable. Anyway there should always be some IT guy in the neighbourhood to help them out. I suppose that would be you.
Once again, don't try to let your sportscar fly. While it probably can be done, using a plane is so much more logical.
>>> Dmitry Turin <sql4-en@narod.ru> 2007-04-20 17:59 >>>
TML was born in discuss with these users
(mainly nucleus physicists, optics , molecular biologists, zoologist
and ecologist)
>>> Dmitry Turin <sql4-en@narod.ru> 2007-04-20 17:59 >>>
TML was born in discuss with these users
(mainly nucleus physicists, optics , molecular biologists, zoologist
and ecologist)
Good day, Joe. >> Table must be created in traditional way (by "create table, alter >> table") and not through browser. >> User must use "create table", etc in database-terminal like "psql.exe". > By "in a special way" I meant that tables have referential constraints > to other tables and they appear to rely on synthetic keys. Referential constraints must be created also in traditional way and also not through browser (by "psql.exe"). >your examples have invalid PG SQL Yes, i know. I copy this examples from my page http://sql40.chat.ru/site/sql40/en/author/introduction_eng.htm (i wrote this page for all DBMS in general). >I would change your examples to use less abstract > data, like department/employee, customer/product/order/order_line This will not help. To my mind, forum of real database is place, when i can find programmer, which can (and maybe would like) add parser to database. We all together can make that, i hope to that. Dmitry Turin http://html6.by.ru http://sql4.by.ru
I'll continue with the analogy
It is not impossible to attach wings to a sportscar. When you do, you will probably get the sportscar flying.
However:
1. Why would you even try, if airplanes (which are designed from scratch to fly) already exist. Just use them
2. If you try nevertheless, is getting your car to fly worth the effert it will cost. It might fly in the end, but it will never be a Phantom (or whatever plane you prefer). Making something that can fly, requires you to focus on that from scratch. A car was never designed to fly. So basically a flying car will still be a car and not a plane.
So, since hierarchical databases do exist, why even bother trying to transform a relational database into something that resembles a hierarchical database. A real hierarchical will always be better suited to do the job than your addition to a relational database will be, simply because the hierarchical database was designed from scratch to do just that.
>>> Dmitry Turin <sql4-en@narod.ru> 2007-04-23 12:07 >>>
Good day, Bart.
> A hierarchical is specialized in managing data which is
> hierarchically structured, while a relational database is not.
You don't answer to question
(why is impossible to make addition for relational database?).
Dmitry Turin
http://html6.by.ru
http://sql4.by.ru
http://computer2.by.ru
Hi Dmitry, On Mon, 2007-04-23 at 11:20 +0300, Dmitry Turin wrote: > >I would change your examples to use less abstract > > data, like department/employee, customer/product/order/order_line > > This will not help. > To my mind, forum of real database is place, "What we got here is ... failure to communicate." I may be wrong, but I suspect most of the people in this forum take a look at create table a ( id num primary key; data float; ); create table b ( id num primary key; ref num references a(id); data float; ); create table c ( id num primary key; link num references b(id); data float; ); or even create table a ( id integer primary key, data float); create table b ( id integer primary key, ref integer references a(id), data float); create table c ( id integer primary key, link integer references b(id), data float); and your attempts to derive XML from them and ask questions like "how will this help me in my day-to-day job" and "what do a, b and c represent or are analogous to?" and all they'll see is a hierarchy of some sort (as evident by several of the responses) and they'll dismiss it because they have to deal with more complex relationships and the relational model allows them to express such connections. OTOH, if you were to take a real-life example, and show you can generate XML from your proposed TML, I contend that then you'd find more people receptive to your ideas or at least able to criticize them from more concrete viewpoints. Take a look for example at Philip Greenspun's "SQL for Web Nerds". It's dated and its examples are based on Oracle syntax, but it's based on a real web application. Show us what TML can do for the users, bboard and classified_ads tables (http://philip.greenspun.com/sql/data-modeling.html), and how it can answer the simple and complex queries in the next two chapters (or as I said, pick a real-life example of your own) and then maybe we'll have a more fruitful conversation. Joe
Good day, Bart. > I'll continue with the analogy Let's suppose, that you want to compare rational and hierarchical DBMS instead of discussion about removing gaskets (by the way, hierarchical DBMS also need gasket between itself and external world). Because TML should integrated inside rational DBMS, I think, this comparison is useful too. First, let's accept convention to not use metaphore. It would be better, if we compare concrete details. Bart, under your influence i want to download and try hierarchical DBMS, which you list (Adabas, GT.M., IMS, DMSII, Focus, Metakit). That is so much important, because my wish to add TML to PG is growing :) Excuse me, Bart, our institution use only OS "Windows", thus at first stage let conduct comparison between TML and hierarchical DBMS only for "Windows". Several revisions: 1. "Adabas" is this http://www.softwareag.com/Corporate/products/adabas/download/default.asp (ada51.zip, 31Mb)? 2. "GT.M" exists only form Unix-like OS. 3. "IMS, DMSII, Focus" - i don't find link to download 4. "Metakit" is this http://www.softlookup.com/download.asp?id=6904 (metakit-2.01.tar.gz, 607 Kb). Our users consider, that it is no database in general. I agree with them. Are you agree to make comparison in discussion with me? Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Good day, Joe. >> >I would change your examples to use less abstract >> > data, like department/employee, customer/product/order/order_line J> I contend that then you'd find more people J> receptive to your ideas or at least able to criticize them from more J> concrete viewpoints. I expected, that you already read http://sql4.by.ru/site/sql40/en/author/wave_eng.htm (i added output into this paper). Case of "department/employee" is "Example 1" on this paper. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Good day, Joe. J> "Fictional" is IMO not a good choice for J> describing aggregates, because it means "a story that is not true", J> whereas an SQL aggregate is something that is "true" (in the J> mathematical sense) but is "derived" from other values. It means, that TML and DDL aggregates have different sense. J> (I'm not sure what the special symbols mean -- maybe what you need first J> is a syntax reference for TML) http://sql4.by.ru/site/sql40/en/author/tree_eng.htm J> sum of the employees salaries? yes. "amount" is quantity of employees J> How do I see employees in just one department? department[id="1"].employee >>; or department[name="Technical"].employee >>; J> How do I see a single employee? employee[id="31"] >>; or employee[name="Tomson"] >>; -- maybe several employee with surname Tomson J> How do I see all employees that have a salary greater than 3500 department.employee[salary>3500] >>; J> ordered by their names? Now sorting for output is absent. I'm not sure, that it's necessary, but i already thought about this and continue to think. J> How do I actually retrieve SUM(salary) Declare field "sum" as not fictional. You can always declare field "sum" as not fictional and put sign "#" before field to prevent output of field. J> GROUP BY department? It is always "group by", because it is field of record "department" P.S. If you don't like to put sign "#" before field "sum", or you don't like absence of sorting NOW (it's possible, that i add sorting), then remember, that advantage is absence of gasket (php, etc) between DBMS and external world. That is more important for un-experienced users. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
BD> Please stop using my personal email adsress in CC or BCC. BD> Forum related mails should only be send to the forum! I promise BD> Several revisions: BD> 1. "Adabas" is this BD> http://www.softwareag.com/Corporate/products/adabas/download/default.asp BD> (ada51.zip, 31Mb)? BD> 2. "GT.M" exists only form Unix-like OS. BD> 3. "IMS, DMSII, Focus" - i don't find link to download BD> 4. "Metakit" is this BD> http://www.softlookup.com/download.asp?id=6904 BD> (metakit-2.01.tar.gz, 607 Kb). BD> Our users consider, that it is no database in general. BD> I agree with them. BD> Are you agree to make comparison in discussion with me? And what's about comparison ? Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Richard Huxton
Date:
Dmitry Turin wrote: > Good day, Joe. > >>>> I would change your examples to use less abstract >>>> data, like department/employee, customer/product/order/order_line > > J> I contend that then you'd find more people > J> receptive to your ideas or at least able to criticize them from more > J> concrete viewpoints. > > I expected, that you already read > http://sql4.by.ru/site/sql40/en/author/wave_eng.htm > (i added output into this paper). > Case of "department/employee" is "Example 1" on this paper. I'd not expect people to read lengthy articles on a general-questions mailing list, but I've skimmed at least as far as example 2. 1. What does it mean for one flight to be contained within another? I can see how one flight might follow another, but not contained. Do you not need some new object "flight_chain" or similar? 2. Surely a flight should contain two cities (since it connects two cities). Alternatively, the <city> needs to indicate to which it's referring either as <startcity>/<endcity> or <city fromto="start"> or similar. 3. How am I constructing these queries? The whole point was so I didn't have to learn SQL, yes? Unfortunately, the syntax for these queries isn't obvious enough to me that I can see how to write them without some form of query-builder, or reference manual. 4. How am I using these queries? I'm still not clear what use it is to have XML without a schema. Let's say I want to build a holiday website. How does this TML setup avoid me having to write any php/perl/etc? -- Richard Huxton Archonet Ltd
Hi Dmitry, On Tue, 2007-04-24 at 15:31 +0300, Dmitry Turin wrote: > J> How do I see employees in just one department? > > department[id="1"].employee >>; > > or > > department[name="Technical"].employee >>; How is that any different or better than a standard SQL SELECT (or to use another context, a Tutorial D statement)? > J> How do I see a single employee? > > employee[id="31"] >>; > > or > > employee[name="Tomson"] >>; > -- maybe several employee with surname Tomson What if I want to see specific columns of the employee row or see the name of the department that Tomson works in or the name of Tomson's manager? > J> How do I actually retrieve SUM(salary) > > Declare field "sum" as not fictional. > > You can always declare field "sum" as not fictional and > put sign "#" before field to prevent output of field. This "fictional" attribute of yours implies a change to SQL DDL. > J> GROUP BY department? > > It is always "group by", because it is field of record "department" That is only in *your* view of the data. What if someone comes along and wants to do SELECT name, SUM(salary) FROM employee GROUP BY name? Or GROUP BY date_trunc('year', hire_date)? The point is that SQL has been refined (although some may disagree :-) over the past quarter century to answer this and many other questions and I don't see how TML improves on that (for an enhanced answer to SQL, take a look at Tutorial D). And XML is *not* the only answer to viewing or even "transporting" data. Some people prefer a tabular representation, others may prefer a hierarchical view, and yet others want to see a chart (and even the same person may prefer a different view for various purposes or at various times). And there's nothing wrong with Perl, PHP, Python and the myriad interface languages. That's what "free" software is all about. The POSTGRES UCB project had a language called PostQUEL, which may have been technically superior to SQL, but market forces (unfortunately not all "free") pushed Postgres95 and then PostgreSQL to adopt the latter in preference to PostQUEL. Maybe one day we'll have one (or two) interface languages to PostgreSQL that 80% of the users will use, but it will not be because you or I or even the PG Global Dev Group leaders say it's "better" or "it's necessary", but because thousands of users may agree and converge on those choices. Joe
Good day, Joe. >> J> How do I see employees in just one department? >> department[id="1"].employee >>; >> department[name="Technical"].employee >>; J> How is that any different or better than a standard SQL SELECT by absence of gasket (php, its library; perl, its library; etc) J> XML is *not* the only answer to viewing or even "transporting" data. it's nothing more simply: offer your decision !! J> others want to see a chart it's nothing more simply: offer format for data, on which chart will be created !! J> And there's nothing wrong with Perl, PHP, Python and the myriad J> interface languages. I said many times, what is wrong: applied users can not join sql and perl, can not use libraries, and can not adjust web-server. J> I don't see how TML improves It characterizes not analysed situation, but you. J> Some people prefer a tabular representation <tablename field1= field2= field3= > <tablename field1= field2= field3= > <tablename field1= field2= field3= > <tablename field1= field2= field3= > <tablename field1= field2= field3= > --- >> J> How do I see a single employee? >> employee[id="31"] >>; >> employee[name="Tomson"] >>; J> I want to see specific columns of the employee row Mark other fields (columns) by sign "#" to prevent output of them. NOW there is no construction like employee#[need_field] i.e. to forbid all field and to allow necessary columns ("need_field"). Probably i add that. J> or see the name of the department that Tomson works department.#employee[name="Tomson"] >>; or #employee[name="Tomson"].department >>; J> or the name of Tomson's manager? Let table "employee" has additional field "manager" create table employee { id num primary key, name string, salary num, department num referencesdepartment (id), manager bool }; Request is (look at http://sql4.by.ru/site/sql40/en/author/determination_eng.htm, paragraph "Buckle") (employee[manager=true].#department.#employee[name="Tomson"], employee[manager=true name="Tomson"]) >>; or (#employee[name="Tomson"].#department.employee[manager=true], employee[manager=true name="Tomson"]) >>; If you seggest other scheme of data, i will write query for it. J> This "fictional" attribute of yours implies a change to SQL DDL. You are worried about technical realization or ideological orthodoxy ? Or maybe about anything else ? J> if someone comes along and wants to do J> SELECT name, SUM(salary) FROM employee GROUP BY name? create view x as SELECT name, SUM(salary) FROM employee GROUP BY name; x >>; J> thousands of users may agree and converge on those choices. 1. Not users, but programmers. 2. Needs are produced also, as goods and capital goods. Karl Marks For example, look at yourself. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Richard Huxton
Date:
Don't forget to cc: the list. Dmitry Turin wrote: > Good day, Richard. > >>> http://sql4.by.ru/site/sql40/en/author/wave_eng.htm > RH> example 2 > RH> 1. I can see how one flight might follow another, but not contained. Do you > RH> not need some new object "flight_chain" or similar? > > No ! > Fork is possible, several flights might follow another, > thus several flights should be inside another. 1. One flight is not "contained" within another though. I board one plane, fly, get off, board another, fly, ... - they are sequential not contained. If you're trying to represent multiple options you should really have something like: <flight_chain ...> <flight_options> <flight...> <flight...> These three flights represent options <flight...> </flight_options> </flight_chain> How do I get such a structure from a TML query? 2. If you nest flights then you'll be forced to repeat data, surely? Multiple routes could end up mentioning flight id=123 several times and each time have to repeat all possible options from it. > RH> 2. Alternatively, the <city> needs to indicate to which it's > RH> referring either as <startcity>/<endcity> or <city fromto="start"> or > RH> similar. > > What is 'either as <startcity>/<endcity> or <city fromto="start">' ? Looking at the resultset, how do I know whether a mentioned city is: 1. the start point of a flight 2. the end point of a flight > RH> 3. How am I constructing these queries? > > There are five documents on > http://sql4.by.ru/site/sql40/en/author/index_eng.htm > > RH> The whole point was so I didn't have to learn SQL, yes? > > Nearly: sorting by first section of tree > (maybe by second section and so on after that) > is not seggested now > (user can sort, for examle, in browser by XSL). Hang on, XSL is *not* easier to understand than SQL. > RH> syntax for these queries isn't obvious enough to me > > What is not-obvious - > tree notation or work with fields inside section (record) in tree ? > If all of them, what is more not-obvious ? The syntax of your queries is not obvious. I haven't read your guide, but you did say that the whole point was *not* to have to learn languages. If I'm going to learn only one query language, it'll be SQL because everything uses it. > RH> 4. what use it is to have XML without a schema. > > What is 'XML without a schema' ? > XML is not stored thing, it is a transport form for scheme. Umm - xml schemas, that describe valid data for an xml document. http://www.w3.org/XML/Schema http://www.xml.com/pub/a/2001/12/12/schemacompare.html > RH> How does this TML setup avoid me having to write any php/perl/etc? > > Any inquired tree An "inquired tree" how? I'm sat here at my laptop, and I want to get a list of flights into a spreadsheet I'm doing for my boss. 1. How do I create my TML query (assuming I haven't read the TML manual, because if I can read manuals then SQL is viable)? 2. How do I get my query from my laptop to my database server? 3. How do I get results into the spreadsheet? > (in reduction case - inquired one table or one view), > which is finished by '>>' at the end, > is in output automatically (port #80, HTTP protocol, > http://sql4.by.ru/site/sql40/en/author/inout_eng.htm > and > http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm#http). You trimmed the first part of my question: "Let's say I want to build a holiday website. How does this TML setup avoid me having to write any php/perl/etc?" I'm a small travel agent, and I want to let customers see what flights I can offer them. We're going to need a form that lets people choose from a list of start and end cities, pick a date and see a list of flights (sorted by cost, or length or some such). At present I'll build that with e.g. PHP + SQL => PostgreSQL. What part of the process does TML make easier? -- Richard Huxton Archonet Ltd
Hi Dmitry, On Wed, 2007-04-25 at 10:47 +0300, Dmitry Turin wrote: > J> And there's nothing wrong with Perl, PHP, Python and the myriad > J> interface languages. > > I said many times, what is wrong: > applied users can not join sql and perl, can not use libraries, > and can not adjust web-server. I strongly disagree. I have not taken any formal courses on PHP, HTML, Apache or Python, and I only took a couple of week-long courses on SQL ages ago (Perl I don't care for). Yet I've learned enough on my own to "join" them and use their libraries and put up a website. And I believe there are others on this list and elsewhere that have done so, to varying degrees. And yet others may require the assistance of a technical specialist or a full-time programming team, but what's wrong with that? > J> thousands of users may agree and converge on those choices. > > 1. Not users, but programmers. > 2. Needs are produced also, as goods and capital goods. > Karl Marks > For example, look at yourself. We are on diametrically opposed sides of that argument, but it's off-topic, so I'll leave it alone. Joe
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Dmitry Turin
Date:
Good day, Richard. RH> <flight_chain ...> RH> <flight_options> RH> <flight...> RH> <flight...> These three flights represent options RH> <flight...> RH> </flight_options> RH> </flight_chain> Tag <flight_options> is un-necessary (in point of view of DBMS theory). RH> 2. If you nest flights then you'll be forced to repeat data, surely? RH> Multiple routes could end up mentioning flight id=123 several times and RH> each time have to repeat all possible options from it. Yes. Remember, this is not manner of storing data in DBMS. This is manner to visualize for man. RH> I know whether a mentioned city is: RH> 1. the start point of a flight RH> 2. the end point of a flight "city.flight" - city is start point, "flight.city" - city is end point >> Nearly: sorting by first section of tree >> (maybe by second section and so on after that) >> is not seggested now >> (user can sort, for examle, in browser by XSL). RH> Hang on, XSL is *not* easier to understand than SQL. Yes. This means, that it's necessary to develop TML (or HTML: http://lists.w3.org/Archives/Public/public-html/2007Apr/1380.html). >> RH> syntax for these queries isn't obvious enough to me >> >> What is not-obvious - >> tree notation or work with fields inside section (record) in tree ? >> If all of them, what is more not-obvious ? RH> If I'm going to learn only one query language, it'll be SQL RH> because everything uses it. 'tablename >>;' is better, than to learn php, perl, its library >> XML is not stored thing, it is a transport form for scheme. RH> Umm - xml schemas, that describe valid data for an xml document. RH> http://www.w3.org/XML/Schema RH> http://www.xml.com/pub/a/2001/12/12/schemacompare.html Term "scheme" means "database scheme" to me :) RH> I'm sat here at my laptop, and I want to get a RH> list of flights into a spreadsheet I'm doing for my boss. Your boss will itself solve "task of travelling-salesman" ? By eyes ? RH> 1. How do I create my TML query (assuming I haven't read the TML manual, RH> because if I can read manuals then SQL is viable)? You start browser and open html-document on site of "list of flights". Html-documents send XML data to Postgres (to site). Postgres start function with name "main" http://sql4.by.ru/site/sql40/en/author/inout_eng.htm Function execute TML-request (it's made by authors of site !), and Postgres send results to your browser. You copy from browser into spreadsheet. Thus you don't need to write request. You will write TML-request, if you will author of site. RH> 3. How do I get results into the spreadsheet? It depends of data model: if your get tree - there is no way in general case (i think), if your get records of only one table/view: create view x as select city.name as start, city.name as end, flight.t1, flight.t2, day from city, flight; x >>; then you get <x start="A" end="B" t1="5.00" t2="7.00" day="monday"> ... <x start="K" end="L" t1="15.00" t2="17.00" day="sunday"> RH> How does this TML setup avoid me having to write any RH> php/perl/etc?" Look example about site of "list of flights" above. RH> We're going to need a form that lets people choose from RH> a list of start and end cities, pick a date and see a list of flights RH> (sorted by cost, or length or some such). At present I'll build that RH> with e.g. PHP + SQL => PostgreSQL. What part of the process does TML RH> make easier? You use only SQL and small simple part (simple part !) of TML to transport data. P.S. Soon i add sorting into TML. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Dmitry Turin
Date:
Good day, Richard. RH> <flight_chain ...> RH> <flight_options> RH> <flight...> RH> <flight...> These three flights represent options RH> <flight...> RH> </flight_options> RH> </flight_chain> Tag <flight_options> is un-necessary (in point of view of DBMS theory). RH> 2. If you nest flights then you'll be forced to repeat data, surely? RH> Multiple routes could end up mentioning flight id=123 several times and RH> each time have to repeat all possible options from it. Yes. Remember, this is not manner of storing data in DBMS. This is manner to visualize for man. RH> I know whether a mentioned city is: RH> 1. the start point of a flight RH> 2. the end point of a flight "city.flight" - city is start point, "flight.city" - city is end point >> Nearly: sorting by first section of tree >> (maybe by second section and so on after that) >> is not seggested now >> (user can sort, for examle, in browser by XSL). RH> Hang on, XSL is *not* easier to understand than SQL. Yes. This means, that it's necessary to develop TML (or HTML: http://lists.w3.org/Archives/Public/public-html/2007Apr/1380.html). >> RH> syntax for these queries isn't obvious enough to me >> >> What is not-obvious - >> tree notation or work with fields inside section (record) in tree ? >> If all of them, what is more not-obvious ? RH> If I'm going to learn only one query language, it'll be SQL RH> because everything uses it. 'tablename >>;' is better, than to learn php, perl, its library >> XML is not stored thing, it is a transport form for scheme. RH> Umm - xml schemas, that describe valid data for an xml document. RH> http://www.w3.org/XML/Schema RH> http://www.xml.com/pub/a/2001/12/12/schemacompare.html Term "scheme" means "database scheme" to me :) RH> I'm sat here at my laptop, and I want to get a RH> list of flights into a spreadsheet I'm doing for my boss. Your boss will itself solve "task of travelling-salesman" ? By eyes ? RH> 1. How do I create my TML query (assuming I haven't read the TML manual, RH> because if I can read manuals then SQL is viable)? You start browser and open html-document on site of "list of flights". Html-documents send XML data to Postgres (to site). Postgres start function with name "main" http://sql4.by.ru/site/sql40/en/author/inout_eng.htm Function execute TML-request (it's made by authors of site !), and Postgres send results to your browser. You copy from browser into spreadsheet. Thus you don't need to write request. You will write TML-request, if you will author of site. RH> 3. How do I get results into the spreadsheet? It depends of data model: if your get tree - there is no way in general case (i think), if your get records of only one table/view: create view x as select city.name as start, city.name as end, flight.t1, flight.t2, day from city, flight; x >>; then you get <x start="A" end="B" t1="5.00" t2="7.00" day="monday"> ... <x start="K" end="L" t1="15.00" t2="17.00" day="sunday"> RH> How does this TML setup avoid me having to write any RH> php/perl/etc?" Look example about site of "list of flights" above. RH> We're going to need a form that lets people choose from RH> a list of start and end cities, pick a date and see a list of flights RH> (sorted by cost, or length or some such). At present I'll build that RH> with e.g. PHP + SQL => PostgreSQL. What part of the process does TML RH> make easier? You use only SQL and small simple part (simple part !) of TML to transport data. P.S. Soon i add sorting into TML. P.P.S. Richard, send letter only to mailing list, not to me. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Good day, Joe. >> J> And there's nothing wrong with Perl, PHP, Python and the myriad >> J> interface languages. >> >> I said many times, what is wrong: >> applied users can not join sql and perl, can not use libraries, >> and can not adjust web-server. J> II have not taken any formal courses Joe, i speak not about you, but about statistics. J> there are others on this list and elsewhere that have done so Second question: why? For what people must learn php, etc, if they need only output data from database. >others may require the assistance of a J> technical specialist or a full-time programming team, but what's wrong J> with that? expenses of money, time, nerve to explain task to other man P.S. Joe, send letter only to mailing list, not to me. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Richard Huxton
Date:
Dmitry Turin wrote: > Good day, Richard. > > RH> <flight_chain ...> > RH> <flight_options> > RH> <flight...> > RH> <flight...> These three flights represent options > RH> <flight...> > RH> </flight_options> > RH> </flight_chain> > > Tag <flight_options> is un-necessary (in point of view of DBMS theory). But that's what you're describing isn't it? 1. A journey (flight_chain) between city A and city Z consists of one or more flights. 2. The next flight has to start at the current city, but there may be several flights to choose from. 3. The last flight must end at city Z. Now stage 2 groups the flights to choose among - you can call it something else, but the equivalent of flight_options is there. > RH> 2. If you nest flights then you'll be forced to repeat data, surely? > RH> Multiple routes could end up mentioning flight id=123 several times and > RH> each time have to repeat all possible options from it. > > Yes. > Remember, this is not manner of storing data in DBMS. > This is manner to visualize for man. So how do I know it's repeated without grabbing a pencil and paper and scrolling back and fore to compare them? > RH> I know whether a mentioned city is: > RH> 1. the start point of a flight > RH> 2. the end point of a flight > > "city.flight" - city is start point, > "flight.city" - city is end point > >>> Nearly: sorting by first section of tree >>> (maybe by second section and so on after that) >>> is not seggested now >>> (user can sort, for examle, in browser by XSL). > > RH> Hang on, XSL is *not* easier to understand than SQL. > > Yes. > This means, that it's necessary to develop TML > (or HTML: > http://lists.w3.org/Archives/Public/public-html/2007Apr/1380.html). Are you sure this wouldn't just be easier if you wrote a specialised data-visualiser application? >>> RH> syntax for these queries isn't obvious enough to me >>> >>> What is not-obvious - >>> tree notation or work with fields inside section (record) in tree ? >>> If all of them, what is more not-obvious ? > > RH> If I'm going to learn only one query language, it'll be SQL > RH> because everything uses it. > > 'tablename >>;' is better, than to learn php, perl, its library But you're not doing the same thing. >>> XML is not stored thing, it is a transport form for scheme. > RH> Umm - xml schemas, that describe valid data for an xml document. > RH> http://www.w3.org/XML/Schema > RH> http://www.xml.com/pub/a/2001/12/12/schemacompare.html > > Term "scheme" means "database scheme" to me :) But you were talking about XML at the time. > RH> I'm sat here at my laptop, and I want to get a > RH> list of flights into a spreadsheet I'm doing for my boss. > > Your boss will itself solve "task of travelling-salesman" ? > By eyes ? No, but my boss wants a list of flights from London to Madrid for next Friday, with prices, times etc. > RH> 1. How do I create my TML query (assuming I haven't read the TML manual, > RH> because if I can read manuals then SQL is viable)? > > You start browser and open html-document on site of "list of flights". > Html-documents send XML data to Postgres (to site). > Postgres start function with name "main" > http://sql4.by.ru/site/sql40/en/author/inout_eng.htm > Function execute TML-request (it's made by authors of site !), > and Postgres send results to your browser. > You copy from browser into spreadsheet. > > Thus you don't need to write request. So what does it matter to me as a user whether the site is written in TML+Java or SQL+Java? And if I'm building the site in PHP anyway (and I'm going to need forms/buttons/etc in some language) then what am I gaining from the TML? > You will write TML-request, if you will author of site. > > RH> 3. How do I get results into the spreadsheet? > > It depends of data model: > if your get tree - there is no way in general case (i think), > if your get records of only one table/view: > > create view x as > select city.name as start, city.name as end, flight.t1, flight.t2, day > from city, flight; > x >>; Hang on - you're using SQL. Why not just use pgadmin and paste the results from my query if I'm using SQL anyway? > > then you get > > <x start="A" end="B" t1="5.00" t2="7.00" day="monday"> > ... > <x start="K" end="L" t1="15.00" t2="17.00" day="sunday"> > > RH> How does this TML setup avoid me having to write any > RH> php/perl/etc?" > > Look example about site of "list of flights" above. Sorry - you didn't eliminate any code there. > RH> We're going to need a form that lets people choose from > RH> a list of start and end cities, pick a date and see a list of flights > RH> (sorted by cost, or length or some such). At present I'll build that > RH> with e.g. PHP + SQL => PostgreSQL. What part of the process does TML > RH> make easier? > > You use only SQL and small simple part (simple part !) of TML to > transport data. But the transport of the data is trivial, assuming I have a webserver and PHP/Perl/ASP/etc. available. -- Richard Huxton Archonet Ltd
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Dmitry Turin
Date:
Good day, Richard. >> RH> <flight_chain ...> >> RH> <flight_options> >> RH> <flight...> >> RH> <flight...> These three flights represent options >> RH> <flight...> >> RH> </flight_options> >> RH> </flight_chain> RH> 1. A journey (flight_chain) between city A and city Z consists of one or RH> more flights. RH> 2. The next flight has to start at the current city, but there may be RH> several flights to choose from. RH> 3. The last flight must end at city Z. RH> Now stage 2 groups the flights to choose among - you can call it RH> something else, but the equivalent of flight_options is there. Tag "city" executed the same role in my version, that tag "flight_chain" in your version. >> RH> 2. If you nest flights then you'll be forced to repeat data, surely? >> RH> Multiple routes could end up mentioning flight id=123 several times and >> RH> each time have to repeat all possible options from it. >> >> Yes. >> Remember, this is not manner of storing data in DBMS. >> This is manner to visualize for man. RH> So how do I know it's repeated without grabbing a pencil and paper and RH> scrolling back and fore to compare them? Write XML-form, which illustrate, what are you want. I will write request. RH> Are you sure this wouldn't just be easier if you wrote a specialised RH> data-visualiser application? Avarage used can not use library of intermediate language to join DBMS and browser. P.S. Programmers are small percent of all users. >> RH> If I'm going to learn only one query language, it'll be SQL >> RH> because everything uses it. >> >> 'tablename >>;' is better, than to learn php, perl, its library RH> But you're not doing the same thing. I'm not doing? I have write example! >> Term "scheme" means "database scheme" to me :) RH> But you were talking about XML at the time. XML is not stored thing, it is a transport form for scheme. Let's ask concrete questions, ok? >> RH> I'm sat here at my laptop, and I want to get a >> RH> list of flights into a spreadsheet I'm doing for my boss. >> >> Your boss will itself solve "task of travelling-salesman" ? >> By eyes ? RH> No, but my boss wants a list of flights from London to Madrid for next RH> Friday, with prices, times etc. Direct flight?#city[name="London"].flight/c1:c2[#c1 #c2 #day="friday"].#city[name="Madrid"] >>; Roundabout flight? #city[name="London"].(flight/c1:c2[#day="friday" t1-^^.t2>30min].city)*||name="Madrid" ; Prices and times is attributes of FLIGHT. These are in Example 2. http://sql4.by.ru/site/sql40/en/author/wave_eng.htm RH> So what does it matter to me as a user User only use. Difference between realizations of site is important only for authors of site. RH> whether the site is written in TML+Java What will Java do ? RH> And if I'm building the site in PHP anyway (and I'm going to need RH> forms/buttons/etc in some language) then what am I gaining from the TML? >> create view x as >> select city.name as start, city.name as end, flight.t1, flight.t2, day >> from city, flight; >> x >>; RH> Hang on - you're using SQL. Why not just use pgadmin and paste the RH> results from my query if I'm using SQL anyway? paste by hands? RH> Sorry - you didn't eliminate any code there. I simplify code. Compare call of php library for database, getting record set, embrace records in circle by html-tags, call php library for http-communication. RH> But the transport of the data is trivial, assuming I have a webserver RH> and PHP/Perl/ASP/etc. available. 1. Speak not about you, but about average user.You don't know real statistics. 2. Even you make superfluous job. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Andrew Sullivan
Date:
On Thu, Apr 26, 2007 at 11:28:30AM +0300, Dmitry Turin wrote: > > Yes. > Remember, this is not manner of storing data in DBMS. > This is manner to visualize for man. So all of this sound and fury is not, as we have been understanding it, over some fundamental change to the way Pg works, but is instead some sort of veneer over the face of it? In that case, why not just write some user-space application that takes this (IMO useless) TML and translates it into proper SQL? You don't need to make any changes to Postgres at all, it seems. A -- Andrew Sullivan | ajs@crankycanuck.ca Information security isn't a technological problem. It's an economics problem. --Bruce Schneier
Dmitry, On Thu, 2007-04-26 at 11:33 +0300, Dmitry Turin wrote: > Joe, i speak not about you, but about statistics. Do you actually have statistics of how many people in the general population have learned SQL? And furthermore, how many of those people didn't already know or didn't want to bother learning another computer-related language? > J> there are others on this list and elsewhere that have done so > > Second question: why? > For what people must learn php, etc, > if they need only output data from database. If people only need to examine or visualize data, they can use any number of "user friendly" tools: PgAdmin, Excel with ODBC, etc. (and these may not be the best examples). However, someone will still have to learn SQL and C, PHP, Python, etc., to create an application to input and maintain the data. > >others may require the assistance of a > J> technical specialist or a full-time programming team, but what's wrong > J> with that? > > expenses of money, time, nerve to explain task to other man I believe your worldview is affected by the people you interact with. The average man or woman on the street doesn't want to know about SQL, relational databases, third normal form or, with all due respect, TML. If they have Internet access, they want to enter a query string into something like Google or Amazon and look at the results. Do you think if Amazon gave raw read access to their underlying database, many people would jump to query it with SQL, TML or any computer language? And even those who did, when they found a book of their choice they would still need APPLICATION code to enter their order. OTOH, I think you're dealing with a select group of scientists who have these data and they would love to "mine" it and analyze it to the nth degree but they don't want to jump through (too many) hoops to do so. And maybe TML is just what they need. And there are others (business people, for example) who also need to analyze the data they have and they don't mind paying for programmers, DBAs, etc. (even if sometimes it may be tough for them explaining *what* they want). For those, TML may or may not be a solution. The marketplace will decide. Joe
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Richard Huxton
Date:
Dmitry Turin wrote: > Good day, Richard. > >>> RH> <flight_chain ...> >>> RH> <flight_options> >>> RH> <flight...> >>> RH> <flight...> These three flights represent options >>> RH> <flight...> >>> RH> </flight_options> >>> RH> </flight_chain> > RH> 1. A journey (flight_chain) between city A and city Z consists of one or > RH> more flights. > RH> 2. The next flight has to start at the current city, but there may be > RH> several flights to choose from. > RH> 3. The last flight must end at city Z. > RH> Now stage 2 groups the flights to choose among - you can call it > RH> something else, but the equivalent of flight_options is there. > > Tag "city" executed the same role in my version, > that tag "flight_chain" in your version. No, it didn't. >>> RH> 2. If you nest flights then you'll be forced to repeat data, surely? >>> RH> Multiple routes could end up mentioning flight id=123 several times and >>> RH> each time have to repeat all possible options from it. >>> >>> Yes. >>> Remember, this is not manner of storing data in DBMS. >>> This is manner to visualize for man. > RH> So how do I know it's repeated without grabbing a pencil and paper and > RH> scrolling back and fore to compare them? > > Write XML-form, which illustrate, what are you want. > I will write request. What's that got to do with knowing whether a particular tag is repeated elsewhere in a long list. > RH> Are you sure this wouldn't just be easier if you wrote a specialised > RH> data-visualiser application? > > Avarage used can not use library of intermediate language > to join DBMS and browser. No, I said write your own "TML browser". > P.S. > Programmers are small percent of all users. > >>> RH> If I'm going to learn only one query language, it'll be SQL >>> RH> because everything uses it. >>> >>> 'tablename >>;' is better, than to learn php, perl, its library > RH> But you're not doing the same thing. > > I'm not doing? I have write example! No, you've provided a way of reformatting query results as XML. That's not the same as a public-facing website at all. You don't think British Airways will have people querying their database by entering TML queries? >>> Term "scheme" means "database scheme" to me :) > RH> But you were talking about XML at the time. > > XML is not stored thing, it is a transport form for scheme. > Let's ask concrete questions, ok? > >>> RH> I'm sat here at my laptop, and I want to get a >>> RH> list of flights into a spreadsheet I'm doing for my boss. >>> >>> Your boss will itself solve "task of travelling-salesman" ? >>> By eyes ? > RH> No, but my boss wants a list of flights from London to Madrid for next > RH> Friday, with prices, times etc. > > Direct flight? > #city[name="London"].flight/c1:c2[#c1 #c2 #day="friday"].#city[name="Madrid"] >>; > > Roundabout flight? > #city[name="London"].(flight/c1:c2[#day="friday" t1-^^.t2>30min].city)*||name="Madrid" ; > > Prices and times is attributes of FLIGHT. > These are in Example 2. > http://sql4.by.ru/site/sql40/en/author/wave_eng.htm > > RH> So what does it matter to me as a user > > User only use. > Difference between realizations of site is important only for authors > of site. So who it *is* the programmer who is using TML then? > RH> whether the site is written in TML+Java > > What will Java do ? As I said in my previous post, everything else (see next two lines you've quoted). > RH> And if I'm building the site in PHP anyway (and I'm going to need > RH> forms/buttons/etc in some language) then what am I gaining from the TML? > >>> create view x as >>> select city.name as start, city.name as end, flight.t1, flight.t2, day >>> from city, flight; >>> x >>; > RH> Hang on - you're using SQL. Why not just use pgadmin and paste the > RH> results from my query if I'm using SQL anyway? > > paste by hands? > > RH> Sorry - you didn't eliminate any code there. > > I simplify code. Can't see it myself. > Compare call of php library for database, getting record set, > embrace records in circle by html-tags, call php library for > http-communication. I still don't see the sense in what you're saying. My process is: 1. User goes to website 2. User fills in PHP form: start city, end city, date he wants to fly. 3. PHP generates SQL query and submits to database 4. Database runs query result as table 5. PHP formats results as nicely formatted table with company logos etc. 6. User views results. Yours is: 1. User goes to website 2. User fills in PHP form: start city, end city, date he wants to fly. 3. PHP generates TML query and submits to database 4. Database runs query result as XML 5. PHP formats results as nicely formatted table with company logos etc. 6. User views results. What is saved? And let's not say the user is viewing the raw XML because that's clearly no use in a public-facing site. > RH> But the transport of the data is trivial, assuming I have a webserver > RH> and PHP/Perl/ASP/etc. available. > > 1. Speak not about you, but about average user. But you just said the average user isn't building the application/website. > You don't know real statistics. > 2. Even you make superfluous job. Sounds to me like you want to either build your own browser, or just write a server-side application that receives TML and outputs XML. If you're serious about this, I recommend looking around for a PHP/Perl/Java programmer and hiring them for a week - that should be more than enough. Then, when you've got a few thousand users it will become clearer whats actually required. -- Richard Huxton Archonet Ltd
> >> J> And there's nothing wrong with Perl, PHP, Python and the myriad > >> J> interface languages. > >> I said many times, what is wrong: > >> applied users can not join sql and perl, can not use libraries, > >> and can not adjust web-server. > J> II have not taken any formal courses > Joe, i speak not about you, but about statistics. > J> there are others on this list and elsewhere that have done so > Second question: why? > For what people must learn php, etc, > if they need only output data from database. They don't; there are a myriad options. I've got numerous 'normal users' who use a database to do reasonably sophisticated things. All you need is a good client; we use DbVisualizer [ http://www.minq.se/products/dbvis/ ]. There are others, you don't need a programming language at all if all you want is "output data from database". Many of these, including DbVisualizer include GUI drag-n-drop query builders. Yes, you have to learn some SQL, but there is no case where you get something for nothing; and almost all humans are reliably quick-studies, even innovative, when they are properly motivated. > >others may require the assistance of a > J> technical specialist or a full-time programming team, but what's wrong > J> with that? > expenses of money, time, nerve to explain task to other man -- Adam Tauno Williams, Network & Systems Administrator Consultant - http://www.whitemiceconsulting.com Developer - http://www.opengroupware.org
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Dmitry Turin
Date:
Good day, Andrew. AS> translates it into proper SQL? How are you going to send and get XML-data by SQL ? Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Good day, Joe. Joe and other respected comrades, don't be angry, when my letter will be late. This is caused by technical schedule of our internet. J> ... and C, PHP, Python, etc., to create an application to input J> and maintain the data. Question remains open: for what people must learn php, if they need mainly "table1.table2 >>;" or "create view x ...; x>>;" I explain this thought. For example, TML consist of two parts: SIMPLE and DIFFICULT. Border between them is so: users will use mainly "<tagname> >>;" or "tablename >>;" Not all of TML will be used by low-skill users. But this don't canceals, that users need simple part of TML. J> Do you think J> if Amazon gave raw read access to their underlying database, J> many people would jump to query it with SQL, TML or any computer language? I speak about situation, when people need to create complex "database-visualizer" (visualizer is a browser, spreadsheet, etc). Practice show, that they use only database in this case (by sql-terminal like "pgsql.exe"). J> you're dealing with a select group of scientists who have J> these data and they would love to "mine" it and analyze it to the nth J> degree but they don't want to jump through (too many) hoops to do so. J> And maybe TML is just what they need. You are right. J> And there are others (business people, for example) J> who also need to analyze the data J> they have and they don't mind paying for programmers, J> DBAs, etc. (even if sometimes it may be tough for them explaining *what* J> they want). For those, TML may or may not be a solution. The J> marketplace will decide. I think, even high-skill users will prefer TML over php in simple case like "tablename>>;"". I think, even you will prefer in this case. ---statistics J> Do you actually have statistics of how many people in the general J> population have learned SQL? I imply phisicists, optics phisicists, biologists, zoologists, ecologists, with which i work from 1992 year. J> how many of those people didn't already know People of all technical profession (also chemists, technologists and others, which i meet, but with which i don't work) already know some computer languages - oldest generation: fortran, latex, shell (a little); middle geeration: c, fortran (a little), shell (a little); youngest generation: 1% use "c", 99% use "pascal" (not both of them, but often use Delpi). I speak about russian universities. If youngest generation meet need to use DBMS, all of them have learned by SQL (not PL/SQL, not system tables of DBMS). Deal with HTML is the same. People of non-technical professsion don't learn languages in universities (dispite of computer languages is part of program of universities). When they meet a need, half of them ask comarades to do task, half of them ask comarades to help in studing of languages. So situation is 50%-50%. I don't know situation in colleges. J> or didn't want to bother learning another J> computer-related language? People of all profession want to learn a little. "A little" means the following: they will learn SQL to work with data, but will not direct output to browser, spreadsheet, etc by language - they will use "pgsql.exe" - despite of presentation in "pgsql.exe" is less comfortable, than in browser, etc. Using of tools like "Cristal Report" is very seldom (i never meet, that russian applied specialist use such tools for databases). >> For what people must learn php, etc, >> if they need only output data from database. J> they can use any number of "user friendly" tools: PgAdmin "PgAdmin" is the same for visualization, as "pgsql.exe" J> Excel with ODBC Using this is over skills of users. J> However, someone will still have to learn SQL SQL is point, which may not be avoided (now). Thus SQL is separate topic. J> The average man or woman on the street For what you say about street ? Average people, which you can meet on street, make physical job. Dmitry Turin http://html6.by.ru http://sql4.by.ru http://computer2.by.ru
Hi Dmitry, On Wed, 2007-05-02 at 08:05 +0300, Dmitry Turin wrote: > J> The average man or woman on the street > > For what you say about street ? > Average people, which you can meet on street, make physical job. That is an American colloquialism to refer to just about anyone, regardless of what kind of work they do. The point is that --using the Pareto principle-- 80% (probably much more) of the people don't know SQL or are fluent in other programming languages, and they don't want to be bothered with *any* of it except to use the products and services that are made possible through them. According to the U.S. Bureau of Labor Statistics (BLS) there were 455,000 programming jobs in 2004. Even if you raise that by an order of magnitude you're still talking about less than 2% of the U.S. population. The BLS estimates there were 16,000 physicists/astronomers and 77,0000 biological scientists. So the software/programming and scientist populations may be roughly comparable. While the ratios may be better in some other countries, I doubt that they're much off. The bottom line is: the markets for PHP/etc. and TML are not too large, but you seem to be having a hard time convincing those of us who've taken even a mild interest in TML that it's really needed or is a better solution than what exists today. Joe
Re: Fwd: Re[2]: We all are looped on Internet: request + transport = invariant
From
Richard Huxton
Date:
Dmitry Turin wrote: > Good day, Richard. > > RH> With 7 flights it is easy to see if #2 matches #4. With 700 it is not so > RH> easy to see #2 matches #504. With a tree-structure it is impossible to > RH> sort leaf nodes without restructuring the tree. > > What is "#2 matches #4" ? Individual flights might occur in one or more options when building a flight-plan. > What sorting are you imply ? None. > To be in safe side: > TML allow table as particular case of tree > (when records of one table, i.e. nodes, have not sub-records, i.e. sub-nodes). > > RH> Never heard of eHTML, and I don't believe you can build a public-facing > RH> website with it unless it's at least as complicated as php. > > I try > http://lists.w3.org/Archives/Public/public-html/2007Apr/1384.html > http://lists.w3.org/Archives/Public/public-html/2007Apr/1380.html Nothing there to build a website with - by which I mean the logic required for an interactive website. >>> No. html-page send xml-data to TML-function "main". >>> Without any PHP. > RH> But it can't. It's HTML. You can't map arbitrary user-interface (e.g. > RH> perhaps I want users to click on a map of the world to pick cities) to a > RH> query language without some sort of glue language. > > You click on a map, and form send data to DBMS > (DBMS listen port#80 and accept HTTP). > What is impossible ? 1. HTML can't locate the nearest valid city based on where you clicked. HTML+Javascript could perhaps, but you didn't want people learning programming languages. 2. There isn't a database that listens on port 80 for HTTP 3. If there was, you'd still need it to translate a HTTP POST/GET into an internal query (in SQL or TML if there existed an implementation of TML). For non-trivial cases, that implies a programming language. 4. You'd still need logic to validate/transform input values and do the same for output values. For non-trivial cases that involves a programming language. >>> RH> 5. PHP formats results >>> TML extract xml to address of requester. > > RH> But no-one's going to want raw XML are they? They'll want properly > RH> formatted results > > I agree. > Results will formatted by CSS (or XSL). > > Even XSL is easier for scientists, than PHP-library. Why are scientists building a flight-planning website? -- Richard Huxton Archonet Ltd