따끈따끈한 합격증

1. SQLD?

- 자격증 정보

  • 데이터베이스와 SQL에 대한 기본적인 지식을 검증하는 시험
  • 데이터베이스 기초, 데이터 모델링, SQL 작성 및 활용 등의 내용

- 취득 목적

  • QA 직무에서 데이터 관련 검증이 필요할 때 유용할 것으로 생각됨
  • 데이터베이스에 대한 이해

2. 시험 정보 및 일정

  • 비용 : 50,000원
  • 시험 장소 : 전국 어디서든!
  • 시험 범위
    1. 데이터 모델링의 이해 (10문제)
    - 기본 용어부터, 데이터베이스의 이론적 이야기가 많이 나옴
    2. SQL 기본및 활용 (40문제)
    - SELECT, From , Where과 같은 기본부터, groupby, orderby, join의 기본 내용
    - 서브쿼리, 집합연산자, 그룹함수, 윈도우함수, TOP N 쿼리, 계층형 질의, 셀프조인, 정규표현식의 활용성 높은 응용
    - DML, TCL, DDL, DCL 관리구문 내용
  • 시험 시간 : 90분
  • 합격 기준 : 객관식 50문항 중 30문제(60%) 취득 시, 과락이 존재

3. 공부 방법

- 사용한 학습 자료

가격 24,000원

이 책 하나면 충분했다!

특히 노랭이책을 많이 추천하는데, 이론을 배우고 기출문제를 하고싶은 마음에 이 책을 선택했다.

책의 장점
1. 150문제 + 기출 7회라는 어마어마한 문제의 양

2. 유튜브 강의 제공 ( 목소리가 상당히 달달해서 듣기 좋았다 )
책의 단점
1. 프로시저와 같은 개정되어 사라진 내용들이 한두문제씩 섞여있다.

유튜브 강의를 잘 듣고, "이 문제는 안나오는거니까 넘어갑니다" 이런식으로 말하는걸 잘 듣고 문제를 걸러야했다.

2. 많은 문제 사이에서 중복된 문제들도 있었다.

그럼에도 문제의 양이 많아서 좋긴하다..

 

- 공부 기간 및 학습 계획 :

수업을 병행하면서 듣기엔 쉽지 않을것 같아서 공부 기간을 길게 잡았다. 한 4주?

평일에는 하루 한두시간만 하자는 마인드로 했었고, 주말에는 3시간에서 4시간정도 잡았다.

이론을 보다보면 이해가 안가는 내용이 많은데, 그럴때는 (누워서) 태블릿으로 유튜브 강의를 들었다.

내용과 문제는 정보처리기사에서 봤을법한 내용이라 쉽게 딸 수 있었는듯!

 

4. 시험 후기 및 난이도

- 시험에서 어려웠던 부분

전체적으로 뭔 문제인지 전혀 이해 못하는 문제도 있었고, 기출에서 봐서 10초도 안돼 푼 문제도 있었다.
준비를 나름 한 시험인 만큼, 모르는 문제는 없고 어려운 문제가 많을 줄 알았는데, 모르는 문제가 나와서 좀 당황했지만!

 

 

- 38점 체감 난이도

그래도, 38문제를 맞춘 걸 보니 쉬운 편 이었던 것 같다.

시험 발표 전까지는 굉장히 조마조마했다. 합격 확신을 못했었는데, 생각보다 고득점을 했었다!

 

5. 느낀점 & 목표

- 취득 후 느낀점 

자격증 내용 중 많이 알찼던 내용이 많았다. 물론 실무에서 DB에 접근해본 적은 없지만, 이론으로나마 DB 구조를 상상보고, 데이터를 어떻게 가져올지 생각해볼 수 있었다!

실제로 실무에서, 기획자와 개발자 사이에서 SQL문을 공유하는걸 봤었는데, 이제야 어떤말인지 볼 수 있는 눈이 생기지 않았을까 싶다.

 

- 목표

실제 데이터베이스 접근할 일이 생기면 많이 써보면서 익숙해지고싶다.

