오늘은 RDM (관계형 데이터베이스) SQL과
ORM과 Prisma에 대해서 배웠다.
오늘은 RDM, SQL에 대해서 정리
01. 관계형 데이터베이스 (RDB)
각 데이터를 ‘테이블’이라는 표형태의 구조에 저장합니다. 여기서, 각 ‘테이블’은 여러 정보를 저장하며, ‘테이블’간에 연관 관계를 설정하여, 여러 테이블에 분산된 데이터를 서로 연결하여 관리할 수 있습니다.
관계형 데이터베이스와 비관계형 데이터베이스의 개념
MongoDB는 비관계형 데이터베이스(NoSQL)에 해당
- 특징 : 데이터형식이 자유로움
- 저장(Write)과 읽기(Read) 작업이 더욱 빠르며, 복잡한 비즈니스 로직 없이 주로 데이터 읽기와 쓰기에 중점을 둔 서버에서 주로 사용
- 빅데이터 환경이나 단순 페이지뷰가 많은 어플리케이션에서 주로 사용
MySQL이 바로 관계형 데이터베이스(RDB)에 해당
- 특징: "테이블" 이라는 개념이 존재합니다. 여기서 테이블이란, 여러개의 ‘열(column)’과 ‘행(row)’을 가지는데, 이는 저희가 많이 사용한 엑셀의 표와 유사한 형태
- 한 가지 주목해야 할 점은 이 테이블(표)들 간에는 서로 연관 관계(Relationship)를 가질 수 있다는 것입니다. 이러한 관계를 통해 더욱 복잡한 쿼리를 작성할 수 있고, 바로 이 점이 “관계형 데이터베이스”라는 이름의 유래가 된것
-특히 보안이 중요한 기관이나, 은행과 같은 안전성을 중시하는 회사들
02. SQL (Structured Query Language)
SQL : 데이터베이스에서 사용되는 생성, 삽입, 조회 명령문
SQL 제약조건
제약 조건(Constraint)은 각 컬럼들간의 제한사항을 관리하고, 조건을 위반하는 데이터를 방지하여 데이터베이스의 무결성(Integrity)을 보장하는 규칙
SQL 제약조건 4가지
- 고유(Unique) 제약 조건
- NULL 제약 조건
- 기본 키 (Primary Key) 제약 조건
- 외래 키 (Foreign Key) 제약 조건
외래키 제약 조건
- 외래 키(Foreign Key) 제약 조건은 테이블과 다른 테이블간의 관계를 맺을 때 사용하는 제약 조건
- 데이터베이스를 설계할 때 가장 많은 고민을 하게 될 테이블 간의 관계를 설정하는 조건
- 한 테이블의 컬럼(Column)이 다른 테이블의 특정 행(Row)을 참조하도록 설정하는 조건.
연관 관계는 대표적으로 3가지의 형태로 표현할 수 있습니다.
- 1:1 - 1명의 사용자(
User
)는 1개의 사용자 정보(UserInfo
)를 가질 수 있다.
- 1:N - 1명의 사용자(
User
)는 여러개의 주문(Order
)을 할 수 있다.
- N:M - 여러명의 학생(
Student
)은 여러개의 학원(School
)을 등록할 수 있다.
외래키 제약 조건 심화
외래 키의 경우 다른 테이블과 관계를 맺고 있는 참조 데이터가 삭제(DELETE)또는 수정(UPDATE)될 때 어떤 행위를 해야하는지 설정할 수 있습니다. 이런 행위를 수행하는 조건을 연계 참조 무결성 제약 조건이라고 정의합니다.
DB 설계를 할 때, flow
1. 일단 각 주체의 테이블 설계가 필요
2. 연관관계를 고민
3. ERD : 연관관계를 다이어그램으로 표시
![ERD](https://velog.velcdn.com/images/devjennie/post/e240021a-f7b5-4117-9b1d-140b4378506b/image.png)