728x90
반응형

SQL개발자 (SQLD) 9

SQLD 발췌독 족보

블로그 1차 정리본이며 첨부파일에 전체 정리가 되어있습니다. 데이터 모델링 문제5) 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링 개념적 데이터 모델링 전사적 데이터 모델링을 수행할 때 많이 하며, 추상화 수준이 높고 업무중심적이며 포괄적인 수준의 모델링을 진행한다. 논리적 데이터 모델링 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하며 재사용성이 높다. 물리적 데이터 모델링 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링. 문제6) 외부스키마, 개념스키마, 내부스키마 및 독립성 외부스키마 (사용자 관점) 각 사용자가 보는 데이터베이스의 스키마를 정의 개념스키마 (통합된 관점) 모든 사용자가 보는 데이터베..

SQL개발자 (SQLD) 2023.06.07

SQLD 장 쿼리 다회차 오답 문제(66, 80, 93, 101, 102)

66) 다음 중 아래 데이터 모델을 참고하여 설명에 맞게 올바르게 작성한 SQL문장을 2개 고르시오. [설명] 우리는 매일 배치작업을 통하여 고객에게 추천할 컨텐츠를 생성하고 고객에게 추천서비스를 제공한다. 추천 컨텐츠가 엔터티에서 언제 추천을 해야 하는지를 정의하는 추천대상일자가 있어 해당일자에만 컨텐츠를 추천해야 한다. 또한 고객이 컨텐츠를 추천 받았을 때 선호하는 컨텐츠가 아닌 경우에는 고객이 비선호 컨텐츠로 분류하여 더 이상 추천받기를 원하지 않는다. 그러므로 우리는 비선호 컨텐츠 엔티티에 등록된 데이터에 대해서는 추천을 수행하지 않아야 한다. ① SELECT C.컨텐츠ID, C.컨텐츠명 FROM 고객 A INNER JOIN 추천콘텐츠 B ON (A.고객ID = B.고객ID) INNER JOIN ..

SQL개발자 (SQLD) 2023.06.03

노랭이 98번 group by 와 order by

사원 ID 직급 월급 1 사원 100 2 사원 120 3 대리 200 4 대리 200 5 과장 400 6 부장 600 기본적으로 DBMS상에서 ORDERBY절을 수행하려 할 때, ORDER BY절은 SELECT이후에 실행이 된다. 즉, SELECT까지 완료되어 추출된 컬럼을 기준으로 ORDER BY를 수행하는데, Oracle과 일부 DBMS에서는 SELECT절에 선언하는 Scalra 서브쿼리 혹은, GROUP BY를 하지않은 일반적인 쿼리일 경우 From절에서 DBMS에 의해 메모리에 전체 컬럼을 로드하여 적재시킨다. 이로 인해 SELECT절에 테이블에 존재하는 컬럼을 명시하지 않더라도 ORDER BY절에서 명시하지 않은 컬럼을 기준으로 정렬 수행이 가능하다. (메모리상에 접근?) 하지만 GROUP BY..

SQL개발자 (SQLD) 2023.05.31

SQLD 노랭이 28번 문제

데이터베이스 트랜잭션에 대한 격리성이 낮은 경우 발생할 수 있는 문제점 Dirty Read, Non-repeatable Read, Phantom Read, Lost Update Dirty Read 하나의 트랜잭션이 아직 커밋되지 않은 다른 트랜잭션의 변경사항을 읽는 경우, 잘못된 데이터를 읽을 수 있다. 이로 인해 커밋되지 않은 변경 사항이 롤백되면 읽은 데이터는 실제로 존재하지 않는 데이터가 된다. Non-repeatable Read 동일한 트랜잭션 내에서 동일한 쿼리를 반복해서 실행할 때, 다른 트랜잭션이 해당 데이터를 변경하거나 삭제하는 경우, 처음과 다른 결과를 얻게 된다. 이로인해 데이터의 일관성이 깨질 수 있다. Phantom Read 동일한 쿼리를 반복해서 실행할 때, 다른 트랜잭션이 해당 ..

