|
# Databases, Networks & the Web
|
|
# Databases, Networks & the Web
|
|
|
|
|
|
## Summary
|
|
Welcome to the Lab Exercises Wiki for Data, Networks & the Web (2017-2018). Here you will find information and instructions related to the lab exercises.
|
|
|
|
|
|
Term 1 of this 30 credit module is mainly concerned with data stores, SQL, and the basic architecture of common web applications. In the process, you will also be introduced to server-side scripting using the PHP language.
|
|
You may not modify this Wiki, but you are strongly encouraged to contribute relevant information on the [Group Work Wiki](http://gitlab.doc.gold.ac.uk/data-networks-web/group-work/wikis/home).
|
|
|
|
|
|
In the Term 2, you will build on knowledge acquired in term 1, this time focusing primarily on server-side scripting, application design, and networks.
|
|
For further help completing the exercises, you are directed to the [Gold Overflow Forum](https://learn.gold.ac.uk/mod/forum/view.php?id=445111).
|
|
|
|
|
|
Please note, it is possible for this module to be either really dull or really interesting, depending on how much you engage with it. Simply copying the example code given in the labs probably won't feel very satisfying, so please put some effort into contriving your own projects, and hopefully having some fun in the process!
|
|
## Lab Exercises Lookup
|
|
|
|
|
|
---
|
|
**Please note this list may be subject to change.**
|
|
|
|
|
|
## Module prerequisites
|
|
### Term 1
|
|
|
|
|
|
### Essential
|
|
+ Lab 1: Essential Skills
|
|
* Basic IT literacy
|
|
+ Lab 2: Relational Data Modelling
|
|
|
|
+ Lab 3: SQL
|
|
|
|
+ Lab 4: Document Data Stores
|
|
|
|
+ Lab 5: Web Servers
|
|
|
|
+ Lab 6: Python Templates
|
|
|
|
+ Lab 7: Python MySQLdb API
|
|
|
|
+ Lab 8: Application Design
|
|
|
|
+ Lab 9: Testing and Debugging
|
|
|
|
|
|
### Beneficial
|
|
### Term 2
|
|
* Programming experience (any language)
|
|
|
|
* Markup languages (e.g. HTML, XML, JSON)
|
|
|
|
|
|
|
|
---
|
|
To follow. |
|
|
|
|
|
## Structure
|
|
|
|
* 10 x 1.5 hr lectures
|
|
|
|
* 10 x 2 hr lab sessions
|
|
|
|
* Coursework (exp. ~5 hrs per week)
|
|
|
|
* Independent study (exp. ~5 hrs per week)
|
|
|
|
|
|
|
|
**Total expected study time:** 15 hours per week
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Assessment
|
|
|
|
|
|
|
|
The whole module consists of:
|
|
|
|
* 80% exam
|
|
|
|
* 20% coursework
|
|
|
|
|
|
|
|
Coursework in **term 1** will consist of a series of **laboratory exercises** which will be submitted together as a **small project**. The deadline for submissions is **17:00 PM Friday 20th January** (although we recommend completing it before the start of term 2). For full details and submission requirements, see [Coursework 1](coursework-1).
|
|
|
|
|
|
|
|
In **term 2** you will complete a separate **small project**. The deadline will be **17:00 PM Friday 24th March 2017**. Full details will be released on this Wiki as they become available.
|
|
|
|
|
|
|
|
Each coursework component is equally weighted and thus **worth 10% of the module** as a whole.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Term 1 Learning Objectives
|
|
|
|
|
|
|
|
By the end of **term 1**, you will all be able to:
|
|
|
|
* Explain the differences between dynamic, data-driven web applications and static websites
|
|
|
|
* Describe the common structure of data-driven web applications
|
|
|
|
* Identify components of common software stacks used to develop dynamic web applications such as LAMP and MAMP
|
|
|
|
* Store, access and manipulate data with SQL
|
|
|
|
* Access data with a scripting language (PHP) and database API
|
|
|
|
* Design a schema for a web-based application
|
|
|
|
* Program a simple data-driven web application
|
|
|
|
* Identify and describe potential threats to security and integrity of data
|
|
|
|
* Back-up and restore a database
|
|
|
|
* Identify a variety of alternative database technologies and describe their key differences
|
|
|
|
* Query a document-based data store (MongoDB)
|
|
|
|
|
|
|
|
Some of you will also be able to:
|
|
|
|
* Perform advanced database queries in SQL
|
|
|
|
* Understand performance characteristics of particular equivalent relational expressions and methods for optimising queries
|
|
|
|
* Demonstrate independent learning and effective problem-solving strategies
|
|
|
|
* Critically evaluate a programming solution
|
|
|
|
* Explain the advantages/disadvantages of different database technologies
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Term 1 Topics
|
|
|
|
|
|
|
|
+ What is a web application?
|
|
|
|
* 3 tiered application model
|
|
|
|
* Hyper-Text Transfer Protocol (HTTP)
|
|
|
|
+ Introduction to databases
|
|
|
|
* Relational model
|
|
|
|
* Common software solution stacks
|
|
|
|
* Popular database management systems
|
|
|
|
+ Database design
|
|
|
|
* Keys and other constraints
|
|
|
|
+ Data definition and manipulation in MySQL
|
|
|
|
* Defining a schema
|
|
|
|
* Inserting and retrieving records
|
|
|
|
+ Introduction to PHP
|
|
|
|
* Syntax
|
|
|
|
* Data types
|
|
|
|
* Selection and iteration
|
|
|
|
* Functions
|
|
|
|
+ Accessing data with PHP
|
|
|
|
* Popular database APIs
|
|
|
|
* Connect and query database with mysqli
|
|
|
|
+ Data manipulation with PHP
|
|
|
|
* Form handling
|
|
|
|
* Inserting and updating data
|
|
|
|
+ Advanced data selection
|
|
|
|
* Sorting
|
|
|
|
* Table joins
|
|
|
|
* Equivalent relational expressions
|
|
|
|
* Query optimisation
|
|
|
|
+ Transactions and locking
|
|
|
|
+ Database administration
|
|
|
|
* Security
|
|
|
|
* Backing-up/restoring data
|
|
|
|
+ Alternative database technologies
|
|
|
|
* Row vs column data stores
|
|
|
|
* Non-relational database technologies
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Recommended Reading
|
|
|
|
|
|
|
|
For this course you will rely heavily on online resources to help you solve problems you will invariably encounter. A couple you should definitely make use of are:
|
|
|
|
+ Official MySQL (v5.5) documentation: https://dev.mysql.com/doc/refman/5.5/en/
|
|
|
|
+ Official PHP documentation: http://php.net/manual/en/langref.php
|
|
|
|
|
|
|
|
Also highly recommended are:
|
|
|
|
+ Module forum: https://learn.gold.ac.uk/mod/forum/view.php?id=358269
|
|
|
|
+ Stack Overflow: http://stackoverflow.com/
|
|
|
|
+ Tutorials Point: http://www.tutorialspoint.com/sql/
|
|
|
|
|
|
|
|
Developing good research and problem solving skills is part and parcel of being a developer, so do not get disheartened when something doesn't work first time!
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Getting extra help from the tutor
|
|
|
|
|
|
|
|
You can book slots with Sorrel by going to:
|
|
|
|
https://sorrelharriet.youcanbook.me/
|
|
|
|
|
|
|
|
**Drop in hours are Thursdays 14:00-16:00**. Start of term and approaching deadlines tend to be busy, so either plan well ahead, or form groups.
|
|
|
|
|
|
|
|
Her office is located in **29 St James, Room 6** (first floor, first door on left).
|
|
|
|
|
|
|
|
You can also email questions to s.harriet@gold.ac.uk, or post questions on the 'Gold Overflow' forum: https://learn.gold.ac.uk/mod/forum/view.php?id=358269
|
|
|
|
|
|
|
|
**We hope you enjoy the module!** |
|
|
|
\ No newline at end of file |
|
|