| English | 의미 |
|---|---|
| DBMS/ˌdiː biː em ˈes/ | Glossary {"sense": "데이터베이스 관리 시스템", "subject": "A-Level 컴퓨터 과학", "term": "DBMS"} |
| view/vjuː/ | Glossary {"sense": "뷰", "subject": "A-Level 컴퓨터 과학", "term": "view"} |
| backup/ˈbækʌp/ | 백업 |
| data management/ˈdeɪtə ˈmænɪdʒmənt/ | Glossary {"sense": "데이터 관리", "subject": "A-Level 컴퓨터 과학", "term": "data management"} |
| data dictionary/ˈdeɪtə ˈdɪkʃənəri/ | Glossary {"sense": "데이터 사전", "subject": "A-Level 컴퓨터 과학", "term": "data dictionary"} |
| data modelling/ˈdeɪtə ˈmɒdəlɪŋ/ | Glossary {"sense": "데이터 모델링", "subject": "A-Level 컴퓨터 과학", "term": "data modelling"} |
| logical schema/ˈlɒdʒɪkl ˈskiːmə/ | Glossary {"sense": "논리적 스키마", "subject": "A-Level 컴퓨터 과학", "term": "logical schema"} |
| data integrity/ˈdeɪtə ɪnˈteɡrɪti/ | Glossary {"sense": "데이터 무결성", "subject": "A-Level 컴퓨터 과학", "term": "data integrity"} |
| data security/ˈdeɪtə sɪˈkjʊərɪti/ | Glossary {"sense": "데이터 보안", "subject": "A-Level 컴퓨터 과학", "term": "data security"} |
| transaction/trænˈsækʃn/ | Glossary {"sense": "트랜잭션", "subject": "A-Level 컴퓨터 과학", "term": "transaction"} |
| concurrent access/kənˈkʌrənt ˈækses/ | Glossary {"sense": "동시 접근", "subject": "A-Level 컴퓨터 과학", "term": "concurrent access"} |
| concurrency control/kənˈkʌrənsi kənˈtrəʊl/ | Glossary {"sense": "동시성 제어", "subject": "A-Level 컴퓨터 과학", "term": "concurrency control"} |
| developer interface/dɪˈveləpə ˈɪntəfeɪs/ | Glossary {"sense": "개발자 인터페이스", "subject": "A-Level 컴퓨터 과학", "term": "developer interface"} |
| query processor/ˈkwɪərɪ ˈprəʊsesə/ | Glossary {"sense": "쿼리 프로세서", "subject": "A-Level 컴퓨터 과학", "term": "query processor"} |
두 사람, 한 좌석
- 1960년 아메리칸 에어라인사는 최초의 컴퓨터 예약 시스템인 Sabre를 도입했습니다. 수십 도시의 직원들이 같은 비행기의 같은 좌석을 동시에 판매할 수 있었으며, 시스템의 가장 중요한 임무는 어떤 좌석이 두 번 판매되지 않도록 하는 것이었습니다.
- 공유 파일로는 이를 수행할 수 없습니다: 두 프로그램이 "좌석 14C 빈 상태"를 읽은 뒤, 모두 "판매됨"을 기록하고 두 명의 승객이 탑승구에서 기다리게 됩니다. 모든 프로그램과 데이터 사이에는 중재자가 있어야 합니다.
- 그 중재자가 바로 DBMS입니다. 이 수업의 모든 기능은 평면 파일(flat files)이 할 수 없었던 일들입니다: 자체 설명, 모든 사용자의视图 유지, 규칙 강제, crash 시 복귀, 그리고 한 팀이 애플리케이션을 구축하는 동안 다른 팀이 질문을 던질 수 있게 함.
- 이 수업은 교육 과정(syllabus)에서 명시한 기능들과 기술해야 하는 두 가지 소프트웨어 도구들을 다룹니다.
DBMS란 무엇인가
- **데이터베이스 관리 시스템(DBMS)**은 데이터베이스를 중앙에서 관리하는 소프트웨어입니다. 모든 프로그램과 사용자는 오직 이를 통해서만 데이터에 접근합니다.
- 이는 각 파일 기반의 제한 사항을 해결합니다: 각 사실의 단일 복사본을 유지하여 중복이나 불일치를 방지하며, 데이터 독립성을 제공하여 프로그램이 저장 방식에 묶이지 않게 하고, 여러 사용자가 동시에 사용할 수 있도록 중앙 통합 무결성, 보안, 백업 및 접근 제어를 제공합니다.
- 교육 과정(syllabus)은 다섯 가지 기능과 두 가지 도구를 명시합니다. 각각을 DBMS가 수행하는 기능으로 학습하십시오.
데이터베이스 서비스 실험실
DBMS가 질문을 안전한 공유 데이터 접근으로 변환하는 과정을 확인하십시오.
각 DBMS 서비스를 그 기능과 매칭하시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
DBMS는 이러한 서비스들을 패키징하여 프로그램이 원본 파일을 직접触碰하지 않게 합니다.
데이터 관리와 데이터 사전
- 데이터 관리는 DBMS가 데이터를 저장, 조직, 검색, 업데이트하는 방식을 통제하여 프로그램이 파일을 직접触及하지 못하게 하는 것입니다.
- **데이터 사전(data dictionary)**을 유지합니다: 각 테이블, 필드, 데이터 유형, 키, 관계 및 제약 조건, 그리고 누가 무엇을 접근할 수 있는지에 대한 설명입니다. 이는 '데이터에 대한 데이터'입니다.
- 프로그램이 구조를 하드코딩(hard-coding)하는 대신 사전에 쿼리를 하므로, 테이블 변경 시 프로그램이 파손되지 않습니다. 또한 DBMS가 새 레코드를 검증할 때도 이를 확인합니다.
DBMS의 데이터 사전에 포함되는 것은:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
데이터 사전은 데이터베이스 구조를 설명하므로, 프로그램은 레이아웃을 하드코딩하지 않고 이를 쿼리합니다.
데이터 모델링과 논리적 스키마
- 데이터 모델링은 데이터의 구조를 정의하는 것입니다: E-R 도표처럼 엔티티, 속성, 키 및 관계를 정의합니다.
- 그 결과물이 **논리적 스키마(logical schema)**입니다: 디스크 위 바이트 저장 방식과 무관하게 데이터베이스의 전체 논리적 설계, 테이블 및 관계를 설명한 것입니다.
- 논리적 스마가 물리적 저장과 분리되어 있으므로, 저장을 재구성하거나 인덱싱하거나 이동하더라도 프로그램은 여전히 동일한 테이블을 볼 수 있습니다.

