전체 글
-
Ch 16. 파일 인덱싱 기법 및 B트리와 B+트리학교 수업/2-2 데이터베이스 기초 2021. 11. 21. 19:49
인덱스(색인) 보조 접근 구조 검색 속도를 높여주기 위한 방법 두번째 접근 경로로 제공댐 인덱싱 필드로 레코드를 효율적으로 검색함 인덱스 종료 단일 단계 순서 인덱스(primary, secondary, clustering, ISAM) 다단계 인덱스(B트리, B+트리) 1. 단일 단계 순서 인덱스(Single-level ordered indexes) Primary index(기본 인덱스) - 정렬된 키(중복X) 필드로 구성된 레코드들의 순서 파일 Clustering index - 정렬된 키가 아닌 필드로 구성된 레코드들의 순서 파일인데, nonkey이므로 중복을 허용함 그래서 파일은 primary index 혹은 clustering index 둘 중 하나임 Secondary index - 정렬되지 않은 파..
-
Ch15. 파일 구조학교 수업/2-2 데이터베이스 기초 2021. 11. 9. 21:01
1. 블록 버퍼링 모든 블록 주소를 알고 있는 몇 개의 블록을 디스크에서 주기억 장치로 전송할 때, 전송 속도를 빠르게 하기 위하여 주기억 장치 내의 몇 개의 버퍼를 예약하여 사용할 수 있다. 하나의 버퍼를 판동하거나 기록하는 동안 CPU는 다른 버퍼 내의 데이터를 처리할 수 있다. 일반적으로 독립적인 디스크 입출력 처리기(제어기)가 존재하여 CPU처리와 병렬로 주기억 장치와 디스크 간에 데이터 블록을 독립적으로 전송할 수 있기 때문이다. 왼쪽 그림은 프로그램이 교대로 수행되지만, 사용자는 동시에 수행된다고 느낌(Interleaved concurrency) 오른쪽 그림은 정말로 병렬처리함 CPU가 하나의 버퍼를 사용하고 있는 동안에 입출력 공간에서 다른 블록을 읽어옴(효과: CPU의 대기시간을 줄여줌, ..
-
제1회 한국항공대학교 프로그래밍 경진대회(KAUPC) 후기후기/활동 후기 2021. 11. 6. 23:34
오늘 드디어 한국항공대학교에서 제1회 한국항공대학교 프로그래밍 경진대회(KAUPC)가 진행되었습니다! 제가 참가한 팀의 팀명은 김태현의 생일선물이고, 멤버는 백준 아이디로 hello70825, kimtaehyun98, sky 이렇게 3명에서 참가를 했습니다. 팀명은 제가 정했는데, UCPC랑 ICPC랑 백준 다른 대회 팀명을 보니까 재밌거나 특이한 팀명을 하는 것이 좋아 보여서 대회 다음날 kimtaehyun98님의 생일이라 이렇게 정하게 됐네요 ㅋㅋ 팀원들의 실력은 다들 잘하시는 분들이라 굳이 시간을 잡아 따로 연습을 할 필요는 없을 것 같아서 각자 문제를 풀다가 대회 시작 이틀 전과 하루 전에만 같이 연습해보고 대회를 진행하였습니다. 제 팀은 최종적으로 모든 문제를 풀었고 1등을 하였습니다. 풀이 저..
-
Ch15. 디스크 저장 장치, 기본 파일 구조, 해싱 및 최신 저장 아키텍처학교 수업/2-2 데이터베이스 기초 2021. 10. 30. 00:46
1. 메모리 계층 구조와 저장 장치 데이터베이스는 물리적으로 레코드들의 파일 형태로 저장됨 저장 장치 종류 기본 저장 장치(Primary storage, 주기억장치) - CPU가 직접 처리할 수 있는 장치 - 메인 메모리와 캐시 메모리 보조 저장 장치(Secondary storage, 보조기억장치) - 대용량 - 플래시 메모리, 자기 디스크, 광 디스크 3차 저장 장치(Tertiary storage) - 오프라인 상태로 있다가 유저가 직접 로딩해야 그제서야 온라인으로 변하여 접근할 수 있는 방식 - 광 디스크, 마그네틱 테입, 테입 쥬크박스 기본 저장 장치와 나머지 저장 장치의 큰 차이는 CPU가 직접 접근할 수 있느냐임 위로 갈수록 비싸고 저용량이지만 빠르고, 아래로 갈수록 느리지만 대용량이고 쌈 2...
-
Ch09. SQL 프로그래밍 기법 소개학교 수업/2-2 데이터베이스 기초 2021. 10. 29. 23:36
1. 데이터베이스 프로그래밍 대화식 인터페이스와 달리 응용 프로그램에서 데이터베이스를 접근하기 위한 방식 사용하는 이유? - 대화식 인터페이스는 편리하지만, 기능이 충분하지 않음 - 그래서 대부분의 데이터베이스 연산은 응용프로그램을 통해 일어남(ex 웹 어플리케이션) 데이터베이스 프로그래밍 접근방법 세가지 범용 프로그래밍 언어에 데이터베이스 언어를 임베디드하는 방법(프리컴파일러 or 프리프로세서) 데이터베이스 함수의 라이브러리 사용(호스트언어에서 데이터베이스를 호출하기 위함. API 제공하는 것) 새로운 데이터베이스 언어를 사용하는 것(DBPL) - 이 경우 임피던스 불일치(impedance mismatch)가 최소화될 수 있음 임피던스 불일치(impedance mismatch)란? 두 프로그래밍(데이터..
-
[BOJ 2424, Python 3] 부산의 해적알고리즘/BOJ 2021. 10. 26. 17:41
https://www.acmicpc.net/problem/2424 2424번: 부산의 해적 첫째 줄에 N과 M이 주어진다. 둘째 줄부터 N개의 줄에 보물 지도가 주어진다. 각 줄은 M개의 문자로 구성되어 있는데, .은 바다이고, I는 섬이고, V는 해적의 위치이고, Y는 현재 수아의 위치이고, T www.acmicpc.net 해적이 언제 해당 지역을 볼 수 있는지 빠르게 확인하는 아이디어 때문에 난이도가 높은 것 같은데 코드양만 많지 의외로 쉽습니다. 풀이 수아가 움직일 때, 해적은 가만히 있거나, 움직이는 것을 선택할 수 있는 상태에서 해적의 움직임과 상관없이 수아가 보물을 얻을 수 있을지 구하라는 문제입니다. 해적의 움직임과 상관이 없으려면 해적은 최단시간안에 모든 지역을 볼 수 있어도 수아가 보물을..
-
[BOJ 23288, Python 3] 주사위 굴리기 2알고리즘/BOJ 2021. 10. 25. 19:48
https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 이번에 나온 삼성 SW 역량테스트 문제입니다. 풀이 먼저 점수를 저장할 배열을 만들어주고, 플러드 필을 이용하여 본문에 나온대로 각 칸마다 B와 C를 곱한 값을 점수 배열에 저장하면 됩니다. 이 부분은 쉬우니까 넘어가겠습니다. 문제는 주사위를 굴리는 것입니다. 이것은 전개도 그림을 사용하여 설명하겠습니다. 처음 전개도가 위와 같이 있을 때, 설명하기 쉬운 남쪽과 북쪽으로 이동하는..
-
Ch13. RDB의 함수적 종속성과 정규화 이론학교 수업/2-2 데이터베이스 기초 2021. 10. 24. 22:26
1. 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 좋은 관계형 스키마 논리적/개념적 레벨 : 릴레이션 안의 데이터를 얼마나 잘 표현하고 있는가 구현/저장 레벨 : 기본 릴레이션의 스키마가 어떻게 구성되어 있는가 릴레이션 스키마 설계의 수준(퀄리티)을 결정하기 위한 척도로 사용할 수 있는 네 가지 지침 애트리뷰트들의 의미가 스키마에서 명확한지 확인함 튜플들에서 중복되는 값들을 줄임 튜플들에서 널 값들을 줄임 가짜 튜플을 허용하지 않음 첫번째 가이드라인(지침) 의미가 쉽게 전달되도록 릴레이션 스키마를 설계한다. 여러 개의 엔티티 타입과 관계 타입의 애트리뷰트들을 섞어서 하나의 릴레이션으로 구성하면 안된다. -> 하나의 엔티티 타입이나 관계 타입을 하나의 스키마로 만들어야함 2. 튜플에서 중복된 정보와 ..