Contents
1. 데이터베이스의 구조1️⃣ 서버 (Database Server)2️⃣ 데이터베이스 (Database)3️⃣ 스키마 (Schema)4️⃣ 테이블 (Table)5️⃣ 행 (Row, Record, Tuple)6️⃣ 열 (Column, Field, Attribute)7️⃣ 제약 조건 (Constraints)8️⃣ 인덱스 (Index)2. SQL (Structured Query Language)1️⃣ SQL 이란?2️⃣ SQL의 역할3️⃣ SQL의 대표 명령※ DSL(Domain-Specific Language, 도메인 특화 언어)1️⃣ DSL 이란?2️⃣ DSL의 특징3️⃣ 예시1. 데이터베이스의 구조
서버
└─ 데이터베이스(DB)
└─ 스키마(Schema)
└─ 테이블(Table)
└─ 행(Row, Record)
└─ 열(Column, Field)1️⃣ 서버 (Database Server)
- DB가 올라가 있는 물리적/논리적 장비
- 하나의 서버에 여러 DB가 실행될 수 있음
(예: MySQL 서버 안에 DB 여러 개)
2️⃣ 데이터베이스 (Database)
- 데이터가 모여 있는 논리적 저장소
- 회사별 서비스 모듈별로 DB를 나누기도 함
(예: user_db, order_db)
3️⃣ 스키마 (Schema)
1) 개념
DB 내부에서 데이터를 조직화하는 구조 정의
2) 스키마의 역할
- 어떤 테이블이 있는지
- 테이블의 필드가 무엇인지
- 제약 조건 (PK, FK, UNIQUE, NOT NULL)
- 인덱스 등 구조 전반을 정의
💡 MySQL에서는 스키마=데이터베이스 라는 개념이 거의 동일하게 쓰이기도 함
4️⃣ 테이블 (Table)
1) 개념
데이터를 저장하는 기본 단위(엑셀 표라고 생각하면 됨)
2) 테이블의 구성
- 행(Row): 한 사람/한 주문 같은 레코드
- 열(Column): 이름, 나이, 전화번호 같은 속성
3) 예시
Users 테이블
id | name | age |
1 | Kim | 20 |
2 | Lee | 30 |
5️⃣ 행 (Row, Record, Tuple)
- 테이블에 저장된 한 개의 데이터 묶음
- 한 사람, 한 주문, 한 제품 등 실체 데이터
6️⃣ 열 (Column, Field, Attribute)
- 행이 갖는 속성
- 데이터 타입 존재 (INT, VARCHAR, DATE 등)
7️⃣ 제약 조건 (Constraints)
데이터 무결성을 보장하기 위해 테이블에 적용하는 규칙
- PRIMARY KEY: 고유 식별자
- FOREIGN KEY: 다른 테이블과 관계 연결
- UNIQUE: 중복 금지
- NOT NULL: 꼭 값 필요
- DEFAULT: 값 없을 때 기본값
8️⃣ 인덱스 (Index)
테이블 검색을 빠르게 하기 위한 보조 구조(책의 목차처럼 특정 컬럼으로 빠르게 점프)
- 조회는 빠르지만
- 삽입/수정/삭제는 약간 느려질 수도 있음
2. SQL (Structured Query Language)
1️⃣ SQL 이란?
관계형 데이터베이스(RDBMS)를 조작하기 위한 표준 언어
2️⃣ SQL의 역할
- 데이터를 조회
- 데이터를 삽입/수정/삭제
- 테이블 구조 생성/변경
- 트랜잭션 수행
3️⃣ SQL의 대표 명령
분류 | 풀네임 | 역할(설명) | 대표 명령어 |
DQL | Data Query Language | 데이터 조회 | SELECT |
DML | Data Manipulation Language | 데이터 조작(삽입·수정·삭제) | INSERT, UPDATE, DELETE, MERGE |
DDL | Data Definition Language | 테이블/DB 구조 정의 및 변경 | CREATE, ALTER, DROP, TRUNCATE |
TCL | Transaction Control Language | 트랜잭션 제어 | COMMIT, ROLLBACK, SAVEPOINT |
DCL | Data Control Language | 권한/보안 제어 | GRANT, REVOKE |
1) 데이터 조회
SELECT * FROM users WHERE age > 20;2) 데이터 삽입
INSERT INTO users(name, age) VALUES('Kim', 30);3) 데이터 수정
UPDATE users SET age = 31 WHERE id = 1;4) 데이터 삭제
DELETE FROM users WHERE id = 1;SQL은 Oracle, MySQL, PostgreSQL, SQL Server 등 대부분의 RDBMS에서 사용됨
※ DSL(Domain-Specific Language, 도메인 특화 언어)
1️⃣ DSL 이란?
특정 목적(도메인)을 위해 만들어진 언어
2️⃣ DSL의 특징
- 범용 언어가 아니라 한 분야에 최적화
- 사용 목적이 제한적
- 복잡한 동작을 간단한 문법으로 표현 가능
3️⃣ 예시
분야 | DSL 예 |
데이터베이스 질의 | SQL |
웹 페이지 스타일 | CSS |
정규식 | Regex |
빌드/자동화 | Gradle DSL, Ant DSL |
하드웨어 설계 | Verilog |
인프라 관리 | Terraform, CloudFormation |
Share article