Thread View: pl.comp.objects
1 messages
1 total messages
Started by quas... Robert Perlinski
Wed, 29 Nov 1995 00:00
Re: OO system over RDB (fwd)
Author: quas... Robert Perlinski
Date: Wed, 29 Nov 1995 00:00
Date: Wed, 29 Nov 1995 00:00
72 lines
2464 bytes
2464 bytes
Kuba Chabik/Duncan Pierce napisali: > But I have heard about some pretty general techniques for > "objectising" a relational database (why would you want > to do this? nobody knows). Jakbym siebie slyszal. > The obvious solution is to start by writing a class for > every database table. Rzeczywiscie ten sposob na pierwszy rzut oka wydaje sie oczywisty. Kazda klasa posiada odpowiadajaca jej relacje, co sprawia, ze pod wzgledem logicznym, modele relacyjny i obiektowy sa zblizone. Problem zaczyna sie jednak w momencie, gdy pojawia sie dziedziczenie. Oto przyklad: dane sa klasy A <- B <- C <- D <- E gdzie <- oznacza dziedziczenie (A jest klasa pierwotna). Zgodnie z wczesniej przyjeta zasada "1 klasa 1 relacja" nasza RBD zawierac bedzie nastepujace relacje Tab_A, Tab_B, Tab_C, Tab_D, Tab_E Zalozmy, ze gdzies w naszym programie pojawia sie potrzeba inicjalizacji obiektu klasy E wartosciami pobranymi z bazy danych. Pomijajac szczegoly nasze zdanie SQL bedzie wygladalo nastepujaco select cos-tam-cos-tam from Tab_A, Tab_B, Tab_C, Tab_D, Tab_E where warunek-laczacy-ze-soba-ww-relacje Jak wiec wyraznie widac, aby otrzymac dane obiektu klasy E nalezy uzyc "multiple join" laczacy 5 (!) relacji. Przy odpowiednio duzej liczbie rekordow, jest to, biorac pod uwage szybkosc, samobojstwo dla kazdej aplikacji. Co bedzie, gdy nasza klasa zamiast 4 przodkow bedzie miala ich np. 10. Np. A <- B <- C <- D <- E <- F <- G <- H <- I <- J <- K i odpowiednio Tab_A, Tab_B, Tab_C, Tab_D, Tab_E, Tab_F, Tab_G, Tab_H, Tab_I, Tab_J, Tab_K Oto nasze zdanie SQL, ktorego nie radze uruchamiac select cos-tam-cos-tam from Tab_A, Tab_B, Tab_C, Tab_D, Tab_E, Tab_F, Tab_G, Tab_H,Tab_I, Tab_J, Tab_K where warunek-laczacy-ze-soba-ww-relacje Jaki sa z tego wszystkiego wnioski. Proponuje nastepujace: 1. Zasada "1 klasa 1 relacja" nie zawsze zdaje egzamin. W takich sytuacjach nalezy sprobowac odwzorowania "N klas 1 relacja" 2. RBD + OO = same_klopoty I to by bylo na tyle Robert
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads