SQLD 개념 정리

2024. 11. 12. 17:40데이터베이스

728x90
반응형

데이터 모델링

‘현실 세계’를 단순화하여 표현하는 기법

특징

  • 추상화 : 일정한 형식에 맞추어 간략하게 표현
  • 단순화 : 핵심요소에 집중하고 불필요한 세부사항 제거
  • 명확화 : 대상의 애매모호함을 제거하고 정확하게 현상하는 기술

유의점

  • 중복 : 한 테이블 또는 여러 테이블에 같은 정보 저장 X
  • 비유연성 : 사소한 업무 변화에 모델이 자주 변경 X
  • 비일관성 : 관련이 없거나 모순되는 내용 X

3요소

  • 대상(Entity)
  • 속성(Attribute)
  • 관계(Relationship)

3단계

  • 개념적 모델링 : 업무 분석 및 엔티티 추출
  • 논리적 모델링 : 엔티티 내 관계 설정 및 식별자 추출
  • 물리적 모델링 : 하드웨어에 DB를 실질적으로 올리는 단계

ERD

엔티티와 엔티티의 관계를 시각적으로 표현한 다이어그램

엔티티(Entity)

현실 세계에서 독립적으로 식별 가능한 객체나 사물

구성요소

  • 엔티티(테이블) : 학생
  • 속성(컬럼) : 학번, 이름, 학과
  • 식별자(pk) : 학번
  • 인스턴스(데이터) : 학번 - B911091 이름 - 홍길동 학과 - 컴퓨터공학

특징

  • 유일한 식별자에 의해 식별 가능
  • 해당 업무에 필요하고 관리하고자 하는 정보
  • 인스턴스들의 집합
  • 엔티티는 반드시 속성을 가짐
  • 엔티티는 업무 프로세스에 의해 이용
  • 다른 엔티티와 최소 1개 이상의 관계 성립

분류

  • 유형엔티티 : 물리적인 형태 O
  • 개념엔티티 : 물리적인 형태 X
  • 사건엔티티 : 업무수행에 따라 발생
  • 기본엔티티 : 업무에 원래 존재하는 정보
  • 중심엔티티 : 기본엔티티로 발생하고 업무에서 중심적 역할
  • 행위엔티티 : 2개 이상의 부모엔티티로부터 발생

속성(Attribute)

업무에서 필요로 하는 고유한 성질. 컬럼으로 표현 가능한 단위

특징

  • 업무에서 필요하고 관리하고자 하는 정보여야 함
  • 정해진 주식별자에 함수적 종속성을 가져야 함
  • 하나의 속성 -> 한 개의 값
  • 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도 엔티티를 이용하여 분리
  • 하나의 인스턴스는 속성마다 반드시 하나의 속성 값을 가짐

종속성

A의 값에 의해 B속성이 유일하게 결정되는 성질

  • 완성 함수적 종속 : 기본키 전체가 종속
  • 부분 함수적 종속 : 기본키 일부만 종속

분류

속성

  • 기본 속성 : 업무에서 추출된 모든 속성
  • 설계 속성 : 기본 속성 외 업무를 규칙화 하기 위해 새로 만들어지는 속성
  • 파생 속성 : 다른 속성에 의해 만들어지는 속성

엔티티 구성방식

  • pk
  • fk
  • 일반속성

분해 여부

  • 단일 속성
  • 복합 속성
  • 다중값 속성

도메인

  • 각 속성이 가질 수 있는 값의 범위, 엔티티 내 속성의 데이터 타입, 크기, 제약 사항 등

관계(RelationShip)

엔티티끼리의 연관성

종류

  • 존재적 관계 : 한 엔티티의 존재가 다른 엔티티의 영향을 미치는 관계
  • 행위적 관계 : 엔티티 간의 어떤 행위가 있는 것

차수

식별자

하나의 엔티티에 구성된 여러개의 속성 중 엔티티를 대표할 수 있는 속성

분류

대표성 여부

  • 주식별자 : 유일성과 최소성을 만족하면서 엔티티를 대표하는 식별자
  • 엔티티 내에서 각 인스턴스를 유일하게 구분 타 엔티티와 참조관계 연결 가능
  • 보조식별자 : 엔티티 내에서 각 인스턴스를 구분할 수 있지만, 대표성이 없어 차조 관계 연결 불가 유일성, 최소성 O | 대표성 X

생성 여부

  • 내부식별자 : 다른 엔티티의 참조 없이 엔티티 내부에서 스스로 생성되는 식별자
  • 외부식별자 : 다른 엔티티와의 관계로 인해 만들어지는 식별자

속성 수

  • 단일 식별자 : 하나의 속성으로 구성
  • 복합 식별자 : 2개 이상의 속성으로 구성

대체 여부

  • 본질식별자 : 비즈니스 프로세스에서 만들어지는 식별자
  • 인조식별자 : 인위적으로 만들어지는 식별자

관계간 엔티티 구분

  • 강한 개체 : 독립적으로 존재할 수 있는 엔티티
  • 약한 개체 : 다른 엔티티가 존재해야 존재할 수 있는 엔티티(파생 엔티티)

식별과 비식별

  • 식별 관계 : 하나의 엔티티의 기본키가 다른 엔티티와 기본키의 하나로 공유하는 관계
  • 비식별 관계 : 하나의 엔티티의 일반속성으로 다른 엔티티와 기본키의 하나로 공유하는 관계

정규화(Normalization)

최소한의 데이터만을 하나의 엔티티에 넣는 식으로 데이터를 분해하는 과정

중복을 제거하고 데이터 모델의 독립성을 확보

이상현상

  • 삽입이상 : 데이터를 삽입할 때 원치않은 필드의 값도 삽입해야 하는 경우
  • 갱신이상 : 어떤 값을 업데이트 했을 때 그 속성의 다른 속성값들과의 불일치가 발생하는 현상
  • 삭제이상 : 값을 삭제할 때 하나의 튜플이 삭제를 원하지 않는 속성값도 갖고 있어 같이 지워지는 현상

정규화 단계

  • 제 1정규화 : 하나의 행과 컬럼이 반드시 한 값만 입력되도록 행을 분리하는 단계
  • 제 2정규화 : 완전 함수 종속을 만들도록 테이블 분해
  • 제 3정규화 : 이행적 종속을 없애도록 테이블을 분리(A→B B→C, A→C 인 것)
  • BCNF : 결정자가 후보키가 아닌 함수 종속 제

반정규화

성능 향상을 위해 테이블 중복을 허용하고 조인을 줄이는 방식

시스템 성능 향상, 개발 및 운영의 단순화를 위해 데이터 모델을 중복, 통합, 분리하는 모델링 기법

트랜잭션(Transaction)

하나의 연속적인 업무 단위

특징(ACID)

  • 원자성(Atomicity) : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것(모두 반영되거나 전혀 반영되지 않거나)
  • 일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지
  • 독립성(Isolation) : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장
  • 지속성(Durability) : 수행된 트랜잭션은 영원히 반영되어야 함

NULL

DBMS에서 아직 정해지지 않은 값. 0이나 “”와는 다른 개념. 설계 시 허용여부 지정

  • NULL을 포함한 연산 결과는 항상 NULL
  • 집계함수는 NULL을 제외한 연산 결과 리턴

SQL의 종류

  • DDL : 테이블 조작
  • DML : 데이터 조작
  • DCL : 권한 조작
  • TCL : 트랜잭션 조작
  • DQL : SELECT

 

728x90
반응형