Thursday, 12 June 2014

Databases

A database is a store of data that is

Persistent - held in a form of permanent medium such as disk or flash memory
Related - not just a random collection of facts
Organised - stored in a structured, predictable way

Called a series database because the items are in order.

A serial file database: items stored one after the other
Sequential file database : organised in some sort of order

External view - what the user sees, designed to be useful for a particular job
Conceptual view - to do with how the data is organised, the design of the tables and how they are linked.
Physical view - How the data is stored on the storage medium. Designers and users don't bother with it, it's handled by the database software.

Flat file - single table such as a spread sheet, only good for simple data handling.
Hierarchical - database items relate to each other in branches.

The DBMS must:
-Allow data sharing
-Allow multiple user access
-Allow multiple applications to work on them
-Hold just one copy of data that everything can access, this prevents inconsistent updates
-Make it possible to change the data in a database without having to change the applications

All database transactions must be subject to the ACID test:
Atomic - a change is either completely performed or not at all
Consistent - a transaction must take a database from one consistent state to another
Isolated - a transaction must not be visible to any other transaction or user until it is irrevocably committed
Durable - once a change has been made, it must not be lost as consequence of any subsequent failure

Thursday, 8 May 2014

INTERNET

The Internet is a worldwide network of connected computer systems.

The World Wide Web (WWW) is a system of interlinked Hypertext documents accessed through the internet. Tim Berners-Lee specified the standards which should be used for the WWW in the early 1990's:

HTML: HyperText Markup Language. The publishing format for the Web, including the ability to format documents and link to other documents and resources.

URL: Uniform Resource Identifier. A kind of “address” that is unique to each resource on the Web.

HTTP: Hypertext Transfer Protocol. Allows for the retrieval of linked resources from across the Web.

An application called a 'Web Browser' is required to interpret and display HTML documents, along with their CSS styling and JavaScript scripts, among other things.

TCP/IP (Transmission Control Protocol/Internet Protocol) are the protocols used for transmitting data across the internet between hosts. They are the de facto standard for sending data as it is built into the widely used UNIX OS.

Redundancy - Having a duplicate device, or other method to prevent a website from going completely down. Examples:
  • Have any storage devices in a RAID formation. That way, if one device fails, it won't affect the entire system or network.
  • Keeping the site backed up, possibly in locations around the world
  • Having each country host a separate version of the site, so if one goes down, it can be restored from there

Thursday, 3 April 2014

Networking

LAN - Local Area Network
Each connected device is called a node.
A LAN is installed in one site.

Advantages
  • Allows communication between workers
  • Allows data to be shared
  • Allows peripherals to be shared
  • Computers can be upgraded more easily.
  • Distributed processing
Disadvantages
  • Expertise required to set up large network
  • Security issues from unauthorised access to network
  • Measures to secure a network include: passwords, changing password frequently, encrypting network, not allowing users to install or download files.
WAN - Wide Area Network

Covers a large geographical area, sometimes an entire country. Infrastructure often provided by telecom companies due to their wide range.

VPN - Virtual Private Network

Uses internet for infrastructure and requires extra security.

NIC - Network Interface Card
  • Produces the electrical signal which carries the data
  • Often found in expansion cards for computers, but since the cost of Ethernet is low, and it is such a well known standard, they are often built into computer motherboards now.
Hub
  • Device which connects nodes together
  • Makes them act as a single segment
  • Not smart - all data packets transmitted 
  • Cheap devices - USB hubs in home computers
Switch
  • Smart device that can create and connect to different sections of the network
  • Connects devices with a form of packet switching
  • More advanced than a hub as it only sends data when a node requests it.
Routers - work with data packets to send data between networks

Wireless Networking
  • Advantages
    • Initial setup for new nodes is faster
    • Easy access for visitors
    • No building or long setup required
  • Disadvantages
    • Security issues
    • Much slower than wired
Network Types

Peer-To-Peer - Several connected devices share a network status. Can be slow due to shared processor power and data collisions.

Client server - One central computer is high powered and dedicated as a server, connects to other nodes on the network and assigns permissions, default files and settings, etc.

Network Topology - The layout of the network, how the nodes communicate with each other. Examples:
  • Mesh Topology - Devices are connected with many redundant connections between nodes. Every node has a connection to every node in the topology.
    • Full Mesh Topology - Every node has a circuit connecting it to every other node on the network. Most expensive to implement, but if one node fails, traffic can be easily directed to the others. Has the most redundant connections.
    • Partial Mesh Topology - Some nodes are connected to every other node, while others are only connected to a few. Less redundancy.
  • Star Topology - Devices connected to a central computer, called the hub each node connects to each other through the hub.
    • Advantage - One node isn't impacted by another node failing.
    • Disadvantage - If the central computer fails, the entire network becomes useless
Protocols

Protocols are the rules and accepted standards used with networks.

