데이터베이스의 필요성

wltjd1688·2025년 2월 24일

풀사이클

목록 보기
23/74

데이터베이스와 DBMS

데이터베이스

데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스라고 한다.
데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다.

DBMS

우리는 데이터베이스를 운영하고 관리하기 위한 DBMS(DataBase Management System)를 통해 데이터베이스를 사용한다.요즘 나오는 데이터베이스는 대부분 DBMS이다.
(ex. ORACLE, MySQL, MariaDB)
db순위

SQL

SQL은 데이터베이스에 연산을 요청하기 위해 사용되는 언어로 데이터를 생성, 조회, 수정, 삭제 등과 같은 기능을 수행할 수 있다. CRUD형태의 데이터 연산을 알면 좋다.

RDBMS

사람은 보통 마인드맵 형태로 기억을 하기에 이와 비슷한 형태인 "관계"지향적 데이터베이스를 사용한다. 이걸 RDBMS(Relational DBMS)라고 한다.
ERD가 빛을 발휘하는 때는, 연관된 테이블이 2개 이상일때이다.
중복되는 개념이 서비스를 운영하면서 크리티컬한데, 이걸 보완해주는게 RDBMS이다.
이를 위해 테이블을 쪼갠다(정규화를 한다)를 해서 데이터의 중복을 방지한다.

정규화의 장단점

정규화는 데이터 중복을 방지하고, 데이터의 무결성을 보장하기 위해 테이블을 분리하는 과정을 말한다.
이걸 하는 이유는 데이터 중복은 db의 용량을 차지하고, 우리는 DB를 돈주고 사용하기 때문이다.

  • Primary Key: PK (기본키)
    해당 테이블의 각 row(행)을 유니크(=유일)하게 구별할 수 있는 key값

  • Foreign Key: FK (외래키)
    A테이플에서 B테이플의 데이터를 찾아가고 싶을 때, 사용하는 key값
    [최대한 B테이블의 PK값을 A테이블의 FK로 쓰는 것이 이상적이다]

장점: 중복이 최소화하여 데이터의 일관성과 무결성을 유지한다.
단점: 특정 값을 찾기 위해서 테이블을 조인(join)해야 하는 경우 성능 저하가 발생한다.
=> 최근에는 데이터 모델링을 통해 이걸 해결할 수 있다.

ERD설계 예시


데이터베이스 “테이블 간 어떤 관계를 가지고 있는지” 연관관계는 1:1, 1:N, M:N 관계 있다.

- 게시글 vs 사용자
1) 사용자 1명 당 게시글 1개, n개 => 당근빠따 n개지		1:N
2) 게시글 1명당 -> 사용자는 1명				1:1, 이유만 있다면 이걸로 해도됨, “명분”

게시글 - 사용자 테이블 분리
- 게시글 테이블을 보고 사용자 데이터를 확인  => 이게 게시글과 사용자 간의 연관 관계를 나타내줄 수 있다.
- 사용자 테이블을 보고 게시글 테이터를 확인 X

데이터 베이스 설계시 양쪽 테이블의 관계를 충분히 고민해서 ERD를 그리는게 중요하다.
현업에서는 회사에 "DBA"분들이 있다면 자문을 구할 수 있다.
없이 구현하게 되면 구현 단계에서 SQL이 복잡해지는 불쌍사가 발생할 수 있다. 이럴때는 설계를 재검토 하여 뜯어 고쳐야한다.


예상 면접질문

해당 내용만의 장점과 특징이 뭔지를 생각해서 답변하기

  • Q: 데이터베이스의 장점이 뭔가요?
    A: 데이터 중복을 최소화하여 비용적인 절감과 효율적인 데이터 관리가 가능합니다. 또한 대규모 데이터를 체계적으로 관리할 수 있어 빠른 데이터 연산과 검색이 가능합니다.

  • Q: RDBMS를 쓰는 이유가 뭔가요?
    A: REBMS는 관계형 모델을 기반으로 하기에 테이블 간의 관계를 명확하게 정의할 수 있습니다. 이는 데이터의 구조화와 정규화를 통해 중복 데이터를 제거를 도와줍니다.

출처

profile
일단 해!!!!

0개의 댓글