From: topmind on
[Part 2 of reply]

>
> >>> "Locations" are increasingly obsolete and meaningless in cyberspace.
> >>
> >> [The] bits still need a home *somewhere*.
> >
> > The "real world" is not tree-shaped for the most part.
>
> Mu.

Un-Mu.

>
>
> >> If you can't answer trivially simple questions about trivial examples,
> >> what's the point in discussing more complex ones?
> >
> > If you can demonstrate that "structure" is a mathematically precise
> > term, I will lend credence to your claim of my delusionment. Deal?
>
> Nope, since it really wasn't a structure question. Your inability to
> answer a simple set theory question indicates you don't know set theory.
> That's fine. Just checking. End of story.

You are trying to use social intimidation instead of facts to back your
points.

>
>
> >> So, you bumped the issue up to a higher level and let them work out
> >> which of THEM had a higher priority for your time. In other words,
> >> it was *entirely* hierarchical.
> >>
> >> Which was exactly my point.
> >
> > Being "higher" is not necessarily hierarchical. Jet "A" may be higher
> > than Jet "B" in the sky, but that does not necessarily imply that the
> > placement of jets is hierarchical, for example.
>
> Jets in they sky don't have a relationship. Bosses and employees do.
>

So trees are about *social* relationships??? Your fuzz factory
is working all 3 shifts this week.

> Hierarchies *are* about relationships, and like it or not, the world
> is *filled* with them.
>

Relationships, yes. Trees, no.

>
> >> You DO understand the difference between *using* a browser and writing
> >> the code for it, don't you?
> >
> > To keep things clear, let's stick to one viewpoint or the other. You
> > pick. Then, let's revisit the topic. Deal?
>
> Let's recap. You claimed GUI software--note the term: SOFTWARE--was
> not hierarchical. I showed you that it was. Then you shifted to talking
> about GUI usage.

I meant it from the point-of-view of the application developer, and
not the builder of the tool ("boxed" software). If that was not
clear, I apologize.

>
> Software--in general--is hierarchically structured. It has high-level
> routines, mid-level routines and low-level routines.

Not event-driven software (from custom app perspective), at
least not on the large scale. The closest thing would be a
start-up form, which simply has an attribute or reference
somewhere marking it as the starting point. However, it is
trivially changable to another form just like picking
a different student to be the hall minitor.

>
>
> >>> You know, it is tough to describe this very well with words.
> >>
> >> For the fourth or fifth time: I UNDERSTAND THE PICTURE!
> >> Do you understand the question?
> >
> > No.
>
> Once more:
>
> >You> But a pure tree has no duplicate nodes.
>
> >Me> Show me one authority that agrees.
>
> I don't know how to make the question plainer.

Sigh. This gets back to the interchangability between
duplicate nodes OR cross-branch links. They are interchangable
views of the same thing.

>
>
> >> Just because multiple node happen to *refer* to the same thing, the
> >> nodes themselves--their place in the tree--ARE NOT DUPLICATES. They
> >> represent distinct, *necessary* (we presume) occurrances.
> >
> > They *are* duplicates or pointers (cross-branch). As proof, if we
> > want to change the name of or address in RAM of the called routine,
> > we have to update multiple spots. It is a fricken graph. I would
> > bet a paycheck on it if my wife would let me. They are multiple
> > references to the same thing and they bust tree-ness.
>
> You'd lose that paycheck.

Neener neener tree poop!

>
> Consider the "list" of routines visited during the execution of
> a program. It represents the thread of execution. It is a DYNAMIC
> thing generated by a running program.
>
> If that thread of execution re-visits a routine more than once, then
> that routine MUST appear in the list more than once. THAT IS THE
> REALITY--the program re-entered that routine.
>
> If you treat the "main" function that started the program as the root,
> you can draw a tree that represents that list of routines. That tree
> is "perfect" in the sense that no node "cross-connects" to any other
> node.
>
> Yes, it does have "duplicate" nodes, but NO that doesn't bust "treeness"
> (no matter how much you might wish it did). It is a "perfect" tree that
> represents the thread of execution of the program.


