트랜젝션 (Transaction) 데이터베이스에서 사용하는 용어로 분할될 수 없는 작업 단위를 나타낸다. 분할될 수 없다는 말은 물리적으로 분할될 수 없다는 것이 아니라 논리적으로 분할하면 안된다는 의미로, 분할되어 실행될 시 시스템에 큰 타격을 줄 수 있다. ATM기기에서 돈을 송금하는 작업을 예로 들어보자. 돈을 송금하여 내 계좌 데이터에서는 금액이 감소되었는데, 상대방 계좌 데이터를 증가시키는 부분에서 간섭이 일어나 증가가 안된다면 문제가 된다. 위 예에서 돈을 인출하는 명령(내 계좌에서 돈을 인출)과 돈을 입금하는 명령(상대 계좌에 돈을 입금)은 하나의 트랜잭션으로 묶여서 실행되어야 한다. 트랜젝션의 특성 트랜잭션이 신뢰를 가지기 위해 다음과 같은 특성을 가진다. 원자성(Atomicity) 트랜잭..
SQL에서 where절에 추가해서 2개이상의 query를 조합할 수 있는 방법을 알아보자. set 두개 이상의 쿼리를 조합해서 새로운 쿼리를 만들어낼 수 있다. 하나의 쿼리로 표현할 수 없거나 너무 복잡도가 올라가서 사람이 이해하기 힘들 경우 간단한 쿼리를 여러개 조합하여 사용할 수 있다. ‘query1’ union/intersection/except ‘query2’ union : 두 쿼리의 합집합을 구한다. intersection : 두 쿼리의 교집합을 구한다. except : 좌항에서 우항을 제외한 결과를 구한다. Nested Subquery where절 안에 키워드로 연결하여 특정 쿼리를 통째로 내부에 삽입할 수 있다. 쿼리문이 너무 길어지거나 복잡해질 경우 이 기능을 사용해서 가독성을 높일 수 있..
오라클 데이터베이스를 설치하면 기본적으로 외부에서 접속하지 못하도록 설정되어있다. 그래서 localhost로 접근할 경우 접근이 되지만 다른 컴퓨터에서 접근할 수 있도록 하기 위해서는 설정을 변경해주어야 한다. 1. listener.ora 파일 수정 오라클이 설치된 경로로 이동한다. listener.ora 파일을 열어서 HOST 값을 자신의 컴퓨터 이름으로 수정한다. windows + PauseBreak 같은 파일의 SID 값을 접근을 허용할 데이터베이스의 이름으로 설정한다. select name from v$database; listener를 재시작한다. >lsnrctl stop >lsnrctl start 2. 방화벽 설정 1번 방법으로도 안된다면 방화벽 설정을 추가해야 한다. 제어판>방화벽 설정>고급..
데이터베이스는 중복된 정보를 가지는 속성이 없이 정규화되어야 좋은 데이터베이스라고 할 수 있다. 정규화를 제대로 하지 않으면 아래와 같은 문제들이 발생한다. 삽입이상 (Insert Anomaly) 어떠한 사실을 삽입하려고 하는데 이 삽입행위가 정규화를 해치는 경우 삭제이상 (Delete Anomaly) 어떠한 사실을 삭제했는데 원하지않는 정보도 함께 삭제되는 경우 갱신이상 (Update Anomaly) 어떤 값을 수정했을 때 정보가 손실되거나 불필요한 여러 값을 추가로 수정해주어야 하는 경우 이를 방지하기 위해 정규화 과정을 거쳐야하는데 그 방법에 대해 알아보자. 함수 종속 (Functional Defendency) 정규화를 하기 전에 관계형 데이터베이스에서 발생하는 종속에 대해 알아야한다. 정규화라는 ..
데이터베이스를 구축하다보면 순차적으로 증가하는 값을 지정해야할 때가 있다. 게시판 서비스를 만들거나 유저목록 데이터베이스를 만들 때 index 값으로 정렬하면 관리하기가 편하다. 생성 sequence는 전역변수처럼 데이터베이스에 생성할 수 있다. CREATE SEQUENCE number START WITH 1, INCREMENT BY 1, MAXVALUE 1000, MINVALUE 1, NOCYCLE; 각 옵션은 설정하지 않으면 기본값 시작값(1), 증가값(1), 최소값(1), 최대값(가장 큰 숫자), NOCYCLE 으로 설정된다. 이렇게 생성된 number라는 sequence 변수를 데이터베이스 내에서 접근하여 사용할 수 있다. 사용 sequence는 주로 INSERT와 함께 사용된다. 테이블에 row..
분산시스템(Distributed System)은 단일 하드웨어로 구성하기 힘든 규모의 서비스를 제공하려는 목적으로 여러개의 하드웨어가 서로 각자 맡은일만 수행할 수 있도록 구축한 시스템을 말한다. 분산시스템의 목적 리소스의 공유 원격 저장소에 있는 자원을 쉽게 접근할 수 있어야한다. 투명성 사용자는 시스템이 어떻게 분산되어있는지 알 필요가 없다. 개방성 기능을 추가하는데 어려움이 없어야한다. 확장성 얼마나 많은 요청을 처리할 수 있는지를 말한다. 트래픽이 증가했을 때 문제없이 동작할 수 있는지, 저장공간을 동적으로 추가하거나 줄일 수 있는지 등을 말한다. 이를 위해 분산시스템을 사용하는 서버는 비동기 통신을 지원하여 작업이 처리되는 동안에도 계속 클라이언트와 통신을 할 수 있게 하여 latency를 줄일..
쿼리는 3개의 기본 조건을 가진다. 문장을 구성할 때 사용하는 육하원칙 즉, 누가, 언제, 어디서, 무엇을, 어떻게, 왜 와 비슷한 개념이라고 볼 수 있다. 기본적으로 select/from/where로 검색을 하며 각 파라미터의 값을 조정하거나 추가적인 문법을 사용하는것으로 다양한 검색이 가능하다. 파라미터의 값은 대소문자를 구분하지 않기 때문에 원하는 방법으로 사용할 수 있다. select 기본적으로 attribute name을 사용한다. 정규표현식의 그것과 같은 기능을하는 *를 사용해서 모든 어트리뷰트를 선택하게 할 수도 있다. distinct/all 값이 중복되는 경우 distinct/all 키워드를 사용해서 유일한 하나의 값만 가져올것인지 중복된 값을 전부 가져올 것인지 지정할 수 있다. dist..
개요데이터베이스에서 사용하는 연산들을 알아보자. 쿼리에서 사용하는 용어와 비슷한 것들도 있지만 좀 더 추상적인 개념이기 때문에 쿼리와 동일한 것으로 생각하면 안된다. 데이터베이스 연산select릴레이션에서 조건을 충족하는 튜플들을 선택한다. 쿼리문에서의 select와는 조금 다른 의미이니 유의하자.A=B(R)릴레이션 R에서 A와 B의 값이 같은 튜플들을 선택한다.project원하는 attribute들만 골라서 새로운 튜플을 만든다.A,C(R)릴레이션 R에서 A,C 2개의 attribute로만 이루어진 릴레이션을 반환한다.union두 릴레이션이 같은 attribute와 도메인으로 이루어져있을 때 합집합으로 이루어진 릴레이션을 만들어낸다.AB릴레이션 A와 B의 합집합으로 이루어진 릴레이션을 만든다.diffe..
- Total
- Today
- Yesterday
- 수학
- C
- SOCKET
- machine learing
- 국내여행
- 데이터베이스
- C/C++
- 자료구조
- ue4
- OS
- swift
- winsock
- JSP
- Cocos2d-x
- mongoDB
- ios
- SwiftUI
- SHADER
- 드라마
- database
- game
- scala
- 운영체제
- DesignPattern
- rxswift
- Git
- C++
- 알고리즘
- Spring
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |