inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요. 질문이 있습니다!! 제2정규화는 제 1 정규형을 만족하고, 테이블의 기본키가 복합키일 때 부분 함수 종속이 있으면 적용할 수 있잖아요 근데 이전 강의 영상에서 말씀하셨듯이 유연하고 확장성 있는 설계를 하기 위해 자연키가 아닌 대리키를 사용하고, 연관 엔티티(매핑 테이블)을 두어 사용하려면 비즈니스 로직에 따라 유니크 제약조건을 걸어 해결하라고 하셨습니다 그럼 여기서 궁금한 것이 이렇게 실무적인 접근으로 설계를 한다면(대리키) 항상 키는 단일컬럼 키니까 복합키가 아니라서 항상 제 2정규형을 만족하는 것인가요??

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 1 좋아요 0 조회수 98

Part1 > Chapter2 단원정리문제

미해결

[2026] 비전공자도 한 번에 합격하는 SQLD 올인원

안녕하세요 선생님, 단원정리문제를 풀다 이해가 되지 않는 부분이 있어 문의드립니다. 바로 Q&A상단에 같은 문의가 있긴한데 올려주신 답변으로는 이해가 잘 되지않아 문의드립니다. 문제7번) 관계에서 1:M관계에 대한 문제입니다 [학생 - 강의] 한학생이 여러강의를 들을 수있고 한강의에 여러학생이 듣는다는게 일반적인 사회적 통념인것같은데 어째서 이게 1:M인지 모르겠습니다. '학생 - 수강신청' 이런 느낌이엇으면 이해가 됬을거같은데 어째서 학생-강의 가 1:M이 되는걸까요? 보편적으로 시험에서 나온다면 '강의'라는 것은 강의의 종류를 말하는것인지(ex. sql강의, 빅데이터강의) 강의를 듣는다는 행위인지(ex.수강신청)가 궁금합니다. [강사 - 과목] 한강사가 여러과목을 할수있고, 한과목에는 한강사가 연결된다는것이 일반적인 사회적 통념이라 해당부분은 이해했습니다! [주문 - 주문상세] 한주문에 여러주문상세가 만들어질 수 있어서 1:M인걸까요? 주문상세 라고 하는건 A주문건에 대한 상세라고 생각해서 1:1관계라고 생각했는데 이거는 좀 다른 해석이 되는걸까요? 앞에 수업에서도 계속 헷갈렸는데, 마지막 단원정리에서까지 틀리니 확실히 알고 넘어가야겠다 싶어서 문의드립니다!

  • sql
  • 빅데이터
  • 코딩-테스트
  • 데이터-엔지니어링
  • SQLD
하민 댓글 2 좋아요 0 조회수 83

슈퍼/서브 타입 joined 전략

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

db의 슈퍼/서브 타입으로 설계된 부분을 보면 joined 전략으로 했을 경우 어쩔 수 없이 식별 관계로 해야하는 경우가 있던데 이럴 경우 sigle table 전략으로 푸는 게 나은 것 같으세요? 아니면 어쩔 수 없이 식별 관계로 풀려고 하는 게 나은 것 같으신가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 2 좋아요 0 조회수 86

월요일것은 언제부터 볼 수 있나요?

해결됨

[4주 과정] 저자와 함께 하는 『퀵스타트 SQL with 챗GPT』 완독 챌린지

월 1장을 볼려고 하는데 아무것도 표시가 안되서요. 언제부터 볼 수 있는 것인지요?

  • sql
  • oracle
  • chatgpt
  • 북-챌린지
adaylily 댓글 1 좋아요 0 조회수 81

그 EXISTS의 힌트절에 NESTED LOOP를 쓰는이유 질문

미해결

실무에서 바로 쓰는 SQL튜닝 45가지

