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
반응형