Like I keep saying, ANY graph can be turned into a tree with no
cross-branch links simply using node duplication. That is not
the issue. I don't dispute that hat-trick, but you keep
wording this like I do.

Any graph can be a "perfect tree" by your loose
definition (allowing dups or CBLs). That does not
get us any where.

The more duplication and/or cross-branch links, the
less useful tree-oriented tools and techniques will
be. Maybe our threashold is just different: I may
switch to sets when the dup/cross factor is something
like 15% and you will wait until something 50%.


>
> > I am only defining "pure tree" as one without duplication.
>
> Your definition is seriously broken. Find one authority that agrees.

It is a working definition to describe a situation, not a formal one.
It would be interesting to see an algorithm that scores node
dup or cross-branch-links of a candidate tree.

>
> > Are you suggesting that since reality has duplication that our
> > databases should also even if there are techniques to remove it?
>
> But they don't *remove* it, they (in a sense) compress it by normalizing
> the data. In a database version of the call graph, you'd have one record
> for each routine and a separate--"duplicate"--record in some other table
> for each time you visited that routine.

Normalizing it just turns the duplication into a cross-branch
"pointer".
Like I keep keep keep saying, both representations are interchangable.
But the "pure tree" buster is still there regardless of wether
you represent it with dups or CBL's.

>
> (In fact, given the appropriate query, the duplication "returns".)
>
>
> >>>> ...the parse tree itself is still a "pure" tree,
> >>>> because each "IF/ELSE" is contextually different.
> >>>
> >>> ...I ignore the IF/ELSE issue here, but would like to point out
> >>> that in some languages control constructs such as IF and WHILE are
> >>> simply function calls with some fancy scope management features
> >>> used rather than being built into the language.
> >>
> >> 1. That doesn't change a thing with regard to parse trees.
> >> 2. That is USUALLY the case unless you're programming in assembly.
> >> (That is, If/else and while are high-level constructs implemented
> >> by the language--they ALL translate to something more complex
> >> than the words "if" and "While".)
> >>
> >> We can apparently add parse trees to the list of things you don't
> >> really understand.
> >
> > In languages such as SmallTalk, LISP, and TCL, one can roll-their-own
> > control structures using the language itself. Do you question this?
>
> Not at all, but it has nothing to do with parse trees.

Then please clarify. I see no need to make a distinction
between control structures and functions because in some
languages that are the SAME thing. The other languages
simply "hard-wire" them into the syntax or lang
definition.

>
> > If not, then please apoligize for insulting me.
>
> It still looks like you don't know what a parse tree is, so no.

Whenever you lose and argument, you seem to
accuse me of ignorance. Prove I am ignorant with
details instead of claim it with vague accusations.

By the way, here is an example from c2.com wiki:

This code:

sub x(a,b,c) {
i = a
while (i < 20) {
if odd(i) {
i = i + b
} else {
i = i + c
print("in else")
}
print("in loop")
} // end-while
print(i)
}


Can be represented as a tree:

sub x(*)
--------
* * *
* * *
* * *
* * *
* * *
* * *
i = a while(*) print(i)
----- ----- --------
* *
* *
* *
if(*) print("in loop")
-- ----------------
**
* *
* *
* *
i=i+b else
----- ----
* *
* *
i=i+c print("in else")
----- ----------------


(*) = full expression not shown

>
>
> >> So? The point was that this GUI program definitely has higher and
> >> lower level functions. Apparently you no longer disagree.
> >
> > It *can* be implemented that way under the hood, but the implementation
> > is moot to the user (app developer).
>
> I have been *talking* about the app developer all along.
> I have not been talking about implementing the GUI engine.
>
> The code I showed you was developed (by me) as an APPLICATION.
> As I said last time:

Yes, but I asked for an *event driven* example. That is
not event-driven, or at least is not the event-driven
part of the code.

