Olio-Relaatio-Mallinnus WWW-palvelussa
Korhonen, Antti (2012)
Korhonen, Antti
Lahden ammattikorkeakoulu
2012
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201204295514
https://urn.fi/URN:NBN:fi:amk-201204295514
Tiivistelmä
Opinnäytetyö tehtiin ohjelmistotalo Korpimedia Oy:lle. Opinnäytetyön kohteena oli toteuttaa tietokannan olio-relaatio-mallinnus PHP-kielellä toteutettuun avainasiakasjärjestelmään. Mallinnus toteutettiin käyttämällä Doctrine ORM -kirjastoa. Ohjelmointiympäristönä käytössä oli Netbeans-ohjelma ja WAMP-palvelinkokonaisuus.
Doctrine toimii tietokanta-abstraktiokerroksen avulla. Doctrine on rakennettu Active Record, Data Mapper- ja Meta Data Mapping -suunnittelumallien päälle. Keskeisessä asemassa on Doctrine_Record-luokka, josta peritään tietokannan tauluja vastaavat malliluokat.
Doctrine voidaan asentaa palvelimelle käyttäen joko Subversion-versionhallintaa tai PEAR-asennusohjelmaa tai lataamalla Doctrinen PEAR-paketti. Toimiakseen Doctrine vaatii PHP:n version 5.2.3 tai uudemman.
Doctrineen on mahdollista konfiguroida esimerkiksi yhteyden toiminta käyttämällä Doctrine_Manager::setAttribute-metodia. Doctrine_Connection-luokka toimii tietokantayhteyden säilövänä luokkana. Sen avulla voidaan luoda ja tuhota tietoja tietokannasta. Tietokannan mallintavat malliluokat, jotka voidaan luoda joko malligeneraattorilla tai manuaalisesti. Mallit ladataan joko niin, että malli ladataan vain tarvittaessa, tai niin, että kaikki mallit ladataan muistiin. Käytettävä lataustapa voidaan konfiguroida. Malleihin tietokannan sarakkeet määritellään setTableDefinition-metodissa käyttäen DoctrineRecord::hasColumn-metodia. Metodissa määritellään sarakkeen nimi, tietotyyppi ja pituus. Suhteet määritellään setUp-metodissa käyttäen joko hasOne- tai hasMany-metodeja.
DQL, eli Doctrine Query Language, on oliopohjainen kyselykieli. DQL:n avulla voidaan tehdä select-, update- tai delete-kyselyitä. Kysely luodaan käyttäen Doctrine_Query::create-metodia. Doctrinella on myös mahdollista validoida tietueet ja sivuttaa suuri joukko tietueita.
Avainasikasjärjestelmässä käytettiin hyväksi automaattista mallienluontia, Doctrine_Record-malliluokkia tiedon käsittelyyn, Doctrine_Query-olioita tiedon hakemiseen ja Doctrine_Pager-oliota tietuejoukkojen sivutukseen. Parannettavaa sovelluksessa olisi ollut transaktioiden käyttö ja sivutuksen osittaminen. Sovellus on koekäytössä, ja sen kehitystyö jatkuu
Doctrine toimii tietokanta-abstraktiokerroksen avulla. Doctrine on rakennettu Active Record, Data Mapper- ja Meta Data Mapping -suunnittelumallien päälle. Keskeisessä asemassa on Doctrine_Record-luokka, josta peritään tietokannan tauluja vastaavat malliluokat.
Doctrine voidaan asentaa palvelimelle käyttäen joko Subversion-versionhallintaa tai PEAR-asennusohjelmaa tai lataamalla Doctrinen PEAR-paketti. Toimiakseen Doctrine vaatii PHP:n version 5.2.3 tai uudemman.
Doctrineen on mahdollista konfiguroida esimerkiksi yhteyden toiminta käyttämällä Doctrine_Manager::setAttribute-metodia. Doctrine_Connection-luokka toimii tietokantayhteyden säilövänä luokkana. Sen avulla voidaan luoda ja tuhota tietoja tietokannasta. Tietokannan mallintavat malliluokat, jotka voidaan luoda joko malligeneraattorilla tai manuaalisesti. Mallit ladataan joko niin, että malli ladataan vain tarvittaessa, tai niin, että kaikki mallit ladataan muistiin. Käytettävä lataustapa voidaan konfiguroida. Malleihin tietokannan sarakkeet määritellään setTableDefinition-metodissa käyttäen DoctrineRecord::hasColumn-metodia. Metodissa määritellään sarakkeen nimi, tietotyyppi ja pituus. Suhteet määritellään setUp-metodissa käyttäen joko hasOne- tai hasMany-metodeja.
DQL, eli Doctrine Query Language, on oliopohjainen kyselykieli. DQL:n avulla voidaan tehdä select-, update- tai delete-kyselyitä. Kysely luodaan käyttäen Doctrine_Query::create-metodia. Doctrinella on myös mahdollista validoida tietueet ja sivuttaa suuri joukko tietueita.
Avainasikasjärjestelmässä käytettiin hyväksi automaattista mallienluontia, Doctrine_Record-malliluokkia tiedon käsittelyyn, Doctrine_Query-olioita tiedon hakemiseen ja Doctrine_Pager-oliota tietuejoukkojen sivutukseen. Parannettavaa sovelluksessa olisi ollut transaktioiden käyttö ja sivutuksen osittaminen. Sovellus on koekäytössä, ja sen kehitystyö jatkuu