EXISTS 힌트절에 NL_SJ을 써야한다고 말씀하셨는데 이게 EXISTS 자체가 하나씩 상관 서브 쿼리에 사용이 되기 때문에 NL_SJ를 써야한다는 거죠? IN 같은 경우는 독립적으로 실행이 가능하기 떄문에 HASH_SJ가 유리한거구요?

  • sql
  • oracle
  • 데이터-엔지니어링
c신승호 댓글 2 좋아요 0 조회수 126

어우 옵티마이저가 뛰어난건지..

미해결

실무에서 바로 쓰는 SQL튜닝 45가지

SELECT COUNT(*) FROM ORDERS WHERE MEMBER_ID IN ( SELECT /*+ UNNEST HASH_SJ */ MEMBER_ID FROM MEMBERS WHERE CITY = 'Busan' ); 이렇게 진행을 하더라도 옵티마이저가 멋대로 HASH JOIN RIGHT SEMI로 MEMBERS를 선행해버리네요

  • sql
  • oracle
  • 데이터-엔지니어링
c신승호 댓글 1 좋아요 0 조회수 78

안녕하세요 NESTED LOOP 문제에서

미해결

실무에서 바로 쓰는 SQL튜닝 45가지

CREATE INDEX EMP_DEPTNO_ENAME ON EMP(DEPTNO, ENAME); CREATE INDEX DEPT_DEPTNO_LOC ON DEPT(DEPTNO, LOC); SELECT /*+ LEADING(E D) USE_NL(D) INDEX_SS(E EMP_DEPTNO_ENAME) INDEX(D DEPT_DEPTNO_LOC) */ E.ENAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.ENAME = 'SCOTT'; 이렇게 결합컬럼인덱스 접근하니 BUFFERS수가 더 주는데 이렇게 풀이를 해도 괜찮을까요??

  • sql
  • oracle
  • 데이터-엔지니어링
c신승호 댓글 2 좋아요 0 조회수 105

리트코드 1280. Students and Examinations

해결됨

[백문이불여일타] 데이터 분석을 위한 중급 SQL

SELECT st.student_id , st.student_name , su.subject_name , COUNT(e.student_id) AS 'attended_exams' FROM Students AS st CROSS JOIN Subjects AS su LEFT JOIN Examinations AS e ON st.student_id = e.student_id AND su.subject_name = e.subject_name GROUP BY su.subject_name ORDER BY st.student_id, su.subject_name [리트코드 1280. Students and Examinations] 정답과 다르게 작성한 부분은 GROUP BY 입니다. 저는 GROUP BY에 sb.subject_name 만 작성했습니다.. 이 때 Output이 Alice 결과만 나오는 것도 이해가 안가고 [CROSS JOIN+연습문제풀이] 해설영상을 보면 6분12초 "GROUP BY의 기준컬럼으로 사용하면 되겠구요" 라는 부분이 이해가 안가요..ㅠㅠ 제가 GROUP BY의 개념이해가 부족한 것 같은데... 어느 부분을 제가 못잡고 있는 걸까요? 추가로 도움될만한 영상이나 글이 있을까요? +추가) 같은 맥락으로.. 해커랭크 [ Average Population of Each Continent ] SELECT co.CONTINENT , FLOOR(AVG(ci.population)) FROM CITY AS ci INNER JOIN COUNTRY AS co ON ci.COUNTRYCODE = co.CODE GROUP BY co.CONTINENT, ci.population 해당문제는 GROUP BY에 컬럼 둘 다 넣었는데 얜 또 컬럼 하나만 넣어야 되더라구요 ㅠ

  • sql
[SQL 실전반 6기] 벨벨 댓글 3 좋아요 0 조회수 112

SSO KeyStore not available

미해결

실습으로 손에 잡히는 SQLD(2과목)

파일 경로는 위에 캡쳐 보시다시피 잘 적은거 같은데, 자꾸 오류가 뜨네요..ㅠ 비전공자에게 환경설정 설명이 너무 러프하다는 생각이 듭니다ㅠㅠ 한시간째 붙잡고 있어요.

  • sql
  • oracle
  • mssql
  • SQLD