프로그램은 테이블을 보고; DBMS는 디스크를 봅니다
데이터베이스의 논리적 스키마(logical schema)는 다음을 설명합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
논리적 설계는 물리적 저장소와 분리되어 있어 저장 방식이 변경되어도 프로그램에는 영향을 주지 않습니다.
데이터 무결성과 데이터 보안
- 데이터 무결성: DBMS가 중앙에서 규칙을 강제함으로써 데이터를 정확하고 일관되게 유지합니다: 주키는 유일하고 NULL이 아니며, 모든 외래 키에 대해 참조 무결성이 적용되고, 데이터 유형 및 범위 또는 목록 값과 같은 검증 제약 조건이 있습니다.
- 데이터 보안: DBMS가谁가 무엇을 보거나 변경할 수 있는지 통제합니다. **접근 권한(access rights)**은 개별 사용자나 그룹에 대해 테이블 단위로 읽기 전용, 읽기 및 쓰기, 또는 접근 불가로 부여됩니다; 비밀번호로 각 사용자를 인증하고, 저장된 데이터를 암호화할 수 있습니다.
- 보안에는 백업 절차도 포함됩니다: 데이터베이스의 정기적인 복사본과 그 이후의 변경 로그를 보유하여, 장애 발생 시 데이터를 복구할 수 있도록 합니다.
다음 중 DBMS의 데이터 보안 features는 무엇인가? 모두 선택하시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
접근 권한 및 분실 시 복구는 보안에 해당합니다. 정규화는 중복 방지를 위한 설계 단계입니다.
worked example: DBMS가 데이터를 안전하게 유지하는 방법
- DBMS가 데이터 보안을 어떻게 제공하는지 서술하시오. [4]
- 각 사용자는 계정과 비밀번호를持有하므로, 인증된 사람만 로그인할 수 있습니다. 관리자(administrator)는 각 테이블에 대해 각 사용자나 그룹에게 접근 권한을 부여합니다: 사원이 가격을 볼 수는 있으나 변경할 수는 없으며, 고객은 직원 테이블을 전혀 볼 수 없습니다. **뷰(view)**는 사용자가 필요한 필드만 보여줄 수 있습니다.
- DBMS는 백업 절차를 행합니다: 데이터베이스의 정기적인 복사본을 별도의 매체에 저장하고, 복사 이후의 트랜잭션 로그를 유지하여, 장애나 공격으로 인해 데이터가 유실되지 않게 합니다.
- 보안은 누가 접근할 수 있는가에 관한 것이고, 무결성은 데이터가 정확한가에 관한 것입니다. 문제에서 하나를 명시했을 때 이 둘을 구분하여 답하십시오.
동시 다수 사용자
- 동시 접근(concurrent access): 많은 사용자가 동시에 데이터베이스를 작업합니다. **동시성 제어(concurrency control)**는 잠금(lock)을 사용하여 두 사용자가 같은 레코드를 동시에 수정하여 손상시키는 것을 방지하고, 두 번째 사용자는 첫 번째 사용자가 완료될 때까지 대기합니다.
- **트랜잭션(transaction)**은 성공하면 모두 성공하고 실패하면 모두 실패하는 일련의 연산으로, 전송 중 반쯤 크래시发生时에도 양쪽 계좌의 돈이 사라지지 않도록 합니다.
- **뷰(view)**는 쿼리로 생성된 가상 테이블로, 각 사용자에게 데이터의 자신만의slice만 보여줍니다.
데이터베이스 트랜잭션(transaction)이란:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
트랜잭션은 '모두 성공' 또는 '모두 실패'原则이므로, 데이터베이스는 항상 반으로 업데이트된 상태가 남지 않습니다.
다음과 같이 하기 위해 동시성 제어(잠금)가 필요합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
잠금은 두 개의 동시 업데이트가 충돌하여 공유 데이터를 손상시키는 것을 방지합니다.
트랜잭션은 모두 성공/실패原则입니다: 완전히 완료(commit)되거나 완전히 undone(rollback)되므로, 데이터베이스는 항상 반으로 업데이트된 상태가 남지 않습니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
이 원자성(atomicity)은 은행 이체가 한 계좌에서 차액(debit)만 occur하고 다른 계좌에는 credit가 이루어지지 않을 수 없는 이유입니다.
사용자에게 관련 데이터의 일부만을 보여주는 가상 테이블(보통 저장된 쿼리)을 ______라고 부릅니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
뷰는 데이터를 복사하지 않고 맞춤 제작되고 종종 제한된 데이터)slice를 제시합니다.
두 사용자의 동일한 레코드 업데이트 이벤트를 동시성 제어 하에 순서대로 나열하시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
잠금은 두 업데이트를 직렬화(serialise)하여 서로의 변경 사항을 덮어쓰지 않게 합니다.
소프트웨어 도구
- 개발자 인터페이스는 데이터베이스에서 애플리케이션을 구축하기 위한 도구 및 프로그래밍 인터페이스의 집합입니다: 데이터 입력용 폼 빌더, 보고서 생성기, 쿼리 빌더, SQL 에디터, 데이터 사전 에디터, 그리고 Python 또는 Java 프로그램이 SQL을 전송하고 결과를 받을 수 있게 해주는 API를 포함합니다.
- 쿼리 프로세서는 SQL로 작성된 쿼리를 받아 데이터 사전과 대조하여 가장 효율적인 실행 방법을 결정하고, 이를 실행한 후 결과집합을 반환합니다.
- 쿼리를 입력하는 사용자와 예약 폼을 구축하는 프로그래머 모두 DBMS를 사용하고 있습니다. 하나는 쿼리 프로세서를 통해, 다른 하나는 개발자 인터페이스를 통해 사용합니다.
각 DBMS 컴포넌트를 그 역할과 매칭하시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
쿼리 실행, 애플리케이션 구축, 구조 설명, 그리고 설계 자체:NONE экзамен separately 명명한 네 가지 항목입니다.
worked example: 사용 중인 두 가지 도구
- 한 상점의 데이터베이스는 판매 총계 데이터가 필요한 매니저와 재고 관리 애플리케이션을 작성하는 프로그래머에 의해 사용됩니다. 쿼리 프로세서와 개발자 인터페이스가 어떻게 사용되는지 설명하시오.
- 매니저는 판매 총계를 위한 리를 작성하거나 구성합니다. 쿼리 프로세서는 이를 파싱하고, 데이터 사전을 사용하여 테이블과 필드가 존재하는지 확인하며, 가장 빠른 실행 방법을 선택하고, 실행한 후 결과를 반환합니다.
- 프로그래머는 개발자 인터페이스를 사용합니다: 재고 스크린을 만들기 위해 폼 및 보고서 빌더를 사용하고, 애플리케이션의 코드가 DBMS에 SQL을 전송하고 레코드를 다시 받을 수 있도록 API를 사용합니다.
- 각 도구 2점: 도구의 기능과 해당 사람이 이를 어떻게 사용하는지.
놓칠 수 있는 점
- DBMS는 소프트웨어이지 데이터가 아닙니다. "DBMS가 고객 레코드를 보관한다"는 표현은 틀렸습니다; DBMS는 이를 관리합니다.
- 데이터 사전은 데이터 자체 대신 데이터에 대한 정보(메타데이터) 를 저장합니다: 구조, 유형, 키, 권한 등. 레코드 자체를 저장하지는 않습니다.
- 논리적 스키마는 물리적 저장소와 독립적인 설계입니다. 이 구절을 반드시 기억하십시오.
- 보안은 접근 권한을 의미하며, 무결성은 데이터가 정확한 상태를 유지함을 의미합니다. 백업은 보안范畴에 속합니다.
이해했습니다
- DBMS는 모든 프로그램들이 거치는 소프트웨어입니다: 사실(데이터)의 단일 복사본, 데이터 독립성, 중앙 집중적 규칙 관리.
- 데이터 관리 (데이터에 대한 정보를 제공하는 데이터 사전 활용) · 데이터 모델링 (저장소와 독립적인 논리적 스키마 생성) · 데이터 무결성 (강제 적용되는 규칙) · 데이터 보안 (사용자 및 그룹의 접근 권한, 비밀번호, 암호화, 백업)
- 동시성 제어: 락(locks) 사용, 모두 성공하거나 실패하는 트랜잭션, 특정 사용자만 자신의 데이터 조각을 볼 수 있는 뷰(view) 제공
- 도구: 애플리케이션 구축용 개발자 인터페이스, SQL 실행용 쿼리 프로세서