SQL
-
[SQL] 정규화 정리SQL 2023. 11. 7. 16:43
SQL 정규화릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러개로 분리하는 과정자료의 중복성 감소독립적인 관계는 별개의 릴레이션으로 표현각각의 릴레이션은 독립적인 표현이 가능해야한다. 데이터베이스 이상현상1개의 필드에 1개의 값이 존재해야하지만 여러개의 값이 동시에 들어간다.삭제할 때 필요한 데이터가 같이 삭제된다.데이터 삽입 시, 하나의 필드에 null이 되어 삽입이 안된다. 제1정규형더 이상 분해될 수 없는 원자 값으로만 구성이 되어야 한다.제2정규형기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적이어야한다. (부분 함수의 종속성 제거)동등한 릴레이션으로 분해하고, 정보 손실이 없어야한다.제3정규형기본키가..
-
[SQL] 키 정리SQL 2023. 11. 7. 15:41
슈퍼키는 유일성을 가지고 후보키는 최소성을 가진다. 기본키PK 또는 프라이머리키라고 부른다.유일성(중복 불가)과 최소성(필드를 최소한으로 조합)을 만족한다.자연키 또는 인조키 중에 골라서 설정자연키 : 중복된 값을 가지는 필드를 제외하고 자연스럽게 남은 필드를 자연키라고 하며, 언젠가 변하는 속성을 갖는다.인조키 : 인위적으로 생성한 키(auto increasement)로 변하지 않아 보통 기본키로 사용한다. 외래키FK라고 부른다.다른 테이블의 기본키를 그대로 참조하는 값중복되어도 상관없다. 후보키기본키가 될 수 있는 후보유일성과 최소성을 동시에 만족한다. 대체키후보키가 2개 이상일 경우 어느 하나를 기본키로 지정하고 남은 키 슈퍼키각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키 출처)책 :..
-
[SQL] 관계선 정리SQL 2023. 11. 7. 15:18
관계선실선 : 식별관계 / 부모, 자식 관계에서 자식이 부모의 키를 외래키로 참조점선 : 비식별관계 / 부모, 자식 관계에서 자식이 부모의 키를 일반 속성으로 참조 관계선 종류1 대 1 관계 : 부모는 하나의 자식이 있다.1 대 N 관계 : 부모는 하나 이상의 자식이 있다.N 대 N 관계 : 하나 이상의 부모와 자식이 있다.1대 1 관계 : 부모는 하나의 자식이 있을 수도 있고, 없을 수도 있다.1 대 N 관계 : 부모는 여러 개의 자식이 있을 수도 있고, 없을 수도 있다. 출처)https://parkhyeokjin.github.io/others/2018/11/07/DbERD.html
-
SQL UNION 간단하게 알아보기SQL 2023. 9. 30. 18:14
UNION 여러 개의 SELECT문 결과를 하나의 테이블이나 결과 집합으로 표현 중복 제거가 자동으로 포함됨 (DISTINCT) 만약 중복을 모두 출력하고 싶다면 UNION ALL을 사용하면 된다. SELECT의 각각 결과들의 필드 개수와 타입은 모두 동일해야 한다. SELECT의 각각 결과들은 필드의 순서가 같아야한다. SELECT SEQ_ONE FROM TBL_ONE UNION SELECT SEQ_TWO FROM TBL_TWO -- UNION ALL 사용 SELECT SEQ_ONE FROM TBL_ONE UNION ALL SELECT SEQ_TWO FROM TBL_TWO 그림으로 정리하는 UNION 출처) https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-JOI..
-
SQL JOIN 총정리SQL 2023. 9. 30. 13:14
INNER JOIN 조인하는 테이블의 ON 조건이 일치하는 결과만 출력 FROM 절에 콤마를 사용하면 INNER JOIN으로 사용 가능 OUTER JOIN과 다르게 어느 테이블에서 기준으로 조인을 하든 조인 관계에 부합되는 record를 모두 가지게 된다. 조인에 부합되지 않는 record는 모두 삭제된다. select t1.name from tbl_one as t1 inner join tbl_two as t2 on t1.seq = t2.seq where t1.seq = "1" -- join을 완료하고 그다음 조건을 따진다. -- inner join 함축 구문 select t1.seq from tbl_one t1, tbl_two t2 where t1.seq = t2.seq and t1.seq = "1" ..
-
트랜잭션(Transaction)이란?SQL 2023. 9. 30. 12:05
Transaction 하나 이상의 쿼리를 처리할 때 동일한 Connection객체를 공유하여 에러가 발생한 경우 모든 과정을 되돌리기 위한 방법 데이터 베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 Transaction 특징 데이터 베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 시스템이 응답하기 위한 상태 변환 과정의 작업단위로 하나의 Transaction은 Commit되거나 Rollback된다. Commit : 작업이 성공적으로 끝났을 때, Transaction 연산이 완료된 것을 관리자에게 알려준다. Rollback : 비정상적 종료로 인해 일관성이 깨지면, 원자성을 위해 모든 연산을 취소한다. (Rollback은 해당 트랜잭션을 재시작하거나 ..