Monday 29 April 2013

3-5-3 SQL

SQL- Structured Query Language: query database, e.g.SELECT

DDL- Data Definition Language: use to create the database structure- it defines which attributed belong in which table e.g.CREATE, GRANT, DROP
DML- Data Manipulation Language: used to add and manipulate the data once the database structure has been created e.g.DELETE, INSERT INTO, UPDATE

Tuesday 23 April 2013

3-6-4 Internet Security

Virus- a computer virus is a computer program that can copy itself and infect a computer.

Infection Strategies:
  • a true virus can spread from one computer to another, usually in some form of executable code, when its host program is taken to the target computer.
  • this could be because a user sent it over a network or the Internet, or carried it on a removable medium such as a CD, DVD or USB drive.
  • in order to replicate itself, a virus must be permitted to execute code and write to memory.
  • for this reason, many viruses attach themselves to executable files that may be part of legitimate programs.
  • if a user attempts to launch an infected program, the virus code may be executed simultaneously.


Spam
  • Unsolicted junk emails
  • usually advertising something
  • spam wastes user's times


Worm:
  • a computer worm is a self-replicating malware computer program which uses a computer network to send copies of itself to other computer on the network, sometimes without any user intervention.
  • this is usually due to security shortcomings on the target computer. It is a network virus.


Worm vs Virus
Unlike a computer virus, a worm does not need attach itself to an existing program.

Worms almost always cause at least some harm to the network, even if only by consuming bandwidth.
Viruses almost always corrupt or modify files on a targeted computer.

Remote Log-in
  • when someone connects to your computer without permission via the Internet
  • this can lead to information being stolen/deleted.

3-6-3 Server-Side and Client-Side Scripting

Server-side Scripting:
  • a users request is fulfilled by running a script directly on the web server to generate dynamic web pages e.g. Google search.
  • code stays on the server.
  • usually used to provide interactive web sites that interface to databases or other data stores.


Security:
  • the source code of server-side scripts are never visible o the browser.
  • these scripts are executed on the server and only send HTML corresponding to the user request.


Web-Server Extension:
  • a program which runs on the server and adds up to date information and function to the web-server.
  • it could add current data such as 'Date' or 'Users Name' to outgoing HTML code.
  • the program could be written in any programming language including C, Perl, Java or Visual Basic.


Common Gateway Interface (Server-side)
  • CGI is a protocol for transferring information between a web server and a web-server extension.
  • the CGI is a set of rules that tells the server how to send and receive information to and from the web-server extension.
  • CGI programs are the most common way for web servers to interact dynamically with users.
  • a common way to provide dynamic feedback for web users is to include scripts or programs that run on the user's machine rather than the web server. This is Client-side Scripting.


Client-Side Scripting
  • run by the viewing web browser (client-side) usually in Java-Script.
  • Client-side scripts allow greater interactivity on a document by responding to use events.
  • for example, a script could be used to check the users' form input prior to submission to provide immediate notice of any errors by the user (validation).

3-6-2 Networks

LAN: Local Area Network:
  • works in a small geographical area (e.g. a college)
  • high speed, low error rate
  • self-installed Comms Media (you install the wires yourself)


WAN: Wide Area Network:
  • large geographical area (e.g. a bank)
  • pre-existing Comms media (wires are already installed)
  • lower speed, higher error rate


Internetworking: when two LANs are interconnected by WAN so they can communicate.

Topology: the map.

LAN Topology:
  • Bus network- connecting devices through a bus.
  • Star network- a central computer/server to which every work station is connected.


Network adapter: Network Interface Card (NIC)- plugs into the motherboard and connects a PC to the network.

Switched Ethernet:
  • an Ethernet LAN that uses switches to connect individual hosts or segments.


Segmentation- splitting a computer network into sub-layers, each being a network segment or network layer.
Advantages:
  • reduced congestion
  • improved security
  • containing network problems


Peer-to-Peer Networks:
  • up to 10 machines
  • no server
  • no security
  • all machines are equal
  • good for small networks with little growth


Server-based Networks:
  • over 10 machines
  • central server provides network admin
  • security and file storage
  • faster, but more expensive and complex than PtoP


Web 2.0:
  • software in Web 2.0 is no longer installed on the users machine, but accessed directly across the Internet.
  • no coped software installed
  • software is continuously updated


