TIL 240323

hyeo71·2024년 3월 21일
0

2024 내배캠 AI 트랙

목록 보기
59/108

파일 시스템 & DB

파일 시스템DB
큰 창고체계적으로 구성된 도서관
파일을 직접 관리테이블, 레코드, 필드 등으로 데이터 구성, 효율적으로 관리,검색
데이터를 구조화하고 연결
도서관리 시스템과 비슷한 역할
데이터의 일관성, 무결성, 안전성을 유지
데이터 조작 작업을 간편하게 수행 가능

정보와 데이터

  • 정보: 여러 종류의 문서로 흩어져있어 조합하기 어려운 단위
  • 데이터: 정보를 체계적으로 분류하여 조합할 수 있는 단위

DB

전자적으로 저장되고 체계적인 데이터 모음

  • DB의 구조는 사용되는 데이터 모델에 의해 결정
  • 시스템 카탈로그(데이터 사전(Data Dictionary))와 저장된 DB로 구분할 수 있음
  • 시스템 카탈로그는 저장된 DB의 스키마 정보를 유지

특징

  • 대규모 저장소로서, 여러 사용자에 의해 동시에 사용
  • 데이터의 중복을 최소화하면서 통합
  • 프로그램과 데이터 간의 독립성이 제공
  • 효율적이고 접근이 가능하고 질의도 가능

DB Schema

전체적인 DB 구조, 자주 변경되지 않음
DB의 모든 가능한 상태를 미리 정의

-> DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 DB 구조

DBS(Datebase System)

DB, DBMS, USER를 포함한 가장 큰 범위


DBMS

DB를 정의, 질의어를 지원, 리포트 생성 등 작업을 수행하는 소프트웨어

장점

  • 중복성과 불일치가 감소
  • 표준화를 시행하기 용이
  • 조직체의 요구사항 식별 가능
  • 시스템 개발, 유지비가 감소
  • 보안 향상
  • 무결성 향상
  • 고장으로부터 회복 가능
  • 공유와 동시접근이 가능

단점

  • 추가적인 하드웨어 구입 비용, DBMS 구입 비용
  • 관리도구 사용법 교육 비용
  • 비밀, 프라이버시가 노출될 수 있음

발전 과정

  1. 계층: 트리
  2. 네트워크: 그래프
  3. RDBMS
  4. 객체 지향: 객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
  5. 객체 관계: RDBMS + 객체 지향 DBMS

DDL, DML, DCL

DDL(Data Definition Language)

데이터를 생성, 수정, 삭제 등 데이터의 전체 골격을 결정

  • CREATE: DB, Table 등을 생성
  • ALTER: 테이블을 수정
  • DROP: DB, Table 등을 삭제
  • TRUNCATE: 테이블 초기화

DML(Data Manipulation Language)

테이블에 있는 행과 열을 조작

  • SELECT: 데이터 조회
  • INSERT: 데이터 삽입
  • UPDATE: 데이터 수정
  • DELETE: 데이터 삭제

DCL(Data Control Language)

DB에 접근하거나 객체에 권한을 주는 역할

  • GRANT: 특정 작업에 대한 수행권한 부여
  • REVOKE: 특정 작업에 대한 권한을 박탈, 회수
  • COMMIT: 트랜잭션의 작업이 정상적으로 완료되었음을 관리자에게 알림
  • ROLLBACK: 트랜잭션의 작업이 비정상적으로 종료되었을 때 원래 상태로 복구

SQL, NoSQL

SQL(Structured Query Language)

DB에서 데이터를 추출하고 조작하는데에 사용하는 데이터 처리 언어

레코드=행=튜플=row

  • 도메인: 한 속성에 나타낼 수 있는 값들의 집합

NoSQL(Not only SQL)

SQL만을 사용하지 않는 DBMS

  • 장점
    1. 유연성
    1. 확장성
    2. 고성능
    3. 가용성
    4. 고도의 기능성

종류

  1. 키 값(Key-Value): App이 값 필들에 저장된 모든 데이터를 제약 없이 완변히 제어 가능

  2. 문서(Document): 반구조적 데이터의 저장, 검색, 관리에 사용, 문서에 포함할 필드를 특정할 필요 X

  3. 그래프: 데이터를 노드 및 노드 간 연결을 보여주는 관계로 구성(SNS, 예약 시스템 등)

  4. 넓은 열(Wide-Colume Store): 테이블, 행, 열 형식으로 데이터를 저장 및 관리, 열 형식을 사용하는 App에 광범위하게 배포되어 스키마 없는 데이터를 수집


트랜잭션(Transaction)

더이상 분할이 불가능한 업무처리의 단위
-> 하나의 작업을 위해 더이상 분할될 수 없는 명령들의 모음
-> 수행되어야 할 일련의 연산모음

특성(ACID)

  1. 원자성(Atomicity)

    • 트랜잭션이 DB에 모두 반영되던가 아니면 전현 반영되지 않아야 한다
  2. 일관성(Consistency)

    • 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
    • 트랜잭션이 진행되는 동안 DB가 변경되어도 트랜잭션을 진행 하기 위해 참조한 DB로 진행
  3. 독립성(Isolation)

    • 둘 이상의 트랜잭션이 동시에 실행되는 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연사에 끼어들 수 없다
  4. 영구성(Durability)

    • 결과는 영구적으로 반영되어야 한다

0개의 댓글