본문 바로가기
728x90
반응형

데이터베이스10

GROUP BY group by절을 사용한 쿼리는 select절과 order by절에 group by절의 표현식이나 집계함수를 사용한 표현식만 사용가능함 집계함수 : 다중 행을 집계해서 단일 행으로 반환하는 함수 집계함수를 사용한 쿼리는 where절을 만족하는 행이 없더라도 하나의 행을 반환하지만 grouby by 절 또는 having 절을 사용하면 결과가 반환되지 않는다. 종류) 1. 기본함수 SUM 함수 : SUM([DISTINCT | ALL] EXPR) 합계값을 반환하는 함수 숫자만 입력가능하고 숫자와 NULL이 더해질 경우 NULL을 반환한다. 2. 통계함수 3. 순위함수 4. 분포함수 5. 기타함수 2022. 2. 22.
M:M(다대다) 관계 한 명의 학생은 여러 수업에 참가할 수 있다. (1:M) 하나의 수업은 여러 학생을 수용 할 수 있다. (1:M) Question) 1. M:M(다대다)관계인 경우 두 개의 엔티티 사이에 관계 엔티티를 만들어서 다시 모델링을 하는 이유는 무엇인가? 2. 관계 엔티티를 만들지 않고 두 개의 엔티티만 만들어 놓으면 안 되는 이유는? 학생과 수업의 관계를 보면 논리적으로는 문제가 없는 것처럼 보일 수 있다. 하지만 여기에는 치명적인 문제가 있다. 학생테이블에 철수와 미나가 존재하고 철수는 파이썬과 자바 수업 2개를 수강 중이고 미나는 파이썬 수업 하나만 수강 중이라고 가정해보자. 수업 테이블에서 파이썬 수업의 경우는 철수와 미나 두명의 학생을 포함하고 있기 때문에 파이썬 수업 코드가 중복이 발생하게 되는 문제.. 2021. 6. 21.
식별자의 정의와 키의 종류 1. 식별자란? - Entitiy 내에서 각각의 인스턴스를 유일하게 구분 할 수 있는 단일 속성 또는 그룹 속성 - 테이블 내에서 각각의 튜플들을 유일하게 구분 가능한 속성이라고도 말함 2. 식별자의 특징 - Entity는 반드시 하나 이상의 식별자를 보유해야 하며 상황에 따라서 여러개의 식별자를 보유하는 경우도 있다. - 식별자를 보유해야 하는 이유는 식별자를 통해서 인스턴스 또는 튜플들의 구분을 할 수 있고 검색이나 조인시에 매우 중요하기 때문이다. 3. 후보키(Candidate Key) - 식별자 중에서 기본키(PK)가 될 수 있는 후보 속성 4. 기본키(Primary Key) - 각 인스턴스 또는 튜플들을 유일하게 식별하는데 가장 적합한 키 기본키가 가지는 특성) - Not Null - No Du.. 2021. 6. 21.
대량 데이터에 따른 성능 관리 성능 저하가 일어나는 경우) 1. 한 테이블에 데이터가 대량으로 집중되어 있는 경우 - 한 테이블에 대량의 데이터가 있을 때 인덱스를 사용해도 성능이 개선되지 않을 경우 해결방법) - 사용자에겐 하나의 테이블로 보이지만 물리적으로 여러 개의 테이블 스페이스에 쪼개어 저장되는 파티셔닝을 적용 파티션 종류) 1. Range Partition ex) 요금 테이블에서 많은 데이터가 존재함으로 인해 성능이 저하되는 경우 - 요금의 특성상 월단위로 데이터 처리를 하는 경우가 많으므로 월별로 쪼개서 12개의 파티션 테이블을 만듦 - 하나의 테이블에서 관리하면 12억건의 데이터를 관리하는데 Range Partition을 적용하면 월별로 파티션이 쪼개지므로 평균 1억 건의 관리함으로써 성능이 개선됨 - 데이터 보관주기에.. 2021. 3. 22.
728x90
반응형