01. 데이터 베이스

다뉴기·2024년 4월 2일

백엔드 공부 - DB

목록 보기
1/11

기본 지식

Data 데이터

  • 어떤 값을 포함하고 있는 가공되지 않은 1차 자료
  • 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 자료

Database 데이터 베이스

  • 여러 사람이 공유하여 사용할 목적으로 체계화 해 통합, 관리하는 데이터의 집합
  • DBMS(데이터 베이스 관리 시스템)의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음

DBMS 데이터베이스 관리 시스템

  • DataBase Management System
  • 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합

효율적인 데이터 관리 조건

  • 데이터를 통합하여 관리
  • 일관된 방법으로 관리
  • 데이터 누락 및 중복 제거
  • 여러 사용자(응용 프로그램)가 공동으로 실시간 사용 가능

DBMS의 종류

  • Oracle, MSSQL, MySQL, MongoDB, MariaDB……
    • Java 개발자로 취업할 경우 Oracle보다는 MSSQL, MySQL을 건드리게 될 확률이 매우 높음

Data Model 데이터 모델

컴퓨터에 데이터를 저장하는 방식을 정해 놓은 개념 모형

  • 계층형:
    • 트리 구조, 부모 자식 관계
  • 네트워크형:
    • 망형, 그래프 구조
  • 객체 지향형:
    • 상속, 오버라이드 등 사용
    • 데이터를 독립된 객체로 구성
  • 관계형:
    • 데이터 간 관계 relationship에 초점

RDBMS 관계형 DBMS

  • Relational DataBase Management System
  • IBM 산호세 연구소의 에드거 F. 커드가 도입한 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템
  • 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음
  • 현재 사용되는 대부분의 DB는 관계형 DB 모델을 기반으로 한다.
    • Oracle, MySQL, MS-SQL, PostgreSQL, SQLite
  • 데이터가 하나 이상의 열과 행의 테이블(또는 관계)에 저장

SQL

  • Structured Query Language
  • RDBMS의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어
  • 자료의 검색과 관리, DB 스키마 생성과 수정, DB 객체 접근 조정 관리를 위해 고안되었다.
  • 많은 수의 DB 관련 프로그램들에서 SQL을 표준으로 채택한다.

NoSQL

  • No only SQL
  • 비관계형 DB 유형을 가리키며 이 DB는 관계형 테이블과는 다른 형식으로 데이터를 저장한다.
  • NoSQL DB는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 질의한다.
    • 실시간 웹 애플리케이션 및 빅데이터에 널리 사용되고 있다.

RDBMS

관계형 모델 개념을 한마디로 정리하면 테이블이라는 2차원 구조에 데이터를 성격에 맞게 분리해 가급적 중복되지 않게 저장하고, 필요한 데이터는 테이블 간에 관계를 맺어 추출하는 것

데이터 관리

결국 CRUD

  • 데이터 저장 C(Create)
    • 필요한 데이터만 적재적소에 저장해 두는 것이 효율적
    • 가능한 중복된 데이터는 저장을 피하자
  • 데이터 조회 관점 R(Read)
    • 원하는 데이터를 손쉽고 빠르게 찾기
  • 데이터 수정 관점 U(Update)
    • 특정 데이터만 골라내 원하는 값으로 수정
  • 데이터 삭제 관점 D(Delete)
    • 원하는 데이터만 골라서 삭제

데이터의 저장과 조회

  • 저장과 조회는 반대의 상관관계가 존재
  • 빠르게 저장하면 조회가 느리고 조회가 빠르면 저장이 느리다.
    • 책장에 책을 넣고 원하는 책을 찾는 경우를 상상해보자.

데이터 저장소 테이블

  • 테이블은 가로와 세로, 즉 열(Column)과 행(Row)로 구성된다.
    • 가로로 횡 베니까 행이라고 외우자
  • Column이 테이블에 저장될 데이터 유형을 결정한다.
  • 테이블을 만든다는 것은 컬럼을 정의하는 것이다.

관계 R: relation

  • 데이터 성격에 맞게 테이블을 여러 개로 분리한다.
  • 분리한 테이블 간에 연결고리 역할을 하는 컬럼을 두어 이 컬럼을 이용해 관계를 맺는다.
    • = 테이블과 테이블 사이의 Column을 가지고 관계를 형성
    • 주로 테이블의 Column의 Primary Key, Foreign Key를 사용한다.

모델링 Modeling

  • 데이터 성격에 맞게 테이블을 여러 개 만들고 이들 간의 관계를 결정하는 것

키 컬럼 Key Column

  • 데이터 무결성을 확보하고자 테이블에 반드시 하나의 키가 되는 Column을 두어야 한다.
  • 데이터 무결성(integrity)이란?
    • 데이터의 정확성을 보장해 올바른 데이터를 유지하는 것이다.

기본키 Primary Key, PK

  • 테이블에서 특정 Row 데이터를 식별할 수 있는 값을 가진 Column
  • 테이블 전체로 보면 기본 키 Column에는 유일한(Unique)한 값
  • 유일한 식별자 역할을 하는 키는 테이블 간 관계를 맺을 때도 사용 된다.

외래(참조)키 Foreign Key, FK

  • 다른 테이블의 기본 키와 연결 고리가 되는 키

SQL

구조화된 혹은 구조적인 질의(Query) 언어, 집합적 언어

  • RDBMS 상에서 데이터를 원하는 대로 다루는 것
  • 구조적 혹은 구조화된이라는 것은 어떤 틀이나 형식이 정해져 있다는 의미.
  • DB를 상대로 데이터를 CRUD 하기 위해 사용하며 이 모든 것이 질의(Query)이다.
  • 임의의 조건에 부합한다면 이를 충족하는 데이터를 CRUD 하는 기능을 수행한다.
  • 데이터를 한 건씩 처리하는 게 아니라 조건에 맞는 데이터 전체를 한 번에 처리한다.
  • SQL 표준과 제품별 다른 SQL이 있다.

종류

  • DML: Data Manipulation Language
    • 테이블의 데이터 CRUD
  • DDL: Data Definition Language
    • 개체 CUD
  • DCL: Data Control Language
    • 사용자 생성 및 권한 관리
  • TCL: Transaction Control Language
    • Transaction(트랜잭션) commit, Rollback

알아두면 좋은 내용

0개의 댓글