고양이와 코딩
[웹 풀사이클 데브코스 TIL] - 6주차 Day 1 - DBMS 알아보기 본문
데이터베이스 관리 시스템 - DBMS (DataBase Management System)
DBMS는 데이터를 구조화하고 저장하며 사용자들이 보다 편리하게 데이터베이스를 사용할 수 있게 해주는 소프트웨어 시스템입니다.
데이터베이스의 생성, 조작, 관리, 업데이트 및 검색 시스템을 제공하여 데이터의 효율적인 관리를 가능하게 해 줍니다 !
DBMS의 장점
- 데이터의 중앙 집중화
: DBMS를 사용하면 데이터가 중앙 집중화 되어 여러 사용자가 동시에 데이터를 공유하고 업데이트 할 수 있습니다. - 데이터 일관성
데이터베이스 시스템은 데이터의 일관성을 유지하여 데이터의 정확성과 신뢰성을 보장합니다. - 데이터 보안
DBMS는 데이터에 대한 접근 권한을 관리하여 민감한 정보(개인정보 등..)을 보호할 수 있습니다. - 데이터 무결성
데이터베이스는 무결성 규칙을 준수하여 데이터의 무결성을 보장합니다. - 데이터의 백업, 회복
DBMS는 데이터의 백업 및 복구 기능을 제공하여 데이터 손실을 방지합니다.
2023년 기준 DBMS 순위는
1위 Oracle
2위 MySQL
3위 Microsoft SQL Server 네요 👾
RDBMS - 관계형 데이터베이스 관리 시스템
RDBMS는 관계형 데이터 모델에 기초하여 데이터를 구조화하고 저장하는 DBMS의 한 유형 입니다.
데이블 형태로 데이터를 저장하며, 테이블 간의 관계를 정의해 줍니다.
ACID 트랜잭션을 지원하여 데이터 무결성과 안정성을 보장해 줍니다!
RDBMS의 장점
- 데이터 일관성과 무결성
RDBMS는 데이터의 일관성과 무결성을 유지 해 주고, 관련된 데이터를 연결하여 중복을 최소화합니다. - 데이터 검색 및 질의
SQL구문을 통해 간단하고 효율적으로 데이터를 검색하고, 복잡한 질의를 수행 할 수 있습니다. - 데이터 모델링 용이성
테이블 형태로 데이터를 구조화하고 관계를 설정하기 때문에 데이터 모델링이 상대적으로 쉽고 직관적입니다. - 다중 사용자 지원
여러 사용자가 동시에 데이터베이스에 접근하여 작업할 수 있습니다. - 데이터 보안
접근 제어 및 권한 관리를 통해 데이터 보안을 유지할 수 있습니다.
- 기본 키(Primary Key - PK)
→ 테이블 내의 각 행을 고유하게 식별하는 데 사용되는 고유한 식별자로, 이 값은 중복될 수 없으며, NULL값일 수 없습니다. - 외래 키(Foreign Key - FK)
→ 외래 키는 한 테이블의 필드로, 다른 테이블의 기본 키와 관련된 열입니다. 다른 테이블의 레코드와 관계를 나타내며, 데이터 무결성을 유지하는 데 사용됩니다. - 제약 조건(Constraints)
→ 제약 조건은 데이터베이스에서 특정 데이터 값의 유효성을 지정하거나 데이터 간의 관계를 정의하는 규칙입니다.- 기본 키 제약 : 기본 키가 각 행을 고유하게 식별하도록 지정합니다.
- 외래 키 제약 : 외래 키가 다른 테이블의 기본 키와 간계를 유지하도록 지정합니다.
- 고유 제약 : 열의 값들이 유일하게 서로 다르도록 지정합니다.
- 체크 제약 : 특정 조건을 충족하는 데이터만 허용하도록 지정합니다.
- NULL 제약: 열에 NULL 값을 허용하지 않도록 지정합니다.
정규화
정규화는 데이터 중복을 최소화하고, 삽입, 갱신, 삭제 등의 이상 현상을 방지하기 위해 데이터베이스를 설계하고 구조화 하는 과정입니다
데이터를 더 작은 논리적 단위로 나누어 효율적인 데이터베이스를 구축합니다!
- 삽입 이상 : 데이터를 삽입할 때 원하지 않는 정보가 같이 삽입되어 불필요한 데이터가 자원을 낭비하는 경우입니다.
- 삭제 이상 : 특정 값을 삭제할 때 유지되어야 하는 정보까지 같이 삭제되는 경우입니다.
- 갱신 이상 : 데이터를 수정할 때, 일부만 수정되어 정보가 불일치하거나 모순되게 되는 현상 입니다
정규화에는 단계가 있습니다
1차 정규화 (1NF) : 데이터 중복 최소화를 위해 열 값들을 원자적으로 분리하여 테이블을 구성합니다.
2차 정규화 (2NF) : 1차 정규화 조건을 만족하면서 완전 함수 종속을 만족하도록 테이블을 분해합니다. (부분적 종속 제거)
3차 정규화 (3NF) : 2차 정규화를 만족하면서, 이행적 함수 종속을 제거하고 모든 열이 후보 키에 직접적으로 종속되도록 합니다.
BCNF : 제3 정규화를 만족하면서 모든 결정자가 후보키가 되도록 테이블을 분해하는 것.
위의 그림은 이미 BCNF를 만족하고 있습니다 ! (و ˃̵ᴗ˂̵)و
'데브코스 TIL' 카테고리의 다른 글
[웹 풀사이클 데브코스 TIL] 6주차 Day 3 - MySql workbench를 사용해 보자 (0) | 2023.12.20 |
---|---|
[웹 풀사이클 데브코스 TIL] 6주차 Day 2 - 데이터베이스 생성 실습 (0) | 2023.12.19 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 5 - REST API 개발 실습 (2) (1) | 2023.12.15 |
[웹 풀사이클 데브코스] REST API 개발 (0) | 2023.12.14 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3) (0) | 2023.12.13 |