backend
  • README
  • DOCS
    • Java Docs
    • Servlet Docs
    • JSP Docs
    • DB & SQL Docs
    • Spring Boot Docs
    • Spring Security Docs
    • AWS Docs
  • 설치하기
    • Intellij 설정
  • 자바
    • 01 Java란?
    • 02 자바 시작하기
    • 03 자료형과 연산자
    • 04 제어문
    • 05 메소드
    • 06 클래스 기초
      • Static 보충자료
      • 패키지 보충자료
    • 07 객체지향 프로그래밍
    • 08 클래스 더 알아보기
      • 열거형 ENUM 보충자료
    • 09 클래스와 자료형
      • 다형성 보충자료
      • 제네릭 보충자료
    • 10 컬렉션 프레임워크
      • 컬렉션 프레임워크 보충자료
    • 11 람다식과 함수형 프로그래밍
      • 람다식 보충자료
    • 12 오류 대비하기
      • 오류 보충자료
    • 13 멀티태스킹
      • 멀티태스킹 보충자료
    • 교재보충
      • java.lang
  • 스프링
    • 서블릿, JSP
      • 05 Servlet(서블릿)
        • 서블릿 보충자료
        • 서블릿 추가코드
        • XML, YAML, JSON
      • 06 JSP(자바 서버 페이지)
        • JSP 보충자료
      • 07 JSTL(JSP 스탠다드 태그 라이브러리)
        • JSTL 보충자료
      • 08 Cookie(쿠키), Session(세션)
      • 09 서블릿,필터,리스너
        • 서블릿,필터,리스너 보충자료
      • 11 도서관리 프로젝트 실습
    • Spring Boot
      • 01 스프링 등장 배경, 객체지향
        • 스프링 등장 배경, 객체지향 보충자료
      • 02 IOC(제어의 역전), DI(의존성 주입)
        • IOC 보충자료
        • DI 보충자료
      • 03 스프링 구조
        • 스프링 구조 보충설명
      • 04 테스트코드 실습
      • 05 스프링 빈 설정
        • 스프링 빈 설정 보충자료
      • 06 싱글톤
        • 싱글톤 보충 자료
      • 07 스프링 빈 자동설정
        • 스프링 빈 자동설정 보충자료
      • 08 빈 생명주기
        • 빈 생명주기 보충자료
      • 09 빈 스코프
        • 빈 스코프 보충자료
      • 10 스프링 MVC
        • 스프링 MVC 보충자료
        • 데이터베이스 연동에 필요한 부분
      • 11 Validation(검증)
        • Validation(검증) 보충자료
      • 12 Bean Validation(빈검증)
        • Bean Validation(빈검증) 보충자료
      • 13 예외처리
        • 예외처리 보충자료
      • 14 타입변환
      • 15 JDBC(Java Database Connectivity)
      • 16 커넥션풀
      • 17 트랜잭션
        • 트랜잭션 보충자료
      • 18 JDBC 템플릿 활용
      • 19 MyBatis
      • 20 JPA(Java Persistence API)
      • 22 게시판 프로젝트 실습
    • Spring Security
      • 보안(Security)
      • Spring Security
      • 2. Spring Security 알아보기
        • 보안 위협 실제 사례와 방어 전략
      • 3. Spring Security 기본 동작 흐름
      • 4. Spring Security로 인증 권한 추가하기
        • Spring Security의 인증 및 인가
      • 5. Spring Security에서 세션 관리하기
        • 세션(Session)과 쿠키(Cookie) 비교, 토큰(Token)과의 관계
        • 해싱 및 해싱알고리즘
        • base64
      • 6. Spring Security 악용 보호
        • SameSite
      • 7. Spring Security로 인가 권한 추가하기
      • 8. Bcrypt(비크립트) 암호화
      • OAuth2 적용하기
  • 네트워크
    • HTTP
    • OSI 7계층
  • DB&SQL
    • 01 Database(데이터베이스)와 SQL 개요
    • 02 관계형 모델
    • 03 집합
    • 04 JOIN 연산
    • 05 MySQL
      • 세이브포인트
      • DBeaver, Mysql 오토커밋 설정 관련
    • 06 SQL 기초
      • 예시데이터 쿼리문
    • 07 SQL 실습
      • 실습 스키마
    • 08 Join 활용
      • 실습스키마
    • 09 SQL 활용
      • 실습스키마
    • 10 정규화
      • 실습 스키마
    • 데이터타입
    • 예시 프로젝트 스키마 구성
  • AWS
    • SSL 연결하기
    • 보충설명
