sqld 1과목 정리

김혁준·2024년 5월 13일

SQLD

목록 보기
2/6

1. 데이터 모델링의 이해

1. 데이터 모델링의 이해

(1) 데이터 모델링의 특징

  • 추상화, 단순화, 정확화

(2) 데이터 모델링의 목적

  • 일정한 표기법으로 표현하여 업무 내용 분석, 데이터베이스 생성해서 개발 및 데이터관리에 사용, 데이터 모델링 자체로써 업무를 설명하고 분석

(3) 데이터 모델링시 유의해야 할 사항

  • 중복, 비유연성(변경), 비일관성 // 프로그램과 테이블의 연계성을 높이면 데이터 모델 변경 시 바꾸기 힘듦

(4) 스키마

  • 외부스키마 : 여러 사용자 관점으로 구성, 내부 스키마 : 물리적인 저장구조, 개념 스키마 : 조직 전체 관점의 통합적 표현

2. 엔티티

(1) ERD 작성 순서 : 그린다 > 배치한다 > 관계 설정 > 관계명 > 참여도 > 필수여부

(2) ERD : 1976년 피터 첸이 ERD 만들었다, 관계의 명칭은 관계 표현에서 중요하다

(3) 엔티티의 자격

  • 2개 이상의 속성과 2개 이상의 인스턴스를 가져야 함

(4) 엔티티의 특징

  • 반드시 업무에서 필요한 정보, 유일한 식별자에 의해 식별 가능, 두개 이상의 인스턴스, 업무 프로세스에 이용, 속성 있어야 함, 다른 엔티티와 한개 이상의 관계

(5) 엔티티의 구분

  • 발생시점에 따라 기본 중심 행위 엔티티로 구분

(6) 엔티티 이름 부여 방법

  • 현업에서 사용하는 용어, 약어는금지, 단수명사, 유일한 이름, 생성의미대로

3. 속성

(1) 속성이란

  • 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 분리되지 않는 최소의 데이터 단위

(2) 속성의 특징

  • 각각의 속성은 한개의 속성값을 가져야 한다, 속성도 집합이다.

(3) 정규형

  • 제 1 정규형 : 하나의 속성에 여러 속성 있으면 분린
  • 제 2 정규형 : 주식별자와 종속 속성 있으면 빼내기
  • 제 3 정규형 : 일반속성이 다른 일반 속성에 종속적이면 뺴내기

(4) 속성의 특성에 따른 분류

  • 기본속성
  • 설계속성
  • 파생속성 : 빠른 성능을 내기 위해 원래 속성값 계산하여 저장

(5) 도메인

  • 각 속성의 범위를 도메인. 데이터 타입과 크기, 제약사항 지정

(6) 속성 명칭 부여

  • 약어 제한, 서술식 금지, 유일성, 업무에서 사용하는 이름

4. 관계

(1) 관계 : 연관관계는 오퍼레이션에서 멤버변수, 의존관계는 파라미터

(2) 관계2 : 존재적 관계와 행위적 관계, 관계명과 관계차수와 선택성(선택사양)의 3가지 개념, 소속관계는 존재적 관계, 배송근거 관계는 행위에 의한 관계

(3) 독립성 : 물리적 독립성은 바뀌어도 논리 스키마에 영향 안줌. 파일 저장구조 바뀌어도 논리 스키마와 응용 프로그램에 영향 주지 않음

(4) 1:1, 1:M은 참여자의 수를 나타내고 관계차수이다.

(5) 관계에 대해 확인 할 사항 : 연관규칙 존재, 정보 조합 발생, 관계 연결 가능하게 하는 동사 존재, 관계연결에 대한 규칙 서술 존재

5. 식별자

(1) 주식별자 지정시 고려 : 유일 구분, 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수, 주식별자의 값은 자주 변경안됌, 주식별자에 반드시 값 들어와야함
(2) 식별자의 종류

  • 주식별자와 보조식별자 : 대표성 유무
  • 내부식별자와 외부식별자 : 스스로 생성 여부
  • 단일식별자와 복합식별자 : 단일 속성으로 식별 가능 여부
  • 본질식별자와 인조식별자 : 새롭게 만들었는지
    (3) 이름같이 유일하지 않은거는 주식별자 ㄴㄴ, 주식별자는 반드시 데이터 값이 존재해야 하고 null 안된다.
    (4) 특징 :
  • 부모없이 자식 엔티티의 인스턴스가 먼저 생성될 경우 비식별자로 연결
  • 부모 엔티티의 인스턴스가 자식보다 먼저 소멸하면 비식별자
  • 조인관계 최소화할때 식별자 관계로 연결
    (5) 도메인은 속성이 가질 수 있는 값의 범위
    (6) 업무분석은 기본속성, 설계로 도출은 설계 속성, 계산이나 변형은 파생속성

2. 데이터 모델과 SQL

1. 정규화

(1) 후보 키 : 속성을 결정하는 것.
(2) 정규형 :

  • 제1 정규형 : 모든 속성은 하나의 값. 컬럼에 의한 반복적인 속성값을 가지므로 속성의 원자성을 위배한 1차 정규화의 대상. 모든 인스턴스가 반드시 하나의 값
  • 제2 정규형 : 일반속성은 주식별자 전체에 종속이어야 하므로 따로 노는게 있으면 제2 정규형 위반. 함수 종속성에서 따로 노는거 분리. 일반속성은 주식별자 전체에 종속적
  • 제3 정규형 : 릴레이션이 제2정규형이고 기본 키에 속하지 않는 속성 모두가 기본키에 이행적 함수 중복이 아닐 때 제 3정규형이다. 일반 속성의 값에는 서로 종속적이지 않음. 일반 속성끼리 종속적이지 않아야 함.
    (3) 정규화 :
  • 중복 속성 제거, 용량 최소화
  • 데이터 처리 성능 향상
  • 조회성능 저하될 수 있다.
  • 논리 데이터 모델의 일관성을 확보하고 중복을 제거하는 것임. 개념 데이터가 아니다.
    (4) 반정규형 : 중복을 허용. 성능의 향상을 항상 보장하는것은 아님
    (5) 정규형은 좋은거 정규화는 필요한 상태. 컬럼단위 중복도 1차 정규화의 대상임. 정규화를 수행하면 검색 성능 저하

2. 관계와 조인의 이해

(1) 관계와 조인

  • 조인은 식별자를 상속하고 상속된 속성을 매핑키로 활용하여 데이터 결합
  • 부모의 식별자를 자식의 일반속성으로 상속하면 비식별, 식별자로 상송하면 식별
  • 관계를 맺는다는 것은 식별자를 상속하고 매핑키로 활용해 데이터 결합
  • 조인키 는 웨어절 내용

3. 트랜잭션

4. null 속성

(1) 속성 : 널 값은 모르는 값임. 값의 부재임. 모든 비교는 알 수 없음을 반환. 공백문자또는 0과 다르다.
(2) 속성2 : 연산결과는 null이다. 비교 결과는 unknown이다.

5. 본질식별자와 인조식별자

  • 인조식별자 : 본질식별자가 복잡할때 사용, 중복 데이터 막기 어려움, 추가 인덱스 필요, 되도록 사용하지 않고 필요할때만 사용하자

0개의 댓글