TIL59. Database

Jaeyeon·2021년 3월 22일
0
post-thumbnail

세션 진행 멘토님: 지훈님

데이터베이스란?

  • 데이터베이스란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는
    데이터의 체계적인 집합을 의미한다.
  • 데이터를 저장하는 곳
  • 데이터를 오랜기간 저장하고 보존하기 위해 사용

SQL

Structured Query Language

SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해
설계된 특수 목적의 프로그래밍 언어이다.

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

  • Relational DataBase Management System
  • 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템
  • Mysql , postgreSQL, Oracle DB

Primary key (PK)

  • 각 엔티티를 식별할 수 있는 대표키
  • 테이블에서 중복되지 않는(Unique) 값
  • Null일 수 없다.
  • 보통 테이블을 만들면 첫 번째는 primary key이자 auto increment되는 id를 넣게 된다.

Foreign key (FK)

  • 테이블과 테이블을 연결할 수 있는 수단이다.
  • 한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을 식별할 수 있는 키를 말한다.
  • 다른 테이블의 기본키를 참조한다.
  • fk name은 보통 참조되는 table의 이름에 언더바 (_)를 붙인다.

테이블끼리의 관계

One to one

테이블 A의 로우와 테이블 B의 로우가 정확히 1:1로 매칭되는 것.
예를들어 로그인 데이터를 가진 테이블과 유저의 프로파일을 가진 테이블이 있을 때,
한 유저는 하나의 프로파일 데이터와만 매칭된다.

또하나의 예를 들자면, 우리나라에서 결혼제도는 일부일처제입니다.
즉, 한 남자는 한 여자와, 한 여자는 한 남자와 밖에 결혼을 할 수 없습니다.
법적으로 남편을 또는 부인을 2명 이상 둘 수 없습니다.
이러한 관계를 One to one이라고 합니다.

One to many

하나의 주체가 여러개의 상태값을 가질 수 있는 형태를 말한다.
예를 들어 아이디 하나에 여러가지 주문이 있거나, 한 카테고리에 여러 제품이 들어있는 것이다.
one to one과 다르게, 여러 개의 orders table이 하나의 user를 바라보게 된다.

부모 테이블의 PK를 자식 테이블에 FK로 집어 넣어 관계를 표현한다.

즉 부모 테이블(1)에서는 내 자식들이 누구인지 정보를 넣을 필요가 없고, 자식 테이블(N)에서만 각각의 자식들이 자신의 부모 정보(FK)를 넣음 으로써 관계를 표현할 수 있다.

부모와 자식 관계라고 생각하시면 됩니다.
부모는 자식을 1명만 낳을 수도 있고, 2명, 3명, 4명, 10명 그 이상도 낳을수 있습니다.
DB에서는 이를 부모가 자식을 소유한다고 표현합니다.
반대로 자식 입장에서는 부모( 어머니, 아버지의 쌍 )를 하나만 가질 수 밖에 없습니다.
이러한 관계를 One to many 관계라고 하며, 계층적인 구조로 이해할 수도 있습니다.

Many to Many

테이블 두 개의 관계를 참조하는 또 하나의 테이블이 있는 상황이다.

또 하나의 예를 들자면, 쇼핑몰에서 회원과 상품이 관계를 맺을 수 있습니다.
한 회원은 쇼핑몰의 여러 상품들을 가질 수 있습니다.
청바지, 모자, 티셔츠, 남방 등... 다 제가 가질 수 있죠.
반대로 한 티셔츠도 여러 회원들을 가질 수 있습니다.
하나의 티셔츠를 나도 친구도 부모님도 가질 수 있습니다.
이처럼 관계를 맺은 두 엔티티가 서로 많이 가질 수 있을 때, 이를 Many to many라고 합니다.

비관계형 데이터베이스(No SQL)

  • MongoDB , Redis
profile
생각하는 개발자 되기

0개의 댓글