A website can be broken down into three main development parts: content, design and functionality. The code for functions and design are clearly separated from each other and both are separated from the content. For more effectiveness, each part should be separately accessible for the respective specialists. Designers, developers and content contributors should be allowed to work on their particular fields efficiently and without limitations. These three elements were not separated in in the beginnings of the web. This meant that website updates became wasteful even for small changements.
Style informations are stored in documents called Cascading Style Sheet (CSS). To keep the management of the design effective, all design information are be stored separately in one or more CSS files and must be appliable over the entire website. By modifying the CSS data, the whole website is affected (compared to the beginnings of the www, when design informations were integrated in html and content, where the design had to be modified line by line, paragraph by paragraph, page by page).
The code is is kept in documents (like html, php, js and many others). These documents carry all informations and functions, how the content (retrieved from the database), and the design (retrieved from the Cascading Style Sheet) have to be generated and displayed.
The content (text, picture, video, audio, other files) is organized through a database, mostly a mySQL kind of. There is no database knowledge required for CMS users, but advanced CMS admins like to take profit of the database’s own management tool (e.g. myPHPadmin), for bulk actions or other maintainment purposes.