본문 바로가기

728x90
반응형

배우기/기록의 중요성

(29)
[R] NA와 NULL의 차이 --------------------------------------- | | | | | | --------------------------------------- | | | | NULL | | --------------------------------------- 다음과 같은 자료 구조가 있다고 하자 여기서 한 자리에 NULL이 발생하였다 그러나 아래와 같은 자료구조는 존재하지 않는다. --------------------------------------- | | | | | | --------------------------------------- | | | | -------------------- 그렇기 때문에 NA라는 값이 새로 등장하게 된 것이다. ---------------------------..
[R] 이해한대로 써보는 차원축소 차원축소란 2차원이면 1차원으로, 1차원이면 0차원(스칼라)로 축소되는 것을 의미한다. 여러 복잡한 자료구조를 갖는 언어는 데이터를 표현하기 적절한 구조들을 가지고 있다. 1 이라는 숫자 하나가 있다. 이 스칼라 값을 굳이 벡터로 표현할 이유는 없다. 비효율적이기 때문이다. 1 하나로 더더욱 데이터 프레임으로 만들어주진 않는다. 그렇기 때문에 어떤 데이터가 있을 때, 그 데이터 일부를 선택하거나 추출하거나 등의 작업을 진행 하면서 출력되는 데이터 차원의 경우 굳이 원래의 데이터 차원을 유지할 필요가 없다. 예를 들어 데이터 프레임은 2차원인데 컬럼 하나를 선택하면 1차원으로 추출된다. 굳이 2차원으로 표현할 필요가 없는 것이다. 항상 색인에는 차원 축소가 포함되어 있다. v2를 살펴보자 v2[1]은 차원..
[R]데이터 저장 방법(행 방향 저장? 열 방향 저장?) 보통 행정기관의 자료를 받아보면 엑셀에 이런 형식으로 데이터가 저장되어 있다. 예) 강남 상가의 연도별 매출액 2023 2022 2021 2020 2019 ........ 스타벅스 바나에스프레소 이 경우는 자료가 행방향으로 저장되는데 이러한 자료를 와이드 형식이라고 한다. 이러한 와이드 형식의 자료가 DB로 들어오는 경우 JOIN도 되지 않고 GROUPING도 되지 않는다. 한 컬럼을 추출하게 되면 2023년도의 각각 다른 상가들의 자료가 추출되어 효율적이지 않다. 스타벅스 자료를 읽으려면 모든 행열의 자료를 다 불러와야하기 때문에 DISK I/O도 크다. 스타벅스 바나에스프레소 2023 2022 2021 2020 2019 이런 컬럼형으로 된다면 한 가게 당 데이터를 추출할 수 있기 때문에 자료를 더 효..
[R]key-value를 이해하기 위한 과정 key-value를 이해하기 위해서는 앞에서 공부해온 sql의 table과 비교가 필요할 것 같다. oracle인 RDBMS는 행 기반으로 자료를 찾는다. RDBMS에서 테이블이라고 부르는 구조는 R과 Python에서는 데이터 프레임이라고 한다. RDBMS는 key-value 구조가 아니다. 위에서 언급하였듯이 RDBMS는 자료를 찾을 때 한 행씩 읽어가며 자료를 가져오는데, 한 행에는 다양한 형식을 가진 데이터가 존재한다. 이름은 문자, 학번은 숫자, 가입일은 날짜 등등. 그렇게 자료를 읽어오게되면 속도가 느린 반면 column 별로 자료를 읽게 되면 한 column은 데이터 타입이 하나 이기 때문에 빠른 속도로 자료를 불러올 수 있다. R에서의 데이터 프레임이 key-value 구조로 이루어졌다. c..
[SQL, Oracle] 이해한대로 써보는 delete와 truncate의 차이(High Water Mark, HWM) 객체(object)란 create로 만들 수 있는 대상이다. 예를 들어 table, 제약조건 등 처럼 만들고 지우고 변경이 가능한 실체가 있는 모든 대상이다. 데이터가 insert 되는대로 DB에 저장되는데 데이터 마지막 지점이 찍히는 것을 high water mark라고 한다. 다음 insert 속도를 빠르게 하기 위하여, 어디까지 write 했는지 hwm으로 찍어뒀으니 그 이후부터 기록하여라 등의 표시라고 생각하면 된다. 여기서 delete를 하게 되면 hwm가 땡겨지지 않는다. 즉 빈 공간이 반환되지 않는다. 그래서 디스크 사이즈가 그대로 유지된다. 그런데 truncate하면 hwm이 땡겨지게 된다. 즉, delete와 truncate는 용량차이가 나기 때문에 차이가 나는 작업이 되겠다.
[SQL, Oracle] DML(Data Manipulation Language)의 lock 발생 관련 내용 정리 DML의 경우, transaction이 commit 또는 rollback으로 정리가 되어야 한다. 그렇지 않을 경우 lock이 발생하기 때문이다. 여기서 말하는 lock 매커니즘은, 동시 자원을 획득하고자 할 때(동시에 데이터를 수정하려는 시도가 있을 경우) 먼저 들어온 세션에 대한 데이터 수정을 허가하고 나중에 뒤늦게 들어온 세션에 대해서는 앞선 작업이 완료가 되지 않으면 먼저 수행된 transaction을 보호하기 위하여 다른 transaction에서 해당 데이터의 수정을 막는 제어장치이다. Oracle은 lock 매커니즘이 잘 만들어져있다. 예를 들어, 아래 창을 살펴보자. 상단의 Orange 창에서 update emp set sal = 5000; 하고 commit이나 rollback을 안 하고 있..
이해한대로 적어보는 SQL 표준이 중요한 이유 업무를 이해할 때 DB를 이해하는 것이 좋다. 먼저 DBMS란 메모리와 디스크의 결합으로 이루어져있는데, DBMS의 메모리를 인스턴스(instance)라고 부른다. 처음에 오라클 DBMS을 설치할 때 우리는 단일 인스턴스를 설치했다. https://metime.tistory.com/46 여기서 5번에 보면 단일 인스턴스 vs RAC 를 선택하라고 되어있는데 RAC는 인스턴스가 여러 개인 것이다. 인스턴스가 세 개인데 하나의 디스크에 물린 것을 3노드 RAC라고 한다. 동시 접속자가 많으면 노드가 세 개까지 간다고 하셧다. 3노드 RAC가 꺼지면, 중단이 되어 장애가 발생되더라도 intter connect가 설계되어 있기 떄문에 장애가 발생하더라도 사용자들은 문제 없이 서버 사용이 가능하다. 즉, 한 쪽 ..
orange(oracle tool)에서의 몇 가지 단축키 oracle tool 중의 하나인 orange에서의 몇 가지 단축키를 정리해둔다. 1. ctrl + o: file 열기 2. ctrl + s: 탭 저장 3. ctrl + t: 새로운 탭 열기 4. ctrl + n: new session 으로 접속. scott 계정에서 hr 계정 등으로의 접속 여기서 계정의 변경이 필요한 이유는 테이블 소유자는 자신이 테이블만 접속이 가능하다. 그러므로 hr 테이블로의 접근이 필요하다면 hr 계정으로 접속하여야 한다. 5. ctrl + -: 선택영역 주석처리. 주석처리 해재는 ctrl + shift + - 6. ctrl + u: 선택영역 소문자 변경 7. ctrl + shift + u: 선택영역 대문자 변경 8. ctrl + shift + f: query 줄 맞추기( qu..
oracle(11g) 오라클 설치 방법 오라클을 여러 번 설치하고 나니 그 과정이 기억에 남을 때 적어두어야 할 것 같아 기록해둔다. 학원에서 첫 실습을 할 때 설치했고, 집 데스크톱에 복습을 위해 설치를 했다. 그리고 학원 데스크톱이 갑자기 먹통이 되는 바람에 새 PC에 설치를 했고 새로 산 노트북에도 오늘 설치를 했다. 그럼 과정 하나 씩 기록해보자. 0. 먼저 선생님이 주신 두 파일은 같은 경로 안에서 압축을 풀어야 한다. 그렇지 않으면 무조건 설치 과정에 오류가 발생한다. 1. setting 파일을 누르면 아래처럼 최소 요구사항을 충족하지 않는다고 한다. 계속하겠다고 하면 된다. 2. 따로 서포트를 받지 않을 것이기 떄문에 체크 해제 후 다음 버튼 클릭한다. 3. 데이터베이스 생성 및 구성에 체크 된 상태에서 다음으로 넘어간다. 4. ..

728x90
반응형