TIL07 - 데이터베이스 개념

서동혁·2021년 9월 11일
0

Wecode-TIL

목록 보기
7/30

Database의 기초이해

데이터베이스는 컴퓨터 시스템에 저장된 정보나 데이터를 모두 놓는 집합 (하드디스크 생각)

순서

web client -> web application server -> database -> 다시 역순 (요청과 응답)

클라이언트에서 바로 데이터 베이스로 못가는이유
시스템 통신규약, 프론트에서 필요한 데이터들을 데이터베이스에 잘 쌓아놓는다고 해서 예쁘게 가공되어 전달이 안되기 때문에 web application server에서 처리함

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

  • 소프트웨어 프로그램이라고 생각
    들어온 요청을 받고 저장되어있는 데이터를 꺼내주는 역할
  • 엑셀 표, 스프레드 시트 같이 생긴것
    이와 연관된 다른 어플리케이션들을 데이터베이스 시스템(DB)라고 부른다.
  • 데이터베이스라고 말하면 실제 저장되어있는 집합+데이터 관리해주는 시스템을 합쳐서 부르는것!!

Database, DBMS 사용이유

데이터베이스

  • 데이터를 오랜기간 저장 및 보존
  • 데이터를 체계적으로 보존하고 관리
    필요할 때 언제든 원하는 자료를 쉽게 읽어내기위해
  • 표 모양으로 깔끔하게 데이터를 체계적으로 정리 보관하기위함

DBMS

  • 생산성 = 시스템 개발 과정에서의 생산성 향상(데이터검색, 추가, 삭제, 갱신)
  • 기능성 = 데이터베이스를 다루는 고급 기능 제공(복수 유저 요청대응, 대용량 데이터 저장, 고속검색, 기능 확장의 유연함)
  • 신뢰성 = 하드웨어를 여러 대로 구성하여 신뢰성을 높이는 동시에 성능 향상 도모(확장성, 요청량 분산, 데이터 추출, 데이터리스토어)

요약: 데이터베이스란 데이터를 가득 모아놓은 베이스
데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어로 사용 목적은 생산성 향상과 기능성,신뢰성 확보에있다


데이터베이스 종류

관계형 데이터베이스(RDBMS)

행과 열을 가지고 표형식 데이터를 저장
Column(열) : 테이블의 각 항목
Row(행) : 각 항목들의 실제 값

  • 하나의 컬럼에는 하나의 데이터만 들어가야 됨

  • 표를 많이 저장하고 각각 테이블에 이름을 붙여 관리.

  • SQL을 사용할 수 있는 데이터 베이스

  • Primary key : 각 로우에 있는 고유의 키(번호)
    특정 로우를 찾거나, 인용 할 수 있다.

  • 웹시스템과 연동하여 보통 예약 시스템있는 사이트에서 사용

  • SQL = 데이터베이스랑 얘기할 수 있는 언어

  • 각각 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.
    Foreign Key(외래키) : 두 테이블의 관계성을 표시하는것, 자신과 연결되어있는 pk값을 참조함

테이블 사이 관계의 종류

1.one to one (주민등록번호 생각)
테이블 A의 로우(row) 하나는 테이블 B의 로우(row) 하나와 연결된다. 반대로 테이블 B의 로우 하나도 테이블 A의 로우 하나와 연결된다.

각각의 데이터들이 서로 하나씩만 연결이 된 경우에, 해당 테이블 사이의 관계를 일대일 관계라고 부릅니다.

2.one to many (한명이 키우는 여러 반려동물 생각)
테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계
일대다, 1:N라고도 부름
3.Many To Many (한 작가가 여러 권의 책쓴거 생각)
테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계
서로 각자 다른 테이블의 여러 데이터와 연결 될 때는 두 테이블에 속한 데이터의 조합을 입력기 위한 중간 테이블 생성

1:1은 두 테이블이 서로가 서로의 한 로우에만 연결
1:N은 한 테이블의 로우 하나에 다른 테이블의 로우 여러개가 연결

관계형 데이터베이스 기능

트랜잭션

  • ACID를 보장, 일련 작업들이 마치 하나의 작업처럼 취급되어 모두 다 성공하거나 안면 모두 다 실패하는 것을 의미

    ACID

    원자성 : 작업들이 실행되다가 중단되지 않는 것을 보장하는 능력
    만원을 보냈으면 상대방이 +만원 나-만원이 되야댐. 중간 단계까지 실행되고 실패 ㄴㄴ(실패하면 다시 처음 부터)
    일관성 : 실행 완료하면 데이터베이스 상태 유지
    (통장 잔고가 있어야된다.)
    고립성 : 트랜잭션 수행 시 다른 트랜잭션 못 끼어듬
    지속성: 성공적으로 수행된 트랜잭션은 영원히 반영

0개의 댓글