데이터베이스 6

[데이터베이스] 06. 데이터베이스 언어 SQL

관계 데이터베이스에서 데이터를 다루려면 결국 사람이 타이핑할 수 있는 언어가 필요하다. 그 표준 언어가 SQL(Structured Query Language)이다.SQL은 데이터베이스를 다루는 사람이라면 반드시 손에 익혀야 하는 도구다. 오늘은 SQL의 전체 지도(세 가지 분류)와 핵심 문장들을 정리했다.여기서는 "SQL이 어떻게 구조화되어 있는가"라는 큰 틀에 집중한다. 실제 환경에서 함수·조인·서브쿼리를 손으로 다루는 실습은 범위를 벗어나므로 따로 다룬다.1. SQL의 분류모든 SQL 문장은 역할에 따라 셋 중 하나에 속한다.분류대표 명령역할대상DDL (Data Definition Language, 정의어)CREATE, ALTER, DROP테이블·스키마 구조 정의틀(스키마)DML (Data Manip..

data/database 2026.09.01

[데이터베이스] 05. 관계 데이터 연산

데이터를 표(릴레이션)로 저장했으니, 이제 그 표에서 원하는 데이터를 꺼내는 방법을 정의할 차례다.관계 데이터 연산은 "릴레이션을 입력받아 릴레이션을 출력하는" 연산들의 체계다. 다소 수학적이고 추상적이라 처음엔 "이걸 왜 배우나" 싶었다.그런데 우리가 매일 쓰는 SQL의 SELECT가 사실 이 연산들이 옷을 갈아입은 모습이었다. 이 토대를 알아두니 SQL이 내부에서 무슨 일을 하는지가 보였다.1. 관계 대수 vs 관계 해석원하는 데이터를 표현하는 방식에는 두 갈래가 있다. 이 구분은 프로그래밍의 "명령형 vs 선언형"과 정확히 같다.구분성격표현하는 것관계 대수(Relational Algebra)절차적어떻게(How) 얻을지, 즉 연산 순서를 명시관계 해석(Relational Calculus)비절차적무엇(..

data/database 2026.08.25

[데이터베이스] 04. 관계 데이터 모델

관계 데이터 모델은 데이터를 표(테이블)의 형태로 다룬다. 이 단순한 아이디어가 수십 년째 데이터베이스 세계를 지배하고 있다.단순해 보이는 표 뒤에는 정밀하게 정의된 용어와, 데이터가 망가지지 않게 지키는 규칙(무결성)이 있다. 오늘은 그 어휘와 규칙을 정리했다. 데이터베이스를 다루는 거의 모든 이야기가 결국 이 용어들 위에서 이뤄지기 때문이다.1. 릴레이션의 구성관계 모델에서는 표를 릴레이션(relation)이라 부르고, 행과 열에도 고유한 이름을 붙인다. 일상의 "표/행/열" 용어와 짝지어 외워두니 편했다.용어의미일상 표현릴레이션(relation)행과 열로 구성된 표테이블속성(attribute)릴레이션의 열컬럼(세로)튜플(tuple)릴레이션의 행로우(가로)도메인(domain)한 속성이 가질 수 있는 ..

data/database 2026.08.18

[데이터베이스] 03. 데이터 모델링 (개체-관계 모델)

테이블을 곧장 만들기 전에, "현실 세계의 무엇을 어떻게 데이터로 옮길 것인가"를 먼저 설계해야 한다. 이 설계 과정이 데이터 모델링이고, 그 첫 단추가 개체-관계(ER, Entity-Relationship) 모델이다.코드를 짜기 전에 그림을 그리는 단계라 처음엔 가볍게 봤는데, 여기서 구조를 잘못 잡으면 나중에 테이블·쿼리·정규화가 전부 어긋난다는 걸 알고 생각이 달라졌다. 오늘은 현실을 데이터로 번역하는 이 첫 단계를 정리했다.1. 데이터 모델링과 데이터 모델모델링은 추상도를 단계적으로 낮추며 진행된다. 현실에서 개념으로, 다시 논리로 내려가는 순서다. 단계데이터 모델결과물개념적개체-관계 모델(ER)E-R 다이어그램(ERD)논리적관계 데이터 모델릴레이션(테이블) 스키마 이 글은 첫 단계인 개념적 모델..

data/database 2026.07.09

[데이터베이스] 02. DBMS 데이터베이스 시스템

DBMS와 3단계 스키마데이터베이스는 여러 사용자를 위해 데이터를 통합·공유하고, 위치가 아닌 내용으로 데이터를 찾게 해준다. 그런데 누가 그걸 실현해줄까?사용자가 직접 디스크를 뒤져 데이터를 통합하고 동시 접근을 조율할 수는 없다. 그 일을 전담하는 소프트웨어가 바로 DBMS다.이 글에서는 DBMS가 무엇이고, 그것이 데이터를 세 층(3단계 스키마)으로 나눠 다루는 이유, 그리고 그 결과로 얻는 데이터 독립성이라는 핵심 가치를 살펴본다.1. DBMS와 발전 세대DBMS(DataBase Management System)란?데이터베이스를 관리하고, 사용자/응용 프로그램과 데이터베이스 사이를 중재하는 소프트웨어. 오라클·MySQL·PostgreSQL 등이 여기 해당한다. DBMS의 핵심 역할은 "사용자가 데..

data/database 2026.06.25

[데이터베이스] 01. 데이터베이스 기본 개념

데이터베이스를 흔히 "데이터의 집합"이라고 정의한다. 그런데 이 정의를 처음 만나면 자연스럽게 궁금해진다. 그럼 엑셀 파일이나 메모장에 적은 전화번호 목록도 데이터베이스라고 부를 수 있을까?이 글에서는 "그냥 데이터를 모아둔 것"과 "데이터베이스"를 가르는 기준이 무엇인지, 그리고 왜 굳이 파일 대신 데이터베이스라는 별도의 체계를 만들게 되었는지를 차근차근 짚어본다.이 출발점을 제대로 잡아두면, 데이터베이스가 갖춰야 할 여러 성질이 결국 "이 기준을 지키기 위한 장치"로 자연스럽게 이해된다.1. 데이터와 정보데이터(data) : 현실 세계에서 관찰·측정으로 수집한 사실이나 값 그 자체.정보(information) : 의사결정에 유용하도록 데이터를 처리·가공한 결과물. 둘의 차이는 "가공 여부"다. "오늘..

data/database 2026.06.24