Powered by GitBook
On this page
  • 데이터베이스(Database)란?
  • 데이터베이스의 필요성
  • 데이터베이스의 예시
  • 데이터베이스의 종류
  • 관계형 데이터베이스(Relational Database)
  • 관계형 데이터베이스 정의
  • 관계형 데이터베이스 예시
  • 대표적인 관계형 데이터베이스 시스템
  • 비관계형 데이터베이스 (NoSQL Database)
  • 비관계형 데이터베이스 정의
  • 비관계형 데이터베이스의 종류
  • 대표적인 비관계형 데이터베이스 시스템
  • SQL(Structured Query Language)이란?
  • SQL의 정의
  • SQL과 관계형 모델
  • 관계형 모델을 모르더라도 SQL을 쓸 수 있음
  1. DB&SQL

01 Database(데이터베이스)와 SQL 개요

데이터베이스(Database)란?

  • 데이터를 체계적으로 저장하고 관리하는 저장소, 여러 사람이 동시에 접근하고 수정할 수 있도록 설계 되어야 함

  • 데이터베이스는 여러 가지 정보를 체계적으로 모아둔 일종의 '전자 서랍장’, 책상에 서랍장이 있고 그 서랍마다 서류나 물건을 깔끔하게 정리해두는 것처럼, 데이터베이스는 컴퓨터에서 데이터를 정리하고 관리하는 공간

데이터베이스의 필요성

  • 현대 사회에서는 엄청난 양의 데이터를 다루어야 함

  • 예를 들어, 쇼핑몰 웹사이트에는 고객 정보, 상품 정보, 주문 정보 등이 많음. 이런 데이터를 별다른 관리 없이 엑셀 파일이나 종이 문서로만 관리한다면 다음과 같은 문제가 발생할 수 있음

    • 중복된 데이터: 여러 파일에 같은 정보가 반복해서 저장될 수 있음

    • 데이터 손실: 실수로 파일을 삭제하거나 데이터가 잘못 기록될 수 있음

    • 검색의 어려움: 원하는 정보를 빠르게 찾기 어려움

데이터베이스의 예시

데이터베이스는 일상에서 우리가 접하는 많은 곳에서 사용되고 있음

  • 온라인 쇼핑몰: 고객의 주문 내역, 상품 정보, 배송 상태 등이 저장

  • 은행: 계좌 정보, 거래 내역, 고객 정보 등을 안전하게 관리

  • 학교: 학생 정보, 성적, 출석 기록 등이 데이터베이스에 저장됨

  • 스마트폰 연락처 앱: 이름, 전화번호, 이메일 주소 등 저장

  • 음악 스트리밍 서비스: 사용자 정보, 재생 목록, 곡 정보, 아티스트 정보 등이 데이터베이스에 저장되어 빠르게 검색되고 제공됨

  • SNS(소셜 네트워크 서비스): 사용자 프로필, 친구 목록, 게시물, 댓글, 좋아요 등의 정보가 데이터베이스에 저장되어 사용자 간의 상호작용을 가능하게 함

데이터베이스의 종류

데이터베이스는 저장할 데이터의 특성과 목적에 따라 여러 종류로 나뉨, 일반적으로 크게 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL)로 구분됨

  • 관계형 데이터베이스(Relational Database) : 표 형태로 데이터를 관리하는 데이터베이스

  • 비관계형 데이터베이스(NoSQL Database) : 문서, 키-값, 그래프 등 다양한 형태로 데이터를 관리하는 데이터베이스

관계형 데이터베이스(Relational Database)

관계형 데이터베이스 정의

  • 관계형 데이터베이스는 데이터를 행(Row)과 열(Column)로 이루어진 표(Table) 형식으로 관리함

  • 데이터 간의 관계를 테이블 간의 키(Key)를 통해 정의하고, 데이터를 체계적으로 관리할 수 있도록 설계된 데이터베이스

관계형 데이터베이스 예시

  • 은행 시스템: 고객 정보, 계좌 정보, 거래 내역 등을 관계형 데이터베이스로 관리하여 데이터의 일관성과 정확성을 유지함

  • 학교 관리 시스템: 학생 정보, 수강 과목, 성적, 출석 정보 등을 테이블로 나누어 관리함. 학생 테이블과 과목 테이블이 서로 참조 관계를 가질 수 있음

대표적인 관계형 데이터베이스 시스템

  • MySQL: 오픈 소스 관계형 데이터베이스 관리 시스템

  • Oracle: 고성능 상용 관계형 데이터베이스 관리 시스템. 대규모 기업에서 사용되며, 고급 보안 기능과 복잡한 데이터 처리 기능을 제공함

  • PostgreSQL: 오픈 소스 관계형 데이터베이스 시스템으로, 확장성과 표준 준수에 강점을 가지고 있음. 복잡한 쿼리와 데이터 분석에 적합함

  • SQL Server: Microsoft에서 제공하는 상용 관계형 데이터베이스 시스템. Windows 환경에서 주로 사용되며, 비즈니스 인텔리전스와 데이터 분석에 강점을 가지고 있음

