W obecnych czasach, kiedy odeszło się już od programowania strukturalnego, a stosowane jest podejście obiektowe, programiści chcą by pisany przez nich kod był uporządkowany i łatwy w późniejszej modyfikacji. By tak właśnie było, wymyślane są różnego rodzaju wzorce, mające na celu jasną implementację popularnych problemów.
W każdej aplikacji można wyróżnić charakterystyczne dla niej części. Zawsze pojawia się interfejs graficzny aplikacji, przetwarzanie danych oraz coś do komunikacji między tym co jest wyświetlane a danymi. By oddzielić to wszystko powstał wzorzec projektowy o nazwie Model – Widok – Kontroler, który narzuca (oczywiście w pozytywnym tego słowa znaczeniu) programiście, w jaki sposób ma budować aplikację. Tak więc każdy komponent ma określone zadania, które tworzą jedną logiczną całość.
Wiadomo, że w dobie informacji podstawowym elementem każdej aplikacji są dane. Mogą być przechowywane w pliku lub bazie danych. Na nich wykonywane są również operacje takie jak: zmiana, usuwanie lub dodawanie nowych danych. Wykonywanie takich operacji możliwe jest dzięki zapytaniom bazodanowym w języku SQL. W aplikacji budowanej zgodnie ze wzorcem MVC to Model odpowiedzialny jest za te czynności. W modelu zawierają się wszystkie zapytania, modyfikacje i inne operacje związane z danymi. Daje to dużą uniwersalność zapytań, które podczas późniejszej zmiany nie trzeba zmieniać w każdym miejscu aplikacji, gdzie ono jest wywoływane. Starczy raz zmienić w odpowiednim pliku Modelu, gdzie znajduje się funkcja zawierająca zmieniane zapytanie sql.
Można powiedzieć, że Model jest klasą zawierającą metody, które wykonują określone operacje w bazie danych. Dlatego aby odwołać się do metody trzeba utworzyć obiekt tej klasy modelu w kontrolerze.