+ Reply to Thread
Results 1 to 9 of 9

graph network structure with relational DB

  1. graph network structure with relational DB

    I have a quite standard graph represention of a social network :
    an auto-referential 'users' table (user_id , data...) and a
    'relationship' join table (from_id, to_id)

    is there any place to look for information about queries performance
    (and related tricks or suggestions) when managing such kind of related
    info , like 'find/count all related people to someone... up to a-level"
    I read some interessing articles , but all are very academical ,
    math-oriented, far from DB structure...

    thanks for your advices

    joss


  2. Re: graph network structure with relational DB

    I have looked at doing large relational databases for a couple ideas
    that I have had for some social network style projects, but never could
    fully come to a method that I would be happy with.

    Since DB's have a one to one, one to many, and many to one relation
    that would be just about all we could work with.

    With social networking theory you break them in groups, nodes,
    branches, and hubs. That said you would have to have a raw database
    with each users one to one relation(s). From that you could query your
    entire DB to find groups, and hubs then build a 2nd DB with these
    hubs/groups and their members (Nodes I think).

    That way you could say something in the effect of person/item (a) is
    part of or has a one to one relation to (x) hub/group, and person (b)
    has one relation to (z) hub/group, and group (z) is connected to group
    (x), by group (c)>(d)>(m).

    Thus you would only have to find the two users closes hub(s) and then
    query the database step by step to the next hub(less queries).

    Mapping logic... If anyone else has any information on the subject I
    would also like to hear what they have to say on it.


  3. Re: graph network structure with relational DB

    I have looked at doing large relational databases for a couple ideas
    that I have had for some social network style projects, but never could
    fully come to a method that I would be happy with.

    Since DB's have a one to one, one to many, and many to one relation
    that would be just about all we could work with.

    With social networking theory you break them in groups, nodes,
    branches, and hubs. That said you would have to have a raw database
    with each users one to one relation(s). From that you could query your
    entire DB to find groups, and hubs then build a 2nd DB with these
    hubs/groups and their members (Nodes I think).

    That way you could say something in the effect of person/item (a) is
    part of or has a one to one relation to (x) hub/group, and person (b)
    has one relation to (z) hub/group, and group (z) is connected to group
    (x), by group (c)>(d)>(m).

    Thus you would only have to find the two users closes hub(s) and then
    query the database step by step to the next hub(less queries).

    Mapping logic... If anyone else has any information on the subject I
    would also like to hear what they have to say on it.


  4. Re: graph network structure with relational DB

    On 2007-01-13 18:41:02 +0100, "l3vi" said:

    > I have looked at doing large relational databases for a couple ideas
    > that I have had for some social network style projects, but never could
    > fully come to a method that I would be happy with.
    >
    > Since DB's have a one to one, one to many, and many to one relation
    > that would be just about all we could work with.
    >
    > With social networking theory you break them in groups, nodes,
    > branches, and hubs. That said you would have to have a raw database
    > with each users one to one relation(s). From that you could query your
    > entire DB to find groups, and hubs then build a 2nd DB with these
    > hubs/groups and their members (Nodes I think).
    >
    > That way you could say something in the effect of person/item (a) is
    > part of or has a one to one relation to (x) hub/group, and person (b)
    > has one relation to (z) hub/group, and group (z) is connected to group
    > (x), by group (c)>(d)>(m).
    >
    > Thus you would only have to find the two users closes hub(s) and then
    > query the database step by step to the next hub(less queries).
    >
    > Mapping logic... If anyone else has any information on the subject I
    > would also like to hear what they have to say on it.


    thanks a lot for your feedback... right now I'll work on 2 levels only
    , and doing simple queries

    a user A has 1st level relationship (let's say 30 other users)
    at 2nd level this 30 people may also have their own 1st level
    relationship, which gives A a second level relationship of 900 users..
    that's all for now... I'll write the methods to handle that

    I read an article (pdf) "Using Structure Indices for Efficient
    Approximation of Network Properties" written by Matthew J. Rattigan
    (rattigan@cs.umass.edu), Marc Maier (maier@cs.umass.edu) and David
    Jensen (jensen@cs.umass.edu) which is very interesting on the subject...

    joss



  5. Re: graph network structure with relational DB

    On 2007-01-13 18:41:02 +0100, "l3vi" said:

    > I have looked at doing large relational databases for a couple ideas
    > that I have had for some social network style projects, but never could
    > fully come to a method that I would be happy with.
    >
    > Since DB's have a one to one, one to many, and many to one relation
    > that would be just about all we could work with.
    >
    > With social networking theory you break them in groups, nodes,
    > branches, and hubs. That said you would have to have a raw database
    > with each users one to one relation(s). From that you could query your
    > entire DB to find groups, and hubs then build a 2nd DB with these
    > hubs/groups and their members (Nodes I think).
    >
    > That way you could say something in the effect of person/item (a) is
    > part of or has a one to one relation to (x) hub/group, and person (b)
    > has one relation to (z) hub/group, and group (z) is connected to group
    > (x), by group (c)>(d)>(m).
    >
    > Thus you would only have to find the two users closes hub(s) and then
    > query the database step by step to the next hub(less queries).
    >
    > Mapping logic... If anyone else has any information on the subject I
    > would also like to hear what they have to say on it.


    thanks a lot for your feedback... right now I'll work on 2 levels only
    , and doing simple queries

    a user A has 1st level relationship (let's say 30 other users)
    at 2nd level this 30 people may also have their own 1st level
    relationship, which gives A a second level relationship of 900 users..
    that's all for now... I'll write the methods to handle that

    I read an article (pdf) "Using Structure Indices for Efficient
    Approximation of Network Properties" written by Matthew J. Rattigan
    (rattigan@cs.umass.edu), Marc Maier (maier@cs.umass.edu) and David
    Jensen (jensen@cs.umass.edu) which is very interesting on the subject...

    joss



  6. Re: graph network structure with relational DB

    On 15.01.2007 12:49, Josselin wrote:
    > thanks a lot for your feedback... right now I'll work on 2 levels only
    > , and doing simple queries
    >
    > a user A has 1st level relationship (let's say 30 other users)
    > at 2nd level this 30 people may also have their own 1st level
    > relationship, which gives A a second level relationship of 900 users..
    > that's all for now... I'll write the methods to handle that


    You can deal with fixed level of nesting queries in a single SELECT
    statement - SQL just chokes on the unlimited recursion (unless you are
    on Oracle and can use CONNECT BY).

    Kind regards

    robert

  7. Re: graph network structure with relational DB

    On 15.01.2007 12:49, Josselin wrote:
    > thanks a lot for your feedback... right now I'll work on 2 levels only
    > , and doing simple queries
    >
    > a user A has 1st level relationship (let's say 30 other users)
    > at 2nd level this 30 people may also have their own 1st level
    > relationship, which gives A a second level relationship of 900 users..
    > that's all for now... I'll write the methods to handle that


    You can deal with fixed level of nesting queries in a single SELECT
    statement - SQL just chokes on the unlimited recursion (unless you are
    on Oracle and can use CONNECT BY).

    Kind regards

    robert

  8. Re: graph network structure with relational DB

    On 2007-01-15 13:12:55 +0100, Robert Klemme said:

    > On 15.01.2007 12:49, Josselin wrote:
    >> thanks a lot for your feedback... right now I'll work on 2 levels only
    >> , and doing simple queries
    >>
    >> a user A has 1st level relationship (let's say 30 other users)
    >> at 2nd level this 30 people may also have their own 1st level
    >> relationship, which gives A a second level relationship of 900 users..
    >> that's all for now... I'll write the methods to handle that

    >
    > You can deal with fixed level of nesting queries in a single SELECT
    > statement - SQL just chokes on the unlimited recursion (unless you are
    > on Oracle and can use CONNECT BY).
    >
    > Kind regards
    >
    > robert


    thanks a lot, I'll
    joss


  9. Re: graph network structure with relational DB

    On 2007-01-15 13:12:55 +0100, Robert Klemme said:

    > On 15.01.2007 12:49, Josselin wrote:
    >> thanks a lot for your feedback... right now I'll work on 2 levels only
    >> , and doing simple queries
    >>
    >> a user A has 1st level relationship (let's say 30 other users)
    >> at 2nd level this 30 people may also have their own 1st level
    >> relationship, which gives A a second level relationship of 900 users..
    >> that's all for now... I'll write the methods to handle that

    >
    > You can deal with fixed level of nesting queries in a single SELECT
    > statement - SQL just chokes on the unlimited recursion (unless you are
    > on Oracle and can use CONNECT BY).
    >
    > Kind regards
    >
    > robert


    thanks a lot, I'll
    joss


+ Reply to Thread