Ohjelmointikielissä, käyttöjärjestelmäsuunnitelmissa ja tietokannan hallintajärjestelmissä eri objektit ja luokat on tallennettu objektien väliseen assosiaatioon. Sekä yhdistämistä että koostumusta käytetään kuvaamaan tätä suhdetta objektien välillä, jotta tietojoukkoja voidaan tallentaa ja hakea tehokkaammin vähentämällä ajan ja tilan monimutkaisuutta.
Aggregointi vs koostumus
Pääasiallinen ero yhdistämisen ja koostumuksen välillä on se, että yhdistäminen kuvaa niiden objektien välistä yhteyttä, jotka ovat riippuvaisia toisistaan niiden luomisessa. Kompositio kuvaa esineitä, joiden luominen ja toiminta ovat suoraan riippuvaisia toisistaan. Tässä tapauksessa yksi esine omistaa toisen.
Aggregaatio on kahden tietojoukon, kuten luokkien tai objektien, välinen yhteys, jossa mukana olevat objektit eivät ole suoraan riippuvaisia toisistaan niiden luomisessa tai toiminnassaan. Siten yhden kohteen manipulointi ei muuta toisen objektin tilaa. Tämä yhdistäminen mahdollistaa muutosten tekemisen ilman menetyksiä.
Koostumus on aggregoinnin erityinen tyyppi, ja se kuvaa kahden tietojoukon välistä suhdetta, jossa mukana olevat objektit tai luokat ovat suoraan riippuvaisia toisistaan luomisen, tallennuksen, toiminnan ja niin edelleen suhteen. Siten kaikki muutokset johonkin tietojoukoista vaikuttavat suoraan toiseen tietojoukkoon.
Aggregoinnin ja koostumuksen vertailutaulukko
Vertailuparametrit | Aggregointi | Sävellys |
Määritelmä | Aggregaatio on eräänlainen assosiaatio, jossa objektit eivät ole riippuvaisia toisistaan | Koostumus on assosiaatio esineiden riippuvuuteen toisistaan |
Suhde | Tietojen välillä on epäsuora yhteys | Tietojoukkojen välinen vanhempi-lapsi-suhde |
UML-symboli | Aggregaatio on merkitty tyhjällä timantilla | Koostumus on merkitty täytetyllä timantilla |
Muokkaus | Yhden kohteen muuttaminen ei muuta toista objektia | Yhden objektin muokkaaminen muuttaa toisen kohteen tietoja |
Yhdistyksen vahvuus | Se on heikko yhdistys | Se on vahva yhdistys |
Mitä on yhdistäminen?
Aggregointi on kahden tietojoukon, kuten luokkien, objektien ja niin edelleen, välinen yhteys tai suhde. Yhdistäminen on tehty ryhmittelemään tietojoukot, joilla on yhtäläisyyksiä.
Tämän tyyppisessä assosiaatiossa objekteilla tai luokilla ei ole suoraa yhteyttä. Tietojoukoilla on "Has-A" -suhde.
Tämä tarkoittaa, että tietojoukot eivät ole riippuvaisia toisistaan niiden luomisessa, tallentamisessa tai minkään toiminnon tai toiminnan suhteen. Tämä on tämän yhdistämismuodon käyttämisen keskeinen etu samanlaisten tietojoukkojen tallentamiseen.
Koska objektit ja luokat eivät ole suoraan riippuvaisia toisistaan, mikään objektiin tai luokkiin tehdyt muutokset eivät muuta tai muokkaa toiseen tietojoukkoon tallennettujen tietojen sisältöä.
Tämä mahdollistaa yhden tietojoukon tuhoamisen koottuna ilman, että sinun tarvitsee huolehtia toiseen tietojoukkoon tallennetusta tiedosta.
Tästä Aggregation-suhteen ominaisuudesta johtuen sitä käytetään enimmäkseen testausympäristöissä, joissa tietoja on muokattava jatkuvasti. Aggregoitujen objektien välisen "Has-A" -suhteen vuoksi tiedot eivät tuhoudu muissa tietojoukoissa.
UML-esityksessä käytetään tyhjää timanttisymbolia määrittämään yhdistämissuhde.
Mikä on Koostumus?
Koostumus on eräänlainen tietojoukkojen välinen suhde, ja sitä käytetään enimmäkseen tietokantojen hallintajärjestelmissä ja käyttöjärjestelmien suunnittelussa. Tietojoukot voivat sisältää objekteja, luokkia ja niin edelleen.
Koostumus luo tietojoukkojen välille yhteyden, joka on suorempi kuin yhdistäminen. Siten objektit ja luokat liittyvät suoraan toisiinsa tietojoukkojen luomisen aikana.
Koska objektit ja luokat liittyvät suoraan toisiinsa, ne ovat riippuvaisia toisistaan niiden luomisessa, tallentamisessa ja kaikissa toiminnoissa tai toiminnoissa.
Suhde esitetään joskus "vanhempi-lapsi"- tai "omistaja"-suhteena, jossa yksi tietojoukko on toisen tietojoukon omistaja.
Tämän tyyppisen suhteen käytön suurin haittapuoli on se, että kun yhtä objekteista tai luokista muutetaan tai muutetaan, muutos heijastuu toiseen tietoaineistoon ja myös tietojoukon sisältämää dataa muutetaan.
Tämä on huomioitava tällaisten tietojoukkojen kanssa työskennellessä, sillä jos yksi tietojoukoista tuhoutuu tai poistetaan, myös toinen tietojoukko, joka liittyy kyseiseen aineistoon, tuhoutuu.
Mutta tiedot tallennetaan turvallisemmin, kun käytetään objektien tai luokkien välistä koostumussuhdetta. Sävellystyypin assosiaatioiden UML-esitykseen käytetään täytettyä timanttia.
Tärkeimmät erot yhdistämisen ja koostumuksen välillä
Johtopäätös
Tietojoukkoja tarvitaan tietojen tehokkaampaan tallentamiseen, kun mukana olevat tiedot ovat jonkin verran samankaltaisia. Siten tietokantojen hallintajärjestelmiä tehtäessä luodaan erilaisia tietojoukkoliitoksia kuvastamaan tietojoukkojen välistä suhdetta.
Sekä kokoaminen että kokoonpano ovat assosiaatiotyyppejä, jotka kuvastavat mukana olevien tietojen välistä suhdetta.
Aggregointi ei ole suora suhde, ja tämäntyyppiseen assosiaatioon liittyvät tiedot eivät ole riippuvaisia toisistaan niiden luomisen ja toiminnan suhteen.
Koostumus on suora assosiaatiotyyppi, ja asiaan liittyvien tietojen välinen suhde esitetään joskus "vanhempi-lapsi" -esityksessä.
Siten Koostumus on vahvempi assosiaatio kuin Aggregaatio, mutta tietojoukkojen riippuvuus on huomioitava tämän tyyppisen assosioinnin kanssa työskennellessä.