송송뀨 댓글 2 좋아요 0 조회수 107

created_at 관련 구현과 DB ENUM에 대해

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요, 강사님. 이번 강의를 듣고 2가지 궁금증이 생겨 질문을 올리게 되었습니다. created_at 과 updated_at 구현 DB 레벨에서 ON UPDATE 와 DEFAULT CURRENT_TIMESTAMP 를 활용할 수 있다고 말씀해 주셨는데요, JPA에서는 @CreatedDate 와 @LastModifiedDate 로 애플리케이션 단에서 이를 구현할 수도 있습니다. 실무에서는 각각을 언제 사용할까요? 그리고 권장하는 구현이 따로 있으실까요? DB ENUM 타입을 잘 사용하지 않는 이유 실무에서 DB ENUM 데이터 타입 사용을 권장하지 않는다는 말씀으로 이해했습니다. 단순히 해당 ENUM 값의 범위가 변경되었을 때 이를 바꿔주는 것 이상으로 성능 이슈가 있어서라고 생각했습니다만, 정확히 알기가 어렵습니다. 자세한 설명을 부탁드려도 될까요? 감사합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • jpa
ZZAMBA 댓글 1 좋아요 0 조회수 89

battle table 오류

해결됨

초보자를 위한 BigQuery(SQL) 입문

현재 battle 미리보기 오류까진 해결하는 방법을 확인해서 basic2로 새로 세팅해서 battle을 만드는 과정에 있습니다. 그과정에서 해당 오류가 뜨고 있습니다. 이렇게 세팅된 상태이긴합니다. 근데 battle. CSV 파일 확인해보니 timestamp 쪽에서 사용자지정이 아닌 일반으로 되어, 시간이 안나오고 문자열로 된 상태인데, 이거땜에 오류가 발생하는건지 문의드립니다. 테이블 만들기

  • sql
  • bigquery
  • 데이터-리터러시
민수 댓글 2 좋아요 0 조회수 105

신규 쿼리 공간 오류 문의

미해결

[개념반]배워서 바로 쓰는 SQL 쿼리

안녕하세요, 2026년 수강중인 사람입니다. 기존에 첨부해주신 실습 링크 https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all 에서 limit과 같은 몇몇 기능이 실행이 안되던데, 새로 첨부해주신 https://easysqls.w3spaces.com/ -> 여기는 아예 사이트 자체가 안열립니다. 로딩만 계속 되구요 강의가 나온 지 꽤 오래된것 같은데, 이부분 해결해주셨음 합니다.

  • sql
반디 댓글 1 좋아요 0 조회수 69

M:N 관계의 연관 엔티티 설계 순서

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

이런 식으로 실무적으로 접근했을 때 이 강의에서 예시를 들어주셨던 것처럼 (학생, 과목, 수강), (사용자, 영화, 평가) 엔티티를 개념적 모델링 단계에서 먼저 설계를 할텐데, 이때 설계 순서가 궁금합니다. (학생, 과목), (사용자, 영화) 와 같은 기본 엔티티를 먼저 만든 다음에 M:N 다대다 관계인 것을 확인하고 이것을 풀어내면서 동시에 비즈니스적 의미를 넣기 위해 중심(연관) 엔티티를 만드는 게 일반적인가요? 아니면 처음부터 학생 -> 수강 -> 과목 or 사용자 -> 평가 -> 영화 로 이어지도록 설계하는 게 일반적인가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 2 좋아요 0 조회수 100

동일하게 쿼리를 작성했는데 화면과 다른 값이 나옵니다

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

