ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD] SQL 개발자 공부하기 Day 14 : 과목별 핵심 150제 오답노트 (1/3)
    Study/SQL 2024. 2. 29. 22:15
    728x90
    반응형
    목차
    1. 과목별 핵심 150제 오답노트 (1/3)

    1. 과목별 핵심 150제 오답노트 (1/3)

     

     

    이기적 SQL 개발자 이론서 + 기출문제 문제집을 풀었고,
    SQLD 과목별 핵심 150제 중 50문제를 풀었다.
    데이터 모델링의 이해 30문제 중 13문제 / SQL 기본 및 활용 20문제 중 6문제를 틀렸다.

     

    오답 풀이

    데이터 모델링의 이해

    1. 정보시스템을 모델링 할 때, 세 가지 관점은 데이터, 프로세스, 데이터와 프로세스이다.

    데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 or 데이터 간의 관계는 무엇인지
    프로세스 관점 : 업무가 실제로 하고 있는 일은 무엇인지 or 무엇을 해야 하는지
    데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지

     

     

     

    2. 데이터 모델링의 세 가지 중요 개념은 Things, Attributes, Relationship이다.

    Things : 업무가 관여하는 어떤 것.
    Attributes : 업무가 관여하는 어떤 것의 성격.
    Relationship : 업무가 관여하는 어떤 것의 관계.

     

     

     

    10. 부모 엔터티로부터 속성을 받았지만, 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 것은 비식별자 관계이다.

    식별자 관계 : 어떤 정보가 다른 정보 없이는 존재할 수 없을 때, ex) 학생과 학번
    비식별자 관계 : 정보들이 서로 관련이 있지만 꼭 필요한 것은 아닐 때, ex) 학생과 성적
    일반 속성 관계 : 특정 정보가 다른 일반 정보와 어떤 관계를 가지고 있는지 설명, ex) 사람의 이름과 나이
    외부 식별 관계 : 하나의 정보 시스템이 다른 시스템의 정보를 필요로 할 때 생기는 관계, ex) 고객의 정보와 주문 기록

     

     

     

    12. 추상화 수준이 높고 업무 중심적이며 포괄적인 수준의 모델링을 진행하며, 전사적 데이터 모델링 시 많이 이용되는 모델링의 단계는 개념적 모델링이다.

    개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
    단계가 넘어갈수록 구체적이 된다. (추상화 수준이 낮아진다)

     

     

     

    13. 하나의 속성은 하나의 속성값을 가지며, 하나 이상의 속성값을 가지는 경우 정규화가 필요하다.

    엔터티의 특징
    ‣ 엔터티는 유일한 식별자가 있어야 한다.
    ‣ 2개 이상의 인스턴스가 있어야 한다.
    반드시 속성을 가지고 있다.
    다른 엔터티와 최소 한 개 이상 관계가 있다.
    업무에서 관리되어야 하는 집합이다.
    반응형

     

     

    15. 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해서 모델링하는 관점은 데이터 관점이다.

    데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 or 데이터 간의 관계는 무엇인지
    프로세스 관점 : 업무가 실제로 하고 있는 일은 무엇인지 or 무엇을 해야 하는지
    데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지

     

     

     

    16. Hash Join은 조인 작업을 수행할 때는 결과 행의 수가 적은 테이블을 선행 테이블로 사용하는 것이 좋다.

    Hash Join은 CPU 연산이 많이 발생되는 조인으로 조인을 할 때, 선행 테이블의 크기가 작아야 유리하다.

     

     

     

    18. 3차정규화는 속성 간 종속성을 가지면 안 된다.

    제1정규화는 모든 속성은 반드시 하나의 값을 가져야 한다.
    제2정규화는 모든 속성은 반드시 기본 키 전부에 종속되어야 한다.
    제3정규화는 식별자를 제외한 일반 속성 간 종속을 제거한다.
    BCNF는 다수의 주식별자를 분리시킨다.

     

     

     

    20. 엔터티의 모든 속성을 참조하기를 원할 때 가장 효율성이 좋은 반정규화 기법은 관계를 중복하는 방법이며 이를 적용하면 두 테이블의 조인 경로를 단축하게 되고 SQL문장을 단순하게 구성할 수 있다.

     

     

     

    22. 논리적인 데이터 모델에서 이용이 되는 슈퍼/서브 타입의 데이터 모델을 성능을 고려한 물리적인 데이터 모델에서 변환하는 방법은 세 가지 있다.

    1:1 타입
    슈퍼+서브 타입
    All in One 타입

     

     

     

    23. 분산 데이터베이스의 투명성에 속하지 않는 것은 병렬 투명성이다.

    분산 데이터베이스의 투명성 종류에는 분할 투명성, 위치 투명성, 지역 투명성, 중복(복제) 투명성, 병행 투명성, 장애 투명성이 있다.

     

     

     

    24. 테이블의 반정규화 기법 중 데이터 무결성을 깨뜨릴 위험을 갖지 않고서도 데이터 처리의 성능을 향상 시킬 수 있는 기법은 중복관계 추가이다.

    테이블과 칼럼의 반정규화는 데이터 무결성에 영향을 미치지만, 관계의 반정규화 기법 중 중복관계 추가는 데이터 무결성을 깨뜨릴 위험을 갖지 않고서도 데이터 처리의 성능을 향상 시킬 수 있다.

     

     

     

    29. 엔터티의 3가지 공통점이 있다.

    개념, 사건 사람, 장소 등과 같이 명사이다.
    비즈니스 프로세스에서 관리되어야 하는 정보이다.
    저장이 필요한 어떤 것이다.

     

     

    SQL 기본 및 활용

    31. 모든 자료는 실질적으로 테이블에 저장되며, 테이블에 있는 자료들을 꺼내 볼 수 있다.

    데이터베이스에는 자료의 성격에 따라 N개의 테이블을 생성한다.
    모든 자료들은 테이블에 입력되며 조회, 수정, 삭제할 수 있다.

     

     

     

    32. VARCHAR 유형은 가변 길이 문자형이다.

    728x90
    CHAR 유형은 고정 길이 문자형이다.
    NUMERIC 유형은 숫자형 데이터를 표현한다.
    DATE 유형은 날짜 데이터를 다룰 때 사용한다.

     

     

     

    35. COMMIT과 ROLLBACK은 영구적인 변경을 할 수 없게 하지 않는다.

    COMMIT과 ROLLBACK은 데이터 무결성을 보장한다.
    COMMIT과 ROLLBACK은 영구적인 변경을 하기 전에 데이터의 변경 사항 확인이 가능하다.
    COMMIT과 ROLLBACK은 논리적으로 연관된 작업을 그룹핑하여 처리가 가능하다.

     

     

     

    39. 예제의 ORDER BY 절과 같은 결과를 갖는 구문은 ORDER BY 선수명 ASC, 포지션, 3 DESC 이 될 수 있다.

    SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버
    FROM PLAYER
    ORDER BY PLAYER_NAME, POSITION, BACK_NO DESC;
    ORDER BY 절에서 정렬 기준이 생략되면 디폴트로 ASC 정렬이 된다.
    ORDER BY 절에는 칼럼명 대신에 SELECT 절에 기술한 칼럼의 순서 번호나 칼럼의 ALIAS명을 사용할 수 있다.

     

     

     

    40. 예제에서 틀린 부분은 SELECT 절이다.

    SELECT PLAYER.PLATER_NAME 선수명, TEAM.TEAM_NAME 팀명
    FROM PLAYER P, TEAM T
    WHERE P.TEAM_ID = T.TEAM_ID
    ORDER BY 선수명;
    FROM 절에 테이블에 대한 ALIAS를 사용했을 때, SELECT 절에서는 반드시 테이블명이 아닌 ALIAS명을 사용해야 한다.

     

     

     

    50. 절차형 SQL을 이용하여 PROCEDURE, TRIGGER, USER DEFINED FUNCTION을 만들 수 있다.

    PROCEDURE : 사용자가 정의한 특정한 작업을 수행하기 위해 SQL 문을 모아 놓은 것.
    TRIGGER : 특정한 조건이나 이벤트가 발생했을 때 자동으로 실행되는 절차형 SQL 코드.
    USER DEFINED FUNCTION : 사용자가 절차형 SQL을 사용하여 특정한 연산을 수행하는 함수를 직접 만들 수 있음.

     

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.