| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 통계학공부
- 통계학
- 책
- 다중검정
- 데이터분석
- 내일배움캠프#til#sqld#eda#데이터리터러시
- 가설검정
- 카이제곱검정
- vscode
- 라이브 세션
- 통계101x데이터분석
- 이상탐지
- #내일배움캠프 #사전캠프 #til #sql
- t검정
- 데이터
- 내일배움캠프#til#sql
- 제2종오류
- 이상치 제거
- Ai
- 차원축소
- 딥러닝
- 내일배움캠프#til#데이터 리터러시
- A/B테스트
- 머신러닝
- 내일배움캠프#til#sqld
- 통계
- 제1종오류
- 내일배움캠프#til#파이썬#python#통계학
- 내일배움캠프#til#파이썬#python
- 내일배움캠프#til#파이썬#python#전처리
- Today
- Total
Ming's Life
[내일배움캠프] 8일차 본문
1. 오늘 학습 키워드
- SQLD 자격증 공부
2. 오늘 학습 한 내용을 나만의 언어로 정리하기
모델이 표현하는 트랜잭션의 이해
트랜잭션의 이해
- 트랜잭션은 데이터베이스의 논리적 연산단위
1. 시작 (Begin):
- 트랜잭션은 어떤 일련의 작업을 나타내기 시작할 때 시작됩니다. 예를 들어, A 계좌에서 B 계좌로 100달러를 이체하려는 트랜잭션이 시작됩니다.
2. 작업 수행:
- 트랜잭션은 하나 이상의 작업으로 이루어집니다. 이 경우에는 A 계좌에서 100달러를 빼고, B 계좌에 100달러를 더하는 두 가지 작업이 있습니다.
3. 확인 (Commit):
- 모든 작업이 성공적으로 수행되었다면, 트랜잭션을 완료하기 위해 확인 단계로 넘어갑니다. 이를 "커밋"이라고 부릅니다. A 계좌에서의 인출과 B 계좌로의 입금이 성공하면 트랜잭션을 커밋하여 최종 결과를 반영합니다.
4. 롤백 (Rollback):
- 하지만 중간에 어떤 문제가 발생한다면, 트랜잭션을 롤백하여 모든 작업을 취소할 수 있습니다. 예를 들어, A 계좌에 잔고 부족 등의 이유로 트랜잭션이 실패한다면, 롤백을 통해 모든 작업을 취소하고 처음 상태로 돌아갈 수 있습니다.
5. 끝 (End):
- 트랜잭션이 커밋되거나 롤백되면 해당 트랜잭션은 종료됩니다. 모든 작업이 반영되었거나, 아니면 아무런 영향도 주지 않은 상태로 끝나게 됩니다.
트랜잭션의 특징
1. 원자성 (Atomicity):
- 트랜잭션은 원자적인 작업의 단위로 간주됩니다. 이는 트랜잭션 내에서 수행되는 모든 작업이 성공하거나 실패할 경우 전체가 실패하는 것을 의미합니다.
중간에 어떠한 작업이라도 실패하면 이전 상태로 롤백되어야 합니다.
2. 일관성 (Consistency):
- 트랜잭션이 완료된 후에는 데이터베이스가 일관된 상태여야 합니다. 트랜잭션이 시작하기 전과 후에 일관성이 유지되어야 합니다.
데이터베이스의 제약조건을 준수하고, 비즈니스 규칙을 지켜 일관성을 유지합니다.
3. 고립성 (Isolation):
- 여러 트랜잭션이 동시에 실행될 때 각각의 트랜잭션이 서로 영향을 미치지 않도록 하는 것을 의미합니다.
다수의 트랜잭션이 동시에 실행될 때, 각각의 트랜잭션이 자신만의 공간에서 작업하고 마치 다른 트랜잭션이 존재하지 않는 것처럼 격리되어야 합니다.
4. 지속성 (Durability):
- 트랜잭션이 성공적으로 완료된 경우, 해당 트랜잭션에서 수행한 변경 사항은 영구적으로 데이터베이스에 반영되어야 합니다.
시스템 장애 또는 다시 시작되더라도 트랜잭션의 결과가 영구적으로 저장되어야 합니다.
Null 속성의 이해
Null의 개념
- Null은 데이터베이스에서 특정 필드 또는 칼럼에 값이 없음을 나타내는 특별한(중요한) 값
- Null 값은 ‘공백이나 숫자 0’과는 전혀 다른 의미
Null의 특징
1. 미정 상태:
- Null은 해당 필드의 값이 미정이거나 알 수 없는 경우를 나타냅니다. 어떤 이유로든 데이터가 존재하지 않거나 입력되지 않은 상태입니다.
2. 데이터 부재:
- Null은 필드에 대한 값이 없음을 나타냅니다. 다시 말해, 해당 필드에는 어떠한 데이터도 저장되어 있지 않은 상태입니다.
3. 값의 비교 불가능:
- Null 값은 다른 값과 비교할 때 특별한 주의가 필요합니다. Null은 다른 값과는 동등이나 불동등을 비교할 수 없습니다.
Null과의 비교는 항상 불확실한 결과를 가져올 수 있습니다.
집계 함수와 Null
- 집계 함수는 대부분 Null 값을 제외하고 처리되기도 합니다.
- 이는 데이터베이스에서 Null 값이 특별한 상황을 나타내거나 연산에서 불확실한 결과를 가져오기 때문입니다.
* 사칙 연산과 Null
Null + 2 or 2 + Null -> Null
Null - 2 or 2 - Null -> Null
Null * 2 or 2 * Null -> Null
Null / 2 or 2 / Null -> Null
집계 함수와 Null 처리
SUM 함수:
- SUM 함수는 합계를 계산하는 함수입니다. 일반적으로 Null 값을 0으로 처리합니다.
따라서 Null 값을 제외하고 나머지 값들의 합을 계산
SELECT SUM(column_name) FROM table_name;
AVG 함수:
- AVG 함수는 평균을 계산하는 함수입니다. Null 값을 제외하고 나머지 값들의 평균을 계산합니다.
SELECT AVG(column_name) FROM table_name;
COUNT 함수:
- COUNT 함수는 행의 개수를 세는 함수입니다. 일반적으로 Null 값을 제외하고 유효한 값들의 개수를 세어줍니다.
단, COUNT(*) 의 경우 NULL을 포함해서 모든 행의 수를 리턴합니다.
SELECT COUNT(column_name) FROM table_name;
MIN/MAX 함수:
- MIN과 MAX 함수는 최소값과 최대값을 찾는 함수입니다.
ull 값을 무시하고 나머지 값 중에서 최소값과 최대값을 찾습니다
SELECT MIN(column_name), MAX(column_name) FROM table_name;
본질식별자 vs 인조식별자
본질식별자 vs 인조식별자 개념
- 본질식별자(Natural Key)와 인조식별자(Surrogate Key)는 데이터베이스 설계에서 사용되는 중요한 개념입니다
본질식별자 (Natural Key):
- 업무에 의해 만들어진 식별자
정의:
- 본질식별자는 데이터 엔터티를 식별하는 데에 자연스럽게 존재하는 속성이나 조합입니다.
이는 실제로 데이터와 밀접한 관련이 있는 속성으로, 엔터티가 갖고 있는 자연스러운 속성을 활용하여 식별자로 사용됩니다.
장점:
- 데이터베이스에 의미 있는 정보를 포함하므로 인간이 읽고 이해하기 쉽습니다.
- 자연스럽게 발생하는 속성을 사용하므로 데이터 일치성이 높을 수 있습니다.
단점:
- 데이터 속성의 변화나 형식 변경이 발생하면 식별자에도 영향을 미칠 수 있습니다.
- 복합 본질식별자의 경우 복잡성이 증가할 수 있습니다.
인조식별자 (Surrogate Key):
- 업무적으로 만들어지지는 않지만 본질식별자가 복잡한 구성을 갖고 있으므로 인위적으로 만든 식별자
정의:
- 인조식별자는 의도적으로 만들어진, 데이터와 무관한 특별한 식별자입니다. 주로 시스템이나 데이터베이스 설계 목적으로 생성되며, 엔터티를 고유하게 식별하기 위한 보조적인 역할을 합니다.
장점:
- 데이터 일관성이 유지되며, 데이터 변화에 대한 영향이 적습니다.
- 복합 본질식별자의 복잡성을 피할 수 있습니다.
단점:
- 식별자 자체가 데이터베이스와 관련이 없어, 사용자가 직접 읽고 이해하기 어려울 수 있습니다.
- 중복되지 않도록 일련번호 등을 생성하기 위해 추가적인 관리가 필요할 수 있습니다.
3. 학습하며 겪었던 문제점 & 에러
-
4. 내일 학습 할 것은 무엇인지
SQL 코드카타 , SQLD강의 듣기
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] 10일차 (0) | 2025.05.23 |
|---|---|
| [내일배움캠프] 9일차 (0) | 2025.05.23 |
| [내일배움캠프] 7일차 (0) | 2025.05.20 |
| [내일배움캠프] 6일차 (0) | 2025.05.19 |
| [내일배움캠프] 5일차 (0) | 2025.05.16 |