지금의 수준은 배운 수준의 SQL 구문이 주어지면 어떤 구문인지 읽을수는 있는 단계인 것 같다.

외국어와 같이, 글을 읽는거랑 글을 쓰는건 다를거니까..

1. 스키마란?

데이터 베이스 구조와 제약 조건을 정의하는 설계도 또는 청사진

2. 3층 스키마?

외부, 개념, 내부 (외개인..) 스키마로 나누어져있음

스키마 역할 예시
외부 사용자에게 보여주는 데이터 고객은 본인 계좌만 조회, 직원은 모든 계좌 조회
개념 전체적인 구조 고객,계좌,거래 테이블이 있고, 고객과 연결
내부 물리적으로 저장하는 방식 인덱스, 파일 저장 위치 등 어떻게저장할지..

- GPT 질문 결과

3. 데이터 정규화

NF = 정규형, 정규화가 되었다는 뜻임

 

1NF - 하나의 원자값만 가져야함

예시)

홍길동 ex@email.com,
2ex@email.com

 

홍길동 ex@email.com,
홍길동 2ex@email.com

 

 

하는 이유

- 검색할때 방해됨

 

2NF - 부분 함수 종속 제거

1NF가 만족되었는데, primary key(기본키)가 복합키(2개 이상)인 경우도 있음 / 만약 기본키가 한개면 2NF 할 필요 X

기본키의 일부에만 의존하는 속성이 있어서는 안됨

예시)

회원번호 회원명 프로그램 가격
101 홍길동 헬스 5000
102 김철수 헬스 5000
102 김철수 골프 6000

출처 : https://www.youtube.com/watch?v=Y1FbowQRcmI

여기서는, 기본키(Primary Key)가 없음. (Unique한게 없음)

그래서 복합 기본키 (Composite Primary Key)를 만들 수 있음. 회원번호 속성과 프로그램 속성을 합치면 됨

만약 이런 상황에서 2NF를 진행하겠다고 하면, 가격 컬럼이 프로그램에 종속됨

가격 컬럼을 제거 (새로운 테이블에서 만들어주기) 하면됨

결과)

회원번호 회원명 프로그램
101 홍길동 헬스
102 김철수 헬스
102 김철수 골프
헬스 5000
골프 6000

 

하는 이유

- 안해놓으면 헬스 가격이 바뀌면 헬스 프로그램 - 가격을 하나하나 다 바꿔줘야함

 

3NF - 이행 함수 종속 제거

2NF가 만족된 상태에서, 기본키가 아닌 속성이 또 다른 기본키가 아닌 속성에 의존하면 안됨

즉, 키가 아닌 속성끼리 종속되면 안된다는 뜻

프로그램 강사 출신대
스쿼시 김철수 서울대
골프 김영희 연세대
헬스 김바둑 고려대
피티 김바둑 고려대

 

여기서 키는 "프로그램"이라고 했을때, 강사와 출신대는 키가 아닌데 종속관계임

(출신대는 강사에게 종속됨)

이 경우, 분리해주는게 3NF

 

하는 이유

- 김바둑씨가 만약 출신대학이 바뀌면 강사 - 김바둑의 출신대학을 하나하나 다 바꿔줘야함

 

4. 식별관계 vs 비식별관계

식별관계

부모 테이블의 기본키가 자식 테이블의 기본키 일부로 포함됨

예시 ) 

학생 , 성적 테이블 관계

학생 없이는 성적이 존재할 수가 없음

따라서, 식별관계임.

- Strong 결합 관계

비식별관계

부모 테이블의 기본키가 자식 테이블의 외래키로만 들어가고, 기본키에는 포함되지 않음

예시 )

학생, 장학금 테이블 관계

학생이 없어도 장학금이 존재할 수도 있음

따라서, 비식별관계

Weak 결합 관계

 

5. 반정규화

반정규화란? 정규화 해놓은거 다시 부분적으로 되돌려서 데이터 중복을 허용

왜? 조회 성능을 향상시키기 위해

왜 조회 성능이 향상됨? 조인이 줄어들기 때문

단점은? 데이터 중복이 발생하니 일관성 유지가 어려움

+ Recent posts