데이터베이스는 구동 중 다양한 오류가 생길 수 있고, 좋은 데이터베이스는 이러한 오류를 문제없이 복구할 수 있어야한다. Transaction Failure 말 그대로 트랜젝션이 도중에 어떠한 작용으로 실패하는 경우이다. System Crash 하드웨어 전원이 나가는 등 시스템에 직접적인 타격을 받아서 오류가 발생하는 것을 말한다. Disk Failure 저장장치 하드웨어에 문제가 생겨서 발생하는 오류를 말한다. 이를 예방하기 위해 저장장치를 여러개의 물리적인 블록(block)으로 나누고 쓰기/읽기의 순서를 정해진 프로토콜을 따르도록 강제한다. 첫번째 블록에 쓰기를 수행한다. 1번이 끝나면 두번째 블록에 쓰기를 수행한다. 읽기는 2번까지 완전히 완료되면 수행한다. 물리적으로 나눈 블록이 서로 다른 값을 가..
무선 LAN의 종류 국제표준위원회(IEEE)의 무선LAN/MAN 표준위원회(802)의 11번째 워킹그룹에서 지정하는 규격으로 이름에 IEEE 802.11로 시작하는 것이 일반적이며, 버전에 따라 a, b, g, n 등 알파벳이 붙는다. 무선 LAN 표준기구는 IEEE 802.11이 유일하기 때문에 다른 모든 무선 LAN 표준의 이름은 802.11으로 시작한다. IEEE 802.11 IEEE 802에서 최초로 지정한 무선 LAN 규격이다. 2Mbps의 속도를 가지며, 2.4GHz 주파수를 사용하고, 여러 기기가 동시에 참여할 수 있도록 CSMA/CA 기술을 사용한다. 단, 초기버전이기 때문에 다양한 변수에 대응하지 못해서 호환성이 떨어졌고, 속도 또한 느려서 널리 사용되지는 못하고 다음 버전으로 넘어갔다...
Lock 여러개의 트랜젝션이 데이터베이스에 접근할 때 값에 대해 중복 쓰기, 중복 읽기를 막기 위해서 해당 값에 대한 접근을 막는것을 말한다. 기본적으로 어떤 값에 Lock을 건 트랜젝션만이 Lock을 해제할 수 있다. Lock-S (Shared Lock) - 읽기는 가능하지만 쓰기는 불가능하게 막는다. 다른 트랜젝션이 같은 값에 대해 Lock-S를 걸 수 있다. 단, Lock-S가 걸린 값에 Lock-X를 추가로 걸 수 없다. Lock-X (Exclusive Lock) - 읽기와 쓰기 모두 불가능하게 막는다. 다른 트랜젝션이 같은 값에 대해 어떠한 Lock도 추가로 걸 수 없다. 이러한 Lock을 활용해서 여러개의 트랜젝션이 동시에 수행될 때 서로 다른 값을 가지고 연산하지 않도록 만들어야한다. Two..
트랜젝션 (Transaction) 데이터베이스에서 사용하는 용어로 분할될 수 없는 작업 단위를 나타낸다. 분할될 수 없다는 말은 물리적으로 분할될 수 없다는 것이 아니라 논리적으로 분할하면 안된다는 의미로, 분할되어 실행될 시 시스템에 큰 타격을 줄 수 있다. ATM기기에서 돈을 송금하는 작업을 예로 들어보자. 돈을 송금하여 내 계좌 데이터에서는 금액이 감소되었는데, 상대방 계좌 데이터를 증가시키는 부분에서 간섭이 일어나 증가가 안된다면 문제가 된다. 위 예에서 돈을 인출하는 명령(내 계좌에서 돈을 인출)과 돈을 입금하는 명령(상대 계좌에 돈을 입금)은 하나의 트랜잭션으로 묶여서 실행되어야 한다. 트랜젝션의 특성 트랜잭션이 신뢰를 가지기 위해 다음과 같은 특성을 가진다. 원자성(Atomicity) 트랜잭..
JSP를 사용해서 웹 어플리케이션을 개발하는 방법을 공부할건데 처음 개발환경을 어떻게 구축해야할지 알아보자. JSP 서버개발 특히 백앤드(back end) 개발이라고 하는 것은 실제 통신을 처리하는 부분을 구현하는게 아니라 웹 서버 또는 WAS를 통해 들어오는 요청을 처리하는 동적인 페이지 DB와의 연동을 구현하는 것을 말하는 것이다. JSP는 html에서 java 코드를 사용할 수 있도록 하는 환경을 제공하며 DB와 연동을 처리하기 때문에 백앤드에 속한다. Javascript와의 차이점은 이 동적인 코드가 실행되는 위치가 다르다는 것이다. Javascript는 클라이언트의 브라우저에서 동작하며 그에 css 등과 연동하여 동적인 페이지를 만들어내지만 JSP는 서버에서 실행되며 서버가 동적으로 결과를 전달..
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) 정규화를 하기 전에 관계형 데이터베이스에서 발생하는 종속에 대해 알아야한다. 정규화라는 ..
- Total
- Today
- Yesterday
- database
- JSP
- C
- C++
- SHADER
- Java
- scala
- 자료구조
- 수학
- game
- ios
- 운영체제
- 데이터베이스
- 알고리즘
- Git
- SOCKET
- winsock
- mongoDB
- swift
- 국내여행
- ue4
- 드라마
- Spring
- DesignPattern
- rxswift
- machine learing
- SwiftUI
- OS
- Cocos2d-x
- C/C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |