[Web #5] Database 이해하기

Kayoung Kim·2021년 7월 12일
0

Web Development

목록 보기
6/18
post-thumbnail

데이터베이스(Database)

  • 데이터(Data)란 숫자, 단어, 이미지, 영상등의 형태로 된 의미 단위이다.
  • 데이터베이스는 컴퓨터 시스템에 저장된 정보나 데이터를 모두 모아 놓은 집합을 의미한다.
  • 데이터는 Database Management System으로 제어, 관리한다. 즉, 데이터가 저장된 하드웨어를 부르는 말이기도 하면서, 데이터베이스를 관리하는 시스템 자체를 통칭한다.
  • 웹 클라이언트에서 정보를 요청하면 웹 서버에서는 데이터베이스에 요청, 해당 자료를 데이터베이스에서 서버에게 넘겨주면 클라이언트에 응답하는 방식이다.

데이터베이스를 사용하는 이유

  1. 데이터를 오랜 기간 저장 및 보존하기 위해서
    메모리에 존재하는 데이터는 오래 보존되지 않음. 어플리케이션을 종료하면, 메모리 데이터는 삭제된다.
  2. 데이터를 체계적으로 보존하고 관리하기 위해
    필요할 때 언제든 내가 원하는 자료를 쉽게 읽어낼 수 있어야 의미있는 정보가 될 수 있다. 데이터베이스는 데이터를 체계적으로 정리하여 보관할 수 있다. cf. data pipeline system : 사내 디비 및 파일시스템, 외부 디비 및 에이피아이 등에서 다양한 데이터를 적절히 처리하여 서비스를 위한 데이터 허브에 저장하는 일련의 데이터 흐름
  • 단순히 데이터를 저장만 하는게 아니라 많은 요청이 왔을 때 필요한 정보를 추출할 수 있음 모든 서비스에서는 데이터베이스가 필요함.

관계형 데이터베이스(RDBMS, Relational Database Management System)

  • 데이터베이스는 관계형, 비관계형으로 나뉜다.
  • 관계형 데이터베이스는 관계형 데이터 모델에 기초를 두어 가장 많이 사용하는 데이터베이스다.
  1. 모든 데이터들은 2차원 테이블로 표현할 수 있다.
  • column(열): 테이블의 항목
  • row(행): 항목의 실제 값
  1. 테이블의 각 행은 저만의 고유 키(Primary Key)가 있다.
  • 각 행은 다른 행과 겹치지 않는, 하나의 데이터만 정확하게 지칭할 수 있는 고유 번호가 있는데, 고유키를 통해 특정 행을 찾거나 인용(reference)할 수 있다.
  1. 각각의 테이블은 서로 상호 관련성을 가지고 연결될 수 있다.
    관계형 데이터베이스라는 의미는 DB를 구성하고 있는 테이블들이 서로 상호관련성을 갖고 연결되어 있다는 의미로 각각의 테이블들은 연관된 사이!

관계 유형

  • 일대일 관계(One to One) : 하나의 A 테이블 데이터는 오로지 하나의 B 테이블 데이터와 연결된다. (ex. 유저테이블-주민등록번호 테이블)
    pk foregin key로 찾고 참조하는 컬럼은 피케이값
  • 일대다 관계(One to Many): 하나의 A 테이블 데이터는 B 테이블 여러 데이터와 연결된다.
  • 다대다 관계(Many to Many): 하나의 A 테이블 데이터는 B 테이블 여러 데이터와 연결된다. 또한, 하나의 B 테이블 데이터는 여러개의 A 테이블 데이터와 연결될 수 있다. (ex. 한 작가가 여러권의 책을 쓸 수 있다)

정규화(Nomalization)

  • 테이블 간 중복을 제거해 무결성을 유지하고 DB의 저장 용량을 줄여주는 것
  • 정규화의 단계
    제1 정규화: 테이블의 열이 하나의 값을 갖도록 테이블을 분해하는 것
    제2 정규화: 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것

SQL(Structured Query Language)

  • 데이터베이스에 명령을 실행할 수 있는 언어로 명령어를 실행하면 해당 데이터 테이블을 가져올 수 있다.

ERD 구성도로 데이터 관계 모델링

  • 스타벅스 음료 페이지를 모델링했다.
  1. 메뉴 & 카테고리
    [음료] - [콜드 브루 커피, 브루드 커피, 에스프레소, 프라푸치노, 블렌디드, 스타벅스 피지오, 티(티바나)]

  2. 카테고리 & 제품
    ['콜드 브루 커피`] - [나이트로 바닐라 크림, 나이트로 쇼콜라 클라우드, 나이트로 콜드 브루, 돌체 콜드 브루]

  3. 제품의 상세 정보
    음료 제품 하나는 설명, 음료이미지, 신상 여부 포함

  4. 하나의 음료는 여러 알러지 정보를 가지고 있을 수 있고, 동시에, 하나의 알러지 정보 또한 여러 음료를 가질 수 있다.

  5. 하나의 음료는 한가지의 영양 정보 세트를 가질 수 있다.

0개의 댓글