
🌐 TIL - Java & Oracle SQL 19일차: 데이터베이스, DBMS, SQL 분류, SELECT 정리
오늘은 Oracle Database를 중심으로 데이터베이스의 개념, DBMS의 역할, 그리고 SQL의 분류 및 SELECT 구문에 대해 학습했습니다. 실무에서 자주 마주치는 기초지만 중요한 내용들을 다졌습니다.
📌 데이터, 정보, 데이터베이스
✔ 데이터 (Data)
관찰, 측정 등을 통해 얻은 사실 그 자체
예시: 8848m (에베레스트 높이)
✔ 정보 (Information)
데이터에 의미를 부여한 것
예시: 에베레스트는 세계에서 가장 높은 산이다
✔ 데이터베이스 (Database)
공용/통합/저장된/운영 데이터의 집합
조직 전체에서 다양한 응용 시스템이 공통으로 사용
데이터베이스의 특징
실시간 접근성
계속적인 변화
동시 공유 가능
내용 기반 참조 (주소가 아닌 값 기반 참조)
🧠 DBMS란?
▶ DBMS (Database Management System)
데이터베이스를 정의/조회/조작/제어하는 전용 소프트웨어
기능 설명
정의(Definition) 구조 정의 및 변경
조회(Retrieval) 데이터 검색
조작(Manipulation) 삽입, 수정, 삭제
제어(Control) 사용자 접근 제어, 백업, 복구 등
DBMS 사용 시 이점
데이터 독립성 향상
중복 최소화 → 무결성 향상
보안 관리 가능
백업 및 복구 기능
🗂️ 데이터베이스 유형
유형 설명
계층형 트리 구조, 유연성 떨어짐
네트워크형 복잡한 설계, 관계 정의 가능
관계형 (Oracle 사용) 2차원 테이블 기반, 중복 최소화
객체-관계형 사용자 정의 타입, 참조 타입, LOB, 상속 지원 등 확장성 있음
🧾 SQL (Structured Query Language)
구조적 질의 언어
데이터를 어떻게 처리할지를 절차가 아닌 조건으로 기술
SQL 종류
분류 이름 설명
DQL SELECT 조회
DML INSERT, UPDATE, DELETE, MERGE 조작
DDL CREATE, ALTER, DROP, TRUNCATE 정의
DCL GRANT, REVOKE 권한 제어
TCL COMMIT, ROLLBACK, SAVEPOINT 트랜잭션 관리
✅ TCL은 DML에만 적용된다.
✅ SQL은 비절차적 언어다 (조건 중심)
🛠️ SELECT 구문
기본 구조
sql
복사
편집
SELECT 컬럼명 FROM 테이블명;
결과 집합: Result Set
0개 이상의 행(row)과 열(column)로 구성된 결과
조건, 정렬 등으로 조작 가능
📂 기타 개념 요약
사용자 계정 오류 시 조치 (Oracle 12c 이상)
sql
복사
편집
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
NULL의 의미
Java: 참조 없음
DB: 값이 존재하지 않음
데이터 타입 요약
타입 설명
CHAR(n) 고정 길이 문자
VARCHAR(n) 가변 길이 문자
BLOB 대용량 이진 데이터 (이미지 등)
🧮 테이블 예시
sql
복사
편집
CREATE TABLE Employee (
emp_id NUMBER PRIMARY KEY,
name VARCHAR2(50),
age NUMBER,
city VARCHAR2(50),
gender CHAR(1),
dept_id NUMBER,
FOREIGN KEY (dept_id) REFERENCES Department(dept_id)
);
FOREIGN KEY = 참조키 = 외래키
하나의 테이블이 다른 테이블의 키를 참조할 때 사용
✅ 오늘의 회고
관계형 데이터베이스의 설계 구조와 DBMS의 역할을 다시 다져서 좋았다.
SQL의 분류 체계를 명확히 이해하면 앞으로 DDL/DML 사용 시 실수를 줄일 수 있을 것 같다.
SELECT 구문의 핵심 개념과 예제를 반복 실습해봐야겠다.