목록분류 전체보기 (38)
희렌버핏
1 옵티마이저와 실행 계획1.1 옵티마이저 - SQL의 실행계획을 수립, 실행 => 성능 차이 1.2 옵티마이저 특징 - 데이터 딕셔너리에 있는 통계를 바탕으로 비용 산정하여 최저 비용 계획을 실행 1.3 옵티마이저의 필요성 - 큰 테이블 : EMP / 작은 테이블 : DEPT ===> 교집합을 AND로 도출하는 경우 - 작은 테이블 전체를 읽고 EMP와 같은 행을 찾는게 최적의 계획 - 옵티마지어에게 힌트를 줘서 실행계획 변경 가능 1.4 옵티마이저 실행계획 확인 - SQL은 실행계획을 PLAN_TABLE에 저장 - TOAD > Exception Plan Current SQL 메뉴에서 확인가능 ex) TABLE ACCESS FULL => EMP 테이블을 모두 읽었다는 표시개발자SQL > Parsing(..
1 조인(Join)1.1 EQUI JOIN (등가 교집합) - '='을 사용해서 연결SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO = DEPTNO.DEPTNO;1.1.2 INNER JOIN - 'INNER JOIN'이라는 텍스트를 사용하고 where가 없음?SELECT * FROM EMP INNER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO AND EMP.ENAME LIKE '임%' ORDER BY ENAME;* 해시조인 - 선행테이블에서 주어진 조건에 해당하는 행을 선택 - 해시 테이블을 메인 메모리에 생성 - 후행 테이블에서 주어진 조건에 만족하는 행을 찾음 - 조인키를 사용하여 해시함수 적용. 해당 버킷 검색 1.1.3 INTERSECT 연산 - ..
1 관계형 데이터베이스1.1 관계형 데이터베이스 등장 - 1970년대 E.F. Codd 박사의 논문에서 처음 소개된 데이터베이스 - 조인 연산을 통해 합집합,교집합,차집합 생성 1.2 DB와 DB 관리 시스템의 차이점 - DB 종류 : 계층형, 네트워크형, 관계형 ① 계층형 : 트리형태의 자료구조, 1:N 관계 ② 네트워크 : 오너와 멤버 형태로 데이터 저장, 1:N & M:N 둘다 가능 ③ 관계형 : 릴레이션에 데이터 저장 관리, 릴레이션을 사용해 집합연산 관계연산 가능 - DB 관리 시스템 : DBMS, 데이터베이스 관리 위한 소프트웨어 1.3 관계형 데이터베이스 집합 연산과 관계 연산 - 집합연산 ① 합집합(Union) : 두 개의 릴레이션을 하나로 합하는 것. 중복된 행 한번만 조회 ② 차집합(D..
1 정규화1.1 정규화 - 일관성, 최소 중복, 최대 유연성 위한 방법 - 데이터를 분해하는 과정 - 독립성을 확보하기 위한 방법 - 변화 발생해도 변경 최소화 - 제 5정규화까지 있지만 3정규화까지만 수행 - 불필요한 데이터 입력하지 않아도 돼서 중복 데이터가 제거된다. * 함수적 종속 : X -> Y 이면 Y는 X에 함수적으로 종속 1.2 정규화 절차 ① 제1정규화 - 기본키를 설정 ex) 계좌번호 하나만으로는 유일성을 만족하지 못해 회원id를 함께 기본키로 추가 - 유일성을 만족할 수 있는 식별자를 찾는다. 한개의 컬럼으로 안될 경우 두개를 합친다. ② 제2정규화 - 기본키가 2개 이상의 컬럼으로 이루어진 경우 부분 함수 종속성을 제거(분해)한다. - 부분 함수 종속성 : 회원ID가 변경되면 이름도..
1 데이터 모델링의 이해1.1 데이터 모델링 - 현실세계를 추상화 - 모델링 위해 고객 업무 프로세스 이해 > 데이터 모델링 표기법 사용하여 모델링 - 복잡하지 않게 - 고객 업무 프로세스 추상화 > 분석 설계하면서 더 상세 - 정의된 비즈니스 규칙을 데이터 모델로 표현 1.2 데이터 모델링 특징 - 추상화 : 현실세계 간략 표현 - 단순화 : 누구나 쉽게 이해 - 명확성 : 명확한 의미 해석 1.3 데이터 모델링 단계 - 개념적 모델링 : -- 전사적 관점(업무 전체에 대해서 데이터 모델링) -- 기술적 언어 사용x -- 엔터티와 속성 도출 -- 추상적 수준이 가장 높은 모델링 -- 모델 관계없이 업무 측면에서 모델링 - 논리적 모델링 : -- 특정 데이터베이스 모델링에 종속 -- 식별자 정의, 관계 ..
문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 이러한 조건을 만족시키면서, 진영 주식회사가 이번 신규 사원 채용에서 선발할 수 있는 신입사원의 최대 인원수를 구하는 프로그램을 작성하시오. 입력 첫째 줄..
문제 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 입력 첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로프가 버틸 수 있는 ..
문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 4개를 출력해야 한다. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 예제 입력 1 380 예제 출력 1 4 내 코드 (140ms) - 1000에서 입력한 금액을 빼고 거스름 총액을 구한..