비관계형 데이터베이스 (NoSQL Database)

비관계형 데이터베이스 정의

  • 비관계형 데이터베이스는 정형화된 스키마 없이 데이터를 저장하고 관리하는 데이터베이스를 의미함

  • 다양한 데이터 저장 모델을 제공하며, 관계형 데이터베이스의 제약을 벗어나 더 유연하고 확장성이 높은 데이터 처리가 가능

비관계형 데이터베이스의 종류

  • 문서형 데이터베이스 (Document Database) : JSON 또는 BSON 형식의 문서로 데이터를 저장

  • 키-값 데이터베이스 (Key-Value Store) : 고유한 키와 해당 키에 대한 값을 저장하는 간단한 구조를 가짐. 빠른 데이터 검색이 필요한 경우 유용

  • 컬럼형 데이터베이스 (Column-Family Store) : 테이블의 열(Column)을 개별적으로 저장하여 특정 열의 데이터를 빠르게 조회 가능, 빅데이터 처리에 적합

  • 그래프 데이터베이스 (Graph Database) : 노드와 엣지로 구성된 그래프 구조로 데이터를 저장하며, 복잡한 관계 데이터를 처리하는 데 유용

대표적인 비관계형 데이터베이스 시스템

  • MongoDB: 문서형 데이터베이스, JSON과 유사한 BSON(Binary JSON) 형식으로 데이터를 저장함. 각 문서는 고유한 구조를 가질 수 있어 매우 유연함. 필드가 고정되지 않고, 필요에 따라 새로운 필드를 추가할 수 있음.

  • Redis: 키-값 데이터베이스, 메모리 기반의 키-값 저장소로, 매우 빠른 데이터 접근 속도를 자랑함. 문자열, 리스트, 해시, 셋, 정렬된 셋 등 다양한 데이터 구조를 지원

  • Amazon DynamoDB: 키-값 데이터베이스, Amazon Web Services(AWS)에서 제공하는 완전 관리형 키-값 및 문서형 데이터베이스 서비스임. 자동으로 스케일링이 가능하며, 고가용성과 안정성을 보장함

  • Apache Cassandra: 컬럼형 데이터베이스, 분산형 구조로 설계된 컬럼 패밀리 데이터베이스로, 데이터가 여러 서버에 걸쳐 분산되어 저장됨. 데이터의 가용성과 확장성이 매우 높음

  • Elasticsearch: 검색 및 분석 데이터베이스, 실시간으로 대량의 데이터를 빠르게 검색하고 분석할 수 있는 검색 엔진, JSON 형식의 문서를 저장하며, 강력한 검색 및 집계 기능을 제공함

SQL(Structured Query Language)이란?

SQL의 정의

  • SQL은 Structured Query Language의 약자로, 데이터베이스에서 데이터를 관리하고 조작하기 위해 사용하는 표준화된 언어

  • 데이터베이스에 저장된 데이터를 검색, 삽입, 수정, 삭제하는 등 다양한 작업을 수행할 수 있도록 도와줌

  • SQL은 관계형 데이터베이스(RDBMS)에서 표준으로 사용되며, MySQL, Oracle, PostgreSQL, SQL Server와 같은 대부분의 데이터베이스 시스템에서 지원됨

SQL과 관계형 모델

  • SQL은 관계형 모델을 기반으로 데이터를 정의하고 조작하는 언어로, 관계형 데이터베이스를 사용하는 모든 시스템에서 핵심적인 역할을 함

  • 관계형 모델이 데이터베이스의 이론적 기초를 제공한다면, SQL은 이를 실무에서 구현하고 활용할 수 있도록 도와주는 도구

  • 두 개념은 서로 밀접한 관계를 가지고 있으며, 관계형 모델의 이해는 SQL의 올바른 사용과 데이터베이스 설계에 큰 도움이 됨

관계형 모델을 모르더라도 SQL을 쓸 수 있음

  • SQL에 대한 테크닉이 쌓이면 관계형 모델을 모르더라도 데이터베이스를 사용할 수 있음

  • 하지만 관계형 모델을 모르는 채로 SQL을 사용한다는 것은 이론 없이 실습만 진행하는 것으로 나중에 DB 성능향상에서 어려움을 겪게 됨

PreviousDB&SQLNext02 관계형 모델

Last updated 5 months ago