Source: https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-2-structuring-data-databases

[Revision notes](https://senecalearning.com/en-gb/revision-notes.md) › [IGCSE](https://senecalearning.com/en-gb/revision-notes/igcse.md) › [Computer Science](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science.md) › [Cambridge International](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international.md) › Structuring Data - Databases

# Structuring Data - Databases

Computer Science: Cambridge International GCSE, topic 2.3.2

## Flat-File Databases

Flat-file databases are used to store records of information in order to be searched or queried at a later date.

### Structure of flat-file databases

![Structure of flat-file databases](https://image-v2.cdn.app.senecalearning.com/2020-03/1d20263c-6601-4ebf-80a2-f66dd7f8459a/Flat-file-database-min.png)

- A flat-file database is one that has a single table to store data.
- The table stores data in fields (columns) such as date of birth. 
- A record (row) of information is a complete set of fields put together.
 - This could be a person's details such as name, address, date of birth, telephone number.

### Redundancy

![Redundancy](https://image-v2.cdn.app.senecalearning.com/2020-02/b91eb7ed-86d9-4b3e-8c39-8521c1be68ee/data-numbers.jpg)

- Redundant data is data that is repeated in a database.
- A single table file is inefficient as it is full of redundant data

### Primary key

![Primary key](https://image-v2.cdn.app.senecalearning.com/2018-09/f93be445-5f4d-431b-99a8-dbce03272add/facts-magnifying-glass-.jpg)

- A primary key is a field used to uniquely identify a specific row of data in a table. 
- For example, each student in a college database will have a student ID number that is unique to each student that can be used as a primary key

## Test yourself on Structuring Data - Databases

- Which of the following is a suitable primary key for a database of office workers?
- What is the term used for 'Date of Birth' in a database?

[Practise this topic for free](https://app.senecalearning.com/classroom/course/a91ea2d8-1487-49f1-a3c1-17e86c67462e/section/edec07a2-c658-4013-91b0-915892e34b37/session)

- Previous topic: [2.3.1 Structuring Data - Records](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-1-structuring-data-records.md)
- Next topic: [2.3.3 SQL](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-3-sql.md)

## Computer Science: Cambridge International GCSE contents

### 1 Computer Systems
- 1.1 Data Representation
  - [1.1.1 Binary Numbers](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-1-binary-numbers.md)
  - [1.1.2 Negative Binary Numbers](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-2-negative-binary-numbers.md)
  - [1.1.3 Hexadecimal](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-3-hexadecimal.md)
  - [1.1.4 Using Hexadecimal](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-4-using-hexadecimal.md)
  - [1.1.5 Converting Binary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-5-converting-binary-and-hexadecimal.md)
  - [1.1.6 Converting Denary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-6-converting-denary-and-hexadecimal.md)
  - [1.1.7 Capacity](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-7-capacity.md)
  - [1.1.8 Calculating Capacity Requirements](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-8-calculating-capacity-requirements.md)
  - [1.1.9 Binary in Computer Systems](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-9-binary-in-computer-systems.md)
  - [1.1.10 Data Compression](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-10-data-compression.md)
  - [1.1.11 Run Length Encoding](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-11-run-length-encoding.md)
  - [1.1.12 File Formats](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-1-12-file-formats.md)
- 1.2 Data Transmission
  - [1.2.1 Packet Switching](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-1-packet-switching.md)
  - [1.2.2 Data Transmission](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-2-data-transmission.md)
  - [1.2.3 Universal Serial Bus (USB)](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-3-universal-serial-bus-usb.md)
  - [1.2.4 Parity Check](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-4-parity-check.md)
  - [1.2.5 Checksum & Echo Checks](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-5-checksum-and-echo-checks.md)
  - [1.2.6 Encryption](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-2-6-encryption.md)
- 1.3 Hardware
  - [1.3.1 Elements of Computer Systems](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-1-elements-of-computer-systems.md)
  - [1.3.2 Types of Computer System](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-2-types-of-computer-system.md)
  - [1.3.3 Von Neumann Architecture](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-3-von-neumann-architecture.md)
  - [1.3.4 The Fetch, Decode, Execute Cycle](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-4-the-fetch-decode-execute-cycle.md)
  - [1.3.5 Factors Affecting CPU Performance](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-5-factors-affecting-cpu-performance.md)
  - [1.3.6 Computational Logic](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-6-computational-logic.md)
  - [1.3.7 Input Devices](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-7-input-devices.md)
  - [1.3.8 2D & 3D Scanners](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-8-2d-and-3d-scanners.md)
  - [1.3.9 Code Readers](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-9-code-readers.md)
  - [1.3.10 Solid State Storage](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-10-solid-state-storage.md)
  - [1.3.11 Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-11-magnetic-storage.md)
  - [1.3.12 Examples of Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-12-examples-of-magnetic-storage.md)
  - [1.3.13 Optical Storage](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-13-optical-storage.md)
  - [1.3.14 Examples of Optical Storage](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-14-examples-of-optical-storage.md)
  - [1.3.15 Types of Optical disk](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-15-types-of-optical-disk.md)
  - [1.3.16 Storage Requirements](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-16-storage-requirements.md)
  - [1.3.17 Translation - Compilers](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-17-translation-compilers.md)
  - [1.3.18 Translation - Interpreters](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-18-translation-interpreters.md)
  - [1.3.19 Translation - Assemblers](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-19-translation-assemblers.md)
  - [1.3.20 Acoustic Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-20-acoustic-sensors.md)
  - [1.3.21 Flow Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-21-flow-sensors.md)
  - [1.3.22 Gas Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-22-gas-sensors.md)
  - [1.3.23 Humidity Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-23-humidity-sensors.md)
  - [1.3.24 Infrared Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-24-infrared-sensors.md)
  - [1.3.25 Level Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-25-level-sensors.md)
  - [1.3.26 Light Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-26-light-sensors.md)
  - [1.3.27 Magnetic Field Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-27-magnetic-field-sensors.md)
  - [1.3.28 Moisture Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-28-moisture-sensors.md)
  - [1.3.29 pH Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-29-ph-sensors.md)
  - [1.3.30 Pressure Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-30-pressure-sensors.md)
  - [1.3.31 Proximity Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-31-proximity-sensors.md)
  - [1.3.32 Temperature Sensors](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-32-temperature-sensors.md)
  - [1.3.33 Network Hardware](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-3-33-network-hardware.md)
- 1.4 Software
  - [1.4.1 Operating Systems](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-4-1-operating-systems.md)
  - [1.4.2 Interrupts](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-4-2-interrupts.md)
  - [1.4.3 High-Level Languages](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-4-3-high-level-languages.md)
  - [1.4.4 Low-Level Languages](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-4-4-low-level-languages.md)
- 1.5 The Internet & its Uses
  - [1.5.1 The Internet](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-1-the-internet.md)
  - [1.5.2 Uniform Resource Locators (URLs)](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-2-uniform-resource-locators-urls.md)
  - [1.5.3 DNS](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-3-dns.md)
  - [1.5.4 HTML](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-4-html.md)
  - [1.5.5 Cookies](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-5-cookies.md)
  - [1.5.6 Web Hosting](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-6-web-hosting.md)
  - [1.5.7 Digital Currency](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-5-7-digital-currency.md)
- 1.6 Cyber Security
  - [1.6.1 Forms of Attack](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-1-forms-of-attack.md)
  - [1.6.2 Penetration Testing](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-2-penetration-testing.md)
  - [1.6.3 Types of Malware](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-3-types-of-malware.md)
  - [1.6.4 How Malware Spreads](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-4-how-malware-spreads.md)
  - [1.6.5 Protecting Against Malware](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-5-protecting-against-malware.md)
  - [1.6.6 Information Security](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-6-information-security.md)
  - [1.6.7 Structured Query Language (SQL) Injection](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-7-structured-query-language-sql-injection.md)
  - [1.6.8 Firewalls](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-8-firewalls.md)
  - [1.6.9 Authentication: User Access Levels](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-9-authentication-user-access-levels.md)
  - [1.6.10 Authentication: Passwords](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-10-authentication-passwords.md)
  - [1.6.11 Social Engineering](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-11-social-engineering.md)
  - [1.6.12 Phishing](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-12-phishing.md)
  - [1.6.13 Denial of Service Attacks](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-6-13-denial-of-service-attacks.md)
- 1.7 Automated & Emerging Technologies
  - [1.7.1 Automated Systems](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-7-1-automated-systems.md)
  - [1.7.2 Robotics](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-7-2-robotics.md)
  - [1.7.3 Artificial Intelligence](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/1-7-3-artificial-intelligence.md)

### 2 Algorithms, Programming & Logic
- 2.1 Algorithm Design & Problem Solving
  - [2.1.1 Computational Thinking - Abstraction](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-1-computational-thinking-abstraction.md)
  - [2.1.2 Computational Thinking - Decomposition](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-2-computational-thinking-decomposition.md)
  - [2.1.3 Computational Thinking - Algorithmic Thinking](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-3-computational-thinking-algorithmic-thinking.md)
  - [2.1.4 Pseudocode](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-4-pseudocode.md)
  - [2.1.5 Flow Diagrams](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-5-flow-diagrams.md)
  - [2.1.6 Interpreting, Correcting & Completing Algorithm](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-6-interpreting-correcting-and-completing-algorithm.md)
  - [2.1.7 Correcting Algorithms](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-7-correcting-algorithms.md)
  - [2.1.8 Completing Algorithms](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-8-completing-algorithms.md)
  - [2.1.9 Testing](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-9-testing.md)
  - [2.1.10 Types of Testing](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-10-types-of-testing.md)
  - [2.1.11 Test Plans](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-11-test-plans.md)
  - [2.1.12 Validation & Sanitation](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-12-validation-and-sanitation.md)
  - [2.1.13 Authentication & Contingencies](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-1-13-authentication-and-contingencies.md)
- 2.2 Programming
  - [2.2.1 Programming Fundamentals - Variables & Constants](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-1-programming-fundamentals-variables-and-constants.md)
  - [2.2.2 Programming Fundamentals - Comments](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-2-programming-fundamentals-comments.md)
  - [2.2.3 Programming Fundamentals - Input & Output](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-3-programming-fundamentals-input-and-output.md)
  - [2.2.4 Data Types](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-4-data-types.md)
  - [2.2.5 Casting](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-5-casting.md)
  - [2.2.6 Controlling Program Flow - Sequence](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-6-controlling-program-flow-sequence.md)
  - [2.2.7 Controlling Program Flow - Selection](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-7-controlling-program-flow-selection.md)
  - [2.2.8 Controlling Program Flow - Iteration](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-8-controlling-program-flow-iteration.md)
  - [2.2.9 Modularity - Subroutines](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-9-modularity-subroutines.md)
  - [2.2.10 Modularity - Scope](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-10-modularity-scope.md)
  - [2.2.11 Arrays](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-2-11-arrays.md)
- 2.3 Databases
  - [2.3.1 Structuring Data - Records](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-1-structuring-data-records.md)
  - [2.3.2 Structuring Data - Databases](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-2-structuring-data-databases.md)
  - [2.3.3 SQL](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-3-3-sql.md)
- 2.4 Boolean Logic
  - [2.4.1 Binary Systems](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-1-binary-systems.md)
  - [2.4.2 Logic Circuits](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-2-logic-circuits.md)
  - [2.4.3 Truth Tables](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-3-truth-tables.md)
  - [2.4.4 Evaluating Expressions](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-4-evaluating-expressions.md)
  - [2.4.5 Boolean Operators](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-5-boolean-operators.md)
  - [2.4.6 End of Topic Test - Logic](https://senecalearning.com/en-gb/revision-notes/igcse/computer-science/cambridge-international/2-4-6-end-of-topic-test-logic.md)