SQL개발자 (SQLD) 2023.05.31

SQLD 노랭이 41,42번 반정규화 개념정리

테이블의 반정규화 테이블 병합, 분할, 추가 기법이 있다. 병합 : 1:1, 1:M, 서브/슈퍼타입 3가지 유형의 테이블 병합 분할 : 수직, 수평 2가지 유형의 테이블 분할 추가 : 중복테이블, 통계테이블, 이력테이블, 부분테이블 3가지 유형의 테이블 추가 기법분류 반정규화 기법 내용 테이블 병합 1:1 관계 테이블 병합 1:1 관계를 통합하여 성능 향상 1:M 관계 테이블 병합 1:M 관계를 통합하여 성능 향상 슈퍼/서브타입 테이블 병합 슈퍼/서비스 관계를 통합하여 성능 향상 테이블 분할 수직분할 컬럼단위의 테이블에서 디스크I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능향상 (트랜잭션의 처리되는 유형을 파악하는것이 선행되어야 한다.) 수평분할 로우 단위로 집중 발생되는 트랜잭션을 분석하여 ..

SQL개발자 (SQLD) 2023.05.31

SQLD 노랭이 1차정규화 37,38번 문제

문제 37) 모델코드 모델명 제품류코드 물품가 출하가 A유형분류코드1 B유형분류코드2 C유형분류코드3 D유형분류코드4 E유형분류코드5 바코드 가로 세로 높이 모델구분 위 테이블은 컬럼단위에서 중복된 테이블이다. 컬럼에 의한 반복적인 속성값을 갖는 형태는 속성의 원자성을 위배한 제 1차 정규화의 대상이 된다. 이와 같은 반복적인 속성 나열 형태에서는 각 속성에 대해 'or'연산자로 연결된 조건들이 사용되는데, 이 때 어느 하나라도 인덱스가 정의되어 있지 않으면 'or'로 연결된 모든 조건절들이 인덱스를 사용하지 않고 한 번에 전체 데이터 스캔으로 처리되게 되어 성능 저하가 나타날 수 있게 된다. 또한 모든 반복 속성에 인덱스를 생성하게 되면 검색 속도는 좋아지겠지만 반대급부적으로 너무 많은 인덱스로 인해 ..

SQL개발자 (SQLD) 2023.05.31

SQL자격 검정 노랭이 123p 118번 문제 풀이

SELECT ID, START_VAL, NVL(END_VAL, 99) AS END_VAL, LAG(END_VAL) OVER(PARTITION BY ID ORDER BY START_VAL, NVL(END_VAL, 99)) AS FLAG1, LEAD(START_VAL) OVER(PARTITION BY ID ORDER BY START_VAL, NVL(END_VAL, 99)) AS FLAG2 FROM TBL; NVL(END_VAL, 99) END_VAL 컬럼이 NULL인 행에 대해서 99를 출력한다. LAG(END_VAL) PARTITION BY ID에 의해 ID별로 각 레코드행의 END_VAL컬럼의 이전행을 출력한다. ORDER BY절을 통해 START_VAL을 기준으로 오름차순 정렬하고 동일한 값이 있을경우..

SQL개발자 (SQLD) 2023.05.27

SQL개발자 가이드(pdf) 361p~362p 'GROUPING SETS 3개의 인수' 정오표

[DDL 스크립트문] drop table emp; drop table dept; CREATE TABLE EMP( empno int PRIMARY KEY, ename varchar(50), job varchar(50), mgr int, sal int, deptno int ); CREATE TABLE DEPT( deptno int PRIMARY KEY, dname varchar(50) ); INSERT INTO EMP VALUES(01, 'SMITH', 'CLERK',7698 ,950 ,30); INSERT INTO EMP VALUES(02, 'SMITH', 'CLERK',7782 ,1300 ,10); INSERT INTO EMP VALUES(03, 'SMITH', 'CLERK',7788 ,1100 ,20)..

SQL개발자 (SQLD) 2023.05.27