데이터베이스란?
데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체이다.
데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 함.
데이터베이스의 특징
- 실시간 접근성
- 지속적인 변화
- 동시 공유
- 내용에 대한 참조
- 데이터 논리적 독립성
데이터베이스의 장단점
장점
- 데이터 종속성이 최소화된다.
- 데이터 중복성이 감소한다.
- 데이터 동시 공유가 가능하다.
- 데이터 일관성 유지가 쉽다.
- 데이터 무결성 유지가 쉽다.
- 데이터 보안이 향상된다.
- 표준화된 데이터 접근이 가능하다.
- 데이터 가용성이 향상된다.
- 응용 프로그램의 개발 비용이 감소한다.
단점
- 시스템 운영비용이 증가한다.
- 시스템 관리 부담이 높아진다.
- 시스템 취약성이 증가한다.
RDBMS - Relational DBMS
특징
데이터끼리 연관을 지어서 찾는다.
장점
중복됨에 따른 불편함을 해결해줄 수 있다.즉, 테이블을 쪼개서 (정규화) 중복을 없애준다.
primary key(PK) : 해당 테이블의 각 row(행)을 유일하게 구분할 수 있는 key
foreign key (FK) : 다른 테이블의 데이터을 받아오기 위한 키 (타 테이블 PK)
테이블간의 연관관계
예시 1 ) 게시판
테이블이 하나일 때는 같은 user가 작성한 경우 이름 생년월일이 중복되는 것을 확인할 수 있다. 아래와 같이 테이블을 분리하면 중복되는 값과 종속들을 없앨 수 있다.
아래와 같이 나눴을 때, 다음 상황을 생각해보자. 나중에 성은 user가 이름을 바꾼다면 모든 성은을 찾아 하나하나 바꿔야할 것이다.
하지만 아래처름 FK로 userid를 연결해놓으면 user 테이블에서 한번만 변경해도 된다. 또한 user가 다른 테이블에도 있다면, id만 연결되어 있으므로 user 테이블만 수정하면 되므로 데이터의 일관성이 더욱 잘 유지될 수 있다.
연관관계 - 게시글 / 사용자
- 사용자 1명 : 게시글 N => 1:N (O)
- 게시글 1개 : 사용자 1 => 1:1
- 게시글 테이블을 보고 사용자 데이터를 확인 (o) : 연관관계
- 사용자 테이블을 보고 게시글 데이터 확인 (x)
예시2) 유튜브 채널
사용자는 여러개의 채널을 만들 수 있으며 이에 따라 user_id, pw,name이 중복되고 있다.
테이블을 나눔으로써, 중복이 해소된다.
연관관계 - 채널 / 사용자
- 사용자 1명 : 채널 N => 1:N (O)
- 채널1개 : 사용자 1 => 1:1
- 채널 테이블을 보고 사용자 데이터를 확인 (o) : 연관관계
- 사용자 테이블을 보고 채널 데이터 확인 (x)
출처 : https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4,
'타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) > TIL' 카테고리의 다른 글
웹풀사이클 22일차 - workbench로 유튜브 채널, user (0) | 2023.12.23 |
---|---|
웹 풀사이클 21일차 - MARIADB로 게시판 만들기 (0) | 2023.12.22 |
웹풀사이클 18일차 - 객체, 유튜브 채널 api 설계, (2) | 2023.12.17 |
웹풀사이클 17일차 - 핸들러, forEach/find, 예외처리(status), router, 유튜브 회원 api 만들기 (0) | 2023.12.15 |
웹풀사이클 16일차 - forEach, map, Delete, put, 리팩토리 (0) | 2023.12.14 |