| 응시자가 다음을 수행할 수 있어야 함: | 참고 사항 및 가이드라인 |
|---|---|
| 1 주어진 데이터 저장 요구사항으로부터 단일 테이블 데이터베이스 정의하기 | • 다음 포함: – 필드 – 레코드 – 검증 |
| 2 적절한 기본 데이터 유형 제안하기 | • 다음 포함: – 텍스트/알phanumeric – 문자 – 부울리안 – 정수 – 실수 – 날짜/시간 |
| 3 **주요 키(primary key)**의 목적을 이해하고, 주어진 데이터베이스 테이블에 적합한 주요 키 식별하기 | |
| 4 단일 데이터베이스 테이블에 저장된 데이터를 쿼리하기 위해 구조화查询语言(structured query language, SQL) 스크립트를 읽고, 이해하며 완성하기 | • 제한 사항: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • 주어진 데이터베이스 테이블의 내용을 쿼리할 SQL 문장이 생성하는 출력物 식별하기 |
데이터베이스
IGCSE 컴퓨터 과학 · 주제 9
8:17
데이터베이스
컴퓨터 이전의 도서관은 이런 서랍을 보관했습니다. 책마다 한 장의 카드가 있으며, 각 카드는 동일한 몇 가지 사실을 포함하고 있었으며, 모두 순서대로 보관되어 있어… librarians가 어떤 책을라도 찾을 수 있었습니다.
영어 내레이션 · 영어 + 중국어 자막 burned-in
Syllabus
출처: Cambridge International syllabus
9.1
데이터베이스란 무엇인가?
데이터베이스는 검색, 정렬, 업데이트하기 쉽게 유지되는 조직화된 데이터 저장소입니다. IGCSE에서는 단일 테이블 데이터베이스를 다루며, 모든 데이터는 하나의 테이블에 저장됩니다.


9.2
기록과 필드
데이터베이스 테이블은 기록(record)과 필드(field)로 구성됩니다.
- **기록(record)**은 테이블의 한 행 — 한 사물에 대한 모든 데이터(예: 한 학생)입니다.
- **필드(field)**는 테이블의 한 열 — 모든 기록이 공유하는 하나의 데이터 항목(예: "First name").
| StudentID | FirstName | DateOfBirth | FormClass | FeesPaid |
|---|---|---|---|---|
| 1 | Amy | 14/03/2009 | 10A | TRUE |
| 2 | Ben | 02/11/2008 | 10B | FALSE |
여기서 각 행은 기록이고, 각 열은 필드입니다.

| English | 한국어 |
|---|---|
| database/ˈdeɪtəbeɪs/ | 데이터베이스 |
| single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ | 단일 테이블 데이터베이스(single-table database) |
| record/ˈrekɔːd/ | 레코드 |
| field/fiːld/ | 장(field)으로 treat 한다 |
| primary key/ˈpraɪməri kiː/ | 주키 |
9.3
필드의 데이터 유형
각 필드는 하나의 데이터 유형을 저장합니다. 데이터에 가장 적합한 유형을 선택하세요.

| Data type | Used for | Example |
|---|---|---|
| text/alphanumeric | 문자, 숫자 및 기호 | "10A", "Amy" |
| character | 단일 문자 | 'M' |
| Boolean | 두 값 중 하나 | TRUE / FALSE |
| integer | 정수 | 42 |
| real | 소수점이 있는 숫자 | 3.5 |
| date/time | 날짜 또는 시간 | 14/03/2009 |
| English | 한국어 |
|---|---|
| data type/ˈdeɪtə taɪp/ | 데이터 타입 |
| text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ | 텍스트/알파-numERIC(text/alphanumeric) |
| character/ˈkærɪktə/ | 문자, 성품 |
| Boolean/ˈbuːlɪən/ | Boolean |
| integer/ˈɪntɪdʒə/ | 정수 |
| real/rɪəl/ | 실수(real) |
| date/time/deɪt taɪm/ | 날짜/시간(date/time) |
9.4
기본 키
**기본 키(primary key)**는 모든 기록마다 **유니크(unique)**한 값을 저장하는 필드입니다. 두 기록이 동일한 기본 키를 가질 수 없으므로, 특정 기록을 정확히 선택할 수 있게 합니다.
위 테이블에서 StudentID는 각 학생이 다른 번호를 가지므로 좋은 기본 키입니다. FormClass 같은 필드는 많은 학생들이 같은 반에 속하므로 나쁜 기본 키가 됩니다.
| English | 한국어 |
|---|---|
| unique/juːˈniːk/ | 유일함 |
9.5
데이터베이스 검증
데이터를 데이터베이스에 입력할 때 검증(validation) 체크는 합리적인지 확인합니다 — 예를 들어 나이 필드의 범위 체크나 필드를 비우지 않도록 하는 존재 체크 등입니다. (이러한 체크는 주제 7에서 보았습니다.)