>
> >> This isn't about anything hidden or under the hood.
> >> It's about how you write a program.
> >> It's about how you analyse a problem and break it down.
> >
> > Where is the "tree" in an event-driven application?
>
> I **showed** it to you several posts ago. That was APPLICATION code.

app, yes. Even-driven, no.

Please, show us an "event-driven tree". I have never
seen a Unicorn.

>
> > Remember, I am NOT asking how one may impliment the event manager.
> > We are using the tool, not making it here.
>
> And I have responded ALL ALONG as an app developer.

Only if one is rolling their own event handler.

>
>
> --
> |_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? |

-T-

From: Chris Sonnack on
Dmitry A. Kazakov writes:

>> Do you think fuzzy logic is implemented without binary?
>
> Implemented is a wrong word here. Logic isn't implemented.

Oh. So....er.... those fuzzy logic tools I was using a few years
ago.... were they grown from, like, seeds or raised from pups? (-:


>> Multi-state logic is built on binary logic. Learn basic information
>> theory. It ALL can be broken down to 1s and 0s. Every, um, BIT of it.
>
> No, this is wrong.

(Has anyone informed Shannon?)

> Though it is possible to build some meta system based on crisp
> logic to analyse the propositions of the "object" [non-crisp]
> logic. Probably this what you meant.

Yep.

--
|_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|
From: Chris Sonnack on
Snipping everything that didn't move this forward shorted it a lot...

topmind writes:

>>>>>> Think you can write an SQL query to return a subset of
>>>>>> the records in that table? Of COURSE you can.
>>>>>
>>>>> If it has one table, it is still relational.
>>
>> (This, as stated, is *absolutely* incorrect, BTW.)
>
> Prove it.

Here's a table (first row headers):

NAME UID COLOR DATE TYPE
Alice - Blue 5-3-1948 BG45
Bob - Red 5-3-1948 XL220
Carol 3345 Red 12-7-1955 E30F
Dave 7709 Green 9-14-2000 -

I dispute your "relational==table" definition, so I see not
one thing that makes this table "relational". It's just a
(what I'd call) "flat table".

Given something containing this table that also supported
SQL, you could write:

Select NAME,COLOR from TABLE order by NAME

>> Regardless, in the case I had in mind, it wasn't. The
>> question remains: given a flat-table (non-relational)
>> database, can you still write an SQL query. Answer:
>> of course you can. SQL is JUST a query language.
>
> What exactly is a "flat" table?

See above. Similar to a flat file--an expression I believe I've
seen you use recently.

>>> I am not sure normalization is a requirement for "relational".
>>
>> For the pure (mathematical) definition, I'm pretty sure it's
>> one of the central, defining features!
>>
>> http://en.wikipedia.org/wiki/Database_normalization
>
> I dispute that.

Okay..... can you support that disputation in any way??

The line from that page, "In the relational model, formal
methods exist for quantifying "how normalized" a database is,"
seems to suggest to me normalization is a fundamental part of
a relational database.


>>> However, there are different ways to interpret "duplication" for
>>> empty cells. Empty cells do not have to take up physical space,
>>> especially in "dynamic relational".
>>
>> Empty cells? Where did that come from? Are you talking about NULL
>> fields? Row duplication?? What???
>
> This is getting into a long, drawn out debate about the
> nature of relational. Here is something related:
>
> http://www.c2.com/cgi/wiki?TupleDefinitionDiscussion

Perhaps related in the sense that other folks (who seem to know what
they're talking about) seem to think you don't. Or related in being
a long, drawn out debate.

But I do NOT see any relation to answering the question I asked.
Can you answer it, or were you just throwing words out randomly?

>> http://en.wikipedia.org/wiki/Relational_model
>>
>> It starts out, "The fundamental assumption of the relational model is
>> that all data are represented as mathematical relations,..."
>> ^^^^^^^^^
>> Sounds interconnected to me.
>
> Well, it is misleading. The same link also says:
>
> "A table is an accepted visual representation of a relation; a tuple is
> similar to the concept of row."

How, exactly, do you think that refutes the first quote?


>>>> No, it's a data storage concept. There are many reasons why the
>>>> physical storage location might change.
>>>
>>> Huh? Please clarify.
>>
>> Migration, rollups, new systems, OS changes, format changes, etc., etc.
>
> Yes, but ideally we abstract away from those. For example, we may
> create an ODBC name for a database reference. Even if the machine
> is moved, that same name can still point to the same one.

If the SAME machine is moved, yes. If the database moves to a different
machine (with a different name, obviously), then no. The ODBC setup
must be tweaked for the new hostname.


>> File systems have more flexibility than databases.
>
> Fooey! You already agreed that paths were fragile, being
> hard-to-change.

I'll accept the "broken path" issue as "cost of business" to gain the
inherent flexibility of a file system any day. I don't break file
paths THAT often--I do use the power of a file system many, many times
every day.

>> Consider this: what happens when several of my files *ARE* databases.
>> Big ones.
>
> I am not sure what you are getting at.

You want to store files in a database. What happens when those files
are very, very, very large?

>> Or consider this: in a FS, I can define a folder as publically shared,
>> read-only, and any file I drop in there is available to those I've
>> shared the folder to. I can casually share and unshare files just
>> by moving them in and out of the folder.
>
> I see no reason why a relational system cannot have the same
> kind of thing. However, usually you will find that security
> is not hierarchical as it scales.

1. This has NOTHING to do with hierarchical, this is about the idea of
replacing a file system with a database system.

2. Describe how you think an RDBMS would provide such a simple service.


>> With a database, you can only hope there's an attribute still attached
>> that might turn it up in a query. Maybe so, maybe not. Maybe when
>> Fred took over, he changed the attributes just slightly due to his own
>> personal preferences.
>
> Just because you are not adept at non-tree searches does not mean
> the rest of us are also not.

Okay, so describe how you would find Bob's old project files after Fred
was done changing the attributes?


--
|_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|
From: Chris Sonnack on
topmind writes:

>> Your inability to answer a simple set theory question indicates you
>> don't know set theory. That's fine. Just checking. End of story.
>
> You are trying to use social intimidation instead of facts to back your
> points.

You find it intimidating being asked to demonstrate that you know what
you're talking about?

How sad.


>>>> So, you bumped the issue up to a higher level and let them work out
>>>> which of THEM had a higher priority for your time. In other words,
>>>> it was *entirely* hierarchical.
>>>
>>> Being "higher" is not necessarily hierarchical. Jet "A" may be higher
>>> than Jet "B" in the sky, but that does not necessarily imply that the
>>> placement of jets is hierarchical, for example.
>>
>> Jets in they sky don't have a relationship. Bosses and employees do.
>
> So trees are about *social* relationships???

Don't be willfully stupid, there are many types of relationships.
I'd think someone hot for RELATIONAL databases would understand that.


>> Hierarchies *are* about relationships, and like it or not, the world
>> is *filled* with them.
>
> Relationships, yes. Trees, no.

Fine. You can open an office between the Flat Earth Society and those
twits that think we didn't *really* go to the moon.


>> Let's recap. You claimed GUI software--note the term: SOFTWARE--was
>> not hierarchical. I showed you that it was. Then you shifted to talking
>> about GUI usage.
>
> I meant it from the point-of-view of the application developer, and
> not the builder of the tool ("boxed" software). If that was not
> clear, I apologize.

Once, again, I understood and have been answering that way all along.
The code I showed you was a VB **application** I wrote. VB comes out
of the box.

>> Software--in general--is hierarchically structured. It has high-level
>> routines, mid-level routines and low-level routines.
>
> Not event-driven software (from custom app perspective), at least not
> on the large scale.

Have you ever actually *written* a GUI application of any size? Are you
under the impression that "event driven software" is JUST event handlers?

The larger the application, the more it does (besides handle various
events). The more it does, the more it's going to be hierarchical.

> The closest thing would be a start-up form, which simply has an attribute
> or reference somewhere marking it as the starting point.

And you don't think there's start up **code** that sets things up?
You don't think some events result in executing large bits of code?

Sometimes there's quite a lot of it, in fact. When I launch the
WebSphere App Developer Studio, it takes a couple *minutes* to launch.
It's doing a LOT of set up stuff--all (I have no doubt) hierarchically
structured. When I compile all projects in the workspace, it can go
on for several minutes. Again, I'd bet you a year's salary the code
behind the compile is hierarchically structured.


>>>You> But a pure tree has no duplicate nodes.
>>
>>>Me> Show me one authority that agrees.
>>
>> I don't know how to make the question plainer.
>
> [..yet another non-answer...]

Fine, whatever. Obviously you can't cite a single authority, and
for good reason. No part of the definition--even of formal trees--
prohibits duplicate nodes.

> [big snip]

What's gotten lost here is your understanding of the context. What
most of this has been about is the occurrence of trees in nature and
programming. As *data* *structures*, they are natural and vital.

As *taxonomical* structures, you can run into problems, and that's
where the idea of duplicate nodes or cross-branches can be an issue
(albeit, in programming, a solvable one).

(I think you'd do better if you recognized how important and useful
trees are--particularly as data structures--and didn't try to do the
equivalent of claiming we never landed on the moon. Intelligent
people know we did and that trees do occur in many places in nature
and programming and are terribly useful. That you can only push
your own agenda at the expense of another is--in my book--an almost
certain sign of a kook and a fool.)


>> Not at all, but it has nothing to do with parse trees.
>
> Then please clarify. I see no need to make a distinction
> between control structures and functions because in some
> languages that are the SAME thing. The other languages
> simply "hard-wire" them into the syntax or lang
> definition.

Agreed with you last time. Once again, it has nothing to do with
(1) parse trees in general and (2) duplicate nodes in a parse tree,
which (3) IS A PURE TREE (no branches reconnect).

>> It still looks like you don't know what a parse tree is, so no.
>
> Whenever you lose and argument, you seem to accuse me of ignorance.

I don't think I'm losing this argument at all! In fact, I'm quite
sure that, were it being judged purely on its debate points, you'd
have lost it long ago.

But regardless of that, I just plain think you ARE ignorant.

> Prove I am ignorant with details instead of claim it with vague
> accusations.

The fact that you don't seem to recognize how badly you've lost this
debate or how often I have apparently overwhelmed you with techical
details ought to make it pretty plain that I HAVE proved it.


> By the way, here is an example from c2.com wiki:

Gee, you can copy and paste. Can you *discuss* what you pasted?

Do you understand why (1) how an "if/else" is implemented is totally
irrelevant, or (2) why a parse tree is a pure tree?

> This code:
> [snip]
> Can be represented as a tree:
> [snip]

Indeed it can. Do you understand what you pasted?


>> The code I showed you was developed (by me) as an APPLICATION.
>> As I said last time:
>
> Yes, but I asked for an *event driven* example. That is
> not event-driven, or at least is not the event-driven
> part of the code.

And, in fact, as a medium-small-sized application, the event-driven
parts are not the bulk part of the application. I showed that to
you to counter your claim that GUI software was not hierarchical.

It most certainly is. The event handlers may all exist at the same
level of the hierarchy (although this doesn't have to be true), but
they--if they contain much code at all--will be their own little
hierarchies.

In fact, here's an example of hierarchy in event-handlers: In some
systems, the main window receives events, which it may process and
return as fully processed or pass on to a child element of the window.
That child element may fully process the event OR pass it in turn to
a child control.

So there ya go--you're even wrong about events not being tree-shaped.


--
|_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL |
|_____________________________________________|_______________________|
From: topmind on
Chris Sonnack wrote:
> Snipping everything that didn't move this forward shorted it a lot...
>
> topmind writes:
>
> >>>>>> Think you can write an SQL query to return a subset of
> >>>>>> the records in that table? Of COURSE you can.
> >>>>>
> >>>>> If it has one table, it is still relational.
> >>
> >> (This, as stated, is *absolutely* incorrect, BTW.)
> >
> > Prove it.
>
> Here's a table (first row headers):
>
> NAME UID COLOR DATE TYPE
> Alice - Blue 5-3-1948 BG45
> Bob - Red 5-3-1948 XL220
> Carol 3345 Red 12-7-1955 E30F
> Dave 7709 Green 9-14-2000 -
>
> I dispute your "relational==table" definition, so I see not
> one thing that makes this table "relational". It's just a
> (what I'd call) "flat table".

Well, my definition is correct. The history of
"relational" is based on that usage.

Note that "relations" (in a link sense) can
be to the same table, such as a table that
can represent hierarchies:

Name EmployeeID BossRef
---- ---------- ------
Fred 1234 4822
Mike 4838 4822
Jane 4822 5301
...etc...

Here "BossRef" is a foriegn key to the same table. Jane
is the boss of Fred and Mike. (I am not necessarily
proposing this as a "good" schema, only illustrating
self-referencing tables.)

>
> Given something containing this table that also supported
> SQL, you could write:
>
> Select NAME,COLOR from TABLE order by NAME
>
> >> Regardless, in the case I had in mind, it wasn't. The
> >> question remains: given a flat-table (non-relational)
> >> database, can you still write an SQL query. Answer:
> >> of course you can. SQL is JUST a query language.
> >
> > What exactly is a "flat" table?
>
> See above. Similar to a flat file--an expression I believe I've
> seen you use recently.


Perhaps I should avoid it if I do. It can have
multiple interpretations.


>
> >>> I am not sure normalization is a requirement for "relational".
> >>
> >> For the pure (mathematical) definition, I'm pretty sure it's
> >> one of the central, defining features!
> >>
> >> http://en.wikipedia.org/wiki/Database_normalization
> >
> > I dispute that.
>
> Okay..... can you support that disputation in any way??
>
> The line from that page, "In the relational model, formal
> methods exist for quantifying "how normalized" a database is,"
> seems to suggest to me normalization is a fundamental part of
> a relational database.

Normalization is simply duplication factoring. The principle
exists in just about every code or data organizational
principle. In other words, it cuts across paradigms.

The principles of normalization as they apply to tables
is simply a set of "steps" to help provide or
recognize duplication removal. (Normalization levels
beyond 3 may not reduce duplication and are controversial.)


>
>
> >>> However, there are different ways to interpret "duplication" for
> >>> empty cells. Empty cells do not have to take up physical space,
> >>> especially in "dynamic relational".
> >>
> >> Empty cells? Where did that come from? Are you talking about NULL
> >> fields? Row duplication?? What???
> >
> > This is getting into a long, drawn out debate about the
> > nature of relational. Here is something related:
> >
> > http://www.c2.com/cgi/wiki?TupleDefinitionDiscussion
>
> Perhaps related in the sense that other folks (who seem to know what
> they're talking about) seem to think you don't. Or related in being
> a long, drawn out debate.

In the end, I don't think anybody challenged the idea of
maps and tuples being representationally equivalent. If
they did, they stopped defending it such that their
arguments are not supplied.

>
> But I do NOT see any relation to answering the question I asked.
> Can you answer it, or were you just throwing words out randomly?

Sorry, but I lost the context of this section of discussion.
Please try to provide enough of the original discusion to
trigger memories of the context in the future when you
trim your replies. I would appreciate that. Use ellipses
if necessary.

>
> >> http://en.wikipedia.org/wiki/Relational_model
> >>
> >> It starts out, "The fundamental assumption of the relational model is
> >> that all data are represented as mathematical relations,..."
> >> ^^^^^^^^^
> >> Sounds interconnected to me.
> >
> > Well, it is misleading. The same link also says:
> >
> > "A table is an accepted visual representation of a relation; a tuple is
> > similar to the concept of row."
>
> How, exactly, do you think that refutes the first quote?

Maybe it doesn't. Either way it does not appear to support
your assertation that "relation" means cross-table references
in the context of relational.

>
>
> >>>> No, it's a data storage concept. There are many reasons why the
> >>>> physical storage location might change.
> >>>
> >>> Huh? Please clarify.
> >>
> >> Migration, rollups, new systems, OS changes, format changes, etc., etc.
> >
> > Yes, but ideally we abstract away from those. For example, we may
> > create an ODBC name for a database reference. Even if the machine
> > is moved, that same name can still point to the same one.
>
> If the SAME machine is moved, yes. If the database moves to a different
> machine (with a different name, obviously), then no. The ODBC setup
> must be tweaked for the new hostname.

The ODBC name is not the same thing as
a "machine name". It is essentially the name of
a configuration, a "reference" to a database (and usually a
locally-stored configuration). That way one
can refer to just the configuration name in the software
instead of having to supply the configuration details
themselves in the software. It is abstraction at its best.
If you have a better suggestion, I would like to hear it.
It is a logical name, NOT a physical name.

>
>
> >> File systems have more flexibility than databases.
> >
> > Fooey! You already agreed that paths were fragile, being
> > hard-to-change.
>
> I'll accept the "broken path" issue as "cost of business" to gain the
> inherent flexibility of a file system any day. I don't break file
> paths THAT often--I do use the power of a file system many, many times
> every day.

Few will dare to overhaul the paths of a large system because
of the chaos it causes to existing path references, NOT necessarily
because they are satisfied with the tree branching. The
paths are essentially primary keys that carry meaning but
cannot be changed without heavy disruption. The system
grows married to the ugly paths.

>
> >> Consider this: what happens when several of my files *ARE* databases.
> >> Big ones.
> >
> > I am not sure what you are getting at.
>
> You want to store files in a database. What happens when those files
> are very, very, very large?

That is an implimentation detail. There is nothing in relational
theory that says "cells must be small". I don't know what the
upper limits are on the leading vendor's products. Generally
they up the threashold over time.

Note that I agree existing RDBMS are probably not up to the task
of being file/folder managers. They are not tuned for that
use.

>
> >> Or consider this: in a FS, I can define a folder as publically shared,
> >> read-only, and any file I drop in there is available to those I've
> >> shared the folder to. I can casually share and unshare files just
> >> by moving them in and out of the folder.
> >
> > I see no reason why a relational system cannot have the same
> > kind of thing. However, usually you will find that security
> > is not hierarchical as it scales.
>
> 1. This has NOTHING to do with hierarchical, this is about the idea of
> replacing a file system with a database system.
>
> 2. Describe how you think an RDBMS would provide such a simple service.

UPDATE folders SET shared=true WHERE [folder criteria]

However, in practice a given folder is rarely best shared with the
whole entire world. Thus, some kind of role-based approach
or Access Control list may be more appropriate for larger
organizations.

>
>
> >> With a database, you can only hope there's an attribute still attached
> >> that might turn it up in a query. Maybe so, maybe not. Maybe when
> >> Fred took over, he changed the attributes just slightly due to his own
> >> personal preferences.
> >
> > Just because you are not adept at non-tree searches does not mean
> > the rest of us are also not.
>
> Okay, so describe how you would find Bob's old project files after Fred
> was done changing the attributes?

How is this any worse than changing tree paths to represent
the newer changed information? If attributes can lie, then
so can tree paths. Either there are sufficient attributes
to describe a thing or there are not. If you want to keep
a history table for searches based on past attribute
settings, you can. (Many RDBMS provide attribute change
log options so that one can study the history of something.)
It is simply the GIGO principle.

Unlike tree paths, adding or removal attributes is
usually not going to bust the primary key of a table.
Orthogonal info is kept orthogonal. Tree paths don't
provide very much orthogonality to attributes.

>
>
> --
> |_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? |

-T-

First  |  Prev  |  Next  |  Last
Pages: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
Next: Use Case Point Estimation