One thing everybody in this class has in common is that we’re using Canvas for this course. At least I hope everyone will use Canvas for I308, because you’ll have trouble if you don’t. If I go to the I308 Canvas site, I see one thing. If you go to the I308 Canvas site, you see a different thing. There is stuff in common between what we each see, but the content is customized for each of us. Such a dynamic web page is different from the way the World Wide Web was when I was in graduate school (it didn’t exit yet when I was in college!). At that time, most all web content consisted of static web pages where each users saw exactly the same thing.

Static and dynamic web pages aren’t necessarily made the same way. When you type in something like canvas.iu.edu into your web browser, the web browser acts as the client and connects to the web server. This first connection from the client is called a request, and the server generates a response that consists of the web page to be rendered in your browser. For static web pages, the server can just send the same HTML file over and over to the client because the content is always the same. (HTML is the HyperText Markup Language–the main syntax that is used to control how a client renders a page.) For dynamic web pages, the server has to decide what content to send back. Dynamic web sites often have a program running that uses whatever logic it needs to decide which content to send back. The basis for Canvas’ logic is driven by the userid. Whomever has signed in to Canvas gets tailored content based on who they are–students or instructor, their grades, due dates, etc.

So a website like Canvas keeps up with details about who is looking at what web page and customizes the content based on that. Other web sites do the same thing. If you’ve signed in to Amazon, your content is customized (and it may be even if you haven’t signed in). If you view Instagram, your content is customized. The next time you come back to view Instagram, it will know which posts you’ve already seen, the last time you viewed Instagram, and many other details about your history. The idea that a program or service keeps track of data forever is known as persistence. The program “remembers” what happens from one time to the next. An ever stronger notion related to persistence is that the program will not lose this information even when it’s not running. If you save a Word document and quit Word, the information will be there the next time you use Word. Google Docs offers even a stronger kind of persistence because it stores its data “in the cloud”. You can create a document on one computer and then access it from another.

Word achieves persistence on a single computer by storing its information in a file (i.e. a Word document). Google docs achieves its stronger form the same way Canvas or Instagram does. Your browser or a Google app acts as a client, and the server saves data for you. The way servers save data is to use a database.

Definition of a database according to Merriam Webster

Database Management Systems

The definition above indicates that the word database usually implies the collection of data is stored on a computer. Programs that manage these collections of information are often formally called Database Management Systems (DBMSs) and informally just called databases. There are a few commonly used DBMSs that you will run across if you work in software development or database systems:

DBMSInteresting INFO
DB2Made by IBM who is one of the earliest vendors of DBMSs
OracleOracle is IBMs primary competitor for enterprise DBMSs
MySQLA popular free database that is now owned by Oracle
MariaDBA fork of MySQL that originated when Oracle took ownership of MySQL
PostgresSQLAnother popular open source DBMS
Microsoft SQL ServerMicrosoft’s DBMS for enterprise systems
Microsoft AccessMicrosoft’s DBMS for personal and small-business use.
SQLiteLast but not least is another free DBMS. SQLite differs from the others in being dead simple to deploy making it ideal for quick projects while still scaling well to more complex ones.
Some commonly-used DBMSs that use the relational model

I308 is all about databases and database management systems. We will cover how databases store information, and more importantly, we will learn how to design them and how to retrieve data from them.

Supplemental Information

Web apps like Canvas, websites like Amazon, and medical records software share the same basic structure or architecture. This structure consists of three different parts, and it is commonly called the three-tier architecture. The so-called presentation tier is the one the end user sees wether they are a student using Canvas or a medical records specialist. It may consist of a web browser rendering a website or it may be an app running locally on the machine. In either case, the presentation tier or client contacts another computer (the server) over the network and awaits its response. If the website is sending back static, unpersonalized content, then it may just send back a file that lives on the server. Only two tiers are involved in this type of transaction. For dynamic or personalized content, the server contacts the database tier to get the dynamic content. The DBMS sends the information to the server, and the server either forwards the information directly to the client or further customizes the information for the client.

Three tier architecture