티스토리 뷰

I. 데이터 모델링의 이해

1. 데이터 모델링의 이해

3. 데이터 모델링 유의점 헷갈리는 거

  • 비유연성 : 프로세스와 데이터의 정의를 분리
  • 비일관성 : 데이터와 데이터 간 상호 연관 관계 명확히 정의 - 프로세스와 테이블의 연계성을 낮춰야 함

5-6. 데이터베이스 스키마 구조 헷갈리는 거

  • 외부 스키마 : 여러 사용자 관점, View (외뷰..로 외우자)
  • 개념 스키마 : 통합 사용자 관점, 모든 사용자 관점

12. 발생시점 기준의 엔티티 분류 : 기본 > 중심 > 행위 (기중행)

30. 비식별자 관계, 식별자 관계

식별자 관계 비식별자 관계
강한 연결관계 약한 연결관계
자식 주식별자에 포함 자식 일반속성에 포함
실선 점선
반드시 부모 엔터티에 자식이 종속됨
자식 주식별자 구성에 부모 주식별자 포함 필요
상속받은 주식별자 속성을 타 엔터티에 이전 필요
조인 관계 최소화
약한 종속 관계
자식 주식별자 구성은 독립적
자식 주식별자 구성에 부모 주식별자 부분 필요
상속받은 주식별자 속성을 타 엔터티에 차단 필요
부모쪽 관계참여는 선택관계

 

2. 데이터 모델과 SQL

35. 정규형, 정규화

정규화 : '논리 데이터 모델'의 일관성 확보, 중복 제거

제 1 정규형 제 2 정규형 제 3 정규형
속성 중복 X, 분해되지 않는 상태 일반속성은 주식별자 전체에 종속 일반속성 간 서로 종속 X
원자성 충족 완전 함수적 종속 상태  
  부분 함수적 종속 X 이행적 함수 종속 X
한 튜플안에 여러개가 들어가있는경우 (쉼표로 구분되어 여러개가 들어간다던지) 기본키가 아닌 다른 속성에 종속된 상태를 부분 함수적 종속이라고 함 X를 통해 Y를 알고, Y를 통해 Z를 알 수 있어서 X->Z 가 성립할 때 이를 이행적 함수 종속 상태라고 함

 

49. NULL

  • NULL + 숫자 = NULL
  • NULL (비교연산자) 숫자 = Unknown
  • NVL/ISNULL : NULL을 치환할 때 사용
  • 레코드 간 연산 중 NULL : 무시 / 컬럼간 연산 중 NULL : NULL

II. SQL 기본 및 활용

1. SQL 기본

1. SQL 명령어들 총정리

명령어 종류 명령어
DML(Manipulation 조작) SELECT
INSERT
UPDATE
DELETE
DCL(Control) GRANT
REVOKE
DDL(Definition) CREATE
ALTER
DROP
RENMAE
TCL(Transaction Control) COMMIT
ROLLBACK

11. 공백 문자('') 처리 in Oracle : NULL, in SQLServer : ''(그대로)

14,27. GROUP BY에서는

  • ALIAS(별칭) 사용 불가
  • NULL도 집계에 포함

20. NULL 관련 함수

함수명 설명
NVL/ISNULL(표현식1, 표현식2) 표현식1 이 NULL이면 표현식2의 값을 출력
NULLIF(표현식1, 표현식2) 표현식1,2가 서로 같으면 NULL, 다르면 표현식1
COALESCE(표현식1, 표현식2, ...) NULL이 아닌 최초의 표현식, 다 NULL이면 NULL

 

37. 순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVIDE (셀프조디)

41. A INNER JOIN B INNER JOIN C ON ~~~~~ (X)

A INNER JOIN B ON ~~~~~ INNER JOIN C ON ~~~~~ (O)

43. TABLE 간 JOIN 조건이 없으면 : CROSS JOIN 발생

49. (+) JOIN : 왼쪽에 붙으면 RIGHT OUTER, 오른쪽에 붙으면 LEFT OUTER

 

2. SQL 활용

54. UNION 에 ORDER BY는 마지막 줄에 한 번만 사용 가능

57. SQL 집계 함수

  • ROLLUP : 전체 합계까지 누적되는 게 특징
  • CUBE : 모든 조합
  • GROUPING SETS : 소그룹에 대한 합계만 (조합하지 않음)
  • GROUPING : 집계결과에 대해 1을 가지므로, CASE WHEN으로 1일 때 NULL을 변경하는데 사용

70. EXISTS, NOT EXISTS

SELECT 1 ? SELECT가 불필요해서 그냥 넣는 값이라고 함

72. 연관/비연관 서브쿼리

연관 비연관
서브쿼리가 메인쿼리 컬럼을 가지고 있는 형태 서브쿼리가 메인쿼리 컬럼을 가지고 있지 않음
메인쿼리의 조건을 확인 목적 메인쿼리에 값을 제공하기 위한 목적

 

지옥의 서브쿼리... 모르겠다;;

 

3. 관리 구문

99. CONSTRAINT

  • ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건]
  • CREATE 내에서 CONSTRAINT [제약조건명] [제약조건]

108. 외래키의 참조 무결성 제약 :외래키 값은 NULL이거나 참조하는 릴레이션의 기본키 값과 동일해야 한다는 제약

113. 참조 동작

DELETE/MODIFY ACTION 설명
CASACADE MASTER 삭제 시 CHILD 같이 삭제
SET NULL MASTER 삭제 시 CHILD 해당 필드 NULL
SET DEFAULT MASTER 삭제 시 CHILD 해당 필드 DEFAULT
RESTRICT CHILD에 PK가 없는 경우만 MASTER 삭제 허용
NO ACTION 참조무결성을 위반하는 삭제/수정 액션을 취하지 않음
INSERT ACTION 설명
AUTOMATIC MASTER 테이블에 PK가 없는 경우 MASTER PK 생성 후 CHILD 입력
SET NULL MASTER 테이블에 PK가 없는 경우 CHILD 외부키를 NULL로
SET DEFAULT MASTER 테이블에 PK가 없는 경우 CHILD 외부키를 DEFAULT로
DEPENDENT MASTER 테이블에 PK가 존재할 때만 CHILD 입력 허용
NO ACTION 참조무결성을 위반하는 입력 액션을 취하지 않음

119. DELETE, TRUNCATE, DROP 비교하기

DROP TRUNCATE DELETE
DDL DDL(일부 DML 성격) DML
AUTO COMMIT(ROLLBACK X) AUTO COMMIT(ROLLBACK X) USER COMMIT(ROLLBACK O)
정의까지 다 삭제 뼈대는 남김(초기 상태로) 삭제해도 사용한 공간은 남김(데이터만)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함