목록DataBase (24)
만족
셀렉트, 프로젝션은 릴레이션을 피연산자로 갖는 단일 연산자이고, 디비전은 두개의 릴레이션을 피연산자로 갖는 이항 연산자이고, 반환하는 값은 모두 하나의 릴레이션이다. 셀렉트(SELECT) 시그마 기호σ, 조건(선택), 피연산자로 이루어진 단일 연산자이다. 주어진 릴레이션에 대해 원하는 조건을 만족하는 튜플을 뽑아 새로운 릴레이션을 만든다. σ이름='홍길동'(국민) 하면 이름 주민등록번호 홍길동 123456-1234567 홍길동 234567-2345678 처럼 나온다. 결과값은 피연산자의 튜플 갯수보다 작거나 같다. 프로젝션(PROJECTION) 프로젝션 기호∏, 애트리뷰트 집합, 피연산자로 이루어진 단일 연산자이다. 주어진 릴레이션에 대해 각 튜플에서 원하는 애트리뷰트 집합으로만 이루어진 새로운 릴레이션..
집합 연산자는 이항 연산자로, 피연산자 두개가 필요하며 피연산자는 릴레이션이여야 한다. 합집합 릴레이션 R과 S의 튜플을 모두 합쳐 새로운 릴레이션 T를 만든다. 단 관계 대수에서 릴레이션은 중복 튜플을 허용하지 않으므로 중복 튜플은 하나만 표시한다. 교집합 릴레이션 R과 S의 튜플에서 중복되는 튜플만을 포함하는 새로운 릴레이션 T를 만든다. 단 관계 대수에서 릴레이션은 중복 튜플을 허용하지 않으므로 중복 튜플은 하나만 표시한다. 차집합 릴레이션 R에서 S에 존재하는 튜플들을 제외한 새로운 릴레이션 T를 만든다. 곱집합 릴레이션 R과 S에 대해 모든 가능한 튜플 조합을 가진 새로운 릴레이션 T를 만든다. 곱집합은 카테시안 곱이라고도 한다. 릴레이션 T의 차수는 R의 차수+ S의 차수이며, 릴레이션 T의 ..
열(column)= 필드(field)= 애트리뷰트(attribute) => 애트리뷰트는 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 열, 필드와는 약간의 차이점이 있다 행(row)= 레코드(record)= 튜플(tuple) => 튜플은 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 행, 레코드와는 약간의 차이점이 있다 릴레이션 스키마= 애트리뷰트의 집합(a set of attributes) 릴레이션 인스턴스= 어느 한 시점에서의 튜플의 집합(a set of tuples about specific time) => 데이터 추가, 삭제 등으로 인해 튜플 집합은 시간에 따라 변한다 도메인(domain) 도메인은 애트리뷰트(행)이 취할 수 있는 값들의 집합이다. 타입도 도메인으로 볼..
세타조인, 동일조인, 자연조인, 세미조인, 외부조인에 대해 알아보자. 조인은 기본적으로 두 개의 릴레이션에 대해 진행하는 연산으로 이항 연산자이며, 양쪽 외부 조인을 제외한 모든 조인은 두 개의 릴레이션에서 공통된 애트리뷰트가 하나 이상 존재해야 한다. 조인은 두 릴레이션에 대해 먼저 곱연산을 진행하고 난 다음의 릴레이션에 대해 열이나 행을 필터링하는 과정을 하나의 연산으로 묶은 것이라 보면 되겠다. 세타조인(Theta Join; ⋈AΘB) T= R⋈(AΘB) S라는 식이 있다고 해보자. 이는 R과 S 릴레이션을 조인하되, R의 속성 A와 S의 속성 B가 세타 관계가 성립하는 새로운 T 릴레이션을 생성한다. 세타에는 =, < 등 비교연산자가 포함될 수 있다. Relation R A AA 1 안녕 1 하세..
RANK/DENSE_RANK/ROW_NUMBER 함수는 모두 특정 열의 값에 대해 순위를 매기는 함수다. 서식은 다음과 같다 RANK() OVER([PARTITION BY COL_NAME_1] ORDER BY COL_NAME_2 [DESC]) RANK대신 DENSE_RANK/ROW_NUMBER로 대치해서 사용할 수 있다. [...]로 된 부분은 생략 가능하다. 다른 함수들과 달리 꽤나 괴상하게 생긴 함수인데, 그렇게 어려운 부분은 없으니 겁먹지 않아도 된다. 먼저 [PARTITION BY COL_NAME_1] 부분 없이 알아보자. RANK() OVER (ORDER BY COL_NAME_2 DESC)는 COL_NAME_2값을 내림차순으로 순위를 매기는 함수다. 즉 다음과 같은 데이터가 있다고 해보자. de..
whitepaek.tistory.com/40 macOS 오라클 DB 설치 및 실행 방법 macOS에서 오라클 데이터베이스(oracle database)를 사용하기 위해서는.. 맥 OS에서 오라클 데이터베이스를 사용하기 위해서는 도커(docker)를 이용해야 합니다. MySQL처럼 바로 설치하여 사용할 수 있으 whitepaek.tistory.com 참고로 arm기반인 m1에서는 아직 docker를 사용할 수 없기 때문에 거기서는 안된다. 요약 1. 설치 (도커 설치 과정은 생략) docker pull jaspeen/oracle-xe-11g //이미지 다운로드 docker images //이미지가 다운로드 되었는지 확인 2. 실행 docker run --name oracle11g-test -d -p 808..
서버에서 MongoDB를 사용한 이후 별로 무거운 작업이 없음에도 CPU 로드율이 미친듯이 날뛰는 문제가 포착되었다. MongoDB를 사용하기 이전에는 볼 수 없었던 문제인데다, 쿼리들 역시 단순히 특정 컬럼을 하나 찝어 일치하는 row 하나를 불러오는 아주 간단한 작업이였기 때문에 어떤 이유로 저런 그래프가 그려지는지 궁금해졌다. 해당 문제에 대해 조사하던 중, 크게 세 가지 원인이 있음을 알아냈다. 1. 거대한 Log 사이즈 mongodb는 기본적으로 /var/log/mongodb/mongod.log 에 로그를 저장한다. 그런데 해당 로그 사이즈가 너무 거대해질 경우(GB단위 이상) 성능에 큰 영향을 끼친다고 한다. cd /var/log/mongodb 로 로그파일이 있는 경로로 이동하고, ls -al..
- cmd에서 sqlplus 사용하기 command: sqlplus UserName/Password관리자 기본 계정으로는 system과 sys가 있다.password는 사전에 설정해 둔 값이다. - 계정 새로 만들기create user UserID identified by Password;semicolon을 찍지 않으면 행이 이어지는 것으로 간주한다 - 권한 부여grant connect, resource to UserID;"UserID"계정에 연결, 자원관리 권한 부여 - sqlplus종료exit - 테이블 생성create table tableName(columName dataType, ...); ex) create table meber( id varchar2(20) primary key, //uniqu..