일단 진행시켜

[DB] Basic SQL, DB 구성 요소 본문

🗄️Data Base 아는 것도 다시보자

[DB] Basic SQL, DB 구성 요소

2024. 8. 4. 17:57

우선 db 기본에 대해 이해하고 메인을 공부해 보자.

 

 

1. DB 개론

data? 의미 있는 정보를 가진 모든 값

DB? : 통합하여 관리되는 data의 집합

 

DB Modeling?

효율적 운영과 관리를 위한 설계 과정 ➡️ 데이터 무결성

 

DBMS가 어떻게 탄생하게 된 걸까?

[파일시스템의 위기]

  • 파일 시스템의 한계?
  • 높은 데이터 종속성 → 하나만 변경해도 전체에 영향을 줌
  • 무결성 침해 → 응용 프로그램만으로는 불충분
  • 데이터 중복성 침해 우려 일관성 침해 우려

 

그래서 등장했다.

 

DB (Data Base)

 : 데이터를 중앙에서 통합하고 집중화하여 관리하는 방안

 

 

 

 

 

 

2. RDBMS 🆚 NoSQL

NoSQL?

  • Non-relational Operatinal SQL
  • insert 위주의 트랜잭션 처리
  • 속도가 빠름   큰 데이터 다루기 좋음

 

RDBMS?

  • 조인(매핑)
  • 데이터 정합성
    • 서비스 개발할 때 많이 사용 (ex. MySQL, Oracle, mongoDB + msssql)
  • 무결성

 

 

 

데이터 정합성?

 ➡️ 데이터들의 값이 서로 일치하는 상태

 ➡️anomaly 발생 = 정합성 훼손

 

데이터 무결성?

 ➡️ 데이터 값이 정확한 상태

 ➡️ 무결성을 지키는 것이 DB Modeling의 최고 목표!!

 

 

 

 

이 두 개의 차이를 보기 쉽게 표로 정리해 보겠다.

  NoSQL RDBMS
relation Non-relation relational DBMS
목적 insert 위주의 트랜잭션 처리 조인
장점 1. 데이터 유연성
2. 자유로운 데이터 구조
3. 빅데이터 처리
1. 명확한 데이터 구조(정해진 스키마에 저장)
2. 데이터 중복성 해결
단점 1. 데이터 중복 발생
2. 명확하지 않은 데이터 구조(스키마가 없기 때문)
1. join이 많으면 복잡해짐(성능저하)
2. 데이터 유연성이 떨어짐(스키마 때문에)
사용 update가 많지 않은 시스템
많은 데이터 저장해야하는 경우
데이터 구조가 명확해야 하고, 명확한 스키마가 중요한 경우
관계를 맺는 데이터가 자주 변화하는 시스템에 적합

 

 

 

 

 

 

 

이제 Basic SQL.

 

 

3. Basic SQL ➡️ SQL 유형

RDBMS의 데이터 관리를 위해 설계된 특수 목적의 프로그래밍 언어: SQL

 

DQL(데이터 질의어) - 가장 많이 쓰이는 SQL 유형
- 잘못써도 데이터 손상 없음
select
DDL(데이터 정의어) - 데이터 보관을 위한 저장형태 관리 목적 create, alter, drop
DML(데이터 조작어) - 데이터 변동 목적(트랜잭션 단위) insert, update, delete
DCL(데이터 제어어) - 사용권한 관리 및 제어 목적 commit, rollback, grant, revoke
TCL(트랜잭션 제어어) - DML을 거친 데이터의 변경사항 수정 commit, rollback

 

 

 

 

 

 

 

 

 

4. DB 구성요소

4. 1. Entity

  • 데이터 속성들을 상위의 동일한 기준/소속 기반으로 구분 → 이에 대한 대표 명칭을 부여 가능
  • 대상 데이터의 귀속이 동일한 것끼리 모아놓은 집합
  • Entity vs Table
    • entity → 구체화되지 않은, 설계 단계의 귀속집합
    • table → 실제로 생성된, 물리적 단계의 귀속집합
  • ex. 학과, 학생(학번, 이름, 소속학과,...)

 

4. 2. Attribute

  • Entity에서 관리하는 최소 단위의 정보 항목 → 데이터 저자의 가장 작은 단위
  • Attribute = Column
  • ex. 학과, 학생(학번, 이름, 소속학과,...)

 

 

4. 3. Relation

  • DB Model
  • 데이터의 상위 개념을 활용하여 매핑
  • 특징이나 구분이 동일한 것끼리 구성
  •  ex. 생년월일, 성별, 학과명 등..