[프로그래머스 데브코스] TIL - 5주차 DAY2

방울·2024년 5월 7일
0

데이터베이스와 DBMS

데이터베이스와 데이터베이스 관리 시스템(DBMS)은 데이터를 효율적으로 저장하고 관리, 검색하는데 필수적인 기술!
데이터베이스는 데이터의 집합체로, 데이터 중복을 최소화하고 데이터 관리를 최적화하기 위해 설계된다. DBMS는 이러한 데이터베이스를 쉽게 관리하고 조작하는 소프트웨어이다. 데이터의 생성, 조회, 수정, 삭제 등의 기능을 제공하며 이를 통해 데이터의 일관성과 무결성을 유지할 수 있다.

데이터베이스 장단점

장점

  1. 중앙 집중화된 데이터 저장 - 하나의 위치에서 데이터를 관리함으로써 일관성을 유지할 수 있음
  2. 데이터 접근성과 재사용성 - 데이터를 효율적으로 공유하고 재사용할 수 있어 정보의 가치를 증가시킴
  3. 데이터 무결성 - 데이터베이스의 구조와 제약 조건이 데이터의 정확성을 보장함

단점

  1. 복잡성 - 큰 규모의 데이터베이스는 설계와 관리가 복잡할 수 있음
  2. 비용 - 유지 관리와 운영에 높은 비용이 들 수 있음
  3. 보안 취약성 - 중앙 집중식 데이터는 해킹과 같은 보안 위협에 더 취약할 수 있음

DBMS 장단점

장점

  1. 효율적인 데이터 관리 - 다양한 도구와 기능을 제공하여 데이터를 효과적으로 관리할 수 있음
  2. 동시성 지원 - 여러 사용자가 동시에 데이터베이스 작업을 수행할 수 있도록 지원함
  3. 데이터 보안과 무결성 유지 - 데이터 접근 권한 관리 및 무결성 규칙을 통해 데이터를 안전하게 보호함
  4. 백업 및 복구 - 데이터의 손실을 방지하기 위해 정기적인 백업과 복구 기능을 제공함

단점

  1. 높은 비용 - 고성능 DBMS는 높은 초기 투자 및 지속적인 유지 관리 비용이 필요함
  2. 성능 문제 - 대용량 데이터나 복잡한 쿼리 처리 시 시스템의 성능 저하가 발생할 수 있음
  3. 기술적 복잡성 - 효과적인 DBMS 운영은 전문 지식을 요구하며, 복잡한 설정과 최적화가 필요함

주요 DBMS 종류

  • Oracle: 대규모 엔터프라이즈 환경에 적합한 기능을 제공
  • MySQL: 오픈 소스이며 가장 널리 사용되는 관계형 데이터베이스 관리 시스템 중 하나
  • MariaDB: MySQL과 호환되는 또 다른 오픈 소스 관계형 데이터베이스 시스템으로, 최적화된 기능과 보안 제공

운영회사는 다르지만, 데이터베이스 연산을 위해 사용되는 주요 명령어는 같다. 따라서 요구사항과 리소스 고려해서 적절한 시스템을 선택 해야할 것이다!

SQL(Structured Query Language)

관계형 데이터베이스에서 데이터를 관리하기 위한 표준 프로그래밍 언어. 주요 명령어는 다음과 같다.

INSERT 데이터베이스에 새로운 데이터 삽입
SELECT 데이터 조회
UPDATE 기존 데이터 수정
DELETE 데이터 삭제

RDBMS란?

관계형 데이터베이스 관리 시스템(Relational Databse Management System)의 약자로, 데이터를 테이블로 구성되는 형태로 저장한다. 이러한 테이블들은 서로 연결되어 있을 수 있고, 키를 사용하여 정의한다. 테이블은 열(column)과 행(row)으로 구성되며, 각 열은 특정 유형의 데이터를 나타내고, 각 행은 관련 데이터의 집합을 나타낸다.

데이터베이스 정규화(Normalization)

정규화는 데이터베이스 설계 과정에서 데이터 중복을 최소화하고, 무결성을 최대화하기 위해 데이터를 구조화하는 과정이다. 테이블을 더 작고, 관리하기 쉽게 여러 테이블로 분리하여 데이터베이스 효율성을 높인다.

정규화 과정에서의 테이블 분리는 데이터 정확성 유지되고 관리가 용이하다. 하지만 시스템 성능은 떨어질 수 있다.

데이터베이스 키(Key)

데이터베이스에서는 키(key)를 사용하여 데이터를 식별하고 조작한다. 각 키는 특정 목적을 가지고 설계된다. 아래는 여러 키 종류 중 가장 중요한 키 두 가지 개념이다.

  • Primary Key(PK)
    각 행을 고유하게 식별하는 키. 중복된 값이 없으며 NULL 값이 허용되지 않음

  • Foreign Key(FK)
    다른 테이블의 기본 키를 참조하는 키. 외래키를 통해 두 테이블 간의 관계가 형성됨

데이터베이스 관계 유형

  • 1:1
    한 테이블의 행이 다른 테이블의 단 하나의 행과만 연결되는 경우
  • 1:N
    한 테이블의 단일 행이 다른 테이블의 여러 행과 연결될 수 있음
  • M:N
    두 테이블 간 다수의 행이 서로 관련된 수 있는 경우

이제 데이터베이스와 DBMS의 차이점을 말하라고 하면 정확하게 설명할 수 있을 것 같다. 주요 개념들도 잊고 있었는데 강의를 들으며 함께 떠올릴 수 있었다.

profile
방울방울

0개의 댓글