| Notes Section | Syllabus Bullet(s) |
|---|---|
| Creating a Database – Data types & field sizes | 10.1.1 Data types and field sizes |
| Creating a Database – Key fields (PK, FK, composite, compound) | 10.1.2 Primary, foreign, composite and compound keys |
| Creating a Database – Referential integrity | 10.1.3 Referential integrity |
| Creating a Database – Flat vs relational files | 10.1.4 Flat‑file and relational‑file concepts |
| Creating a Database – File‑access methods | 10.1.5 Indexed‑sequential, direct and random access files |
| Creating a Database – DBMS categories & MIS | 10.1.6 Types of DBMS; role of MIS |
| ERDs – Conceptual, logical, physical | 10.2.1 Levels of ER diagrams |
| Functional Dependencies | 10.3.1 Functional dependency notation and analysis |
| Normalisation – Definitions & check‑lists | 10.3.2 Definitions of UNF, 1NF, 2NF, 3NF |
| Normalisation – Step‑by‑step procedure | 10.3.3 Process of normalising to 3NF |
| Normalisation – Advantages / disadvantages | 10.3.4 Benefits and limits of normalisation; when to de‑normalise |
| Data Dictionary – Required columns | 10.4.1 Data‑dictionary structure and contents |
INT, SMALLINT, BIGINT, DECIMAL(p,s), FLOATCHAR(n) (fixed length), VARCHAR(n) (variable length)DATE, TIME, DATETIME, TIMESTAMPBIT / BOOLEANBLOB, VARBINARYChoose the smallest type that can safely hold the required data – this minimises storage and improves performance.
(StudentID, CourseCode)).The DBMS must prevent:
| Method | How it works | Typical use |
|---|---|---|
| Sequential Access | Records are read/written in order from the start of the file. | Batch processing, log files. |
| Indexed‑Sequential Access | An index (often a B‑tree) points to the location of each record, allowing fast search while preserving sequential order. | Most DBMS tables, file‑based systems. |
| Direct (Random) Access | Records can be retrieved directly via a physical address or hash value. | High‑performance transaction systems. |
A Management Information System (MIS) extracts, processes and presents data from one or more databases to support decision‑making.
An FD X → Y means that whenever two rows have the same value(s) for the attribute set X, they must also have the same value(s) for every attribute in Y.
| FD | Interpretation |
|---|---|
| StudentID → StudentName, DateOfBirth | Student name and DOB are determined solely by the student identifier. |
| CourseCode → CourseTitle, LecturerID | Each course code uniquely determines its title and the lecturer teaching it. |
| (StudentID, CourseCode) → Semester, Grade | The combination of student and course determines the semester taken and the grade obtained. |
| LecturerID → LecturerName, Department | Lecturer details depend only on the lecturer identifier. |
| Normal Form | Definition | Checklist |
|---|---|---|
| UNF (Unnormalised Form) | Data stored without any logical structure; may contain repeating groups or multi‑valued fields. | Identify repeating groups → move to 1NF. |
| 1NF | All attribute values are atomic; each field holds a single, indivisible value; no repeating groups. |
|
| 2NF | Relation is in 1NF and every non‑key attribute is fully functionally dependent on the whole of every candidate key (no partial dependencies). |
|
| 3NF | Relation is in 2NF and has no transitive dependencies (no non‑key attribute depends on another non‑key attribute). |
|
JOIN operations, which can affect performance on very large data sets.| StudentID | StudentName | CourseCode | CourseTitle | Lecturer | Semester | Grade |
|---|---|---|---|---|---|---|
| 1001 | Alice Brown | C101 | Database Systems | Dr. Smith | Fall 2024 | A |
| 1001 | Alice Brown | C102 | Web Development | Prof. Lee | Fall 2024 | B+ |
| 1002 | Bob Carter | C101 | Database Systems | Dr. Smith | Fall 2024 | B |
All fields contain single, indivisible values; there are no repeating groups. The table already satisfies 1NF.
| FD | Explanation |
|---|---|
| StudentID → StudentName | Student name is determined by the student identifier. |
| CourseCode → CourseTitle, Lecturer | Each course code uniquely defines its title and the lecturer teaching it. |
| (StudentID, CourseCode) → Semester, Grade | The combination of student and course determines the semester and the grade. |
Composite key = (StudentID, CourseCode). The dependencies on StudentID alone and CourseCode alone are partial.
| Student (2NF) | ||
|---|---|---|
| StudentID (PK) | StudentName | OtherStudentDetails |
| 1001 | Alice Brown | … |
| 1002 | Bob Carter | … |
| Course (2NF) | ||
|---|---|---|
| CourseCode (PK) | CourseTitle | Lecturer |
| C101 | Database Systems | Dr. Smith |
| C102 | Web Development | Prof. Lee |
| Registration (2NF) | |||
|---|---|---|---|
| StudentID (FK) | CourseCode (FK) | Semester | Grade |
| 1001 | C101 | Fall 2024 | A |
| 1001 | C102 | Fall 2024 | B+ |
| 1002 | C101 | Fall 2024 | B |
All three tables are now in 2NF – every non‑key attribute depends on the whole primary key of its table.
Assume the Course table also stores the lecturer’s department, giving:
CourseCode → LecturerLecturer → DepartmentSince Department depends on Lecturer (a non‑key attribute), we have a transitive dependency.
| Lecturer (3NF) | ||
|---|---|---|
| LecturerID (PK) | LecturerName | Department |
| L01 | Dr. Smith | Computer Science |
| L02 | Prof. Lee | Information Systems |
| Course (3NF) | |||
|---|---|---|---|
| CourseCode (PK) | CourseTitle | LecturerID (FK) | OtherCourseDetails |
| C101 | Database Systems | L01 | … |
| C102 | Web Development | L02 | … |
The Student and Registration tables remain unchanged (they already satisfy 3NF). All tables now meet the 3NF criteria: every non‑key attribute is directly dependent on the primary key, and no transitive dependencies exist.
A Cambridge‑style data dictionary must contain at least the columns shown below. Additional columns such as Default and Validation Rules are useful for practical design.
| Field Name | Data Type | Size | Description | Allowed Values / Format | Default | Validation Rules | Key Type |
|---|---|---|---|---|---|---|---|
| StudentID | INT | 5 | Unique identifier for each student | 00001‑99999 | Auto‑increment | Not NULL, unique | PK |
| StudentName | VARCHAR | 50 | Full name of the student | Alphabetic, spaces, hyphens | — | Not NULL | |
| CourseCode | CHAR | 4 | Code assigned to a course | Pattern Cnnn (e.g., C101) | — | Not NULL, unique in Course | PK (Course) / FK (Registration) |
| CourseTitle | VARCHAR | 100 | Descriptive title of the course | Alphanumeric, spaces | — | Not NULL | |
| LecturerID | CHAR | 3 | Identifier for a lecturer | Pattern Lnn (e.g., L01) | — | Not NULL, unique in Lecturer | PK (Lecturer) / FK (Course) |
| Department | VARCHAR | 50 | Academic department of the lecturer | Alphabetic | — | Not NULL | |
| Semester | VARCHAR | 10 | Semester in which the course was taken | Fall YYYY, Spring YYYY | — | Check against list of valid semesters | |
| Grade | CHAR | 2 | Result achieved for the course | A, A‑, B+, B, …, F | — | Must match grade list |
Create an account or Login to take a Quiz
Log in to suggest improvements to this note.
Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources, past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.