본문 바로가기

CS

(7)
SQL 활용 서브쿼리(SubQuery) 하나의 쿼리안에 존재하는 또 다른 쿼리이다. SELECT 절 스칼라 서브쿼리(Scalar Subquery) FROM 절 인라인 뷰(Inline View) WHERE 절, HAVING 절 중첩 서브쿼리(Nested Subquery) 스칼라 서브쿼리(Scalar Subquery) 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분의 위치에 사용할 수 있다. 컬럼 대신 사용되므로 반드시 하나의 값만 반환해야하며 그렇지 않은 경우 에러를 발생시킨다. select m.product_code (select s.product_name from product s where s.product_code = m.product_code) as product_name) as product_n..
SQL 기본 및 활용 문자열 함수 LTRIM 왼쪽(시작 부분) 에서 공백을 제거한다. 두번째 파라미터로 어떤값을 제거할지 선택 할 수 있다. SELECT RTRIM(' Hello World ') AS TrimmedString; RTRIM 오른쪽(시작 부분)에서 공백을 제거한다. 두번째 파라미터로 어떤값을 제거할지 선택 할 수 있다. SELECT RTRIM('Hello Worldxxxxx', 'x') AS TrimmedString; TRIM 양쪽에서 공백을 제거한다. BOTH | LEADING | TRAILING CONDITION FROM CHARACTOR BOTH : 문자열의 양쪽에서 문자를 제거합니다 ( 기본설정 ) LEADING : 문자열의 시작 부분에서만 문자를 제거합니다. TRAILING : 문자열의 끝 부분에서만 문..
데이터 모델과 SQL 정규화 데이터의 정합성( 데이터의 정확성과 일관성을 유지하고 보장)을 위해 엔티티를 작은 단위로 분리 하는 과정 이다. 정규화를 할 경우 데이터 조회성능은 처리 조건에 따라 향상되는 경우도 있고 저하되는 경우도 있지만 입력, 수정, 삭제 성능은 일반적으로 향상된다고 볼 수 있다. 하지만 그렇다고 모든 엔티티를 무작정 분리하면 안되기때문에 정규화를 하기 위한 일정한 룰이 존재한다. 그렇다면 어떤 규칙들이 존재하고 어떤 상황에서 정규화가 필요한지 알아보 도록 하자 제 1 정규형 속성의 값은 반드시 하나의 값만 가져야한다. 제 2 정규형 엔티티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야한다. 주식별자가 단일식별자가 아닌 복합식별자 인경우 일반속성이 주식별자의 일부에만 종속 될 수 있는데 이런 경우 ..
데이터 모델의 이해 모델링 모델링이란? 데이터베이스에서 모델링은 ‘ 현실세계를 단순화 하여 표현하는 기법’ 이다. 키워드 : 설계, 디자인, 형상 모델링이 갖춰야 할 조건 현실 세계를 반영해야한다. 단순화하여 표현해야한다. 관리하고자 하는 데이터를 모델로 설계한다. 모델링의 특징 추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현하는 것이다. 즉, 아이디어나 개념을 간략하게 표현하는 것이다. 단순화(Simpleification) : 복잡한 현실세계를 정해진 표기법으로 단순화 하고 쉽게 표현한다는 의미이다. 명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는 의미이다. 데이터베이스에서 모델링은 현실세계를 추상화, 단순화, 명확화 하기 위해 일정한 표기법에 의해 표현하는 기법이다..
윈도우 함수 (Window Function) 정의 윈도우 함수란 행과 행 간의 관계를 정의하기 위해 제공되는 함수 입니다. 여기에서의 관계를 정의한다는 것은 비교, 연산, 행 위치 조작을 말한다. 비교, 연산 : SUM,AVG,MIN,MAX 행 위치조작 : ROWS, RANGE SUM, AVG, MIN, MAX에 대해서는 Group BY에서 자주 사용했으므로 설명을 생략하겠다. 윈도우 절의 구조 ROWS 물리적인 행 RANGE 논리적인 행 UNBOUNED PRECEDING 첫 번째 행 UNBOUNED FOLLOWING 마지막 행 CURRENT ROW 현재 행 PRECEDING 이전 행 (위치) FOLLOWING 다음 행 (위치) CURRENT ROW 현재행을 가르킵니다. ROWS ROW BETWEEN AND ROWS는 물리적인 행위치를 기준으로 정..
Redis란? Redis 란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 시스템 데이터베이스, 캐시, 메세지브로커로 사용되며 인메모리 데이터 구조를 가진 저장소 입니다.Cache Server란? 데이터베이스가 있는데도 Redis라는 인메모리 데이터 구조 저장소를 사용하는 이유(?) 인메모리 데이터베이스가 아니라면 사용자가 많아 질 수록 부하가 느려집니다. ( HDD,SDD 접근 ) 과부하를 방지하기위하여 캐시 서버(Redis)를 도입한다.Look aside cache 클라이언트가 데이터를 요청 웹서버는 데이터가 존재하는지 Cache 서버에 확인 Cache서버에 데이터가 있으면 DB데이터를 조회하지않고 Cache 서버에 있는 결과값을 클라이언트에게 바로 반환..
데이터베이스의 관계 데이터베이스의 관계(Relationship) 기본 (1:1, 1:N, N:N) 관계 관계명 : 관계의 이름: 엔티티가 관계에 참여하는 형태를 지칭하는 이름으로, 두 개의 엔티티에 대한 것이기 때문에 하나의 관계는 2개의 현재형으로 표현한 관계명을 갖는다. 관계차수 : 두 개의 엔티티 관계에서 참여자수를 표현하는 것을 관계차수라고한다. 일반 적인 관계 차수 표현 방법으로는 1:1, 1:N, N:N이다. 관계 차수에서 가장 중요하게 고려해야할 사항은, 한쪽 엔티티와 관계를 맺은 다른 한쪽 엔티티 쪽이 하나의 객체만을 가지는지, 혹은 여러개의 객체를 가질 수 있는지 파악하는것이 중요하다. 관계 선택 사양(Optionality) - 관계에서 항상 참여해야하는지 (필수관계인지) 아니면 참여할 수도 있는지(선택관계..