😀 Language/- SQL

[SQLD] 오늘의 공부_이기적 이론&단원정리문제 다시풀기

또방91 2021. 11. 4. 20:16
728x90

* 공부 교재   : 영진닷컴 이기적 SQL 개발자

* 공부 범위   : <데이터 모델링의 이해>, <SQL 기본 및 활용> 이론&단원정리 문제

* 오늘 Goal   : 다시 문제 풀면서 중요한거 반복 공부하기

 

 

 

 

 

 

 

 

데이터 모델링의 이해
p99. <3번> 반정규화를 수행하는 경우 아닌 것?

(O) select문의 실행속도가 느려진 경우
(O) 집계정보가 요구되는 경우
(O) 특정범위 또는 대량의 정보가 자주 조회되는 경우
(X) 데이터 모델이 자주 변경되는 경우--> 반정규화가 아닌, 반대의 정규화를 해야함
p100. <5번> 말장난 문제👿 / 엔터티 분류 중 관련이 없는 것?

(O) 키엔터티
(O) 메인엔터티
(X) 개념엔터티
(O) 행위 엔터티

* 엔터티를 발생시점에 따른 분류
- 기본 엔터티=키엔터티=핵심엔터티=basic entity    ex)고객,상품
- 중심 엔터티=메인엔터티=main entity    ex)계좌,주문
- 행위 엔터티=active entity    ex)주문이력
p100. <10번> 데이터베이스의 독립성을 향상하기 위한 3층 스키마 중 조직 전체적인 관점으로 통합을 표현하는 계층은?
--> 개념 스키마

*3층 스키마: 외부스키마(사용자관점.  업무상 관련) > 개념스키마(조직 전체적인 관점. 설계자 관점) > 내부스키마(개발자관점)
p102. <16번> 주식별자로 부적절한 것?
(O) 회원번호, 학생번호, 일련번호
(X) 학생명

*학생명은 동명이인이 존재할 수 있으므로 유일 성 만족하지 못함
(뚜두두둥.... 동명이인 생각치 못했다 😅)
p103. <24번> 제1정규화 결과, 기본키(primary key)가 하나의 속성으로 이루어진 경우 생략되는 것?
--> 제2정규화
제2정규화는 기본키가 2개이상의 속성으로 이루어져있어야 수행가능하니까 생략 가능

 

SQL 기본 및 활용 - 1. SQL 기본
p166. <2번> 안외워진다안외워진다😥 / 관계형 데이터베이스의 관계연산 중 공통된 속성으로 새로운 릴레이션을 생성하는 것은?
(X) 선택 연산 -> 관계연산 // 여러 릴레이션 중 조건에 맞는 행(튜플)만 조회
(X) 투영 연산 -> 관계연산 // 여러 릴레이션 중 조건에 맞는 속성만 조회
(O) 결합 연산
(X) 나누기 연산
p167. <12번> 비교해보자 ⚖/ EMP 테이블의 구조는 삭제하지 않고, 모든 데이터를 삭제하는 SQL문을 작성하시오. (단, 테이블의 데이터를 모두 삭제 후 테이블의 공간은 초기화해야한다.)
->  TRUNCATE TABLE EMP;

<문제 keypoint>
1)테이블의 구조는 그대로 2)테이블 모든 데이터는 삭제 3)테이블 공간(log)은 초기화

분명 이런 비스무리한 아이들이 몇 개 떠오를 것이다... ㅋㅋㅋ 정리해보았다.
  구분 테이블구조
삭제
데이터
삭제
테이블 log 작업속도
DROP 
DDL
(자동commit)
삭제 삭제 초기화
=rollback불가
빠름
TRUNCATE  DDL
(자동commit)
- 삭제 초기화
=rollback불가
빠름
DELETE DML
(사용자commit)
- 삭제 남아 있음
=commit이전
rollback가능
느림
 그냥 쉽게 이야기 해보자면  
DROP은 미련없이 아예 수첩을 전체 다 휴지통에 버리는 거고
TRUNCATE는 예쁜 수첩표지에 미련이 있는 지, 안에 있는 종이는 다 버리고 표지만 남겨놓은 상태
DELETE는 수첩안에 있는 내용을 지우개로 다 지운거라 생각하면 됨. 
p166. <24번> 말장난 문제👿 / 트랜잭션은 자기의 연산에 대하여 전부(all) 또는 전무(nothing) 실행만이 존재하며, 일부 실행으로는 트랜잭션의 기능을 가질수 없다는 트랜잭션의 특성은?
(O) Atomaicity = 원자성 = all or nothing
(X) Isolation = 고립성(중간 결과 볼수 X)
(X) Consistency = 일관성
(X) Durability=영속성(저장되었음을 보장)

(문제는 맞았지만, 시간을 잡아먹는 문제 ㅋㅋㅋ 영어도 알아두자......  흐즈므라... 다른 말 같은 뜻 문제😶)

 

SQL 기본 및 활용 - 2. SQL 활용
p210. <7번> subquery에서 FROM절에 작성하는 subquery는?
(X)Scala Subquery 스칼라서브쿼리
(O)Inline View 인라인뷰
(X)Subquery 서브쿼리
(X)Multi row Subquery 다중행 서브쿼리

*서브쿼리는 하나의 SQL문장내부에 SELECT문이 또 쓰여진 경우를 뜻함
위치에 따라 구분해보자면!
 - 서브쿼리(Subquery): WHERE구에 SELECT문 사용    ex) SELECT~ WHERE~(SELECT~);
 - 인라인뷰(Inline View): FROM구에 SELECT문 사용. 가상테이블    ex) SELECT ~ FROM(SELECT~)~;
 - 스칼라서브쿼리(Scala Subquery): SELECT문에 SELECT문사용. 한행,한칼럼 반환    ex) SELECT~(SELECT~)~;

 

SQL 기본 및 활용 - 3. SQL 활용
p227. <6번> 아래 구문에서의 test_idx 인덱스의 종류는?
CREATE TABLE test(a number, b char(3), c varchar2(10))
PARTITION BY RANGE(a)(
PARTITION p1 VALUES LESS THAN(1000),
PARTITION p2 VALUES LESS THAN(2000),
PARTITION p3 VALUES LESS THAN(maxvalue)
);
CREATE INDEX test_idx on test(b) LOCAL;
-> Local Non-Prefixed Partition Index

 keypoint 1
  Global vs LOCAL Index?  떡하니 Local 이라고 적혀있음
  - Global Index : 여러개 파티션에서 하나의 인덱스 사용
  - Local Index : 해당 파티션별로 각자 인덱스 사용
 keypoint 2 
  파티션 키=인덱스 키? a!=b
  - Prefixed Index : 파티션 키 = 인덱스키
  - Non Prefixed Index :  파티션 키 != 인덱스키

 

 


오늘은 여기까지!!!

🍁NEXT > 최신기출문제 1회 동영상과 함께 풀어보기 

 

728x90