SELECT user_id , event_date , event_name , event_timestamp , user_pseudo_id , MAX(IF(par.key='firebase_screen', par.value.string_value, NULL)) AS firebase_screen , MAX(IF(par.key='food_id', par.value.int_value, NULL)) AS food_id , MAX(IF(par.key='session_id', par.value.string_value, NULL)) AS session_id FROM `advanced.app_logs` CROSS JOIN UNNEST(event_params) AS par WHERE event_date = '2022-08-01' GROUP BY ALL LIMIT 100; app_logs 피벗하는 문제인데 food_id가 null 밖에 없는 건 아니지만 보여주신 화면과 그 값이 많이 상이한 거 같아서요.. 이유가 뭔지를 알 수 있을까요 ㅜㅜ

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
S-EK 댓글 2 좋아요 0 조회수 99

lag/lead offset 관련 질문

미해결

데이터 분석 SQL Fundamentals

안녕하세요 강의 너무 잘 듣고 있습니다. lag와 lead 함수에서 offset은 row 단위로밖에 설정을 못하는 걸까요? hiredate를 기준으로 order by 했을 때 day를 기준으로 offset을 설정할 수 있는지 궁금합니다. ex) lag를 이용하여 1일전 매출을 가져오는 방법

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
자비스 댓글 2 좋아요 0 조회수 86

"주문별 고객별 연관 상품 추출 SQL로 구하기-02" 수업 질문

미해결

다양한 사례로 익히는 SQL 데이터 분석

강사님 안녕하세요 WITH절로 조인하셨을때 아래와 같이 WHERE절에서 product_id를 비교했을때와 조인조건으로 넣었을때 같은 실행계획과 성능이 나오는것 같은데 둘다 맞다고 봐도 되나요? 조인조건에 있는 것과 where조건에 있는 것이 어떤 차이가 있는지 잘 모르겠어서요! [궁금한 사항] join temp_00 b on a . user_id = b . user_id and a . product_id != b . product_id --where a.product_id != b.product_id [전체쿼리] with temp_00 as ( select b . user_id , a . order_id , a . product_id from order_items a join orders b on a . order_id = b . order_id ), temp_01 as ( select a . user_id , a . product_id as prod_01 , b . product_id as prod_02 from temp_00 a join temp_00 b on a . user_id = b . user_id and a . product_id != b . product_id --where a.product_id != b.product_id ) select count (*) from temp_01

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
  • data-analysis
박준현 댓글 2 좋아요 0 조회수 84

음 잘 입력한거 같은데... 세션이 만료가 되버려 조회가 안됩니다.. 질의 결과에서 계속 돌고있습니다.

미해결

실무에서 바로 쓰는 SQL [SQL200제 저자 직강]

CREATE OR REPLACE VIEW speech_view AS SELECT REGEXP_SUBSTR(lower(speech_text), '[^ ]+', 1, a) word FROM speech, (SELECT LEVEL a FROM dual CONNECT BY LEVEL <= 52); SELECT COUNT(word) AS 부정단어 FROM speech_view WHERE lower(word) IN (SELECT lower(n_text) FROM negative);

  • sql
  • 빅데이터
  • oracle
c신승호 댓글 2 좋아요 0 조회수 79

데이터 역사성 훼손 문제

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

자연키를 기본키로 설정했을 때 발생할 수 있는 문제점에서 데이터의 역사성 훼손을 예로 들었는데 이 문제는 대리키를 기본키로 등록했어도 발생할 수 있는 문제 아닌가요? 이 문제를 해결하기 위해서는 어쩔 수 없이 주문 테이블에도 email 등을 중복으로 저장해야 해결할 수 있는 거 아닌가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 2 좋아요 0 조회수 81

sql서버가 켜지면 다시 꺼짐

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

mac m3 max 기준에서 8.0.44버전을 다운로드하면 sql서버가 켜지면 다시 꺼지고 켰다가 다시 꺼지고를 반복이 됩니다. 이런경우에는 어떻게 해야하나요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
공동욱 댓글 2 좋아요 0 조회수 160

인기 태그

인프런 TOP Writers

주간 인기글