sqld 공부 1

ejoo·2024년 5월 30일

데이터 모델링의 중요성 및 유의점

  • 중복: 같은 시간에 같은 데이터 제공
  • 비유연성: 사소한 업무 변화에 데이터 모델이 수시로 변경되면 안됨
  • 비일관성: 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보 갱신 안됨

데이터모델링

  • 개념적 모델링: 업무 분석 후 핵심 엔티티 추출, ERD 작성
  • 논리적 모델링: 세부 속성, 식별자, 관계 정의, 데이터 정규화 수행
  • 물리적 모델링: 물리적으로 생성, 데이터베이스 성능, 보안 등 고려

데이터 독립성 요소

  • 외부 스키마: 개개인의 사용자가 보는 개인적 DB 스키마
  • 개념 스키마: 모든 사용자 관점을 통합한 전체 DB
  • 내부 스키마: 물리적 장치에서 데이터가 실제적 저장

데이터 독립성

  • 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마에 영향 없음
  • 물리적 독립성: 내부 스키마가 변경되어도 외부/개념 스키마에 영향 없음

식별자

1. 식별자 - 비식별자
식별자 (Identifier):
테이블에서 행을 고유하게 식별하는 데 사용되는 하나 이상의 열
주 식별자(기본 키), 보조 식별자(유니크 키) 등
비식별자 (Non-identifier):
행을 고유하게 식별하지 않는 열
예: 학생 테이블에서 이름(Name)과 생년월일(BirthDate)

2. 주 식별자 - 보조 식별자
주 식별자 (Primary Identifier):
각 행을 고유하게 식별하는 데 사용되는 기본 키
유일성, NOT NULL
예: 학생 테이블에서 학번(StudentID)
보조 식별자 (Secondary Identifier):
주 식별자 외에 추가로 행을 식별하는 데 사용될 수 있는 열
보조 식별자는 유니크 제약 조건, 주 식별자가 아닌 다른 열에 유일성
예: 학생 테이블에서 이메일 주소(Email)

3. 내부 식별자 - 외부 식별자
내부 식별자:
테이블 내에서 각 행을 고유하게 식별하는 기본 키
Students에서 StudentID
외부 식별자:
다른 테이블의 기본 키를 참조하는 외래 키
Enrollments에서 StudentID

4. 본질식별자 - 인조식별자
본질 식별자 (Natural Identifier):
실제 데이터에서 유래한 열로, 본래의 의미
데이터 도메인 내에서 고유성을 보장하는 속성, 업무적으로 의미가 있음
예: 주민등록번호, ISBN, 이메일 주소 등
인조 식별자 (Surrogate Identifier):
데이터베이스 시스템이 생성한 인위적인 키로, 본래의 데이터와는 무관한 식별자
데이터 도메인과는 독립적으로 고유성을 보장
예: 자동 증가 ID 열

조인

조인 차이
INNER JOIN: 두 테이블에서 조인 조건을 만족하는 행만 반환.
LEFT JOIN: 왼쪽 테이블의 모든 행과 조인 조건을 만족하는 오른쪽 테이블의 행 반환.
만족하지 않는 오른쪽 테이블의 행은 NULL.
RIGHT JOIN: 오른쪽 테이블의 모든 행과 조인 조건을 만족하는 왼쪽 테이블의 행 반환.
만족하지 않는 왼쪽 테이블의 행은 NULL.
FULL OUTER JOIN: 두 테이블의 모든 행 반환. 조인 조건을 만족하지 않는 행은 NULL.
CROSS JOIN: 두 테이블의 모든 조합을 반환 (카티션 곱 N * M).
SELF JOIN: 같은 테이블을 자기 자신과 조인.
LEFT JOIN 일 경우 왼쪽에 (+) 기호가 붙으며 RIGHT JOIN 일 경우 오른쪽에 (+) 기호

DCL
GRANT, REVOKE
DML
SELECT, INSERT, DELETE, UPDATE
DDL
CREATE, DROP, ALTER, RENAME
TCL
COMMIT, ROLLBACK, SAVEPOINT

Like 에서 %의 위치

  • %pattern은 특정 패턴으로 끝나는 문자열이거나 패턴으로만 이루어짐
  • p_ttern은 정확히 하나의 문자를 대체하는 문자열을 찾음

연관 서브쿼리 from where 위치에따른 차이

  1. 목적:
    • FROM 절: 주로 데이터 세트의 일부분을 변환하거나 필터링된 데이터를 제공
    • WHERE 절: 특정 조건을 만족하는지를 검사하여 행을 필터링
  2. 실행 방식:
    • FROM 절: 서브쿼리는 한 번 실행되어 파생 테이블을 생성
    • WHERE 절: 서브쿼리는 외부 쿼리의 각 행에 대해 반복적으로 실행

barker 표기법 * = PK / # = NOT NULL / O = NULL

Using과 on차이

ON 절: 두 테이블에서 선택된 모든 열이 결과 집합에 포함됩니다. 조인 조건에 사용된 열이 중복될 수 있습니다.
on a.id = b.id

USING 절: 조인 조건에 사용된 열이 결과 집합에 한 번만 나타납니다.
using (stadium_id)

where ‘in’ 복수값, 목록 내 값들중 하나
where ‘=‘ 단일값

PIVOT: LONG —> WIDE
UNPIVOT: WIDE —> LONG

profile
안녕하세요

0개의 댓글