12.13 TIL

민규·2022년 12월 13일

Database
- 데이터베이스는 컴퓨터 시스템에 저장된 정보나 데이터를 모두 모아 놓은 집합을 의미한다.
데이터들은 DBMS(Database Management System)으로 제어 및 관리한다.

Web Client -> API -> database 다시 backward

Database를 사용하는 이유

Database가 아니라 서버에 데이터를 저장하면 안될까?

-> 서버에도 저장할 수 있지만, DBMS만큼 효율적으로 관리하기가 쉽지 않음.
-> 데이터는 여러 서비스에 걸쳐 사용될 확률이 매우 높은데, 각 서버가 데이터를 모두 가지고 있다면, 서버마다 다른 데이터를 가지게 되어 문제가 생길 수 있음.

데이터는 체계적으로 보관하여 관리해야한다.

관계형 데이터버에스 (RDBMS)


각각의 데이터들이 서로 상호 관련성을 가진 형태를 표현한 것

관계형 데이터베이스의 특징
모든 데이터들은 2차원 테이블(table)로 표현할 수 있다.
테이블의 각 행(row)은 자신만의 고유 키 (primary key)가 있다
각각 테이블은 서로 상호 관련성으로 연결될 수 있다.

  • 테이블의 각 행(row)는 자신만의 고유 키(primary key)가 있다.

  • 고유 키는 절대 중복되어서는 안되는 값이다.

  • 각 로우는 다른 로우와 겹치지 않는, 하나의 데이터만 정확하게 지칭할 수 있는 고유한 번호를 갖고 있다.

  • 고유한 번호, 즉 primary key를 통해 특정 로우를 검색하거나 참조(reference)할 수 있다.

    상호 관련성 - 관계 유형


    일대일 관계 One to One


    일대다 관계 One to Many

    ex. 인스타그램 포스트도 일대다
    인스타그램 포스트에 달리는 댓글도 일대다


    다대다 관계 Many to Many

    ex. 한 작가는 여러 권의 책을 쓸 수 있습니다
    한 책에도 작가는 여러명이 될 수 있습니다.

    데이터 베이스에서 김코드, 유개발 이라고 저장하게 된다면 컴퓨터 입장에서는 "김코드, 유개발" 하나의 스트링으로 정의하게 된다.

    항상 각각의 데이터가 될 수 있도록 정규화(Normalization)를 시켜줘야한다.
    ** 하고자 하는 액션에 항상 질문이 있어야한다

    PK (primary Key)
    FK (foregin Key) 참조 키

    일대일은 두 테이블이 오로지 서로의 한 로우에만 연결되어야만 한다.
    일대다는 한 테이블의 로우 하나에 다른 테이블의 여러 로우가 연결될 수 있다.

    서로 각자 다른 테이블의 여러 데이터와 연결될 때에는 두 테이블에 속한 데이터의 조합을 입력하기 위한 중간 테이블이 생성됩니다.

    타임스태프

    만약에 한번에 많은 정보를 저장할때는 (img and string) 한꺼번에 저장해주면 된다 예를 들면 이미지 + 글 + 이미지 + 글 ... 이렇게 구현됬을때
    이미지는 url 로 써주고 글을 써주고를 반복해주면 된다.

profile
분발해 나의 뇌

0개의 댓글