Web Service- applications located on web and accessed remotely.
SaaS- Service as a Software
Web Service Architecture- a new way of building software to make it flexible to change.
WiFi- wireless communication standard/protocol, aimed at Personal Home and business users.
Bluetooth- wireless communication standard/protocol, aimed at personal mobile devises.
Routers- receive, format and pass data onto another device in a network based on the destination IP.
IANA- Internet Assigned Numbers Authority- coordinates IP addresses globally.

Saturday 20 April 2013

3-4-2 Types of Operating Systems

Interactive OS

Example: Home Computer

  • The user interacts directly with the system.
  • The user supplies commands and data
  • The results of processing are given to the user immediately.



Real-Time OS

Example: The Eden Project- uses a real-time operating system on the computers to monitor and control the environment in the green houses.

  • when an input is received it is processed in a timely manner.
  • The output can affect the source of the inputs, so has to happen quickly.



Network OS

Example: The college operating system

  • This is a layer of software that is added to the operating system of a computer.
  • It allows a computer to be connected to a network and hides the complexity of the network from the user.



Server OS

Example: File server, print server

  • Provides a specialised service to client machines on a network.
  • Results in a better performance



Desktop OS

Example: Home computer

  • A general purpose operating system.



  • Embedded OS

    Example: Operating system to control a DVD player

  • Placed inside a larger machine for the purpose of controlling the machine. .



  • Mobile device OS

    Example: OS for mobiles, MP3 players etc.

    • Usually work in real time to cope with multimedia activity.
    • Limited processing power and memory.
    • May need to cope with maintaining a network connection that can vary in strength due to the mobility of the device.




    Friday 19 April 2013

    3-4-1 The Role of the Operating System

    • To provide an interface to hide the complexities of the hardware from the user.
    • Manages hardware and communication resources.
    Hardware resources managed by the OS:
    • Processors
    • Storage
    • Input/Output Devices
    • Data
    Allocating Processor Time:

    Several programs can be running on a computer at the same time sharing one processor.
    A running program is cann a process.
    One of the jobs of the operationg system is to share the processor time between the processes.

    Multi-tasking/Multi-programming:
    These are the same thing.
    Mulit-tasking is when a number of programs are running at the same time, sharing the time of the processor e.g. using a word processor while listening to music.

    Time Slice:The processor time rotates between active processes until they have finished.
    This is handled by the Processor Schedular Program. The complexities are hidden from the user and application programs.

    Memory Management:The Memory Management Program (part of the OS) allocates spacein the main memory (RAM) for program instructions and data while programs are running.

    Storing Data onto Secondary Storage (Disk):

    Fragmentation: is the splitting up of the execution of a program in order to run more quickly.

    A file will be stored in clusters spread throughout a disk. The complexity of keeping track of where the file is stored is hidden from the user.

    Operating System:
    e.g. Print a word processing document.

    The operating system does all the communication with the printer for us.
    • The OS sends a block of data to the printer, then the next block and so on.

      • this continues until the document is finished. The complexity of this is hidden from the user.

    Friday 29 March 2013

    3-2-6 Sorting

    Why is efficient sorting so important?

    • So we can carry out binary searches on large databases
    • Interactive systems rely on data being retrieved from these systems quickly.

    Bubble Sort:
    • Start at the beginning of the list.
    • Compare each pair of items.
    • If they are not in order, swap them.
    • Work through the list n-1 times.

    Insertion Sort:

    In an Insertion Sort, we divide the list into a sorted part and an unsorted part (to begin with, only the first item in the list is sorted). The next element is the new Current element, and it is compared with the first one and sorted. This goes on with each elemebt until the list is sorted completely.

    The next element to be inserted into the correct place is shown in red.  The sorted part of the list is green.

    Advantage:
    • Faster than a Bubble sort.
    Disadvantage:
    • Harder to code.

    Quicksort: 
    • A sorting method developed by Tony Hoare in the 1960's.
    • The idea is to divide and conquer: split the list into 2 parts, one containing values less than a pivot value, the others containing values greater than it.
    • The pivot value can be arbitrarily chosen.
    A Quicksort is a lot quicker than and Insetion sort and a bubble sort.