Language/SQL(MySQL)

[DB] SQL 개요

S_sun 2024. 5. 28. 19:44
  • 정형 데이터 (Structured Data)
    • 고정된 필드에 저장된 데이터
    • RDBMS, 엑셀
  • 반정형 데이터 (Semi-Structured Data)
    • 고정된 필드에 저장되어 있지는 않지만, 메타데이터나 스키마 등을 포함하는 데이터
    • XML, HTML, JSON, 이메일
  • 비정형 데이터 (Unstructured Data)
    • 고정된 필드에 저장되어 있지 않은 데이터
    • 텍스트, 이미지, 동영상, 음성 데이터

1. Database

  • 정형 데이터 (Structured Data)를 다룸
  • 데이터의 집합
    • 서로 성향이 비슷한 것들끼리의 모음

1-1. Database 특징

  • 다양한 어플리케이션에서의 독립성
  • 실시간 접근성
  • 동시공유
  • 지속적인 업데이트
  • 참조


2. DBMS(Database Management System)

  • Oracle, MySQL 등

2-1. DBMS 기능

  • DB 구축
  • DB 정의
  • DB 조작
  • DB 공유
  • DB보호
  • 권한제어
  • 유지보수

2-2. DBMS 유형

  • Relational DBMS (RDBMS)
    • 관계형 데이터베이스 : DB 끼리 관계
    • 비용이 들고 데이터량이 많아지면 속도 저하
    • Oracle, MySQL, PostgreSQL
    • Relational, Analytical(OLAP)
  • NoSQL DBMS
    • 비관계형 데이터베이스
    • 비용이 저렴하고 데이터량이 많아도 속도가 빠름
    • MongoDB, Hbase, DynamoDB
    • Column-Family, Graph, Document, Key-Value
SQL NoSQL
관계형 비관계형
구조화된 쿼리 언어를 사용해 미리 정의된 스키마를 가짐 비정형 데이터에 대한 동적 스키마 존재
수직 확장이 가능 scale up 수평 확장이 가능 scale out
테이블 기반 Document, 키-값, 그래프, 와이드 컬럼 저장소
다중 레코드 트랜잭션에 좋음 문서, JSON 같은 비정형 데이터에 좋음
다중 레코드 ACID 트랜잭션을 지원 다중 레코드 ACID 트랜잭션 미지원 (MongoDB 같은 일부는 지원)


3. 데이터 모델링 & ERD

  • 효율적으로, 최적화해서 데이터 저장 및 관리

3-1. 데이터 모델링 순서

1) 업무파악 (요구사항 수집 및 분석)

  • 업무를 데이터화하여 모델링 할 것인지에 대한 요구사항 수집

2) 개념적 데이터 모델링 (ERD 작성)

  • Entity 도출해 ERD 작성
  • 객체 간의 상관관계 표시

3) 논리적 데이터 모델링

  • DBMS에 맞게 Table, 변수, type 설계 및 정규화 ⇒ 정의

4) 물리적 데이터 모델링

  • 선택한 Database에 실제 테이블을 만드는 작업
  • 제약조건 정의
  • 객체의 상관관계 정의

[그림 1] 데이터 모델링 순서


3-2. ERD (Entity-Relation Diagram)

  • Entity == Table
    • 학생 : Entity
  • Attribute
    • 학번, 이름 : Attribute
  • PK (Primary Key)
    • 유일한 식별자
  • FK (Foreign Key)
  • Domain
    • type : int, varchar, char 등
  • 제약조건 (NOT NULL)
    • NULL 허용 유무
  • Relation
    • 식별관계
      • 부모 자식 관계에서 자식이 부모의 PK를 FK로 참조해서 자신의 PK로 설정
      • 선으로 표시
      • NULL 미존재

  •  
    • 비식별관계
      • 부모 자식 관계에서 자식이 부모의 PK를 FK로 참조해서 일반 속성으로 사용
      • 점선으로 표시
      • NULL 존재

 

 


4. ⭐ 데이터베이스 정규화

  • 데이터의 중복을 최소화하게 구조화하는 프로세스
  • 불필요한 데이터 제거, 데이터의 중복을 최소화 함으로써 저장공간이나 자원을 효율적으로 사용하기 위함
  • Insert, Update, Delete 실행 시, 발생할 수 있는 이상현상 방지

1) 제1정규형

  • 하나의 컬럼에 하나의 값만 기입


2) 제2정규형

  • 제1정규형을 거친 테이블 나누기
  • 중복데이터 제거됨


3) 제3정규형

  • 제2정규형을 거친 테이블 나누기
  • 여러 정보가 포함되어 있는 것을 나누기


4) BCNF정규화 (선택)


5. SQL (Structured Query Language)

  • DDL (Data Definition Language)
    • 테이블 정의, 수정, 삭제
    • Create, Alter, Drop, Rename, Truncate
  • DML (Data Manipulation Language)
    • 데이터 삽입, 조회, 수정, 삭제
    • Insert, Select, Update, Delete
  • DCL (Data Control Language)
    • 데이터 보안, 권한, 무결성, 회복 등 데이터 제어
    • Grant, Revoke
  • TCL (Transaction Control Language)
    • Commit, Rollback, Savepoint

 

 

💡 Reference
 

📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리

데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제

inpa.tistory.com

 

 

☁️ ERD CLOUD - ERD 다이어그램을 온라인에서 그려보자

ERD CLOUD 프론트엔드 작업을 하기전에 UI 와이어프레임을 그리는 과정은 중요하듯이, 백엔드에서도 데이터베이스 모델링 설계 과정은 매우 중요하다. 데이터베이스 모델링을 할 때 ERD 다이어그램

inpa.tistory.com

 

728x90
반응형

'Language > SQL(MySQL)' 카테고리의 다른 글

[DB] DDL & DCL & DML & TCL  (0) 2024.05.28