U računalnom programiranju objekti pristupa podacima (DAO) su tehnika dizajna koja stvara sloj modula za upravljanje svim pristupom podacima za softverski program. Ovaj sloj je odgovoran za čitanje i pisanje podataka u bazu podataka ili vanjski datotečni sustav. U dizajnu softvera postoji mnogo načina za čitanje i upisivanje podataka u bazu podataka. To može uzrokovati nemaran softverski kod jer programeri mogu koristiti više metoda za obavljanje istog zadatka pristupa podacima. Jedna od primarnih prednosti korištenja DAO-a je mogućnost standardizacije načina pristupa podacima za softverski program. DAO dizajn osigurava da će se svi pristupi bazi podataka obavljati na sličan način, što čini softver boljim.
Objekti pristupa podacima prvi put su akademski uvedeni u modelu objektnog programiranja. Ovaj pristup arhitekturi zahtijeva da se softver ugradi u specifične module sa specifičnom svrhom. DAO je softverski modul koji je odgovoran za dohvaćanje i modificiranje svih podataka s bilo kojeg uređaja za pohranu podataka.
Tehnika korištenja DAO-a nije jedinstvena za određeni programski jezik. Microsoft MS Access prvi je uveo ovaj pristup, ali je trenutno dostupan u većini modernih programskih jezika. Smatra se najboljom praksom centraliziranja pristupa podacima jer softversku aplikaciju čini fleksibilnom. Ova tehnika može uštedjeti vrijedne sate razvoja jer stvara modul za višekratnu upotrebu za bazu podataka.
Jedan primjer objekata pristupa podacima u praksi je prikaz rezultata stranica po stranicu koji se često nalazi u web pregledniku. Kada se nakon pretraživanja prikaže prva stranica rezultata, zaslon obično omogućuje korisniku da odabere sljedeću stranicu podataka. Ovo koristi DAO uzorak, koji korisniku omogućuje kretanje naprijed-natrag kroz skup podataka.
Mnogi softverski okviri implementirali su objekte pristupa podacima unutar softverskih alata. Neki primjeri uključuju hibernaciju, proljeće i java objekte podataka (JDO). Ovi okviri su korisni za programere softvera jer su inkapsulirali DAO uzorak unutar okvira, čineći ga skrivenim od programera.
Korištenje objekata za pristup podacima također može uštedjeti vrijeme uz testiranje i implementaciju softverskog koda. Jedini modul za kodiranje odgovoran je za pristup podacima za cijelu aplikaciju. To olakšava testiranje jer jedan modul može potvrditi više podataka pristupnih točaka softvera.