📘 CodingMarble Learn

데이터베이스 개념: DBMS, 릴레이션, 키

데이터를 여러 파일에 나눠 저장하면 같은 내용이 중복되고, 서로 내용이 달라지고, 보안도 약해져요. 데이터베이스는 관련 있는 데이터를 한곳에 정리해서 저장하고, DBMS(예: MySQL)는 이를 관리하는 소프트웨어예요. 관계형 모델에서는 데이터를 표(릴레이션)에 담는데, 열은 속성, 행은 튜플이라고 불러요. 도메인은 한 열에 들어갈 수 있는 값의 집합이에요. 후보키는 각 행을 하나씩 구별해 주는 속성이고, 그중 하나를 기본키로 고르면 나머지는 대체키가 돼요.

🎬 단계별 이야기

  1. 파일을 따로따로 두면 데이터가 중복되고 서로 어긋나요. 데이터베이스는 사본을 하나만 둬요.
  2. DBMS는 사용자와 데이터 사이에서 모든 것을 관리해요.
  3. 표 하나가 릴레이션이에요. 열은 속성, 행은 튜플이에요.
  4. 도메인은 한 열이 가질 수 있는 값의 집합이에요.
  5. 후보키는 각 행을 구별해요. 그중 하나가 기본키가 되고, 나머지는 대체키가 돼요.
  6. 이제 직접 해 봐요. 각 열이 키가 될 수 있는지 시험해 보세요.

팁: 3D 화면을 드래그하면 돌아가요. 두 손가락으로 확대할 수 있어요.

🤔 헷갈리는 점, 한 번에 해결

스프레드시트도 이미 데이터베이스 아닌가요?

스프레드시트도 표를 담을 수 있지만, DBMS는 여러 사용자의 동시 사용, 규칙(키, 도메인), 보안, 강력한 질의 기능을 더해 줘요.

행을 왜 튜플이라고 부를까요?

수학에서 순서가 있는 값의 묶음을 튜플이라고 해요. 각 행은 속성마다 값이 하나씩 있는, 순서가 있는 값의 묶음이에요.

도메인은 누가 정하나요?

데이터베이스 설계자가 현실의 규칙(학년 9~12, 점수 0~100)을 바탕으로 정해요. 그러면 DBMS는 그 범위를 벗어난 값을 거부해요.

AdmNo와 Email이 둘 다 유일한데 왜 AdmNo를 고르나요?

AdmNo는 짧고, 바뀌지 않고, 모든 학생이 가지고 있어요. 이메일은 바뀌거나 없을 수 있어요.

키를 열 두 개로 만들 수도 있나요?

네. 혼자서 유일한 열이 없을 때는 (Class, RollNo) 같은 묶음이 키가 될 수 있어요. 이것이 복합키예요.

왜 데이터베이스가 필요할까?

파일 시스템에서는 부서마다 자기 파일을 따로 가지고 있어요. 그러면 이런 문제가 생겨요.

데이터베이스는 관련 있는 데이터를 한곳에 정리해 둔 모음이에요. 그래서 공유할 수 있고, 일관되게 유지할 수 있고, 안전하게 지킬 수 있어요.

데이터베이스 관리 시스템(DBMS)

DBMS는 데이터베이스를 만들고, 저장하고, 고치고, 검색하고, 관리하며 누가 쓸 수 있는지도 정하는 소프트웨어예요. 예: MySQL, Oracle, PostgreSQL, SQLite, Microsoft Access.

장점: 중복이 줄고, 데이터가 일관되며, 여러 사용자가 함께 쓸 수 있어요. 비밀번호와 권한으로 보안을 지키고, 백업과 복구가 되고, 질의 언어(SQL)로 쉽게 검색할 수 있어요.

일상 속 쓰임: 은행, 기차 예약, 학교 기록, 온라인 쇼핑, 병원.

관계형 모델: 릴레이션, 속성, 튜플, 도메인

관계형 데이터 모델에서는 데이터를 표에 담아요.

규칙: 열 이름은 서로 달라야 해요. 행이나 열의 순서는 중요하지 않아요. 완전히 똑같은 행이 두 개 있으면 안 돼요. 칸마다 값은 하나만 들어가요(또는 NULL, 즉 모르는 값).

키: 후보키, 기본키, 대체키

예: STUDENT(AdmNo, Name, Class, Email). Name과 Class는 겹칠 수 있어서 키가 아니에요. AdmNo와 (항상 채워져 있고 모두 다르다면) Email은 후보키예요. AdmNo를 기본키로 고르면 Email은 대체키가 돼요.