DNS - Domain Name System - Translates web addresses into IP addresses.
TLS/SSL - Transport Layer Secutiy/Secure Sockets Layer -  Cryptographic protocol used for security
FTP - File Transfer Protocol - Used for transferring files between various systems
HTTP - Hypertext Transfer Protocol - For distributing web pages (hypermedia files)
IMAP - Internet Message Access Protocol - For accessing emails
POP3 - Post Office Protocol 3 - More popular method for accessing emails

DNS

Notes:
DNS translates a URL into an IP address.
Browser and OS will determine if it knows the IP address from memory or cache.
If not, OS queries resolving name server for IP address
RNS communicates with root name servers for IP address
Which will link to the Top Level Domain name servers
RNS stores info from Root Name Servers in cache
Resolving queries TLD server, links to Autoritiative Name Server
ANS' controlled by registrar
Resolving Queries ANS, which provides IP.
Resolving replies to OS
which replies to Browser
Browser then loads web page



The purpose of DNS is to translate a web address into an IP address. When the user inputs the address into the browser, first the OS and browser check the Resolving Name Server to see if the IP is stored in memory. If not, the Root Name Server, Top Level Domain name server, and Authoritative Name Server will be queried, until the ANS responds with an IP. The Resolving Name Server updates it's cache with this information and then returns it to the OS. The browser will then access the page stored at that IP.

Advantages:

  • No need to memories numbers/makes the web more user friendly
  • Easier for search engines
Disadvantages:
  • Breakdown of DNS would destroy the WWW
  • Defeats the purpose of the internet being a decentralised system

Monday, 24 March 2014

Software

Systems Software:
  • Operating systems
    • Sometimes called a platform
    • Examples:
      • Windows
      • UNIX
      • Linux
      • MacOS
    • The 'kernel' looks after low-level hardware operations
    • User Interface
      • How the user interacts with the system - can be part of OS or separate
      • GUI (graphical user interface) uses icons to represent resources and actions
      • GUI's use mouse pointers or touch screens
  • Device drivers
    • Annoying things you need to install for anything to work
    • Give OS instructions on how to use the installed hardware
  • Firmware
  • Servers
  • Utilities
    • Carry out simple maintenance tasks
    • Examples:
      • Defragmentation
        • Rearrange files for better read/write speed
  • Interfaces
  • Security
    • Anti-Virus
    • Anti-Spyware
    • Firewall
Development Software
  • Programming languages and utilities
    • Python
    • Java
    • JavaScript
    • C
    • C#
    • C++
    • ActionScript
    • Ruby
    • Lua
  • Editors
    • IDE (Integrated Development Environment)
      • Code highlighting
      • Code prediction
      • Color coding
      • Auto-indentation
      • Error checking/Debugging
  • Compilers
    • Translate high-level source code code used by prgorammer into machine code (object code)
    • Source Code > Translate Code > Create Object Code > Execute Object Code
  • Interpreters
    • Translate the code into machine code one line at a time as the program is running
    • Source Code > *Translate Line of Code > Execute Code > *
  • Assemblers
    • Translate assembly language into machine code
  • Linkers
    • Connect seperate modules of code to ensure they work together
Applications
  • Useful programs run on the OS and do real world  jobs
  • Examples:
    • Web browser (Chrome, Firefox, Opera, not IE)
    • Game software (Steam, Origin, uPlay)
    • Productivity (Office, Calculator)
  • Custom Written
    • Advantages
      • Specifically written for the customers needs
      • Work with devs to design and directly support the software
    • Disadvantages
      • Cost borne by one customer so quite expensive
      • Time needed to develop product
      • No community available for bug support and testing
      • Likely to be more errors
      • Developer may not remain in business
  • Off the shelf software
    • Advantages
      • Available immediately
      • Thoroughly tested and relatively bug free
      • Wide community of users and support
      • Development costs already met, so inexpensive
    • Disadvantages
      • May not meet exact requirements of organisation
  • Open source software
    • Advantages
      • Software can be adapted to individual needs
      • Bugs spotted and quickly fixed
Multi-Tasking
  • Running - CPU is dealing with this process
  • Runnable - Ready to go, awaiting running program to finish
  • Waiting - These processor are waiting to get into the queue to become runnable
  1. Job created, loaded from secondary storage to memory
  2. Job waits for scheduler to allocate processing time until it is running
  3. If it needs resources which aren't available, it's blocked and stops running
  4. Wait until resources available, allocates processing time
  5. Job is complete, it is terminated
Windows OS Examples:
MS DOS
Windows ME

Windows 3.1


Windows XP
Windows Vista

Windows 7



Windows 8
 
 
 
 
 
 
 
 
Unix OS Examples:

Android OS
Ubuntu Linux

Debian Linux

Emulators
 
Emulators can imitate and run the software of another OS. Examples:
DOSBOX - MS DOS Emulator

Super Mario Bros 3 in FCEUX
FCEUX - NES Emulator

 

Dolphin - Wii/GameCube Emulator