📚요약
지난 시간은 지금까지 배웠던 부분에 대해 과제를 통해 복습하는 시간을 가졌습니다. 이번 시간은 DBMS가 무엇인지 배우고, 테이블을 만드는 방법을 배우고 미니 프로젝트(Library)에 적용해 보겠습니다. 추가로 mysql workbench 설치까지 하고 마무리하겠습니다.
📖DBMS
DBMS란 DataBase Management System의 약자로 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
📄RDBMS
RDBMS란 기존 DBMS에서 Relational이란 단어가 추가된 것으로 관계형 모델을 기반으로 하는 데이터 베이스 관리 시스템
쉽게 이야기하면 테이블에 데이터를 저장하고 테이블들 사이에 관계가 존재한다라고 이해하면 됩니다.
RDBMS의 장점
- 제약 조건과 규칙(PK, Null 구분, FK 등)을 사용해 데이터 일관성 및 무결성 강화
- SQL의 사용으로 데이터 검색 및 조작의 단순성
- 쉬운 수직, 수평 확장과 다양한 최적화 기술(인덱싱, 캐싱 등)을 이용한 확장성 및 성능
- 외부에 영향을 주지 않는 스키마의 변경과 다양한 데이터 유형으로 인한 유연성과 적응성
- 내장 기능과 도구로 지원되는 보안 및 규정 준수
- 다양한 RDBMS로 인한 강력한 생태계와 쉽게 통합할 수 있는 호환성
📄PK & FK
PK(기본키)는 행(레코드, 튜플)을 구분하기 위한 열(속성)로 고유한 값을 사용합니다. 예를 들어 주민등록번호, 중복이 불가능한 id 등이 있습니다. FK(외래키)는 다른 테이블의 PK를 참조해 서로 다른 테이블 간의 관계를 만드는 데 사용합니다.
📄데이터 중복과 정규화
정규화(Normalization)란 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스로 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것이 목표이다.
정규화는 1NF(제1 정규화)부터 2NF, 3NF, BCNF(보이스-코드 정규화), 4NF, 5NF, 6NF까지 나왔습니다.
📄연관관계
연관관계는 테이블 사이의 관계를 의미하는데 '1:1', '1:N', 'M:N' 관계가 있습니다.
- 1:1 관계 : 사람과 주민등록번호 테이블이 있다. 한 사람이 하나의 주민등록번호만 가질 수 있고 하나 이상을 가질 수 없는 경우를 말한다. 보통 이 경우에는 사람 테이블에 주민등록번호를 열(속성)으로 가져가도 문제는 없다.
- 1:N 관계 : 사람과 휴대폰 테이블이 있다. 한 사람은 여러 휴대폰을 가질 수 있지만, 하나의 휴대폰을 여러 사람이 가질 수 없는 경우를 말한다.
- M:N : 학생과 강의 테이블이 있다. 한 학생은 여러 강의를 들을 수 있고, 한 강의는 여러 학생이 참여할 수 있는 경우를 말한다. 서로가 서로한테 1:N관계를 가지고 있다고 볼 수 있다.
📖실습(Library)
책 테이블
| book_id | book_name | publisher | publish_date | librarian_id | librarian_pw | librarian_name |
| 1 | books | pbBook | 2024.05.07 | nulzi123 | 1234 | nulzi |
| 2 | boks | pbbooK | 2020.05.07 | nluzi123 | 1234 | nluzi |
↓
책 테이블
| id | name | publisher | publish_date | librarian_id |
| 1 | books | pbBook | 2024.05.07 | nulzi123 |
| 2 | boks | pbbooK | 2020.05.07 | nulzi123 |
사서 테이블
| id | pw | name |
| nulzi123 | 1234 | nulzi |
기존 책 테이블 하나로 책의 정보와 그 책을 관리하는 사서의 정보가 모두 담겨있습니다. 이때 행(레코드, 튜플)의 수가 많아지면 사서의 정보가 중복이 될 것입니다. 중복을 없애기 위해서 사서와 책을 분리했습니다. 분리되면서 사서의 비밀번호와 이름이 사라지면서 중복이 줄어든 것이 보입니다. 정규화를 이용하면 이와 같이 중복을 줄이며 테이블을 작게 분리할 수 있습니다.
📖mysql workbench 설치
지금까지는 docker의 mariadb를 이용해 CLI로 작업을 진행했는데 더 명확하게 보기 위해서 편리한 도구인 mysql workbench를 설치하겠습니다. 공식 홈페이지에서 다운로드할 수 있습니다. 실제 연결은 다음 시간에 진행하겠습니다.
다음 시간에 계속...
출처 & 참고
김송아 강사님의 강의
관계형 데이터 베이스 관리 시스템의 7가지 장점, 6 민, 2024.05.07
'개발 > 프로그래머스 데브코스' 카테고리의 다른 글
| 프로그래머스 데브코스 23일차 with. TS 웹 풀스택 (0) | 2024.05.09 |
|---|---|
| 프로그래머스 5주차 회고 with. TS 웹 풀스택 (0) | 2024.05.07 |
| 프로그래머스 데브코스 21일차 with. TS 웹 풀스택 (0) | 2024.05.06 |
| 프로그래머스 데브코스 20일차 with. TS 웹 풀스택 (0) | 2024.05.03 |
| 프로그래머스 데브코스 19일차 with. TS 웹 풀스택 (0) | 2024.05.02 |