알아 두면 좋은 것: 복합키는 두 개 이상의 열을 함께 쓰는 키예요(예: Class + RollNo). 외래키는 한 표의 열이 다른 표의 기본키를 가리켜서 두 표를 이어 주는 키예요.

해 보기: 내 학생증에서 키 찾기

학생증이나 교통카드를 살펴보세요. 이름, 학년, 번호, 학번, 전화번호 같은 항목을 모두 적어요. 항목마다 두 가지를 물어보세요. 두 학생이 같은 값을 가질 수 있나? 비어 있을 수 있나? 그리고 어느 항목이 후보키인지 적고, 기본키로 무엇을 고를지 정해 보세요. 그다음 3D의 6단계에서 같은 방법으로 다시 시험해 보세요.

핵심 공식과 정의

풀이 예제

1. 표에 열이 5개, 행이 30개 있어요. 차수와 카디널리티를 구하세요.

차수 = 5, 카디널리티 = 30.

2. 4 × 10 표(차수 4, 카디널리티 10)에 행 2개와 열 1개를 추가하면 새 값은 얼마일까요?

차수 = 5, 카디널리티 = 12.

3. EMPLOYEE(EmpID, Name, Aadhaar, Dept)에서 후보키, 기본키, 대체키를 찾으세요.

EmpID와 Aadhaar는 값이 유일하므로 후보키예요. EmpID를 기본키로 고르면 Aadhaar는 대체키예요. Name과 Dept는 겹칠 수 있어요.

4. STUDENT에서 Name은 왜 기본키가 될 수 없을까요?

이름이 같은 학생이 둘 있을 수 있어서 행을 하나로 구별하지 못하기 때문이에요.

5. 글자 한 개로 저장하는 속성 Gender의 도메인을 쓰세요.

{"M", "F", "O"} (또는 학교에서 정한 다른 코드).

자주 하는 실수

연습 퀴즈

1. 릴레이션의 행을 무엇이라고 부를까요?
2. 릴레이션에서 열의 개수를 무엇이라고 할까요?
3. 기본키로 뽑히지 않은 후보키는 무엇일까요?
4. 다음 중 DBMS는 무엇일까요?
5. 같은 데이터가 여러 파일에 저장된 상태를 무엇이라고 할까요?

연습: 직접 풀어 보세요

답을 입력하거나 고른 뒤 확인을 누르세요. 막히면 힌트를 보세요. 풀이는 답을 낸 뒤에 나타나요.

자주 묻는 질문

데이터베이스가 필요한 이유는 무엇인가요?

여러 파일에 나뉜 데이터의 중복과 불일치를 막고, 데이터를 쉽게 공유하고 보호하고 검색하기 위해서예요.

후보키, 기본키, 대체키는 어떻게 다른가요?

후보키는 각각 행을 유일하게 구별할 수 있는 키예요. 그중 고른 하나가 기본키이고, 나머지는 대체키예요.

차수와 카디널리티는 무엇인가요?

차수는 릴레이션의 열(속성)의 개수이고, 카디널리티는 행(튜플)의 개수예요.

배우는 곳

ItalySecondaria di secondo grado – classe 3ªTools and foundations
ItalySecondaria di secondo grado – classe 4ªTools and foundations
NetherlandsHAVO 5 (eindexamenjaar)Elective theme: Databases
NetherlandsVWO 6 (eindexamenjaar)Elective theme: Databases
PolandLiceum ogólnokształcące, klasa IIProgramming and solving problems with computers
RomaniaClasa a X-aDatabases
RomaniaClasa a XII-aModule 1: Databases (compulsory)
RomaniaClasa a XII-aModule 2: Database management systems (optional)
RomaniaClasa a XII-aModern user skills
RomaniaClasa a XII-aWorking with a database application
Ukraine9 класInformation systems and data management
Ukraine10 класBase module: database systems
CBSE (India)Class 11Database Concepts and SQL
CBSE (India)Class 11RDBMS
England (GCSE, A level)Year 113.7 Relational databases and SQL
Japan高校1年Networks and data
Japan高校(専門学科)1〜3年Using Software
Japan高校(専門学科)1〜3年Computer Systems Technology
Japan高校(専門学科)1〜3年Databases
South Korea고등학교 2학년Understanding data science
South Korea고등학교 3학년Data and information
Germany (Bavaria)Jahrgangsstufe 10Data modelling and relational databases
FranceSecondeThemes
FrancePremièreTabular data
FranceTerminaleSpecific option — management information systems
Russia9 классTheoretical foundations
Russia11 классInformation technologies

먼저 배우기

다음에 배우기