🚩 데이터베이스(Database)

🔹DB(Database)

: 데이터를 통합하여 관리하는 데이터의 집합

🔹DBMS(Database Management System)

: 데이터베이스를 관리하는 미들웨어 시스템

🌈 데이터베이스의 분류

🌲RDBMS(Relational Database Management System)

: 데이터 테이블 사이의 키 값으로 관계를 가지고 있는 데이터베이스
: 데이터 사이의 관계 설정으로 최적화된 스키마를 설계 가능
🧷Oracle, Mysql, Postgresql, Sqlite

💭RDBMS 특징
🌙 데이터 분류, 정렬, 탐색속도가 빠름
🌙 오래 사용된 만큼 신뢰성이 높음
🌙 스키마 수정이 어려움

🌲NoSQL

: 데이터 테이블 사이의 관계가 없이 저장하는 데이터베이스
: 데이터 사이의 관계가 없으므로 복잡성이 줄고 많은 데이터를 저장 가능
🧷Mongodb, Hbase, Cassandra

🌲RDBMS vs NoSQL

데이터를 읽어올 경우 속도 빠름 ↔️ 속도 느림
데이터 테이블 사이의 관련성이 있기 때문에 RUD시 다른 테이블에 영향이 있음
↕️
데이터 테이블 사이의 관련성이 없기 때문에 RUD시 독립적이고 속도가 빠름

🪄 RDBMS : Read가 많고 데이터가 적은 경우에 사용
🪄 NoSQL : Write, Insert가 많은 경우에 사용

🚩 데이터베이스 모델링

: 데이터베이스에서의 테이블 구조를 미리 계획해서 작성하는 작업

🔹개념적 모델링

: 업무분석해서 핵심 데이터의 집합을 정의하는 과정
🧷테이블 정의

🔹논리적 모델링

: 개념적 모델링을 상세화 하는 과정
🧷테이블 간의 관계 설정

🔹물리적 모델링

: 논리적 모델링을 DBMS에 추가하기 위해 구체화하는 과정
🧷EER(Enhanced Entity-Relationship) 다이어그램

💭 EER 다이어그램
🌲실선 : 식별관계 - 부보가 있어야 자식이 생성됨
🌲점선 : 비식별관계 - 부모가 없어도 자식이 생성됨
🌲테이블 간의 관계 의미

  • 1 : N - −−⊖<−
    양쪽의 테이블이 1:N 관계를 가짐
    🧷예를 들어 교수 한명은 학생 여러 명을 담당할 수 있지만 담당하는 학생이 없을 수 있는 관계
  • 1 : N - −−⊣<−
    🧷예를 들어 교수 한명은 학생 여러 명을 담당할 수 있는 관계(반드시 학생이 있어야함, 위의 ○표시 유무 차이)
  • 1 : 1 - −−⫣−
    양쪽의 테이블이 1:1 관계를 가짐
    🧷예를 들어 학생은 하나의 학번을 가질 수 있는 관계(둘 이상은 안됨)
  • N : M - −>⊖−⊖<−
    양쪽의 테이블이 N:M 관계를 가짐
    🧷예를 들어 여러명의 학생은 여러개의 수업을 들을 수 있는 관계(학생과 수업은 없을 수 있음)
  • N : M - −>⊢−⊣<−
    양쪽의 테이블이 N:M 관계를 가짐
    🧷예를 들어 여러명의 학생은 여러개의 수업을 들을 수 있는 관계(반드시 학생은 수업을 들어야고 수업에는 학생이 있어야 함)
profile
To be Data Analysist

2개의 댓글

comment-user-thumbnail
2022년 12월 2일

안녕하세요🆙 잘보고 가용!

1개의 답글