| English | 한국어 |
|---|---|
| validation/ˌvælɪˈdeɪʃn/ | 검증 |
9.6
구조화 쿼리 언어(SQL)
**구조화 쿼리 언어(Structured Query Language, SQL)**는 데이터베이스를 **쿼리(query)**하는 데 사용되는 언어 — 원하는 기록을 추출하는 것. SQL 스크립트를 이해하고 완성해야 합니다.
SELECT, FROM 및 WHERE
SELECT는 어떤 필드를 표시할지 지정합니다.FROM는 어떤 테이블을 사용할지 지정합니다.WHERE는 **조건(condition)**을 제공하므로 일치하는 기록만 표시됩니다.

SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;
이는 학비를 납부한 모든 학생의 성명과 반을 표시합니다.
모든 필드를 선택하려면 *를 사용하세요:
SELECT *
FROM Student
WHERE FormClass = '10A';
ORDER BY
ORDER BY는 결과를 정렬합니다. 오름차 ascending(작은 값 먼저, A→Z)에는 ASC, 내림차 descending(큰 값 먼저, Z→A)에는 DESC를 사용하세요.
SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;
AND 및 OR
조건을 AND(둘 다 참이어야 함) 또는 OR(적어도 하나가 참이어야 함)로 연결하세요.
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;
SUM 및 COUNT
SUM는 숫자 필드의 값들을 합산합니다.COUNT는 일치하는 기록의 개수를 세어줍니다.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;
학비를 납부하지 않은 학생의 수를 세는 예시입니다. SUM는similar하게 작동하지만 행을 세는 대신 숫자 필드를 더합니다.
출력값 계산하기
SQL 스크립트의 출력을 찾으려면 다음 순서대로 읽으세요:
FROM— 어떤 테이블인지;WHERE— 조건에 일치하는 기록만 남기고 others를 제거합니다;SELECT— 택한 필드만 표시합니다;ORDER BY— 결과를 순서대로 배치합니다.

이 단계를 따르면 쿼리가 반환하는 정확한 행과 열을 파악할 수 있습니다.
작업 예시. Book 테이블에는 Title, Author, Price 및 InStock라는 필드가 있습니다. 재고가 있는 올워르의 모든 책 제목과 가격을 가장 저렴한 것부터 보여주는 쿼리를 작성하십시오.
SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;
읽는 순서대로 구성하십시오: FROM는 테이블을 지정하고; WHERE는 일치하는 레코드만 유지하며, 조건이 두 가지이므로 AND가 필요합니다; SELECT는 요청한 두 필드만 표시합니다; ORDER BY … ASC는 이를 정렬합니다. 텍스트 값은 인용부호로 감싸야 하며, 질문에서 요구한 필드만 SELECT에 포함해야 합니다. 필터링에 사용했다는 이유로 Author를 추가하는 것이 여기서最常见的失分原因입니다.
SELECT … WHERE
질문을 단계별로 진행하세요: WHERE는 행을 필터링하고, SELECT는 열을 선택합니다.
| English | 한국어 |
|---|---|
| structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ | structured query language(SQL) |
| query/ˈkwɪərɪ/ | 쿼리 |
| condition/kənˈdɪʃn/ | 조건 |
| ascending/əˈsendɪŋ/ | 오름차순 |
| descending/dɪˈsendɪŋ/ | 내림차순 |
9.7
시험 팁
- 레코드(record) 는 한 줄(단一件事의 모든 데이터)이며, 필드(field) 는 한 열(모든 레코드에 공통으로 존재하는 항목)입니다.
- 주키(primary key) 는 각 레코드마다 유일해야 하므로 정확히 하나의 레코드를 식별합니다(StudentID, FormClass 아님).
- SQL 구성 요소를 익히세요:
SELECT(어떤 필드),FROM(어떤 테이블),WHERE(조건),ORDER BY(정렬 순서, ASC 또는 DESC). - 쿼리의 출력을 이해하기 위해 FROM → WHERE → SELECT → ORDER BY 순서로 읽으십시오.
COUNT는 일치하는 레코드의 개수를 세고;SUM는 숫자 필드의 합계를 계산합니다.
이 주제에 대한 인터랙티브 수업
즉시 체크 기능 exercises를 통해 단계별로 진행하세요.