A database is extremely usefull and helpful in that it organizes data for you. Lets look at the alternatives.
Static Content
Obviously this would kinda null the point of using php to some extent. Its fast but you have to change the actuall code if you want something displayed. Obviously we need something better.
Flat File Database
This is 1 step up from static. While slower, all we need to do to change the content is change the file. This is easy! But this might be ok for 10 fields, mabye 100, 1000, what happens when we hit 10000, 1000000 or even 10000000??? The search time on this file is going to be enormous! Reading in the file (if you are familiar with BIg-Oh notation O(N) ) then parsing the file for fields (O(N) ) then searching through each field (O(N) ). So just doing a strait read a search we are on the order of O(N3). In laymans terms for every 100 records it takes 1003 time to search through it. In other words this algorithm sucks! No with a little tweaking you might be able to get something better mabye on the order of N Log(n) or something (with PHP) which means for every 100 records it searches in 100 Log (100) or about 1000 time. This still is relativly slow although better. But ok enough with the math... we need some way to do all of this extremely fast. Sure we could right an algorithm mabye (if we were really good we could hash all the entries blah blah blah and find em faster), but that requires a lot of work and still probably want be as fast as we want it. Luckly someone has written some nice stuff for us to do all of this!
Database
Thats right a database. A nice fast daemon that will dish out dynamic content at a realativly fast rate. Data is stored specially so that it can be accessed very quickly. I dont know the algorithm time but I would bet its near down to O(1) or something using hash tables. MySQL for example boast of a person holding 5,000,000,000 records and still having a good search time. Try doing this in a file and if you figure it takes .00001 seconds to read in blah blah blah for 1 record then since we said we where searching at N3 at 5 billion records our search would take 1*1020th or so seconds. Yes this is an eternity. If amazon did this they would be out of buisness. Ok but on to more. Is speed the only issue? Well its up there but not the only one. Databases do a lot of data organizing. Thats why they pull data soooo fast. (or at least 1 reason). It finally it does a good job of modulation... allowing you to add fields and subtract fields, edit fields according to name etc. Something you would have to do by hand otherwise. It also will "compress" your data makeing your entries much smaller taking up less space. (IN a sense)
So why keep servers seperate. Well, I am no expert on this. But 2 reasons come to mind (and I am sure there are others).
Modularity:
This means breaking stuff up into sections for easier use. Now we can add stuff to the database server, or whatever without disturbing our webserver. So all space on the server is used for the database. Also if your webserver crashes.. and looses data you still have you database server.
Security
Presubably you would have your webserver with some open connections and then a database server with just 1 open connection (the database). In otherwords it would only accept database request nothing more. You could even stick this behind the webserver to where it had a local address only and couldnt be reached from the internet without going through some stuff. Like everything though this doesnt make it invisable... just harder to crack.
Well thats my 2 cents. Hope that helped some and made some sense. I just woke up so dont blame me to bad if it doesnt :-D
Good Luck!