본문 바로가기

Today I Learned/SQL10

[SQLD] 트랜잭션 - 데이터 모델링의 이해 1. 개념트랜잭션이란 하나의 연속적인 업무를 말한다. ex) A가 B에게 10만원을 계좌이체하는 상황① A 계좌의 잔액이 10만원 이상 있는지 확인② 10만원 이상 있다면 A 계좌의 잔액에서 -10만원③ B 계좌에 +10만원 이러한 과정을 겪는데, 2번만 실행되거나 3번만 실행에 성공한다면 대략 난감한 상황을 겪을 수 있다. 따라서 모두 성공하거나 모두 실패해야 한다. 이러한 특성을 가지는 연속적인 업무 단위를 트랜잭션이라고 한다.2. 필수적 / 선택적 관계 - 두 엔티티의 관계가 서로 필수적일 때, 하나의 트랜잭션을 형성한다. - 두 엔티티가 서로 독립적 수행이 가능하다면 선택적 관계로 표현한다. 2024. 8. 16.
[SQLD] 관계와 조인 - 데이터 모델링의 이해 1. 관계1. 개념엔티티의 인스턴스 사이의 논리적인 연관성부모의 식별자를 자식에게 상속하고, 상속된 속성을 Join키로 활용하는, 부모와 자식을 연결하는 것을 관계를 맺는다고 한다.2. 분류관계는 존재에 의한 분류와 행위에 의한 관계로 분류① 존재 관계 : 엔티티 간의 상태를 의미② 행위 관계 : 엔티티 간의 어떤 행위가 있는 것을 의미2. 조인1. 개념정규화에 의해 분리된 테이블은 서로 관계를 맺게 되고, 이들의 데이터를 동시에 출력하거나 관계가 있는 테이블을 참조하기 위해선 데이터가 연결될 필요가 있다. 이 연결하는 과정을 Join이라고 한다. SELECT A.이름, B.강의명FROM 학생 as A, 학생별수강목록 as BWHERE A.학번 = B.학번; 3. 계층형 데이터 모델계층형 데이터 모델이란.. 2024. 8. 16.
[SQLD] 정규화 - 데이터 모델링의 이해 1. 개념최소한의 데이터만을 하나의 엔티티에 넣는 방식으로 데이터를 분해하는 과정모델링 유의점을 지키기 위한 과정논리 데이터 모델링 수행 시점에서 고려됨2. 이상현상정규화를 수행하지 않아 발생하는 현상 ( 삽입이상, 갱신이상, 삭제이상 )불필요한 값까지 입력해야 하거나 특정 정보만 삭제하면 되는데 관련된 다른 정보도 함께 삭제되는 현상3. 정규화 단계 1. 제 1 정규화엔티티의 속성이 원자성을 가지도록 엔티티를 분해하는 단계 ( 하나의 인스턴스와 속성의 값이 반드시 하나의 값만 입력되도록 분리하는 단계 )2. 제 2 정규화제 1 정규화를 진행한 엔티티에 완전 함수 종속이 되도록 엔티티를 분해하는 단계( 모든 PK가 일반 속성을 결정짓도록 분리하는 단계 )3. 제 3 정규화제 2 정규화를 진행한 엔티티에 .. 2024. 8. 15.
[SQLD] 식별자 - 데이터 모델링의 이해 1. 개념식별자란 하나의 엔티티에 구성된 여러 개의 속성 중 엔티티를 대표할 수 있는 속성을 말한다.간단히 말하면 엔티티 구분자 라고 생각하면 편할 것이다.2. 특징1. 유일성 : 주 식별자에 의해 모든 인스턴스를 구분할 수 있다2. 불변성 : 주 식별자가 한 번 특정엔티티에 지정되면 그 식별자의 값은 변하지 않아야 한다3. 최소성 : 주 식별자를 구성하는 속성은 유일성을 만족하는 최소한의 속성으로 구성해야 한다4. 존재성 : 주 식별자가 지정되면 반드시 값이 존재해야 한다. ( NOT NULL )3. 분류1. 대표성 여부에 따른 분류주 식별자보조 식별자1. 유일성과 최소성을 만족하면서 엔티티를 대표하는 식별자2. 엔티티 내에서 각 인스턴스를 유일하게 구별할 수 있는 식별자3. 타 엔티티와 참조관계를 연.. 2024. 8. 15.
[SQL] 특정 물고기를 잡은 총 수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/298518 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 이해주어진 문제는 FISH_INFO 테이블과 FISH_NAME_INFO 테이블을 사용하여 BASS와 SNAPPER 종류의 물고기 수를 계산하여 출력하는 것이다. 요구사항을 정리하면 다음과 같다.  1. FISH_NAME_INFO 테이블에서 BASS와 SNAPPER에 해당하는 물고기의 종류(FISH_TYPE)를 찾는다. 2. FISH_INFO 테이블에서 해당 물고기의 수를 계산한다. 3. 결과는.. 2024. 8. 14.
[SQLD] 엔티티 - 데이터 모델링의 이해 1. 엔티티의 개념현실세계에서 독립적으로 식별 가능한 객체나 사물을 나타냄 ex) - 엔터티 : 학생- 속성 : 학번, 이름, 학과 등- 식별자 : 학번2. 특징1. 유일한 식별자에 의해 식별 가능2. 해당 업무에 필요하고 관리하고자 하는 정보3. 인스턴스(row)들의 집합4. 엔터티는 반드시 속성을 가짐 (2개 이상)5. 엔터티는 업무 프로세스에 의해 이용6. 다른 엔티티와 최소 1개 이상의 관계 성립3. 분류1. 유무형에 따른 분류① 유형엔터티 : 실체가 있는 대상ex) 사원, 물품 등 ② 개념엔터티 : 실체가 없는 대상 (가상의 정보)ex) 조직, 보헝상품 등 ③ 사건엔터티 : 업무를 수행함에 따라 발생하는 엔티티ex) 주문, 청구, 미납 등2. 발생시점에 따른 분류① 기본엔티티 : 해당 업무에 원.. 2024. 8. 14.