This is an online course,
What is the course about?A bold experiment in distributed education, "Introduction to Databases" is being offered free and online to students worldwide, October 10 - December 12, 2011. Students have access to lecture videos, are given assignments and exams, receive regular feedback on progress, and participate in a discussion forum. Those who successfully complete the course will receive a statement of accomplishment. Taught by Professor Jennifer Widom, the curriculum draws from Stanford's popular Introduction to Databases course. A high speed internet connection is recommended as the course content is based on videos and online exercises.
Why Learn About Databases?Databases are incredibly prevalent -- they underlie technology used by most people every day if not every hour. Databases reside behind a huge fraction of websites; they're a crucial component of telecommunications systems, banking systems, video games, and just about any other software system or electronic device that maintains some amount of persistent information. In addition to persistence, database systems provide a number of other properties that make them exceptionally useful and convenient: reliability, efficiency, scalability, concurrency control, data abstractions, and high-level query languages. Databases are so ubiquitous and important that computer science graduates frequently cite their database class as the one most useful to them in their industry or graduate-school careers.
Course DescriptionThis course covers database design and the use of database management systems for applications. It includes extensive coverage of the relational model, relational algebra, and SQL. It also covers XML data including DTDs and XML Schema for validation, and the query and transformation languages XPath, XQuery, and XSLT. The course includes database design in UML, and relational design principles based on dependencies and normal forms. Many additional key database topics from the design and application-building perspective are also covered: indexes, views, transactions, authorization, integrity constraints, triggers, on-line analytical processing (OLAP), and emerging "NoSQL" systems.
Frequently Asked Questions1. What background do I need?The course does not assume prior knowledge of any specific topics, however a solid computer science foundation -- a reasonable amount of programming, as well as knowledge of basic computer science theory -- will make the material more accessible.
2. Is a textbook required? Detailed lecture notes are provided. Having a textbook in addition to the notes is not necessary, but you might want to purchase one for reference, to reinforce the core material, and as a source of additional exercises. Suggested textbooks and readings are listed as part of the materials you'll see after you register.
3. Will students receive a Stanford certificate or grade for completing the course?No. You will receive a statement of accomplishment from the instructor, which will include information on how well you did and how your performance compared to other online students. Only students admitted to Stanford and enrolled in the regular course can receive credit or a grade, so this is not a Stanford certificate.
4. Can online students ask questions and/or contact the professors?A discussion forum is included as part of the course website. Questions not answered by other students will be answered by the teaching staff; top-ranked questions will be discussed by the instructor in a weekly video.
Thoughts around SQL softwareI originally looked at mySQL as a possible tool for lrearning, however I was informed from one of my past lecturers that SQLite maybe a better answer, as they can then have it on a flash drive to be able to carry on and do work at home...
Though they will need a GUI to be able to use it in some ways..
- Download SQLite: First visit this page to download SQLite. The Windows precompiled binaries are located near the bottom of the page.
- Unpack SQLite:In my case the latest version of SQLite was 3.6.14 so the downloaded file was named sqlite-3_6_14.zip. Right click this file and choose to uncompress in the same directory. This will produce a sqlite3.exe file.
- Install SQLite:Now double click on the sqlite.exe file to install SQLite.
- Test SQLite:To test SQLite open up a command prompt window and type “sqlite3″. To get some help with SQLite type “.help” and to close sqlite3 type “.quit” .
- Create SQLite Test Database:Issue the below command to create a test SQLite database.
sqlite3 sqlite.dbRemember to exit out of the sqlite3 command prompt type the below.
- Create a SQLite Table: Issue the below command to create a table in the test database.
sqlite3 sqlite.db "create table tb1 (tb1key INTEGER PRIMARY KEY,data TEXT,num double,timeEnter DATE);"
- Add Data Into Test Database: Now issue each of the three commands below to insert data into the test database table we created.
sqlite3 sqlite.db "insert into tb1 (data,num) values ('Test data',9);" sqlite3 sqlite.db "insert into tb1 (data,num) values ('More test data',8);" sqlite3 sqlite.db "insert into tb1 (data,num) values ('Third set of data',7);"
- View Test SQLite Data:Now list all of the rows in the test table located in the test sqlite database.
sqlite3 sqlite.db "select * from tb1";
- Download SQLite GUI SQTView:Visit download.com to download the latest version of SQTView located here.
- Install SQTView:The downloaded file will be named inSQTV.exe. Double click this file to install SQTView.
- Test SQTView:Once installed locate the application in the Start Menu under Program Files in the APSoft folder. Now locate the testdb.db file you created with the sqlite3 CLI commands. Open this file to verify everything is functioning properly. You will not be able to edit the database with SQTView. This application is only for viewing SQLite2 and SQLite3 database files.