[DB]_프로젝트 개인 질문

‍전희주·2023년 2월 19일

🧡 질문1. 4번 쿼리문(각 종목 별 게시글 수의 일주일 동안의 평균과 기업개요 구하기)에서 임의의 날짜 값을 sysdate로 변경하면 아래와 같이 작성하면 될까요?

SELECT y.종목_종목코드, 종목.종목이름, 
기업정보.기업개요,y.평균게시글수

FROM 종목,기업정보,
    (SELECT 종목_종목코드, COUNT(*)/7 AS 평균게시글수
    FROM 종목토론실
    WHERE 작성일자 BETWEEN TO_CHAR(SYSDATE, 'YYYY-MM-DD')
                  AND TO_CHAR(SYSDATE+6, 'YYYY-MM-DD')
    GROUP BY 종목_종목코드) y
    
WHERE 종목.종목코드 = 기업정보."종목_종목코드"
    
    AND Y.종목_종목코드 = 종목.종목코드;
    

🧡 질문3. 6번 쿼리문(각 종목별 일주일 동안의 평균 게시물 수보다 오늘 게시물 수가 많은 종목 구하기)에서 임의의 날짜 값을 sysdate로 변경하면 아래와 같이 작성하면 될까요?

SELECT 종목_종목코드, COUNT(*)
FROM 종목토론실
WHERE 작성일자 BETWEEN to_char(sysdate, 'yyyy-mm-dd')
              AND to_char(sysdate+6, 'yyyy-mm-dd')
GROUP BY 종목_종목코드
HAVING COUNT
(CASE WHEN 작성일자 = to_char(sysdate, 'yyyy-mm-dd') THEN 1 END)
> (COUNT(*)/7);

🧡 질문4. 6번 쿼리문 1행에서 SELECT 종목_종목코드, COUNT(*) 의 COUNT(*)는 종목토론실의 종목코드별 일주일간 업로드된 게시글 수를 나타내는 건지?

THEN '1' 에 있는 숫자 1과 COUNT() 결과값으로 나온 숫자1의 의미가 다른것이죠?
숫자가 같아서 제가 헷갈린 것 같습니다!
즉, THEN 1에서는 1이 조건으로 사용되었고, COUNT(
) 칼럼에 있는 속성 1은 실제 일일 업로드된 게시물 개수가 1이라는 것

🧡 질문5. 6번 쿼리문 HAVING COUNT(CASE WHEN 작성일자 = '2023-02-10' THEN 1 END) > (COUNT(*)/7);
위 HAVING절 서브쿼리문 해석이 다음이 맞는지?

작성일자가 2023-02-10 이면, 1을 반환하는데, 반환된 1의 개수가 일주일간 종목토론실에 올라온 게시글의 평균 개수보다 많도록 종목_종목코드 그룹에 제약을 건다.

SELECT 종목종목코드, COUNT(), (COUNT()/7)
FROM 종목토론실
WHERE 작성일자 BETWEEN '2023-02-04'
AND '2023-02-08'
GROUP BY 종목
종목코드
HAVING COUNT(CASE WHEN 작성일자 = '2023-02-08' THEN 8 END) > (COUNT(*)/7);
상기와 같이 THEN 8 조건으로 입력해도 게시글 수 가 1개라서 1을 반환~

🧡 질문6. (게시글번호, 종목코드)가 사용자 ID의 결정자인가?

즉, (게시글번호, 종목코드)로 사용자 id 구분 가능한가?

저 속성 칼럼들이 모두 하나의 릴레이션에 있다고 가정할 때, 종목코드와 게시글 번호를 안다는 것은 어떤 종목토론실의 특정 게시물 정보를 안다는 것과 같기 때문에, 사용자 id의 결정자가 되는 것이 맞습니다.

🧡 질문 7.) 게시글 번호는 단순히 게시글의 순서를 나타내는 번호가 아니라, 종목의 종목코드처럼 게시글 사용자에게 부여되는 고유의 식별 번호를 의미하는가?

