본문 바로가기

데이터베이스

IGCSE 컴퓨터 과학 · 주제 9

이 주제용 영상 수업 영상 페이지 열기
8:17

데이터베이스

컴퓨터 이전의 도서관은 이런 서랍을 보관했습니다. 책마다 한 장의 카드가 있으며, 각 카드는 동일한 몇 가지 사실을 포함하고 있었으며, 모두 순서대로 보관되어 있어… librarians가 어떤 책을라도 찾을 수 있었습니다.

영어 내레이션 · 영어 + 중국어 자막 burned-in

Syllabus
응시자가 다음을 수행할 수 있어야 함: 참고 사항 및 가이드라인
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 문장이 생성하는 출력物 식별하기

출처: 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

여기서 각 행은 기록이고, 각 열은 필드입니다.

Student 테이블; 각 행이 기록으로, 각 열이 필드로, StudentID 열이 기본 키(primary key)로 강조됨
각 행은 기록이고 각 열은 필드이며, 기본 키(StudentID)는 모든 기록마다 고유합니다
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에서 보았습니다.)

나이 필드에 대한 범위 체크; 16은 허용하지만 200은 거절함
범위 검증(range check)은 타당한 값을 허용하고 나머지는 거절합니다
English 한국어
validation/ˌvælɪˈdeɪʃn/ 검증
9.6

구조화 쿼리 언어(SQL)

**구조화 쿼리 언어(Structured Query Language, SQL)**는 데이터베이스를 **쿼리(query)**하는 데 사용되는 언어 — 원하는 기록을 추출하는 것. SQL 스크립트를 이해하고 완성해야 합니다.

SELECT, FROM 및 WHERE

  • SELECT는 어떤 필드를 표시할지 지정합니다.
  • FROM는 어떤 테이블을 사용할지 지정합니다.
  • WHERE는 **조건(condition)**을 제공하므로 일치하는 기록만 표시됩니다.
SQL 쿼리: SELECT name FROM students WHERE age > 15
SELECT는 필드를 선택하고, FROM은 테이블명을 명시하며, WHERE는 조건을 설정합니다
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 스크립트의 출력을 찾으려면 다음 순서대로 읽으세요:

  1. FROM — 어떤 테이블인지;
  2. WHERE — 조건에 일치하는 기록만 남기고 others를 제거합니다;
  3. SELECT — 택한 필드만 표시합니다;
  4. ORDER BY — 결과를 순서대로 배치합니다.
네 단계의 순서: FROM (어떤 테이블), WHERE (일치하는 행 유지), SELECT (선택한 필드 표시), ORDER BY (결과 정렬)
이 순서대로 SQL 쿼리를 읽으십시오: FROM (어떤 테이블), WHERE (어떤 행), 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를 통해 단계별로 진행하세요.

과거 시험지

IGCSE 컴퓨터 과학 내 추가 주제

로그인 또는 계정 만들기

IGCSE, A-Level & AP