Database (1)

Jean·2025년 7월 24일
0

풀스택 교육

목록 보기
20/28

🗃️ 데이터베이스(Database)

🍚 정형 데이터 vs 비정형 데이터

  • 정형 데이터 (Structured Data)
    • 행과 열로 구성된 테이블 형태의 데이터
    • 예: 엑셀, 관계형 DB 테이블 (MySQL, Oracle 등)
  • 비정형 데이터 (Unstructured Data)
    • 구조화되지 않은 데이터 (형태가 일정하지 않음)
    • 예: 이미지, 동영상, 이메일, PDF, SNS 댓글 등

🍛 데이터 vs 정보

  • 데이터: 의미 없는 사실이나 값들의 나열 (raw data)
    예: 85, 2023/10/01, "서울"
  • 정보: 데이터를 가공하여 의미 있게 만든 것
    예: "85점은 통과 기준입니다.", "2023/10/01 서울 날씨는 맑음"

🍙 데이터베이스의 정의

  • 데이터를 체계적으로 저장, 관리, 검색, 수정할 수 있도록 한 데이터 저장소
  • DBMS(Database Management System)를 통해 조작됨

🍲 관계형 데이터베이스(RDBMS: Relational DBMS)

  • 테이블 형태(행과 열)로 데이터를 저장
  • 각 테이블은 관계(Relation)를 맺음
  • SQL을 이용하여 조작

🧆 관계형 데이터베이스 구성 요소


  • 테이블(Table): 데이터를 저장하는 구조 (행/열)
  • 행(Row): 레코드(Record), 한 사람 또는 한 건의 정보
  • 열(Column): 속성(Attribute), 항목
  • 스키마(Schema): 데이터 구조 정의 (테이블, 뷰 등)

🍣 주요 특징

특징설명
무결성데이터의 정확성과 일관성을 유지 (NOT NULL, UNIQUE 등)
일관성트랜잭션 완료 후에도 항상 데이터는 일관된 상태
독립성데이터와 프로그램은 분리됨 (데이터 구조 변경이 코드에 영향 없음)
보안성사용자별 접근 권한 제한 가능
동시성여러 사용자가 동시에 작업 가능
회복성장애 발생 시 데이터 복구 가능

🍤 RDBMS 종류

  • Oracle: 대기업에서 많이 사용, 성능과 보안 강점
  • MySQL: 오픈소스, 웹 서비스에서 널리 사용
  • PostgreSQL: 고급 기능 제공, 오픈소스
  • SQL Server: 마이크로소프트의 RDBMS

🥐 Oracle DB

🥞Oracle RDBMS

  • Oracle은 세계적으로 널리 사용되는 상용 RDBMS
  • 대규모 트랜잭션, 보안, 안정성, 성능 측면에서 우수

🥪 기본 계정

계정명용도
SYS최고 관리자 (시스템 전체 권한)
SYSTEM일반 관리자 (보조 관리 기능)
SCOTT교육용 계정 (기본 테이블 보유, emp, dept 등)

SCOTT 계정은 기본적으로 잠겨 있으므로 해제 필요

ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;

🛠️ CRUD 기본 명령어

명령어설명
INSERT행 추가
SELECT조회
UPDATE데이터 수정
DELETE행 삭제

🗂️ SELECT 문법 구조

SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
WHERE 조건
GROUP BY 그룹기준컬럼
HAVING 그룹조건
ORDER BY 정렬기준컬럼 ASC|DESC;

🔍 구성 요소

설명
SELECT조회할 컬럼 지정
FROM조회 대상 테이블
WHERE조건에 맞는 행 필터링
GROUP BY그룹별 집계 (SUM, COUNT 등과 함께)
HAVING그룹 조건 필터링
ORDER BY정렬 기준 지정 (기본은 오름차순)

🔣 Oracle의 연산자

📐 비교 연산자

=   >   <   >=   <=   <>

🔗 논리 연산자

AND   OR   NOT

📊 포함 / 범위 연산자

IN (1,2, ...)
NOT IN (1,2, ...)
BETWEEN A AND B
NOT BETWEEN A AND B

🔤 문자열 비교

LIKE '%문자%'       -- 포함 여부
LIKE '_문자'        -- 자릿수 정확한 문자
ESCAPE '\'          -- 특수문자 인식 방지
NOT LIKE            -- 패턴 불일치

🔤 문자열 비교

LIKE '%문자%'       -- 포함 여부
LIKE '_문자'        -- 자릿수 정확한 문자
ESCAPE '\'          -- 특수문자 인식 방지
NOT LIKE            -- 패턴 불일치

➕ 기타

🎯 NULL 관련

IS NULL
IS NOT NULL

🧹 중복 제거

SELECT DISTINCT 컬럼명 FROM 테이블;

🔢 산술 연산자

+   -   *   /

🔗 문자열 연결 연산자

컬럼1 || 컬럼2

⛓️ 연산자 우선순위

  1. 괄호 ()
  2. 산술 연산자
  3. 비교 연산자
  4. 논리 연산자

✏️ 예시

SELECT ename, sal
FROM emp
WHERE deptno IN (10, 20)
  AND sal BETWEEN 2000 AND 5000
ORDER BY sal DESC;
profile
햇내기 개발자 지망생

0개의 댓글