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

gyoeun.log💚·2022년 8월 15일
0

📖데이터베이스

목록 보기
1/2
post-thumbnail

📖 데이터베이스란?

  • 데이터베이스는 우리가 사용하는 정보의 총집합체이다.

📖 관계형 데이터베이스란?

  • DB를 구성하고 있는 테이블들이 서로 상호관련성을 가지고 연결되어있는 것을 의미한다.
  • 즉, 각각의 테이블들이 완전한 독립적이지 않고, 테이블 A와 테이블 B가 서로 연관된 사이라는 뜻이다.
✔️check
- DBMS(Database Management system)
  - 데이터를 한곳에 모아 저장소를 만들고 그 저장소 안에서 데이터를 저장, 관리 등의 기능 수행 및 공유할 수 있도록 하는 데이터베이스 관리 시스템이다.
- RDB(Relational DataBase)
  - 관계형 데이터 모델에 기초를 둔 데이터 베이스이다.
  - 모든 데이터는 2차원의 테이블 형태로 표현된다.
- RDBMS(Relational DataBase Management System)
  - RDB를 생성 및 수정하고 관리할 수 있는 관계형 모델을 기반으로 하는 DBMS 유형이다.

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

  • 데이터를 오랜기간 체계적으로 저장 및 보존하기 위해 사용된다고 볼 수 있다.
  • 그 중 관계형 데이터베이스(RDBMS)는 테이블이 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.

2. 데이터베이스 & 데이터베이스 객체

  • 데이터베이스(Schema): 데이터베이스 객체를 담는 컨테이너이다.
  • 데이터베이스 객체: 데이터베이스 내의 실체를 가지는 어떤 것이다.

👉 즉, 데이터베이스라는 컨테이너가 존재하고, 그 컨테이너 안에 2차원 테이블 객체가 존재하게 된다고 볼 수 있다.


3. 데이터베이스 구축 과정

  • 위에서 알아본 것처럼 관계형 데이터베이스(RDBMS)에서는 데이터가 여러개의 2차원 테이블에 저장되고 관리된다.

    이를 구축하는 과정은 아래와 같다.

    • STEP1. 스키마(Schema)설계
      • 웹 서비스에서 필요한 데이터를 체계적으로 저장하기 위해서 정규화된 2차원 테이블을 작성해서 구축해나가는 과정이 필요하다.
    • STEP2. 데이터베이스(Schema) 생성
      • 스키마 설계가 끝나면, 실제 물리적인 서버에 RDBMS software (ex. MySQL)를 설치하고 데이터베이스(스키마)를 물리적으로 구축하게 된다.
    • STEP3. 데이터베이스 내에 객체 생성
      • 위에서 생성한 데이터베이스, 즉 스키마 내에 데이터베이스 객체를 생성하는 것을 말한다.
      • 이는 2차원 Table, View, Index, Procedure등의 데이터베이스 객체를 작성하게 된다.

4. 관계형 데이터베이스 특징

  • 관계형 데이터베이스에서 모든데이터는 2차원 테이블로 표현 가능하다.
  • 각 로우는 저만의 고유 키(Primary Key)가 있다.
  • Primary Key를 통해 특정 로우를 찾거나, 인용(reference)할 수 있다.

마지막, 테이블끼리의 관계 종류

  • 일대일 관계

    • 하나의 A테이블 데이터가 오로지 하나의 B 테이블 데이터와 연결될 수 있다.
      ex. 사용자의 이름이 담긴 테이블과 주민등록번호가 담긴 테이블이 나뉘어져 있다고 가정할 때, 주민등록번호는 한 사람당 하나만 가지고 있을 수 있으니 이를 연결할 때 1:1 연결만 가능하다.
      즉, 이를 일대일 관계라고 볼 수 있다.
  • 일대다 관계

    • 하나의 A테이블 데이터는 B테이블의 여러 데이터와 연결될 수 있다.
      ex. 동물병원에서 반려견의 주인 이름 테이블과 반려견 이름 테이블이 나뉘어져 있고, 한명의 주인이 여러마리의 반려견을 키우고 있다고 가정할 때, 두개의 테이블 내 데이터들을 Primary Key와 Foreign Key로 연결시킬 수 있다.
  • 다대다 관계

    • A 테이블의 여러 데이터와 B 테이블의 여러 데이터를 연결시킬 수 있다.
    • 서로 각자 다른 테이블의 여러 데이터와 연결 될 때에는 두 테이블에 속한 데이터의 조합을 입력하기 위한 중간테이블이 생성된다.
      ex. 작가이름 테이블과 책정보 테이블이 나뉘어져 있고, 한명의 작가가 여러 책을 냈다고 가정할 때, 중간테이블을 만들고 그 안에 Foreign Key들로 연결시킬 수 있다.

👉 다시한번 짚고 넘어가기!

  • 정규화 제 1법칙
    데이터베이스 테이블에는 두개의 데이터가 한 칸에 들어갈 수 없다.
  • 1:1은 두 테이블이 서로가 서로의 오로지 한 로우에만 연결되어야 한다.
  • 1:N은 하나의 다른 테이블의 로우 여러개가 연결될 수 있다.
  • 관계성을 항상 먼저 생각해야한다! (과연 추후에도 1to1관계인가 아니면 1toN관계인가)

0개의 댓글