즉, 하나의 게시글은 하나의 사용자에 의해 작성되는가?

아래와 같은 예시로 생각하면 될까요?
0 = (admin) 관리자의 게시글
1 = a 사용자의 게시글
2 = b 사용자의 게시글
...

종토실은 항상 사용자가 있지만 (전체참여)
사용자는 종토실이 있을수도, 없을수도 있음 (부분참여)

게시물 번호는 사용자아이디나 종목코드와는 별개로, 하나의 게시물에 하나만 부여되는 하나의 번호로 나타나네요~

발표 스크립트

  1. 목차
    시스템 서비스 구현 요구사항 분석-er-관계 데이터 모델-물리적 데이터 모델링(실제 sql문 작성)
  2. 주제의 시의성 분석 (증권 시장 흐름 관련)
    -코로나 19 경기 침체 예상 금리 인하(투자 비용 감소) 증시 활성화
    but, 물가 상승 우려한 금리 인상, 연이은 빅스텝으로 소비자, 기업 투자 심리 위축, 투기성 자산 -수익 감소, 증시 침체 당면
    but, 금리 인상 완화 예상(2023 단기간 금리인하는 안할지라도), 미국 소비자 물가 지수(cpi) 안정화 예상
    -경기 안정화 장기적 예상에 따른 증시 활성화 예상
    -> 유가증권시장 내 더 많은 이용자 유입 예상
    -> 코로나 19 상황가 유사하게 미래 현금흐름을 창출하는 자산에 대한 수요 증대 기대
    -> 경기 침체 현상과 반대로 증시 강세 추세 보임
    -> 미래 현금흐름 창출하는 자산 중 대표적, 가치주
    -> 저평가 우량주 테마의 알림 시스템+게시글 급등주, 유명 기업 인사들(테슬라, 워런 버핏, 존리) 의 언급을 받은 주식들 등 입문자 위한 금융 추천, 알림 서비스 제안
  3. 시스템 서비스 구현 요구사항 분석-er-관계 데이터 모델-물리적 데이터 모델링(실제 sql문 작성)
    -사용자가 주식 정보 제공 시스템을 통해 제공받기를 원하는 기능-> 문서화
    -시스템의 입력과 출력으로 무엇이 포함되어야 하는지에 대한 사항
  4. er 모델 작성 1:1, 1:n, m:n 관계, 표시 위주 설명
    (개체 타입=개체들의 집합,즉 개체와 개체 타입은 다른 개념임! 네모 표시)
    (속성, 원 표시)
    (관계, 릴레이션으로 표시 가능, 마름모 표시)
    (강한개체타입-약한개체타입간 연결 관계=이중 마름모)
  5. 관계 데이터 모델로의 사상_ 1~4 방법 언급하며 사상 설명
  6. 스키마 정규화 (1nf, 2nf, 3nf, bcnf)
    매매 릴레이션의 경우 증권 거래 관련 릴레이션, 방대한 양, 고객 정보, 민감한 정보라 중복값이나 null이 최대한 해결되어야 한다고 생각하여 bcnf 정규화까지 고려하였으나,
    스키마 설계 단계에서 정규화를 고려했어서 그런지 2nf까지 했을때 3nf,bcnf 를 모두 만족해
    교안에 나온것처럼 단계별로 릴레이션 분해가 잘 드러나지 않음을 미리 얘기
  7. 스키마 생성 및 데이터 로딩
  8. sql 작성
  • 특정 사용자가 작성한 모든 게시글 보기
  • (카티전 프로덕트 실행) 각 종목요약 재무와, 기업 개요 보여주기 (내부 조인으로 공통된 컬럼들에 조건을 걸어 테이블 간 연결 수행함)
  • 저평가 우량주(요약재무)인 종목과 그 종목의 기업 개요
    각 테이블 내부 조인 (공통 컬럼에 조건 제시)
  • case when: 컬럼명이 ~~조건일 때 ~~결과를 출력한다
  1. 수익성 지표 설명 (완벽하게)
    pbr(주가 순자산 비율): 주가/bps주당 순자산 가치(순자산/유통주식수)=시가총액/순자산 , 청산가치 1 <=1%
    의미
    시가총액이 자본 대비 몇 배 상태인지 보는 지표
    자본 총계(기업 모든 자산 - 모든 부채) 대비 시가총액이 몇 배인가?
    PBR이 1보다 작다 -> 자본 대비 저평가
    PBR을 흔히 청산가치로 표현
    PBR이 1이면 주가와 기업의 청산가치 같다.
    1이하면 주가가 청산가치에도 못미칠만큼 저평가
    CF. PBR이 1보다 크다 -> 자본 대비 고평가 (보통 4 정도 넘어야 고평가라고 합니다.)
    per(주가 수익 비율): 주가/eps주당이익(당기순이익/유통주식수)=시가총액/당기순이익 <10%
    의미)PER 계산식 의미: 순이익으로 몇 년을 벌어야 시가 총액과 같아지는가? (몇 년 안에 투자원금을 회수할 수 있는가?)
    PER이 낮다 -> 주식 가격 대비 순이익이 높다 -> 투자원금을 빨리 회수한다(저평가 되어있다)
    roe(자기자본 이익률): 당기순이익/순자산(자산-부채) >=3%
    pbr/roe=per
    ROE 계산식 의미:
    기업이 주주지분을 활용해 연간 얼마의 수익창출을 하였는지 나타내는 대표적인 수익성 지표
    간단하게 ROE 표현하면 '투자 대비 수익률'
    자기자본에 비해서 이익을 많이 내면 낼수록 이익창출하는 힘이 강하다.
    ROE가 높다는 것은 자기자본에 비해 이익 창출을 많이 한다는 것으로 ROE를 체크하는 것은 종목선정의 기본이 됨
  2. ie 표기 부연 설명
  • ie 표기법 사상_ (헷갈릴 수 있는 내용 부연 설명)
    기업 정보가 없는 경우
    dart, 등 전자 공시 하지 않은 경우
    자본시장법상 공시 의무가 존재하지 않는 기업의 경우 (소액 공모 법인)
    소액 공모 법인의 경우 정기보고서 제출 의무 없음
    사용자(일반 소액 투자자)가 없는 경우
    -> 신규 상장 직후 예수자가 존재하지 않는 경우
    주요 주주가 없는 경우
    주인 없는 코스닥 시장 상장 기업 ex. (주)'엠바이엔'
    i) 주요주주: 의결권 있는 발행주식총수의 10% 이상 소유자
    또는 10% 이상 소유하고 있지 않은 주주라도 당해법인의 주요 경영에 사실상 영향력을 행사하는 주주를 말한다 (증권거래법 §188조 ①).
    • 종목은 기업 정보가 없는 경우(0)가 있을 수 있다.
      • 자본시장법상의 공시 의무 기준에 미치지 못한 기업의 경우
      • 모집, 매출 등 여타의 사업보고서 제출대상에 해당하지 않는 소액공모법인의 경우 정기보고서 제출의무가 없음.
      • 출처:
        https://dart.fss.or.kr/info/main.do?menu=210
    • 종목은 주요 주주가 없는 경우(0)가 있을 수 있다.
      • 주인이 없는 코스닥 상장 기업의 경우 ex. (주)'엠바이엔'
    • 종목은 사용자(일반 소액 주주)가 없는 경우(0)가 있을 수 있다.
      - 기업 신규 상장 직후 예수자가 없는 경우.
      기타 용어 정리
  • 물타기: 주가 하락시 주가 구입, 평균 매입단가 (농도)를 낮춰서((10000+9000)/2=9500), 추후 주가 상승시(10000 으로 반등->500 이득) 이익을 챙기는 것
  • 저평가 우량주 = 가치주
  • 우량주: 재무구조가 탄탄하고 수익성이 좋은 기업의 주식을 의미
profile
heejoojeon@daou.co.kr

0개의 댓글