본문 바로가기

728x90

데이터베이스/SQLD

(7)
[SQLD] 집합연산자 SQL 집합 연산자: UNION, UNION ALL, INTERSECT, MINUS/EXCEPTSQL에서는 집합 연산자를 사용하여 두 개 이상의 테이블에서 데이터를 결합하거나 비교할 수 있습니다. 이 연산자들은 각각 합집합, 교집합, 차집합의 개념을 기반으로 데이터를 처리합니다.  UNION ALL특징: 두 테이블의 중복된 레코드를 포함하여 결합합니다.장점: 중복된 데이터도 모두 유지하기 때문에 성능이 UNION보다 좋습니다. 데이터를 단순히 합치는 용도로 사용됩니다.예시: A : {1, 2, 3, 4}, B : {3, 4, 5, 6}A UNION ALL B => {1, 2, 3, 3, 4, 4, 5, 6}UNION 특징: 중복된 레코드는 한 번만 포함하여 결합합니다. 단점: 중복 제거를 위해 추가적인 ..
[SQLD] 서브 쿼리 서브쿼리란?서브쿼리(Subquery)는 SQL 문 내부에 포함된 또 다른 SQL 문으로, 마치 함수가 특정 위치에 들어가는 것처럼 SQL 문 내에서 그 위치에 맞는 결과를 반환하는 독립적인 쿼리입니다. 서브쿼리는 메인 쿼리의 일부로 작동하며, 주로 복잡한 질의나 데이터를 더 세분화하여 조회할 때 사용됩니다.서브쿼리의 종류서브쿼리는 사용되는 위치와 반환되는 결과에 따라 여러 가지로 분류될 수 있습니다. 주요 서브쿼리의 종류는 다음과 같습니다:스칼라 서브쿼리 (Scalar Subquery)인라인 뷰 (Inline View)중첩 서브쿼리 (Nested Subquery)1. 스칼라 서브쿼리 (Scalar Subquery)스칼라 서브쿼리는 하나의 값(스칼라 값)을 반환하는 서브쿼리입니다. 이 서브쿼리는 주로 SE..
[SQLD] NULL 속성 Null이란?데이터베이스에서 Null은 값이 존재하지 않거나 아직 입력되지 않은 상태를 의미하는 특별한 표현입니다. Null은 "값이 없음"을 의미하며, 이는 0이나 공백(" ")과는 전혀 다른 의미를 가집니다.0: 숫자 데이터로서, 값이 "0"임을 의미합니다.공백 (" "): 문자 데이터로서, 값이 "빈 문자열"임을 의미합니다.Null: 데이터가 존재하지 않음을 의미하며, 이는 숫자나 문자와 같은 데이터 값이 아닌, 값 자체가 정의되지 않았음을 나타냅니다.Null의 특성타입이 없습니다: Null 자체는 어떤 데이터 타입도 가지지 않습니다. Null은 그 자체로 "미정의" 상태를 나타내며, 어떤 특정한 데이터 타입으로 간주되지 않습니다. 하지만 Null이 할당된 필드는 특정 데이터 타입을 가질 수 있습니..
[SQLD] 트랜잭션 트랜잭션은 데이터베이스에서 중요한 개념으로, 데이터의 정합성을 유지하기 위해 작업들을 하나의 단위로 묶어 실행하는 것을 말합니다. 이는 작업이 모두 완료되거나 전혀 완료되지 않도록 보장합니다.예시 설명A라는 사람이 B라는 사람에게 100만원을 송금하는 상황을 예로 들겠습니다:A는 100만원을 송금합니다 (A의 계좌에서 100만원 차감).송금 과정 중 오류가 발생하여 B의 계좌에 돈이 입금되지 않았습니다.이 상황에서는 A의 계좌에서만 100만원이 빠져나가고 B의 계좌에는 아무 변화도 없습니다. 이런 경우를 방지하기 위해 트랜잭션을 사용합니다. 트랜잭션은 작업의 모든 부분이 성공적으로 완료되거나, 오류가 발생하면 아무 것도 변경되지 않도록 합니다.트랜잭션의 중요성트랜잭션은 데이터베이스의 정합성을 유지하는 데..
[SQLD] 정규화 정규화란?모델링된 데이터베이스에서 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행하는 과정에서 데이터의 일관성이 깨질 수 있습니다. 이를 데이터베이스 이상현상(Anomaly)이라고 합니다.데이터베이스 이상현상 예시:삽입 이상: 데이터를 삽입할 때 원치 않은 정보까지 삽입될 때 발생합니다.갱신 이상: 중복 저장된 데이터 중 하나만 갱신하고 다른 하나를 갱신하지 못했을 때 발생합니다.삭제 이상: 원치 않은 정보까지 삭제될 때 발생합니다.이러한 문제를 해결하기 위해 데이터 중복을 최소화하고 잘 조직된 상태로 분해하는 과정을 정규화라고 합니다.정규화를 하면 CRUD 성능은 좋아지며, SELECT 성능은 좋아질 때도 있지만 많은 JOIN이 발생할 수 있어 대부분 성능이 하락하게 됩니다. SELECT 성능을 ..
[SQLD] Entity와 속성 Entity란?엔티티는 데이터베이스의 구성 요소로, 독립적으로 식별 가능한 객체(Object)를 의미합니다.예를 들어, 대학을 모델링할 때 학생, 교수, 수업 등이 엔티티로 정의될 수 있습니다.엔티티는 자신을 표현하기 위해 속성(Attribute)이라는 하위 요소를 가지고 있습니다.Entity의 특징업무에 필요하며 관리해야 하는 정보: 엔티티는 특정 업무에 필요한 정보를 포함하고 있어야 합니다.식별이 가능하도록 유일한 식별자(PK)를 가지고 있다: 엔티티는 각 인스턴스를 고유하게 식별할 수 있는 식별자(Primary Key, PK)를 반드시 가져야 합니다.영속적으로 존재하는 인스턴스(행)가 2개 이상 존재한다: 엔티티는 최소 두 개 이상의 행이 존재해야 합니다.하위 요소로는 반드시 속성을 가지고 있다: ..
[SQLD] 모델링 모델링의 중요성과 데이터 모델링의 이해모델링은 현실 세계의 사물이나 개념을 간단하게 도식화하는 과정입니다. 이를 통해 복잡한 시스템이나 프로세스를 명확하게 이해하고, 설계, 개발, 유지보수를 효율적으로 할 수 있습니다. 모델링을 할 때는 일관된 표기법을 사용하는 것이 중요하며, 약속되지 않은 표기법은 모델링으로 인정받지 않습니다. 이제 모델링의 핵심 개념과 데이터 모델링의 단계, 그리고 유의사항에 대해 살펴보겠습니다.모델링의 주요 특징모델링에는 추상화, 단순화, 명료화의 세 가지 주요 특징이 있습니다.추상화 (Abstraction):현실의 복잡한 사물을 중요한 특징만을 추려서 단순한 형태로 표현합니다. 예를 들어, 복잡한 건축 구조를 도식화할 때는 주요 구조물만을 강조하여 표현합니다.단순화 (Simpli..

728x90